我对 gurobipy 库中 model.update 的性能有疑问。
假设我有一个对象列表,我想将其作为变量添加到模型中,我还想为每个对象添加一个约束,为此我有一个 for 循环,我在其中执行以下操作
for object in list:
some_parameter=object.parameter
model.addVar(name=object.name)
model.update()
model.addConstr(
model.getVarByName(object_name) >= some_parameter
)
当然我的循环比较复杂,这只是一个简单的例子。我在日志中收到此消息:
信息:警告:模型更新花费的时间过多。信息:考虑不那么频繁地调用更新。
我现在的问题是:正确的解决方案是制作两个循环而不是像这样的一个:
for object in list:
model.addVar(name=object.name)
然后打电话
model.update()
然后通过添加约束来运行循环?
for object in list:
some_parameter=object.parameter
model.addConstr(
model.getVarByName(object_name) >= some_parameter
)
哪一种是通常的方式,或者我应该完全不同?