Meta-heurísticas · UFES · 2026/2

Uma introdução à
Otimização por Enxame de Partículas

Particle Swarm Optimization (PSO), contada a partir do artigo original de Kennedy & Eberhart, 1995

·
mova o mousearraste o dedo o enxame procura você → avançar
Isto é PSO de verdade: f(x) = distância até o cursor. Cada partícula lembra seu melhor ponto (pbest) e todas conhecem o melhor do enxame (gbest).
Roteiro

O que vamos ver

  1. O artigo de 1995quem escreveu e o que ele promete
  2. Do bando ao otimizadorSeções 1 a 3, cada regra virando simulação
  3. Enxame, partícula e os primeiros testesSeções 4 a 6
  4. O algoritmo de hojeequação, pseudocódigo, diversificação × intensificação
  5. Desafio: você contra o enxamee o código inteiro, em uma tela
  6. Depois de 1995a trajetória até o estado da arte
  1. Exemplo de aplicaçãoonde instalar bases de ambulância
  2. Onde o PSO é usadoaplicações reais
  3. Conclusõespotencialidades, limitações, PSO × AG × ED

Como ler este material. Na esquerda fica o artigo original, em inglês, com o trecho em discussão marcado e o que foi descartado riscado. Na direita fica a explicação, com simulações que você pode mexer.

O artigo · 1995

Um psicólogo social e um engenheiro eletricista

JK
James KennedyPsicólogo social, Bureau of Labor Statistics, Washington, DC
RE
Russell EberhartEngenheiro eletricista, Purdue School of Engineering and Technology, Indianapolis
Publicado em

IEEE International Conference on Neural Networks, Perth, Austrália, 1995

Páginas 1942 a 1948 · 7 páginas · DOI 10.1109/ICNN.1995.488968

⬇ PDF original (7 p.)

Um artigo curto que virou uma das meta-heurísticas mais usadas do mundo. A combinação dos dois autores explica muito: a ideia nasce da psicologia social e vira ferramenta de engenharia.

O que o resumo promete
  • Um conceito para otimizar funções não lineares usando um enxame de partículas
  • A evolução de vários "paradigmas" até chegar no algoritmo final
  • Testes em benchmark e aplicações: otimização de funções e treino de redes neurais
  • A relação do PSO com vida artificial e com algoritmos genéticos
7 páginas, 6 seções. Vamos seguir a ordem do próprio artigo
1Introduction
2Simulating Social Behavior
3Precursors: the etiology of PSO 3.1 a 3.7
4Swarms and Particles
5Tests and Early Applications
6Conclusions

A Seção 3 é o coração: ela conta, passo a passo, como uma simulação de pássaros virou um otimizador.

Kennedy, J.; Eberhart, R. Particle Swarm Optimization. Proc. IEEE ICNN, 1995, p. 1942–1948.
Seção 1 · Introduction

A ideia em uma frase

Um método para otimizar funções contínuas não lineares, descoberto ao simular um modelo social simplificado.

A metáfora social explica de onde a ideia veio, mas o algoritmo funciona sem ela. Hoje ninguém precisa pensar em pássaros para usar PSO.

Vida artificial

bandos de pássaros, cardumes, enxames

Computação evolutiva

algoritmos genéticos, programação evolutiva

PSO

Duas raízes. A primeira é óbvia pelo nome. A segunda aparece no fim do artigo, quando os autores comparam o PSO com algoritmos genéticos.

poucaslinhas de código
+ − × ÷só operações matemáticas básicas
baratoem memória e em tempo

Testado já no artigo em dois problemas: treinar os pesos de uma rede neural e a função f6 de Schaffer, um benchmark clássico de algoritmos genéticos.

Kennedy & Eberhart (1995), Seção 1.
Seção 2 · Simulating Social Behavior

Como um bando se move sem líder?

Reynolds (1987)

Cientista da computação. Queria reproduzir a estética da coreografia de um bando.

