主要内容

修复变量代理人孔

此示例显示如何通过从优化中删除它们来修复某些控制变量的值。虽然修复值最简单的方法是设置相等的上限和下限,但一些求解器不允许等于界限。然而,代理人孔通过在尝试优化之前,通过内部从问题中删除固定变量来处理相同的界限。

Multiorosenbrock.函数接受任何偶数的控制变量。它的最小值为0[1,1,...,1,1]。设置-1的下限和十个变量的5个,然后将前六个上限和下限设置为等于1.此设置从问题中删除六个变量,留下了四个变量的问题。

lb = -1 * in(1,10);UB = 5 *那些(1,10);LB(1:6)= 1;UB(1:6)= 1;

解决这个问题。

有趣= @multirosenbrock;RNG.默认重复性的%[x,fval,ExitFlag] = TrustogateOpt(有趣,LB,UB)

图优化绘图功能包含轴。标题最佳函数值的轴:0.42178包含类型线的对象。此对象表示最佳函数值。

Trustogateopt停止,因为它超出了“选项”QuaxFunctioneValuations'设置的函数评估限制。
X =1×101.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 0.4334 0.1786 0.7177 0.5263
FVAL = 0.4218.
EXITFLAG = 0.

求解器返回接近全局最小值的点。请注意,求解器需要500函数评估,这是10个变量问题的默认值。即使在修复某些变量时,求解器也不会更改此默认值。

当您没有修复任何变量时,求解器不会达到全局最小值附近的点。

lb = -1 * in(1,10);UB = 5 *那些(1,10);RNG.默认重复性的%[x,fval,ExitFlag] = TrustogateOpt(有趣,LB,UB)

图优化绘图功能包含轴。标题最佳函数值的轴:0.62091包含类型线的对象。此对象表示最佳函数值。

Trustogateopt停止,因为它超出了“选项”QuaxFunctioneValuations'设置的函数评估限制。
X =1×101.3840 1.9253 1.1837 1.4091 0.9075 0.8123 1.3796 1.8995 1.4982 2.2355
fval = 0.6209.
EXITFLAG = 0.

也可以看看

相关话题