Very good idea! Thank you very much. I would like to add though, that because I want to get D = 0 in case A = 0 or ((U <= 0 AND K <= 0), I have to add the two constraints : D <= A , D <= E. Am I correct? Thanks again
2015-03-28 0:24 GMT+02:00 Norman Jessup <[email protected]>: > Hello Ioannis. > > If I understand your problem correctly, you can achieve the result you > need using the "Big M" method, though I think you may need to introduce > some new integer variables > > Let E in {0, 1} binaryM*E >= U > M*E> = K > > Where M is some "large" positive constant, though in this particular case > it just needs to be greater than 6. This will force E to be positive if > either U or K is positive. > > D >= A + E - 1 > > This will require D to be positive if both A and E are positive. Note > that for this to work the objective must prefer to drive D to zero if > possible, which typically turns out to be the case. If not then you will > need to add complementary constraints to drive D to zero if the conditions > are not met. > > On 28/03/2015 3:00 am, [email protected] wrote: > > Good evening to every one, > I have a problem in modelling the following situation: > Let U, K in {-6, .. , 6} integers > Let A in {0, 1} binary > Let D in {0, 1} binary > What I want to do is to model the condition: > D = 1, iff (U > 0 OR K > 0) AND A = 1 > Otherwise, D should equal 0. > I can not figure out how to model this situation. > Can any one give me an answear or even a hint? It would be very welcome. > Thanks a lot > > -- > Norman Jessup > > > > _______________________________________________ > Help-glpk mailing list > [email protected] > https://lists.gnu.org/mailman/listinfo/help-glpk > > -- Ioannis X. Tassopoulos
_______________________________________________ Help-glpk mailing list [email protected] https://lists.gnu.org/mailman/listinfo/help-glpk
