Page 1 of 1

Define restriction in a variable

Posted: Sun May 14, 2017 5:59 pm
by Eduardo
Could i put a restriction in a variable, depending the valor of the same variable?
I try to put:

Code: Select all

Binary Variable: x(i,k)
R(i,k)..    x(i,k)$(x(i,k) eq 1) =g= x(i,k+1);
But this code doesn't work. How can i do something like before?
I want that if x(1,1)=1 =>x(1,2)=1 or 0 but if x(1,1)=0=> x(1,2)=1 or 0. (Because if a put x(i,k)=g=x(i,k+1) always x(1,1) will be 1 and i don't want.)

Please, I'm very grateful of your help.
Best Regards

Re: Define restriction in a variable

Posted: Mon May 15, 2017 5:30 pm
by cladelpino
Hola Eduardo.

What you are trying to accomplish is called disjunctive programming and is non trivial. Besides the theory to write that kind of constraints "on your own", there are some pre built solutions in GAMS. Checkout EMP: ... 1_2_3_0_13 and LogMIP:

Re: Define restriction in a variable

Posted: Tue May 23, 2017 7:59 pm
by Eduardo
Thank you very much Cladelpino.
Your advice was very useful. But I couldn't get a good solution with COUNNEE solvers. I had to use SCIP solver although this only compile 1000 seconds (less than I need).