【发布时间】:2020-05-05 01:21:55
【问题描述】:
我建立了一个初始模型,然后尝试在第二个模型中使用该模型的结果,而第二个模型与初始模型有很多相似之处,它确实有更多的约束。我的方法是将初始模型复制到第二个模型如下(mdl 是我没有带到这里的初始模型,mdll 是辅助模型):
mdll=Model('Boarding_test2')
Best_X_values= mdl.getAttr('x', X)
mdll.update()
mdll=mdl.copy()
mdll.getVars()
mdll.getConstrs()
如您所见,我复制了初始模型以及约束和变量。 要删除初始模型中存在但我不希望在第二个模型中出现的约束,我实现了以下内容:
Del_cons=mdll.getConstrByName('Stefen')
Del_cons.__dict__
mdll.remove(Del_cons)
mdll.update()
最后,我尝试为第二个模型添加新的约束,如下所示:
mdll.addConstrs((Y[k,p])==1 for k in K for p in P if k==p and p!=p_sim)
mdll.addConstrs(quicksum(Y[k,p] for k in K if k==k_sim )==1 for p in P if p==p_sim)
mdll.addConstrs(quicksum(Y[k,p] for p in P if p==p_sim)==1 for k in K if k==k_sim)
但我收到以下错误。谁能帮我解决这个问题:
GurobiError Traceback (most recent call last)
1 #mdll.remove(mdll.getConstrByName('Stefen'))
----> 2 mdll.addConstrs((Y[k,p])==1 for k in K for p in P if k==p and p!=p_sim)
3 mdll.update()
4 mdll.addConstrs(quicksum(Y[k,p] for k in K if k==k_sim )==1 for p in P if p==p_sim)
5 mdll.update()
model.pxi in gurobipy.Model.addConstrs()
model.pxi in gurobipy.Model.addConstr()
model.pxi in gurobipy.Model.__addConstr()
GurobiError: Variable not in model
【问题讨论】:
-
从描述来看,这个问题看起来像是stackoverflow.com/q/37263701/4540852(或与之相关)的副本。您可以尝试那里接受的答案并告诉我们。