Você está na página 1de 53

Algoritmos Genticos

Elitismo
A maior parte dos algoritmos usam
elitismo
Pode causar convergncia prematura

Nuvem de Partculas
PSO - Particle Swarm Optimization (1995)
Desenvolvida por James Kennedy (psiclogo) e
Russell Eberhart (engenheiro), com base no
comportamento de pssaros em revoadas
modelado pelo bilogo Frank Heppner.
Inspirado no comportamento e na dinmica dos
movimentos dos pssaros, insetos e peixes;
Originalmente desenvolvido para problemas de
otimizao com variveis contnuas;
Desempenho similar ao dos Algoritmos
Genticos;

Otimizao Nuvem de
Partculas

Otimizao Nuvem de Partculas

PSO
Elementos do algoritmo:
A : populao de agentes.
xi : posio do agente ai no espao de solues.
f : funo de avaliao.
vi : velocidade do agente ai.
V(ai) : conjunto fixo de vizinhos do agente ai.
Todos os agentes esto conectados, direta ou
indiretamente

Otimizao Nuvem de
Partculas

Vantagens

Insensvel a mudana de escala das variveis;


Implementao simples;
Adaptvel a computadores paralelos;
No requer clculo de derivadas;
Poucos parmetros para serem definidos pelo usurio;
Bom para encontrar o mnimo global;

Desvantagens
Rpido para localizar a bacia de atrao das boas
solues, mas lento no ajuste fino da soluo (como
nos algoritmos genticos).

Baseia-se no comportamento social dos pssaros em


revoadas, cardumes de peixes e enxames de abelhas
Algoritmicamente, tem-se um conjunto de partculas
que percorrem o espao de busca apresentando
comportamentos aleatrios em relao
individualidade e sociabilidade
A individualidade de uma partcula est relacionada
nfase dada, em seus movimentos, melhor soluo j
encontrada por ela mesma, enquanto sua sociabilidade
reflete o grau de importncia dado por ela melhor
soluo j encontrada por seus vizinhos
O conceito de vizinhana em PSO no o mesmo
utilizado pelas meta-heursticas de busca por entornos,
pois cada partcula, associada a uma soluo que
evolui, vizinha de um conjunto de partculas que
nunca alterado
A estrutura de vizinhanas construda de forma que
os progressos obtidos em cada regio tenham

Aplicaes de PSO
Aplicaes comuns:
Evoluo de redes neurais artificiais
Extrao de regras de RNAs
Escalonamento de tarefas (Multi-objective Job shop
scheduling)
Roteamento de veculos (Capacitated Vehicle Routing)

Aplicao recente:
Bandwidth Minimization Problem - BMP (2003).

Algumas aplicaes recentes (2004):

Caminho timo para operaes de perfurao automatizadas.


Minerao de dados para tarefas de classificao.
Posicionamento de bases em computao mvel.
Aproximao poligonal tima de curvas digitais.

Imitando a natureza
Separao: usada para
evitar aglomeraes de
partculas
Alinhamento: encaminhar
a busca para a partcula
representante do grupo
Coeso: uma partcula
movimenta-se na
mdia dos seus
vizinhos

PSO um mtodo baseado em populao, como o


Algoritmo Gentico
Entretanto, o conceito bsico cooperao em vez
da rivalidade
Apesar da semelhana com AG, esta tcnica no
usa operadores genticos (crossover, mutao, etc)

Uma partcula movimenta-se com velocidade


Usando a prpria experincia
Alm da experincia de todas as partculas

A idia similar ao bando de pssaros (ou cardume


de peixes ou enxame de abelhas) procurando
comida
Habilidade de troca de informaes entre vizinhos
Habilidade de memorizar uma posio anterior
Habilidade de usar informaes para tomada de
decises

Notao

Notao

Atualizao da velocidade
Trs termos definem uma nova velocidade
para uma partcula:
Fora a partcula a

