Информация о пробелах в задаче смешанного целочисленного линейного программирования Гуроби

Я решаю задачу смешанного целочисленного линейного программирования (MILP) на Matlab с помощью решателя gurobi. Во время итераций я вижу такую ​​информацию:

Найдено оптимальное решение (допуск 1.00e-04) Наилучшая цель 6.076620143590e + 02, наилучшая граница 6.076620143590e + 02, зазор 0,0000%

У меня вопрос: как можно получить доступ к информации о разрыве? Я хотел бы хранить его на каждой итерации в массиве. Однако, если я просто позвоню X = gurobi(model);, где model содержит мою модель MILP, я не увижу информации о пробеле в X.


person cholo14    schedule 01.04.2019    source источник
comment
Возможно, вам придется рассчитать его самостоятельно с помощью обратного вызова. .   -  person sascha    schedule 02.04.2019
comment
@sascha я могу сделать это на Matlab?   -  person cholo14    schedule 04.04.2019
comment
Эта страница может помочь: gurobi.com/documentation/8.1/refman/logging.html   -  person kur ag    schedule 04.04.2019


Ответы (1)


Я обнаружил, что информация о пропуске уже возвращается gurobi, начиная с версии 8. Я использовал версию 7 раньше, и поэтому у меня не было доступа к этой информации. Переменная в возвращаемом объекте, содержащая информацию о разрыве, называется mipgap, это объясняется здесь.

person cholo14    schedule 05.04.2019