我在古洛比有腹肌约束。我已经查阅了官方指南手册。它提供了两种添加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。看来上面提到的方法根本不起作用
我怎样才能解决这个问题
非常感谢
您需要确保还导入了
abs_
函数,以防您没有导入from gurobipy import *
。所以你要么需要或
相关问题 更多 >
编程相关推荐