AttributeError: 'gurobipy.LinExpr' object has no attribute '__colno__'

AttributeError: 'gurobipy.LinExpr' object has no attribute '__colno__'

我正在尝试使用 Python 和 Gurobi Solver 对 MILP 问题进行建模。我有最新的 Gurobi 求解器版本。我的问题是在我使用 gurobi m.addGenConstrAbs 的新函数添加约束后开始的,该约束将函数的 abs 值添加为约束。这是我的代码,它创建了一个 gurobi 反馈:

AttributeError: 'gurobipy.LinExpr' 对象没有属性 '__colno__'.

产生此反馈的我的代码是:

for t in range(0,Period): 
 m.addGenConstrAbs(PEN[t], EG [t]+STG[t]-XXX, "PEN Constraint") 

其中 EG[t]STD[t]XXX 是决策变量.

我不明白为什么 Gurobi 或 Python returns 会出现此错误。您认为问题出在哪里?谢谢

Model.addGenConstrAbs() 的参数必须是变量 (Var),而不是线性表达式 (LinExpr)。试试这个:

for t in range(0,Period):
    z = m.addVar(lb=-GRB.INFINITY)
    m.addConstr(z == EG[t]+STG[t]-XXX)
    m.addGenConstrAbs(PEN[t], z, "PEN Constraint")