wzqhnn 发表于 2011-7-12 14:37

哪位大侠帮忙改错 lingo

MAX=4*x1+5*x2+6*x3-100*y1-150*y2-200*y3;
       2*x1+4*x2+8*x3<=500;
       2*x1+3*x2+4*x3<=300;
       2*x1+2*x2+3*x3<=100;

        x1-100*y1<=0
        x2-100*y2<=0;
        x3-100*y3<=0;

x1, x2 ,x3>=0;且为整数   y1y2y3为0或者为1
以下是我的解法,但是出错了 ,求解      哪位大侠帮帮忙哦  不僧感激   共同进步{:soso_e100:}


我的解法是:         
model:
sets:
move/1..3/:x,y,a,b,c,d,e,g;
endsets
data:
a=4,5,6;
b=2,2,1;
c=4,3,2;
d=8,4,3;
e=100,100,100;
g=100,150,200;
f=500;k=300;m=100;
enddata
max=@sum(move(i):a(i)*x(i)-g(i)*y(i));
@for(move(i):@sum(b(i)*x(i))<=f);
@for(move(i):@sum(c(i)*x(i))<=k);
@for(move(i):@sum(d(i)*x(i))<=m);
@for(move(i):x(i)<e(i)*y(i));
@for(move(i):@GIN(x(i)));
@for(move(i):@BIN(y(i)));
end

草船借箭 发表于 2011-7-17 16:52

错误一,你的b赋值时错了;
错误二,@for(move(i)sum(b(i)*x(i))<=f)表达的是2*x1+2*x2+1*x3<=500。lingo中的乘法不是向量乘法,就是一项一项的相乘的。仔细检查以下

alair005 发表于 2012-2-7 17:12

页: [1]
查看完整版本: 哪位大侠帮忙改错 lingo