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

#matlab #mathematical-optimization #gurobi

#matlab #математическая оптимизация #gurobi

Вопрос:

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

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

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

Комментарии:

1. Возможно, вам потребуется вычислить это самостоятельно в рамках обратного вызова .

2. @sascha могу ли я сделать это в Matlab?

3. Эта страница может помочь: gurobi.com/documentation/8.1/refman/logging.html

Ответ №1:

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