英文:
In linear programming, How can I give a value to a binary variable y depending on whether a continuous variable is 0 (y = 0) or positive (y = 1)?
问题
我有一个二进制变量 y
和一个连续变量 x
,我想在线性规划中(使用 Python mip)实现以下条件:
if x > 0:
y = 1
else:
y = 0
我尝试了以下方法:
self.model.add_constr(y >= 0, name="Lin 2.1")
self.model.add_constr(y * 10000000 >= x, name="Lin 2.2")
self.model.add_constr(y <= x * 10000000, name="Lin 2.2")
希望这能帮助您实现您的线性规划条件。
英文:
I have a binary variable y
and a continuos variable x
, and I would like to implement in linear programming (Python mip) the next condition:
if x > 0:
y = 1
else:
y = 0
I have tried the following:
self.model.add_constr(y >= 0, name=f"Lin 2.1")
self.model.add_constr(y * 10000000 >= x, name=f"Lin 2.2")
self.model.add_constr(y <= x * 10000000, name=f"Lin 2.2")
答案1
得分: 1
x ≥ 0.001 - M(1-y)
x ≤ 0 + My
y ∈ {0,1}
其中 M 是一个足够大的常数(经过谨慎选择)。
英文:
x >= 0.001 - M(1-y)
x <= 0 + My
y ∈ {0,1}
where M is a large enough constant (carefully chosen).
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论