Схема метода ветвей и границ для задачи коммивояжера
Шаг 1. Определение начального рекорда. (При отсутствии дополнительной информации можно взять длину любого маршрута). Приведение исходной матрицы. Задать k=0.
Шаг 2.Выбор пары .
Шаг 3.Ветвление .
Шаг 4. Преобразование матрицы . Вычисление матриц и . Если какая-то из этих матриц имеет размер 2 2, то переход к шагу 7.
Шаг 5.Вычисление оценок и .
Шаг 6.Выбор перспективного множества в соответствии со стратегией. Положить Переход к шагу 2.
Шаг 7.Получение допустимого маршрута, возможная смена рекорда и сокращение перебора.
Шаг 8. Проверка критерия оптимальности. Если он выполнен, то останов. Иначе переход к шагу 6.
Замечание. В момент получения матрицы 2 2 определяется замыкающая пара городов для образования допустимого маршрута.
Пример.Рассмотрим задачу коммивояжера с и матрицей расстояний
.
Выберем стратегию «по минимуму оценки». Положим . Осуществив операцию приведения, получаем матрицу .
В последнем столбце и нижней строке записаны приводящие константы. Их сумма S=10, то есть . Для каждого нулевого элемента матрицы считаем : , . Имеем . Следовательно, . Формируем множества и , добавляя соответственно условия и . Вычисляем матрицы и .
Считаем оценки: , . В таком случае дальнейшему ветвлению подлежит множество . Для каждого нулевого элемента матрицы считаем : . Имеем . Следовательно, .
Формируем множества и , добавляя соответственно условия и . Вычисляем матрицы и .
Вычисляем оценки: , .
В соответствии со стратегией дальнейшему ветвлению подлежит множество , так как оно имеет наименьшую оценку . Аналогично для всех нулевых элементов матрицы считаем и определяем, что . Формируем множества и , добавляя соответственно условия и . Матрицы и имеют вид:
Вычисляем оценки: , . Дальнейшему ветвлению подлежит множество .
Делим на подмножества и по паре . Рассчитав матрицы и , определяем , . Минимальную оценку 16 имеет три подмножества: и .
Выберем для дальнейшего ветвления . Делим его на подмножества и по паре . Получим , .
Далее делим на подмножества и по паре . Вычисляем , .
Делим по паре на и . При этом получаем матрицу размера 2 2. В результате выписываем допустимую точку (матрицу X)
со значением целевой функции .
Соответствующий маршрут: 1-2-3-5-4-8-7-5-1.
Меняем рекорд: , и подмножества выбрасываются из рассмотрения как неперспективные (их оценки превышают или равны рекордному значению). Так как больше подмножеств для ветвления не осталось, то найденная точка является оптимальным решением. Однако оно может быть не единственным, так как подмножества так же имеют оценку 16. Чтобы выяснить, существуют ли другие решения, нужно осуществлять дальнейшее ветвление этих множеств.
Дерево вариантов в рассмотренном примере имеет следующий вид.
УПРАЖНЕНИЯ
1. Решить рассмотренный в п. 8.2 пример, используя стратегию «левостороннего обхода дерева вариантов».
2. В программной реализации алгоритма метода ветвей и границ для решения задачи коммивояжера используется, как правило, левосторонний обход дерева вариантов. Отметьте преимущество этой стратегии в данном случае.
3. Решите задачу коммивояжера с матрицей:
a) | b) |
Ответ: 1-4-6-7-3-5-2-1, L=126. | Ответ: 4-3-5-6-2-1-4, L=63. |
с) | d) |
Ответ: 3-1-6-5-4-2-3, L=39. | Ответ: 2-1-5-3-4-6-2, L=26. |