GAMS/LOGMIP error - logmip can not handle universe as domain

Archive of Gamsworld Google Group
Post Reply
Archiver
User
User
Posts: 7876
Joined: 7 years ago

GAMS/LOGMIP error - logmip can not handle universe as domain

Post by Archiver »



Pleasant greetings.

I am working on a mixed-integer linear programing model with
disjunctions and trying to solve it using GAMS/LOGMIP on refinery
optimization problem. However, I could not overcome the problem posed
by the error message "logmip can not handle universe as domain". I
would greatly appreciate if you could assist me.

Here I provide the codes on LOGMIP part.
Thank you very much indeed for your time and effort!

INOUT1_1.. 0.2088*f('3') =e= f('38');
INOUT1_2.. 0.0555*f('3') =e= f('32');
INOUT1_3.. 0.1533*f('3') =e= f('21');
INOUT1_4.. f('38') =e= 0;
INOUT1_5.. f('32') =e= 0;
INOUT1_6.. f('21') =e= 0;
INOUT1_7.. f('3') =e= 0;
COST1_1.. c('A') =e= 228;

INOUT2_1.. 0.0109*(f('22')+f('13')) =e= f('6');
INOUT2_2.. 0.0012*(f('22')+f('13')) =e= f('15');
INOUT2_3.. 0.0058*(f('22')+f('13')) =e= f('27');
INOUT2_4.. 0.2610*(f('22')+f('13')) =e= f('33');
INOUT2_5.. 0.7211*(f('22')+f('13')) =e= f('23');
INOUT2_6.. 0.9821*(f('22')+f('13')) =e= f('41');
INOUT2_7.. f('6') =e= 0;
INOUT2_8.. f('15') =e= 0;
INOUT2_9.. f('27') =e= 0;
INOUT2_10.. f('33') =e= 0;
INOUT2_11.. f('23') =e= 0;
INOUT2_12.. f('41') =e= 0;
INOUT2_13.. f('22') =e= 0;
INOUT2_14.. f('13') =e= 0;
COST2_1.. c('G') =e= 96;

INOUT3_1.. 0.0109*(f('39')+f('14')) =e= f('7');
INOUT3_2.. 0.0012*(f('39')+f('14')) =e= f('16');
INOUT3_3.. 0.0058*(f('39')+f('14')) =e= f('29');
INOUT3_4.. 0.2610*(f('39')+f('14')) =e= f('34');
INOUT3_5.. 0.7211*(f('39')+f('14')) =e= f('24');
INOUT3_6.. 0.9821*(f('39')+f('14')) =e= f('40');
INOUT3_7.. f('7') =e= 0;
INOUT3_8.. f('16') =e= 0;
INOUT3_9.. f('29') =e= 0;
INOUT3_10.. f('34') =e= 0;
INOUT3_11.. f('24') =e= 0;
INOUT3_12.. f('40') =e= 0;
INOUT3_13.. f('39') =e= 0;
INOUT3_14.. f('14') =e= 0;
COST3_1.. c('H') =e= 96;


$ONECHO > "%lm.info%"

Disjunction DA,DG,DH;

DA is if Y('A') then
INOUT1_1;
INOUT1_2;
INOUT1_3;
COST1_1;
else
INOUT1_4;
INOUT1_5;
INOUT1_6;
INOUT1_7;
endif;
DG is if Y('G') then
INOUT2_1;
INOUT2_2;
INOUT2_3;
INOUT2_4;
INOUT2_5;
INOUT2_6;
COST2_1;
else
INOUT2_7;
INOUT2_8;
INOUT2_9;
INOUT2_10;
INOUT2_11;
INOUT2_12;
INOUT2_13;
INOUT2_14;
endif;

DH is if Y('H') then
INOUT3_1;
INOUT3_2;
INOUT3_3;
INOUT3_4;
INOUT3_5;
INOUT3_6;
COST3_1;
else
INOUT3_7;
INOUT3_8;
INOUT3_9;
INOUT3_10;
INOUT3_11;
INOUT3_12;
INOUT3_13;
INOUT3_14;
endif;

ATMOST(Y('G'),Y('H'));

Y('A') Y('G') or Y('H');

Z('3') -> Y('A');
Y('A') -> Z('3');
Y('A') -> Z('32') or Z('21') or Z('38');
Z('32') -> Y('A');
Z('21') -> Y('A');
Z('38') -> Y('A');

$OFFECHO
--~--~---------~--~----~------------~-------~--~----~
To post to this group, send email to gamsworld@googlegroups.com
To unsubscribe from this group, send email to gamsworld+unsubscribe@googlegroups.com
For more options, visit this group at http://groups.google.com/group/gamsworld?hl=en
-~----------~----~----~----~------~----~------~--~---


Archiver
User
User
Posts: 7876
Joined: 7 years ago

Re: GAMS/LOGMIP error - logmip can not handle universe as domain

Post by Archiver »



Yeoh,

It seems your are using a GAMS symbol which you declared using the
universe symbol * e.g.

BINARY VARIABLES Y(*);

