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

Секция

«МАТЕМАТИЧЕСКИЕ МЕТОДЫ МОДЕЛИРОВАНИЯ, УПРАВЛЕНИЯ

И АНАЛИЗА ДАННЫХ»

УДК 669.713.7

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

ПОСЛЕДОВАТЕЛЬНЫЙ И ПАРАЛЛЕЛЬНЫЙ СТАЙНЫЙ АЛГОРИТМ ДЛЯ ЗАДАЧ УСЛОВНОЙ И БЕЗУСЛОВНОЙ ОПТИМИЗАЦИИ

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

Первоначально стайный алгоритм (Particle Swarm Optimization, PSO [1]) был создан для задач с вещественными переменными. Однако в настоящий момент использование алгоритмов расширилось вплоть до дискретных задач и задач с бинарными переменными. Чтобы расширить версию PSO, работающую с вещественными переменными, в бинарное/дискретное пространство, наиболее важная часть работы - определить смысл таких понятий как траектория и скорость в бинарном/дискретном пространстве. Создатели метода Кеннеди и Эберхарт использовали скорость и вероятность для определения, является ли состояние частицы xid нулем или единицей [2]. Они стягивали xid в точку, используя логистическую функцию s(v) = 1/(1 + exp(-v)). Если случайно сгенерированное число в пределах [0;1] меньше, чем s(vid), тогда xid

становится 1, иначе 0.

Для решения задач условной оптимизации были применены два штрафных метода: метод «смертельных» штрафов и метод динамических штрафов [3]. Метод «смертельных» штрафов просто отбрасывает недопустимые решения, т. е. решения, неудовлетворяющие ограничениям. Метод динамических штрафов использует штрафные функции. Исследование проводилось на тестовых задачах из [4], большинство из которых имеет только вещественные переменные и выпуклые допустимые области. Установлено, что для решения таких задач условной оптимизации стандартный и бинарный последовательные стайные алгоритмы эффективны и со смертельными, и с динамическими штрафами. Причем при использовании динамических штрафов PSO позволяет найти локальный экстремум функций за меньшее количество вычислений. Для бинарного «стайного» алгоритма требуется мало частиц и большое число поколений.

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

памяти и процессорного времени, а также тем обстоятельством, что компьютерная индустрия подошла к технологическому барьеру и дальнейшее увеличение тактовой частоты затруднено. Алгоритм Р80 обладает параллелизмом как на уровне организации работы алгоритма (популяции и их элементы взаимодействуют между собой, обмениваясь информацией), так и на уровне его компьютерной реализации. Параллелизм на уровне компьютерной реализации означает вычисление на параллельных системах или процессорах значений целевой функции для разных решений, параллельное выполнение алгоритма. А это пропорционально повышает скорость работы алгоритма. Параллелизм на уровне организации работы алгоритма ПСО может достигаться структурированием популяции решений. Оба подхода могут эффективно реализоваться на параллельных вычислителях, причем способы организации параллелизма могут быть различными.

Исследование эффективности последовательно «стайного» алгоритма на тестовых задачах условной и безусловной оптимизации показало, что для решения некоторых из них требовалось большое число частиц и/или поколений, а значит и большое число вычислений функции. Кроме того, увеличение размерности задачи также приводило к увеличению затрачиваемых ресурсов. В результате, время, необходимое для нахождения наилучшего решения, возрастало. Далее для тех же тестовых задач был разработан и применен параллельный Р80. Данный метод решения заключается в том, что задавалось какое-то число частиц, которое затем делилось по ядрам определенным образом. Итак, на каждом ядре генерировалась стая, для которой потом проводились расчеты. На каждом поколении ядра обменивались информацией, а именно, наилучшие значения, найденные для каждой популяции на каждом шаге, отправлялись на главный процессор, где сравнивались между собой. В итоге, из них для каждого поколения выбиралась наилучшее значение оптимизируемой функции, которое затем отправлялось на все процессоры и сохранялось. Эти действия повторялись заданное количество раз, после чего алгоритм завершал работу.

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

