【发布时间】:2019-01-18 21:47:59
【问题描述】:
我正在尝试在 OR Tools Python API 中构建 MIP 模型。我有两个表达式x 和y 并且想要创建一个变量b,当x == y 时等于1,否则为0。到目前为止,我尝试将-M(1 - b) <= x - y <= M(1 - b) 的约束添加到M 的某个大值,如果x != y 则强制b 为0。我被卡住的地方是添加一个约束,如果x == y,则强制b 为1。我想我想要x - y >= 1 - b 或y - x >= 1 - b 之类的东西,但我不知道如何在逻辑上组合这样的约束。关于如何做到这一点的任何建议?还是采用一些完全不同的方法?
【问题讨论】:
-
关于布尔值的重要知识:
False == 0 && True == 1 -
你的意思是我应该说
b = x == y?我认为我无法以这种形式向模型添加约束。 -
我的意思是布尔值 True 等于数字 1,布尔值 False 等于数字 0。
标签: python or-tools mixed-integer-programming