局部优化与全局优化
为什么解算器找不到最小值
通常,解算器返回一个局部最小值(或最优值)。结果可能是全局最小值(或最优值),但不能保证这个结果。
一个当地的函数的最小值是函数值小于附近点,但可能大于远处点的点。
一个全球最小值是函数值小于所有其他可行点的点。
优化工具箱™求解器通常会找到一个局部最小值。(这个局部最小值可以是全局最小值。)他们找到了最小值吸引盆地起始点的。要了解更多关于吸引力盆地的信息,请参见吸引盆地.
以下是这条一般规则的例外情况。
线性规划问题和正定二次规划问题是凸的,有凸的可行区域,所以它们只有一个吸引盆地。根据指定的选项,
linprog
忽略任何用户提供的起点,和quadprog
不需要,尽管有时可以通过提供起点来加速最小化。全局优化工具箱函数,例如
simulannealbnd
尝试寻找不止一个吸引人的地方。
寻找一个更小的最小值
如果你需要一个全局最小值,你必须在全局最小值的吸引盆地中为你的求解器找到一个初值。
你可以通过以下方式设置初始值来搜索全局最小值:
使用一个规则的起始点网格。
如果所有问题坐标都是有界的,则使用从均匀分布中抽取的随机点。如果某些分量是无界的,则使用从正态分布、指数分布或其他随机分布中抽取的点。你对全局最小值的位置知道得越少,你的随机分布就应该越分散。例如,正态分布很少抽样超过其均值的三个标准差,但柯西分布(密度1 / (π(1 +x2)))制造出迥然不同的样本。
使用相同的初始点,在每个有界坐标、正态坐标、指数坐标或其他坐标上添加随机扰动。
如果你有全局优化工具箱许可证,使用
GlobalSearch
(全局优化工具箱)或MultiStart
(全局优化工具箱)解决者。这些解算器自动生成边界内的随机起始点。
你对可能的初始点了解得越多,你的搜索就会越专注、越成功。
吸引盆地
如果一个目标函数f(x)向量是光滑的吗——∇f(x)指向的方向f(x)下降最快。最陡下降方程,即
生成路径x(t)得到局部最小值为t增加。一般来说,初始值x(0)它们彼此靠近,给出了最陡的下降路径,趋向于相同的最小点。的吸引盆地最陡下降是导致相同局部最小值的初始值集。
这个图显示了两个一维最小值。图中用不同的线条样式表示不同的吸引盆地,用箭头表示下降最陡的方向。对于本图和后续图,黑点表示局部极小值。每一条最陡峭的下降路径,都从一个点开始x(0),去黑点在盆地包含x(0).
一维盆地
这张图显示了最陡峭的下降路径如何在更多维度上变得更加复杂。
一个盆地的吸引力,显示最陡峭的下降路径从不同的起点
这张图显示了更复杂的吸引路径和盆地。
几个吸引人的盆地
约束会把一盆吸引力分解成几块。例如,考虑最小化y主题:
y≥|x|
y≥5 - 4(x2)2.
这张图显示了两个吸引盆地和最后的点。
最陡的下降路径是直线下降到约束边界。从约束边界开始,最陡的下降路径沿着边界向下移动。最终点不是(0,0)就是(11/4,11/4),这取决于初始点是否x-value大于或小于2。