Так как стайный алгоритм является стохастическим, то его эффективность определялась усреднением по количеству прогонов. Критерием эффективности служила надежность решения задачи, т. е. процент прогонов, давших точное решение задачи. Проверялось, сколько потребуется ресурса для получения верного ответа с вероятностью 80-100 %. Для этого в задачах безусловной оптимизации проводилось изменение количества независимых переменных от 2 до 4. Длина переменных в случае бинарных частиц была равна 10. Для параллельного Р80 получены результаты работы алгоритма на двух и четырех процессорах. Изучалась зависимость эффективности алгоритма от выделяемого вычислительного ресурса, т. е. сочетания количества частиц и числа шагов развития популяции. После этого сравнивалась эффективность алгоритма в зависимости от количества ядер, то есть полученные для каждой задачи результаты фиксировались, а количество ядер менялось. Установлено, что надежность параллельного и последовательного Р80 совпадает. При этом число процессоров (ядер) не влияет на

надежность алгоритма. Кроме того, при решении задач как с вещественными, так и с бинарными частицами, последовательный PSO работал заметно медленнее параллельного.

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

1. Kennedy J., Eberhart R. Particle Swarm Optimization // Proceedings of IEEE International Conference on Neural Networks. IV. 1995. P. 1942-1948.

2. Kennedy, J. and Eberhart, R. C. A discrete binary version of the particle swarm algorithm. // Proceedings of the World Multiconference on Systemics, Cybernetics and Informatics 1997, Piscataway, NJ. 1997. Р. 4104-4109.

3. Eiben A. E., Smith J. E. Introduction to evolutionary computation. Springer, Berlin, 2003.

4. URL: http://www-optima.amp.i.kyoto-u. ac.jp/member/student/hedar

/Hedar_files/TestGO_files/Page422.htm.

© Ахмедова Ш. А., 2012

УДК 519.87

К. Ю. Брестер Научный руководитель - Е. С. Семенкин Сибирский государственный аэрокосмический университет имени академика М. Ф. Решетнева, Красноярск

О РЕШЕНИИ ЗАДАЧ МНОГОКРИТЕРИАЛЬНОЙ ОПТИМИЗАЦИИ САМОНАСТРАИВАЮЩИМСЯ ГЕНЕТИЧЕСКИМ АЛГОРИТМОМ

Рассматривается возможность решения задач многокритериальной оптимизации функций многих переменных с использованием самонастраивающегося генетического алгоритма. В программной системе реализован метод БРЕА, основанный на идее Парето-доминирования. На тестовых задачах показана работоспособность подхода.

Известно, что эффективность работы генетического алгоритма (ГА) во многом зависит от выбора значений входных параметров и комбинаций генетических операторов. Результаты оптимизации для одной и той же задачи могут значительно отличаться при варьировании настроек алгоритма. Неудачный выбор последних приводит к снижению эффективности ГА, поэтому целесообразно осуществлять настройку генетических операторов в ходе работы.

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

Схема метода 8РБЛ включает следующие этапы:

1. Инициализировать начальную популяцию Р.

2. Скопировать в промежуточное внешнее множество индивидов, чьи векторы решений недоминируемы относительно Р.

3. Удалить из промежуточного внешнего множества (Рг) индивидов, доминирумых относительно -РГ .

4. Если мощность Р' больше заданного значения, то применить механизм кластеризации.

5. Сформировать внешнее множество из индивидов Р'.

6. Применить генетические операторы: селекция, скрещивание, мутация.

7. Проверить выполнение критерия останова: если выполняется - завершить работу алгоритма, иначе -перейти к п. 2.

В среде Builder 6 на языке С++ была разработана программная система, реализующая стандартный генетический алгоритм для решения задач многокритериальной оптимизации методом SPEA. Для исследования эффективности алгоритма и работоспособности программной системы использовались тестовые задачи с оптимизируемыми функциями тридцати переменных (семь задач с двумя критериями и три - с тремя). Эти задачи были разработаны в научной среде для сравнения эффективности реализованных алгоритмов [1].

Результат работы алгоритма оценивался метрикой

IGD:

-v JLsS-ii&vffl

шл= -

,