Otimização por Enxame de Partículas (parte 1)

25
Otimização por Enxame de Partículas (parte 1) César M. V. Benítez 2019

Transcript of Otimização por Enxame de Partículas (parte 1)

Page 1: Otimização por Enxame de Partículas (parte 1)

Otimização por Enxame de Partículas (parte 1)

César M. V. Benítez2019

Page 2: Otimização por Enxame de Partículas (parte 1)

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

Page 3: Otimização por Enxame de Partículas (parte 1)

Swarm IntelligenceBusca de alimento (foraging)

Evitar predadores, Reprodução

Page 4: Otimização por Enxame de Partículas (parte 1)

Swarm IntelligencePSO - Particle Swarm Intelligence

ACO - Ant Colony Optimization

ABC - Artificial Bee Colony

etc...

Page 5: Otimização por Enxame de Partículas (parte 1)

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

Page 6: Otimização por Enxame de Partículas (parte 1)

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)

Page 7: Otimização por Enxame de Partículas (parte 1)

Particle Swarm IntelligenceAlgumas animações sobre PSO:

PSO

PSO - animação com Matlab

Glowworm Swarm Optimization

Page 8: Otimização por Enxame de Partículas (parte 1)

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

Page 9: Otimização por Enxame de Partículas (parte 1)

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)

Page 10: Otimização por Enxame de Partículas (parte 1)

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

Page 11: Otimização por Enxame de Partículas (parte 1)

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

Page 12: Otimização por Enxame de Partículas (parte 1)

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

Page 13: Otimização por Enxame de Partículas (parte 1)

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

Page 14: Otimização por Enxame de Partículas (parte 1)

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.

Page 15: Otimização por Enxame de Partículas (parte 1)

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

Page 16: Otimização por Enxame de Partículas (parte 1)

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

Page 17: Otimização por Enxame de Partículas (parte 1)

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

Page 18: Otimização por Enxame de Partículas (parte 1)

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.

Page 19: Otimização por Enxame de Partículas (parte 1)

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)

Page 20: Otimização por Enxame de Partículas (parte 1)

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!

Page 21: Otimização por Enxame de Partículas (parte 1)

Particle Swarm Intelligence● Exemplo utilizando o Inspyred- Maximização - Função Ackley

Page 22: Otimização por Enxame de Partículas (parte 1)

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

Page 23: Otimização por Enxame de Partículas (parte 1)

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:

Page 24: Otimização por Enxame de Partículas (parte 1)

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.

Page 25: Otimização por Enxame de Partículas (parte 1)

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)