Лог вычислений
Для наблюдения и контроля за процессом вычислений Пользователю предоставляется лог решения. В зависимости от класса задачи лог имеет определенную структуру. По умолчанию лог предоставляет актуальный статус по решению задачи каждые 5 секунд, но, иногда, в связи с особенностями процесса решения, такой интервал не выдерживается и статус решения может быть предоставлен с задержкой.
Лог состоит из трёх частей - вводной части, табличной части и результирующей части.
Вводная часть
Общей частью для всех классов задач является вводная часть лога. Рассмотрим на примере.
Запуск ArhiPlex 2.0.11.123984
Права на использование (c) 2024 Arhitex
Процессор Intel Xeon Processor (Icelake) [ AVX512, AVX2 ], физических ядер CPU: 26
Параметры запуска:
mip_rel_gap = 0.00100000
time_limit = 60.00000000
Оригинальная задача MILP test.lp содержит ограничений: 45907, переменных: 109618 (дробных: 107486, бинарных: 2132, целых: 0)
Вводная часть лога выводится перед началом работы алгоритмов и содержит информацию о:
- Версии солвера, с использованием которой осуществляется расчёт
- Характеристиках вычислительных мощностей, используемых для вычислений
- Параметрах расчёта, установленных Пользователем и отличными от значений по умолчанию
- Информация о характеристиках задачи, а именно, к какому классу задача относится, сколько содержит переменных и ограничений
После начальной части Пользователю предоставляется табличная часть, в зависимости от класса задачи принимающая один из двух форматов.
Табличная часть
Вещественные задачи
Вещественные задачи выделяются в отдельную категорию задач, решаемых с применением симплекс-методов или методов барьерных функций. В таком случае алгоритмы не оперируют понятиями границ. Лог задач, не содержащих целочисленные переменные состоит из пяти столбцов:
- Целевая функция - значение целевой функции для базиса, определенного на момент вывода строки
- Первичная недостижимость - величина первичной недостижимости, вычисленная для рассматриваемого на момент вывода строки базиса (как абсолютное значение суммы всех нарушений ограничений и границ)
- Двойственная недостижимость - величина недостижимости двойственной задачи, вычисленная для рассматриваемого на момент вывода строки базиса (как абсолютное значение суммы всех нарушений ограничений и границ)
- Итераций - количество итераций симплекс-метода, осуществлённых для поиска решения до момента вывода строки
- Время - общее время решения задачи
Пример лога:
Целевая функция | Первичная | Двойственная | Итераций | Время
| недостижимость | недостижимость | |
-------------------------+------------------+------------------+--------------+----------
-0 | 0 | 0 | 0 | 66.7 с
3.97702004e+13 | 2.87250624e+11 | 0 | 11614 | 71.8 с
29946175431.72 | 32987111 | 0 | 14438 | 77.9 с
29945007261.65 | 55960093.25 | 0 | 14991 | 83.8 с
29943489271.89 | 82265180.625 | 0 | 15391 | 89.9 с
29942900857.33 | 80380287.25 | 0 | 15770 | 98.1 с
29942690225.26 | 128997072.75 | 0 | 15961 | 104.0 с
29942516958.06 | 93684708.25 | 0 | 16139 | 109.9 с
29942402124.64 | 134066687.25 | 0 | 16321 | 116.2 с
29942193371.52 | 159955599.25 | 0 | 16515 | 122.7 с
Целочисленные задачи
Если постановка задачи содержит целочисленные или бинарные переменные - вид лога немного изменяется в силу специфики применяемых алгоритмов.
Лучшая Граница | Лучшее Решение | Точность | Итераций | Время
------------------------+------------------------+--------------+--------------+-----------
15002.918372 | 30824.103938 | 51.33% | 3064 | 3.0 с
После вводной части с интервалом в 5 секунд Пользователю предоставляется лог в табличном виде. Основные столбцы:
- Лучшая граница - оценка наилучшего решения по узлам дерева решений на данный момент
- Лучшее решение - наилучшее значение целевой функции для допустимого решения, найденное на текущий момент. Оптимальное решение находится между лучшей границей и лучшим решением
- Точность - относительный разрыв между оценкой лучшей границы и лушим значением целевой функции, он же MIP Relative Gap. При достижении данного показателя значения, указываемого Пользователем в параметре mip_rel_gap процесс решения завершается
- Итераций - количество итераций симплекс-метода в рамках процесса решения задач без ограничения на целочисленность
- Время - количество времени в секундах, пройденное алгоритмом после начала вычислений
Результирующая часть
После завершения решения задачи Пользователю предоставляется информация о полученном решении и итоговом статусе расчёта.