修改surrogateopt选项

这个例子说明如何通过运行来搜索全球最低surrogateopt上有六个局部极小二维问题。然后,示例说明如何修改一些选项更有效地进行搜索。

定义目标函数sixmin如下。

sixmin = @(X)(4 * X(:,1)^ 2  -  2.1 * X(:,1)^ 4 + X(:,1)^ 6/3。...+ X(:,1)* X(:,2) -  4 * X(:,2)^ 2 + 4 * X(:,2)。。。^ 4);

绘制功能。

[X,Y] = meshgrid(linspace(-2.1,2.1),linspace(-1.2,1.2));Z = sixmin([X(:),Y(:)]);Z =重塑(Z,大小(X));冲浪(X,Y,Z,'EdgeColor''没有')视图(-139,31)

该函数有六个局部极小和两个全局极小。

surrogateopt关于使用问题'surrogateoptplot'在该区域绘图功能通过在每个方向上有界的[-2.1,2.1]。要了解'surrogateoptplot'情节,看解读surrogateoptplot

RNG默认磅= [-2.1,-2.1];UB = -LB;OPTS = optimoptions('surrogateopt''PlotFcn''surrogateoptplot');[XS,fvals,EFLAGS,产出] = surrogateopt(sixmin,LB,UB,OPTS);

Surrogateopt停止,因为它超过了“options.MaxFunctionEvaluations”功能评价极限集。

设置为较小的值MinSurrogatePoints看选项的变化是否有助于解决者达到全球最低更快。

opts.MinSurrogatePoints = 4;[XS2,fvals2,eflags2,outputs2] = surrogateopt(sixmin,LB,UB,OPTS);

Surrogateopt停止,因为它超过了“options.MaxFunctionEvaluations”功能评价极限集。

较小MinSurrogatePoints选项不会明显改变解算器行为。

尝试设置的较大值MinSampleDistance选项。

opts.MinSampleDistance = 0.05;[XS3,fvals3,eflags3,outputs3] = surrogateopt(sixmin,LB,UB,OPTS);

Surrogateopt停止,因为它超过了“options.MaxFunctionEvaluations”功能评价极限集。

更改MinSampleDistance选项对求解的影响很小。此设置导致代孕更频繁复位,使最好的目标函数比以前略高(差)。

尝试使用并行处理。时间的执行具有和不具有对所述并行处理伛偻功能,这是的一个变体sixmin功能。为了模拟一个耗时的功能,伛偻功能具有用于每个功能评价一秒的添加暂停。

类型伛偻
函数y =驼峰(X)Y =(4 * X(1)^ 2  -  2.1 *×(1)^ 4 + X(1)^ 6/3 ... + X(1)* X(2) -4 * X(2)^ 2 + 4 * X(2)^ 4);暂停(1)
抽动OPTS = optimoptions('surrogateopt''UseParallel',真正,'PlotFcn''surrogateoptplot');[XS4,fvals4,eflags4,outputs4] = surrogateopt(@驼峰,LB,UB,OPTS);

Surrogateopt停止,因为它超过了“options.MaxFunctionEvaluations”功能评价极限集。
TOC
经过时间是43.466489秒。

时值上串行同样的问题运行求解。

opts.UseParallel = FALSE;抽动[XS5,fvals5,eflags5,outputs5] = surrogateopt(@驼峰,LB,UB,OPTS);

Surrogateopt停止,因为它超过了“options.MaxFunctionEvaluations”功能评价极限集。
TOC
经过时间是238.951879秒。

耗时的目标函数,并行处理显著提高了速度,而不过度影响的结果。

也可以看看

相关话题