【发布时间】:2021-01-08 16:40:32
【问题描述】:
我正在重新使用 Google 的 OR 工具并尝试(相对)简单的优化。我正在使用 CP SAT 求解器,我可能在这里遗漏了一些基本的东西。 我有一些变量 x、y 和一些常数 c。如果 y 小于 c,我希望 x 等于 1,否则为 0。
from ortools.sat.python import cp_model
solver = cp_model.CpSolver()
model = cp_model.CpModel()
c = 50
x = model.NewBoolVar(name='x')
y = model.NewIntVar(name='y', lb=0, ub=2**10)
model.Add(x == (y < c))
model.Maximize(x+y)
status = solver.Solve(model)
我收到一条错误消息
TypeError: bad operand type for unary -: 'BoundedLinearExpression'
看来我在这里为我的约束滥用了 OR 工具语法。我很难理解在线 OR 工具的文档,而且我似乎忘记的内容比我想象的要多。
【问题讨论】:
标签: python or-tools constraint-programming