用lingo求解下面程序时老出现error code50(for函数用错了),但是没错误啊,求指点.

2025-05-09 15:59:00
推荐回答(1个)
回答1:

model:
sets:
factory/p1..p6/:p;
warhouse/w1..w4/:a,f,g;
customer/c1..c6/:d;
tr/tr1..tr4/:z;
link1(factory,warhouse):c,w;
link2(warhouse,customer):h,x;
endsets
data:
p=30000 40000 50000 60000 50000 30000;
a=80000 70000 80000 60000;
f=500000 300000 400000 400000;
g=4 3 6 5;
d=20000 30000 20000 30000 40000 20000;
c=7 5 4 3
2 3 4 8
5 7 6 5
7 4 2 3
5 3 6 1
3 4 2 6;
h=4 3 6 3 6 5
5 1 4 2 4 2
1 3 4 3 5 7
4 5 3 6 3 5;
enddata
min=@sum(link1(k,i):c(k,i)*w(k,i))+@sum(link2(i,j):h(i,j)*x(i,j))+@sum(link1(k,i):g(i)*w(k,i))+@sum(warhouse(i):f(i)*z(i));
@for(factory(k):
@sum(link1(k,i):w(k,i))<=p(k));
@for(warhouse(i):
@sum(link2(i,j):x(i,j))=@sum(link1(k,i):w(k,i)));
@for(customer(j):
@sum(link2(i,j):x(i,j))>=d(j));
@for(warhouse(i):
@sum(link1(k,i):w(k,i))<=(a(i)*z(i)));
@sum(tr(i):z(i))<=3;
@for(tr(i):@bin(z));
End