优化功能使用simulanealbnd
,基于问题的
此示例显示了如何使用基于问题的方法中的模拟退火最小化函数,当目标是一个函数文件(可能是未知内容)(“黑匣子”函数)。最小化的功能,dejong5fcn(x)
,全局优化工具箱包含。绘制功能。
dejong5fcn
创建一个2D优化变量X
。这dejong5fcn
函数期望变量为行向量,因此指定X
作为2元素行矢量。
x = optimvar(“X”,1,2);
使用dejong5fcn
作为目标函数,将函数转换为使用FCN2OPTIMEXPR
。
fun = fcn2optimexpr(@dejong5fcn,x);
用目标函数创建优化问题乐趣
。
prob = optimproblem(“客观的”,乐趣);
将所有组件中的变量范围从–50到50。当您指定标量边界时,软件将界限扩展到所有变量。
X.LowerBound = -50;X.UpperBound = 50;
在边界内设置伪随机点。初始点是一个字段的结构X
。
RNG默认%可再现性x0.x = x.lowerBound + rand(size(x.lowerbound))。*x.upperbound;
解决问题,指定simulanealbnd
求解器。
[sol,fval] = solve(prob,x0,“求解器”,,,,“ simulanealbnd”)
使用simulanealbnd解决问题。优化终止:最佳功能值的更改小于options.functionTolerance。
sol =带有字段的结构:X:[-32.0371 -31.8792]
FVAL = 0.9980
也可以看看
simulanealbnd
|FCN2OPTIMEXPR
|解决