1. Termo de inrcia

2. Termo cognitivo

3. Termo de
aprendizado social

mover-se na mesma
direo
Tendncia para seguir a
prpria direo com a
mesma velocidade
Melhora o indivduo
Fora a partcula a voltar
a uma posio anterior
que seja melhor do que a
atual
Tendncia conservativa
Fora a partcula a seguir
a direo de seus
melhores vizinhos
Como em todo rebanho,
mas seguindo os

Idia bsica:

comportamento

cognitivo
Qual a
melhor
direo?
comida: 8
comida: 5

comida: 10
Um indivduo lembra do conhecimento passado

Idia bsica:

pssaro 1

comportamento social

Qual a
melhor
direo?

pssaro 3

comida: 2

comida: 1

pssaro 2

comida: 3

pssaro 4

comida: 4

Um indivduo adquire conhecimento dos


demais membros do grupo

Atualizao de velocidade e
posio
PSO tradicional Eberhart, R. C. and Kennedy, J. (1995)
Para cada agente ai :
inrcia

cognitivo

aprendizado social

vi = wvi + 1.rand().(pbesti - xi) + 2.rand().


(gbesti - xi)
xi = x i + v i
onde:
pbesti a melhor posio em que a partcula ai j
esteve
gbesti a melhor posio em que algum vizinho
de ai j esteve.

Incio
Inicialize as partculas com
posies aleatrias e velocidades
nulas
Calcular os valores fitness
Compare os fitness com os
melhores valores do indivduo
(pbest) e dos demais (gbest)
O critrio de
parada est
satisfeito?
NO

Atualize velocidades e
posies

SIM

Fim

Exemplo: 1 Iterao

Problema de minimizao
2

1. Inicializao as posies
2. Criando o vetor de
velocidades

melhor partcula
outra partcula

Exemplo: 2 Iterao

Problema de minimizao

2
3
1

1. Atualizando as posies
2. Modificando o vetor de
velocidades

melhor partcula
outra partcula

Termo de inrcia

Melhor posio individual (pbest)

Posio atual (x)


Melhor posio do indivduo (pbest)

Melhor posio global (gbest)

Posio atual (x)


Melhor posio do indivduo (pbest)
Melhor posio global (gbest)

Melhoramentos e Variantes
Reduo linear da ponderao de
inrcia;
Fator de constrio;
Modelos com Vizinhanas.

Fator de Constrio
Fator de Constrio foi introduzido
por Clerc e Kennedy (2002).
Tornou-se muito popular nos
algoritmos recentes de nuvem de
partcula.

Modelos com Vizinhanas


A cada partcula atribudo uma
vizinhana;
As vizinhanas tornam mais lento a
transmisso da melhor posio
atrves da nuvem;
Converge mais lentamente, mas
melhora a diversificao.

Armadilhas da tcnica PSO


As partculas tendem a se agrupar, ou seja,
devido a uma convergncia rpida demais, a
soluo fica presa em um ponto timo local
O movimento de alguma partcula pode ser
levado a um ponto de soluo infactvel
As partculas poder mapear um espao
inapropriado de solues factveis

Problema: Partculas tendem a se agrupar, reduzindo a


capacidade de movimentos da nuvem para solues
melhores.

Soluo: reiniciar algumas partculas em novas


posies, as quais podem mover-se para reas com
solues melhores. As demais partculas podem moverse para estas reas.

Incio
Inicialize as partculas em posies
aleatrias e velocidades nulas
Calcule os valores fitness
SIM

Achou um
critrio de
busca local?

Busca
local

NO

Compare/atualize os valores
dos fitness pbest e gbest
Critrio
de
parada?
NO

SIM

Fim

Atualize velocidades e
posies das partculas
NO

Critrio de
reinicializao

SIM

Reinicialize
algumas partculas

