Abstract

The paper describes some ways to accelerate solving the NP-complete Traveling Salesman Problem. The classic Little algorithm belonging to the category of ”branch and bound methods” can solve it both for directed and undirected graphs. However, for undirected graphs its operation can be accelerated by eliminating the consideration of branches examined earlier. The paper proposes changes to be made in the key operations of the algorithm to speed up its execution. It also describes the results of an experiment that demonstrated a significant acceleration of solving the problem by using an advanced algorithm. Another way to speed up the work is to parallelize the algorithm. For problems of this kind it is difficult to break the task into a sufficient number of subtasks having comparable complexity. Their parallelism arises dynamically during the execution. For such problems, it seems reasonable to use parallel-recursive algorithms. In our case the use of the library RPM ParLib developed by the author was a good choice. It allows us to develop effective applications for parallel computing on a local network using any .NET-compatible programming language. We used C# to develop the programs. Parallel applications were developed as for basic and modified algorithms, the comparing of their speed was made. Experiments were performed for the graphs with the number of vertexes up to 45 and with the number of network computers up to 16. We also investigated the acceleration that can be achieved by parallelizing the basic Little algorithm for directed graphs. The results of these experiments are also presented in the paper.

Highlights

  • На этапе 5 наиболее выгодным было бы выбирать для продолжения вычислений нулевой элемент с глобально максимальной оценкой, так, чтобы вычисления продолжались во всех возможных направлениях

  • V., "On the Optimization and Parallelizing Little Algorithm for Solving the Traveling Salesman Problem", Modeling and Analysis of Information Systems, 23:4 (2016), 401–411

Read more

Summary

Задача коммивояжера

Задано конечное множество C = {c0, c1, ...cn−1} "городов" и для каждой пары ci, cj ∈ C "расстояние" между ними dij = d(ci, cj) ∈ Z+ (здесь Z+ означает положительные целые числа). Матрица расстояний D = dij не обязательно должна быть симметричной, также мы не требуем выполнения неравенства треугольника, то есть рассматриваем задачу в самом общем виде. В. Об оптимизации и распараллеливании алгоритма Литтла циклический маршрут r = {0, i1, i2, ...in−1, 0}, здесь мы без ограничения общности положили i0 = in = 0. Длина пути определяется как n−1 l(r) = d . Пусть R – множество всех таких маршрутов. Требуется найти цикл r0 ∈ R , такой что l(r0) = min l(r). Что количество всех допустимых маршрутов равно (n − 1)! Что количество всех допустимых маршрутов равно (n − 1)! и полный перебор крайне неэффективен

Алгоритм Литтла
Модификация алгоритма Литтла для симметричной матрицы расстояний
Параллельный вариант алгоритма Литтла
Результаты использования РП-алгоритма для ориентированных графов
Full Text
Paper version not known

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call

Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.