model:
sets:
number/1..4/:tMu,tMd,TAu,TAd,TDu,TDd,TSu,TSd,TPSu,TPSd,tPu,tPd,TRSu,TRSd,TGSu,TGSd,TPEu,TPEd,TGEu,TGEd,Ou,Od,Su,Sd,Rd,PIu,PId,n,k;
num/1..2/;
links(number,num):tTu,tTd;
endsets
data:
Su=0.34 0.32 0.30 0.32;
Sd=0.28 0.30 0.32 0.30;
Rd=0.08 0.04 0 -0.04;
tPu=60 60 60 60;
tPd=60 60 60 60;
tTu=32 32
32 32
32 32
32 32;
tTd=32 32
32 32
32 32
32 32;
enddata
tMu(1)=@if(TGSu(1)-TAu(1)#lt#0,0,TGSu(1)-TAu(1));
TDu(1)=TAu(1)+tMu(1);
TSu(1)=TDu(1)+tTu(1,2);
@for(number(i)|i#ge#2:TAu(i)=TSu(i-1)+tTu(i,1));
@for(number(i)|i#ge#2:tMu(i)=@if(TGSu(i)-TAu(i)#lt#0,0,TGSu(i)-TAu(i)));
@for(number(i)|i#ge#2:TDu(i)=TAu(i)+tMu(i));
@for(number(i)|i#ge#2:TSu(i)=TDu(i)+tTu(i,2));
tMd(4)=@if(TGSd(4)-TAd(4)#lt#0,0,TGSd(4)-TAd(4));
TDd(4)=TAd(4)+tMd(4);
TSd(4)=TDd(4)+tTd(4,2);
@for(number(i)|i#le#3:TAd(i)=TSd(i+1)+tTu(i,1));
@for(number(i)|i#le#3:tMd(i)=@if(TGSd(i)-TAd(i)#lt#0,0,TGSd(i)-TAd(i)));
@for(number(i)|i#le#3:TDd(i)=TAd(i)+tMd(i));
@for(number(i)|i#le#3:TSd(i)=TDd(i)+tTu(i,2));
@for(number(i):TPSu(i)=@if(TGSu(i)-tPu(i)#ge#TRSu(i),TRSu(i),TGSu(i)-tPu(i)));
@for(number(i):TRSu(i)=TGSu(i)-C*(1-Su(i)));
@for(number(i):TGSu(i)=Ou(i)+n(i)*C;@gin(n(i)));
@for(number(i):TPSd(i)=@if(TGSd(i)-tPd(i)#ge#TRSd(i),TRSd(i),TGSd(i)-tPd(i)));
@for(number(i):TRSd(i)=TGSd(i)-C*(1-Sd(i)));
@for(number(i):TGSd(i)=Od(i)+k(i)*C;@gin(k(i)));
@for(number(i):TPEu(i)=@if(TGSu(i)+tPu(i)#ge#TGEu(i),TGEu(i),TGSu(i)+tPu(i)));
@for(number(i):TGEu(i)=TGSu(i)+C*Su(i));
@for(number(i):TPEd(i)=@if(TGSd(i)+tPd(i)#ge#TGEd(i),TGEd(i),TGSd(i)+tPd(i)));
@for(number(i):TGEd(i)=TGSd(i)+C*Sd(i));
@for(number(i):PIu(i)=@if(TPEu(i)-TAu(i)#ge#TAu(i)-TPSu(i),TAu(i)-TPSu(i),TPEu(i)-TAu(i)));
@for(number(i):PId(i)=@if(TPEd(i)-TAd(i)#ge#TAd(i)-TPSd(i),TAd(i)-TPSd(i),TPEd(i)-TAd(i)));
@for(number(i):Od(i)=Ou(i)-C*(1-Su(i))/2+C*Rd+C*(1-Sd(i))/2+l*C);@gin(l);
@for(number(i):Ou(i)<C);
@for(number(i):Od(i)<C);
@for(number(i):TRSu(i)<TAu(i));
@for(number(i):TAu(i)<TGEu(i));
@for(number(i):TRSd(i)<TAd(i));
@for(number(i):TAd(i)<TGEd(i));
C>=130;C<=150;@gin(C);
max=0.5*(@min(number(i):PIu)+@min(number(i):PId));
end
sets:
number/1..4/:tMu,tMd,TAu,TAd,TDu,TDd,TSu,TSd,TPSu,TPSd,tPu,tPd,TRSu,TRSd,TGSu,TGSd,TPEu,TPEd,TGEu,TGEd,Ou,Od,Su,Sd,Rd,PIu,PId,n,k;
num/1..2/;
links(number,num):tTu,tTd;
endsets
data:
Su=0.34 0.32 0.30 0.32;
Sd=0.28 0.30 0.32 0.30;
Rd=0.08 0.04 0 -0.04;
tPu=60 60 60 60;
tPd=60 60 60 60;
tTu=32 32
32 32
32 32
32 32;
tTd=32 32
32 32
32 32
32 32;
enddata
tMu(1)=@if(TGSu(1)-TAu(1)#lt#0,0,TGSu(1)-TAu(1));
TDu(1)=TAu(1)+tMu(1);
TSu(1)=TDu(1)+tTu(1,2);
@for(number(i)|i#ge#2:TAu(i)=TSu(i-1)+tTu(i,1));
@for(number(i)|i#ge#2:tMu(i)=@if(TGSu(i)-TAu(i)#lt#0,0,TGSu(i)-TAu(i)));
@for(number(i)|i#ge#2:TDu(i)=TAu(i)+tMu(i));
@for(number(i)|i#ge#2:TSu(i)=TDu(i)+tTu(i,2));
tMd(4)=@if(TGSd(4)-TAd(4)#lt#0,0,TGSd(4)-TAd(4));
TDd(4)=TAd(4)+tMd(4);
TSd(4)=TDd(4)+tTd(4,2);
@for(number(i)|i#le#3:TAd(i)=TSd(i+1)+tTu(i,1));
@for(number(i)|i#le#3:tMd(i)=@if(TGSd(i)-TAd(i)#lt#0,0,TGSd(i)-TAd(i)));
@for(number(i)|i#le#3:TDd(i)=TAd(i)+tMd(i));
@for(number(i)|i#le#3:TSd(i)=TDd(i)+tTu(i,2));
@for(number(i):TPSu(i)=@if(TGSu(i)-tPu(i)#ge#TRSu(i),TRSu(i),TGSu(i)-tPu(i)));
@for(number(i):TRSu(i)=TGSu(i)-C*(1-Su(i)));
@for(number(i):TGSu(i)=Ou(i)+n(i)*C;@gin(n(i)));
@for(number(i):TPSd(i)=@if(TGSd(i)-tPd(i)#ge#TRSd(i),TRSd(i),TGSd(i)-tPd(i)));
@for(number(i):TRSd(i)=TGSd(i)-C*(1-Sd(i)));
@for(number(i):TGSd(i)=Od(i)+k(i)*C;@gin(k(i)));
@for(number(i):TPEu(i)=@if(TGSu(i)+tPu(i)#ge#TGEu(i),TGEu(i),TGSu(i)+tPu(i)));
@for(number(i):TGEu(i)=TGSu(i)+C*Su(i));
@for(number(i):TPEd(i)=@if(TGSd(i)+tPd(i)#ge#TGEd(i),TGEd(i),TGSd(i)+tPd(i)));
@for(number(i):TGEd(i)=TGSd(i)+C*Sd(i));
@for(number(i):PIu(i)=@if(TPEu(i)-TAu(i)#ge#TAu(i)-TPSu(i),TAu(i)-TPSu(i),TPEu(i)-TAu(i)));
@for(number(i):PId(i)=@if(TPEd(i)-TAd(i)#ge#TAd(i)-TPSd(i),TAd(i)-TPSd(i),TPEd(i)-TAd(i)));
@for(number(i):Od(i)=Ou(i)-C*(1-Su(i))/2+C*Rd+C*(1-Sd(i))/2+l*C);@gin(l);
@for(number(i):Ou(i)<C);
@for(number(i):Od(i)<C);
@for(number(i):TRSu(i)<TAu(i));
@for(number(i):TAu(i)<TGEu(i));
@for(number(i):TRSd(i)<TAd(i));
@for(number(i):TAd(i)<TGEd(i));
C>=130;C<=150;@gin(C);
max=0.5*(@min(number(i):PIu)+@min(number(i):PId));
end