Исследование эффективности параллельного муравьиного алгоритма на задаче коммивояжера

Актуальные проблемы авиации и космонавтики. Информационные технологии

рируемыми [1]. Предложенный алгоритм самоконфигурируемого генетического программирования (8СвР) использует динамическую адаптацию на уровне популяции [2] в ходе решения задачи и централизованную форму управления процессом настройки параметров. Вероятности для операторов быть выбранными для порождения очередного потомка адаптируются, исходя из успешности этих операторов на последнем поколении независимо от предыдущих результатов работы. Таким образом снимается типичная для централизованных подходов проблема больших затрат памяти [3]. Вероятности применения операторов не включены в хромосому и не являются объектом эволюции. Все операторы могут быть использованы в течение одного поколения для создания потомков.

Было проведено тестирование 8СвР на 17 тестовых задачах и сравнение эффективности с альтернативными подходами на практических задачах. По результатам решения этих задач 8СвР уступил одному алгоритму, специально разработанному для решения задач этого типа. 8СвР может быть рекомендован для решения задач символьной регрессии как лучшая аль-

тернатива стандартному алгоритму генетического программирования.

В результате проделанной работы можно сделать вывод о том, что SCGP, предложенный в данной статье, позволяет избегать затрат интеллектуальных и вычислительных ресурсов на настройку алгоритма без снижения эффективности.

Библиографические ссылки

1. Schaefer R., Cotta C., Koiodziej J., Rudolph G. (Eds.) Parallel Problem Solving from Nature - PPSN XI 11th International Conference, Krakow, Poland, September, 11-15. 2010.

2. Meyer-Nieberg S., Beyer H.-G. Self-Adaptation in Evolutionary Algorithms. In F. Lobo, C. Lima, and Z. Michalewicz (Eds.) Parameter Setting in Evolutionary Algorithm. Р. 47-75. 2007.

3. Gomez J. SelfAdaptation of Operator Rates in Evolutionary Algorithms. In Deb K. et al. (Eds.) GECCO 2004, LNCS 3102. Р. 1162-1173. 2004.

© Семенкина М. Е., 2012

УДК 519.68

О. Е. Семенкина Научный руководитель - Е. С. Семенкин Сибирский федеральный университет, Красноярск

ИССЛЕДОВАНИЕ ЭФФЕКТИВНОСТИ ПАРАЛЛЕЛЬНОГО МУРАВЬИНОГО АЛГОРИТМА НА ЗАДАЧЕ КОММИВОЯЖЕРА

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

Исследование эффективности стохастических алгоритмов, работающих одновременно с большим количеством текущих решений на задачах оптимизации, является актуальной научной проблемой современной математики.

Для реализации и исследования эффективности муравьиного алгоритма была использована оптимизационная задача, которая часто возникает на практике, а именно задача коммивояжера [1]. Формулировка задачи: Пусть имеется заданное множество из п городов. Требуется найти замкнутый обход минимальной длины с условием, что каждый город должен быть посещен единственный раз.

Муравьиный алгоритм основан на имитации поведения муравьев в природе [2]. Почти слепые животные, такие как муравьи, справляются с задачей отыскания кратчайшего пути от гнезда до источника пищи и обратно. Для обмена информацией они используют след фермента, оставляемый на пути. Муравей с большей вероятностью выбирает тот путь, на котором большее количество фермента.

Пусть Ту(1) это интенсивность следа на ребре (1, в момент времени 1. Интенсивность следа обновляется в соответствии с формулой тц^ + п) = р-т^) + Дт^, где р является коэффициентом таким, что (1-р) представляет собой испарение следа.

ДТу =

Z4

где Дт ij =

Q

—, если к-й муравей использует ребро (у) в своем обходе ^к

0, если не использует .

Р является постоянной, а Ьк - длина обхода к-го муравья. Пусть число "Лу, равное Ш^, называется видимостью, где ^ - длина пути между городами 1 и Вероятность перехода из города 1 в город} для к-го муравья выражается следующим образом

pk =

Ь (t) ]вЬ ]р

