Научная статья на тему 'Подход к уменьшению времени экспериментов с генетическим алгоритмом'

Подход к уменьшению времени экспериментов с генетическим алгоритмом Текст научной статьи по специальности «Математика»

CC BY
150
13
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ЗАДАЧА КОММИВОЯЖЕРА / ГЕНЕТИЧЕСКИЙ АЛГОРИТМ / БИБЛИОТЕКА ПАРАЛЛЕЛЬНЫХ ЗАДАЧ / ПАРАЛЛЕЛИЗМ / МНОГОЯДЕРНЫЙ ПРОЦЕССОР / ГРАФ / ПОТОК / TRAVELING SALESMAN PROBLEM / GENETIC ALGORITHM / LIBRARY OF PARALLEL PROBLEMS / PARALLELISM / MULTI-CORE PROCESSOR / GRAPH / FLOW

Аннотация научной статьи по математике, автор научной работы — Кобак В. Г., Пешкевич А. А.

Предлагается подход к программной реализации решения задачи коммивояжера с использованием модифицированной модели Голдберга двухэтапного генетического алгоритма. Программа использует библиотеку параллельных задач для получения более высокой производительности вычисления на многоядерных процессорах. Проведена проверка на графе eil76 из пакета TSP_LIB. Реализованный подход позволил значительно уменьшить время проведения эксперимента и получить оптимальные и субоптимальные решения.

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по математике , автор научной работы — Кобак В. Г., Пешкевич А. А.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

APPROACH TO REDUCE THE TIME OF EXPERIMENTS WITH THE GENETIC ALGORITHM

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.

Текст научной работы на тему «Подход к уменьшению времени экспериментов с генетическим алгоритмом»

Молодой исследователь Дона

№6(21) 2019

УДК 519.87

ПОДХОД К УМЕНЬШЕНИЮ ВРЕМЕНИ ЭКСПЕРИМЕНТОВ С ГЕНЕТИЧЕСКИМ АЛГОРИТМОМ

Кобак В. Г., Пешкевич А. А.

Донской государственный технический университет, Ростов-на-Дону, Российская Федерация valera33 305@mail.ru alexschume@mail.ru

Предлагается подход к программной реализации решения задачи коммивояжера с использованием модифицированной модели Голдберга двухэтапного генетического алгоритма. Программа использует библиотеку параллельных задач для получения более высокой производительности вычисления на многоядерных процессорах. Проведена проверка на графе сП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 alexschume@mail.ru

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 с.

i Надоели баннеры? Вы всегда можете отключить рекламу.