簡體   English   中英

在 MILP/MIP 中建模 if-then-else-邏輯

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM