求解一个很简单的线性规划的问题,要求x,y,z的范围都是[1,5]。如果在程序中这样写: max=120*x+80*y+50*z; 150*x+90*y+60*z<=1250; @BND(1,x,5); @BND(1,y,5); @BND(1,z,5); @gin(x); @gin(y); @gin(z);
连续点击运行按钮,会出现不同的结果。
第一次的运行结果是正解的,后面的就不对了。
不使用Lingo提供的@BND函数,就不会出现上述问题。代码如下:
max=120*x+80*y+50*z;
150*x+90*y+60*z<=1250;
x>=1;
x<=5;
y>=1;
y<=5;
z>=1;
z<=5;
@gin(x);
@gin(y);
@gin(z);
最新发现:8.0没有这个问题,用9.0的时候会有这个问题。
1 MAX 2x + 3Y 2 ST 3 !说明:也可写成S.T.,SUCH THAT 或SUBJECT TO等 4 c2) 4 X + 5 3Y <= 10 6 c3) 3x + 5 y < 12 7 END
1 MIN 5 A0 +6 A1 +2 A2 +4 B0 +3 B1 +7 B2 +2 C0 +9 C1 +8 C2 2 SUBJECT TO 3 2) A0 +A1 +A2<=8 4 3) B0 +B1 +B2<=9 5 4) C0 +C1 +C2<=6 6 5) A0 +B0 +CO =6 7 6) A1 +B1 +C1 =5 8 7) A2 +B2 +C2 =9 9 END
1 MAX 2x - 3Y + 4z 2 S.T. 3 con2) 4 X + 3Y + 2z <= 10 4 con3) -3x + 5 y - z < 12 5 con4) x + y + 5z > 8 6 con5) -5x- y -z > 2 7 END 8 free x !说明:变量x没有非负限制 9 sub y 20 !说明:变量y的上界为20 10 slb z 30 !说明:变量z的下界为30
1 MAX 60 DESKS + 30 TABLES + 20 CHAIRS 2 SUBJECT TO 3 2) 8 DESKS + 6 TABLES + CHAIRS <= 48 4 3) 4 DESKS + 2 TABLES + 1.5 CHAIRS <= 20 5 4) 2 DESKS + 1.5 TABLES + 0.5 CHAIRS <= 8 6 5) TABLES <= 5 7 END
max 72x1+64x2 ST!或者s.t.,不能是s.t milk) x1+x2<50 time) 12x1+8x2<480 shop) 3x1<100 end
1 max 2x1+3x2+4x3 2 st 3 1.5x1+3x2+5x3<600 4 280x1+250x2+400x3<60000 5 x1-1000y1<0 6 x2-1000y2<0 7 x3-1000y3<0 8 x1-80y1>0 9 x2-80y2>0 10 x3-80y3>0 11 end 12 int y1 13 int y2 14 int y3
1 model: 2 max = 2*x1 + 5*x2 - 3*x3; 3 x1+5*x2<=123; 4 x2+7*x3<=76; 5 @gin(x1); 6 @gin(x2); 7 @gin(x3); 8 @bnd(1,x1,100); 9 @bnd(2,x2,76); 10 end
1 MIN 5 A0 +6 A1 +2 A2 +4 B0 +3 B1 +7 B2 +2 C0 +9 C1 +8 C2 2 SUBJECT TO 3 2) A0 +A1 +A2<=8 4 3) B0 +B1 +B2<=9 5 4) C0 +C1 +C2<=6 6 5) A0 +B0 +CO =6 7 6) A1 +B1 +C1 =5 8 7) A2 +B2 +C2 =9 9 END