2014-10-29 185 views
0

所有通用的If-then約束似乎都沒有讓我對此有所洞察。 我想用Lindo形成一個混合整數程序,它可以在考慮到一系列情況下將成本降至最低:當X = 4時,則T = 0且Y = 0.感謝您的幫助。If-Then約束條件:如果X <4 Then T = 4 -X

+0

當X> = 4時'T'會發生什麼? – Ioannis 2014-10-29 13:05:40

+0

然後T將是0 – 2014-10-29 15:42:00

回答

0

爲了建模這個表達式,我們需要知道4 - X的範圍。讓我們假設

LB <= 4 - X <= UB 

LB <= 0其中,UB >=0|LB| + |UB| > 0(即,不能同時LBUB是零),否則這個問題是微不足道的。

然後考慮以下系統(T是連續的,Y爲二進制數):正確性的

T >= 4 - X     (I) 
T <= 4 - X - LB * (1 - Y) (II) 
T <= UB * Y     (III) 
T >= 0      (IV) 

證明:

X < 4 <=> 4 - X > 0 so (I) => T > 0 and then (III) => Y = 1, 
and (I) + (II) => T = 4 - X. (III, IV) are redundant in this case. 

X > 4 <=> 4 - X < 0. If we allow Y = 1 then T = 4 - X < 0, which is not 
allowed by (IV). Hence, Y = 0 and (III, IV) => T = 0. (I, II) are redundant in 
this case. 

X == 4 ==> T = 0 and Y either 0 or 1. 

我希望這有助於!