正如问题所暗示的,我正在尝试在[-10,10]中用x1,x2定义条件“如果x1≤0,则x2≤0”的线性约束。我尝试这样做,其中B1是一个二进制变量,M是一个非常大的数字:
X2-M * X1 * B1≤0
X1≤11 * B1
-11 * B1≤X1
这个想法是,如果x> 0,则b1 = 1;如果x1≤0,则b1 = 0。但是,这是不正确的,因为当x1 = 0时,我们认为b1可以是0或1。我不知道如何在不使用严格不等式的情况下更改它,这是不可能的。有人可以帮忙吗?
X2 - M * X1 * B1 ≤ 0
对我来说似乎是非线性的。这是我的建议:
x1 ≥ 0.001 - 10.001*b
x2 ≤ 10*(1-b)
b ∈ {0,1}
当x1 = 0时,0.001强制b = 1。