Метод роя частиц (МРЧ) — метод численной оптимизации, для использования которого не требуется знать точного градиента оптимизируемой функции.
МРЧ был доказан Кеннеди, Эберхартом и Ши[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 + φprp × (pi-xi) + φgrg × (g-xi), где операция × означает покомпонентное умножение.
Обновить положение частицы переносом xi на вектор скорости: xi ← xi + vi. Заметим, что этот шаг выполняется вне зависимости от улучшения значения целевой функции.
Если (f(xi) < f(pi)), то делать:
Обновить лучшее известное положение частицы: pi ← xi.
Если (f(pi) < f(g)), то обновить лучшее известное состояние роя в целом: g ← pi.
Теперь g содержит лучшее из найденных решений.
Параметры ω, φp, и φg выбираются вычислителем и определяют поведение и эффективность метода в целом. Эти параметры составляют предмет многих исследований (см. ниже).
Подбор параметров
Выбор оптимальных параметров метода роя частиц — тема значительного количества исследовательских работ, см., например, работы Ши и Эберхарта[6][7], Карлисла и Дозера[8], ван ден Берга[9], Клерка и Кеннеди[10], Трелеа[11], Браттона и Блеквэлла[12], а также Эверса[13].
Простой и эффективный путь подбора параметров метода предложен Педерсеном и другими авторами.[14][15] Они же провели численные эксперименты с различными оптимизациоными проблемами и параметрами. Техника выбора этих параметров называется мета-оптимизацией, так как другой оптимизационный алгоритм используется для «настройки» параметров МРЧ. Входные параметры МРЧ с наилучшей производительностью оказались противоречащими основным принципам, описанным в литературе, и часто дают удовлетворительные результаты оптимизации для простых случаев МРЧ. Реализацию их можно найти в открытой библиотеке SwarmOps.
Варианты алгоритма
Постоянно предлагаются новые варианты алгоритма роя частиц для улучшения производительности метода. Существует несколько тенденций в этих исследованиях, одна из которых предлагает создать гибридный оптимизационный метод, использующий МРЧ в комбинации с иными алгоритмами, см. например[16][17]. Другая тенденция предлагает каким-либо образом ускорить работу метода, например, отходом назад или переменой порядка движения частиц (об этом см.[13][18][19]). Также есть попытки адаптировать поведенческие параметры МРЧ в процессе оптимизации[20].
↑ (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 Computation1: 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.
↑
Clerc, M.; Kennedy, J. (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.
↑
Bratton, D.; Blackwell, T. (2008). “A Simplified Recombinant PSO”. Journal of Artificial Evolution and Applications.
↑ (2002) "The LifeCycle Model: combining particle swarm optimisation, genetic algorithms and hillclimbers".Proceedings of Parallel Problem Solving from Nature VII (PPSN): 621-630.
↑
Niknam, T.; Amiri, B. (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.
Другой контент может иметь иную лицензию. Перед использованием материалов сайта WikiSort.ru внимательно изучите правила лицензирования конкретных элементов наполнения сайта.
2019-2025 WikiSort.ru - проект по пересортировке и дополнению контента Википедии