AttributeError: у объекта 'gurobipy.LinExpr' нет атрибута '__colno__'

Я пытаюсь смоделировать проблему MILP, используя Python с Gurobi Solver. У меня последняя версия решателя 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 возвращается с этой ошибкой. Как вы думаете, откуда возникла проблема? Благодарю.

1 ответ

Решение

Аргументы для 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") 
Другие вопросы по тегам