(t УТЬ,* Г

если k-й муравей еще

не посещал j-й город,

0

если к-й муравей

уже посещал ]-й город.

Здесь а и р являются параметрами, которые управляют относительной важностью следа и видимости.

Алгоритм показывает свою работоспособность и хорошую надежность при достаточном количестве ресурсов. Но необходимое количество ресурсов, а,

к=1

к

Секция «Математические методы моделирования, управления и анализа данных»

следовательно, и время работы, быстро растет с увеличением размерности задачи. Для решения этой проблемы используется распараллеливание алгоритмов.

Также оно применяется для снижения преждевременной сходимости к локальному оптимуму, стимуляции разнообразия и поиска альтернативных решений той же проблемы.

Существует несколько видов распараллеливания эволюционных алгоритмов:

1. Глобальные однопопуляционные.

Имеется одна главная популяция, на основном ядре, а вычисление целевой функции распределено на несколько процессоров.

2. Однопопуляционные

Одна пространственно-распределенная популяция, с некоторыми ограничениями.

3. Многопопуляционные

Несколько независимых популяций, которые периодически обмениваются индивидами, то есть осуществляется миграция, управляемая несколькими параметрами.

Многопопуляционные ГА достаточно трудны для понимания, так как эффекты миграции остаются исследованными не полностью.

При реализации параллельного алгоритма был выбран именно третий тип распараллеливания, так как он является наиболее популярным и интересным для изучения. К тому же вычисление пригодности в задаче коммивояжера не требует значительного количества вычислительных ресурсов.

В разработанной программе на каждом ядре компьютера развивается собственная независимая колония муравьев, которая обменивается с остальными лучшими индивидами через определенное количество поколений. Топология их взаимодействия имеет вид клики («каждый с каждым»).

С помощью разработанной программы параллельного муравьиного алгоритма на тестовой задаче (решетка 5 на 5 городов) была исследована его надежность при различных настройках параметров и при различном количестве ядер.

В табл. 1-3 представлена надежность алгоритма, усредненная по 100 прогонам для одного, двух и четырех ядер соответственно. Всем вариантам алгоритма давалось 10 итераций, 25 муравьев и параметры р=0.6 и р=10. При этом в случае нескольких ядер имеется ввиду суммарное количество муравьев на всех ядрах.

Таблица 1

р\а 0 0.5 1 2 5

0 0 0 0 0 0

1 0 0 0 0 0

2 0 0.01 0.30 0.25 0.4

5 0.06 0.54 0.86 0.86 0.60

10 0.60 0.80 0.94 0.83 0.72

Таблица 2

р\а 0 0.5 1 2 5

0 0 0 0 0 0

1 0 0 0 0 0

2 0 0 0.14 0.06 0

5 0 0.64 0.86 0.78 0.43

10 0.57 0.78 0.88 0.81 0.54

Таблица 3

р\а 0 0.5 1 2 5

0 0 0 0 0 0

1 0 0 0 0 0

2 0 0 0.12 0.01 0

5 0.05 0.68 0.90 0.81 0.35

10 0.60 0.85 0.97 0.91 0.63

Из этих таблиц можно сделать вывод, что при увеличении количества ядер, то есть отдельных популяций, качественно работа муравьиного алгоритма не изменяется, хотя и наблюдается некоторое изменение надежности для отдельных настроек. В то же время, существенно повышается скорость работы. Так при одном ядре один прогон занимает около 0.55 секунды, при двух ядрах это занимает около 0.27 секунды, а при четырех - около 0.16. То есть распараллеливание ГА позволяет существенно снизить время выполнения программы, не ухудшая надежности. Наибольшую надежность при одинаковых ресурсах показывает алгоритм со значениями параметров а = 1, в = 10.

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

Библиографические ссылки

1. Мудров В. И. Задача о коммивояжере. М. : Знание, 1969. С. 62.

2. Dorigo М. & Gambardella L. M.. Ant Colony System: A Cooperative Learning Approach to the Traveling Salesman Problem // IEEE Transactions on Evolutionary Computation, 1997, 1 (1): 53-66.

© Семенкина О. Е., 2012