线性规划模型:
代码求解:
lingo代码如下
model: #程序的开始
sets: #变量声明的开始
var/1..2/:x; #声明x1,x2
endsets
max=4*x(1)+3*x(2);
2*x(1)+x(2)<=10;
x(1)+x(2)<=8;
x(2)<=7;
End
运行结果:
x(1)取2,x(2)取6时取得最大值26
lingo代码:
model:
sets:
kar/1..3/;
car/1..4/;
var(kar,car):x;
endsets
min=160*x(1,1)+130*x(1,2)+220*x(1,3)+170*x(1,4)+140*x(2,1)+130*x(2,2)+190*x(2,3)
+150*x(2,4)+190*x(3,1)+200*x(3,2)+230*x(3,3);
x(1,1)+x(1,2)+x(1,3)+x(1,4)=50;
x(2,1)+x(2,2)+x(2,3)+x(2,4)=60;
x(3,1)+x(3,2)+x(3,3)=50;
x(1,1)+x(2,1)+x(3,1)<=80;
x(1,1)+x(2,1)+x(3,1)>=30;
x(1,2)+x(2,2)+x(3,2)<=140;
x(1,2)+x(2,2)+x(3,2)>=70;
x(1,3)+x(2,3)+x(3,3)<=30;
x(1,3)+x(2,3)+x(3,3)>=10;
x(1,4)+x(2,4)<=50;
x(1,4)+x(2,4)>=10;
End
运行结果:
非线性规划模型:
LINGO求解代码:
model:
sets:
kar/1..2/;
car/1..2/;
var(kar,car):x;
var2/1..3/:y;
endsets
max=4.8*x(1,1)+4.8*x(2,1)+5.6*x(1,2)+5.6*x(2,2)-10*y(1)-8*y(2)-6*y(3);
x(1,1)+x(1,2)<y(1)+y(2)+y(3)+500;
x(2,1)+x(2,2)<1000;
x(1,1)-x(2,1)>0;
2*x(1,2)-3*x(2,2)>0;
(y(1)-500)*y(2)=0;
(y(2)-500)*y(3)=0;
y(1)<500;
y(2)<500;
y(3)<500;
End
求得结果:
0-1规划模型