主要内容

将非线性约束转换为代理选择表单和其他解算器表单

为什么要转换约束形式?

尝试各种解决方案,包括代理选择对于具有非线性不等式约束的问题,必须在代理选择和其他求解器所要求的形式。

皈依代理选择结构形式到其他解决方案

目标函数objconstr(x)对于代理选择返回一个结构。这个Fval字段包含目标函数值,即标量。的Ineq字段包含约束函数值的向量。解算器将尝试生成图形中的所有值Ineq字段不能小于或等于零。正值表示违反约束。

其他解算器期望目标函数返回标量值,而不是结构。其他解算器也期望非线性约束函数返回两个输出,c (x)ceq(x),而不是包含c (x)

代理选择函数objconstr(x)用于其他求解器:

  • 设置目标函数为@ (x) objconstr (x)。Fval

  • 将非线性约束函数设置为@(x) 交易(objconstr(x.Ineq,[]))

例如,

函数ff=objconstr(x)ff.Fval=norm(x)^2;ff.Ineq=范数(x-[5,8])^2-25;终止

使用objconstr呼叫代理选择

lb=[-10,-20];ub=[20,10];sol=代理选项(@objconstr,lb,ub)
Surrogateopt停止,因为它超过了'options.MaxFunctionEvaluations'设置的函数求值限制。太阳= 2.3325 3.7711

要解决相同的问题,请使用铁铬镍铁合金,将目标和约束分解为独立的功能。包括非线性等式约束为[]通过使用处理作用

objfcn=@(x)objconstr(x).Fval;nlcon=@(x)交易(objconstr(x).Ineq,[]);

呼叫铁铬镍铁合金具有目标函数objfcn非线性约束函数nlcon

[林洋新能源,fvalf eflag、输出]=...fmincon (objfcn [0, 0 ],[],[],[],[], 磅,乌兰巴托,nlcon)
找到满足约束条件的局部极小值。优化已完成,因为目标函数在可行方向上不递减,在最优性公差值范围内,且约束满足在约束公差值范围内。solf=2.3500 3.7600 fvalf=19.6602 eflag=1 output=struct带字段:迭代次数:7 funcCount:24 CONSTROUPTION:0步长:2.0395e-05算法:“内部点”firstorderopt:4.9651e-06 CG迭代次数:0消息:'↵找到满足约束条件的局部极小值。↵↵优化已完成,因为目标函数在↵可行方向,在最优性公差值范围内,↵约束满足在约束公差的值范围内。↵↵<停止标准详细信息>↵↵优化完成:相对一阶优化度量,6.602486e-07,↵小于options.OptimilityTolerance=1.000000e-06,以及相对最大约束↵违规0.000000e+00小于options。ConstraintTolerance=1.000000e-06。↵↵'

你也可以使用patternsearchga使用相同的转换来解决问题。

从其他解算器转换为代理选择结构形式

如果您在表单中为其他解算器编写了问题,请使用packfcn函数将目标约束和非线性约束转换为结构形式代理选择.如果目标函数是函数句柄@obj并给出了非线性约束函数@nlconst,然后使用目标函数objconstr对于代理选择

objconstr=packfcn(@obj,@nlconst);

在本例中,目标函数是Rosenbrock函数。

活性氧=@(x)100*(x(2)-x(1)^2)^2+(1-x(1))^2;

指定约束函数,约束解位于半径为1/3的圆心为[1/3,1/3]的圆盘内。

函数[c,ceq]=circlecon(x)c=(x(1)-1/3)^2+(x(2)-1/3)^2-(1/3)^2;ceq=[];

设置每个组件的边界为-2和2。

lb=[-2,-2];ub=[2,2];

使用patternsearch从[0,0]开始。

x0=[0,0];x=模式搜索(ros、x0、[]、[]、[]、[]、[]、[]、lb、ub、@circlecon)
优化终止:网格尺寸小于选项。MeshTolerance和constraint violation小于options. constraintolerance。X = 0.6523 0.4258

将问题转化为解决方法代理选择

objconstr=packfcn(ros,@circlecon);xs=代理选项(objconstr、lb、ub)
Surrogateopt停止,因为它超过了'options.MaxFunctionEvaluations'设置的函数求值限制。x = 0.6543 0.4284

另见

|

相关的话题