[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
## Re: [Help-glpk] if...then...else

**From**: |
Andrew Makhorin |

**Subject**: |
Re: [Help-glpk] if...then...else |

**Date**: |
Fri, 25 Aug 2006 15:27:16 +0400 |

>* i have time sets below,*
>* *
>* set W; #week*
>* set D; #day*
>* set H; #hour*
>* *
>* and a binary decision variable.*
>* *
>* var delta{w in W, d in D, h in H},binary;*
>* *
>* *
>* My question is that;*
>* if delta[w.d,h] = 0 for a specific hour, it has to be equal to zero for the *
>* following 23 hours too.*
>* That is if delta is 0 it has to be 0 for a day-time. How can i model this *
>* situation with "if...then...else".*
>* Also should i put this expression into variable definition part or s.t.*
>* part *
>* or anywhere in the .mod file.*
>* *
>* I think if i had only one time indice say "t" there is not any problem at*
>* all *
>* but in my situation time index has three sub indices*
You cannot use the if statement, because your condition involves
variables. To model the condition you can introduce a binary variable,
say, z, like follows:
var z{w in W, d in D}, binary;
and then define an additional constraint like follows:
s.t. foo{w in W, d in D, h in H}: delta[w,d,h] <= z[w,d];
Note, however, that depending on your model this restriction can be
modeled in different ways.