A new population-based search algorithm called the Bees Algorithm (BA) is presented. The algorithm mimics the food foraging behaviour of swarms of honey bees. In its basic version, the algorithm performs a kind of neighbourhood search combined with random search and can be used for both combinatorial optimisation and functional optimisation.
CV2015. Лекция 4. Классификация изображений и введение в машинное обучение.
Метод искусственной пчелиной колонии, алгоритм пчёл
1. 30/01/2015 1Нетреба Кирилл, СПбГПУ
Алгоритм пчёл
Нетреба Кирилл
кафедра «Теоретические основы
электротехники», ГОУ СПбГПУ
Оригинальный Инструмент для
Сложных Задач Оптимизации
2. 30/01/2015 2
План доклада
1. Введение
2. Пчёлы в природе
3. Реализация алгоритма
4. Сравнение с другими алгоритмами
5. Заключение
Нетреба Кирилл, СПбГПУ
Алгоритм пчёл
3. 30/01/2015 3Нетреба Кирилл, СПбГПУ
Алгоритм пчёл
Введение
Многие многокритериальные задачи оптимизации - NP-сложные:
f(x, y, z, a, b, g, h, m, n, s, r, sto-o-p!!!... x1, y1, z1…
Требуют БОЛЬШИХ
вычислительных ресурсов
а может SOAs?! ☺
?
time
4. 30/01/2015 4
Оптимизация на основе интеллекта роя
Нетреба Кирилл, СПбГПУ
Алгоритм пчёл
SOAs
Swarm-based Optimization Algorithms
имитируют методы, используемые в природе
SOAs методы прямого поиска
популяция решений единственное решение
К SOAs относятся:
Genetic Algorithm (GA)
Ant Colony Optimization
(ACO) algorithm
Particle Swarm Optimization
(PSO) algorithm
Введение
5. 30/01/2015 5
Пчёлы в природе
Нетреба Кирилл, СПбГПУ
Алгоритм пчёл
1 кг мёда = 2–4 млн. цветков = 120–150 тыс. нош
по 20–30 мг каждая
6. 30/01/2015 6Нетреба Кирилл, СПбГПУ
Алгоритм пчёл
направление
расстояние
количество
10км
scout
Пчёлы в природе
Скауты летают в
случайных направлениях
много нектара много пчёл
8. 30/01/2015 8
Реализация
Нетреба Кирилл, СПбГПУ
Алгоритм пчёл
1) пчелы-разведчики: s
2) лучших участков: n
3) выбранных участков: m
4) пчел на лучших участках: N
5) пчел на выбранных участках: M
6) размер окрестности: d
ПАРАМЕТРЫ
Инициализировать s
случайных решений
Посчитать
фитнес-функцию
Выбрать n “лучших” и m
“выбранных” участков
Сохранить
лучшее решение
СХЕМА
1
2
Две пчёлы попали на один и тот же участок:
1) две пчелы нашли два разных пересекающихся
участка, и оба этих участка отмечаются как
лучшие или выбранные
2) это один участок, центр которого находится в
точке, которая соответствует пчеле с большим
значением целевой функции.
1
2
9. 30/01/2015 9
Реализация
Нетреба Кирилл, СПбГПУ
Алгоритм пчёл
1) пчелы-разведчики: s
2) лучших участков: n
3) выбранных участков: m
4) пчел на лучших участках: N
5) пчел на выбранных участках: M
6) размер окрестности: d
ПАРАМЕТРЫ
Инициализировать s
случайных решений
Посчитать
фитнес-функцию
Выбрать n “лучших” и m
“выбранных” участков
Инициализация N решений
для каждого ni-го участка
Инициализация M решений
для каждого mi-го участка
Инициализировать s
случайных решений
Сохранить
лучшее решение
СХЕМА
d
d
xopt
1
2
xopt
Область, в которую может быть послана пчела
постоянна
уменьшается по мере увеличения
номера итерации
10. 30/01/2015 10
Реализация
Нетреба Кирилл, СПбГПУ
Алгоритм пчёл
1) пчелы-разведчики:
2) лучших участков:
3) выбранных участков:
4) пчел на лучших участках:
5) пчел на выбранных участках:
6) размер окрестности:
ПАРАМЕТРЫ ПРИМЕР
f (0,0) = 0
2 2
( , ) ( )f x y x y
f(15, 18) = -549
f(-30, -15) = -1125
f(22, -31) = -1445
f(18, 40) = -1924
f(-25, 47) = -2834
f(60, 86) = -10996
f(-91, -99) = -18082
f(17, -136) = -18785
f(-152, -1) = -22501
f(-222, 157) = -73933
Окрестность для первой точки:
[15 - 10 = 5; 15 + 10 = 25] для первой координаты
[18 - 10 = 8; 18 + 10 = 28] для второй координаты
И для второй точки:
[-30 - 10 = -40; -30 + 10 = -20] для первой координаты
[-15 - 10 = -25; -15 + 10 = -5] для второй координаты
10
3
5
2
10
2
11. 30/01/2015 11
Реализация
Нетреба Кирилл, СПбГПУ
Алгоритм пчёл
1) пчелы-разведчики:
2) лучших участков:
3) выбранных участков:
4) пчел на лучших участках:
5) пчел на выбранных участках:
6) размер окрестности:
ПАРАМЕТРЫ ПРИМЕР
f (0,0) = 0
2 2
( , ) ( )f x y x y
f(15, 18) = -549
f(-30, -15) = -1125
f(22, -31) = -1445
f(18, 40) = -1924
f(-25, 47) = -2834
f(60, 86) = -10996
f(-91, -99) = -18082
f(17, -136) = -18785
f(-152, -1) = -22501
f(-222, 157) = -73933
10
3
5
2
10
2
На первом лучшем участке имеем:
f(15, 18) = -549
f(7, 12) = -193
f(10, 10) = -100
f(16, 24) = -832
f(18, 24) = -900
12. 30/01/2015 12
Реализация
Нетреба Кирилл, СПбГПУ
Алгоритм пчёл
ПРИМЕР 2
2
1
1
( ,..., )
n
n i
i
f x x x
- лучшие решения
- выбранные решения
- пчелы-разведчики
(гиперсфера)
13. 30/01/2015 13
Реализация
Нетреба Кирилл, СПбГПУ
Алгоритм пчёл
ПРИМЕР 3 - НАДЁЖНОСТЬ
6
1
( ) sin( )i i
i
f x x x
(Inverted Schwefel's function)
-500 ≤ xi ≤ 500
f (xmax) ≈ 2513.9
xmax = (420.9, 420.9)
Количество посчитанных функционалов
Обратная функция Швефеля
Фитнесс
Параметры алгоритма:
s = 500 (разведчиков)
n = 5 (лучших участков)
m = 10 (выбранных участков)
N = 50 (пчёл на лучший участок)
M = 30 (пчёл на выбранный участок)
d = 20 (размер окрестности)2D Schwefel’s function
14. 30/01/2015 14
Сравнение с другими алгоритмами
Нетреба Кирилл, СПбГПУ
Алгоритм пчёл
Алгоритм пчёл был
применён для 8
тестовых функция и
результат сравнён с
решениями других
алгоритмов.
15. 30/01/2015 15Нетреба Кирилл, СПбГПУ
Алгоритм пчёл
Таблица 1. Тестируемые функции
No Название ф-и Интервал Функция Глобальный оптимум
Сравнение
17. 30/01/2015 17
Заключение
Нетреба Кирилл, СПбГПУ
Алгоритм пчёл
• Алгоритм
робастный, дает 100% результат
не застревает в локальных оптимумах
превосходит другие алгоритмы
• Недостаток алгоритма - количество настраиваемых
параметров
• Дальнейшую работы следует направить на сокращение
количества параметров алгоритма и ассимиляцию наиболее
удачных механизмов
напомню, что в конструкторе все параметры пчелы должны инициализироваться случайным образом, поэтому получается, что при создании роя пчел, все они выступают в роли пчел-разведчиков, которых отправляют на случайные точки. С точки зрения алгоритма это не обязательно должно быть так. Можно в первый раз отправить только заданное количество пчел-разведчиков, а пчел, предназначенных для лучших и выбранных участков, отправлять на следующих итерациях. Но в данном случае в самом начале на случайные места отправляются все пчелы, участвующие в алгоритме