如何将 if else 语句转换为线性规划约束?

How to convert if else statement into Linear Programming constraints?

如何在线性规划中编写以下if-else条件?

如果 YR1 == 1,则 20 <= XR1 <= 80,否则 XR1 = 0

YR1为二进制变量,XR1为连续变量

我试过了

20 - XR1 <= 1000 * (1 - YR1)
80 - XR1 <= 1000 * (1 - YR1)

XR1 - 20 <= 1000 * YR1

是否正确?如果不是,如何将语句转换为线性规划条件?

XR1称为半连续变量。可以建模为:

 20*YR1 <= XR1 <= 80*YR1
 YR1 ∈ {0,1}
 

你需要把它分成两个不等式。