- Метод роя частиц
-
Метод роя частиц (МРЧ) — метод численной оптимизации, для использования которого не требуется знать точного градиента оптимизируемой функции. МРЧ был доказан Кеннеди, Эберхартом и Ши[1] [2] и изначально предназначался для имитации социального поведения. Алгоритм был упрощён, и было замечено, что он пригоден для выполнения оптимизации. Книга Кеннеди и Эберхарта [3] описывает многие философские аспекты МРЧ и так называемого роевого интеллекта. Обширное исследование приложений МРЧ сделано Поли [4] [5]. МРЧ оптимизирует функцию, поддерживая популяцию возможных решений, называемых частицами, и перемещая эти частицы в пространстве решений согласно простой формуле. Перемещения подчиняются принципу наилучшего найденного в этом пространстве положения, которое постоянно изменяется при нахождении частицами более выгодных положений.
Содержание
Алгоритм
Пусть f: ℝn → ℝ — целевая функция, которую требуется минимизировать, S — количество частиц в рое, каждой из которых сопоставлена координата xi ∈ ℝn в пространстве решений и скорость vi ∈ ℝn. Пусть также pi — лучшее из известных положений частицы i, а g — наилучшее известное состояние роя в целом. Тогда общий вид метода роя частиц таков.
- Для каждой частицы i = 1, …, S сделать:
- Сгенерировать начальное положение частицы с помощью случайного вектора xi ~ U(blo, bup), имеющего многомерное равномерное распределение. blo и bup — нижняя и верхняя границы пространства решений соответственно.
- Присвоить лучшему известному положению частицы его начальное значение: pi ← xi.
- Если (f(pi) < f(g)), то обновить наилучшее известное состояние роя: g ← pi.
- Присвоить значение скорости частицы: vi ~ U(-(bup-blo), (bup-blo)).
- Пока не выполнен критерий остановки (например, достижение заданного числа итераций или необходимого значения целевой функции), повторять:
- Для каждой частицы i = 1, …, S сделать:
- Сгенерировать случайные векторы rp, rg ~ U(0,1).
- Обновить скорость частицы: vi ← ω vi + φp rp × (pi-xi) + φg rg × (g-xi), где операция × означает покомпонентное умножение.
- Обновить положение частицы переносом xi на вектор скорости: xi ← xi + vi. Заметим, что этот шаг выполняется вне зависимости от улучшения значения целевой функции.
- Если (f(xi) < f(pi)), то делать:
- Обновить лучшее известное положение частицы: pi ← xi.
- Если (f(pi) < f(g)), то обновить лучшее известное состояние роя в целом: g ← pi.
- Для каждой частицы i = 1, …, S сделать:
- Теперь g содержит лучшее из найденных решений.
Параметры ω, φp, и φg выбираются вычислителем и определяют поведение и эффективность метода в целом. Эти параметры составляют предмет многих исследований (см. ниже).
Подбор параметров
Выбор оптимальных параметров метода роя частиц — тема значительного количества исследовательских работ, см., например, работы Ши и Эберхарта [6] [7], Карлисла и Дозера [8], ван ден Берга [9], Клерка и Кеннеди [10], Трелеа [11], Браттона и Блеквэлла [12], а также Эверса [13].
Простой и эффективный путь подбора параметров метода предложен Педерсеном и другими авторами. [14] [15] Они же провели численные эксперименты с различными оптимизациоными проблемами и параметрами. Техника выбора этих параметров называется мета-оптимизацией, так как другой оптимизационный алгоритм используется для «настройки» параметров МРЧ. Входные параметры МРЧ с наилучшей производительностью оказались противоречащими основным принципам, описанным в литературе, и часто дают удовлетворительные результаты оптимизации для простых случаев МРЧ. Реализацию их можно найти в открытой библиотеке SwarmOps.
Варианты алгоритма
Постоянно предлагаются новые варианты алгоритма роя частиц для улучшения производительности метода. Существует несколько тенденций в этих исследованиях, одна из которых предлагает создать гибридный оптимизационный метод, использующий МРЧ в комбинации с иными алгоритмами, см. например [16] [17]. Другая тенденция предлагает каким-либо образом ускорить работу метода, например, отходом назад или переменой порядка движения частиц (об этом см. [18] [19] [13]). Также есть попытки адаптировать поведенческие параметры МРЧ в процессе оптимизации [20].
См. также
- Роевой интеллект
- Муравьиный алгоритм
- Пчелиный алгоритм
- Дифференциальная эволюция
- Генетический алгоритм
- Алгоритм имитации отжига
- en: Harmony search
- en: Intelligent Water Drops
- en: Beam search
- Gravitational Search Algorithm
Примечания
- ↑ (1995) "Particle Swarm Optimization". Proceedings of IEEE International Conference on Neural Networks IV: 1942-1948.
- ↑ (1998) "A modified particle swarm optimizer". Proceedings of IEEE International Conference on Evolutionary Computation: 69-73.
- ↑ Swarm Intelligence. — Morgan Kaufmann, 2001.
- ↑ Poli, R. (2007). «An analysis of publications on particle swarm optimisation applications». Technical Report CSM-469 (Department of Computer Science, University of Essex, UK).
- ↑ Poli, R. (2008). «Analysis of the publications on the applications of particle swarm optimisation». Journal of Artificial Evolution and Applications: 1-10. DOI:10.1155/2008/685175.
- ↑ (1998) "Parameter selection in particle swarm optimization". Proceedings of Evolutionary Programming VII (EP98): 591-600.
- ↑ (2000) "Comparing inertia weights and constriction factors in particle swarm optimization". Proceedings of the Congress on Evolutionary Computation 1: 84-88.
- ↑ (2001) "An Off-The-Shelf PSO". Proceedings of the Particle Swarm Optimization Workshop: 1-6.
- ↑ van den Bergh F. An Analysis of Particle Swarm Optimizers. — University of Pretoria, Faculty of Natural and Agricultural Science, 2001.
- ↑ (2002) «The particle swarm - explosion, stability, and convergence in a multidimensional complex space». IEEE Transactions on Evolutionary Computation 6 (1): 58-73.
- ↑ Trelea, I.C. (2003). «The Particle Swarm Optimization Algorithm: convergence analysis and parameter selection». Information Processing Letters 85: 317-325.
- ↑ (2008) «A Simplified Recombinant PSO». Journal of Artificial Evolution and Applications.
- ↑ 1 2 Evers G. An Automatic Regrouping Mechanism to Deal with Stagnation in Particle Swarm Optimization. — The University of Texas - Pan American, Department of Electrical Engineering, 2009.
- ↑ Pedersen M.E.H. Tuning & Simplifying Heuristical Optimization. — University of Southampton, School of Engineering Sciences, Computational Engineering and Design Group, 2010.
- ↑ Pedersen, M.E.H.; Chipperfield, A.J. (2010). «Simplifying particle swarm optimization». Applied Soft Computing 10: 618-628.
- ↑ (2002) "The LifeCycle Model: combining particle swarm optimisation, genetic algorithms and hillclimbers". Proceedings of Parallel Problem Solving from Nature VII (PPSN): 621-630.
- ↑ (2010) «An efficient hybrid approach based on PSO, ACO and k-means for cluster analysis». Applied Soft Computing 10 (1): 183-197.
- ↑ (2002) "Extending Particle Swarm Optimisers with Self-Organized Criticality". Proceedings of the Fourth Congress on Evolutionary Computation (CEC) 2: 1588-1593.
- ↑ Xinchao, Z. (2010). «A perturbed particle swarm algorithm for numerical optimization». Applied Soft Computing 10 (1): 119-124.
- ↑ (2009) «Adaptive Particle Swarm Optimization». IEEE Transactions on Systems, Man, and Cybernetics 39 (6): 1362-1381.
Ссылки
- Particle Swarm Central. Новости, люди, места, программы, статьи и др. В частности, см. текущий стандарт МРЧ. (англ.)
- SwarmOps. Подбор параметров / калибровка МРЧ и другие мета-оптимизационные методы. Программная библиотека на языках C и C#.
- EvA2 — комплексный инструмент эволюционных методов оптимизации и МРЧ с открытым исходным кодом, написанный на Java.
- ParadisEO мощный C++ фреймворк, предназначенный для создания различных метаэвристик, включая алгоритмы МРЧ. Готовые к использованию алгоритмы, множество учебников, помогающих быстро создать собственный вариант МРЧ.
- Код МРЧ на FORTRAN Измерение производительности на тестовых функциях.
- JSwarm-PSO Пакет МРЧ-оптимизации
- Модуль МРЧ на Perl
- Модуль МРЧ на Lua
- Java-апплет для 3D-визуализации МРЧ
- Java-апплет для 3D-визуализации МРЧ с исходным кодом
- Ссылки на исходные кода алгоритмов МРЧ
- CILib — GPLed computational intelligence simulation and research environment written in Java, includes various PSO implementations
- МРЧ-модуль для MATLAB
- Использование реализации МРЧ на Python для решения головоломки о пересечении лестниц.
- МРЧ-проект на Scheme
- Простой пример МРЧ на Haskell
- ECF — Evolutionary Computation Framework различные алгоритмы, генотипы, распараллеливание, учебники.
Методы оптимизации Одномерные Метод золотого сечения • Дихотомия • Метод парабол • Перебор по сетке • Метод Фибоначчи • Троичный поиск Прямые методы Метод Гаусса • Метод Нелдера — Мида • Метод Хука — Дживса • Метод конфигураций • Метод Розенброка Первого порядка Градиентный спуск • Метод Зойтендейка • Покоординатный спуск • Метод сопряжённых градиентов • Квазиньютоновские методы • Алгоритм Левенберга — Марквардта Второго порядка Метод Ньютона • Метод Ньютона — Рафсона Стохастические Метод Монте-Карло • Имитация отжига • Эволюционные алгоритмы • Дифференциальная эволюция • Муравьиный алгоритм • Метод роя частиц Методы линейного
программированияСимплекс-метод • Алгоритм Гомори • Метод эллипсоидов • Метод потенциалов Методы нелинейного
программированияПоследовательное квадратичное программирование Категории:- Алгоритмы оптимизации
- Эвристические алгоритмы
- Для каждой частицы i = 1, …, S сделать:
Wikimedia Foundation. 2010.