Python 在pyscipopt中添加NOT约束
我想给我的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
和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
!我想这一定很简单:-)非常感谢。请添加它作为答案,以获得一些分数。