【发布时间】:2020-06-15 00:27:09
【问题描述】:
我在 Gurobi 中有一个 abs 约束。我已经查看了官方指南的手册。它提供了两种添加abs约束的方法。
# x5 = abs(x1)
model.addGenConstrAbs(x5, x1, "absconstr")
# overloaded form
model.addConstr(x5 == abs_(x1), name="absconstr")
我必须使用第二种形式,因为我需要绘制这个约束的对偶值。只有addConstr可以绘制影子价格(双值),所以addGenConstrAbs应该避免。
我的代码是:
def _build_constraints(self):
m = self.model
com = self.data.com
P_nm3 = self.variables.P_nm3
agents = self.data.agents
timewindow = self.data.timewindow
windowinterval = self.data.windowinterval
absP_n = self.variables.absP_n
P_n = self.variables.P_n
self.constraints.absv = {}
for t1 in timewindow:
for t2 in windowinterval:
for i, p in enumerate(agents):
if p in self.data.generators:
pass
else:
# self.constraints.absv[t1,t2,p] = m.addGenConstrAbs( absP_n[p,t1,t2], P_n[p,t1,t2])
self.constraints.absv[t1,t2,p] = m.addConstr( absP_n[p,t1,t2] == abs_(P_n[p,t1,t2]), name="absconstr" )
我得到这样的错误:
AttributeError: 'gurobipy.Model' object has no attribute 'abs_'
Gurobi 的版本是 V9.0。似乎提到的方法根本不起作用。
我该如何解决这个问题?
非常感谢!
【问题讨论】:
标签: python python-3.x optimization gurobi