1stOpt求解最大最小优化问题
附件是一篇论文《约束极小极大问题的光滑化牛顿方法》,有兴趣的可下载先看一下。下面是用1stOpt求解上述论文三道实例的代码及结果,大家也可用其它软件来计算对比一下。例1:
Algorithm = DE;
ConstStr f1=-2*x1+2*x2^2, f2=x1, f3=x2^2;
MinMax f(1:3);
x1+x2^2>=0;
结果:x1=0, x2=0, MinMax=0,与论文相同
例2:
Algorithm = DE;
ConstStr f1=x2-x1^2, f2=-f1, f3=1-x1, f4=-f3;
MinMax f(1:4);
-100*x1^2-x2+101>=0;
-80*x1^2-x2+79>=0;
结果:
x1: 0.987654320987654
x2: 0.963115378753246
极大极小值(MinMax): 0.0123456790123457
原文给出的精确解为:x1=1, x2=1,代入第二个约束为-2,明显不满足约束条件,仔细检查,估计是把”-80*x1^2+x2+79“写成了”-80*x1^2-x2+79“,国内学报上这种低级错误不少,大家参考时当心。
将第二个约束改正后,可得结果:x1=1, x2=2, MinMax = 0
例3:
Algorithm = DE;
ConstStr f1=x1^2+x2^2+x3^2+x4^2-5*x1-5*x2-21*x3+7*x4;
ConstStr f2=11*x1^2+11*x2^2+12*x3^2+11*x4^2+5*x1-15*x2-11*x3-3*x4-80;
ConstStr f3=11*x1^2+31*x2^2+12*x3^2+21*x4^2+15*x1-5*x2-21*x3-3*x4-100;
ConstStr f4=11*x1^2+11*x2^2+12*x3^2+x4^2+15*x1-15*x2-21*x3-3*x4-50;
MinMax f(1:4);
-x1^2-x2^2-x3^2-x4^2-x1+x2-x3-x4+8>=0;
-x1^2-2*x2^2-x3^2-2*x4^2-x1+x4+10>=0;
-x1^2-x2^2-x3^2-2*x1+x4+5>=0;
原文说该例没有精确解,只得到近似解:x1=0.0125,x2=1.0266,x3=2.0772,x4=-1.1344, MinMax-50.10181299,但将该结果代入检验,约束条件2和3均小于0,不满足条件。
1stOpt可得唯一解:
x1: -0.355643265762256
x2: 0.73197296641911
x3: 2.13925205103103
x4: -0.725584902597681
极大极小值(MinMax): -46.1198965483511
希望对大家有借鉴作用。 可是1.5的版本没有minmax函数?是否需要2.0版本? 需要2.0以上的.
页:
[1]
