我x
在线性程序中有一个浮点变量,它应该是0
两个常量之一或介于两个常量CONSTANT_A
和之间CONSTANT_B
:
LP.addConstraint(x == 0 OR CONSTANT_A <= x <= CONSTANT_B)
当然OR
,线性规划中没有显式这样的东西。有没有办法表达这个约束?
所以让我们假设你想要约束:
x == 0 OR 1 <= x <= 2
很明显,线性规划的可行区域不是凸的,因为 x=0 和 x=1 都是可行的,但是没有合适的凸组合是可行的。因此,可以证明不可能用线性程序对此进行建模。
话虽如此,如果您引入一个二元决策变量 y,则很容易对此进行建模,如果我们在范围内,则取值为 1,如果我们固定为 0,则取值为 0。然后您可以对以下内容进行建模:
y <= x <= 2*y
y binary
或者,在您完全一般的情况下:
y*CONSTANT_A <= x <= y*CONSTANT_B
y binary
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句