Post on 27-Jun-2022
Otimização por Enxame de Partículas (parte 1)
César M. V. Benítez2019
Swarm IntelligenceSwarm = Enxame
A união faz a força
Mais inteligentes do que sozinhos…
Regras simples → Inteligência
Shoaling or Schooling?
https://www.youtube.com/watch?v=15B8qN9dre4
Swarm IntelligenceBusca de alimento (foraging)
Evitar predadores, Reprodução
Swarm IntelligencePSO - Particle Swarm Intelligence
ACO - Ant Colony Optimization
ABC - Artificial Bee Colony
etc...
Particle Swarm Intelligence (PSO)● Foi criado por Jim Kennedy e Russell Eberhart (1995)
Eberhart, R.C., Shi, Y., Kennedy, J. Swarm Intelligence.
San Francisco: Morgan Kaufmann, 2001
Particle Swarm Intelligence (PSO)● Bioinspirado no comportamento coletivo de animais
○ Cardumes de peixes, manadas, revoadas, etc.
● Um Enxame (swarm) é: ○ Conjunto de invidíduos (população)○ Desorganizados espacialmente○ Tendem a se agrupar enquanto se movem no hiperespaço○ A direção de cada indivíduo é quase-aleatória○ Interagem localmente (sem controle central)
Particle Swarm IntelligenceAlgumas animações sobre PSO:
PSO
PSO - animação com Matlab
Glowworm Swarm Optimization
Particle Swarm IntelligenceCaracterísticas do PSO:
● Populacional. Indivíduos são chamados de Partículas● O movimento das partículas no espaço de busca contínuo é influenciado
estocasticamente por 2 componentes:○ Componente Cognitivo○ Componente Social
● Cada Indivíduo possui:○ Posição no espaço de busca (solução e fitness)○ Velocidade○ Melhor posição individual
● O enxame mantém a melhor posição Global
Relacionados
Particle Swarm Intelligence● Pseudo-código simplificado do PSO:1. Gerar enxame2. Avaliar Partículas do Enxame3. Atualizar Melhor Partícula global4. Atualizar Posição e Velocidade de cada Partícula5. Repetir 2 - 4 até satisfazer uma condição de parada.
● Codificação de Partículas : vetor n-dimensional
A Codificação influencia:
● o tamanho do espaço de busca;
● a complexidade do problema;
● Epistasia (entre variáveis que formam a Partícula)
Particle Swarm Intelligence● Codificação de Partículas:
○ Cada partícula é formada por mais 2 vetores (velocidade e Melhor posição visitada):■ Posição Atual: x_i■ Velocidade atual: v_i■ Melhor posição visitada: MSL_i
● i é o índice da partícula do enxame
Particle Swarm IntelligenceComponentes Cognitivo e Social:
● Componente Cognitivo (aprendizado individual): Cada Partícula do enxame tem a sua própria experiência.
● Componente Social (cultural): Como indivíduos sociavéis, elas também sabem sobre o comportamento dos vizinhos
● Assim, as decisões são tomadas considerando as duas componentes, levando o enxame (população) para um comportamento emergente.
Entidades simples→ Comportamento
Complexo (em grupo)
Comportamento de um sistema que depende do relacionamento das
suas partes
Particle Swarm IntelligenceComponentes Cognitivo e Social:
● Componente Cognitivo (aprendizado individual):
pbest (particle best)
● Componente Social (cultural):
gbest (global best) ou MSG (melhor solução global): toda a população é considerada.
lbest (local best) ou MSL (melhor solução local): apenas os vizinhos são considerados
Particle Swarm Intelligencer1 e r2 são números aleatórios(distribuição uniforme, [0:1])
0 < c1,c2 < 2
c1 regula a influencia da Componente Cognitiva (individual)
c2 regula a influencia da ComponenteSocial
Particle Swarm IntelligenceLimitações:
● Limite do espaço de busca (posição): [Xmin_j, Xmax_j] para cada posição j da partícula X_i
● V_i: utilizada para limitar as velocidades para evitar que partículas extrapolem o espaço de busca [Vmin, Vmax]
○ Se Vmin for muito pequeno, as partículas se movimentam com passos menores○ Se Vmax for muito grande, as partículas dão saltos no espaço de busca.
Particle Swarm Intelligence● Componente Cognitiva (individual)
● Memória de cada partícula. ● Causa o retorno para a sua melhor região individual do espaço de busca.● Usualmente, C1 próximo de 2 ● C1 limita o tamanho do passo para a região do melhor individual
Particle Swarm Intelligence● Componente Social
● Direciona cada partícula para a melhor região do espaço de busca encontrada pelo enxame.
● Causa o retorno para a sua melhor região individual do espaço de busca.● Usualmente, C2 próximo de 2 ● C2 limita o tamanho do passo para a região do melhor global
Particle Swarm Intelligence● Componente Inercial (w)
● Com esta componente, uma partícula tende a se mover na mesma direção, com a mesma velocidade (do tempo anterior)
● 0,8 < W < 1,2● Valores baixos de w aceleram a convergência● Valores elevados de w promovem a exploração do espaço de busca
Comparação entre PSO e AG
● PSO e AG possuem uma população de indivíduos● Os indivíduos são avaliados...PSO e AG possuem cálculo de fitness● PSO e AG não garantem a solução do problema (ótimo global!)● PSO não possui operadores de Crossover e Mutação. Entretanto, as
partículas atualizam as suas posições a partir da velocidade. As partículas também possuem memória.
Comparação entre PSO e AG
● PSO não possui método de Seleção. Toda a população participa no processo.
● AG é para codificação discreta (adaptável). PSO é para codificação contínua (adaptável)
● PSO tende a convergir mais rápido e ter maior diversidade no Enxame (?)○ Ver Paper “Comparison between Genetic Algorithms and Particle Swarm Optimization” de Russell C. Eberhart and Yuhui
Shi (1998)
Particle Swarm Intelligence● Foi concebido para problemas contínuos.● Para problemas discretos (e combinatoriais):
○ Restringir valores de x_i a {0,1}○ Velocidades V_i tratadas como um valor de probabilidade [0,1]○ Usar Função Sigmóide para manter a velocidade no intervalo [0,1].○ A equação da velocidade não se altera!
Particle Swarm Intelligence● Exemplo utilizando o Inspyred- Maximização - Função Ackley
Particle Swarm Intelligence● Exemplo utilizando o código elaborado por James D. McCaffrey● Exemplo utilizando o código disponível no Framework do Algoritmo ECO
(proposto por Rafael S. Parpinelli)
→ Estes exemplos estão disponível no site do Prof. César M.V. Benítez
Particle Swarm Intelligence - ExercícioProblema: Task Assignment Problem (TAP)
Toy problem formulado por Tank and Hopfield
Em TAP, n Tarefas devem ser realizadas por apenas n empregados.
Cada empregado é bom em algumas tarefas e ruim em outras. Alguns deles são os melhores em determinadas tarefas.
O objetivo é minimizar o custo total para realizar todas as tarefas (ou maximizar o trabalho efetuado por cada trabalhador).
Suponha que tenhamos que arquivar n tipos de livros em uma biblioteca com n assistentes. Cada assistente é familiar com áreas de acordo com diferentes níveis e organiza as coleções de acordo.
Os dados de entrada nesta tarefa consistem nas taxas em que os livros são organizados/arquivados por minuto (ver Figura).
Objetivo:
Particle Swarm Intelligence - ExercícioAssistentes: 1-6
Coleção (ou tipos) de livros: A-F
1 assistente por coleção baseado nas taxas de livros/minuto
Nesta figura, os quadrados cinzas representam a melhor distribuição
de tarefas com a maior taxa de livros/minuto possível (44).
6! = 720 possíbilidades. A melhor solução tem a maior soma das taxas para os assistentes escolhidos.
Particle Swarm Intelligence - Exercício● Este tipo de problema é interessante para comparar o desempenho de
algoritmos. Então, implemente e compare os algoritmos Gene Expression Programming (GEP) e Particle Swarm Intelligence (PSO) para este problema.
● Considere n = 6 e n = 10
● Sugestão: ○ ver também o Algoritmo Hungaro, Simplex e Programação linear.○ Analisar a complexidade dos algoritmos (ou verificar na literatura)