PSO Classico

O que é o PSO clássico?

O PSO clássico é a versão original do algoritmo de otimização por enxame de partículas. Ele foi proposto por Kennedy e Eberhart em 1995 sem modificações posteriores. Nesta versão, cada partícula tem posição, velocidade e memória individual. A velocidade é atualizada usando inércia constante, sem coeficientes adaptativos. Os parâmetros w, c₁ e c₂ são fixos durante toda a execução. Não há mecanismos de turbulência ou reinicialização para escapar de ótimos locais. O gbest é a melhor posição encontrada por qualquer partícula até o momento. O pbest é a melhor posição que cada partícula já visitou individualmente. A equação de velocidade é: v = w*v + c₁*r₁*(pbest – x) + c₂*r₂*(gbest – x). Essa formulação simples é a base de todas as variantes modernas do PSO.

Características essenciais do PSO clássico

O PSO clássico tem três características marcantes que o definem. Primeira, ele opera com um enxame de tamanho fixo, tipicamente entre 20 e 50. Segunda, a inércia w é constante (geralmente 0.7 a 0.9) durante todo o processo. Terceira, os coeficientes cognitivo (c₁) e social (c₂) são iguais (≈ 1.5 a 2.0). Não há evaporação, seleção ou crossover como em algoritmos genéticos. A atualização é puramente baseada em equações diferenciais estocásticas. Além disso, o PSO clássico não usa restrições de velocidade máxima (vmax). Contudo, muitas implementações incluem clamping para evitar explosão das partículas. O critério de parada é geralmente um número fixo de iterações ou tolerância. Essa simplicidade torna o PSO clássico fácil de programar e entender.

Vantagens e limitações da versão clássica

A principal vantagem é a convergência rápida em funções unimodais e suaves. Ela também requer poucos parâmetros e nenhum conhecimento prévio do problema. Por outro lado, o PSO clássico sofre com convergência prematura em funções multimodais. Ele tende a estagnar em mínimos locais porque a inércia não é ajustada. Além disso, a falta de diversidade populacional reduz a capacidade de exploração. Para superar isso, variantes com inércia adaptativa ou enxames hierárquicos surgiram. Ainda assim, o PSO clássico é um excelente ponto de partida para iniciantes.

O PSO clássico foi inicialmente testado em funções de referência como Sphere e Rastrigin. Ele mostrou desempenho superior a algoritmos genéticos em problemas contínuos. A simplicidade matemática permitiu análises teóricas de convergência. Estudos mostraram que o enxame converge para o gbest se os parâmetros forem bem escolhidos. A inércia w controla o trade-off entre exploração global e explotação local. Valores altos de w (próximos a 1) incentivam movimentos amplos e diversidade. Valores baixos (próximos a 0) fazem as partículas se concentrarem ao redor do gbest. Os coeficientes c₁ e c₂ determinam a atração para pbest e gbest, respectivamente. Quando c₁ > c₂, as partículas confiam mais em sua própria experiência. Quando c₂ > c₁, elas seguem o enxame de forma mais coletiva. O equilíbrio clássico c₁ = c₂ = 1.5 produz resultados robustos na maioria dos casos. O PSO clássico não tem mecanismo de reinicialização, o que é uma desvantagem. Porém, sua transparência facilita a depuração e o ajuste manual. Assim, o PSO clássico é uma ferramenta didática e funcional para otimização.

Um exemplo clássico é minimizar a função de Rosenbrock em 2 dimensões. Seu vale estreito e curvo desafia algoritmos baseados em gradiente. O PSO clássico encontra o mínimo (1,1) com precisão razoável. A inércia constante permite que as partículas oscilem até se estabilizar.


Enunciado do exemplo clássico

Implemente o PSO clássico para minimizar a função de Rosenbrock em 2D: f(x,y) = (1-x)² + 100*(y-x²)², com x,y ∈ [-2, 2]. Use 25 partículas, 300 iterações, w=0.8, c₁=c₂=1.5, e vmax = 0.5 por dimensão. Armazene o melhor fitness e a posição global a cada iteração. Plote a curva de convergência e a trajetória do gbest no espaço 2D com contornos.

Este código implementa o PSO clássico com clamping de velocidade. A curva de convergência mostra uma redução estável do erro ao longo do tempo. A trajetória do gbest revela como o enxame se move pelo vale da Rosenbrock. Mesmo com parâmetros fixos, o algoritmo encontra uma boa aproximação do ótimo. Para iniciantes, este exemplo demonstra a eficácia da formulação original. O PSO clássico é, portanto, um algoritmo fundamental e atemporal.

Deixe um comentário