УДК 656.135.073
СОВЕРШЕНСТВОВАНИЕ АЛГОРИТМА МЕТОДА ВЕТВЕЙ И ГРАНИЦ В ЗАДАЧЕ КОММИВОЯЖЕРА ДЛЯ АВТОМОБИЛЬНОГО ТРАНСПОРТНОГО ГРАФА
С. Ф. Подшивалов, К. С. Подшивалова, Л. В. Левицкая, С. В. Дунаев
IMPROVED ALGORITHM OF BRANCH AND BOUND METHOD IN THE PROBLEM OF ROAD TRANSPORT FOR THE GRAPH OF A SALESMAN
S. F. Podshivalov, K. S. Podshivalova, L. V. Levitskaya, S. V. Dunaev
Аннотация. Актуальность и цели. Задача коммивояжера является NP-трудной задачей дискретной оптимизации. При количестве вершин графа менее двадцати для ее решения используется метод ветвей и границ. В настоящее время он считается точным методом для поиска оптимального маршрута. Задача коммивояжера применяется в учебных целях и научных работах при решении различных задач дискретной оптимизации, а также в качестве тестового контроля других методов. Изначально задача коммивояжера разрабатывалась для поиска оптимального пути для авиационного сообщения на полном графе. Автомобильная транспортная сеть является более мобильной и имеет свои особенности. Она отличается от авиационной по структуре, разнообразию связей между вершинами и их взаиморасположению. Поэтому структура автомобильного транспортного графа может быть самой разнообразной и расстояния между его вершинами могут колебаться в значительных пределах одновременно. Целью работы является проверка точности решения метода ветвей и границ для автомобильного транспортного графа. Материалы и методы. Для достижения поставленной цели использовано численное моделирование. Результаты. Впервые показано, что метод ветвей и границ может не давать оптимального результата в автомобильном транспортном графе. Причиной неточности решения задачи коммивояжера является неадекватность принятой модели расчета исходной постановки задачи. Она заключается в несправедливости второй гипотезы по оценке нулевого элемента в оценочной матрице, включаемого в оптимальный маршрут. Данная гипотеза принята в методе ветвей и границ без строгих доказательств и носит вероятностный характер. Предложен алгоритм усовершенствования метода ветвей и границ, который заключается в дополнительной проверке полученного оптимального маршрута путем удаления ветви с оценкой на одну ступень ниже максимальной на каждом шаге ветвления на дереве решения. Выводы. Доказано, что классический метод ветвей и границ является в общем случае приближенным, а не точным методом решения задачи коммивояжера, как это считается в настоящее время.
Ключевые слова: метод ветвей и границ, точность решения, усовершенствование, алгоритм, коммивояжер.
Abstract. Background. The traveling salesman problem is NP-hard discrete optimization problem. When the number of vertices less than twenty to solve the method of branches and borders. Currently, he is considered to be accurate method to find the optimal route. The traveling salesman problem is used for educational purposes and research work in solving various problems of discrete optimization, as well as test other methods of con-
trol. Initially, the traveling salesman problem is designed to find the optimal path for the air service on the complete graph. Car transport network is more mobile and has its own characteristics. It differs from the aircraft structure, diversity of connections between nodes and their mutual arrangement. Therefore, the count of motor vehicle structure can be very diverse, and the distance between its vertices may vary considerably at the same time. The aim is to check the accuracy of the decision branch and bound method for road traffic count. Materials and methods. To achieve this goal used numerical modeling. Results. For the first time shows that branch-and-bound method might not give optimum result in road transport box. Cause inaccuracies decision traveling salesman problem is the inadequacy of the accepted model of calculating the original problem statement. It is injustice second hypothesis on the assessment of the zero element in the evaluation matrix included in the route. This hypothesis is accepted in branch-and-bound method without strong evidence and is probabilistic in nature. The algorithm for improvement of branch and bound method, which is an additional verification of obtained optimal route by removing branches from the assessment one notch below the maximum in each step of branching in a tree solution. Conclusions. It is proved that the classical branch-and-bound method is in the General case, approximate, not exact.
Key words: branch and bound method, accuracy of solution, enhancement, algorithm, salesman.
Введение
В настоящее время более половины автомобильных грузовых перевозок различного назначения приходится на мелкопартионные отправки. Оптимизация их маршрутов является достаточно актуальной задачей. В общем случае она сводится к решению задачи коммивояжера, которая относится к классу NP-трудных.
Считается, что точным методом решения задачи коммивояжера является метод ветвей и границ (ВиГ) [1]. Он широко используется в учебных целях и научных работах при решении различных задач дискретной оптимизации, а также в качестве тестового контроля других методов при матрице расстояний менее чем из 20 пунктов [2-8].
Постановка задачи заключается в определении оптимального маршрута наименьшей длины при прохождении по всем вершинам автомобильного транспортного графа один раз, начиная и возвращаясь в один и тот же пункт. Алгоритм ее решения заключается в следующем.
1. Составляем исходную матрицу расстояний между пунктами I у
исследуемой автомобильной транспортной сети, используя карту или показания спидометра.
Ю А,2 А,3 ... A,n ... Aj
^ 2,1 Ю ^ 2,3 ... ^ 2,n ... ^ 2, j
^ 3,1 ^ 3,2 Ю ... ^3,n ... ^3,j
^ n,1 ^ n,2 ^ n,3
^ i,1 ^ i,2 ^ i'
да
I
да
Заметим, что знак да представляет собой очень большое число и означает блокировку движения между этими пунктами
2. Переходим к приведенной матрице Цр . Для этого в каждой строке находим минимальный элемент Н и вычитаем его из всех остальных элементов Iу, расположенных в рассматриваемой строке:
Ау' = £у - Н,1 = 1,2,3,..., п. (1)
Затем в полученной матрице находим минимальный элемент в каждом столбце Ну и вычитаем его из всех остальных элементов I у , расположенных в рассматриваемом столбце:
*у" = V - Ну, у = 1,2,3,..., т. (2)
3. Находим оценочную матрицу Ц . Определяем для каждого элемента
//
с I у = 0 оценку по формуле
// //
А = тт I % + тт I ■ , (3)
//
где ¿ik - наименьший элемент в строке i; I . - наименьший элемент
в столбце j ; к Ф j, s Ф i, к,s = 1,2, 3,..., n.
4. Находим пару к - s с максимальной оценкой:
Aks = max A. , i, j = 1,2,3,..., n. (4)
5. Переходим к новой матрице Lks. Для этого вычеркиваем из Ц строку к и столбец s с наибольшей оценкой. Блокируем ячейку на пересечении строки s и столбца к, а также ветвь, ведущую к зацикливанию цепи со звеном к - s .
6. Выполняем над полученными матрицами Lfe и Lv операции приведения и оценки, описанные в пп. 2-3, до тех пор, пока последняя вычеркиваемая ветвь не станет очевидной.
7. Оптимальный маршрут устанавливается путем сравнения всех возможных вариантов вычеркивания ветвей.
Одним из недостатков алгоритма является невозможность посещать вершины графа несколько раз. В работе [4] предложена усовершенствованная методика расчета ВиГ, позволяющая в процессе решения матрицы расстояний вводить в нее дополнительные фиктивные приведенные узлы и ветви, которые дублируют действительные. Их посещение наряду с действительными узлами позволяет включать в маршрут вершины графа несколько раз.
Другим недостатком метода ветвей и границ служит вырождение решения для неполного графа [8]. В результате исследования авторами установлено, что оно проявляется в разделении замкнутого гамильтонового контура на два замкнутых независимых кольцевых маршрута или одного контура и ветви. Причина заключается в неточности второй из принятых гипотез метода ветвей и границ и, следовательно, определении порядка вычеркивания элементов матрицы. В работе [8] приведен усовершенствованный алгоритм решения и доказана его справедливость на численных примерах.
Третьим недостатком метода ВиГ, который установлен авторами данного исследования, является неточность решения задачи при выборе оптимального маршрута, если имеется большая разница между величинами элементов исходной матрицы расстояний транспортного графа.
Доказательство неточности алгоритма метода ветвей и границ
В основе метода ветвей и границ лежат две гипотезы: приведения и оценки ветвей, предназначенных для вычеркивания из матрицы расстояний. Гипотеза приведения не вызывает сомнения, так как решение задачи отыскания оптимального маршрута не изменится, если из какой-нибудь строки или столбца матрицы вычесть произвольное положительное число, а длина маршрута уменьшится на это самое число. Выбор нулевого элемента для ветвления обеспечивает удаление хорды наименьшей длины, включения ее в маршрут и поэтому не вызывает сомнения.
На основании второй гипотезы считается, что для обеспечения достижения наибольшей степени вероятности оптимального результата в первую очередь необходимо исключить из рассмотрения ту нулевую хорду, у которой самая большая сумма расстояний у минимальной входящей и минимальной выходящей ветвей из ее узлов. Они расположены в строке и столбце таблицы, на пересечении которых находится нулевой элемент. Использование минимальных величин строки и столбца из приведенной матрицы представляется целесообразным, так как определяется маршрут наименьшей длины. Сомнение вызывает справедливость второго утверждения, что необходимо всегда вычеркивать на каждом этапе нулевой элемент с максимальной суммарной оценкой. Причина в том, что она в общем случае носит случайный характер и может не выявить оптимальную ветвь с учетом всех возможных последующих комбинаций, когда разница в оценках невелика.
В настоящей статье на численном примере представлено доказательство несправедливости алгоритма метода ветвей и границ, когда не получается оптимального решения при удалении ветви с максимальной оценкой. Наоборот, вычеркивание ячейки, имеющей следующую более низкую оценку, дает оптимальный результат.
Рассмотрим пример матрицы расстояний, представленной в табл. 1.
Таблица 1
Исходная матрица
1 2 3 4 5 6 7 8
1 101 202 104 202
2 101 102 300
3 202 201 304 300 304 403
4 201 204 105 201
5 104 304 204 202 404
6 202 102 300 105 202 400
7 300 304 402
8 403 201 404 400 402
Ввиду важности получаемых результатов и последующих выводов приводим достаточно подробное ее решение, по классическому алгоритму, представленному во введении. В табл. 2 дана приведенная матрица по строкам и столбцам.
Таблица 2
Приведенная матрица
1 2 3 4 5 6 7 8
1 0 97 0 101
2 0 1 96
3 1 0 100 99 0 106
4 92 96 0 0
5 0 196 100 98 204
6 100 0 194 3 97 202
7 0 0 6
8 198 0 200 199 98
Оценочная матрица показана в табл. 3. В ней имеется две ячейки 5-1 и 8-4 с максимальной оценкой 98. Рассмотрим, например, удаление хорды 5-1.
Таблица 3
Оценочная матрица
1 2 3 4 5 6 7 8
1 0 0 97 96 0 101
2 1 0 1 96
3 1 0 0 100 99 96 0 106
4 92 96 1 0 6 0
5 98 0 196 100 98 204
Окончание табл. 3
1 2 3 4 5 6 7 8
6 100 3 0 194 3 97 202
7 0 0 92 0 6
8 198 98 0 200 199 98
Получаем табл. 4 меньших размеров, в которой блокируем ячейку 1-5. Выполняем операции приведения во второй строке и пятом столбце.
Таблица 4
Оценочная матрица
2 3 4 5 6 7 8
1 97 0 97 да 101
2 95 0 95
3 0 0 4 99 95 0 106
4 92 1 0 0 0 6 0
6 1 0 194 3 1 202
7 0 0 92 0 6
8 198 98 0 104 199 98
В табл. 4 наибольшую оценку 98 имеет элемент 8-4. После удаления ветви 8-4 получаем матрицу 6^6, в которой блокируем ячейку 4-8 и выполняем операцию приведения в столбце 8 (табл. 5).
Таблица 5
Оценочная матрица
2 3 5 6 7 8
1 97 0 97 101
2 95 0 95
3 4 99 99 0 100
4 92 1 0 0 0 да
6 1 0 194 1 196
7 0 0 92 0 100 0
Затем в ней производим оценку полученных нулевых элементов. Вычеркиваем ветвь 7-8 с максимальной оценкой 100.
Из табл. 5 получаем матрицу размером 5^5. В ней делаем операцию приведения в столбце 3 и выполняем оценку нулевых элементов (табл. 6).
Таблица 6
Оценочная матрица
2 3 5 6 7
1 5 0 5 101
2 95 0 95
3 4 99 99 0
4 5 0 1 0 0 0
6 1 0 102 1
На основании их анализа включаем в маршрут ветвь 3-7 с наибольшей оценкой 99 и получаем табл. 7.
Таблица 7
Оценочная матрица
2 3 5 6
1 0 0 97 0 101
2 да 0
4 да 1 0 0 0
6 1 0 97 1
В ней блокируем ячейку 4-3 против зацикливания и выполняем приведение во второй строке и третьем столбце. В табл. 7 вычеркиваем ветвь 2-6. Остается матрица размером 3*3, в которой блокируем ячейку 6-2 (табл. 8).
Таблица 8
Оценочная матрица
2 3 5
1 да 0 96 0
4 да 0
6 да 96 96 0
Выполняем операцию приведения в строке 6 и производим оценку нулевых элементов. Максимальную оценку имеют два элемента 1-2 и 4-5. В качестве примера рассмотрим удаление ветви 1-2. В результате получаем матрицу размером 2*2, в которой блокируем ячейку 6-6 (табл. 9). В ней хорды 6-3 и 4-5, включаемые в маршрут, определяются однозначно. В итоге получаем маршрут 5-1-2-6-3-7-8-4-5 длиной 1718 единиц.
Таблица 9
Оценочная матрица
3 5
4 да 0
6 да 0 да
Удаление ветвей 4-5 и 8-4, соответственно, в табл. 3 и 8 не изменяет результат.
Покажем, что найденный маршрут не является оптимальным. Нарушим алгоритм метода ветвей и границ в части выбора в качестве оптимальной ветви элемент матрицы с максимальной оценкой.
Приведем результаты расчетов на примере первого этапа ветвления на дереве решения.
Вычеркиваем в табл. 4 вместо хорды 8-4 с наибольшей оценкой 98 ветвь 1-2 с чуть меньшей оценкой 97 (табл. 10). Получаем матрицу 6*6 (табл. 11). В ней выполняем операцию приведения в строке 1 и оценку нулевых элементов. Два элемента матрицы 8-4 и 7-3 имеют одинаковую оценку 98.
Таблица 10
Оценочная матрица
2 3 4 5 6 7 8
1 97 0 97 да 101
2 95 0 95
3 0 0 4 99 95 0 106
4 92 1 0 0 0 6 0
6 1 0 194 3 1 202
7 0 0 92 0 6
8 198 98 0 104 199 98
Таблица 11
Оценочная матрица
3 4 5 6 7 8
2 95 0 95
3 0 0 4 99 95 0 106
4 92 0 0 0 0 6 0
6 193 2 2 0 201
7 98 0 6
8 198 98 0 104 199 98
В качестве примера рассмотрим включение в маршрут ветви 7-3. Получаем табл. 12, в которой блокируем ячейку 3-7 против зацикливания. После выполнения операций приведения в столбце 7 и оценки нулевых элементов удаляем хорду 4-8 с максимальной оценкой 106. В результате получается матрица размером 4^4 (табл. 13). В ней блокируем ячейку 8-4. В строке 8 выполняем операцию приведения. Производим оценку нулевых элементов. Из табл. 13 включаем в маршрут ветвь 8-7, имеющую максимальную оценку 101. Получаем табл. 14, в которой блокируем ячейку 3-4 и выполняем операции приведения в строке 3 и столбце 4. Наибольшую оценку имеют две хорды 2-6 и 6-4. В качестве примера вычеркиваем ветвь 2-6.
Таблица 12
Оценочная матрица
4 5 6 7 8
2 0 0 3 0
3 4 0 4 99 да 106
4 0 0 0 0 106 0
6 2 2 0 201
8 3 0 104 199 3
Таблица 13
Оценочная матрица
4 5 6 7
2 99 0 0 0
3 6 0 4 99
Окончание табл. 13
4 5 6 7
6 2 6 0
8 да 101 196 101 0
Таблица 14
Оценочная матрица
4 5 6
2 да 0
3 да 0 95
6 да 0 6 0
Получаем матрицу размером 2*2, в которой блокируем ветвь 6-5 (табл. 15). Удаление ветвей 3-5 и 6-4 является очевидным. Отметим, что рассмотрение варианта удаления ветви 8-4 в табл. 11 не дает улучшения решения. Получаем маршрут 5-1-2-6-4-8-7-3-5 длиной 1623 единицы. Это на 95 км меньше, чем при расчете в первом варианте. Экономия составляет 5 % длины маршрута.
Таблица 15
Оценочная матрица
4 5
3 да 0
6 да 0 да
Вследствие того, что элементы матрицы являются случайными величинами, аналогичную проверку на оптимальность необходимо выполнять на каждом этапе ветвления на дереве решения, кроме последнего, когда решение однозначно. Отметим, что проведенные расчеты на оптимальность на всех других этапах ветвления не привели к улучшению окончательного результата.
Усовершенствованная методика ветвей и границ заключается в следующем. После выполнения п. 5 классического алгоритма, приведенного во введении, на следующем шаге создаем проверочную матрицу Ьу. Для этого вычеркиваем из матрицы Ц строку V и столбец к с оценкой на одну ступень ниже максимальной. Блокируем ячейку на пересечении строки к и столбца V, а также ветвь, ведущую к зацикливанию цепи со звеном v-k. Далее классический алгоритм метода ВиГ сохраняется.
Заключение
Метод ветвей и границ не всегда дает точное решение задачи коммивояжера для автомобильного транспортного графа. Поэтому необходимо после определения рационального маршрута методом ВиГ выполнять дополнительную его проверку на оптимальность путем удаления хорды с оценкой на одну ступень ниже максимальной на каждом шаге ветвления дерева решения.
Использование усовершенствованного алгоритма позволило сократить длину маршрута на 5 %.
Исследования в данном направлении необходимо продолжить, чтобы набрать достаточную статистику решения таких задач, а также найти другие возможные типы графов, для которых метод ВиГ может не дать точного решения. Следует обратить внимание ученых и преподавателей высшей школы, читающих лекции по теории оптимизации, на рассмотренную проблему.
Библиографический список
1. Литл, Дж. Алгоритм для решения задачи о коммивояжере / Дж. Литл, К. Мурти, Д. Суини, К. Карел // Экономика и математические методы. - 1965. - Т. 1, вып. 1. -С. 94-107.
2. Кожин, А. П. Математические методы планирования и управления грузовыми автомобильными перевозками / А. П. Кожин, В. Н. Мезенцев. - М. : Транспорт, 1994. - 304 с.
3. Костюк, Ю. Л. Эффективная реализация алгоритма решения задачи коммивояжера методом ветвей и границ / Ю. Л. Костюк // Прикладная дискретная математика. - 2013.- № 2 (20). - С. 78-90.
4. Подшивалова, К. С. Повышение эффективности перевозок мелкопартионных грузов автомобильным транспортом : дис. ... канд. техн. наук / Подшивалова К. С. -Волгоград, 2007. - 156 с.
5. Мудров, В. И. Задача о коммивояжере / В. И. Мудров. - М. : Знание, 1969. - 61 с.
6. Пожидаев, М. С. Алгоритмы решения задачи маршрутизации транспорта : дис. ... канд. техн. наук / Пожидаев М. С. - Томск, 2010. - 134 с.
7. Прокофьева, О. С. Разработка методики оптимизации развозочных маршрутов : дис. ... канд. техн. наук / Прокофьева О. С. - Иркутск, 2004. - 167 с.
8. Подшивалов, С. Ф. Особенность использования метода ветвей и границ в задаче коммивояжера при неполном транспортном графе / С. Ф. Подшивалов, К. С. Подшивалова // Экономика и математические методы. - 2014. - Т. 50, вып. 3.- С. 134-140.
Подшивалов Сергей Федорович кандидат технических наук, доцент, кафедра общепрофессиональных дисциплин,
филиал Военной академии материально-технического обеспечения (г. Пенза)
E-mail: burobaola@mail.ru
Podshivalov Sergey Fedorovich candidate of technical sciences, associate professor,
sub-department of general professional disciplines,
Branch of Military Academy of logistics (Penza)
Подшивалова Кристина Сергеевна кандидат технических наук, доцент, кафедра организации и безопасности движения, Пензенский государственный университет архитектуры и строительства E-mail: sharm-08@bk.ru
Левицкая Любовь Владимировна
кандидат технических наук, доцент, кафедра эксплуатации автомобильного транспорта,
Пензенский государственный университет архитектуры и строительства E-mail: levickaya.lyu@yandex.ru
Дунаев Сергей Валерьевич
курсант,
филиал Военной академии материально-технического обеспечения (г. Пенза) E-mail: dunaevsv@mail.ru
Podshivalova Kristina Sergeyevna candidate of technical sciences, associate professor, sub-department of organization and traffic safety, Penza State University of architecture and construction
Levitskaya Lyubov Vladimirovna
candidate of technical sciences,
associate professor,
sub-department of road transport
exploitation,
Penza State University
of architecture and construction
Dunaev Sergey Valeryevich cadet,
Branch of Military Academy of logistics (Penza)
УДК 656.135.073 Подшивалов, С. Ф.
Совершенствование алгоритма метода ветвей и границ в задаче коммивояжера для автомобильного транспортного графа / С. Ф. Подшивалов, К. С. Подшивалова, Л. В. Левицкая, С. В. Дунаев // Модели, системы, сети в экономике, технике, природе и обществе. - 2017. - № 1 (21). - С. 169-180.