Code: Select all
BINARY VARIABLES
VARCLASS(A)$(ORD(A) LT CARD(A)/2) the first half are binary;
POSITIVE VARIABLES
VARCLASS(A)$(ORD(A) GE CARD(A)/2) the rest are continuous;
Moderator: aileen
Code: Select all
BINARY VARIABLES
VARCLASS(A)$(ORD(A) LT CARD(A)/2) the first half are binary;
POSITIVE VARIABLES
VARCLASS(A)$(ORD(A) GE CARD(A)/2) the rest are continuous;
Code: Select all
Set a 'all variables' /a1*a5/
abin(a) 'binary variables'
acont(a)'continuous variables';
abin (a)$(ord(a)<=(card(a)/2))=yes ;
acont(a)$(not abin(a))=yes;
display a, abin, acont;
Variables z, x;
Binary Variable x(a);
Equation obj;
obj.. z=e=sum(a, x(a));
z.up = card(a)-0.5;
Model foo /all/;
solve foo maximizing z using mip;
display z.l, x.l;
x.prior(a) =inf; x.prior(abin) = 1;
solve foo maximizing z using mip;
display z.l, x.l;
display x.lo, x.up;
Code: Select all
---- 20 VARIABLE z.L = 4.000
---- 20 VARIABLE x.L
a1 1.000, a2 1.000, a3 1.000, a4 1.000
Code: Select all
---- 24 VARIABLE z.L = 4.500
---- 24 VARIABLE x.L
a1 1.000, a2 1.000, a3 1.000, a4 1.000, a5 0.500
Code: Select all
---- 25 VARIABLE x.Lo
( ALL 0.000 )
---- 25 VARIABLE x.Up (1)
( ALL 1.000 )