在 pyscipopt 中添加一个 NOT 约束
adding a NOT-constraint in pyscipopt
我想向我的 PySCIPOpt 模型添加一个 NOT 约束。我可以看到 andConsAnd
、addConsOr
和 addConsXor
,但没有一个用于 NOT 运算符。添加 NOT 约束的最简单方法是什么?
我想出了:
x = model.addVar('B')
not_x = model.addVar('B')
model.addCons(not_x == (x - 1) * (x - 1))
但这看起来很难看。
我需要 not_x
的原因是我想稍后将它添加到连词中,例如:
model.addConsAnd([not_x, y], True)
但是,据我所知,如果我使用 Python 而不是运算符:
,PySCIPOpt 接口将不起作用
model.addConsAdd([not x, y], True)
所以上面的行破坏了我的 jupyter notebook 中的内核。
感谢任何帮助。
二进制变量 x
的表达式 not x
与 1-x
相同。这在 mixed-integer 编程模型中广泛使用。
我想向我的 PySCIPOpt 模型添加一个 NOT 约束。我可以看到 andConsAnd
、addConsOr
和 addConsXor
,但没有一个用于 NOT 运算符。添加 NOT 约束的最简单方法是什么?
我想出了:
x = model.addVar('B')
not_x = model.addVar('B')
model.addCons(not_x == (x - 1) * (x - 1))
但这看起来很难看。
我需要 not_x
的原因是我想稍后将它添加到连词中,例如:
model.addConsAnd([not_x, y], True)
但是,据我所知,如果我使用 Python 而不是运算符:
,PySCIPOpt 接口将不起作用model.addConsAdd([not x, y], True)
所以上面的行破坏了我的 jupyter notebook 中的内核。
感谢任何帮助。
二进制变量 x
的表达式 not x
与 1-x
相同。这在 mixed-integer 编程模型中广泛使用。