Математические методы моделирования, управления и анализа данных
УДК 519.68
О. Е. Семенкина
Сибирский государственный аэрокосмический университет имени академика М. Ф. Решетнева, Россия, Красноярск
ПАРАЛЛЕЛЬНЫЕ ГЕНЕТИЧЕСКИЙ И МУРАВЬИНЫЙ АЛГОРИТМЫ ДЛЯ РЕШЕНИЯ ЗАДАЧИ КОММИВОЯЖЕРА
Рассматривается распараллеливание генетического алгоритма и алгоритма муравьиных колоний при решении задачи коммивояжера, зависимость их эффективности от количества популяций и коэффициента миграции.
Одними из наиболее интересных и актуальных методов решения задач оптимизации являются стохастические алгоритмы, работающие одновременно с большим количеством текущих решений. Рассмотрим генетический (ГА, GA, Genetic Algorithm) [1] и муравьиный (ACO, Ant Colony Optimization) [2] алгоритмы, а также их параллельные версии. В основе обоих алгоритмов лежат идеи, заимствованные у природы. Генетический алгоритм базируется на некоторых принципах эволюции, муравьиный же - на поведении и организации колонии муравьев.
Исследование эффективности муравьиного и генетического алгоритмов проводилось на известной задаче коммивояжера (TSP, Traveling Salesman Problem). Алгоритмы были реализованы на языке С++ с использованием библиотеки MPICH2 для распараллеливания.
В связи с тем, что в генетическом алгоритме для задачи коммивояжера хромосома представляет собой перестановку из n чисел (номера городов), стандартные операторы алгоритма несколько модифицируются. И все же остается большое число настраиваемых параметров, таких как вероятность мутации, тип селекции (турнирная, ранговая, пропорциональная), размер популяции и количество поколений. В муравьином алгоритме решение также представляет собой перестановку n чисел. На каждом шаге муравьи выбирают следующий город для перехода, руководствуясь списком табу (то есть списком уже посещенных городов) и матрицей феромонов, т. е. историей посещения тех или иных городов муравьями, каждый из которых оставляет «след» - некоторое количество фермента. Муравьиный алгоритм, также гак и ГА, имеет существенное количество настраиваемых параметров, а именно: количество муравьев (m), число итераций, коэффициент испарения следа фермента (р), относительную важность предыдущего опыта (а) и относительную важность расстояния между городами (Р).
Генетический и муравьиный алгоритмы показывают высокую эффективность, однако требуют значительных вычислительных ресурсов. Для решения этой проблемы, а также для снижения вероятности преждевременной сходимости к локальному оптимуму, стимуляции разнообразия и поиска альтернативных решений используется распараллеливание.
Существует три главных типа параллельных генетических алгоритмов [3]: глобальные однопопуляци-
онные, однопопуляционные и многопопуляционные. В данной статье рассмотрен наиболее интересный тип параллельных алгоритмов - многопопуляционный (или многообщинный), являющимся более сложным, так как он состоит из нескольких подпопуляций, которые периодически обмениваются индивидуумами. Этот обмен индивидуумами называется миграцией и управляется несколькими параметрами - интервал между обменом и количество мигрирующих индивидов. Многообщинные ГА, хотя и очень популярны, но достаточны трудны для понимания, потому что эффекты миграции остаются не полностью исследованными.
В разработанных программах на каждом ядре компьютера развивается собственная независимая популяция, которая обменивается с остальными лучшими индивидами через определенное количество поколений. Топология их взаимодействия имеет вид клики («каждый с каждым»). С помощью разработанной программы параллельного генетического и муравьиного алгоритмов на тестовой задаче (решетка 5 на 5 городов) была исследована надежность алгоритмов при различных настройках параметров и при различном количестве ядер, а соответственно, и популяций.
В результате проведенных исследований можно сделать вывод, что при увеличении количества ядер, т. е. отдельных популяций, качественно работа генетического и муравьиного алгоритмов не изменяется, хотя и наблюдается некоторое изменение надежности для отдельных настроек. В то же время существенно повышается скорость работы. Так при одном ядре один прогон ГА занимает около 30 с, при двух ядрах -около 16 с, а при четырех - около 8 с. Один прогон муравьиного алгоритма при одном ядре занимает около 0,55 с, при двух ядрах -около 0,27 с, а при четырех - около 0,16.
Таким образом, распараллеливание ГА и ACO позволяет существенно сократить время выполнения программы, не снижая надежности. При этом наибольшую надежность при одинаковом количестве ресурсов генетический алгоритм показывает при низкой мутации и ранговой селекции с параметром X = 0,8 (экспоненциальное ранжирование) или турнирной селекцией с размером турнира k = 8. Муравьиный алгоритм наиболее эффективен при a = 1, в = 10. Итак, можно сказать, что при достаточном коэффици-
Решетневскце чтения
енте миграции распараллеливание не ухудшает работу алгоритмов. Однако стоит точнее выяснить необходимый коэффициент миграции для более надежной работы алгоритмов.
На тестовой задаче при фиксированном количестве ресурсов была рассмотрена эффективность ГА и ACO на четырех ядрах для различных настроек и различной длины интервала обмена одним лучшим индивидом. Результаты показывают, что при увеличении интервала между миграциями, надежность алгоритма увеличивается до определенного предела, после чего начинает убывать. Это можно объяснить тем, что при малом коэффициенте миграции популяции развиваются изолированно друг от друга, а при большом коэффициенте нет существенной разницы с одной большой популяцией. Это подтверждает известный в генетике принцип, что благоприятные признаки
распространяются быстрее, когда общины маленькие, чем когда они большие.
В дальнейшем предполагается разработать более эффективные методы распараллеливания алгоритмов, позволяющие ускорить его работу за счет эффектив -ного взаимодействия разнородных популяций, развивающихся на разных ядрах и различных топологиях обмена индивидами.
Библиографические ссылки
1. Holland J. H. Adaptation in Natural and Artificial Systems // The University of Michigan Press. 1975.
2. Dorigo М., Gambardella L. M. Ant Colony System: A Cooperative Learning Approach to the Traveling Salesman Problem // IEEE Transactions on Evolutionary Computation. 1997. P. 53-66.
3. Cantu-Paz E. A Survey of Parallel Genetic Algorithms // IlliGAL Report. 1997.
O. E. Semenkina
Siberian State Aerospace University named after academician M. F. Reshetnev, Russia, Krasnoyarsk
PARALLEL GENETIC AND ANT ALGORITHMS FOR TRAVELING SALESMAN PROBLEM SOLVING
The parallelization of genetic and ant colony algorithms for solving the traveling salesman problem is considered, the dependence of algorithms' efficiency on the number ofpopulations and the rate of migration is shown.
© Семенкнна О. E, 2012
УДК 519.234
Р. Б. Сергиенко
Сибирский государственный аэрокосмический университет имени академика М. Ф. Решетнева, Россия, Красноярск
РЕШЕНИЕ ЗАДАЧИ ИДЕНТИФИКАЦИИ ГОВОРЯЩЕГО С ИСПОЛЬЗОВАНИЕМ НЕЧЕТКОГО КЛАССИФИКАТОРА
Рассматривается задача распознавания говорящего. В качестве исходных данных взята задача «Японские гласные» из UC1 репозитория. Эта задача была решена с использованием нечеткого классификатора как метода классификации, способного извлекать причинно-следственные закономерности из исходных данных. Были проведены численные исследования метода формирования нечеткого классификатора для различного числа говорящих и различного числа используемых нечетких правил. Метод показал приемлемую эффективность на тестовой выборке: от 0,985 для двух говорящих до 0,786 для девяти.
Задача распознавания говорящего одна из актуальных прикладных задач классификации. В качестве инструмента классификации предлагается использовать нечеткий классификатор [1], способный помимо решения собственно задачи классификации также извлекать причинно-следственные закономерности в виде нечетких правил. При этом предлагается применять новый многошаговый метод формирования нечеткого классификатора с использованием самонастраивающихся коэволюционных алгоритмов. Многошаговый метод формирования нечеткого классификатора основан на многократном повторении ранее разработанного метода формирования нечеткого классификатора [2].
В качестве исходных данных для решения задачи распознавания говорящего взята задача Japanese Vowels (Японские гласные) из UCI репозитория [3]. Задача состоит в том, что девять мужчин-носителей японского языка многократно произносят гласные звуки /ae/. Далее речь преобразуется во временной ряд, характеризирующийся двенадцатью спектральными коэффициентами в каждый дискретный период времени. Длительность временного ряда составляет от 7 до 29 дискретных периодов времени. Объем обучающей выборки составляет 270 элементов (по 30 экземпляров для каждого из девяти говорящих). Объем тестовой выборки - 370 элементов. Для снижения размерности решаемой задачи классифика-