Оптимизация роя частиц: что означает ценность gBest?
Я разрабатываю симулятор Particle Swarm Optimization для MATLAB, и у меня есть сомнения по поводу позиции gBest.
Как я понял, читая об алгоритме, значение gBest идентифицирует глобальное лучшее значение, которое когда-либо обнаруживалось частицами. Однако в довольно сносной реализации я увидел, что разработчик рассматривал gBest как лучшее значение, с которым сталкиваются частицы в CURRENT-поколении.
Я неправильно понял основы алгоритма PSO? Был ли разработчик неправ в своей реализации или, тем не менее, это был просто другой подход?
Заранее спасибо, Виктор.
1 ответ
Есть много способов точной настройки PSO, но классический алгоритм PSO использует gBest
как самая известная позиция роя, поэтому она не только из текущей итерации. В вашем алгоритме вы должны реализовать какую-то память для вычисления дельты, используемой в обновлении скорости:
Обратите внимание, что я позвонил pbest
как самая известная позиция частицы и sbest
самая известная позиция роя (ваш gBest). c1
а также c2
уровни доверия в самой частице и в рое.