Оптимизация роя частиц: что означает ценность gBest?

Я разрабатываю симулятор Particle Swarm Optimization для MATLAB, и у меня есть сомнения по поводу позиции gBest.

Как я понял, читая об алгоритме, значение gBest идентифицирует глобальное лучшее значение, которое когда-либо обнаруживалось частицами. Однако в довольно сносной реализации я увидел, что разработчик рассматривал gBest как лучшее значение, с которым сталкиваются частицы в CURRENT-поколении.

Я неправильно понял основы алгоритма PSO? Был ли разработчик неправ в своей реализации или, тем не менее, это был просто другой подход?

Заранее спасибо, Виктор.

1 ответ

Решение

Есть много способов точной настройки PSO, но классический алгоритм PSO использует gBest как самая известная позиция роя, поэтому она не только из текущей итерации. В вашем алгоритме вы должны реализовать какую-то память для вычисления дельты, используемой в обновлении скорости:

дельта

Обратите внимание, что я позвонил pbest как самая известная позиция частицы и sbest самая известная позиция роя (ваш gBest). c1 а также c2 уровни доверия в самой частице и в рое.

Другие вопросы по тегам