Извлечение пошаговой теневой цены в 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.