You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Mathematica中寻找高维函数的局部与全局极大值

高维黑箱函数的极值求解方案

针对你遇到的90维参数、基于矩阵迹求和的黑箱函数优化问题,以下是实用的解决思路:

1. 切换黑箱友好的优化算法

Mathematica的NMaximize依赖符号表达式处理,不适合你的场景。改用FindMaximum的无导数黑箱算法,直接传入数值计算函数即可:

(* 假设f[params]是你的数值计算函数,params为90个[0,2π)参数 *)
FindMaximum[{f[params], Thread[0 <= params < 2 Pi]}, 
  Table[params[[i]], {i, 1, 90}], 
  Method -> "NelderMead"
]

如果需要全局搜索能力,优先选DifferentialEvolution或SimulatedAnnealing,这两种算法对高维非凸黑箱函数更高效:

FindMaximum[{f[params], Thread[0 <= params < 2 Pi]}, 
  Table[params[[i]], {i, 1, 90}], 
  Method -> {"DifferentialEvolution", "PopulationSize" -> 200}
]

2. 降维优化减少搜索空间

90维直接搜索效率极低,试试分层优化策略:

  • 先按参数的物理意义(或随机)分组,固定部分参数优化剩余部分,迭代几轮后逐步放开所有参数;
  • 先做敏感性分析,筛选出对函数值影响最大的参数,优先优化这些参数,缩小有效搜索维度。

3. 利用函数结构加速计算

基于矩阵迹的函数可以通过结构优化降低计算耗时:

  • 缓存重复计算的矩阵子块,避免每次迭代重新生成完整64×64矩阵;
  • 利用迹的线性性质拆分求和项,并行计算多个子项,减少单步计算时间。

4. 上界验证的简化方法

要验证推测的上界3,无需找到精确全局极值:

  • 随机生成大量参数点(如10^5个),计算函数值,观察是否能接近3;
  • 从多个随机初始点出发用梯度上升法,看收敛后的函数值是否能突破3;
  • 若多次尝试均无法接近3,可推测该上界是紧的(或接近紧)。

5. 并行计算提升效率

开启Mathematica并行计算,加速函数评估和优化过程:

LaunchKernels[]
fParallel[params_List] := ParallelEvaluate[f[params]]
FindMaximum[{fParallel[params], Thread[0 <= params < 2 Pi]}, 
  Table[params[[i]], {i, 1, 90}], 
  Method -> "DifferentialEvolution", 
  Parallelization -> True
]

内容的提问来源于stack exchange,提问作者Markus M

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 10:57:15