Heppner & Grenander (1990)

Heppner é zoólogo. Queria descobrir as regras que deixam milhares de pássaros voarem sincronizados.

Os dois chegaram à mesma intuição: regras locais, de cada pássaro com seus vizinhos, bastam para produzir o comportamento do grupo.

Cada pássaro só olha os vizinhos: não encosta (separação), voa na mesma direção (alinhamento) e não se afasta do grupo (coesão). Desligue uma regra e veja o bando se desfazer.
A frase que vira algoritmo. O sociobiólogo E. O. Wilson escreveu que, num cardume, cada peixe pode lucrar com as descobertas de todos os outros na busca por comida, e que essa vantagem supera a competição quando a comida aparece em manchas imprevisíveis. Paráfrase de Wilson (1975), citado na Seção 2.
E as pessoas? A gente também se ajusta ao grupo, só que no espaço das crenças e atitudes. E lá não existe colisão: duas pessoas podem pensar exatamente igual sem "bater". Por isso o PSO ignora colisões e funciona em qualquer número de dimensões.
Reynolds (1987); Heppner & Grenander (1990); Wilson (1975), via Kennedy & Eberhart (1995), Seção 2.
Seção 3 · Precursors

Do bando ao otimizador, uma regra por vez

3.13.23.33.43.53.63.7
3.1 · Copiar o vizinho mais próximo. Cada agente pega a velocidade do vizinho mais próximo. Surge sincronia, mas logo o bando inteiro trava numa direção única que nunca muda.
3.1 · + "craziness". Para parecer vivo, a cada iteração algumas velocidades levam um empurrão aleatório. Funciona, mas é uma variação totalmente artificial, e os autores admitem isso.
3.2 · Como pássaros acham comida? Quem já pendurou um comedouro sabe: em poucas horas aparecem muitos pássaros, sem saberem antes onde ele estava. O milharal está em (100, 100), mas este bando não tem como usar essa informação.
3.2 · O vetor do milharal. Cada agente mede a distância até o milharal e lembra a melhor posição que já visitou (pbest). Todos conhecem a melhor posição do grupo (gbest). A regra é um teste de desigualdade: se x > pbest_x então vx −= rand()·p_inc, senão soma. O mesmo vale para gbest com g_inc.
3.2 · Incrementos altos ou baixos. Com incrementos altos o bando é sugado com violência para o alvo. Com incrementos baixos ele gira em volta, em ondas, até pousar. Clique no campo para mudar o milharal de lugar.
3.3 · Cortando o que sobra. Sem craziness: funciona igual. Sem copiar o vizinho: otimiza até um pouco mais rápido, só muda o visual. O bando vira um enxame.
3.3 · Memória e norma social. pbest é como memória autobiográfica, uma "nostalgia simples" de voltar ao lugar que mais satisfez. gbest é o conhecimento publicado, a norma do grupo. Teste o equilíbrio:
3.4 · Mais dimensões. x e y viram uma matriz D × N (D dimensões, N agentes). O primeiro teste sério: treinar os 13 pesos de uma rede neural 2-3-1 para o XOR. Com 20 agentes, convergiu em média em 30,7 iterações.
3.5 · Aceleração pela distância. O teste de desigualdade era feio e difícil de entender. Nova regra: ajustar a velocidade proporcionalmente à distância até o melhor ponto: vx += rand()·p_inc·(pbest_x − x).
3.6 · A versão simplificada. Ninguém sabia dizer se p_inc ou g_inc devia ser maior, então os dois saíram. O fator aleatório foi multiplicado por 2 para ter média 1: o agente passa do alvo mais ou menos metade das vezes.
v ← v + 2·rand()·(pbest − x) + 2·rand()·(gbest − x)
x ← x + v
3.7 · O que não funcionou. Ponto médio entre pbest e gbest: converge para esse ponto, sendo ótimo ou não. Exploradores e colonos: nenhum ganho. Sem momento: ruim para achar o ótimo global. Os dois "chutes" aleatórios e o momento são essenciais.
Kennedy & Eberhart (1995), Seções 3.1 a 3.7. Simulação reimplementada a partir da descrição do artigo.
Seção 4 · Swarms and Particles

