УДК: 004.023; 519.16 MSC2010: 90C27
АНАЛИЗ МЕТАЭВРИСТИК ДЛЯ ЗАДАЧ МНОГОАГЕНТНОЙ
МАРШРУТИЗАЦИИ
© О. О. Макаров
Крымский ФЕДЕРАЛЬНЫЙ УНИВЕРСИТЕТ ИМ. В. И. ВЕРНАДСКОГО ФИЗИКО-ТЕХНИЧЕСКИЙ ИНСТИТУТ
просп. Академика Вернадского, 4, Симферополь, 295007, Российская Федерация
e-mail: fantom2.00@mail.ru
Analysis of metaheuristios for multi-agent routing problems.
Makarov O. O.
Abstract. The article presents a numerical experiment dedicated to solving the Traveling Salesman Problem (TSP) using various metaheuristics on a data set from the TSPLIB library. The main goal of the experiment was to determine the most efficient and accurate methods for finding routes. A brief description of each of the studied algorithms is given.
An approach is described for collecting graph metric characteristics that are unique for the network structure. In the context of TSP, these metrics may include node degrees, edge weights, connectivity, and other properties that describe the relationships between cities. By using metadata, it is possible to obtain a generalized description of the network, which aids in understanding its complexity and properties. A detailed description of the algorithm for calculating the statistics of weight distribution in a graph is also given. Understanding the weight distribution is essential in determining the characteristics of the TSP instances, such as the presence of clusters or patterns that might impact the choice of metaheuristic. The application of this algorithm to the graph made it possible to automate the selection of the reference distance parameter for hierarchical clustering. Hierarchical clustering is a method used to group similar items together based on their characteristics. By identifying cohesive point sets using this approach, it can potentially discover patterns or substructures in the TSP instances.
The experiment showed that all the applied metaheuristics are able to find approximate solutions for TSP on various data sets. However, depending on the characteristics of the problem, some methods proved to be more efficient and accurate than others. The final table contains a list of the best algorithms with an indication of the number of times when each of them produced the best solution among the others. It could provide valuable insights into which metaheuristics work best under certain conditions.
Based on the results obtained, it is planned to establish a link between the graph metadata and the results, which will allow developing an intelligent system for choosing the optimal metaheuristic. The choice of metaheuristics is recommended to be carried out taking into account the specifics of the TSP, such as the number of cities, geographical characteristics, accuracy
requirements, and execution time. Combining different metaheuristics is suggested as a possible approach to improve the results in solving the TSP. Hybrid approaches that leverage the strengths of multiple algorithms could lead to better solutions, especially for complex TSP instances.
The findings in the article have practical implications for real-world routing and scheduling problems that can be modeled as TSP instances. By understanding the performance of different metaheuristics based on the problem's characteristics, practitioners can make informed decisions on selecting the most suitable approach for their specific needs.
In summary, the article's numerical experiment, which explores the application of various metaheuristics to solve the TSP problem, yields valuable insights into the efficiency and effectiveness of these algorithms. By considering the graph metadata and characteristics of TSP instances, researchers aim to develop an intelligent system that can select the best metaheuristic for different scenarios, leading to improved solutions for real-world routing and optimization problems.
Keywords: traveling salesman problem,, multiple traveling salesman problem, hierarchical clustering, algorithm for solving multiple traveling salesman problems, graph metadata, metaheuristics, graph metrics
Введение
В современном мире задача маршрутизации играет ключевую роль для оптимизации логистических перевозок. Данную задачу можно рассматривать как сложную оптимизационную проблему маршрутизации типа MTSP (Multiple Traveling Salesman Problem, задача многих коммивояжеров), которая требует нахождения оптимальных путей для нескольких коммивояжеров, с целью эффективного обслуживания пунктов назначения.
Выбор подходящей метаэвристики, позволяющей находить приближенные или оптимальные решения в сложных и многомерных пространствах поиска для решения задачи MTSP, является актуальной проблемой. Метаэвристические алгоритмы (генетические и муравьиные системы, имитация отжига и др.) позволяют эффективно решать проблему оптимизации маршрутов. Отдельной задачей становится выбор оптимального алгоритма и метапараметров для каждой конкретной задачи. Это связано с большим разнообразием метаэвристик. Предполагается, что алгоритм, который хорошо работает на определенной, уже решенной задаче, также подойдет для близкой к ней задаче. В данном случае, если метаэвристика дает хороший результат на графе определенной структуры, то и на подобном графе она даст хорошие результаты.
Цель данной статьи — найти способ определения метаэвристик для близких задач, основываясь на метаданных графа и близости математических моделей задач. Для этого рассматриваются различные метаэвристики, применяемые в задачах маршрутизации типа TSP (Traveling Salesman Problem, задача коммивояжера) и MTSP. Исследуются факторы, влияющие на выбор оптимальной метаэвристики в зависимости от особенностей задачи и требований к результатам. Понимание выбора метаэвристики для решения задачи MTSP имеет важное значение для разработки эффективных алгоритмов маршрутизации.
Рассмотрим предлагаемые в современной литературе подходы, которые можно использовать для решения задач MTSP.
В статье [3] рассматриваются прикладные модели многоагентной маршрутизации с учетом специфики организации структуры сети, целей системы и локальных целей агентов. Выделен класс задач многих коммивояжеров разного уровня иерархии (HCMTSP, Hierarchical Clusterd Multiple Traveling Salesman Problem, иерархическая кластерная задача многих коммивояжеров). Построение маршрутов HCMTSP согласовано с естественной кластеризацией сложной инфраструктурной сети. Выделяется иерархическая кластеризация сети. Показано, что в зависимости от логистических целей должен быть выбран различный тип кластеризации, согласованной с MTSP. Сравниваются результаты вычислительного эксперимента по типам кластеризации и маршрутам. Отдается предпочтение иерархической кластеризации, согласованной с иерархией маршрутов HCMTSP.
В [2] рассматривается алгоритм иерархической кластеризации для HCMTSP. Приводится сравнительный анализ решателя Concorde и алгоритма имитации отжига SA (Simulated Annealing, алгоритм имитации отжига) для решения MTSP. Показано, что многоуровневая кластеризация для задач большой размерности способствует снижению сложности решения MTSP. После предварительной кластеризации происходит процедура локальной оптимизации TSP на каждом из сформированных кластеров, а затем множество полученных решений объединяется в единое решение HCMTSP.
В [30] представлен новый гибридный алгоритм для решения MTSP, названный GELS-GA (Gravitational Emulation Local Search Genetic Algorithm, гравитационная эмуляция генетического алгоритм с локальным поиском). Произведен сравнительный анализ предложенного алгоритма с генетическим алгоритмом и муравьиной колонии. Показано, что оптимальность достигается даже в очень сложных сценариях. Несмотря на простоту предлагаемого алгоритма, он показывает хорошее время выполнения
и находит близкие к оптимальным решения для задач, сравнительно с другими, рассмотренными алгоритмами. Данные для сравнительного анализа брались из TSPLIB (Traveling Salesman Problem Library, библиотека задач коммивояжера) [66].
В [18] приведен обзор для выявления наиболее перспективных и эффективных метаэвристик. Выделяются такие перспективные подходы, как оптимизация искусственной пчелиной колонии, оптимизация бактериального добывания корма и алгоритм светлячков.
В статье [31] рассматривается проблема получения эффективного решения задачи коммивояжера с использованием традиционной HNN (Hopfield Neural Network, нейронная сеть Хопфилда) и метода штрафов. Однако, в результате недостатков применяемого метода штрафов, HNN часто застревает в локальном минимуме и не сходится к эффективному решению. В [31] предлагается улучшенный алгоритм, основанный на ускоренной расширенной лагранжевой нейронной сети Хопфилда (AALHNN, Accelerated Augmented Lagrangian Hopfield Neural Network, ускоренная расширенная лагранжева нейронная сеть Хопфилда), который позволяет преодолеть этот недостаток. В алгоритме AALHNN используется метод множителей Лагранжа, обеспечивая получение эффективного решения задачи коммивояжера. В алгоритм добавлены факторы второго порядка, стабилизирующие динамическую модель нейронной сети и повышающие эффективность решения. В ходе исследования авторы внесли изменения в модели TSP Хопфилда и Танка. Ограничения TSP умножаются на множители Лагранжа и усиленные множители Лагранжа соответственно. Алгоритм использует функцию расширенного лагранжиана, включающую функцию длины пути, что обеспечивает надежную сходимость и избавление от локального минимума. Множители Лагранжа обновляются с использованием техники ускорения Нестерова [35]. В работе доказано, что экстремум, полученный с помощью этого улучшенного алгоритма, является оптимальным решением исходной задачи. В ходе эксперимента успешно получено приближенное оптимальное решение TSP. По сравнению с традиционной HNN, данный метод обеспечивает эффективное решение задачи коммивояжера и достижение более качественных результатов.
Похожий подход, основанный на нейронных сетях, описан в работах [4, 5], где предложено использовать функционал Ляпунова, построенный на модели TSP, в качестве основы для искусственной нейронной сети. Данный подход можно использовать при решении задач типа MTSP. Основная сложность заключается в процессе обучения, так как много ресурсов уходит на подбор корректных параметров для нейронной сети.
1. Алгоритмы РЕШЕНИЯ ЗАДАЧИ МНОГОАГЕНТНОй МАРШРУТИЗАЦИИ
ТИПА КОММИВОЯЖЕРА
При решении Т8Р возникает вопрос выбора оптимального алгоритма и набора параметров для получения лучшего маршрута за приемлемое время. Зачастую требуется применить несколько алгоритмов последовательно, например, запускается быстрый жадный алгоритм для первого приближения, затем другим алгоритмом производится улучшение этого решения. Но на текущий момент не представлено автоматизированного способа отбора композиций алгоритмов решения Т8Р и набора метаэвристических параметров. В данной статье представлен этап формирования базы данных для обучения интеллектуальной системы выбора алгоритма, основываясь на метаинформации графа и математической модели задачи. Приведен вычислительный эксперимент для сравнительного анализа на тестовых наборах данных, для которых известны близкие к точным решения.
Алгоритмы решения задачи многоагентной маршрутизации типа коммивояжера (многих коммивояжеров) опираются на метаэвристические алгоритмы решения Т8Р. Таким образом, предлагаемая методика применима для МТ8Р, а также является основой для выбора алгоритмов решения транспортной задачи с временными окнами.
1.1. Описание данных. Для проведения эксперимента использовались датасеты из Т8РЫВ [66]. Т8РЫВ — это библиотека эталонных примеров для Т8Р. Т8РЫВ состоит из коллекции данных для различных Т8Р, а также оптимальных или лучших известных решений для каждого экземпляра. Т8РЫВ содержит различные типы данных для Т8Р, такие как симметричная Т8Р (когда расстояние между любыми двумя городами одинаково в обоих направлениях) и асимметричная Т8Р (когда расстояние может меняться в разных направлениях). Библиотека предоставляет различные форматы файлов для представления экземпляров, что облегчает ее использование в различных средах. Эта библиотека широко используется в сообществе исследователей Т8Р в качестве стандартного эталона для оценки алгоритмов и эвристик для решения Т8Р. С ее помощью можно сравнить производительность различных алгоритмов, разработать новые методы решения и оценить прогресс в этой области с течением времени.
Программный комплекс тестировался на следующих графах из Т8РЫВ [66], число в названии указывает на количество вершин: е1151, Ьег1т52, б170, рг76, е1176, gr96, га199, га100, кгоВ100, кгоБ100, кгоА100, кгоС100, кгоЕ100, е11101, 1т105, рг107, рг124, Ыег127, еЬ130, рг136, gr137, рг144.
1.2. Метаэвристики локальных агентов. Для обучения системы автоматического выбора алгоритма необходимо собрать базу данных результатов расчета для набора метаэвристических алгоритмов и построить систему определения метаданных. В данном разделе приводится результат просчетов для 39 метаэвристических алгоритмов.
Как правило, эти алгоритмы содержат в себе некоторые пользовательские параметры, которые сильно влияют на результаты работы для конкретного графа. Так как подбор оптимальных параметров является отдельной трудоемкой задачей, в данном эксперименте он не проводился. Вместо этого пользовательские параметры задаются средними общепринятыми значениями, а количество итераций задается в зависимости от размерности набора данных (чем больше размерность, тем больше итераций). Такой подход позволяет получить опорные результаты работы алгоритмов для любого набора данных.
В качестве библиотеки метаэвристических алгоритмов используется pyCombinatorial [64]. Это библиотека Python, предоставляющая набор алгоритмов комбинаторной оптимизации и инструментов для решения задач. В ней представлены такие метаэвристические алгоритмы, как генетический, оптимизация роя частиц и имитация отжига, которые могут быть использованы для эффективного решения комбинаторных задач. Библиотека pyCombinatorial предоставляет функциональные возможности для оценки производительности алгоритмов оптимизации. Она включает метрики для измерения качества решений, такие как значения объективной функции и выполнимость решения. Библиотека предлагает возможности визуализации, чтобы помочь пользователям понять и проанализировать поведение алгоритмов оптимизации; она предоставляет инструменты для визуализации хода выполнения алгоритмов, визуализации маршрутов или назначений решений, а также построения графиков или диаграмм для анализа производительности. Важно отметить, что pyCombinatorial имеет открытый исходный код. Это позволило настроить и расширить функциональность в соответствии с конкретными потребностями вычислительного эксперимента.
Разработанное приложение для расчетов имеет модульную структуру. Взаимодействие между модулями одного приложения реализовано за счет вызова функций. Схема программного продукта представлена на рис. 1. «Главный блок» является менеджером всего проекта, на вход этого блока подается список графов. В «Главном блоке» происходит считывание графа, после чего он передается в «Алгоритмический блок», который производит вызов заданного списка алгоритмов из библиотек (в данном случае это либо pyCombinatorial, либо «Библиотека алгоритмов»). Этот
модуль содержит авторские реализации некоторых подходов. После того как «Алгоритмический блок» завершит расчет, результат возвращается в «Главный блок» и записывается в файл.
Рис. 1. Схема расчетного модуля
Модульный подход позволяет масштабировать приложение в зависимости от требований. К примеру, «Алгоритмический блок» может получить еще один модуль-библиотеку алгоритмов и интеграция этого блока не потребует особых усилий со стороны разработчика, единственное возможное затруднение — это реализация адаптера для соблюдения интерфейса дочернего модуля «Алгоритмического блока». Точно так же легко можно изменить способ записи результатов, например, на запись в базу данных или консоль.
Произведен анализ следующих метаэвристических алгоритмов:
1. Best Known(BK) — лучшее известное на данный момент решение для набора данных из библиотеки TSPLIB [66].
2. Ant Colony Optimization (ACO) — метаэвристический алгоритм, инспирированный поведением муравьев в поисках пищи. Алгоритм ACO (Ant Colony Optimization, оптимизация муравьиной колонии) для TSP может находить качественные решения за разумное время, но его эффективность зависит от выбора параметров и конкретных характеристик решаемого экземпляра TSP [6, 19, 56, 61].
3. 2-opt (2opt) — простой эвристический алгоритм, используемый для улучшения решения TSP. Основная идея алгоритма заключается в итеративном удалении двух ребер из маршрута TSP и замене их двумя новыми ребрами, которые
соединяют маршрут другим способом, чтобы получить более короткое общее расстояние [16].
4. 2-opt-stochastic (2optS) — вариант алгоритма 2-opt для TSP. Основная идея алгоритма заключается в случайном выборе набора ребер в маршруте и последующем применении алгоритма 2-opt только к этим ребрам, а не ко всему маршруту. Такой подход может помочь избежать локального оптимума и исследовать большее пространство решений [41].
5. 2h-opt (2Hopt) — расширение алгоритма 2-opt для TSP. Основная идея алгоритма 2.5-opt заключается в том, чтобы удалить три ребра из маршрута TSP, а затем соединить маршрут с помощью трех новых ребер другим способом, чтобы получить меньшее общее расстояние [57].
6. 2h-opt-stochastic (2HoptS) — вариант алгоритма 2.5-opt для TSP, включающий стохастический элемент. Основная идея 2.5-opt stochastic заключается в случайном выборе набора из трех ребер в маршруте и последующем применении алгоритма 2.5-opt только к этим ребрам, а не ко всему маршруту. Такой подход может помочь избежать локального оптимума и исследовать большее пространство решений [57].
7. 3-opt (3opt) — расширение алгоритма 2-opt. Основная идея алгоритма 3-opt заключается в том, чтобы удалить три ребра из маршрута TSP, а затем соединить маршрут с помощью трех новых ребер другим способом, чтобы получить более короткое общее расстояние [43].
8. 3-opt-stochastic (3optS) — вариант алгоритма 3-opt для решения задачи коммивояжера, включающий стохастический элемент. Основная идея 3-opt stochastic заключается в случайном выборе набора из трех ребер в маршруте и последующем применении алгоритма 3-opt только к этим ребрам, а не ко всему маршруту. Такой подход может помочь выйти из локального оптимума и исследовать большее пространство решений [43].
9. Biased Random Key Genetic Algorithm (BRKGA) — алгоритм, каждое решение которого представлено вектором случайных ключей, которые являются действительными числами от 0 до 1. Затем вектор сортируется, и порядок городов определяется индексами сортировки. Операция сортировки является смещенной, то есть ключи, которые ближе к 1, скорее всего, будут отсортированы раньше, что приводит к высококачественным решениям [27].
10. Cheapest Insertion (CI) — алгоритм, основанный на частичном маршруте, который содержит два города. На каждом шаге алгоритм выбирает город, который еще не включен в маршрут, и вставляет его в маршрут таким образом,
чтобы минимизировать увеличение длины маршрута. Алгоритм продолжается до тех пор, пока все города не будут включены в маршрут. Cheapest Insertion имеет временную сложность O(n2), где n — количество городов [52].
11. Christofides (Chris) — алгоритм, основанный на комбинации минимального охватывающего дерева и идеального соответствия. Christofides Algorithm имеет наихудшую временную сложность O(n3), где n — количество городов. Алгоритм гарантированно выдает маршрут, который максимум в 1,5 раза длиннее оптимального маршрута, что делает его одним из самых эффективных эвристических алгоритмов для TSP [28, 36, 59].
12. Clarke and Wright Savings (CWS) — жадный алгоритм для решения задачи коммивояжера. Clarke and Wright (Savings Heuristic) имеет временную сложность O(n2 log n), где n — количество городов. Алгоритм может находить качественные решения для небольших и средних экземпляров TSP и часто используется в качестве отправной точки для более продвинутых эвристических алгоритмов [15].
13. Concave Hull (Conc H) — алгоритм, не предназначенный специально для решения задачи коммивояжера, но это полезный алгоритм для нахождения вогнутой оболочки набора точек в двумерном пространстве. Concave Hull Algorithm имеет временную сложность O(n log n), где n — количество точек [38, 45].
14. Convex Hull (Conv H) — алгоритм, не предназначенный специально для решения задачи коммивояжера, но полезный для нахождения выпуклой оболочки множества точек в двумерном пространстве. Convex Hull Algorithm имеет временную сложность O(n log n), где n — количество точек [33].
15. Elastic Net (EN) — алгоритм машинного обучения, который сочетает методы регуляризации L1 и L2 для достижения баланса между разреженностью и корреляцией при выборе признаков. Он не был специально разработан для решения задачи коммивояжера, но был применен к TSP в качестве эвристического алгоритма оптимизации [20].
16. Extremal Optimization (EO) — алгоритм, основанный на концепции самоорганизованной критичности, когда система развивается в направлении критического состояния, при котором ландшафт оптимизации становится более доступным [12, 13].
17. Farthest Insertion (FI) — конструктивный эвристический алгоритм для решения задачи коммивояжера. Принадлежит к семейству алгоритмов вставки,
которые начинаются с частичного маршрута и итеративно вставляют оставшиеся города в маршрут для создания полного маршрута. Алгоритм Farthest Insertion имеет наихудшую временную сложность O(n2), где n — количество городов, поскольку ему необходимо вычислить расстояние между каждой парой городов, чтобы выбрать самый дальний город [52].
18. Genetic — метаэвристический алгоритм оптимизации, основанный на принципах естественного отбора и генетики [50, 55].
19. Greedy Randomized Adaptive Search Procedure (GRASP) — многозадачный алгоритм, который сочетает жадную конструктивную эвристику с методами локального поиска [21, 47].
20. Greedy Karp-Steele Patching (GKSP) — улучшение традиционного жадного алгоритма [24].
21. Guided Search (GS) — конструктивный алгоритм, который строит решение постепенно, выбирая лучший следующий ход на основе жадного критерия, но с некоторой рандомизацией, позволяющей исследовать различные пространства поиска [60].
22. Hopfield Network (HN) — алгоритм на основе нейронной сети, который может быть использован для решения задач оптимизации, включая задачу коммивояжера. Алгоритм основан на сети взаимосвязанных вычислительных блоков (нейронов), где каждый нейрон соответствует городу в TSP, а связи между нейронами представляют собой расстояния между городами [40, 42].
23. Iterated Search (IS) — алгоритм, основная идея которого заключается в том, чтобы начать с текущего решения, а затем применить процедуру поиска для его улучшения. Этот процесс повторяется несколько раз, каждый раз начиная с наилучшего решения, найденного на данный момент. Процедуры поиска, используемые на каждой итерации, могут быть одинаковыми или разными и выбираются с учетом их сильных и слабых сторон [8, 11].
24. Karp-Steele Patching (KSP) — алгоритм, который начинается с выбора текущего города в качестве начальной точки для гамильтонова цикла. Затем он итеративно добавляет в цикл новые города, по одному за раз, на основе набора правил. Правила разработаны таким образом, чтобы гарантировать, что результирующий гамильтонов цикл выполним и имеет низкую стоимость [37].
25. Multifragment Heuristic (MH) — алгоритм, который начинается с разделения экземпляра TSP на несколько более мелких подзадач, каждая из которых состоит из подмножества городов. Подзадачи могут быть созданы на основе
различных критериев, таких как расстояние, связность или кластеризация городов [32].
26. Nearest Insertion (NI) — алгоритм, который работает, начиная с текущего маршрута, включающего два города, а затем итеративно добавляя к маршруту новые города таким образом, чтобы минимизировать общую продолжительность маршрута [7, 52].
27. Nearest Neighbour (NN) — алгоритм, который работает, начиная с произвольного города, а затем многократно выбирая ближайший непосещенный город, пока все города не будут посещены, что приводит к полному гамильтонову циклу, который посещает каждый город ровно один раз [29, 54].
28. Random Insertion (RI) — алгоритм, который начинается с выбора произвольного начального города, а затем добавления в маршрут города, который находится ближе всего к начальному городу. Следующий добавляемый город выбирается случайным образом из набора непосещенных городов и вставляется в маршрут в случайном месте, которое минимизирует увеличение общей длины маршрута [7, 52].
29. Random Tour (RT) — алгоритм, который работает, генерируя случайный га-мильтонов цикл, который посещает каждый город ровно один раз, а затем итеративно улучшает маршрут, меняя местами пары городов, чтобы уменьшить общую длину маршрута [10].
30. Scatter Search (SS) — алгоритм, который начинается с создания начальной совокупности возможных решений с использованием эвристики построения, такой как ближайший сосед или случайная вставка. Затем эта популяция делится на несколько подгрупп, каждая из которых оптимизируется с использованием метода локального поиска, такого как алгоритм 2-opt или алгоритм 3-opt. Лучшие решения из каждой подгруппы объединяются для создания разнообразного набора решений-кандидатов, которые дополнительно оптимизируются с использованием метода локального поиска [14, 22, 25, 34].
31. Self Organizing Maps (SOM) — алгоритм нейронной сети, во время каждой итерации которого случайным образом выбирается город и находится ближайшая к нему ячейка сетки. Затем алгоритм обновляет позиции городов в соседних ячейках сетки, используя определенную функцию соседства. Функция соседства является убывающей функцией расстояния, что позволяет алгоритму эффективно исследовать пространство решений [17].
32. Space Filling Curve Hilbert (SFCH) — алгоритм, использующий кривую заполнения пространства для сведения проблемы поиска оптимального маршрута к проблеме упорядочения городов на кривой. Кривая Гильберта представляет собой фрактальную кривую, заполняющую квадрат. Преимущество этого алгоритма в том, что его относительно легко реализовать, и он может обрабатывать большие экземпляры TSP с тысячами городов [48].
33. Space Filling Curve Morton (SFCM) — алгоритм, использующий кривую заполнения пространства, чтобы свести проблему поиска оптимального маршрута к проблеме упорядочения городов на кривой. Кривая Мортона — это тип кривой, заполняющей пространство, которая отображает двумерное пространство в одномерную кривую. Кривая строится путем чередования двоичных представлений координат x и y точек [46].
34. Space Filling Curve Sierpinski (SFCS) — использует кривую заполнения пространства для сведения проблемы поиска оптимального маршрута к проблеме упорядочения городов на кривой. Кривая Серпинского — это тип фрактальной кривой, которая начинается с треугольника и рекурсивно подразделяет его на более мелкие треугольники. Кривая строится путем посещения вершин треугольников в определенном порядке [9].
35. Stochastic Hill Climbing (SHC) — алгоритм, который начинается со случайного текущего решения и итеративно улучшает его, внося небольшие случайные изменения в решение и принимая изменение, если оно приводит к лучшему решению. Случайные изменения могут включать замену двух городов местами, изменение порядка подмножества городов или другие возмущения [53].
36. Sweep — конструктивный алгоритм, который начинается с выбора «центральной» точки в экземпляре TSP, например, геометрического центра, а затем сортирует города в полярных координатах относительно этой точки. Алгоритм строит маршрут, соединяя города в отсортированном порядке [23, 58].
37. Tabu Search (TS) — алгоритм, основанный на идее краткосрочных жертв ради достижения долгосрочных выгод. Tabu Search поддерживает структуру памяти, называемую «списком запретов», которая отслеживает недавно посещенные решения и предотвращает их повторное посещение алгоритмом. Алгоритм начинается с текущего решения, которое может быть сгенерировано с использованием различных методов, таких как Nearest Neighbour или Random Insertion. Затем алгоритм выполняет серию итераций локального поиска, в которых он исследует окрестности текущего решения, внося небольшие изменения, такие как замена двух городов или вставка города между двумя другими.
Алгоритм оценивает новые решения, созданные этими модификациями, и выбирает лучшее из них для перехода [26, 39].
38. Truncated Branch and Bound (TBB) — алгоритм для TSP, основанный на методе ветвей и границ, который исследует пространство решений, разветвляясь на подмножества городов и ограничивая поиск, отбрасывая частичные решения, которые не могут привести к оптимальным решениям. Основная идея TBB состоит в том, чтобы использовать ограничение по времени для контроля количества ветвлений и ограничений. То есть вместо того, чтобы исследовать все дерево поиска, алгоритм останавливается через заданное время и возвращает лучшее решение, найденное на данный момент. Таким образом, TBB может обрабатывать крупные экземпляры TSP [51].
39. Twice-Around the Tree Algorithm (TAT) — эвристический алгоритм, основанный на поиске минимального остовного дерева входного графа и последующем обходе дерева дважды для формирования маршрута. Алгоритм имеет временную сложность O(n log n) для построения минимального остовного дерева и O(n) для его обхода, где n — количество вершин в графе [49].
40. Variable Neighborhood Search (VNS)— алгоритм, который начинает работу с текущего решения (например, случайно сгенерированного маршрута), а затем выполняет локальный поиск по этому решению. Если локальный поиск не дает улучшенного решения, алгоритм переходит к новому решению в другом районе (например, путем изменения порядка подмножества городов в маршруте). Затем снова выполняется локальный поиск нового решения, и процесс повторяется до тех пор, пока не будет найдено удовлетворительное решение или пока не будет выполнен какой-либо критерий завершения (например, достигнуто максимальное количество итераций) [44].
1.3. Метрические характеристики графа. Метрические характеристики графа представляют собой количественные показатели, используемые для измерения и анализа свойств графа. Они предоставляют информацию о расстояниях и связях между вершинами графа.
Метрические характеристики графа играют важную роль в анализе и сравнении различных типов графов, а также в решении различных задач, связанных с сетями, маршрутизацией и оптимизацией. Они позволяют качественно описывать и изучать структуру и свойства графа, что способствует лучшему пониманию его характеристик и поведения. Близкие графы обеспечивают близость задач TSP и выбор алгоритмов.
Понятие метаданные можно рассматривать как «данные о данных, которые вычисляются на основе данных». Они могут включать такую информацию, как размер или плотность графа, распределение степеней или показатели центральности узлов, коэффициент кластеризации или модульность структуры сообщества, а также любые другие сводные статистические данные или метрики, которые отражают важные свойства графа.
Список извлекаемых метрических данных приведен в таблице 1.
Таблица 1. Метрические характеристики графа
Название метрики Значение
is directed является ли граф направленным
is regular является ли граф регулярным
has bridges наличие в графе мостов
is chordal является ли граф хордовым
diameter диаметр графа
radius радиус графа
nodes количество вершин
edges количество ребер
count max cliques количество максимальных клик
max weight clique вес максимальной клики
density плотность графа
node connectivity параметр связности узлов
count triangles количество триангуляций
number of isolates количество изолированных вершин
s metric s-метрика графа
Вычисленные метаданные могут быть полезны для нескольких целей, таких как:
• характеристика глобальных свойств и структуры графа. Вычисленные метаданные могут дать представление об общей топологии и поведении графа, а также помочь выявить любые закономерности или аномалии, которые могут иметь отношение к анализу;
• сравнение графов или графовых алгоритмов. Вычисленные метаданные могут быть использованы для сравнения производительности или эффективности графовых алгоритмов или моделей на тестовых наборах данных, а также для определения того, какие из них больше подходят для данной задачи или приложения;
• руководство по выбору параметров или моделей для анализа графов. Вычисленные метаданные могут служить руководством при выборе подходящих параметров или моделей для анализа графов, выделяя соответствующие аспекты графа, которые необходимо принимать во внимание.
Некоторые примеры вычисляемых метаданных в анализе графов включают:
• распределение степеней. Распределение степеней графа представляет собой гистограмму количества узлов с каждой степенью и может дать представление о связности и неоднородности сети;
• меры центральности. Такие показатели центральности, как центральность между узлами, центральность близости или центральность собственного вектора, могут дать представление о важности или влиянии узлов в графе;
• структура сообщества. Алгоритмы обнаружения сообществ могут определить группы узлов, которые плотно связаны между собой, но слабо связаны с другими группами, и выявить модульную или иерархическую структуру графа.
Вычисленные метаданные графа являются источником информации для его анализа, помогают обнаружить скрытые закономерности и структуры в сложных сетях.
Алгоритм 1. Алгоритм подсчета статистики распределения весов в графе
Вход: Список точек на плоскости (Points), пользовательские параметры (split_parts — количество диапазонов для подсчета статистики).
Выход: Объект типа {"statistic "min_distance" max _distance "step"}, где statistic — список из split_parts элементов, в котором каждый элемент соответствует количеству весов, попавших в данный диапазон. min_distance — минимальный вес, max_distance — максимальный вес, step — шаг, на который отличаются диапазоны.
1. Инициализировать переменные min_distance = inf, max_distance = -inf, statistic = [0i, 02,..., 0 split _parts].
2. Для каждой точки получить ее индекс в Points.
3. Для каждой точки получить ее индекс pointl_index в Points.
a) Для каждой точки, начиная с индекса pointl_index +1, получить ее индекс point2_index в Points.
(i) Вычислить расстояние distance между точками с индексами point1_index и point2_index.
(ii) Если полученное расстояние больше, чем max_distance (A) Присвоить max_distance = distance.
(iii) Если полученное расстояние меньше, чем min_distance (A) Присвоить min_distance = distance.
4. Вычислить шаг по формуле step = (max_distance — min_distance)/ split_parts.
5. Для каждой точки получить ее индекс pointl_index в Points.
a) Для каждой точки, начиная с индекса pointl_index +1, получить ее индекс point2_index в Points.
(i) Вычислить расстояние distance между точками с индексами point1_index и point2_index.
(ii) Вычислить индекс диапазона, в который попадает вес index = distance//step (где // — операция деления нацело).
(iii) Увеличить количество весов в диапазоне по индексу statistic[index] + = 1.
6. Вернуть объект типа {statistic, min_distance, max_distance, step}.
В алгоритме 1 умышлено применяется дублирование кода обхода всех вершин графа в п. 3 и 5. Этого можно было избежать путем добавления вспомогательного массива весов, но в этом случае увеличивается нагрузка на оперативную память при вычислении статистики распределения весов в полносвязных графах, содержащих более 100000 вершин. Например, для 100000 вершин записей во вспомогательном массиве весов будет 100000 ■ (100000 — 1)/2 = 4999950000. Поэтому было принято решение повысить нагрузку на процессор и снизить нагрузку на оперативную память.
2. Результаты эксперимента
В результате численных экспериментов сформирована таблица работы 39 метаэ-вристических алгоритмов для графов из Т8РЫВ. В колонке «ВК» находится лучшее известное решение для конкретного набора данных на данный момент. Из таблицы видно, что разброс решений, полученных каждым из алгоритмов, не очень большой. В конкретных случаях можно выделить фаворита. То есть для определенного набора данных один из алгоритмов дает лучшее решение среди остальных.
Если считать, что выбор алгоритма зависит от структуры графа и его метаданных, то можно создать систему, которая будет определять близость нового, еще не посчитанного набора данных с уже посчитанным и рекомендовать композицию алгоритмов для, предположительно, лучшего решения. В случае, когда алгоритм не смог найти решение в связи с достижением пределов допустимой памяти или другими ограничениями, в найденное расстояние устанавливается значение 0 и считается, что данный алгоритм не применим к такой структуре данных. Приведем некоторые результаты расчетов.
Таблица 2. Результаты расчетов метаэвристик
№ Graph BK ACO 2-opt 2-opt-s 2h-opt 2h-opt-s 3-opt 3-opt-s BRKGA
1 eil51 426 429 447 462 447 441 444 459 437
2 bcrlin52 7542 7544 8167 8383 7544 7606 8238 7834 7979
3 st70 675 677 730 722 732 713 704 721 733
4 pr76 108159 108276 112729 112780 112850 111303 115021 111483 113384
5 eil76 538 559 590 584 577 568 584 578 569
6 gr96 513 517 545 575 526 529 530 575 569
7 rat99 1211 1239 1299 1399 1321 1296 1360 1342 1295
8 rd100 7910 8004 8683 8754 8563 8354 8469 8791 8400
9 kroB100 22141 22276 23942 24011 23095 24243 22998 23169 24057
10 kroD100 21294 21637 21731 24008 22316 22419 21756 22843 23101
11 kroA100 21282 21298 22559 25493 22019 22127 22862 23135 22387
12 kroC100 20749 20869 22031 23347 22683 22164 21584 21869 22348
13 kroE100 22068 22284 24315 23596 22870 23280 23624 24257 22344
14 eil101 629 659 686 694 675 698 689 699 670
15 lin105 14379 14382 14996 15676 15200 15156 16523 15218 15024
16 pr107 44303 44346 47131 52111 47254 46028 44634 47269 49449
17 pr124 59030 59208 66851 70866 61319 60370 61118 64272 60290
18 bier127 118282 119302 128625 129316 124153 128362 122248 124259 125811
19 ch130 6110 6255 6506 7242 6494 6389 6435 6859 6488
20 pr136 96772 98203 102043 112530 101719 100062 102991 107814 106079
21 gr137 706 710 780 856 749 779 757 774 736
22 pr144 58537 58535 62981 72809 65040 61754 58604 67500 63246
Таблица 2 (продолжение). Результаты расчетов метаэвристик
№ CI Chris CWS SFCM Concave Convex EN EO FI Genetic
1 445 443 457 468 441 441 443 474 433 429
2 8215 7868 8092 8089 8325 7544 7544 8529 7777 7544
3 682 696 721 701 695 701 689 752 677 690
4 113347 113744 115002 111253 111159 109989 111989 109446 108663 110703
5 587 570 585 588 566 566 570 598 556 566
6 527 0 569 570 517 517 536 548 513 534
7 1297 1303 1293 1299 1281 1252 1289 1318 1232 1281
8 8022 8336 8814 8362 8167 8173 8168 9113 8113 8268
9 24201 22994 23943 23895 22407 22570 23493 24717 22349 22326
10 22147 21726 22799 22410 21777 21728 22876 24283 21523 21778
11 22469 22126 22254 22123 21481 21481 22424 25419 21452 21381
12 21398 21321 22030 21734 21109 21081 21868 24131 21043 21268
13 23577 22794 23444 23704 22912 22779 22546 23004 22463 22423
14 669 664 706 693 656 656 658 710 657 650
15 14796 15014 15126 14464 0 14975 15067 17264 14439 14931
16 45768 45317 47389 49952 0 49295 46642 50323 45023 44620
17 60257 59570 60106 60601 0 60388 61775 70638 59030 60088
18 130620 122143 124886 128737 122893 122893 122794 126082 119336 123941
19 6502 0 6528 6510 6502 6630 6317 7101 6224 6344
20 100706 98905 104853 108161 0 102780 101517 112089 98235 99807
21 787 0 737 780 722 722 782 805 708 733
22 59736 58810 60745 63913 0 60639 60335 72120 58880 58587
Оценка работы алгоритмов приведена на рис. 2, 3 для каждого из наборов данных. Здесь отображена относительная оценка по полученным решениям:
5(й) = (й — й*)/й*, где й — результат расчетов из таблицы 2, й* — лучшее значение.
Рис. 2. Результаты работы алгоритмов
Рис. 3. Результаты работы алгоритмов
Предполагается, что лучшее известное решение меньше либо равно любому найденному в процессе эксперимента. Но если какой-либо алгоритм улучшит известное решение, то это будет заметно на графике, так как значение относительной оценки станет отрицательным. Таким образом, чем точка ближе к нулю, тем оптимальнее решение было найдено. Значения, равные -1 отражают 0 из таблицы значений, что соответствует случаю, когда решение алгоритмом не найдено.
Таблица 3. Алгоритм, показавший лучший результат на графе
Algorithm with best solution
ACO eil51, berlin52, pr76
Chris gr96, ch130, gr137
Concave Hull lin105, pr107, pr124, pr136, pr144
Genetic eil101
GRASP kroA100
Greedy Karp-Steele Patching bier127
Hopfield Network kroC100
Iterated Search eil76
Nearest Insertion kroB100
Nearest Neighbour rat99
Random Insertion kroD100
Scatter Search rd100, kroE100
Sweep st70
Заключение
В работе произведен численный эксперимент по решению TSP с использованием различных метаэвристик на множестве данных из библиотеки TSPLIB с целью определения наиболее эффективных методов для нахождения оптимальных маршрутов.
Результаты эксперимента показали, что все примененные метаэвристики способны найти приближенные или оптимальные решения задачи коммивояжера на различных наборах данных. Однако, в зависимости от характеристик задачи, некоторые методы проявили себя более эффективными, чем другие.
Исследование алгоритмов показало, что некоторые алгоритмы показывают лучший результат на нескольких тестовых множествах. Количество лучших решений в процентном соотношении от всех тестовых данных такой: Concave Hull 22%, ACO 12%, Christofides 12%, Scatter Search 9%, Sweep 5%, Iterated Search 5%, Nearest Neighbour 5%, Nearest Insertion 5%, Random Insertion 5%, GRASP 5%, Hopfield Network 5%, Genetic 5%, Greedy Karp-Steele Patching 5%.
Приведен список лучших алгоритмов, а также количество раз, когда конкретный алгоритм показывал лучшее решение среди остальных. Можно сделать вывод, что Concave_hull выдал лучшие результаты в 5 тестовых примерах из всей выборки,
также хорошие результаты показали ACO и Christofides. На основе этих данных планируется сформировать зависимость метаданных графа от результатов работы алгоритмов и построить интеллектуальную систему по подбору метаэвристик.
Основываясь на результатах, рекомендуется выбирать метаэвристику в зависимости от особенностей задачи маршрутизации коммивояжера. Необходимо учитывать количество городов, географические и инфраструктурные характеристики, требования к точности решения и время выполнения. Комбинирование различных метаэвристик может привести к получению существенно лучших результатов.
СПИСОК ЛИТЕРАТУРЫ
1. Германчук, М. С. Знаниеориентированные модели многоагентной маршрутизации, дис. канд. физ.-мат. наук: 05.13.18 / М. С. Германчук. — ВГУ, Воронеж, 2022. — 150 с.
GERMANCHUK, M. S (2022) Knowledge-oriented multi-agent routing models, dis. phd Phys.-Math. Sciences: 05.13.18. VSU, Voronezh.
2. Козлова, М. Г., Лукьяненко, В. А., Макаров, О. О., Германчук, М. С. Кластеризация сети с иерархической структурой в задаче многоагентной маршрутизации // Актуальные проблемы прикладной математики, информатики и механики: сборник трудов Международной научной конференции, Воронеж, 12-14 декабря 2022 г. — Воронеж: Издательство «Научно-исследовательские публикации», 2023. — C. 445-452.
KOZLOVA, M. & LUKYANENKO, V. & MAKAROV, O. & GERMANCHUK, M. (2023) Network clustering with a hierarchical structure in the problem of multiagent routing. Actual problems of applied mathematics, informatics and mechanics: collection of proceedings of the International Scientific Conference, Voronezh, December 12-14, 2022. p. 445-452.
3. Козлова, М. Г., Лукьяненко, В. А., Макаров, О. О., Матковский, В. А. Разработка алгоритмов многоагентной иерархической маршрутизации / / Управление большими системами. Труды XVIII Всероссийской школы-конференции молодых ученых. Министерство науки и высшего образования Российской Федерации Южно-Уральский государственный университет Институт проблем управления им. В.А. Трапезникова Российской академии наук. — 2022. — C. 469-475.
KOZLOVA, M. & LUKYANENKO, V. & MAKAROV, O. & MATKOVSKY, V. (2022) Development of algorithms for multi-agent hierarchical routing. Management of large systems. Proceedings of the XVIII All-Russian School-Conference of Young
Scientists. Ministry of Science and Higher Education of the Russian Federation South Ural State University Institute of Management Problems. V.A. Trapeznikova of the Russian Academy of Sciences. p. 469-475.
4. Муравник, А. Б., Данильченко, М. Н. Нейросетевой подход к построению маршрута в автоматизированной системе управления специального назначения // Наукоемкие технологии в космических исследованиях Земли. — 2021. — Т. 13.[№ 1]. — C. 58-66.
MURAVNIK, A. & DANILCHENKO, M. (2021) Neural network approach to building a route in an automated control system for special purposes. High technologies in space researches of the Earth. 13 (1). p. 58-66.
5. Муравник, А. Б. Функции Ляпунова в задаче нейросетевого моделирования: сравнительный анализ // Радиолокация, навигация, связь: сб. трудов XXVI Международной научно-технической конференции, г. Воронеж 29 сентября - 1 октября 2020 г., в 6 т. — Воронежский государственный университет; Воронеж: Изд. Дом ВГУ, 2020. — C. 49-55.
MURAVNIK, A. (2020) Lyapunov functions in the problem of neural network modeling: a comparative analysis. Radar, navigation, communications: Sat. Proceedings of the XXVI International Scientific and Technical Conference, Voronezh, September 29 - October 1, 2020, in 6 volumes. p. 49-55.
6. Штовба, С. Д. Муравьиные алгоритмы // Exponenta Pro. Математика в приложениях. — 2003. — Т. 4. — C. 70-75.
SHTOVBA, S (2003) Ant algorithms. Exponenta Pro. Mathematics in Applications. 4. p. 70-75.
7. ALIPOUR, M. & RAZAVI, S. (2019) A new local search heuristic based on nearest insertion into the convex hull for solving Euclidean TSP. International Journal of Operational Research. 34. p. 409-429.
8. ARCHETTI, C. & FEILLET, D. & MOR, A. & SPERANZA, M. (2018) An iterated local search for the Traveling Salesman Problem with release dates and completion time minimization. Computers & Operations Research. 98. p. 24-37.
9. BARTHOLDI, J. (1995) A routing system based on spacefilling curves. Georgia Institute of Technology. p. 1-22.
10. BASEL, J. & WILLEMAIN, T. (2001) Random Tours in the Traveling Salesman Problem: Analysis and Application. Computational Optimization and Applications. 20. p. 211-217.
11. BAUM, E. (1986) Towards practical 'neural' computation for combinatorial optimization problems. AIP Conference Proceedings. 151. p. 53-58.
12. BOETTCHER, S. & PERCUS, A. (1999) Extremal Optimization: Methods derived from Co-Evolution. Proceedings of the 1st Annual Conference on Genetic and Evolutionary Computation. 1. p. 825-832.
13. BOETTCHER, S. & PERCUS, A. (2001) Optimization with Extremal Dynamics. Physical Review Letters, American Physical Society (APS). 86 (23). p. 5211-5214.
14. BOURIDAH, A. & BELHADEF, H. (2020) A scatter search algorithm to configure service function chaining. International Journal of Internet Technology and Secured Transactions. 10 (6). p. 654-674.
15. CLARKE, G. & WRIGHT, J. (1964) Scheduling of Vehicles from a Central Depot to a Number of Delivery Points. Operations Research. 12 (4). p. 568-581.
16. CROES, G. (1958) A Method for Solving Traveling-Salesman Problems. Operations Research. 6 (6). p. 791-812.
17. DANTAS, J. & COSTA, A. & MAXIMO, M. & YONEYAMA, T. (2021) Enhanced Self-Organizing Map Solution for the Traveling Salesman Problem. In: Encontro Nacional de Inteligencia Artificial e Computacional (ENIAC). 18. p. 799-802.
18. DOKEROGLU, T. & SEVIN, E. & KUCUKYILMAZ, T. & COSAR, A. (2019) A survey on new generation metaheuristic algorithms. Comput. Ind. Eng.. 137 (5). p. 6101-6167.
19. DORIGO, M. & GAMBARDELLA, L. (1997) Ant colony system: a cooperative learning approach to the traveling salesman problem. in IEEE Transactions on Evolutionary Computation. 1 (1). p. 53-66.
20. DURBIN, R. & WILLSHAW, D. (1987) An analogue approach to the travelling salesman problem using an elastic net method. Nature. 326. p. 689-691.
21. FEO, T. & RESENDE, M. (1995) Greedy Randomized Adaptive Search Procedures. Journal of Global Optimization. 6. p. 109-133.
22. GE, J. & LIU, X. & LIANG, G. (2020) Research on vehicle routing problem with soft time windows based on hybrid tabu search and scatter search algorithm. Computers, Materials & Continua. 64 (3). p. 1945-1958.
23. GILLETT, B. & MILLER, L. (1974) A Heuristic Algorithm for the Vehicle-Dispatch Problem. Operations Research. p. 340-349.
24. GLOVER, F. & GUTIN, G. & YEO, A. & ZVEROVICH, A. (2001) Construction heuristics for the asymmetric TSP. European Journal of Operational Research. 129 (3). p. 555-568.
25. GLOVER, F. (1977) Heuristics for integer programming using surrogate constraints. Decision Sciences. 8. p. 156-166.
26. GLOVER, F. (1989) Tabu Search-Part I. ORSA Journal on Computing. 1 (3). p. 190-206.
27. GONCALVES, J. & RESENDE, M. (2011) Biased random-key genetic algorithms for combinatorial optimization. J Heuristics. 17. p. 487-525.
28. GOODRICH, M. & TAMASSIA, R. (2015) The christofides approximation algorithm. Algorithm Design and Applications, Wiley. p. 513-514.
29. GUTIN, G. & YEO, A. & ZVEROVICH, A. (2002) Traveling salesman should not be greedy: domination analysis of greedy-type heuristics for the TSP. Discrete Applied Mathematics. 117 (1-3). p. 81-86.
30. HOSSEINABADI, A. & KARDGAR, M. & SHOJAFAR, M. & SHAMSHIRBAND, S. & ABRAHAM, A. (2014) GELS-GA: Hybrid metaheuristic algorithm for solving Multiple Travelling Salesman Problem. 14th International Conference on Intelligent Systems Design and Applications. p. 76-81.
31. HU, Y. & DUAN, Q. (2022) Solving the TSP by the AALHNN algorithm. Mathematical biosciences and Engineering: MBE. 19 (4). p. 3427-3448.
32. JOHNSON, D. & MCGEOCH, L. (2008) The Traveling Salesman Problem: A Case Study in Local Optimization. John Wiley and Sons. p. 215-310.
33. KAI, A. & MINGRUI, X. (2012) A Simple Algorithm for Solving Travelling Salesman Problem. Proceedings of the 2012 Second International Conference on Instrumentation, Measurement, Computer, Communication and Control, Harbin, China. p. 931-935.
34. KALRA, M. & TYAGI, S. & KUMAR, V. KAUR, M. & MASHWANI, W. & SHAH, H. & SHAH, K. (2021) A Comprehensive Review on Scatter Search: Techniques, Applications, and Challenges. Mathematical Problems in Engineering. p. 1-21.
35. KANG, M. & YUN, S. & WOO, H. (2013) Accelerated bregman method for linearly constrained ¿i —l2 minimization. J. Sci. Comput.. p. 515-534.
36. KARLIN, A. & KLEIN, N. & OVEIS, G. (2021) A (slightly) improved approximation algorithm for metric TSP. Proceedings of the 53rd Annual ACM SIGACT Symposium on Theory of Computing. p. 32-45.
37. KARP, R. (1979) A Patching Algorithm for the Nonsymmetric Traveling-Salesman Problem. SIAM J. Comput.. 8. p. 561-573.
38. KILIC, I. & MOSTARDA, L. & NOVEL, L. (2022) Concave Hull-Based Heuristic Algorithm For TSP. Operations Research Forum. 3 (2). p. 1-45.
39. KNOX, J. (1994) Tabu search performance on the symmetric traveling salesman problem. Computers & Operations Research & Applic.. 21 (8). p. 867-876.
40. LUO, Y. (2019) Design and Improvement of Hopfield network for TSP. Proceedings of the 2019 International Conference on Artificial Intelligence and Computer Science. p. 79-83.
41. MAGGIONI, F. & PERBOLI, G. & TADEI, R. (2014) The Multi-path Traveling Salesman Problem with Stochastic Travel Costs: Building Realistic Instances for City Logistics Applications. Transportation Research Procedia. 3. p. 528-536.
42. MANDZIUK, J. (1996) Solving the travelling salesman problem with a hopfield-type neural network. Demonstratio Mathematica. 29 (1). p. 219-232.
43. MISEVICIUS, A. (2011) Combining 2-OPT, 3-OPT and 4-OPT with K-SWAP-KICK perturbations for the traveling salesman problem. Conference: 17th International Conference on Information and Software TechnologiesAt: Kaunas. p. .
44. MLADENOVIC, N. & HANSEN, P. (1997) Variable neighborhood search. Computers & Operations Research. 24 (11). p. 1097-1100.
45. MOREIRA, A. & SANTOS, M. (2007) Concave hull: A k-nearest neighbours approach for the computation of the region occupied by a set of points. Conference: GRAPP 2007, Proceedings of the Second International Conference on Computer Graphics Theory and Applications, Barcelona, Spain. p. 61-68.
46. MORTON, G. (1966) A Computer Oriented Geodetic Data Base and a New Technique in File Sequencing. International Business Machines Company.
47. NEUENFELDT, J. & GUIMARAES, L. (2019) A greedy randomized adaptive search procedure application to solve the travelling salesman problem. International Journal of Industrial Engineering and Management. 10 (3). p. 238-242.
48. NORMAN, M. & MOSCATO, P. (1995) The euclidean traveling salesman problem and a space-filling curve. Chaos Solitons & Fractals. 6. p. 389-397.
49. PAPADIMITRIOU, C. & VAZIRANI, U. (1984) On two geometric problems related to the travelling salesman problem. Journal of Algorithms. 5 (2). p. 231-246.
50. POTVIN, J. (1996) Genetic algorithms for the traveling salesman problem. Annals of Operations Research. 63. p. 337-370.
51. RASTOGI, A. & SHRIVASTAVA, A. & PAYAL, N. & SINGH, R. (2013) A Proposed Solution to Travelling Salesman Problem using Branch and Bound. International Journal of Computer Applications. 65 (5). p. 44-49.
52. ROSENKRANTZ, D. & STEARNS, R. & LEWIS, P. (1977) An Analysis of Several Heuristics for the Traveling Salesman Problem. SIAM J. Comput.. 6. p. 563-581.
53. RUSSELL, S. and NORVIG, P. (2020) Artificial Intelligence: A Modern Approach. 4. Pearson series in artificial intelligence, University of California at Berkeley, Published by Pearson.
54. SAHIN, M. (2023) Solving TSP by using combinatorial Bees algorithm with nearest neighbor method. Neural Comput. & Applic.. 35. p. 1863-1879.
55. SCHOLZ, J. (2019) Genetic algorithms and the traveling salesman problem a historical review. Proc. of the MInf Seminar at the Dept. of Computer Science of the Hamburg University of Applied Sciences. p. 1-8.
56. SKINDEROWICZ, R. (2022) Improving Ant Colony Optimization efficiency for solving large TSP instances. Applied Soft Computing. 120. p. 1-28.
57. STATTENBERGER, G. & DANKESREITER, M. & BAUMGARTNER, F. & SCHNEIDER, J. (2007) On the Neighborhood Structure of the Traveling Salesman Problem Generated by Local Search Moves. Journal of Statistical Physics. 129. p. 623-648.
58. THAMMANO, A. & RUNGWACHIRA, P. (2021) Hybrid modified ant system with sweep algorithm and path relinking for the capacitated vehicle routing problem. Heliyon. 7 (9). p. 1-15.
59. TRAUB, V. (2020) Improving on Best-of-Many-Christofides for T-tours. Operations Research Letters. 48 (6). p. 798-804.
60. VOUDOURIS, C. & TSANG, E. (1999) Guided local search and its application to the traveling salesman problem. European Journal of Operational Research. 113 (2). p. 469-499.
61. YAO, X. & OU, Y. & ZHOU, K. (2021) TSP Solving Utilizing Improved Ant Colony Algorithm. Journal of Physics: Conference Series. 2129 (1). p. 12-26.
62. Concorde TSP Solver // [Электронный ресурс]. — Режим доступа: https: //www.math.uwaterloo.ca/tsp/concorde.html
63. NetworkX // [Электронный ресурс]. — Режим доступа: https: / / networkx.org
64. pyCombinatorial // [Электронный ресурс]. — Режим доступа: https: //github.com/Valdecy/pyCombinatorial
65. Solomon benchmark // [Электронный ресурс]. — Режим доступа: https: / / www.sintef.no / projectweb / top / vrptw / solomon-benchmark /
66. TSPLIB // [Электронный ресурс]. — Режим доступа: http: / / comopt. ifi.uni-heidelberg. de / software/TSPLIB95