我有一个混合整数规划 (MIP) 问题,目前在 Python 的 PuLP 库中建模。然而,我的问题非常笼统,语法在这里不起作用。
我想为我的模型添加一个约束,如下所示:
if b=1 then x=y
该变量b
是取值为 0 或 1 的二进制变量x
,y
是表示当前库存水平的变量。x
作为一个连续变量,y
作为一个整数变量。
我知道约束只能以以下格式建模:
a*x+c <= y # a, c are constants, x, y variables
我希望有一些解决方法可以对上述if b then x equals y
约束进行建模。
到目前为止,这是我的方法:
b*y <= x
y >= x*b # works in theory, but multiplication of 2 variables is not allowed
对于 2 个二进制变量 x 和 y,以下情况成立:
M*y > x # represents: if x then y (M is a sufficient large constant)
我猜这个解决方案涉及一个大的 M 常数,甚至可能是更多的辅助变量。
一点背景:我想模拟一个库存问题,具有连续的库存水平。然而,订单决定应该只能是整数。因此,我需要用浮点数对库存水平进行建模。在顺序点 (b==1) 但是整数。
我希望有人可以在这里提供帮助,即使这是理论上的,而不是直接与编码相关的。对可能有帮助的进一步资源的提示也受到高度赞赏。