Por que "enxame"? Por que "partícula"?

Depois dos cortes da Seção 3.3, o grupo já não se comporta como um bando. Ele se comporta como um enxame.

E "enxame" tem base na literatura: os autores usam o termo no sentido de Millonas (1994), que estudava vida artificial e definiu os princípios da inteligência de enxame.

PrincípioO que exigeComo o PSO cumpre
Proximidadefazer cálculos simples de espaço e tempocálculos em n dimensões, a cada passo
Qualidaderesponder a fatores de qualidade do ambienteresponde a pbest e gbest
Resposta diversanão seguir um caminho estreito demaisa atração se divide entre pbest e gbest
Estabilidadenão mudar a cada mudança do ambientesó muda quando gbest muda
Adaptabilidademudar quando valer o customuda, sim, quando gbest muda

Os autores notam que estabilidade e adaptabilidade são os dois lados da mesma moeda.

"Ponto" ou "partícula"?

Os membros não têm massa nem volume, então seriam "pontos". Mas velocidade e aceleração combinam mais com partículas.

Reeves (1983)

Na computação gráfica, sistemas de partículas modelam nuvens, fogo e fumaça. Daí o nome particle swarm.

um sistema de partículas, no estilo de Reeves
Millonas (1994); Reeves (1983), via Kennedy & Eberhart (1995), Seção 4.
Seções 3.4 e 5 · Tests and Early Applications

Treinando uma rede neural sem gradiente

x₁
x₂
gbest = 13 pesos da rede 2-3-1
erro quadrático médio

Cada partícula é um vetor de 13 números. O "terreno" é o erro da rede. O enxame voa num espaço de 13 dimensões usando exatamente a fórmula de 1995, sem derivadas.

Redes neurais e Iris (Fisher)

O PSO treinou os pesos tão bem quanto backpropagation, o método padrão. No conjunto Iris, a média foi de 284 épocas em 10 sessões de treino.

Um otimizador "social", sem derivada nenhuma, empatando com o gradiente. Em 1995 isso chamava atenção.

89%backpropagation, conjunto de teste de EEG
92%PSO, mesmo conjunto

Os autores chamam isso de indícios informais: os pesos achados pelo enxame às vezes generalizam melhor do treino para o teste que os do gradiente.

Função f6 de Schaffer

Um benchmark clássico de algoritmos genéticos, muito difícil: a superfície tem uma quantidade enorme de ótimos locais. O PSO achou o ótimo global em todas as execuções, com número de avaliações parecido com o de AGs elementares.

corte de f6 ao longo de x (y = 0): cada vale é uma armadilha
Kennedy & Eberhart (1995), Seções 3.4 e 5. Rede XOR reimplementada no navegador.
Seção 6 · Conclusions

O que os autores concluíram

Um algoritmo extremamente simples que parece funcionar para uma grande variedade de funções.

Evoluçãoleva eras
Otimização socialo tempo da vida comum
Neurôniosmilissegundos

Uma forma de vida artificial de "nível médio": acontece no tempo da experiência do dia a dia.

E a computação evolutiva?
  • Fica entre algoritmos genéticos e programação evolutiva
  • Depende muito de processos estocásticos, como a programação evolutiva
  • Puxar em direção a pbest e gbest é conceitualmente parecido com o crossover dos AGs
  • Usa o conceito de fitness, como toda computação evolutiva

O que é único: voar soluções pelo hiperespaço. E o segredo é passar do alvo.

Fatores aleatórios

vasculham o espaço entre regiões já boas. É a intensificação.

Momento: somar, não substituir

