如何为条件定义一组线性约束:"if x1 ≤ 0, then x2 ≤ 0"?

How can I define a set of linear constraints for the condition: "if x1 ≤ 0, then x2 ≤ 0"?

如问题所示,我正在尝试为条件“如果 x1 ≤ 0,则 x2 ≤ 0”定义线性约束,其中 x1、x2 在 [-10、10] 中。我试过这样做,其中 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。