Извлечение почасовой теневой цены в 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")

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

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


person tm553    schedule 07.07.2017    source источник


Ответы (1)


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

person Greg Glockner    schedule 10.07.2017