faz a partícula ultrapassar e cair em regiões desconhecidas. É a diversificação.

Ligam isso à "alocação ótima de tentativas" de Holland: o equilíbrio entre testar o conhecido e arriscar o desconhecido.

“Why is social behavior so ubiquitous in the animal kingdom? Because it optimizes.”

Um psicólogo social e um engenheiro eletricista: o algoritmo serve aos dois campos. E o caminho inverso também vale: um bom jeito de resolver problemas de engenharia é modelar comportamento social.

Simples e robusto. Deixar a solução emergir em vez de impor, imitar a natureza em vez de controlar.

Poucas linhas de código, e só precisa da especificação do problema e de alguns parâmetros. Fim do artigo. Daqui em diante: o PSO como ele é usado hoje.

Kennedy & Eberhart (1995), Seção 6; Holland (1992).
Definição · o PSO moderno

A equação que todo mundo usa

vi ← w·vi + c₁r₁(pi − xi) + c₂r₂(g − xi)
xi ← xi + vi
Inércia "continuo indo para onde eu ia"
Cognitivo "volto para o meu melhor" (pbest)
Social "vou para o melhor do grupo" (gbest)

r₁ e r₂ são sorteados em [0, 1] a cada passo e dimensão. O w veio em 1998 (Shi & Eberhart). Com w = 1 e c₁ = c₂ = 2, volta a ser a fórmula de 1995. Clique numa partícula para ver as três forças.

para cada partícula i:
    xi ← posição aleatória;  vi ← velocidade aleatória
    pi ← xi
g ← melhor entre os pi
repita até o critério de parada:
    para cada partícula i:
        vi ← w·vi + c₁r₁(pi − xi) + c₂r₂(g − xi)
        xi ← xi + vi
        se f(xi) < f(pi):  pi ← xi
        se f(pi) < f(g):  g ← pi
retorne g
Execute o pseudocódigo linha por linha no mapa ao lado.
gbest (global)

Todos enxergam o melhor de todos. Converge rápido, mas arrisca ficar preso num ótimo local.

lbest (anel)

Cada partícula só enxerga dois vizinhos. Converge mais devagar, mas resiste melhor à convergência prematura.

A topologia é quem pode ser "o grupo" de cada partícula. Troque no seletor e compare no Rastrigin.

Shi & Eberhart (1998); Kennedy & Eberhart (1995); Pacheco (2016), Computação Inteligente.
Mecanismos de busca

Diversificação × intensificação

Como ler o gráfico

Diversidade alta = enxame espalhado, explorando. Quando ela despenca, o enxame está intensificando. Se despenca cedo demais com o melhor valor ainda alto, é convergência prematura.

Detalhe: o Pacheco sugere c₁ = c₂ = 2,05 com w = 0,5. O 2,05 costuma vir junto do fator de constrição χ ≈ 0,7298, e 0,7298 × 2,05 ≈ 1,496 é exatamente o "equilibrado" acima.

Shi & Eberhart (1998); Clerc & Kennedy (2002); Pacheco (2016).
Desafio interativo

Você contra o enxame

Existe um terreno escondido com vários vales. O objetivo é achar o ponto mais baixo. Você tem 8 toques: cada toque revela a altura naquele ponto.

Depois, 8 partículas fazem a mesma busca com PSO, também começando no escuro, durante 15 iterações. Quem chega mais perto do mínimo?

você–
enxame–
mínimo real?
Jogo construído para esta apresentação. O terreno é gerado aleatoriamente a cada rodada.
Implementação

O algoritmo inteiro cabe numa tela

Código escrito para esta apresentação, a partir das equações de Kennedy & Eberhart (1995) e Shi & Eberhart (1998).
Histórico e estado da arte

Depois de 1995: o que mudou

