Для решения задачи коммивояжера

Постановка задачи коммивояжера состоит в следующем. Имеется Для решения задачи коммивояжера - student2.ru городов. Задана матрица расстояний между ними: Для решения задачи коммивояжера - student2.ru . Cчитаем, что Для решения задачи коммивояжера - student2.ru . В общем случае возможно, что Для решения задачи коммивояжера - student2.ru . Кроме того, будем полагать, что Для решения задачи коммивояжера - student2.ru . Ищется кратчайший замкнутый маршрут (цикл), проходящий через каждый город ровно один раз и минимизирующий суммарное пройденное расстояние. Математическая постановка задачи может быть записана, например, следующим образом.

Для решения задачи коммивояжера - student2.ru

Для решения задачи коммивояжера - student2.ru

В этой постановке не учитывается естественное требование связности маршрута (отсутствия подциклов), но в дальнейшем оно будет выполняться алгоритмически.

Определение.Матрица Для решения задачи коммивояжера - student2.ru называется приведенной, если все ее элементы неотрицательны, а каждая строка и каждый столбец содержат по крайней мере по одному нулевому элементу.

Приведение матрицы может быть осуществлено следующим образом. Пусть имеется матрица Для решения задачи коммивояжера - student2.ru . Найдем Для решения задачи коммивояжера - student2.ru Для решения задачи коммивояжера - student2.ru Получим матрицу Для решения задачи коммивояжера - student2.ru , которая в каждой строке содержит нулевые элементы. Найдем далее Для решения задачи коммивояжера - student2.ru Для решения задачи коммивояжера - student2.ru Полученная матрица Для решения задачи коммивояжера - student2.ru является приведенной, а сумма Для решения задачи коммивояжера - student2.ru называется суммой приводящих констант.

Матрица Для решения задачи коммивояжера - student2.ru определяет новую задачу коммивояжера, которая в качестве оптимального решения будет иметь ту же последовательность городов. Между величинами Для решения задачи коммивояжера - student2.ru и Для решения задачи коммивояжера - student2.ru (длинами оптимальных маршрутов) будет существовать следующее соотношение: Для решения задачи коммивояжера - student2.ru . Отсюда следует очевидное неравенство: Для решения задачи коммивояжера - student2.ru , то есть сумма приводящих констант является нижней оценкой целевой функции исходной задачи коммивояжера.

Конкретизируем теперь основные этапы метода ветвей и границ применительно к данной задаче.

Пусть Для решения задачи коммивояжера - student2.ru — множество всех возможных маршрутов.

1. Ветвление. При ветвлении очередное множество Для решения задачи коммивояжера - student2.ru разбивается на два подмножества следующим образом. В матрице Для решения задачи коммивояжера - student2.ru , соответствующей разветвляемому множеству, для каждого нулевого элемента Для решения задачи коммивояжера - student2.ru вычисляется число Для решения задачи коммивояжера - student2.ru . Затем определяется пара индексов Для решения задачи коммивояжера - student2.ru , такая что Для решения задачи коммивояжера - student2.ru . Первое подмножество Для решения задачи коммивояжера - student2.ru формируется добавлением условия Для решения задачи коммивояжера - student2.ru (из Для решения задачи коммивояжера - student2.ru -го города идти в Для решения задачи коммивояжера - student2.ru -й), второе подмножество Для решения задачи коммивояжера - student2.ru содержит условие Для решения задачи коммивояжера - student2.ru .

2. Вычисление оценок. Пусть в соответствии с предыдущим пунктом произведено разбиение Для решения задачи коммивояжера - student2.ru . Рассмотрим правило перехода от матрицы Для решения задачи коммивояжера - student2.ru к матрицам Для решения задачи коммивояжера - student2.ru и Для решения задачи коммивояжера - student2.ru . Матрица Для решения задачи коммивояжера - student2.ru содержит те же строки и столбцы, что и Для решения задачи коммивояжера - student2.ru . Положим Для решения задачи коммивояжера - student2.ru . Применяя к полученной матрице Для решения задачи коммивояжера - student2.ru процедуру приведения, получим матрицу Для решения задачи коммивояжера - student2.ru . При этом сумма приводящих констант будет равна Для решения задачи коммивояжера - student2.ru . Таким образом, оценкой множества Для решения задачи коммивояжера - student2.ru будет Для решения задачи коммивояжера - student2.ru . Определим теперь правило построения матрицы Для решения задачи коммивояжера - student2.ru . По определению, множество Для решения задачи коммивояжера - student2.ru заведомо содержит переход из Для решения задачи коммивояжера - student2.ru -го города в Для решения задачи коммивояжера - student2.ru -й. Поэтому в матрице Для решения задачи коммивояжера - student2.ru следует вычеркнуть Для решения задачи коммивояжера - student2.ru -ю строку и Для решения задачи коммивояжера - student2.ru -й столбец. Далее следует запретить возможность возникновения подциклов (замыкания фрагментов маршрута). С этой целью полагаем равными Для решения задачи коммивояжера - student2.ru все элементы, введение которых в маршрут даст наличие подцикла (например, Для решения задачи коммивояжера - student2.ru ). К полученной в результате матрице следует применить процесс приведения и, найдя сумму приводящих констант Для решения задачи коммивояжера - student2.ru , посчитать оценку Для решения задачи коммивояжера - student2.ru .

Правило обхода дерева вариантов, выбор перспективного множества при ветвлении и проверка критерия оптимальности осуществляются в соответствии с общей схемой метода ветвей и границ.

Наши рекомендации