10

Click here to load reader

Агоритм пчёл и его сравнение с ГА

Embed Size (px)

DESCRIPTION

Описан довольно молодой метод оптимизации - метод искусственной пчелиной колонии, или алгоритм пчёл. Приведено его сравнение с другими алгоритмами.

Citation preview

Page 1: Агоритм пчёл и его сравнение с ГА

Алгоритм искусственной пчелиной колонии (Artificial Bee Colony Algorithm)

Алгоритм искусственной пчелиной колонии является довольно молодым

алгоритмом для нахождения глобальных экстремумов сложных многомерных

функций. Идея алгоритма (D. Karaboga, 2005) взята, как видно из названия, у

пчѐл, а именно из их поведения при поиске мест, где можно раздобыть как

можно больше нектара.

Колония пчѐл может преодолевать большие расстояния (более 10 км) в

различных направлениях одновременно в поисках источников питания.

Сначала из улея в случайном направлении вылетает какое-то количество пчѐл-

разведчиков, которые пытаются отыскать участки, где есть нектар. По

возвращению в улей разведчики сообщают остальным пчѐлам где и сколько

они нашли нектара. После этого на найденные участки отправляются другие

пчѐлы, причем, чем больше на данном участке предполагается найти нектара,

тем больше пчѐл летит в этом направлении.

Представим теперь, что расположение глобального экстремума - это

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

в других местах нектар есть, но меньше. Пчѐлы живут не на плоскости, где для

определения месторасположения участков достаточно знать две координаты, а

в многомерном пространстве, где каждая координата представляет собой один

параметр функции, которую надо оптимизировать. Найденное количество

нектара представляет собой значение целевой функции в этой точке (в случае,

если мы ищем глобальный максимум, если мы ищем глобальный минимум, то

целевую функцию достаточно умножить на -1).

Простейшая форма алгоритма пчѐл состоит в выполнении следующего

псевдокода:

1. Инициализировать популяцию случайными решениями.

2. Посчитать фитнесс популяции.

3. Запомнить лучшее решение.

4. Выбрать участки для исследования их окрестностей.

5. Отправить пчѐл в окрестности выбранных участков (больше пчѐл на

лучшие участки) и посчитать фитнесс.

6. Отправить оставшихся пчѐл на случайный поиск и посчитать их

фитнесс.

7. Перейти на пункт 3.

На первом шаге алгоритма в точки, описываемые случайными

координатами, отправляется s пчѐл-разведчиков. В зависимости от значения

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

вида перспективных участков на поверхности функции, вблизи которых

возможно располагается глобальный максимум. А именно:

Выбирается n лучших участков, где значения целевой функции

больше всех

Выбирается m так называемых выбранных участков, где значения

целевой функции меньше, чем на лучших участках, но эти участки

Page 2: Агоритм пчёл и его сравнение с ГА

всѐ равно являются неплохими с точки зрения значения целевой

функции.

В окрестность n лучших участков посылается N пчѐл, а в окрестность m

выбранных участков посылается M пчѐл, причем на каждый из лучших

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

участков. Величины N и M могут быть фиксированными или

пропорциональными целевой функции.

Важно отметить, что пчѐлы посылаются не в точности на то место, где

пчѐлы-разведчики нашли перспективные и лучшие места, а в их окрестность,

более точно координаты определяются случайным образом. Кроме того,

окрестность, которая определяет область, в которую может быть послана пчела,

можно уменьшать по мере увеличения номера итерации, чтобы постепенно

решение сходилось к самому "кончику" экстремума. С другой стороны, если

область уменьшать слишком быстро, то решение может застрять в локальном

экстремуме.

После того как пчѐлы были отправлены на лучшие и выбранные участки,

можно отправить тех же пчѐл-разведчиков на другие случайные точки.

Далее снова находятся n лучших и m выбранных участков, на этот раз

среди всех пчѐл из роя, а не только среди разведчиков. Запоминается самое

лучшее место на функции, значение больше которого пока не было найдено,

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

не сработает принятый критерий останова.

Рассмотрим работу алгоритма на примере поиска глобального максимума

функционала:

Знак «−» в данном случае стоит, чтобы у функции был глобальный

максимум, а не минимум. Глобальный (и единственный) максимум этой

функции находится в точке (0; 0), причем I(0, 0) = 0.

Остальные необходимые параметры:

Количество пчѐл-разведчиков: 10

Количество пчѐл, отправляемых на лучшие участки: 5

Количество пчѐл, отправляемых на другие выбранные участки: 2

Количество лучших участков: 2

Количество выбранных участков: 3

Размер области для каждого участка: 10

Пусть разведчики попали на следующие, участки (список отсортирован по

убыванию целевой функции):

I(15, 18) = -549

I(-30, -15) = -1125