O estado da arte hoje, em quatro tendências
Parâmetros adaptativosw, c₁ e c₂ ajustados durante a busca (APSO)
Com quem aprenderestratégias de aprendizado e topologias (CLPSO, FIPS)
Vários enxames e híbridosmulti-enxame, PSO + AG, ED ou busca local
Larga escalamilhares de dimensões (CSO) e aprendizado de máquina

Não existe "o" PSO estado da arte para tudo. O problema central ainda é a convergência prematura, e a melhor variante depende do problema.

Kennedy & Eberhart (1997); Shi & Eberhart (1998); Clerc & Kennedy (2002); Kennedy (2003); Coello Coello et al. (2004); Mendes et al. (2004); Liang et al. (2006); Zhan et al. (2009); Zambrano-Bigiarini et al. (2013); Cheng & Jin (2015); Shami et al. (2022); revisão de 2025 (arXiv:2504.11812).
Exemplo de aplicação

Onde instalar as bases de ambulância?

Uma cidade quer instalar K bases. Cada casa é atendida pela base mais próxima. Onde colocar as bases para que a distância média seja a menor possível?

Clique no mapa para adicionar casas. Esse é o problema das p-medianas contínuo: não tem fórmula fechada e o custo muda de forma não suave.

Codificação
partícula = (x₁, y₁, x₂, y₂, …, xK, yK)

Cada partícula é uma configuração inteira de bases: com K = 3, um ponto em 6 dimensões. No mapa, cada partícula aparece como um triângulo apagado ligando suas 3 bases.

Fitness
f = média, sobre as casas, da distância até a base mais próxima

O enxame começa espalhado e converge para uma boa configuração. As linhas coloridas mostram qual base atende cada casa no gbest.

Exemplo construído para esta apresentação. PSO com constrição (Clerc & Kennedy, 2002).
Aplicações

Onde o PSO aparece de verdade

◎
Redes neuraisTreinar pesos e ajustar hiperparâmetros. O próprio artigo de 1995 já fazia isso.Kennedy & Eberhart (1995)
▦
Seleção de atributosEscolher quais variáveis usar num modelo, com PSO binário.Kennedy & Eberhart (1997); Shami et al. (2022)
⇄
Engenharia multiobjetivoVários objetivos em conflito, com fronteira de Pareto.Coello Coello et al. (2004)
✈
Robótica e sistemas autônomosPlanejamento de rotas e controle.Sengupta et al. (2018)
∞
Problemas de larga escalaMilhares de variáveis de decisão.Cheng & Jin (2015)
⌁
Funções caixa-pretaQuando não há derivada, só a possibilidade de avaliar f(x).Freitas et al. (2020)
Kennedy & Eberhart (1995, 1997); Coello Coello et al. (2004); Cheng & Jin (2015); Sengupta et al. (2018); Freitas et al. (2020); Shami et al. (2022).
Principais conclusões

Potencialidades e limitações

Potencialidades
  • Simples: poucas linhas, fácil de explicar e implementar
  • Sem gradiente: só precisa avaliar f(x)
  • Poucos parâmetros: w, c₁, c₂ e o tamanho do enxame
  • Memória: cada partícula guarda seu pbest
  • Paralelo por natureza: as partículas são avaliadas de forma independente
Limitações
  • Convergência prematura continua sendo o problema central
  • Sem garantia de ótimo global
  • Sensível a parâmetros e à topologia
  • Nasceu contínuo: problemas discretos pedem adaptação (PSO binário)
  • O SPSO-2011 foi fraco nas funções de composição do CEC-2013
PSOAlgoritmo GenéticoEvolução Diferencial
Inspiraçãocomportamento socialseleção naturaldiferenças entre vetores
Representaçãovetor real com velocidadecromossomo (binário ou real)vetor real
Como gera soluçõesmovimento rumo a pbest e gbestseleção, crossover e mutaçãomutação diferencial e crossover
Memóriasim: pbest de cada partículasó a população atualsó a população atual
Quem sobreviveninguém morre, todos se movemos mais aptosdisputa um a um com o pai
Domínio naturalcontínuodiscreto e contínuocontínuo
Kennedy & Eberhart (1995); Shami et al. (2022); Zambrano-Bigiarini et al. (2013); Schmitt & Wanka (2013).
Referências

