【发布时间】:2021-07-01 09:44:15
【问题描述】:
我使用 Python 中的 Google OR Tools 编写了一个约束编程模型,该模型使用 CP 求解器。我需要多次运行该模型,并且在每次运行中我都会修改约束。目前,每次我想运行模型时,我都会从头开始创建模型对象。无论如何,我可以修改现有模型的变量/约束,这样我就不需要每次都从头开始构建模型?
为了提供更好的上下文,请考虑以下示例模型。
from ortools.sat.python import cp_model
model = cp_model.CpModel()
num_vals = 3
a = model.NewIntVar(0, num_vals -1, 'a')
b = model.NewIntVar(0, num_vals -1, 'b')
c = model.NewIntVar(0, num_vals -1, 'c')
model.Add(a == b)
solver = cp_model.CpSolver()
solver.Solve(model)
现在,在问题的第二次运行中,我想做以下更改。
- 将变量c的上界改为
5 - 删除约束
a==b - 创建一个新的约束
a==c
如果不从头开始构建模型,如何实现这一点?
【问题讨论】:
标签: python mathematical-optimization or-tools constraint-programming operations-research