I(22, -31) = -1445

I(18, 40) = -1924

I(-25, 47) = -2834

I(60, 86) = -10996

I(-91, -99) = -18082

Page 3: Агоритм пчёл и его сравнение с ГА

I(17, -136) = -18785

I(-152, -1) = -22501

I(-222, 157) = -73933

Сначала будут выбраны две лучшие точки:

I(15, 18) = -549

I(-30, -15) = -1125

Затем будут выбраны другие три перспективных участка:

I(22, -31) = -1445

I(18, 40) = -1924

I(-25, 47) = -2834

В окрестности лучших точек будут отправлены по 5 пчѐл:

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

участок будет:

[15 - 10 = 5; 15 + 10 = 25] для первой координаты

[18 - 10 = 8; 18 + 10 = 28] для второй координаты

И для второй точки:

[-30 - 10 = -40; -30 + 10 = -20] для первой координаты

[-15 - 10 = -25; -15 + 10 = -5] для второй координаты

Аналогично рассчитываются интервалы для выбранных участков:

[15; 32] [-41; 21]

[8; 28] [30; 50]

[-35; 15] [37; 57]

Заметьте, что здесь по каждой из координат размер области одинаков и

равен 10, в реальности это не обязательно так.

В каждый из лучших интервалов отправляем по 5 пчѐл, а на выбранные

участки по 2 пчелы. Причем, мы не будем менять положение пчѐл, нашедших

лучшие и выбранные участки, иначе есть вероятность того, что на следующей

итерации максимальное значение целевой функции будет хуже, чем на

предыдущем шаге.

Пусть теперь на первом лучшем участке мы имеем следующих пчѐл:

I(15, 18) = -549

I(7, 12) = -193

I(10, 10) = -100

I(16, 24) = -832

I(18, 24) = -900

Как видно, уже среди этих новых точек есть такие, которые лучше, чем

предыдущее решение.

Так же поступаем и со вторым лучшим участком, а затем аналогично и с

выбранными участками. После чего среди всех новых точек снова отмечаются

лучшие и выбранные, а процесс повторяется заново.

Для проверки надежности алгоритма была использована шестимерная

обратная функция Швефеля (inverted Schwefel’s function). На Рис. 2.21

представлен двухмерный вид функции, дающий представление о еѐ

многоэкстремальности.

Page 4: Агоритм пчёл и его сравнение с ГА

max = (420.9, 420.9, 420.9, 420.9, 420.9, 420.9,)

max) ≈ 2513.9

Для этого теста были приняты следующие параметры алгоритма: число

пчѐл-разведчиков s=500, количество лучших участков n=5, выбранных участков

m=10, количество пчѐл на лучший участок N=50, пчѐл на выбранный участок

M=30, размер области для каждого участка d=20.

Рис. 2.21. 2D функция Швефеля

Рис. 2.22. Изменение фитнеса (шестимерная функция Швефеля)

Page 5: Агоритм пчёл и его сравнение с ГА

Рис. 2.22 показывает, как изменяется значение фитнеса с количеством

исследованных точек. Результат усреднѐн для ста независимых запусков.

Можно видеть, что после приблизительно 3,000,000 рассчитанных точек

алгоритм пчѐл находит решение, близкое к теоретически полученному.

Алгоритм пчѐл был применѐн для расчета восьми функций эталонного

теста [2] и результаты сравнены с другими алгоритмами оптимизации.

Тестовые функции и их оптимумы представлены в таблице 1. Дополнительные

результаты и более детальный анализ алгоритма пчѐл в [1].

В таблице 2 приведены результаты, полученные для алгоритма пчѐл и

детерминированного симплекс-метода (SIMPSA) [2], стохастического метода

имитации отжига (NE SIMPSA) [2], генетического алгоритма (GA) [2] и метода

муравьиной колонии (ANTS) [2].

Таблица 1. Тестовые функции

№ Название

Функции Интервал Функция

Глобальный

оптимум

1 Де Джонг [-2.048,

2.048]

X(1,1)

F=3905.93

2 Гольдштей

н &Прайс [-2, 2]

X(0,-1)

F=3

3 Бранин [-5, 10]

X(-22/7,12.275)

X(22/7,2.275)

X(66/7,2.475)

F=0.3977272

4 Мартин &

Гэдди [0, 10]

X(5,5)

F=0

5 Розенброк (a) [-1.2, 1.2]

(б) [-10, 10]

X(1,1)

F=0

6 Розенброк [-1.2, 1.2] X(1,1,1,1)

F=0

7 Гипер-

сфера [-5.12, 5.12]

X(0,0,0,0,0,0)

F=0

8 Грайвенк [-512, 512]

X(0,0,0,0,0,0,

0,0,0,0)

F=10

