Как получить относительный разрыв оптимальности MIP после истечения срока?

Я работаю над крупномасштабным MIP. Поэтому я должен установить ограничение по времени на разумное значение. Но проблема в том, что по истечении срока я не знаю, как оценить решение, иначе говоря, разрыв между нижней и верхней границами. Да, разрыв будет отображаться на экране. Но есть ли способ получить его значение с помощью Python API? Поэтому я могу вывести его или сделать следующую статистику. Мне нужно решить более 10 MIP одновременно, трудно найти пробелы один за другим на экране. Спасибо за вашу помощь!


person R. Song    schedule 02.05.2016    source источник


Ответы (1)


Ваши теги указывают на то, что вы используете Gurobi с Python API для решения своих моделей.

Чтобы получить относительный разрыв MIP, вы можете запросить атрибут MIPGap (см. http://www.gurobi.com/documentation/6.5/refman/mipgap.html)

Пример Python:

from gurobipy import *

model = read("model.mps")
model.params.TimeLimit = 100
model.optimize()
print("Final MIP gap value: %f" % model.MIPGap)
person Kostja    schedule 09.05.2016
comment
Это действительно помогает, извините, что не смог сразу прокомментировать. - person R. Song; 12.04.2017