首页 > 解决方案 > 多变量函数的局部最大值搜索

问题描述

我正在寻找一种算法来搜索多变量函数的局部最大值(不幸的是,未知导数)。

历史:

在过去的三年里,我只处理 6-D 表面,一般算法是:

  1. 建立一个统一的网格并在每个点进行计算。(~500M – 1G 点来确定至少某种形式的准确性;1 点需要 <1 ms 来计算根据输入而变化 - 并行化)
  2. 在点数组中搜索局部最大值。
  3. 使用 BFGS 算法优化局部最大值 => 局部最大值。

当下:

好吧,现在,我们需要处理 12-D 到 18-D 函数,这使得以前的算法无法维护。我们决定通过使用 Smolyak 网格设置 Chebyshev 多项式并在这个近似超空间内搜索来缓解一些障碍。但这相对而言只提供了一点点加速问题,现在我们只剩下在这些 Chebyshev 多项式上搜索最大值了。可悲的是,我只是一个小数学家,更多的是计算化学家。

我的问题是,我试图研究无济于事:

  1. 是否有任何算法可以搜索多变量函数的局部最大值?(除了模拟退火/粒子群方法等一些随机启发式的多次重置?)
  2. 是否有可能利用切比雪夫多项式的形式来帮助我们有效地找到这个近似超空间上的局部最大值?是否有任何有效的算法可以使用其导数来搜索切比雪夫多项式的至少极值,然后将其与二阶导数计算相结合?

我的想法涉及计算机视觉,因为我相信局部最大值搜索应该是这个部门的日常工作。科学的?在化学中,全局最大值是节目的明星,通常让我的视野非常有限。我对这个问题的维度有点不知所措。

我觉得有点卡在一个循环中。非常感谢任何正确方向的踢球!

扎夫

附加信息:该算法已经并将用于用 Fortran 编写的内部烘焙程序。

标签: algorithmsearchoptimizationlocalmaxima

解决方案


推荐阅读