Таблица 2. Результаты

ф-и

SIMPSA NE SIMPSA GA ANTS Bee Algorithm

успех

%

ср.колич.

оценок

успех

%

ср.колич.

оценок

успех

%

ср.колич.

оценок

успех

%

ср.колич.

оценок

успех

%

ср.колич.

оценок

1 *** *** *** *** 100 10160 100 6000 100 868

2 *** *** *** *** 100 5662 100 5330 100 999

3 *** *** *** *** 100 7325 100 1936 100 1657

4 *** *** *** *** 100 2844 100 1688 100 526

5а 100 10780 100 4508 100 10212 100 6842 100 631

5б 100 12500 100 5007 *** *** 100 7505 100 2306

6 99 21177 94 3053 *** *** 100 8471 100 28529

7 *** *** *** *** 100 15468 100 22050 100 7113

8 *** *** *** *** 100 200000 100 50000 100 1847

*** Нет данных

Page 6: Агоритм пчёл и его сравнение с ГА

Все результаты усреднены для ста независимых запусков алгоритмов.

Таблица 3 содержит эмпирически полученные параметры алгоритма пчѐл,

использовавшиеся в расчетах для различных функций.

Таблица 3. Параметры алгоритма

ф-и s n m N M d

1 10 3 1 2 4 0.1

2 20 3 1 1 13 0.1

3 30 5 1 2 3 0.5

4 20 3 1 1 10 0.5

5а 10 3 1 2 4 0.1

5б 6 3 1 1 4 0.5

6 20 6 1 5 8 0.1

7 8 3 1 1 2 0.3

8 10 3 2 4 7 5

Процесс оптимизации останавливался, когда различие между

максимальным значением полученного фитнесса и глобальным оптимумом

составляло меньше, чем 0.1 % оптимального значения или меньше чем 0.001.

Первой тестовой функцией была функция Де Джонга для которой

алгоритм пчѐл смог найти решение в 7 раз быстрее, чем алгоритм муравьев и

почти в 12 раз быстрее, чем ГА с успехам 100%. Второй функцией была

функция Гольдштейна и Прайса решение которой алгоритмом пчѐл было

найдено почти в 5 раз быстрее, чем алгоритмом муравьев и ГА снова с 100%

успехом. Для функции Бранина улучшение составило 15% по сравнению с

алгоритмом муравьев и 77% в сравнении с ГА также со 100% успехом.

Функции 5 и 6 – двумерная и четырехмерная, соответственно, функции

Розенброка. В случае двумерной функции алгоритм пчѐл обеспечивает 100%

