我已经初始化了我的LpVariable:
x = LpVariable('x', None, None)
此时,我的变量的上限和下限为float('inf')
和float('-inf')
。现在基于我逻辑的一些参数,我想将这个变量的上限限制为任何x < 20
。
我是否可以通过添加LpProblem并使用问题参数修改变量来实现此目的?
y = LpProblem('Minimizing Problem', LpMinimize)
y += x < 20
还是有另一种方法来操纵变量吗?更改x.upBound
似乎不起作用。我仍然可以设置无效的整数/浮点数作为解决方案(即。values > 20
)并接受它们。
答案 0 :(得分:1)
原来两种方式都有效。所以例如:
y = LpProblem("min", LpMinimize)
y += x + 10 # Objective Function
x = LpVariable('x', None, None) # set to bounds=[float("-inf"),float("inf")]
我们可以通过以下方式之一将x
的下限从默认float("-inf")
更改为20
:
选项1:
修改LpProblem上的约束。因此,例如,如果您想要更改lowBound of x to 20
,则需要使用:
y += x > 20, "changing lower bound of x"
选项2: 修改LpVariable对象上的lowBound属性:
x.lowBound = 20
这些更改都应该为我们提供y = 30