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")