Restries da tcnica
Mapeamento das partculas em direo s
solues
Dimenses
Funo de fitness
Nmero de partculas
Estrutura do aprendizado social
Valores dos parmetros (1 2 w)
Como eliminar partculas em regies infactveis
Critrio de parada

Principais elementos
Intensificao a explorao das solues
encontradas em procuras anteriores
Diversificao a busca por solues ainda no
visitadas
Encontrar
Intensifica
o equilbrio Diversifica
o

Encontra
rapidamente a
melhor soluo de
uma regio

Identifica rapidamente
regies com potencial
para melhores
solues

Exemplo
Utilizar o algoritmo de PSO para encontrar pontos de
mnimo da funo abaixo, usando as 3 partculas
dadas abaixo:

pso

Pesquisas atuais de PSO


PSO com termos sociais mltiplos
Diferentes ndices de medidas para PSO
Partculas heterogneas
PSO hierrquico
PSO para o problema de escalonamento de
tarefas(JSS)
PSO para roteamento de veculos
PSO para extrao de regras de RNA
PSO para problemas com restries de recursos

Adaptaes da PSO para o PCV


[M. Clerc, 2004; T. R. Machado e H. S. Lopes, 2005]
Partculas
Em PCV procuramos ciclos com N+1 vrtices. Logo uma
partcula consiste em um ciclo com as cidades do PCV:
x = (n1, n2, , nN, nN+1)
Esta partcula somente aceita se todos os arcos (ni, ni+1)
existem

Funo de fitness
N

c
i 1

ni , ni 1

Velocidade
Definir um operador v que quando aplicado a uma partcula
retorna uma outra posio.

Definimos ento uma lista de transposies de elementos


da partcula. Estas transposies so trocas de 2 a 2:
v = {(ik, jk)}, onde ik, jk {1, 2,, N}
que significa: troque os elementos (i1, j1), depois (i2, j2), at
k.

Movimento
O movimento da partcula obtido aplicando-se a
velocidade partcula: x=x + v.
Exemplo: x=(1, 2, 3, 4, 5, 1), v={(1, 2), (2, 3)}
com a primeira troca (1, 2), temos: x=(2, 1, 3, 4, 5, 2)
com a segunda troca (2, 3), temos x=(3, 1, 2, 4, 5, 3)

Subtrao
A diferena xi xj definida como a velocidade que deve ser
aplicada na posio xj para obter a posio xi. Quando xi =
xj, temos v = 0

Adio
O resultado da soma de duas velocidade vi + vj a lista de
transposies primeiro de vi, depois de vj.

Multiplicao de escalar por vetor


quando c = 0, temos cv =
quando c [0, 1], trunca-se v.
Exemplo:
c = 0,6; e v = {(1, 2), (3, 5), (17, 23), (7, 3), (8, 19)}
logo, cv = {(1, 2), (3, 5), (17, 23)}
quando c > 1, defina c = k + c, onde k N, e c [0, 1].
logo, cv = v + v ++ v + cv
k vezes

vi = wvi + 1.rand().(pbesti - xi) +


2.rand().(pgbesti - xi)
xi = xi + vi

PSO com estruturas de mltiplos grupos


sociais [Pongchairerks, Kachitvichyanukul, 2006]
A combinao dos vetores pbest, pgbest, lbest e
nbest direciona uma partcula para melhores
posies do que um PSO padro.

pbest

PSO com mltiplas


pbest estruturas sociais

PSO padro

pgbest

pgbest

nbest lbest

Mais aplicaes
PSO trata-se de uma tcnica atrativa, porque :
computacionamente barata
robusta
simples

Outras aplicaes:
Controle de veculos por controle remoto
Controle para detectar e eliminar tumores
O filme da Disney O Rei Leo foi o primeiro a usar
tecnologia de nuvem de partculas para fazer a cena da
debandada de pssaros. O filme da New Line Cinema O
Senhor dos Anis tambm utilizou tcnicas
semelhantes nas cenas de batalhas.
Rplica de dados em grade