успех и хорошее улучшение над другими методами (минимум в два раза

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

алгоритму пчѐл необходимо больше вычисление функционала для получения

оптимума со 100% успехом. NE SIMPSA смог найти оптимум, рассчитывая в 10

раз меньше функционалов, но успех был только 94%. Алгоритм муравьев

находит оптимум со 100% успехом и в 3.5 раза быстрее, чем алгоритм пчѐл.

Седьмая тестовая функция – шестимерная модель гиперсферы. Алгоритму пчѐл

понадобилась половина подсчетов функционала в сравнении с ГА и третья

часть от расчетов, требуемых алгоритмом муравьев. Восьмой функцией была

десятимерная функция. Алгоритм пчѐл смог достигнуть оптимума в 10 раз

быстрее ГА и 25 раз быстрее алгоритма муравьев с успехом 100%.

Приведенные экспериментальные результаты на основе

многоэкстремальных n-мерных функций показывают, что алгоритм пчѐл имеет

высокую надѐжность, обеспечивая 100% успешных исходов расчетов во всех

случаях. Алгоритм сходится к максимуму или минимуму, не застревая в

Page 7: Агоритм пчёл и его сравнение с ГА

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

сравнѐн на предмет скорости оптимизации и точности полученных результатов.

Одним из недостатков алгоритма является количество регулируемых

параметров. Однако значение параметров может быть получено через

проведение небольшого количества опытов.

Сравним работу генетического алгоритма и алгоритма пчѐл на примере

задачи идентификации RLC параметров заземляющих устройств (ЗУ) опор

воздушных линий с тросом импульсным методом [3].

Суть метода идентификации заключается в том, что вместо "импульсного"

сопротивления Rи=max(u)/max(i) или rи(t)=u(t)/i(t), ЗУ характеризуется реакцией

на скачкообразную функцию (переходное сопротивление). Это позволяет

использовать интеграл Дюамеля для определения напряжения u(t) ЗУ через

переходное сопротивление z(t) при произвольно токе i(t):

Последнее соотношение, рассматриваемое как интегральное уравнение для

z(t), дает возможность определить по экспериментально полученным u(t) и i(t)

величину z(t) ЗУ. Найденная таким образом величина z(t) инвариантна к форме

и длительности импульса тока молнии, а еѐ реализация методами синтеза

электрических цепей позволяет определить схему замещения и

электромагнитные параметры ЗУ.

Задача подбора параметров схемы замещения ЗУ относится к классу

обратных задач электротехники и сведена к задаче поиска минимума

функционала при линейных ограничениях на параметры минимизации. Пусть

схема замещения имеет вид, приведѐнный на рисунке 1. Источник ЭДС e(t), это

экспериментально полученное напряжение u(t). Задача – так подобрать

параметры схемы, чтобы погрешность между током iа(t) и экспериментально

полученным током iэ(t) была минимальна (рис. 2):

, .

Рис. 1 Рис. 2

Для алгоритма пчѐл были установлены следующие параметры: количество

пчѐл-разведчиков s=50, количество лучших участков n=4, выбранных участков

m=25,количество пчѐл на лучший участок N=20, пчѐл на выбранный участок

M=6. На рисунке 3 представлен типичной интерфейс программы

Page 8: Агоритм пчёл и его сравнение с ГА

«ABC Optimization» для расчетов по методу пчѐл. В таблице параметров

электрической схемы можно увидеть заданную область определения еѐ

элементов (столбцы «min» и «max»). Все величины задаются в единицах СИ.

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

размер элиты 40, количество хромосом, получаемых кроссингом 50,

коэффициент мутации 0.85.

Рис. 3. Интерфейс программы «ABC Optimization»

На рисунке 4 представлен график изменения фитнесса для обоих

алгоритмов. Результат усреднѐн для 10 независимых запусков. Можно видеть,

что пересчитав 2000 точек (предлагаемых алгоритмом решений) алгоритм пчѐл

добивается значительных улучшений в задаче поиска минимума.

Приблизительно 4000 точек необходимо алгоритму нахождения приемлемого

результата.

Для генетического алгоритма характерна зона "простоя", когда фитнесс

почти не улучшается, однако значения параметров схемы изменяются. Для

данной задачи, зона "простоя" и зона активного снижения фитнеса почти

одинаковы и на каждую приходится около 2500 точек.

Несмотря на то, что алгоритм пчѐл резко снижает фитнесс сразу после

начала расчета, "установившийся режим" для обоих методов наступает почти

одновременно (приблизительно 5000 точек). Однако для различных задач

Page 9: Агоритм пчёл и его сравнение с ГА

требуются различные точности решений, и пока ГА находится в зоне "простоя",

алгоритм пчѐл может уже найти приемлемое решение. Более того, случайные

методы поиска комбинируются с детерминированными методами, когда после

каждой итерации происходит градиентный спуск. В таких задачах, алгоритм

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

начале расчѐта.

Рис. 4. Сравнение эффективности ГА и алгоритма пчѐл

Следует отметить, что сравнение различных методов между собой носит

несколько условный характер, т.к. скорость сходимости алгоритма зависит от

принятых для него параметров. Задача подбора этих параметров может в свою

очередь являться задачей оптимизации. Из рисунка 4 также следует, что

перспективным является комбинирование двух методов, когда расчет

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

генетическим алгоритмом.

На рисунке 5 показаны значения элементов электрической схемы,

найденные алгоритмом пчѐл, и графики экспериментального и расчетного тока.

Средняя погрешность между токами ave=7%. Для улучшение результата можно

применить градиентный спуск с начальными параметрами, равными

найденным по алгоритму пчѐл.

Page 10: Агоритм пчёл и его сравнение с ГА

Рис. 5. Графики токов и схема замещения

Высокая корреляция между токами iа и iэ позволяет использовать схему на

рис. 5 как схему замещения ЗУ. Такая схема является инвариантной для токов

любой частоты и формы.

ЛИТЕРАТУРА

1. Pham DT, Ghanbarzadeh A, Koc E, Otri S, Rahim S and Zaidi M. The Bees

Algorithm. Technical Note, Manufacturing Engineering Centre, Cardiff

University, UK, 2005.

2. Mathur M, Karale SB, Priye S, Jayaraman VK and Kulkarni BD. Ant Colony

Approach to Continuous Function Optimization. Ind. Eng. Chem. Res. 39(10)

(2000) 3814-3822.

3. Н.В. Коровкин, С.И. Кривошеев, С.Л. Шишигин, К.И. Нетреба и другие.

“Идентификация RLC параметров заземляющих устройств опор

воздушных линий с тросом импульсным методом”. Восьмой

международный симпозиум по электромагнитной совместимости и

электромагнитной экологии. 16-19 июня 2009, СПбГЭТУ «ЛЭТИ»

(Санкт-Петербургский государственный электротехнический

университет), Санкт-Петербург, с. 83-86ru