Молодой исследователь Дона
№6(21) 2019
УДК 519.87
ПОДХОД К УМЕНЬШЕНИЮ ВРЕМЕНИ ЭКСПЕРИМЕНТОВ С ГЕНЕТИЧЕСКИМ АЛГОРИТМОМ
Кобак В. Г., Пешкевич А. А.
Донской государственный технический университет, Ростов-на-Дону, Российская Федерация valera33 [email protected] [email protected]
Предлагается подход к программной реализации решения задачи коммивояжера с использованием модифицированной модели Голдберга двухэтапного генетического алгоритма. Программа использует библиотеку параллельных задач для получения более высокой производительности вычисления на многоядерных процессорах. Проведена проверка на графе сП76 из пакета TSP_LIB. Реализованный подход позволил значительно уменьшить время проведения эксперимента и получить оптимальные и субоптимальные решения.
Ключевые слова: задача коммивояжера, генетический алгоритм, библиотека параллельных задач, параллелизм,
многоядерный процессор, граф, поток.
UDC 519.87 APPROACH TO REDUCE THE TIME OF EXPERIMENTS WITH THE GENETIC ALGORITHM
Kobak V. G., Peshkevich A .A.
Don State Technical University, Rostov-on-Don, Russian Federation
valera33 305@,mail .ru [email protected]
The paper proposes an approach to the software implementation of the traveling salesman problem using a modified Goldberg model of a two-stage genetic algorithm. The program uses a library of parallel tasks to obtain higher performance computing on multi-core processors. It was tested on the graph eil76 package TSP_LIB. The implemented approach made it possible to significantly reduce the time of the experiment and to obtain optimal and suboptimal solutions.
Keywords: traveling salesman problem, genetic algorithm, library of parallel problems, parallelism, multi-core processor, graph, flow
Введение. Задача коммивояжера является трансвычислительной [1]. Для ее решения используются эвристические методы. В данной работе используется генетический алгоритм [2]. Для достижения более точных результатов требуется модифицировать алгоритм под задачу. При разработке модификаций генетического алгоритма важно проверить ее на достаточно большом количестве запусков алгоритма. В случае обработки графов большого размера это требует значительного количества времени. Дополнительные временные издержки вносит использование двухэтапного генетического алгоритма, где на первом этапе на основе результатов запуска одноэтапного генетического алгоритма с небольшой популяцией для каждой из особей формируется начальное поколение второго этапа. Поэтому возникает проблема снижения временных затрат на эксперимент. В данной работе предлагается подход, который состоит в распараллеливании запусков на отдельные потоки.
Постановка задачи. Имеется матрица расстояний для полного неориентированного графа. Необходимо найти в этом графе гамильтонов цикл минимальной длины. Для минимизации времени эксперимента нужно разработать программное средство, решающее поставленную задачу и использующее все вычислительные ядра процессора.
Подходы решения. В рамках данной работы задача коммивояжера решается с использованием модифицированной модели Голдберга двухэтапного генетического алгоритма [3, 4]. Во время экспериментов производится достаточно большое количество запусков алгоритма.
Каждый такой запуск будем производить в отдельном потоке. Схема подхода представлена на
В реализации данного подхода воспользуемся библиотекой параллельных задач TPL (Task Parallel Library) [5]. TPL — это совокупность открытых типов данных и интерфейсов в пространствах имен System.Threading и System.Threading.Tasks. TPL позволяет динамически масштабировать степень параллелизма. Этой особенностью мы и будем пользоваться при настройке степени параллелизма в зависимости от планов эксперимента. Для запуска набора экспериментов в библиотеке имеется особый вариант цикла for с сигнатурой public static System.Threading.Tasks.ParallelLoopResult For (int fromInclusive, int toExclusive, System.Threading.Tasks.ParallelOptions parallelOptions, Action<int> body). Параметры у оператора следующие: начальный индекс; конечный индекс; объект, используемый для настройки поведения операции; делегат, вызываемый один раз за операцию. Объект класса ParallelOptions хранит параметры, настраивающие работу методов класса Parallel. У этого объекта есть свойство MaxDegreeOfParallelism, которое получает или задает максимальное число параллельно выполняемых задач, которое допускает этот экземпляр. Этот параметр позволяет настраивать работу программы на разных ЭВМ, т.к. процессоры могут быть различными и оптимальное значение этого параметра отличается от процессора к процессору.
Вычислительный эксперимент. Эксперименты проводим на графе из пакета TSP_LIB eil76 [6]. Точное решение для этого графа методом полного перебора уже не найти, т.к. количество необходимых операций находится за пределом Бремерманна [7]. Проводился первый эксперимент с помощью программы, реализующей последовательный подход без параллелизма [8]. Количество особей и количество поколений без изменения лучшего решения составляло 5000. На один запуск было затрачено примерно 1 час 30 минут. Второй эксперимент проводился с помощью программы, реализующей предложенный подход, с параллелизмом. ПК, на котором производился запуск, имеет процессор Intel i7 4790 с тактовой частотой 3.6 ГГц и 4 ядрами. Для проведения 10 запусков потребовалось 4 часа 18 минут. При этом загрузка ЦПУ составляла почти 100%. Для проведения аналогичного эксперимента с последовательным подходом потребовалось бы около 15 часов. Таким образом, предложенный подход позволил уменьшить продолжительность в 3,5 раза.
Выводы. Предлагаемый подход к распараллеливанию вычислительного эксперимента по решению задачи коммивояжера с использованием модифицированной модели Голдберга двухэтапного генетического алгоритма показал на практике свою эффективность. Программное средство, его реализующее, позволяет уменьшить время в несколько раз по сравнению с программой, реализующей последовательный подход. Производительность достигается за счет использования вычислительной способности многоядерного процессора.
рис. 1.
►
Рис. 1. Схема подхода
Молодой исследователь Дона
№6(21) 2019
Библиографический список
1. Optimization through evolution and recombination / Holtz.org. — Режим доступа : holtz.org/Library/Natural%20Science/Physics/Optimization%20Through%20Evolution%20and%20Reco mbination%20-%20Bremermann%201962.htm (дата обращения : 20.01.2019).
2. Нетёсов, А. С. Эволюционно-генетический подход к решению задач оптимизации. Сравнительный анализ генетических алгоритмов с традиционными методами оптимизации / Инженерный вестник Дона. — 2011. — №3. — Режим доступа : ivdon.ru/ru/magazine/archive/ n3y2011/459
3. Кобак, В. Г. Решение задачи коммивояжера с помощью модифицированной модели Голдберга / В. Г. Кобак, А. А. Пешкевич // Системный анализ, управление и обработка информации : тр. VII междунар. семинара. — п. Дивноморское. — 2016. — Т.1. — С. 54-56.
4. Пешкевич, А. А. Решение задачи коммивояжера с использованием двухэтапного генетического алгоритма / А. А. Пешкевич, В. Г. Кобак, А. Г. Жуковский // Инженерный вестник Дона. — 2018. — №3. — Режим доступа : ivdon.ru/ru/magazine/archive/n3y2018/5210 (дата обращения :21.01.2019).
5. Библиотека параллельных задач (TPL) / Microsoft. NET. — Режим доступа : https://docs.microsoft.com/ru-ru/dotnet/standard/parallel-programming/task-parallel-library-tpl (дата обращения : 20.01.2019).
6. TSP_LIB / Ruprecht-Karls-Universitat Heidelberg. — Режим доступа : comopt.ifi.uni-heidelberg.de/software/TSPLIB95/ (дата обращения : 20.01.2019).
7. Algorithms, data and hypotheses. Learning in open worlds / muehlenbein.org: Heinz Muehlenbein. — Режим доступа : muehlenbein.org/algo95.pdf. (дата обращения : 20.01.2019).
8. Свидетельство о государственной регистрации программы для ЭВМ №2019613880. Российская Федерация. Решение задачи коммивояжера с использованием двухэтапного генетического алгоритма / А. А. Пешкевич, В. Г. Кобак; заявитель и правообладатель Федеральное государственное бюджетное образовательное учреждение высшего образования «Донской государственный технический университет». №2019612309; заявл. 07.03.2019; опубл 26.03.2019. — 1 с.