Page 2 of 3

Re: Modeling the absolute value

Posted: Fri Jul 28, 2017 3:32 pm
by Manassaldi
You can find some here (page 14): http://www.minlp.org/pdf/GBDEWOGrossmann.pdf
Th Basic Steps are simple, the difficult is the manipulation of the propositions.
Best regard!

Re: Modeling the absolute value

Posted: Wed Aug 30, 2017 5:58 pm
by PeterBe
Hi guys, I have a further question:

I still have not fully understood how to modell the absolute value of a difference in GAMS. I have used the following equations for binary variables for modelling: abs(x(t) - y(t)):
eq_z_firstCondition(t).. z(t) =l= 2 - x(t) - y(t);
eq_z_secondCondition(t).. z(t) =l= x (t) + y(t);

but what if you don't have binary variables but for example a sum:
abs( (sum(t, x(t))) - (sum(t, y(t))).

How could I model something like that?

Re: Modeling the absolute value

Posted: Wed Sep 06, 2017 4:02 pm
by PeterBe
Hi guys,

does nobody have a clue? I just want incoorporate the absolute value of:
abs( (sum(t, x(t))) - (sum(t, y(t))) (with x(t) and y(t) being binary variables)

Manassaldi suggest the following for binary variables:

Code: Select all

eq1(t).. 1 - x(t)  +    c(t) +    absvalue(t)   =g= 1;
eq2(t).. 1 - x(t)  + 1-c(t) + 1-absvalue(t)  =g= 1;
eq3(t)..      x(t)  + 1-c(t) +     absvalue(t)  =g= 1;
eq4(t)..      x(t)  +    c(t) +  1- absvalue(t) =g= 1;
eq5..        z =e= sum(t,absvalue(t) )
Let's say x(t) and c(t) are not binary variables. How would you model the absolute value of the difference between them: abs (x(t)-c(t))?

Re: Modeling the absolute value

Posted: Wed Sep 06, 2017 7:29 pm
by Manassaldi
Hi again PeterBe, I think this can works

x(t) and c(t) are continuous variables
p(t) are binary variables
M is a sufficiently large number (BigM parameter)

if "p=1", by "eq3" (x-c) is greater than 0 so by "eq1" and "eq2" absvalue = x-c (the rest of equation are also satisfied)
if "p=0", by "eq6" (x-c) is lower than 0 so by "eq4" and "eq5" absvalue = c-x (the rest of equation are also satisfied)

eq1(t).. absvalue(t) =l= x(t) - c(t) + (1-p(t))*M;
eq2(t).. absvalue(t) =g= x(t) - c(t) - (1-p(t))*M;
eq3(t).. x(t) - c(t) =g= -(1-p(t))*M
eq4(t).. absvalue(t) =l= c(t) - x(t) + p(t)*M;
eq5(t).. absvalue(t) =g= c(t) - x(t) - p(t)*M;
eq6(t).. x(t) - c(t) =l= p(t)*M
eq7.. z =e= sum(t,absvalue(t))

All this restrictions are for "z = sum(t,abs(x(t)-c(t)))" with x and c continuous variables

Bye!

Re: Modeling the absolute value

Posted: Tue Sep 12, 2017 8:56 am
by gnaeidj
Dear Friend
I've Written a MIQCP code which has an absolute value in its constraints and I don't know how exactly I must write it so that the code works.

here is the constraint:

sum((n,m,t),abs(z(n,m,t) - z(n,m,t+1)) =l= 2*j

the summation basically is based on t (time) and I want this absolute value constraint to work within my code

I'll be so thankful if you guide me

Best Reards
Ghassem

Re: Modeling the absolute value

Posted: Tue Sep 12, 2017 2:38 pm
by Manassaldi
Hi,
What kind of variables are z and j?

Re: Modeling the absolute value

Posted: Tue Sep 12, 2017 6:27 pm
by gnaeidj
Hi,
Z is a binary variable and J is a scalar

actually the Z variable represents a line status (being in circuit or out of it) and J represents the maximum number of lines which can get out of service

I want to use the mentioned constraint to express the maximum number of switching in a system, but I don't know how to insert it into my codes, so that it works properly.

Re: Modeling the absolute value

Posted: Wed Sep 13, 2017 2:46 pm
by Manassaldi
Hi, this constraints are equivalent to "sum((n,m,t),abs(z(n,m,t) - z(n,m,t+1)) =l= 2*j"
With the command "$" you must decide what happens with the last t

eq1(n,m,t).. 1 - z(n,m,t) + z(n,m,t+1) + absvalue(n,m,t) =g= 1;
eq2(n,m,t).. 1 - z(n,m,t) + 1-z(n,m,t+1) + 1-absvalue(n,m,t) =g= 1;
eq3(n,m,t).. z(n,m,t) + 1-z(n,m,t+1) + absvalue(n,m,t) =g= 1;
eq4(n,m,t).. z(n,m,t) + z(n,m,t+1) + 1-absvalue(n,m,t) =g= 1;
eq5.. sum((n,m,t),absvalue(n,m,t)) =l= 2*j;

Bye

Re: Modeling the absolute value

Posted: Wed Sep 13, 2017 9:07 pm
by gnaeidj
Thank you so much

Re: Modeling the absolute value

Posted: Wed Sep 13, 2017 9:15 pm
by gnaeidj
Just something I didn't catch
what did you mean by "$" command?