![]() | ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | More Sharing Services |
От: | HunteX![]() | ||
Дата: | 02.03.11 18:02 |
Всем привет! Почитал про данный алгоритм тут http://habrahabr.ru/blogs/algorithm/105639/ и тут http://illumium.org/node/11 Говорится, что вроде алгоритм довольно прост, вот только я никак не могу понять его ((( Может кто ПРОСТЕНЬКИЙ пример алгоритма приведет ну или хотя бы ПОНЯТНЫЙ док с псевдокодом ... Спасибо! |
Re: Particle Swarm Optimization | ![]() ![]() ![]() ![]() ![]() | More Sharing Services |
От: | Sergey Chadov![]() | ||
Дата: | 03.03.11 08:57 | ||
Оценка: | 3 (1) |
Здравствуйте, HunteX, Вы писали: HX>Всем привет! Почитал про данный алгоритм HX>тут http://habrahabr.ru/blogs/algorithm/105639/ HX>и тут http://illumium.org/node/11 HX>Говорится, что вроде алгоритм довольно прост, вот только я никак не могу понять его ((( Может кто ПРОСТЕНЬКИЙ пример алгоритма приведет ну или хотя бы ПОНЯТНЫЙ док с псевдокодом ... HX>Спасибо! википедия? Если кратко и своими словами — есть толпа частиц, обладающих координатами и скоростью. На каждом шаге скорость частиц изменяется с учетом направления на лучшее решение, найденное данной частицей, лучшее решение найденное всеми частицами и пары случайных величин: v = w*v + c_1*r_1*(X — x) + c_2*r_2*(G — x) , где w,c_1,c_2 — некоторые коэффициенты(константы в классическом варианте), r_1, r_2 — случайные величины, X — лучшее решение, найденное текущей частицей до этого шага, G — лучшее решение, найденное всеми частицами до этого шага. Потом все частицы изменяют свои координаты в соответствии со скоростью и обмениваются G. И так они летают пока G не будет нас устраивать. Могу в принципе поискать у себя реализацию, на CUDA в том числе |
Re[2]: Particle Swarm Optimization | ![]() ![]() ![]() ![]() ![]() | More Sharing Services |
От: | HunteX![]() | ||
Дата: | 03.03.11 09:39 |
Здравствуйте, Sergey Chadov, Вы писали: SC>Здравствуйте, HunteX, Вы писали: HX>>Всем привет! Почитал про данный алгоритм HX>>тут http://habrahabr.ru/blogs/algorithm/105639/ HX>>и тут http://illumium.org/node/11 HX>>Говорится, что вроде алгоритм довольно прост, вот только я никак не могу понять его ((( Может кто ПРОСТЕНЬКИЙ пример алгоритма приведет ну или хотя бы ПОНЯТНЫЙ док с псевдокодом ... HX>>Спасибо! SC> википедия? SC>Если кратко и своими словами — есть толпа частиц, обладающих координатами и скоростью. На каждом шаге скорость частиц изменяется с учетом направления на лучшее решение, найденное данной частицей, лучшее решение найденное всеми частицами и пары случайных величин: v = w*v + c_1*r_1*(X — x) + c_2*r_2*(G — x) , где w,c_1,c_2 — некоторые коэффициенты(константы в классическом варианте), r_1, r_2 — случайные величины, X — лучшее решение, найденное текущей частицей до этого шага, G — лучшее решение, найденное всеми частицами до этого шага. SC>Потом все частицы изменяют свои координаты в соответствии со скоростью и обмениваются G. SC>И так они летают пока G не будет нас устраивать. SC>Могу в принципе поискать у себя реализацию, на CUDA в том числе Ого! Спасибо, теперь более-менее ясно ... только что за переменная 'x' ? Хотелось бы реализицию алгоритма попроще, без всяких плюшек и наворотов. |
Re[3]: Particle Swarm Optimization | ![]() ![]() ![]() ![]() ![]() | More Sharing Services |
От: | Sergey Chadov![]() | ||
Дата: | 03.03.11 09:57 | ||
Оценка: | 3 (1) |
Здравствуйте, HunteX, Вы писали: HX>Ого! Спасибо, теперь более-менее ясно ... только что за переменная 'x' ? Хотелось бы реализицию алгоритма попроще, без всяких плюшек и наворотов. В данном случае x — координата частицы, v — ее скорость. То есть на самом деле в n-мерном пространстве будет n иксов и n скоростей на частицу |
Re[3]: Particle Swarm Optimization | ![]() ![]() ![]() ![]() ![]() | More Sharing Services |
От: | Sergey Chadov![]() | ||
Дата: | 03.03.11 10:08 | ||
Оценка: | 3 (1) |
Здравствуйте, HunteX, Вы писали: HX>Ого! Спасибо, теперь более-менее ясно ... только что за переменная 'x' ? Хотелось бы реализицию алгоритма попроще, без всяких плюшек и наворотов. Кстати, я бы еще советовал посмотреть на метод дифференциальной эволюции (differential evolution), он еще проще и как правило менее капризный, чем pso. Хотя конечно тут от задачи зависит |
Re[4]: Particle Swarm Optimization | ![]() ![]() ![]() ![]() ![]() | More Sharing Services |
От: | HunteX![]() | ||
Дата: | 03.03.11 10:10 |
Здравствуйте, Sergey Chadov, Вы писали: SC>Здравствуйте, HunteX, Вы писали: HX>>Ого! Спасибо, теперь более-менее ясно ... только что за переменная 'x' ? Хотелось бы реализицию алгоритма попроще, без всяких плюшек и наворотов. SC>Кстати, я бы еще советовал посмотреть на метод дифференциальной эволюции (differential evolution), он еще проще и как правило менее капризный, чем pso. Хотя конечно тут от задачи зависит Спасибо за совет, Сергей, но мне небходима реализация именно PSO. Поделитесь ? ![]() |
Re[5]: Particle Swarm Optimization | ![]() ![]() ![]() ![]() ![]() | More Sharing Services |
От: | Sergey Chadov![]() | ||
Дата: | 04.03.11 05:51 | ||
Оценка: | 3 (1) |
Здравствуйте, HunteX, Вы писали: HX>>>Ого! Спасибо, теперь более-менее ясно ... только что за переменная 'x' ? Хотелось бы реализицию алгоритма попроще, без всяких плюшек и наворотов. SC>>Кстати, я бы еще советовал посмотреть на метод дифференциальной эволюции (differential evolution), он еще проще и как правило менее капризный, чем pso. Хотя конечно тут от задачи зависит HX>Спасибо за совет, Сергей, но мне небходима реализация именно PSO. Поделитесь ? ![]() Нормальную реализацию я что-то найти не могу Вот что нашел. Сразу говорю — это не production код, мне просто нужно было быстро сделать(из серии 'завтра конференция — сделай что-нибудь'), поэтому качество так себе, ну да для понимания сойдет
|
Re[6]: Particle Swarm Optimization | ![]() ![]() ![]() ![]() ![]() | More Sharing Services |
От: | HunteX![]() | ||
Дата: | 04.03.11 07:49 |
Отлично! Огромное спасибо за помощь! |
Re: Particle Swarm Optimization | ![]() ![]() ![]() ![]() ![]() | More Sharing Services |
От: | icegood![]() | ||
Дата: | 04.03.11 14:14 |
Здравствуйте, HunteX, Вы писали: HX>Всем привет! Почитал про данный алгоритм HX>тут http://habrahabr.ru/blogs/algorithm/105639/ HX>и тут http://illumium.org/node/11 HX>Говорится, что вроде алгоритм довольно прост, вот только я никак не могу понять его ((( Может кто ПРОСТЕНЬКИЙ пример алгоритма приведет ну или хотя бы ПОНЯТНЫЙ док с псевдокодом ... HX>Спасибо! Очень интересно... Жаль, не имею на хабре id-шника... А так, интересно, кто-нибудь реализовывал что-нить подобное в Monte Carlo моделях движения частиц на решетке с ограниченным числом вакантных мест? |
Re: Particle Swarm Optimization | ![]() ![]() ![]() ![]() ![]() | More Sharing Services |
От: | minorlogic![]() | ||
Дата: | 06.03.11 15:35 |
Недавно искал простой алгоритм оптимизации. Пробовал PS и (монте карло + градиент + мутации) оказалось что PS в моих задачах работал на порядки медленнее. Для себя описаний , в каких условиях PS работает оптимально, не нашел. ![]() Поделитесь инфой если что то накопаете плс ![]() ... << RSDN@Home 1.2.0 alpha 4 rev. 1237>> |
Ищу работу, 3D, SLAM, computer graphics/vision. |