Решаю большой МИП в Гуроби 6.0. Мой консультант хочет установить ограничение по времени в 12 часов для решения проблемы. Я обнаружил, что могу установить параметр TimeLimit, и это убьет решающую программу по истечении отведенного времени, но я не знаю, как получить лучшее возможное решение в то время, только объективное значение и разрыв в оптимальности. Есть ли способ найти наилучшее возможное решение?
Получите наиболее известный возможный ответ по истечении срока
Ответы (2)
Чтобы получить наилучший возможный ответ на данный момент, вы должны сначала убедиться, что существует возможное решение, проверив атрибут Status в вашем объекте модели, а затем запросив атрибут X
в ваших переменных объектах. Если вы назвали свои переменные (с параметром имени на e аккуратный способ сделать это с помощью python api, это создать словарь с ненулевыми значениями.
import math
epsilon = 1e-6
m = grb.Model()
# .....
if m.SolCount > 0:
solution = {v.varName: v.X for v in m.getVars() if math.abs(v.X) > epsilon}
person
David Nehme
schedule
19.12.2014
Вы пробовали использовать атрибут Xn
, возможно, в сочетании с параметром SolutionNumber
? Хотя для вашего случая вы должны оставить значение по умолчанию 0 SolutionNumber
. Вы можете начать отсюда: http://www.gurobi.com/documentation/6.0/reference-manual/xn.
person
MMSt
schedule
03.01.2015