Bees-Comments

jkff 23.08.2008 - 00:27

Многомерный случай?

А насколько хорошо применим этот алгоритм в случае чрезвычайно высокой размерности? Тысячи - десятки тысяч. Укладка графов, например. Когда особо много пчел себе позволить нельзя.

hmax 23.08.2008 - 09:08

Алгоритм действительно новый, его предложили в 2005 году: http://en.wikipedia.org/wiki/Artificial_Bee_Colony_Algorithm http://mf.erciyes.edu.tr/abc

И статья получилась интересной, спасибо.

Jenyay 23.08.2008 - 09:42

jkff

Я сам с такой задачей не сталкивался, поэтому даже не знаю что предложить. Здесь, наверное, не подойдет ни этот алгоритм, ни генетический. Можно попытаться как-нибудь закодировать решение, чтобы оно описывалось меньшим числом переменных, например, использовать отдельные биты в целых числах.

hmax

Спасибо за отзыв. Википедия почти дословно повторяет статьи из ссылок :)

Булат 16.09.2008 - 20:06

графики

Вы только не обижайтесь, но кто блин так графики делает? (Это я про "Рост целевой функции при одном запуске алгоритма" и следующий, "Рост целевой функции, усредненный по 10 запускам алгоритма"). Смотришь на этот график и видишь один белый квадрат, у которого что-то в уголке накорябано. Вы там отрежьте кусочек слева, чтоб он начинался не с 1-й итерации, а с 10-й, а ещё лучше --- сделайте по вертикальной оси логарифмическую систему координат. Там же явно какой-то экспоненциальный или степенной рост идёт.

Jenyay 16.09.2008 - 22:47

Булат,

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

Спасибо за идею.

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

DmB 08.10.2008 - 11:20

Отличная статья, да и сайт вообще.Спасибо! Было бы интересно сравнить возможности и эффективность пчелиного алгоритма и генетического, например.

Jenyay 08.10.2008 - 12:53

DmB

Сравнение есть в здесь. А из собственного опыта могу сказать, что алгоритм пчел находит глобальный экстремум там, где ГА сваливается в локальный.

Vlad 12.08.2009 - 15:36

не сходится :(

Сделал я программу, потестировал на одной функции (средней сложности, зато от 18 переменных.

По моим наблюдениям алгоритм пчел более капризный, чем ГА rolling eyes smiley

короткое описание эксперимента и 2 графика: http://lit999.narod.ru/soft/ga/index.html

Jenyay 12.08.2009 - 15:53

Вообще какой алгоритм лучше зависит от функции. Мне попадались функции, где однозначно лучше был ГА, а где-то пчелы.

bim 25.11.2009 - 13:54

Statja ochen' interesnaja, no rech' idet tolko ob analiticheskih funkzijah... A esli funkzyja - ksi-kvadrat ili max pravdopodobija? To est' esli funkzija diskretnaja, kak po-vashemu, podhodit etot algoritm?

Jenyay 25.11.2009 - 22:26

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

курсор 03.01.2010 - 08:53

пчелы это интересно, но результаты плохие сравните своих пчел с cma-es, pso или eda на наборе задач размерности от 10 + за популяризацию

Владимир 01.07.2010 - 15:32

ошибки в тексте

Аналогично рассчитываются интервалы для выбранных участков: [15; 32] [-41; 21]

И размер квадрата у Вас 20, не 10.

Jenyay 01.07.2010 - 21:10

Владимир, спасибо, сейчас исправлю.

wanderer 11.09.2010 - 18:07

The Bees Algorithm

[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 Поделитесь пожалуйста ссылкой на публикацию. Нигде нимогу найти...

Jenyay 19.09.2010 - 09:18

Re: The Bees Algorithm

Что-то я тоже уже не найду эту статью. Но, в принципе, в третьей статье, на которую я дал ссылку, все довольно понятно написано.

ink 22.11.2010 - 16:12

а кто-нибудь занимался многокитериальной задачей оптимизации алгоритмом пчел?

sad 25.01.2011 - 18:50

Полезная статья.Думаю вклчючить часть информации в свою курсовую, как на вас лучше сослаться?

Jenyay 25.01.2011 - 22:10

sad, как Вам удобнее, можете просто ссылку на сайт поставить.

sad 29.01.2011 - 17:53

Такое не очень-то приветствуется. А у вас есть печатные издания?

Jenyay 29.01.2011 - 18:25

sad, печатные издания есть, но не по самому алгоритму, а только с описанием того, где мы его использовали. Поэтому тогда проще не ссылаться на меня, все-таки не я алгоритм придумал.

Павел 29.04.2012 - 17:27

ink, я занимался

Олег 01.10.2013 - 09:12

Ограничения

Начал реализовывать данный алгоритм для своей задачи и наткнулся на проблему с ограничениями координат. Мне необходимо ввести ограничение вида: summ(Xn/summ(X))=1 т.е. координаты могут плавать(каждая в своих рамках) но их сумма постоянна. При этом 0,8*X'n<Xn<1,2*X'n Т.к. метод основан на случайном выборе координат, не получается их ограничить.

Денис 11.12.2013 - 16:37

Так а в чем все-таки новизна?

А чем он в принципе выигрышней того же простейшего "метода случайной стрельбы"?

Jenyay 11.12.2013 - 19:26

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

Фяка 06.08.2017 - 23:49

А что если мы не знаем правильный ответ ?

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

Jenyay 18.08.2017 - 17:44

Мы знаем, что мы ищем максимум или минимум. Поэтому, там, где значение меньше (или больше), там ответ лучше.