ОПТИМИЗАЦИЯ ПРОГРАММНОГО КОДА НА ПРИМЕРЕ АЛГОРИТМА ДЛЯ РЕШЕНИЯ ЗАДАЧИ КОММИВОЯЖЕРА

Авторы: 
Ю. Ф. Леонова
УДК: 
004.051
DOI: 
10.24412/2073-0667-2025-2-48-64
Аннотация: 

EDX: KQAAFR

В статье рассматриваются методы оптимизации программного кода, реализующего алгоритм соединения циклов для решения задачи коммивояжера. Особое внимание уделено параллелизации вычислений с использованием технологий ОрепМР и MPI, а также оптимизации структуры данных и управления памятью для повышения эффективности алгоритма. Применение предложенных методов к задачам большой размерности продемонстрировало значительное сокращение времени выполнения и более эффективное использование вычислительных ресурсов. Предложенные подходы к оптимизации могут быть применены к широкому кругу задач комбинаторной оптимизации, где важны быстродействие и рациональное распределение ресурсов.

 

Ключевые слова: задача коммивояжера, комбинаторная оптимизация, оптимизация про-граммного кода, оптимизация производительности, параллельные вычисления, инструментирование и профилирование.

 

Список литературы

 

1.            Jarrah A., Bataineh A. S. A., Almomany A. The optimisation of travelling salesman problem based on parallel ant colony algorithm // International Journal of Computer Applications in Technology. 2022. V. 69. N 4. P. 309-321.

2.            Rhee Y. Gpu-based parallel ant colony system for traveling salesman problem // Journal of The Korea Society of Computer and Information. 2022. V. 27. N 2. P. 1-8.

3.            Wang Z. et al. A fine-grained fast parallel genetic algorithm based on a ternary optical computer for solving traveling salesman problem // The Journal of Supercomputing. 2023. V. 79. N о. P. 4760-4790.

4.            Peng C. Parallel genetic algorithm for travelling salesman problem // In: International conference on automation control, algorithm, and intelligent bionics (ACAIB 2022). 2022. V. 12253, P. 259-267.

5.            Alhenawi E. et al. Solving Traveling Salesman Problem Using Parallel River Formation Dynamics Optimization Algorithm on Multi-core Architecture Using Apache Spark // International Journal of Computational Intelligence Systems. 2024. V. 17. N 1. P. 4.

6.            Qiao Y. et al. A hybridized parallel bats algorithm for combinatorial problem of traveling salesman // Journal of Intelligent & Fuzzy Systems. 2020. T 38. N 5. P. 5811-5820.

7.            Король 3. А. Анкудинов К. А., Королькова Л. H. Исследование методов оптимизации про-граммного кода для повышения производительности // Инновационные направления развития в образовании, экономике, технике и технологиях. 2023. С. 257-260.

8.            Тайк А. М. Лупин С. А., Федяшин Д. А. Использование библиотеки MPI для параллельной реализации алгоритма полного перебора вариантов // Программные продукты и системы. 2023. Т. 36. № 4. С. 607-614.

9.            Panyukov А. V., Leonova Y. F. Algorithm for approximate solution of the travelling salesman problem // Optimization Problems and Their Applications (OPTA-2018). 2018. P. 31. (in Russian).

10.          Leonova Yu. F. Cycles merging algorithm for an approximate solution of the traveling salesman problem // Abstracts of the XIX All-Russian Conference of Young Scientists on Mathematical Modeling and Information Technologies, Novosibirsk: ICT SB RAS. 2018. P. 28.

11.          Panyukov A.V., Leonova Yu. F. Cycle Merging Algorithm for MAX TSP Problems // XVIII International Conference “Mathematical Optimization Theory and Operations Research” (MOTOR 2019), Ekaterinburg, Russia: Publisher “UMC UrFU”. 2019. P. 57.

12.          Panyukov A.V., Leonova Yu.F. Cycle merging algorithm for the maximal metric traveling salesman problem // Bulletin of the South Ural State University, V. 10, N 4: a series of Computational Mathematics and Informatics. Chelyabinsk: Publishing House of SUSU. 2021. P. 26-36. (in Russian) DOI: 10.14529/cmse210402.

13.          Свидетельство о государственной регистрации программы для ЭВМ № 2021669214 Россий¬ская Федерация. Программа для реализации алгоритма соединения циклов для решения задачи коммивояжера : № 2021668239: заявл. 16.11.2021 : опубл. 25.11.2021 / Ю. Ф. Леонова, А. В. Паню- ков ; заявитель Федеральное государственное автономное образовательное учреждение высшего образования «Южно-Уральский государственный университет». EDN RPNSPO.

14.          Гантерот К. Оптимизация программ на C++. Проверенные методы повышения произво-дительности. 1-е изд. М.: Вильямс, 2017. 400 с.

15.          Панюков А. В., Телегин В. А. Техника программной реализации потоковых алгоритмов // Вестник Южно-Уральского государственного университета. Серия: Математическое модели-рование и программирование. 2008. № 27 (127). С. 78-99.

16.          Леонова Ю. Ф. Parallel implementation of the cycle merging algorithm for solving the traveling salesman problem [Электрон, pec.]: https://github.com/YuliyaLeonova/CycleMergingAlgorithm. git, last accessed 2025/05/19.

17.          Intel VTune Profiler. [Электрон, pec.]: https://www.intel.com/content/www/us/en/ developer/tools/oneapi/vtune-profiler.html/gs.hf jczc, last accessed 2024/11/11.

18.          Мейерс С. Эффективный и современный C++. 42 рекомендации по использованию C++11 и С++14. М.: Вильямс, 2018. 304 с.

19.          std::mersenne_twister_engine. [Электрон, pec.]: https: //en. cppref erence . com/w/срр/ numeric/random/mersenne_twister_engine .html, last accessed 2024/11/02.

20.          Best Practices in the Parallel Patterns Library. [Электрон, pec.]: https://learn.microsoft. com/en-us/cpp/parallel/concrt/best-practices-in-the-parallel-patterns-library?view= msvc-170, last accessed 2024/10/15.

Ключевые слова: 
задача коммивояжера, комбинаторная оптимизация, оптимизация программного кода, оптимизация производительности, параллельные вычисления, инструментирование и профилирование
Номер журнала: 
2(67) 2025 г.
Год: 
2025
Адрес: 
Южно-Уральский государственный университет, 454080, Челябинск, Россия
Библиографическая ссылка: 
Леонова Ю. Ф. Оптимизация программного кода на примере алгоритма для решения задачи коммивояжера //"Проблемы информатики", 2025, № 2, с.48--64 DOI: 10.24412/2073-0667-2025-2-48-64. – EDN: KQAAFR