Page 1 of 1

Using a variable in a equations condition

Posted: Thu Jun 30, 2022 11:17 am
by saeid.jafarpour
hi i need to use variable Pm(m,MEG,t) in a equation condition term as illustrated bellow, however, it is not possible to use a variable in a equations condition. i wonder if there is any solution or trick for this problem.

parameter

numb(m)
G(m,n)
PDGmax(m)
;

binary variable

zz(m,t)
;

variable

Pm(m,MEG,t)
;

e18(m,t)$(PDGmax(m) ne 0 or Pm(m,MEG,t) ne 0 ).. zz(m,t)=e=1;

e19(m,t)$(PDGmax(m) eq 0 and Pm(m,MEG,t) eq 0 ).. sum(n$(ord(m) ne ord(n) and G(m,n) ne 0),delta(m,n,t))/numb(m)=l=zz(m,t);

e20(m,t)$(PDGmax(m) eq 0 and Pm(m,MEG,t) eq 0) .. sum(n$(ord(m) ne ord(n) and G(m,n) ne 0),delta(m,n,t))=g=zz(m,t);

Re: Using a variable in a equations condition

Posted: Fri Jul 01, 2022 1:17 am
by GabrielYin
Hi,

You can use the indicator constraint to achieve what you want for the variable condition in equations.

And I just posted a question post here. If someone answers my post, I think you will be able to implement the indicator constraint through my small example!

Cheers,
Gabriel

Re: Using a variable in a equations condition

Posted: Fri Jul 01, 2022 1:57 pm
by Manassaldi
Hello, I suggest you make a manually "big M" or convex hull reformulation or try with the indicator constraint. Best!

Re: Using a variable in a equations condition

Posted: Sun Jul 03, 2022 4:11 pm
by saeid.jafarpour
GabrielYin wrote: 1 year ago Hi,

You can use the indicator constraint to achieve what you want for the variable condition in equations.

And I just posted a question post here. If someone answers my post, I think you will be able to implement the indicator constraint through my small example!

Cheers,
Gabriel
Hi
Thanks for your help.
Saeid

Re: Using a variable in a equations condition

Posted: Sun Jul 03, 2022 4:12 pm
by saeid.jafarpour
Manassaldi wrote: 1 year ago Hello, I suggest you make a manually "big M" or convex hull reformulation or try with the indicator constraint. Best!
Hi
I have aleready tested big M but it didnt work.
Thanks for your help.
Saeid