Computação Evolucionária

27 

Texto

(1)

Computação Evolucionária

Prof. Heitor Silvério Lopes

hslopes@utfpr.edu.br

http://silverio.net.br/heitor

(2)

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 BAT

(3)
(4)
(5)

Particle 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

(6)

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

(7)

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

(8)

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

(9)

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

(10)

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

(11)

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 MSL

v

Melhor solução global A própria

(12)

Componente 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

(13)

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:

(14)

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

(15)

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)

(16)

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]

(17)

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

(18)

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”

(19)

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 em

movimentos 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

(20)

PSO para problemas discretos

Restringe os valores de x

i

a {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) )

(21)

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))

(22)

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)

(23)

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

(24)

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)

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

(26)

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,

(27)

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:

Imagem

temas relacionados :