主要内容

局部优化与全局优化

为什么解算器找不到最小值

通常,解算器返回一个局部最小值(或最优值)。结果可能是全局最小值(或最优值),但不能保证这个结果。

  • 一个当地的函数的最小值是函数值小于附近点,但可能大于远处点的点。

  • 一个全球最小值是函数值小于所有其他可行点的点。

曲线有两个倾角;较低的倾角是全局最小值,较高的倾角是局部最小值

优化工具箱™求解器通常会找到一个局部最小值。(这个局部最小值可以是全局最小值。)他们找到了最小值吸引盆地起始点的。要了解更多关于吸引力盆地的信息,请参见吸引盆地

以下是这条一般规则的例外情况。

  • 线性规划问题和正定二次规划问题是凸的,有凸的可行区域,所以它们只有一个吸引盆地。根据指定的选项,linprog忽略任何用户提供的起点,和quadprog不需要,尽管有时可以通过提供起点来加速最小化。

  • 全局优化工具箱函数,例如simulannealbnd尝试寻找不止一个吸引人的地方。

寻找一个更小的最小值

如果你需要一个全局最小值,你必须在全局最小值的吸引盆地中为你的求解器找到一个初值。

你可以通过以下方式设置初始值来搜索全局最小值:

  • 使用一个规则的起始点网格。

  • 如果所有问题坐标都是有界的,则使用从均匀分布中抽取的随机点。如果某些分量是无界的,则使用从正态分布、指数分布或其他随机分布中抽取的点。你对全局最小值的位置知道得越少,你的随机分布就应该越分散。例如,正态分布很少抽样超过其均值的三个标准差,但柯西分布(密度1 / (π(1 +x2)))制造出迥然不同的样本。

  • 使用相同的初始点,在每个有界坐标、正态坐标、指数坐标或其他坐标上添加随机扰动。

  • 如果你有全局优化工具箱许可证,使用GlobalSearch(全局优化工具箱)MultiStart(全局优化工具箱)解决者。这些解算器自动生成边界内的随机起始点。

你对可能的初始点了解得越多,你的搜索就会越专注、越成功。

吸引盆地

如果一个目标函数fx向量是光滑的吗——∇fx指向的方向fx下降最快。最陡下降方程,即

d d t x t f x t

生成路径xt得到局部最小值为t增加。一般来说,初始值x(0)它们彼此靠近,给出了最陡的下降路径,趋向于相同的最小点。的吸引盆地最陡下降是导致相同局部最小值的初始值集。

这个图显示了两个一维最小值。图中用不同的线条样式表示不同的吸引盆地,用箭头表示下降最陡的方向。对于本图和后续图,黑点表示局部极小值。每一条最陡峭的下降路径,都从一个点开始x(0),去黑点在盆地包含x(0)

一维盆地

弯曲,几次下沉。每个倾角的底部是一个局部极小值,每个局部极小值周围的区域是吸引盆地。

这张图显示了最陡峭的下降路径如何在更多维度上变得更加复杂。

一个盆地的吸引力,显示最陡峭的下降路径从不同的起点

显示曲线指向最小值的二维区域。每条曲线代表最陡的下降流。

这张图显示了更复杂的吸引路径和盆地。

几个吸引人的盆地

二维区域划分为不同颜色的吸引盆地,每个区域的流线都趋近于最小值

约束会把一盆吸引力分解成几块。例如,考虑最小化y主题:

y≥|x|

y≥5 - 4(x2)2

这张图显示了两个吸引盆地和最后的点。

流向线指向两个局部极小值。每个彩色区域代表一个吸引力盆地。

生成图形的代码

最陡的下降路径是直线下降到约束边界。从约束边界开始,最陡的下降路径沿着边界向下移动。最终点不是(0,0)就是(11/4,11/4),这取决于初始点是否x-value大于或小于2。

相关的话题