关于lingo的一段代码,问能不能运行成功。如果出错,错在哪里?

来源:百度知道 编辑:UC知道 时间:2024/06/10 14:51:24
MODEL:
max =0.7*(2*k1+13*k3+k6*4+k11*6+k13*9+k14*3)*a*r+(k1+k2)*(0.7-0.2*(k1+k2-1))*4*a*r+(k1+k3)*(0.7-0.2*(k1+k3-1))*6*a*r+(k4+k2)*(0.7-0.2*(k4+k2-1))*9*a*r+(k4+k5)*(0.7-0.2*(k4+k5-1))*10*a*r+(k3+k6)*(0.7-0.2*(k6+k3-1))*8*a*r+(k3+k6)*(0.7-0.2*(k3+k6-1))*11*a*r+(k6+k7)*(0.7-0.2*(k7+k6-1))*6*a*r+((k3+k4+k5)*(0.7-0.2*(k3+k4+k5-1))+0.1*k3*k4*k5)*12*a*r+((k5+k6+k7)*(0.7-0.2*(k5+k6+k7-1))+0.1*k5*k6*k7)*14*a*r;

9*k1+6.5*k2+20*k3+14.5*k4+19*k5+13*k6+10.5*k7<=50;
@bin(k1);@bin(k2);@bin(k3);@bin(k4);@bin(k5);@bin(k6);@bin(k7);
END

就是一个最优的问题

语法分析,这段代码没有问题,算不出来的原因是因为你的约束条件构不成一个封闭的域。
简单的说,如果用线性规划的方法来画图你会发现这个约束条件是没有上限的。
那么,你的max函数当然是不能取得值的!

解决这个问题,你需要增加约束条件来限制目标函数要么只有改变目标函数。

或许是你所用的LINGO版本较低所致,用LINGO10以上的版本试试看.
下面是用LINGO10求解的结果
Linearization components added:
Constraints: 404
Variables: 101

Local optimal solution found.
Objective value: 0.1350010E-04
Extended solver steps: 237
Total solver iterations: 74838

Variable Value Reduced Cost
K1 1.000000 1440000.
K3 1.000000 4960000.
K6 0.000000 -4550000.
K11 13.23000 0.000000
K13 14.23000 0.000000