7.2. Пример
Найти решение задачи коммивояжера с матрицей весов
Теперь мы используем только что описанный алгоритм исключения циклов, беря на каждом шаге циклы наименьшей длины и используя правило ветвления В.
Решение задачи о назначениях с матрицей
состоит из двух циклов (2, 4, 3) и (1, 7, 8, 6, 5) с весом 232. Это соответствует узлу А дерева решений, показанного на рис. 10.19.
Рис. 10.19. Поиск, использующий дерево решений из примера 7.2.
Исключение цикла (2, 4, 3) по правилу ветвления В приводит к трем подзадачам, изображаемых на рис. 10.19 узлами
Матрицы весов
этих подзадач, решения задач о назначениях для них и веса этих решений равны соответственно
(см. скан)
Решение подзадачи В является гамильтоновым циклом с весом 264. Однако нижние границы в обоих узлах
меньше этогс значения, так что существует возможность получить лучшее
лучшее значение 254. Поэтому решение подзадачи
т. е. (1, 7, 6, 5, 3, 2, 4, 8), заменяет предыдущее лучшее решение. Кроме того, значение 251 меньше, чем нижняя граница в любом конечном узле дерева, и, следовательно, найдено оптимальное решение леей задачи. (Решения во всех концевых узлах — за исключением узла
ветвление в котором было прекращено ранее, — являются на самом деле гамильтоновыми циклами, и здесь безотносительно к границам весов этих решений не нужно бы было производить дальнейшее ветвление.)