LogMIP cannot handle such GAMS symbols. Unfortunately, you did not
attach this part of the code so I can't tell you which one it is. You
will have to declare the symbol using a well defined set, e.g.

set a / A, G, H /;
BINARY VARIABLES Y(a);

If this doesn't help, please feel free to send me your code!
Jan


Yeoh wrote:
> > Pleasant greetings.
> >
> > I am working on a mixed-integer linear programing model with
> > disjunctions and trying to solve it using GAMS/LOGMIP on refinery
> > optimization problem. However, I could not overcome the problem posed
> > by the error message "logmip can not handle universe as domain". I
> > would greatly appreciate if you could assist me.
> >
> > Here I provide the codes on LOGMIP part.
> > Thank you very much indeed for your time and effort!
> >
> > INOUT1_1.. 0.2088*f('3') =e= f('38');
> > INOUT1_2.. 0.0555*f('3') =e= f('32');
> > INOUT1_3.. 0.1533*f('3') =e= f('21');
> > INOUT1_4.. f('38') =e= 0;
> > INOUT1_5.. f('32') =e= 0;
> > INOUT1_6.. f('21') =e= 0;
> > INOUT1_7.. f('3') =e= 0;
> > COST1_1.. c('A') =e= 228;
> >
> > INOUT2_1.. 0.0109*(f('22')+f('13')) =e= f('6');
> > INOUT2_2.. 0.0012*(f('22')+f('13')) =e= f('15');
> > INOUT2_3.. 0.0058*(f('22')+f('13')) =e= f('27');
> > INOUT2_4.. 0.2610*(f('22')+f('13')) =e= f('33');
> > INOUT2_5.. 0.7211*(f('22')+f('13')) =e= f('23');
> > INOUT2_6.. 0.9821*(f('22')+f('13')) =e= f('41');
> > INOUT2_7.. f('6') =e= 0;
> > INOUT2_8.. f('15') =e= 0;
> > INOUT2_9.. f('27') =e= 0;
> > INOUT2_10.. f('33') =e= 0;
> > INOUT2_11.. f('23') =e= 0;
> > INOUT2_12.. f('41') =e= 0;
> > INOUT2_13.. f('22') =e= 0;
> > INOUT2_14.. f('13') =e= 0;
> > COST2_1.. c('G') =e= 96;
> >
> > INOUT3_1.. 0.0109*(f('39')+f('14')) =e= f('7');
> > INOUT3_2.. 0.0012*(f('39')+f('14')) =e= f('16');
> > INOUT3_3.. 0.0058*(f('39')+f('14')) =e= f('29');
> > INOUT3_4.. 0.2610*(f('39')+f('14')) =e= f('34');
> > INOUT3_5.. 0.7211*(f('39')+f('14')) =e= f('24');
> > INOUT3_6.. 0.9821*(f('39')+f('14')) =e= f('40');
> > INOUT3_7.. f('7') =e= 0;
> > INOUT3_8.. f('16') =e= 0;
> > INOUT3_9.. f('29') =e= 0;
> > INOUT3_10.. f('34') =e= 0;
> > INOUT3_11.. f('24') =e= 0;
> > INOUT3_12.. f('40') =e= 0;
> > INOUT3_13.. f('39') =e= 0;
> > INOUT3_14.. f('14') =e= 0;
> > COST3_1.. c('H') =e= 96;
> >
> >
> > $ONECHO > "%lm.info%"
> >
> > Disjunction DA,DG,DH;
> >
> > DA is if Y('A') then
> > INOUT1_1;
> > INOUT1_2;
> > INOUT1_3;
> > COST1_1;
> > else
> > INOUT1_4;
> > INOUT1_5;
> > INOUT1_6;
> > INOUT1_7;
> > endif;
> > DG is if Y('G') then
> > INOUT2_1;
> > INOUT2_2;
> > INOUT2_3;
> > INOUT2_4;
> > INOUT2_5;
> > INOUT2_6;
> > COST2_1;
> > else
> > INOUT2_7;
> > INOUT2_8;
> > INOUT2_9;
> > INOUT2_10;
> > INOUT2_11;
> > INOUT2_12;
> > INOUT2_13;
> > INOUT2_14;
> > endif;
> >
> > DH is if Y('H') then
> > INOUT3_1;
> > INOUT3_2;
> > INOUT3_3;
> > INOUT3_4;
> > INOUT3_5;
> > INOUT3_6;
> > COST3_1;
> > else
> > INOUT3_7;
> > INOUT3_8;
> > INOUT3_9;
> > INOUT3_10;
> > INOUT3_11;
> > INOUT3_12;
> > INOUT3_13;
> > INOUT3_14;
> > endif;
> >
> > ATMOST(Y('G'),Y('H'));
> >
> > Y('A') Y('G') or Y('H');
> >
> > Z('3') -> Y('A');
> > Y('A') -> Z('3');
> > Y('A') -> Z('32') or Z('21') or Z('38');
> > Z('32') -> Y('A');
> > Z('21') -> Y('A');
> > Z('38') -> Y('A');
> >
> > $OFFECHO
>> > >


Post Reply