Para ir além

  1. KENNEDY, J.; EBERHART, R. Particle swarm optimization. Proc. IEEE International Conference on Neural Networks, Perth, 1995, p. 1942–1948. doi:10.1109/ICNN.1995.488968
  2. KENNEDY, J.; EBERHART, R. C. A discrete binary version of the particle swarm algorithm. Proc. IEEE SMC, 1997. doi:10.1109/ICSMC.1997.637339
  3. SHI, Y.; EBERHART, R. A modified particle swarm optimizer. Proc. IEEE ICEC, 1998, p. 69–73. doi:10.1109/ICEC.1998.699146
  4. CLERC, M.; KENNEDY, J. The particle swarm: explosion, stability, and convergence in a multidimensional complex space. IEEE Trans. Evol. Comput., 6(1), 2002, p. 58–73. doi:10.1109/4235.985692
  5. KENNEDY, J. Bare bones particle swarms. Proc. IEEE Swarm Intelligence Symposium, 2003, p. 80–87.
  6. COELLO COELLO, C. A.; PULIDO, G. T.; LECHUGA, M. S. Handling multiple objectives with particle swarm optimization. IEEE Trans. Evol. Comput., 8(3), 2004, p. 256–279.
  7. LIANG, J. J.; QIN, A. K.; SUGANTHAN, P. N.; BASKAR, S. Comprehensive learning particle swarm optimizer for global optimization of multimodal functions. IEEE Trans. Evol. Comput., 10(3), 2006, p. 281–295.
  8. ZHAN, Z.-H.; ZHANG, J.; LI, Y.; CHUNG, H. S.-H. Adaptive particle swarm optimization. IEEE Trans. SMC, Part B, 39(6), 2009, p. 1362–1381.
  9. ZAMBRANO-BIGIARINI, M.; CLERC, M.; ROJAS, R. Standard Particle Swarm Optimisation 2011 at CEC-2013: a baseline for future PSO improvements. IEEE CEC, 2013, p. 2337–2344.
  10. SCHMITT, M.; WANKA, R. Particle swarm optimization almost surely finds local optima. GECCO, 2013, p. 1629–1636.
  11. CHENG, R.; JIN, Y. A competitive swarm optimizer for large scale optimization. IEEE Trans. Cybern., 45(2), 2015, p. 191–204.
  12. SENGUPTA, S.; BASAK, S.; PETERS, R. A. Particle Swarm Optimization: a survey of historical and recent developments with hybridization perspectives. arXiv:1804.05319, 2018.
  13. FREITAS, D.; LOPES, L. G.; MORGADO-DIAS, F. Particle Swarm Optimisation: a historical review up to the current developments. Entropy, 22(3), 2020, 362.
  14. SHAMI, T. M. et al. Particle Swarm Optimization: a comprehensive survey. IEEE Access, 2022. doi:10.1109/ACCESS.2022.3142859
  15. Learning strategies in particle swarm optimizer: a critical review and performance analysis. arXiv:2504.11812, 2025.
  16. PACHECO, A. Otimização por enxame de partículas. Computação Inteligente, 2016. computacaointeligente.com.br

Obrigado!

Perguntas?

·
Notas ·

Sumário

Atalhos

→ espaçopróximo passo
←passo anterior
↑ ↓slide anterior / próximo
Msumário
Nnotas do apresentador nesta tela
Pabrir a visão do apresentador em outra janela
Ftela cheia
Btela preta
Aabrir o artigo ao lado
Oabrir o PDF original do artigo em outra aba
Ttema claro / escuro
Ltransmitir ao vivo para os celulares

O artigo original de 1995 já vem com o site: abrir PDF · baixar.

Ao vivo