Computação Evolucionária
Prof. Heitor Silvério Lopes
hslopes@utfpr.edu.br
http://silverio.net.br/heitor
Inteligência Computacional
Sistemas PE EE PG SC Computação Evolucionária Computação com DNA L-systems Sistemas Imunológicos Artificiais Autômatos Celulares Redes Neurais AG AM Hardware evolutivo ED AED EG AGC HS Deep Learning PEG ABC Inteligência de Enxames PSO ACO BATParticle Swarm Optimization
PSO foi criado por Jim Kennedy
e Russell Eberhart
Primeira publicação em 1995
Posteriormente melhorado por
Y.Shi, M.Clerc e outros
Livro:
Eberhart, R.C., Shi, Y., Kennedy, J. Swarm Intelligence. San Francisco: Morgan Kaufmann, 2001
Literatura sobre PSO
Clerc, M., Particle Swarm
Optimization. Wiley-ISTE, 2006 Parsopoulos, K.E. & Vrahatis, M.N., Particle Swarm Optimization and Intelligence. IGI Global, 2010. Olsson, A.E., Particle Swarm
Optimization: Theory, Techniques and Applications. Nova Science, 2011
Mishra, A.K., Particle Swarm Optimization : Bio Inspired
Optimization Technique. LAP Lambert, 2017
Swarm ?
Um swarm (enxame) é
Um conjunto de indivíduos (população)
São aparentemente desorganizados
espacialmente
Tendem a se agrupar enquanto se movem num
hiperespaço
Cada indivíduo se move em uma direção
quase-aleatória
Inspiração do PSO
Modelo bioinspirado no comportamento coletivo de grupos de animais, observado em:
cardumes de peixes revoada de pássaros manadas de animais
Vídeos de PSO
Animações de PSO:
Particle Swarm Optimization in
MATLAB:
Glowworm Swarm Optimization
https://www.youtube.com/watch?v=nul8nYIQ8ug https://www.youtube.com/watch?v=_vhSu4xBoFs https://www.youtube.com/watch?v=1JOibdObwOs https://www.youtube.com/watch?v=GMLEc5x_f30 https://www.youtube.com/watch?v=PIJICmPDQPU
Características do PSO
É um algoritmo populacional, onde os “indivíduos” são denominados de partículas
As partículas “sobrevoam” o espaço de busca n-dimensional do problema
A busca se dá através da aceleração e desaceleração das partículas que são influenciadas estocasticamente
por dois componentes: Componente Cognitivo Componente Social
De onde eu vim ?
Para onde eu vou ?
Comportamentos possíveis de uma partícula:
OUSADO: segue seu
próprio caminho (usando o seu vetor velocidade)
CONSERVADOR: volta
mais ou menos em direção à melhor posição que
encontrou em sua busca
SUBMISSO: volta mais ou
menos em direção à melhor posição encontrada pelos seus vizinhos
PSO formaliza a
combinação destas três tendências de modo a ser globalmente eficiente. Solução atual Melhor solução local
x
MSG MSLv
Melhor solução global A própriaComponente social
O componente social influencia a
movimentação das partículas de
acordo com o grupo de partículas
(rede social) com o qual uma
partícula vai interagir:
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
Componente cognitivo
O componente cognitivo influencia a
movimentação das partículas de acordo
com a “experiência” da própria partícula
adquirida ao longo das iterações:
Cada partícula é composta por 3 vetores
n-dimensionais:
Posição atual: x
i= (x
i1, x
i2, ... , x
in)
Velocidade: v
i= (v
i1, v
i2, ... , v
in)
Melhor posição visitada:
MSLi = (MSLi1, MSLi2, ... , MSLin)
Onde n é o número de dimensões e i é o índice da partícula na população
Pseudocódigo do algoritmo PSO
Minimização de um vetor n-dimensional, avaliado por uma função de fitness (f)
Passos de inicialização necessários:
Inicializar cada coordenada xi,j dentro da faixa [Xminj, Xmaxj] Inicializar cada vij dentro de [-Vmax, Vmax]
Atribuir MSLi = xi para todas as partículas DO
FOR cada partícula i
IF f(xi) < f(MSLi) THEN MSLi = xi //atualiza o melhor componente cognitivo
IF f(MSLi) < f(MSG) THEN MSG = xi //atualiza o melhor componente social
vi(t+1)=vi(t) + c1.r1(t)[MSLi(t)-xi(t)] + c2.r2(t)[MSGi(t)-xi(t)] //Atualiza velocidade de (i)
xi(t+1) = xi(t) + vi(t+1) //Atualiza posição de (i)
Atualização das melhores soluções
PSO é definido para um problema de
minimização
Atualização da MSL e MSG a cada
iteração:
MSG(t+1) = x
i(t+1), se f(x
i(t+1)) < f(MSG(t))
MSL
i(t+1) = x
i(t+1), se f(x
i(t+1)) < f(MSL
i(t))
[1]Equação de atualização da “velocidade” (tem dimensão de deslocamento):
Onde:
c1 regula o tamanho do passo na direção da melhor posição
encontrada até o momento pela partícula (componente cognitivo ou individual)
c2 regula o tamanho do passo na direção da melhor partícula encontrada global ou regionalmente (componente social ou global)
vi(t+1) = vi(t) +
c1.r1 (t)[ MSLi(t) - xi(t)] + c2.r2 (t)[ MSGi(t) - xi(t)] Para todas as n dimensões do vetor
Atualização da velocidade
[2]
Melhor Solução Global Melhor Solução Local Componente Cognitivo
Atualização da posição da partícula
Equação de atualização da posição da partícula:
Limitações:
Limites do espaço de busca: [Xminj, Xmaxj] (j é cada posição do vetor)
Vi: utilizada para limitar as velocidades, evitando que as partículas extrapolem o espaço de busca: [-Vmax, Vmax]
Se Vmin for muito pequeno as partículas se movimentam lentamente. Se Vmax for muito grande, as partículas dão “saltos”
Melhoria do algoritmo PSO
Coeficiente de inércia (w):
Controla a influência da velocidade de um instante de tempo anterior (componente cognitivo)
A Velocidade define a intensidade da busca:
valores altos de velocidade resultam emmovimentos bruscos;
valores baixos de velocidade podem resultar na exploração insuficiente do espaço de busca
vi(t+1) = w.vi(t) +
c1.r1 (t)[ MSLi(t) - xi(t)] + c2.r2 (t)[ MSGi(t) - xi(t)] Onde i 1..n
PSO para problemas discretos
Restringe os valores de x
ia {0, 1}
v
ié tratado como um valor de
probabilidade: [0, 1]
Usa-se uma sigmóide para forçar a
velocidade ficar no intervalo [0, 1]
A equação da velocidade não se altera
sig(x) = 1 / (1 + exp(-x) )Equação de atualização de posições
PSO pode abordar tanto valores contínuos quanto binários no mesmo vetor – enxame híbrido
Para problemas combinatoriais → PSO “especial”
PSO para problemas discretos
x
ij(t+1)=
0 se r
3j(t) sig(v
ij(t+1))
1 se r
3j(t) < sig(v
ij(t+1))
PSO para problemas multiobjetivos
Objetivos conflitantes: o valor ótimo para um objetivo influencia no resultado dos outros
P.ex.: maximizar conforto e diminuir custo
A cada ajuste de variáveis (parâmetros de
configuração) um novo trade-off é encontrado Em MO o objetivo é determinar todos os
trade-offs possíveis entre os objetivos: fronte de
Pareto.
Uma curva (para dois objetivos) e uma superfície (para mais de dois objetivos)
Comparações entre PSO e AG
Ambos são baseadas em população
Uma partícula é análoga a uma cromossomo;
ambos representam uma solução ao problema
PSO não possui operador de crossover, porém
os conceitos semelhantes são representados
Cada partícula é acelerada aleatoriamente na
direção de MSLi(t) e MSG(t); o vetor resultante é uma “mistura” destas influências
PSO não utiliza o operador de seleção
PSO para o TSP
Nova metodologia híbrida que inclui o PSO original
adaptado para problemas discretos e conceitos de AGs: Representação de uma solução
Operador de crossover OX Busca local e explosão
Machado, T.R., Lopes, H.S. A hybrid particle swarm optimization model for the traveling salesman problem. In: Ribeiro, B., Albrecht, R.F., Dobnikar, A. et al (eds.), Adaptive and Natural Computing
Algorithms. Wien: SpringerWienNewYork, 255-258, 2005.
Lopes, H.S., Coelho, L.S., Particle swarm optimization with fast local search for the blind travelling salesman problem. Proc. of 5th
International Conference on Hybrid Intelligent Systems, Rio de
25
PSO para registro de imagens
Aplicação: reconhecimento de padrões, visão computacional
Objetivo: encontrar um padrão de referência em uma imagem complexa
empacotamento bidimensional
Problema NP-completo
Dados n objetos com limites dimensionais (peso, volume, área…) e utilidades (valor, lucro…), bem como um recipiente (caixa, container…), escolher quais objetos colocar no
recipiente respeitando seus limites físicos e maximizando a soma das utilidades.
Dimensionalidade:
1D: barras metálicas, tubos, cabos elétricos, etc.
2D: chapas, folhas, embalagens, tecidos, etc
3D: containers, caixas, objetos, etc
F. Hembecker, H.S. Lopes, H.S., W. Godoy Jr., Particle Swarm Optimization for the Multidimensional Knapsack Problem. Lecture Notes in Computer Science, v. 4331,
Outras aplicações do PSO
Wille, E.C.G., Yabcznski, E., Lopes, H.S., Discrete capacity assignment in IP networks using particle swarm optimization. Applied Mathematics and Computation, v. 17, p. 5338-5346, 2011.
Talau, M., Wille, E.C.G., Lopes, H.S. An approach for solving the base station placement problem using particle swarm intelligence. Proc. International
Telecommunications Symposium, Manaus, 2010.
Aplicação: dimensionar a capacidade dos links de comunicação em uma WAN com base na demanda e confiabilidade:
Aplicação: estabelecer a melhor posição para a ERB (wi-fi) em um local complexo com obstáculos de modo a otimizar o serviço para um número de usuários com demandas diferentes: