Backtracking algorithms for constructing the Hamiltonian decomposition of a 4-regular multigraph
ААлгоритмы поиска с возвратом для построениягамильтонова разложения 4-регулярного мультиграфа
Коростиль А. В., Николаев А. В.Ярославский государственный университет им. П.Г. Демидова[email protected], [email protected]
Аннотация
Рассматривается задача построения гамильтонова разложения регулярного графа нагамильтоновы циклы без общих рёбер. Известно, что проверка несмежности вершин в по-лиэдральных графах симметричного и асимметричного многогранников коммивояжёраявляется NP-полной задачей. С другой стороны, достаточное условие несмежности вершинможно сформулировать в виде комбинаторной задачи построения гамильтонова разложе-ния 4-регулярного мультиграфа. В статье представлены два алгоритма поиска с возвратомдля проверки несмежности вершин в полиэдральном графе коммивояжёра и построениягамильтонова разложения 4-регулярного мультиграфа: алгоритм на основе последователь-ного расширения простого пути и алгоритм на основе процедуры цепного фиксированиярёбер. По результатам вычислительных экспериментов для неориентированных мульти-графов оба переборных алгоритма проиграли известному эвристическому алгоритму поис-ка с переменными окрестностями. Однако, для ориентированных мультиграфов алгоритмна основе цепного фиксирования рёбер показал сопоставимые результаты с эвристикамина экземплярах задачи, имеющих решение, и лучшие результаты на экземплярах задачи,для которых гамильтонова разложения не существует.
Введение
Гамильтоновым разложением регулярного мультиграфа называется разбиение множества егорёбер на гамильтоновы циклы. Задача поиска в заданном регулярном графе гамильтоновыхциклов без общих рёбер находит применение в комбинаторной оптимизации [24], теориикодирования [5, 6], алгоритмах распределенного интеллектуального анализа данных [12], ана-лизе взаимосвязанных сетей [18] и других областях. См. также теоретические результаты пооценке числа гамильтоновых разложений регулярных графов [16]. В данной работе задачапостроения гамильтонова разложения приходит из области полиэдральной комбинаторики.
Рассматривается классическая постановка задачи коммивояжёра: задан полный взвешенныйграф (или орграф) 𝐾 𝑛 = (𝑉 , 𝐸) , найти гамильтонов цикл минимального веса. Обозначим через 𝐻 𝐶 𝑛 множество всех гамильтоновых циклов в графе 𝐾 𝑛 и сопоставим каждому гамильтновуциклу 𝑥 ∈ 𝐻 𝐶 𝑛 характеристический вектор 𝑥 𝑣 ∈ ℝ 𝐸 по следующему правилу: 𝑥 𝑣𝑒 = {1, если цикл 𝑥 содержит ребро 𝑒,0, в противном случае . Многогранник
STSP(𝑛) = conv{𝑥 𝑣 | 𝑥 ∈ 𝐻 𝐶 𝑛 } a r X i v : . [ c s . D S ] S e p азывается многогранником симметричной задачи коммивояжёра . Многогранник асимметричной задачи коммивояжёра
ATSP(𝑛) определяется аналогично каквыпуклая оболочка характеристических векторов всех возможных гамильтоновых циклов вполном орграфе 𝐾 𝑛 .Подход к решению задачи коммивояжёра с помощью целочисленного линейного програм-мирования был впервые представлен в классической работе Данцига, Фалкерсона и Джонсонадля 49 городов США [14]. Лучшие на данный момент точные алгоритмы для решения зада-чи коммивояжёра основаны на частичном описании фасет многогранника коммивояжёра иметоде ветвей и отсечений для целочисленного линейного программирования [2]. Полиэдральным графом многогранника называется граф, вершинами которого являютсявершины многогранника, а рёбрами – геометрические рёбра, т.е. одномерные грани. Иссле-дование полиэдральных графов представляет интерес, так как, с одной стороны, некоторыекомбинаторные алгоритмы для таких задач как совершенное паросочетание, покрытие мно-жества, независимое множество, ранжирование объектов, задачи с нечёткими мерами и ряддругих основаны на отношении смежности вершин в полиэдральном графе и технике ло-кального поиска (когда от текущего решения переход осуществляется к «лучшему» решениюсреди смежных) [1, 7, 11, 13, 15]. С другой стороны, различные характеристики полиэдральногографа задачи, такие как диаметр и кликовое число (число вершин в наибольшей клике), служатоценками сложности для различных моделей вычислений и классов алгоритмов [8, 10, 17].К сожалению, на пути исследования полиэдрального графа многогранника коммивояжёравстаёт классический результат Пападимитриу.
Теорема 1 (Пападимитриу [27]) . Задача проверки несмежности вершин в многогранниках
STSP(𝑛) симметричной и
ATSP(𝑛) асимметричной задач коммивояжёра является NP-полной.
Отметим, что дополнительная задача проверки смежности вершин в полиэдральном графемногогранника коммивояжёра будет co-NP-полной.
В связи с результатом Пападимитриу о NP-полноте проверки несежности вершин в полиэд-ральном графе многогранника коммивояжёра особый интерес представляют различные до-статочные условия несмежности. В частности, известны полиномиально разрешимые доста-точные условия для пирамидальных циклов [9], пирамидальных циклов с шагами назад [25]и «родословных» [3, 4]. В данной работе рассматривается наиболее общее из известных –достаточное условие Рао.Пусть 𝑥 = (𝑉 , 𝐸 𝑥 ) и 𝑦 = (𝑉 , 𝐸 𝑦 ) – два гамильтоновых цикла на множестве вершин 𝑉 . Обозна-чим через 𝑥 ∪ 𝑦 (𝑉 , 𝐸 𝑥 ∪ 𝐸 𝑦 ) , который содержит копию каждого ребра 𝑥 и 𝑦 . Отметим, что если два цикласодержат одно и то же ребро 𝑒 , то в мультиграф 𝑥 ∪ 𝑦 добавляются обе копии ребра. Лемма 2 (Рао [29]) . Пусть 𝑥, 𝑦 – два гамильтоновых цикла. Если мультиграф 𝑥 ∪ 𝑦 содержит двагамильтоновых цикла 𝑧 и 𝑤 без общих рёбер, отличных от 𝑥 и 𝑦 , то соответствующие вершины 𝑥 𝑣 и 𝑦 𝑣 многогранника коммивояжёра STSP(𝑛) (или
ATSP(𝑛) ) несмежны.
С геометрической точки зрения достаточное условие Рао означает, что отрезок соединяю-щий вершины 𝑥 𝑣 и 𝑦 𝑣 пересекается с отрезком, соединяющим две других вершины 𝑧 𝑣 и 𝑤 𝑣 многогранника коммивояжёра, следовательно, они не могут быть смежны. Пример выполнен-ного достаточного условия приведён на Рис. 1.Таким образом, проверка достаточного условия несмежности вершин в полиэдральномграфе многогранника коммивояжёра сводится к поиску двух различных гамильтоновых раз-2 2 3 456 x y x ∪ y z w Рис. 1: Пример выполненного достаточного условия несмежностиложений в 4-регулярном мультиграфе 𝑥 ∪ 𝑦 . Сформулируем достаточное условие в виде ком-бинаторной задачи.
Условие.
Заданы два гамильтоновых цикла 𝑥 и 𝑦 . Задача.
Найдутся ли в мультиграфе 𝑥 ∪ 𝑦 два гамильтоновых цикла 𝑧 и 𝑤 без общих рёбер,отличные от 𝑥 и 𝑦 ?Отметим, что проверка содержит ли произвольный граф гамильтоново разложение яв-ляется NP-полной задачей уже для 4-регулярных неориентированных мультиграфов и 2-регулярных ориентированных мультиграфов [28].Ранее задача проверки несмежности вершин в полиэдральном графе коммивояжёра и по-строения гамильтонова разложения 4-регулярного мультиграфа исследовалась в работах [23,22, 26], где были предложены ряд эвристическех алгоритмов на основе построения покрытияграфа циклами без общим вершин: имитация отжига, поиск с запретами и поиск с переменны-ми окрестностями. Эвристические алгоритмы оказались очень эффективными на экземплярахзадачи имеющих решение, особенно на неориентированных графах. Однако, на экземплярахзадачи не имеющих решение эвристики сталкиваются со значительными затруднениями. Вданной работе рассматриваются два точных переборных алгоритма поиска с возвратом по-строения гамильтонова разложения 4-регулярного мультиграфа. Напомним, что поиск с возвратом ( backtracking ) – один из общих методов нахождения ре-шения задачи полным перебором. Процедура заключается в последовательном расширениичастичного решения. Если на очередном шаге такое расширение провести не удается, то воз-вращаются к более короткому частичному решению и продолжают поиск дальше [30].В работе [21] был представлен алгоритм поиска с возвратом для задачи построения гамиль-тонова разложения 4-регулярного мультиграфа на основе построения простого пути. Нижеприводится его несколько доработанная версия.Пусть здесь и далее частичное решение состоит из двух компонент 𝑧 и 𝑤 . Идея алгоритмазаключается в последовательном построении простого пути в компоненте 𝑧 . При этом, рёбране попавшие в 𝑧 отправляются в компоненту 𝑤 .Рассмотрим пример мультиграфа 𝑥∪𝑦 , приведённый на Рис. 1. Построим для него частичное3ешение, соответствующее простому пути (Рис. 2). Здесь сплошными выделенырёбра компоненты 𝑧 , пунктирными – рёбра компоненты 𝑤 . Так как степень каждой вершиныв мультиграфе 𝑥 ∪ 𝑦 равна 4, то продолжить простой путь в 𝑧 из вершины можно не более чемтремя способами: (6, 1) , (6, 2) и (6, 3) . При этом, какое бы ребро мы не выбрали для продолженияпути, так как уже два ребра инцидентных вершине добавлены в 𝑧 , то два других ребра могутпопасть только в компоненту 𝑤 . 1 2 3 456частичное решение1 2 3 456расширение 1 1 2 3 456расширение 2 1 2 3 456расширение 3Рис. 2: Поиск с возвратом на основе расширения прострого путиМы последовательно рассматриваем все три варианта и для каждого проверяем коррект-ность частичного решения:• расширение 1 недопустимо так как содержит цикл на вершинах
2, 3, 4, 6 в компоненте 𝑤 ;• расширение 2 недопустимо так как содержит цикл на вершинах
2, 3, 5, 6 в компоненте 𝑧 ;• расширение 3 является корректным.В общем случае условие корректности частичного решения имеют следующий вид:• в 𝑧 содержится простой путь (по построению) или гамильтонов цикл;• в 𝑤 содержится лес (граф без циклов) со степенью вершин не более 2 или гамильтоновцикл.Если вариант расширения частичного решения оказался некорректным, то мы откатыва-емся на шаг назад и рассматриваем следующий вариант. Если все три варианта расширениянедопустимы, то данное частичное решение невозможно расширить и мы также возвращаем-ся на шаг назад.Общая схема поиска с возвратом для неориентированных графов приведена в псевдокодеАлгоритма 1.Для ориентированных графов алгоритм отличается только тем, что из каждой вершинымультиграфа 𝑥 ∪𝑦 выходит ровно два ребра, следовательно существует не более двух вариантоврасширения простого пути в 𝑧 . Все остальные шаги полностью аналогичны.4 лгоритм 1 Поиск с возвратом на основе построения простого пути procedure Backtracking_Simple_Path( 𝑧, 𝑤, (𝑖, 𝑗), 𝑥 ∪ 𝑦 ) Добавить ребро (𝑖, 𝑗) в 𝑧 if Вершине 𝑖 в 𝑧 инцидентны 2 ребра then Добавить свободные ребра инцидентные 𝑖 в 𝑤 end if if частичное решение 𝑧, 𝑤 не является корректным then return ⊳ Вернуться на шаг назад end if if 𝑧 и 𝑤 гамильтоновы циклы (отличные от 𝑥 и 𝑦 ) then return гамильтоново разложение 𝑧 и 𝑤 ⊳ Решение найдено end if
Отсортировать рёбра (𝑗, 𝑘) из вершины 𝑗 в порядке возрастания свободных степеней 𝑘 for каждого свободного ребра (𝑗, 𝑘) из вершины 𝑗 do 𝑧, 𝑤 ← Backtracking_Simple_Path( 𝑧, 𝑤, (𝑗, 𝑘), 𝑥 ∪ 𝑦 ) if гамильтоново разложение найдено then return гамильтоново разложение 𝑧 и 𝑤 end if end for end procedure procedure Algorithm_Simple_Path( 𝑥 ∪ 𝑦 ) 𝑧, 𝑤 ← ∅ Выбрать начальное ребро (𝑖, 𝑗) мультиграфа 𝑥 ∪ 𝑦 𝑧, 𝑤 ←
Backtracking_Simple_Path( 𝑧, 𝑤, (𝑖, 𝑗), 𝑥 ∪ 𝑦 ) if 𝑧 и 𝑤 найдены then return Найдено гамильтоново разложение 𝑧 и 𝑤 (вершины многогранника несмеж-ны) end if return Гамильтоново разложение не найдено (вершины возможно смежны) end procedure
Второй алгоритм поиска с возвратом основан на процедуре цепного фиксирования рёбермультиграфа в компонентах 𝑧 и 𝑤 . Алгоритмы для ориентированных и неориентированныхграфов несколько отличаются, поэтому опишем их по отдельности. Рассмотрим ориентированный 2-регулярный мультиграф 𝑥 ∪ 𝑦 , для которого полустепенизахода и исхода каждой вершины равны двум. Выберем некоторое ребро (𝑖, 𝑗) и зафиксируемего в компоненте 𝑧 , тогда второе ребро (𝑖, 𝑘) , выходящее из 𝑖 , и второе ребро (ℎ, 𝑗) , входящее в 𝑗 , очевидно не могут попасть в 𝑧 . Мы зафиксируем эти рёбра в 𝑤 (Рис. 3).Основная идея алгоритма заключается в том, что рёбра (𝑖, 𝑘) и (ℎ, 𝑗) , зафиксированные в 𝑤 ,в свою очередь запускают рекурсивные цепочки фиксирования рёбер в 𝑧 и т.д.Рассмотрим в качестве примера ориентированный 2-регулярный мультиграф, приведён-ный на Рис. 4. Отметим, что мультиграф содержит две копии ребра (2, 3) . Одинаковые ребране могут попасть в один гамильтонов цикл, поэтому зафиксируем по одной копии в 𝑧 и 𝑤 .Выберем некоторое ребро, например (1, 2) , и зафиксируем его в компоненте 𝑧 , тогда:5 𝑗𝑘ℎ 𝑧𝑤𝑤 Рис. 3: Фиксирование ребра (𝑖, 𝑗) в 𝑧
1. ребро (1, 2) зафиксировано в 𝑧 , следовательно рёбра (1, 4) и (6, 2) отправляются в 𝑤 ;2. ребро (1, 4) зафиксировано в 𝑤 , следовательно ребро (3, 4) отправляется в 𝑧 , ребро (6, 2) зафиксировано в 𝑤 , следовательно, ребро (6, 1) отправляется в 𝑧 ;3. ребро (3, 4) зафиксировано в 𝑧 , следовательно ребро (3, 5) отправляется в 𝑤 , ребро (6, 1) зафиксировано в 𝑧 , следовательно ребро (5, 1) отправляется в 𝑤 ;4. ребро (3, 5) зафиксировано в 𝑤 , следовательно ребро (4, 5) отправляется в 𝑧 , ребро (5, 1) зафиксировано в 𝑤 , следовательно, ребро (5, 6) отправляется в 𝑧 .На выходе только по одному зафиксированному в 𝑧 ребру (1, 2) мы получаем однозначно га-мильтоновы циклы 𝑧 и 𝑤 (Рис. 4). Учитывая, что ребро (1, 2) должно принадлежать хотя быодному гамильтонову циклу, то данный 2-регулярный ориентированный мультиграф содер-жит единственное гамильтоново разложение, которое и было найдено.Общая схема поиска с возвратом для ориентированных мультиграфов приведена в псев-докоде Алгоритма 2.На шаге предварительной обработки данных (строка 28, Алгоритм 2) мы находим всесовпадающие рёбра в мультиграфе 𝑥 ∪ 𝑦 и фиксируем в 𝑧 и 𝑤 по одной копии, так как эти рёбране могут попасть в один гамльтонов цикл.Частичное решение считается корректным, если компоненты 𝑧 и 𝑤 представляют собойориентированные ациклические графы с полустепенями захода и исхода не более одного илиориентированные гамильтоновы циклы (контуры). По построению, полуступени вершин в 𝑧 и 𝑤 не могут быть равны двум, так что для проверки корректности достаточно убедиться вотсутствии не гамильтоновых циклов.В отличие от алгоритма поиска с возвратом на основе построения простого пути (Алго-ритм 1) вершину 𝑖 ′ для построения расширения частичного решения (строка 18, Алгоритм 2)имеет смысл выбирать так, чтобы цепочки фиксирования запускались с обоих концов ребра (𝑖 ′ , 𝑗 ′ ) . Чем больше рёбер будет зафиксировано на одном шаге, тем меньше окажется глубинарекурсии.Отметим, что мы не рассматриваем различные варианты при выборе и фиксированиипервого свободного ребра (𝑖, 𝑗) (строка 29, Алгоритм 2) так как это ребро должно попасть в однуиз компонент решения. Назовём компонентой 𝑧 ту, что содержит ребро (𝑖, 𝑗) .Следует также отметить, что хотя процедура Chain_Edge_Fixing_Directed (строки 1-9, Алго-ритм 2) рекурсивного фиксирования рёбер на каждом шаге вызывает до двух своих подзадач,общая трудоёмкость линейна ( 𝑂(𝑉 ) ), так как каждое ребро может быть зафиксировано не болееодного раза, и |𝐸| = 2|𝑉 | . Псевдокод алгоритма для неориентированных мультиграфов приведён в Алгоритме 3.6 2 3 456 𝑥 ∪ 𝑦 ⟹ 𝑧 и 𝑤 Рис. 4: Результат фиксирования ребра (1, 2) в 𝑧 Алгоритм 2
Поиск с возвратом на основе цепного фиксирования рёбер procedure Chain_Edge_Fixing_Directed( (𝑖, 𝑗) в 𝑧 ) ⊳ Рекурсивное фиксирование рёбер Зафиксировать ребро (𝑖, 𝑗) в 𝑧 if ребро (𝑖, 𝑘) не зафиксировано then Chain_Edge_Fixing_Directed( (𝑖, 𝑘) в 𝑤 ) end if if ребро (ℎ, 𝑗) не зафиксировано then Chain_Edge_Fixing_Directed( (ℎ, 𝑗) в 𝑤 ) end if end procedure procedure Backtracking_Chain_Edge_Fixing_Directed( 𝑧, 𝑤, (𝑖, 𝑗), 𝑥 ∪ 𝑦 ) Chain_Edge_Fixing_Directed( (𝑖, 𝑗) в 𝑧 ) if 𝑧 и 𝑤 – гамильтоновы циклы (отличные от 𝑥 и 𝑦 ) then return 𝑧 и 𝑤 – решение end if if 𝑧 или 𝑤 содержит не гамильтонов цикл then ⊳ Частичное решение некорректно return ⊳ Вернуться на шаг назад end if
Выбрать вершину 𝑖 ′ , из которой выходят свободные рёбра for каждого свободного ребра (𝑖 ′ , 𝑗 ′ ) из вершины 𝑖 ′ do 𝑧, 𝑤 ← Backtracking_Chain_Edge_Fixing_Directed( 𝑧, 𝑤, (𝑖 ′ , 𝑗 ′ ), 𝑥 ∪ 𝑦 ) if гамильтоново разложение найдено then return гамильтоново разложение 𝑧 и 𝑤 end if end for end procedure procedure Algorithm_Chain_Edge_Fixing_Directed( 𝑥 ∪ 𝑦 ) 𝑧, 𝑤 ← ∅ Найти совпадающие рёбра в 𝑥 ∪ 𝑦 и зафиксировать в 𝑧 и 𝑤 по одной копии Выбрать свободное ребро (𝑖, 𝑗) мультиграфа 𝑥 ∪ 𝑦 𝑧, 𝑤 ←
Backtracking_Chain_Edge_Fixing_Directed( 𝑧, 𝑤, (𝑖, 𝑗), 𝑥 ∪ 𝑦 ) if 𝑧 и 𝑤 найдены then return Найдено гамильтоново разложение 𝑧 и 𝑤 (вершины многогранника несмеж-ны) end if return Гамильтоново разложение не найдено (вершины возможно смежны) end procedure лгоритм 3 Поиск с возвратом на основе цепного фиксирования рёбер procedure Chain_Edge_Fixing_Undirected( (𝑖, 𝑗) в 𝑧 ) Зафиксировать ребро (𝑖, 𝑗) в 𝑧 if в 𝑧 вершине 𝑖 инцидентны 2 зафиксированных ребра then Chain_Edge_Fixing_Undirected( (𝑖, 𝑘) в 𝑤 ) ⊳ Зафиксировать два других ребра в 𝑤 Chain_Edge_Fixing_Undirected( (𝑖, ℎ) в 𝑤 ) end if if в 𝑧 вершине 𝑗 инцидентны 2 зафиксированных ребра then Chain_Edge_Fixing_Undirected( (𝑗, 𝑘) в 𝑤 ) ⊳ Зафиксировать два других ребра в 𝑤 Chain_Edge_Fixing_Undirected( (𝑗, ℎ) в 𝑤 ) end if end procedure procedure Backtracking_Chain_Edge_Fixing_Undirected( 𝑧, 𝑤, (𝑖, 𝑗), 𝑥 ∪ 𝑦 ) Chain_Edge_Fixing_Undirected( (𝑖, 𝑗) в 𝑧 ) if 𝑧 и 𝑤 – гамильтоновы циклы (отличные от 𝑥 и 𝑦 ) then return 𝑧 и 𝑤 – решение end if if 𝑧 или 𝑤 содержит не гамильтонов цикл then ⊳ Частичное решение некорректно return ⊳ Вернуться на шаг назад end if
Выбрать вершину 𝑖 с минимальной степенью 𝑑 свободных рёбер Отсортировать рёбра (𝑖, 𝑗 𝑘 ) из вершины 𝑖 в порядке возрастания свободных степеней 𝑗 𝑘 for 𝑘 ← 1 to 𝑑 do 𝑧, 𝑤 ← Backtracking_Chain_Edge_Fixing_Undirected( 𝑧, 𝑤, (𝑖, 𝑗 𝑘 ), 𝑥 ∪ 𝑦 ) if гамильтоново разложение найдено then return гамильтоново разложение 𝑧 и 𝑤 end if end for end procedure Процедура фиксирования рёбер срабатывает как только в одном из частичных решенийвершине инцидентны 2 ребра, тогда два других ребра отправляется в другое частичное реше-ние (строки 3-10, Алгоритм 3).Частичное решение считается корректным, если компоненты 𝑧 и 𝑤 представляют собойлеса со степенью вершин не более двух или гамильтоновы циклы. По построению, мы добав-ляем в 𝑧 и 𝑤 по одному ребру за раз. Причём, как только степень какой-то вершины в одной изкомпонент становится равной двум, то два оставшихся ребра отправляются в другую компо-ненту. Таким образом, для проверки корректности частичного решения достаточно убедиться,что 𝑧 и 𝑤 не содержат не гамильтоновых циклов.Отметим, что на каждом шаге для расширения частичного решения мы выбираем вершину 𝑖 с минимальной степенью по свободным рёбрам с целью уменьшить ветвление рекурсии.Выходящие из 𝑖 рёбра рассматриваются в порядке возрастания степеней смежных вершин посвободным рёбрам (строки 20-27, Алгоритм 3). Отметим, что рассматриваемые в данной статье алгоритмы разработаны непосредственно длязадачи построения гамильтонова разложения 4-регулярного мультиграфа 𝑥 ∪ 𝑦 . Алгоритмыобращаются напрямую к циклам 𝑥 и 𝑦 только при проверке, что найденное разложение 𝑧 и 𝑤 отлично от исходного. Если опустить эту проверку, то мы получим алгоритмы для построения8амильтонова разложения без какой-либо привязки к полиэдральной комбинаторике. В про-тивном случае, если нас интересует именно смежность вершин в полиэдральном графе много-гранника коммивояжёра, то рассматриваемые алгоритмы имеет смысл усилить, добавив шагпредварительной обработки данных, на котором будут проверены известные полиномиаль-ные достаточные условия несмежности вершин: пирамидальные циклы [9], пирамидальныециклы с шагами назад [25], «родословные» [3, 4] и т.д. Алгоритмы тестировались на случайных ориентированных и неориентированных гамильто-новых циклах. Для каждого размера графа с помощью алгоритма тасования Фишера-Йетса[20] были сгенерированы 50 пар случайных перестановок с равномерным распределениемвероятности.Для сравнения были выбраны 3 алгоритма:• поиск с возвратом на основе построения простого пути (BSP);• поиск с возвратом на основе цепного фиксирования рёбер (BCEF);• эвристический алгоритм поиска с переменными окрестностями (GVNS) из работы [26],который является модификацией алгоритма имитации отжига [23] и работает на основепостроения покрытия циклами без общих вершин через поиск совершенного паросоче-тания и нескольких операций объединения циклов.Алгоритмы поиска с возвратом реализованы на Python, для эвристического алгоритмапоиска с переменными окрестностями взята готовая реализация на Node.js. Вычислительныеэксперименты проведены на машине с Intel(R) Core(TM) i5-4460 с CPU 3.20GHz и 16GB RAM.Результаты вычислительных экспериментов приведены в двух таблицах (Таблица 1 длянеориентированных циклов и Таблица 2 для ориентированных циклов). Для каждого набораиз 50 тестов приведено среднее время работы алгоритмов в секундах отдельно по задачамимеющим решение и по задачам не имеющим решения. Для двух алгоритмов поиска с воз-вратом (BSP и BCEF) было установлено ограничение по времени в 2 часа на каждый набор из50 тестовых задач. Соответственно, в таблицах указано, сколько задач из 50 алгоритм успелрешить за 2 часа. Для эвристического алгоритма поиска с переменными окресностями (GVNS)было установлено ограничение в 2 минуты на каждый тест. Это обусловлено тем, что эври-стический алгоритм обладает односторонней ошибкой. Если алгоритм находит решение, торешение существует. Однако, эвристический алгоритм не может гарантировать, что решениязадачи не существует, лишь, что решение не найдено за заданное время или число итераций.Известно, что случайные неориентированные регулярные графы обладают гамильтоно-вым разложением с очень высокой вероятностью [19]. Действительно, для всех тестовых задачне неориентированных мультиграфах (Таблица 1) существовало гамильтоново разложение нациклы, отличные от исходных, и вершины многогранника коммивояжёра были не смежны.С геометрической точки зрения это означает, что степени вершин в полиэдральном графезначительно меньше общего числа вершин, поэтому две случайные вершины с высокой ве-роятностью оказываются не смежными.По результатам тестирования для неориентированных гамильтоновых циклов наиболееэффективным показал себя эвристический алгоритм поиска с переменными окрестностями(GVNS). Среди двух алгоритмов поиска с возвратом алгоритм на основе построения простогопути (BSP) в среднем нашёл больше решений за отведённое время, чем алгоритм на основецепного фиксирования рёбер (BCEF).Результаты вычислительных экспериментов для ориентированных циклов (Таблица 2)оказались принципиально иными. Только примерно 20% случайных тестовых задач имели9аблица 1: Вычислительные результаты для 50 неориентированных гамильтоновых циклов
BSP BCEF GVNSЕсть решение Нет решения Есть решение Нет решения Есть решение «Нет решения»|V| N время (c) N время (c) N время (c) N время (c) N время (c) N время (c)32
50 0.087 − − 50 0.011 − − 50 0.002 − −
50 0.095 − − 50 0.024 − − 50 0.003 − −
50 0.108 − − 50 3.072 − − 50 0.004 − −
50 2.385 − − 46 5.347 − − 50 0.008 − −
50 8.102 − − 50 6.398 − − 50 0.012 − −
50 16.298 − − 1 0.168 − − 50 0.023 − −
46 105.156 − − 3 1.325 − − 50 0.037 − − решение. Отметим, что это не означает, что соответствующие вершины многогранника ком-мивояжёра смежны, так как задача построения гамильтонова разложения проверяет лишьдостаточное условие несмежности вершин в полиэдральном графе.Худшие результаты из трёх рассмотренных алгоритмов показал поиск с возвратом на осно-ве построения простого пути (BSP). Алгоритм смог полностью решить тестовые задачи лишьдля графов с не более 50 вершинами. С другой стороны, эвристический алгоритм поиска с пе-ременными окрестностями (GVNS) столкнулся со значительными затруднениями на задачахне имеющих решений. Алгоритм не может определить этот сценарий и выходит лишь придостижения ограничения на время работы или число итераций. Лучшие результаты средитрёх рассмотренных алгоритмов показал поиск с возвратом на основе цепного фиксированиярёбер. Алгоритм решил все тестовые задачи: за минимальное время на задачах не имеющихрешений и за сопоставимое с эвристическим алгоритмом (GVNS) время на задача с решениемна графах до 512 вершин.
Заключение
В работе были представлены два алгоритма поиска с возвратом для задачи построения гамиль-тонова разложения 4-регулярного мультиграфа. Проведён сравнительный анализ с эвристи-ческим алгоритмом поиска с переменными окрестностями [26] на ориентированных и неори-ентированных графах содержащих до 3072 и 512 вершин соответственно. Вычислительныеэксперементы показали, что для неориентированных графов эвристический алгоритм поз-воляет построить гамильтоново разложение 4-регулярного мультиграфа быстрее переборныхалгоритмов. Однако, для ориентированных графов, особенно для задач не имеющих реше-ния, алгоритм поиска с возвратом на основе цепного фиксирования рёбер достигает лучшихрезультатов.Рассматриваемые алгоритмы поиска в возвратом были разработаны для задачи проверкинесмежности вершин в полиэдральном графе многогранника коммивояжёра. Однако, онитакже могут быть применены непосредственно к задаче построения гамильтонова разложениярегулярного мультиграфа и множеству её приложений.
Список литературы [1] N. E. Aguilera, R. D. Katz и P. B. Tolomei. “Vertex adjacencies in the set covering polyhedron”.В:
Discrete Applied Mathematics
218 (2017), с. 40—56. doi: .10аблица 2: Вычислительные результаты для 50 ориентированных гамильтоновых циклов
BSP BCEF GVNSЕсть решение Нет решения Есть решение Нет решения Есть решение «Нет решения»|V| N время (c) N время (c) N время (c) N время (c) N время (c) N время (c)32
16 0.31 34 0.717 16 0.003 34 0.002 16 0.002 34 0.852
12 32.276 38 106.439 12 0.003 38 0.005 12 0.003 38 2.340 − − − − 14 0.008 36 0.006 14 0.007 36 2.994 − − − − 10 0.011 40 0.017 10 0.016 40 6.936 − − − − 12 0.021 38 0.031 12 0.020 38 10.508 − − − − 12 0.044 38 0.071 12 0.063 38 21.877 − − − − 11 0.182 39 0.187 11 0.219 39 46.759 − − − − 11 0.228 39 0.644 11 0.528 39 84.746 − − − − 10 0.734 40 0.864 10 1.056 40 109.656 − − − − 9 1.439 41 2.904 9 0.740 41 119.350 − − − − 9 4.045 41 11.888 9 2.561 41 118.351 − − − − 6 8.102 44 12.792 6 2.604 41 120.000 − − − − 5 43.503 45 24.345 5 21.673 45 120.000 − − − − 4 105.922 46 66.335 4 2.886 46 120.000 [2] D. L. Applegate и др. The Traveling Salesman Problem: A Computational Study . PrincetonUniversity Press, 2006. isbn: 9780691129938.[3] T. S. Arthanari. “On pedigree polytopes and Hamiltonian cycles”. В:
Discrete Mathematics .[4] T. S. Arthanari. “Study of the pedigree polytope and a sufficiency condition for nonadjacency inthe tour polytope”. В:
Discrete Optimization .[5] M. M. Bae и B Bose. “Edge disjoint Hamiltonian cycles in 𝑘 -ary 𝑛 -cubes and hypercubes”. В: IEEE Transactions on Computers .[6] R. F. Bailey. “Error-correcting codes from permutation groups”. В:
Discrete Mathematics .[7] M. L. Balinski. “Signature Methods for the Assignment Problem”. В:
Operations Research .[8] V. A. Bondarenko. “Nonpolynomial lower bounds for the complexity of the traveling salesmanproblem in a class of algorithms”. В:
Automation and Remote Control
Journal of Applied and Industrial Mathematics .[10] V. Bondarenko и A. Nikolaev. “On Graphs of the Cone Decompositions for the Min-Cut andMax-Cut Problems”. В:
International Journal of Mathematics and Mathematical Sciences .[11] C. R. Chegireddy и H. W. Hamacher. “Algorithms for finding 𝐾 -best perfect matchings”. В: Discrete Applied Mathematics .[12] C. Clifton и др. “Tools for Privacy Preserving Distributed Data Mining”. В:
SIGKDD Explor.Newsl. .[13] E. F. Combarro и P. Miranda. “Adjacency on the order polytope with applications to the theoryof fuzzy measures”. В:
Fuzzy Sets and Systems . 1114] G. Dantzig, R. Fulkerson и S. Johnson. “Solution of a Large-Scale Traveling-Salesman Problem”.В:
Journal of the Operations Research Society of America .[15] H. N. Gabow. “Two Algorithms for Generating Weighted Spanning Trees in Order”. В:
SIAMJournal on Computing .[16] R. Glebov, Z. Luria и B. Sudakov. “The number of Hamiltonian decompositions of regular graphs”.В:
Israel Journal of Mathematics .[17] M. Gr¨otschel и M. Padberg. “Polyhedral theory”. В:
The Traveling Salesman Problem: A GuidedTour of Combinatorial Optimization . John Wiley, Chichester, 1985, с. 251—305.[18] R. W. Hung. “Embedding two edge-disjoint Hamiltonian cycles into locally twisted cubes”. В:
Theoretical Computer Science .[19] J. H. Kim и N. C. Wormald. “Random Matchings Which Induce Hamilton Cycles and HamiltonianDecompositions of Random Regular Graphs”. В:
Journal of Combinatorial Theory, Series B .[20] D. E. Knuth.
The Art of Computer Programming, Volume 2 (3rd Ed.): Seminumerical Algorithms .USA: Addison-Wesley Longman Publishing Co., Inc., 1997. isbn: 0201896842.[21] A. V. Korostil и A. V. Nikolaev. “Algoritm poiska s vozvratom dlya postroeniya gamil’tonovarazlozheniya 4-regulyarnogo mul’tigrafa (Backtracking algorithm to construct the Hamiltoniandecomposition of a 4-regular multigraph)”. В:
Zametki po informatike i matematike (Notes onComputer Science and Mathematics) . Т. 12. P.G. Demidov Yaroslavl State University, 2020, с. 91—97.[22] A. P. Kozlova и A. V. Nikolaev. “Evristicheskij algoritm poisa s zapretami dlya hanozhdeniyagamil’tonovyh ciklov (A heuristic Tabu-search algorithm for finding Hamiltonian cycles)”. В:
Zametki po informatike i matematike (Notes on Computer Science and Mathematics) . Т. 11. P.G.Demidov Yaroslavl State University, 2019, с. 64—72.[23] A. Kozlova и A. Nikolaev. “Simulated annealing approach to verify vertex adjacencies in thetraveling salesperson polytope”. В:
Mathematical Optimization Theory and Operations Research.MOTOR 2019 . Т. 11548. LNCS. Springer, 2019, с. 374—389.[24] J. Krarup. “The peripatetic salesman and some related unsolved problems”. В:
CombinatorialProgramming: Methods and Applications . Т. 19. Springer Netherlands, 1995, с. 173—178. doi: .[25] A. Nikolaev. “On vertex adjacencies in the polytope of pyramidal tours with step-backs”. В:
Mathematical Optimization Theory and Operations Research. MOTOR 2019 . Т. 11548. LNCS.Springer, 2019, с. 247—263.[26] A. Nikolaev и A Kozlova.
Hamiltonian decomposition and verifying vertex adjacency in 1-skeletonof the traveling salesperson polytope by variable neighborhood search . 2020. arXiv: .[27] C. H. Papadimitriou. “The adjacency relation on the traveling salesman polytope is NP-Complete”.В:
Mathematical Programming .[28] B. P´eroche. “NP-completeness of some problems of partitioning and covering in graphs”. В:
Discrete Applied Mathematics .[29] M. R. Rao. “Adjacency of the Traveling Salesman Tours and $0 - 1$ Vertices”. В:
SIAM Journalon Applied Mathematics .[30] S. S. Skiena.
The Algorithm Design Manual . Springer, 2008. doi:10.1007/978-1-84800-070-4