sets:
Level/1..4/:P,z,Goal;
Variable/1..3/:x;
H_con_Num/1..2/:b;
S_Con_Num/1..5/:g,dplus,dminus;
H_Cons(H_con_Num,Variable):A;
S_Cons(S_Con_Num,Variable):C;
Obj(Level,S_Con_Num):Wplus,Wminus;
endsets
data:
P=????;
Goal=?,?,?,0;
b=360 300;
g=3200 0 30 200 200;
A=4 5 1 2 3 5;
C=40 30 50 1 -1.5 0 0 0 1 3 1 2 2 2 4;
Wplus=0 0 0 0 0
0 1 0 0 0
0 0 0 0 0
0 0 0 1 1;
Wminus=1 0 0 0 0
0 0 0 0 0
0 0 1 0 0
0 0 0 0 0;
enddata
min=@sum(Level:P*z);
@for(Level(i):
z(i)=@sum(S_Con_Num(j):Wplus(i,j)*dplus(j))+@sum(S_Con_Num(j):Wplus(i,j)*dminus(j))
);
@for(H_Con_Num(i):
@sum(Variable(j):A(i,j)*x(j))<=b(i););
@for(S_Con_Num(i):
@sum(Variable(j):C(i,j)*x(j))+dminus(i)-dplus(i)=g(i);
);
@for(Level(i)|i#lt#@size(Level):
@bnd(0,z(i),Goal(i));
);
end