Получите наиболее известный возможный ответ по истечении срока

Решаю большой МИП в Гуроби 6.0. Мой консультант хочет установить ограничение по времени в 12 часов для решения проблемы. Я обнаружил, что могу установить параметр TimeLimit, и это убьет решающую программу по истечении отведенного времени, но я не знаю, как получить лучшее возможное решение в то время, только объективное значение и разрыв в оптимальности. Есть ли способ найти наилучшее возможное решение?


person cdhagmann    schedule 18.12.2014    source источник


Ответы (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