model: sets: from/1..7/:supply,p,S; to/1..15/:get,allQR,allQL; fromto(from,to) ,F,QR,QL; distance/1..14/:len; endsets min = @sum(from(i):p(i)*supply(i))+@sum(fromtF*Q)+0.1/2*@sum(to(j):allQR(j)^2+allQL(j)^2-allQR(j)-allQL(j)); @for(from(i): @sum(to(j) (i,j))=supply(i);); @for(to(j): @sum(from(i) (i,j))=get(j); @sum(from(i) R(i,j))=allQR(j); @sum(from(i) L(i,j))=allQL(j); ); @sum(from(i):supply(i))=@sum(to(j):get(j)); @for(to(j)|j #ge# 2 :allQR(j-1)+allQL(j)=len(j-1);); allQL(1)=0; allQR(1)=0; @for(from(i):supply(i)>=500;supply(i)<=S(i);); data: F= 170.7000 160.3000 141.2000 98.6000 38.0000 20.5000 3.1000 21.2000 64.2000 94.0000 96.0000 108.0000 125.2000 130.0000 143.1000 210.7000 200.3000 191.2000 172.6000 112.0000 95.5000 87.0000 71.2000 115.2000 144.0000 150.0000 158.0000 175.2000 180.00 194.0000 225.7000 215.3000 202.2000 182.6000 122.0000 106.5000 97.0000 86.2000 48.2000 82.0000 89.0000 96.0000 114.2000 119.0000 132.0000 255.7000 245.3000 236.2000 217.6000 157.0000 140.5000 132.0000 116.2000 88.2000 62.0000 51.0000 61.0000 79.2000 84.0000 98.0000 253.7000 243.3000 229.2000 210.6000 150.0000 133.5000 125.0000 114.2000 81.2000 57.0000 33.0000 51.0000 72.0000 77.0000 91.0000 254.7000 244.3000 230.2000 211.6000 151.0000 134.5000 126.0000 115.2000 82.2000 62.0000 51.0000 45.0000 26.2000 11.0000 28.0000 266.7000 256.3000 243.2000 223.6000 163.0000 147.5000 138.0000 127.2000 94.2000 78.0000 68.0000 56.0000 38.2000 26.0000 2.0000; p = 160 155 155 160 155 150 160; S= 800 800 1000 2000 2000 2000 3000 ; len=104 301 750 606 194 205 201 680 480 300 220 210 420 500 ; enddata end |