关于Lingo的一个问题
本帖最后由 WonderForYou 于 2009-8-18 13:42 编辑设定变量成集合以后为什么不出结果?
直接用变量出结果
MODEL:
MAX= 4800 * T1 + 5600 * T2 - 10000 * X1 - 8000 * X2 - 6000 * X3 ;
( X1 - 500 ) * X2 = 0 ;
( X2 - 500 ) * X3 = 0 ;
X1 <= 500 ;
X2 <= 500 ;
X3 <= 500 ;
- X1 - X2 - X3 + A1 + A2 <= 500 ;
- T1 - T2 + X1 + X2 + X3 >= - 1500 ;
A1 - 0.5 * T1 >= 0 ;
A2 - 0.6 * T2 >= 0 ;
END
用集合不出结果
MODEL:
MAX= - 10000 * X_1 - 8000 * X_2 - 6000 * X_3 + 4800 * T_1 + 5600 *
T_2 ;
( X_1 - 500 ) * X_2 = 0 ;
( X_2 - 500 ) * X_3 = 0 ;
X_1 <= 500 ;
X_2 <= 500 ;
X_3 <= 500 ;
- X_1 - X_2 - X_3 + A_1 + A_2 <= 500 ;
X_1 + X_2 + X_3 - T_1 - T_2 >= - 1500 ;
A_1 - 0.5 * T_1 >= 0 ;
A_2 - 0.6 * T_2 >= 0 ;
END
源程序1:
max=4800*t1+5600*t2-10000*x1-8000*x2-6000*x3;
(x1-500)*x2=0;
(x2-500)*x3=0;
x1<=500;
x2<=500;
x3<=500;
a1+a2<=x1+x2+x3+500;
x1+x2+x3+1500>=t1+t2;
2*a1>=t1;
5*a2>=3*t2;
end
源程序2:
sets:
o/1..2/:p,a,t,r;
q/1..3/:p1,x;
endsets
data:
r=0.5 0.6;
p=4800 5600;
p1=10000 8000 6000;
enddata
max=@sum(o(i):p(i)*t(i))-@sum(q(i):x(i)*p1(i));
(x(1)-500)*x(2)=0;
(x(2)-500)*x(3)=0;
@for(q(i):x(i)<=500);
@sum(o(i):a(i))<=@sum(q(i):x(i))+500;
@sum(q(i):x(i))+1500>=@sum(o(i):t(i));
@for(o(i):a(i)>=t(i)*r(i));
end
为什么? ??????????????????? 我是了一下,求局部最优解时有问题,可能是两种写法的内部求解机构或顺序有变化。但求全局最优解时时没有问题的。 ????????????????????????
页:
[1]