model:
title:assignment lowcost;
sets:
commercial/1..4/:m;!商品种类 已知;
client/1..8/:c;!客户 已知;
supply/1..5/:w;!货栈 已知;
links(supply,client):q,x;!货栈和客户的对应道路最短时间 已知和要求的安排车次 未知;
price(commercial,supply):p;!单价 已知;
demands(commercial,client):d;!需求量 已知;
maxstream(commercial,supply):h;!最大流通量 已知;
num(links,commercial):s;!每一辆卡车里面装某种商品S单位 未知;
endsets
data:
!四种商品在不同货栈的单位成本;
p=1.00,1.05,0.95,1.06,1.08
0.20,0.19,0.18,0.19,0.19
0.30,0.29,0.28,0.28,0.27
0,0,0,0,1.90;
!8个客户对4种商品的需求量;
d=15,10,18,20,28,25,20,20
39,35,36,38,35,41,33,38
81,85,84,82,95,99,87,82
15,10,12,10,22,25,10,10;
!5个货栈对4种商品的最大流通量;
h=50,30,70,30,20
50,70,90,60,60
130,140,170,160,120
0,0,0,0,120;
!从货栈i到客户j的最短时间(单位运输成本,用时间表示单位小时h);
q=3.66,5.66,6.48,1.24,1.65,3.64,3.17,7.15
4.26,2.34,1.63,3.79,6.67,3.97,7.63,8.95
4.23,3.74,6.49,5.94,8.73,3.54,9.40,7.92
6.04,8.04,8.59,3.87,3.46,5.19,1.94,3.89
9.17,11.16,11.30,8.10,8.07,7.90,6.55,0.72;
enddata
[email=min=@smin(@sum(supply(i)%3Cimg%20src=]sum(client(j):x(i,j)*(q(i,j)+@sum(commercial(k):p(k,i)*s(i,j,k" target="_blank">min=@smin(@sum(supply(i) sum(client(j):x(i,j)*(q(i,j)+@sum(commercial(k):p(k,i)*s(i,j,k[/email]))))));
@for(client(j) for(commercial(k) sum(supply(i):s(i,j,k)*x(i,j))=d(k,j)));!需求约束;
@for(supply(i) for(commercial(k) sum(client(j):s(i,j,k)*x(i,j))<=h(k,i)));!最大流通量约束;
@for(supply(i) for(client(j) s(i,j,1)+s(i,j,4))*(s(i,j,2)+s(i,j,3))=0));!混装约束;
@for(supply(i) for(client(j) sum(commercial(k):s(i,j,k))<=10));!载重约束;
@for (links(i,j): @gin(x(i,j)));
end |