Python 在pyscipopt中添加NOT约束

Python 在pyscipopt中添加NOT约束,python,optimization,scip,Python,Optimization,Scip,我想给我的PySCIPOpt模型添加一个NOT约束。我可以看到和consand,addConsOr和addconxor,但是NOT操作符没有一个。添加NOT约束的最简单方法是什么 我想到了: x = model.addVar('B') not_x = model.addVar('B') model.addCons(not_x == (x - 1) * (x - 1)) 但这看起来很难看 我之所以需要not_x,是因为我想稍后将其添加到连词中,例如: model.addConsAnd([not

我想给我的PySCIPOpt模型添加一个NOT约束。我可以看到
和consand
addConsOr
addconxor
,但是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 not运算符,PySCIPOpt接口将无法工作:

model.addConsAdd([not x,y],True)
因此,上面这行代码破坏了我jupyter笔记本中的内核


感谢您的帮助。

二进制变量
x
的表达式
not x
1-x
相同。这在混合整数规划模型中被广泛使用。

当然不是x=1-x
!我想这一定很简单:-)非常感谢。请添加它作为答案,以获得一些分数。