解释surrogateoptplot

surrogateoptplot绘图功能提供了关于代孕的优化步骤的大量信息。

有界函数最小化

例如,考虑步骤图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. maxfunctionevaluation”设置的函数评估限制。

解释情节

从左边开始解读情节。有关算法步骤的详细信息,请参见代理优化算法

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

  • 接下来是黑点,表示自适应点,即在搜索最小相位时创建的点。

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

xlim([20100]) ylim([0 10])

  • 在评估号120附近,竖线表示代理重置。此时,算法返回到构造代理阶段。

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

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

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

  • 优化在计算值200处停止,因为它是一个2-D问题的默认函数计算极限。

非线性约束问题

surrogateoptplot当您有非线性约束时显示更改。施加约束x (1)是整数值,和非线性约束 x 2 x 1 2 - 2 。对于功能实现此限制,请参见rasfcn在本实施例中的端部。

有趣= @rasfcn;

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

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

Surrogateopt停止了,因为它超出了“options. maxfunctionevaluation”设置的函数评估限制。

图中现在显示红色标记surrogateopt求不可行点的值。最后一点接近于[0,0]的最小值。

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

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

函数F = rasfcn(x) F。Fval = rastriginsfcn (x);F。Ineq = x(1)^2 - 2 - x(2);结束

另请参阅

相关话题