Извлечение пошаговой теневой цены в MIP с использованием Gurobi

Я пытаюсь извлечь теневую цену для конкретного ограничения в моей модели MIP - и использую Gurobi в качестве решателя.

Когда я устанавливаю ограничение, я использую следующий код -

# Balance Constraint for hour in hours: model.addConstr((quicksum(p[hour, i] for i in num_gen) + (quicksum(discharge[hour, i] for i in num_gen)) == demand[hour] + quicksum(charge[hour, i] for i in num_gen)), name="balance")

Затем, решив MIP и оптимизировав фиксированную версию MIP, я использую следующий код для извлечения двойного значения для ограничения спроса.

demand_constr = fixed.getConstrByName("balance")

Однако приведенное выше возвращает только одно значение, где, как я и ожидал, теневая цена за каждый час, для которого было применено это ограничение.

Возможно, это мое недоразумение - но если кто-то может помочь, это будет высоко ценится!

1 ответ

Когда вы вызываете Model.addConstr(), сохраните объект Constr. А еще лучше попробуйте Model.addConstrs(), который возвращает словарь ограничений Python.

Другие вопросы по тегам