[英]Modelling if-then-else-logic in MILP/MIP
我想為混合整數線性規划問題建模以下內容:令 y 為二進制,x1 和 x2 為連續變量,而 k1 為不變參數。
if y == 1 then:
x2 = k1*x1
else (y == 0):
x2 = 0
想到的第一個想法是做類似的事情:
x2 >= k1*x1 - M*(1-y)
x2 <= k1*x1 - M*(1-y)
但這里 M 必須是 k1*x1,因此不再是不變參數。 有沒有人有更好的主意。 謝謝!
根據你的問題: y: binary_variable x1: continous_variable x2: continous_variable
請參見下面的等式:
x2 <= u*y
x2 <= k1*x1
x2 >= k1*x1 − u*(1 − y)
x2 >= 0
u is the upper bound on k1*x1
0 <= k1*x1 <= u
你在這里不需要大M。
當 y == 1 => x2 == k1*x1
當 y == 0 => x2 == 0
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.