Hi all,
Problem with if between two variables
I have a variable (positive) discharge(i) and I want that a second variable DS(i) to be:
200 if discharge(i) >0 and 0 if discharge(i)=0
I’ve tried:
Eq15(i)…200=e=DS(i)(discharge(i)>0)
Eq16(i)..0=e=DS(i)(discharge(i)=0)
Thanks
Regards
You cannot have ‘if’ condition on variables in an optimization formulation
define a binary variable y(i) which is 0 if discharge(i) is 0 and 1 otherwise.
DS(i) =e= 200*y(i);
You can establish the relationship between y(i) an discharge(i) as follows:
discharge(i) =l= M*y(i);
where M is a large constant (you can set it to the upper bound of discharge(i).
This condition ensures that, if discharge is positive then y(i) is 1.
If your objective naturally favors minimizing DS(i), the above equations should be enough.