有没有办法在不清除求解器并首先创建约束的情况下从求解器中删除定义的约束?
假设我的问题是最大化三个变量的总和,其中两个约束
约束 1:变量 2 应介于 8 - 10 之间
约束 2:变量 3 应介于 5 - 10 之间
from ortools.linear_solver import pywraplp
solver = pywraplp.Solver('SolveIntegerProblem',
pywraplp.Solver.CBC_MIXED_INTEGER_PROGRAMMING)
objective = solver.Objective()
Variable[0] = solver.IntVar(0, 5, variable 0 )
Variable[1] = solver.IntVar(0, 10, variable 1 )
Variable[2] = solver.IntVar(0, 20, variable 2 )
objective.SetCoefficient(Variable[0], 1)
objective.SetCoefficient(Variable[1], 1)
objective.SetCoefficient(Variable[2], 1)
objective.SetMaximization()
constraints.append(solver.Constraint(8,10))
constraints[0].SetCoefficient(variable[1],1)
constraints.append(solver.Constraint(5,10))
constraints[1].SetCoefficient(variable[2],1)
现在在第二次运行我的代码时,我想删除约束编号 2,但我找不到任何操作来执行此操作,唯一的方法是清除求解器并首先定义约束。
在这个半代码中,约束的数量是有限的,但实际上,在我的真实代码中,约束的数量很多,我不能从一开始就定义它们。