model:
sets:
h/1..10/:a;
l/1..6/:b,d,p;
f/1..6/:s;
coo(h,l):x,q;
co(l,h):t;
cooperation(l,h,f):n;
endsets
data:
!总人数;
c=21623;
!各受灾点人数a(i);
a=3418,3521,2212,98,1655,2122,1352,986,4109,2150;
!各物资总量b(j);
b=68885000,68710000,2511,2283,3012,2851;
!未满足需求单位惩罚成本(千元)d(j);
d=0.1045,0.0105,3.736,3.485,0.00175,0.0035;
!不同受灾点间未满足需求差值的单位惩罚成本(千元)p(j);
p=0.5225,0.0525,18.68,17.425,0.00875,0.0175;
!各储备库到受灾点的时间t(i,j);
t=0.64,0.90,0.10,1.08,1.17,0.66,0.96,1.04,0.52,1.37
0.47,0.71,0.48,1.45,0.64,0.79,1.44,0.10,1.17,0.00
0.24,1.04,0.80,0.80,0.14,0.69,0.36,0.38,1.01,0.69
0.27,1.05,0.98,0.49,0.40,1.31,1.01,0.34,0.01,0.64
0.63,0.96,0.61,0.16,0.23,0.78,0.43,1.00,0.90,0.69
0.14,0.05,1.23,0.92,0.42,1.42,1.01,1.27,0.58,1.16;
!各受灾点的不同物资需求q(i,j);
q=10254,10254,513,513,103,103
10563,10563,528,528,106,106
6636,6636,332,332,66,66
294,294,15,15,3,3
4965,4965,248,248,50,50
6366,6366,318,318,64,64
4056,4056,203,203,41,41
2958,2958,148,148,30,30
12327,12327,616,616,123,123
6450,6450,323,323,65,65;
enddata
@for(l(j):@sum(h(i):x(i,j))=s(j));
min=@sum(l(j):@sum(h(i):@abs(c/s(j)-a(i)/x(i,j))))+@sum(l(i):@sum(h(j):t(i,j)*@sum(f(k):n(i,j,k)*d(k))))+@sum(l(j):@sum(h(i)|i#ne#m:@abs((q(i,j)-x(i,j))-(q(m,j)-x(m,j)))*p(j)))/2+@sum(l(j):@sum(h(i):(q(i,j)-x(i,j))*d(j)));
@for(l(j):@sum(h(i):x(i,j))<=b(j));
@for(l(j):@sum(h(i):x(i,j))<=s(j));
@for(coo:@gin(x));
end