主要内容

解释surrogateoptplot

surrogateoptplotPlot函数提供了关于代理优化步骤的大量信息。

有界函数最小化

例如,考虑步骤的图surrogateopt接受内置的测试功能rastriginsfcn.该函数在点[0,0]处的全局最小值为0。

创建的表面图rastriginsfcn

ezsurf (@ (x, y) rastriginsfcn ([x (:), y (:))));

情节最小化过程

通过给出不对称的边界,你鼓励了surrogateopt使搜索远离全局最小值。集非对称界(3、3)(9、10).设置选项以使用surrogateoptplot绘图函数,然后调用surrogateopt

磅= (3 3);乌兰巴托=(9、10);选择= optimoptions (“surrogateopt”“PlotFcn”“surrogateoptplot”);rng默认的[x, fval] = surrogateopt (@rastriginsfcn、磅、乌兰巴托、期权);

Surrogateopt停止,因为它超过了'options.MaxFunctionEvaluations'设置的函数求值限制。

解释情节

从左边开始解读剧情。具体算法步骤请参见代理优化算法

  • 第一个点是黑色三角形,表示函数在问题范围内的拟随机样本。这些点来自构造代理阶段。

  • 接下来是指示自适应点的黑点,这些点是在搜索最小值阶段创建的。

  • 粗绿线表示找到的最佳(最低)目标函数值。在第30次评估后不久,surrogateopt在目标函数值接近5时陷入局部最小值。放大以更清楚地看到这种行为。

Xlim ([20 100]) ylim([0 10])

  • 在第120次评估附近,一条垂线表示代理重置。此时,算法返回到构造代理程序阶段。

  • 深蓝色的x点表示现任点,这是自上次代理重置以来找到的最佳点。

  • 在评估数160附近,在任者通过获得大约4的值来改进之前的最佳点。在这个评估数字之后,最佳点的值会慢慢下降。放大以更清楚地看到这种行为。

Xlim ([140 200]) ylim([0 6])

  • 优化在计算数200时停止,因为这是二维问题的默认函数计算限制。

非线性约束问题

surrogateoptplot当你有非线性约束时,显示会改变。施加约束x (1)是整数值,还是非线性约束 x 2 x 1 2 - 2 .有关实现此约束的函数,请参见rasfcn在这个例子的最后。

有趣= @rasfcn;

通过设置设置整数约束intcon= 1,并运行最小化。

intcon = 1;[x, fval] = surrogateopt(有趣,磅,乌兰巴托,intcon选项);

Surrogateopt停止,因为它超过了'options.MaxFunctionEvaluations'设置的函数求值限制。

现在,地图上有红色标记surrogateopt计算一个不可行的点。最后一点接近于[0,0]的真最小值点。

disp (x)
1.0e-03 * 0 -0.3913

整数约束可能会有所帮助surrogateopt通过缩小搜索空间,找到真正的最小值。

函数函数F = rasfcn(x);f = x(1)^2 - 2 - x(2);结束

另请参阅

相关的话题