Escolar Documentos
Profissional Documentos
Cultura Documentos
Populacionais
Cleber Zanchettin
Tpicos
Simulated Annealing
Tabu Search
Algoritmos Evolutivos
Algoritmos Genticos
Programao Evolutiva
Estratgia Evolutiva
Programao Gentica
Inteligncia de Enxames
Ant Colony Optimization
Particle Swarm Optimization
2
Simulated Annealing e Tabu Search
Cleber Zanchettin
UFPE - Universidade Federal de Pernambuco
CIn - Centro de Informtica
3
Hill Climbing (Subida da Encosta)
Problema de Otimizao:
Seja S o conjunto de solues possveis, em que cada
soluo tem um custo associado.
Objetivo: Encontrar a soluo com menor custo.
Mtodo Hill Climbing:
1 - Escolhe aleatoriamente uma soluo.
2 - Gera uma nova soluo (vizinha) a partir da atual.
3 - Se custo (soluo nova) < custo (soluo atual),
Aceita soluo nova.
Se no,
No aceita soluo nova (continua com a atual).
4 - Repete 2 e 3 at terminarem as iteraes permitidas.
4
Hill Climbing (Subida da Encosta)
5
Simulated Annealing
Idia bsica:
Se a nova soluo gerada for melhor que a atual (melhor =
menor custo), esta nova soluo aceita.
Se for pior, a nova soluo pode ser aceita com uma dada
probabilidade.
Esta probabilidade controlada por um parmetro chamado
de temperatura, que diminui ao longo das iteraes.
6
Simulated Annealing
Estrutura bsica:
1 - Escolhe aleatoriamente uma soluo.
2 - Gera uma nova soluo (vizinha) a partir da atual.
3 - Se custo (soluo nova) < custo (soluo atual),
Aceita soluo nova.
Se no,
Aceita soluo nova com probabilidade:
p = exp [ (custo(sol. nova) custo(sol. atual)) / Temperatura]
4 - Repete 2 e 3 at terminarem as iteraes permitidas.
Observao:
O parmetro Temperatura vai diminuindo a cada N
iteraes.
7
Simulated Annealing
8
Simulated Annealing
Implementao:
Representao das solues:
Como as solues sero consideradas no espao de busca.
Funo de custo (ou avaliao):
Nota atribuda a cada soluo.
Operador (ou mecanismo de gerao de vizinhos):
Como novas solues sero geradas a partir da atual.
Esquema de esfriamento:
Como a temperatura ser reduzida ao longo da execuo.
Mximo nmero de iteraes.
9
Problema do Caixeiro Viajante
10
Problema do Caixeiro Viajante
3 0.73 BADEC 19 S
11
Tabu Search
Idia bsica:
A partir da soluo atual, gerar um conjunto de novas
solues.
Aceitar sempre a melhor soluo deste conjunto.
Pode ser melhor ou pior que a soluo atual.
Pode haver ciclos na trajetria (aceitar solues que j foram
visitadas).
Guardar na memria:
A melhor soluo encontrada desde o incio da execuo.
Uma Lista Tabu, contendo as K solues mais recentemente
visitadas. Estas solues so proibidas (para evitar ciclos).
A soluo final dada pelo algoritmo a melhor soluo
encontrada desde o incio da execuo, e no a ltima.
12
Tabu Search
Estrutura bsica:
1 - Escolhe aleatoriamente uma soluo.
2 - Guarda a soluo em melhor soluo e na lista tabu.
3 - Gera um conjunto de N solues vizinhas atual.
4 - Aceita a soluo de menor custo entre os N vizinhos
(que no esteja na lista tabu).
5 - Atualiza melhor soluo e insere a nova soluo na
lista tabu.
6 - Repete 3 a 5 at terminarem as iteraes permitidas.
7 - Retorna melhor soluo.
Observao:
A lista tabu guarda as K solues mais recentemente
visitadas.
13
Busca Tabu
Fred Glover (1986) & Pierre Hansen (1986)
14
1o Princpio: Mover para o melhor vizinho
15
1o Princpio: Mover para o melhor vizinho
16
1o Princpio: Mover para o melhor vizinho
17
1o Princpio: Mover para o melhor vizinho
18
1o Princpio: Mover para o melhor vizinho
Problema: Ciclagem
19
2o Princpio: Criar Lista Tabu
TABU
20
2o Princpio: Criar Lista Tabu
21
Problema do Caixeiro Viajante
22
Problema do Caixeiro Viajante
23
Problema do Caixeiro Viajante
24
Observaes Finais
Lista Tabu:
Para problemas em que a soluo uma seqncia binria,
comum armazenar na lista tabu apenas a posio do bit que foi
modificado, em vez de guardar toda a soluo.
Esforo computacional por iterao:
Uma iterao de Tabu Search exige mais esforo computacional
do que uma iterao de Simulated Annealing (mais operaes).
Porm, em geral, Tabu Search precisa de menos iteraes para
convergir, pois avalia um conjunto de vizinhos a cada iterao.
Variaes dos algoritmos:
Diversas melhorias foram propostas para Simulated Annealing e
Tabu Search; o que foi visto nesta aula so apenas as noes
bsicas destes algoritmos.
25
Applet
http://natcomp.liacs.nl/NC/applets/SimulatedAnnealingTSPApplet/Simul
atedAnnealingTSPApplet.html
http://siebn.de/other/tabusearch/
26
Bibliografia
27
Computao Evolutiva
Etapas:
Do forever
Selecione um membro da populao para ser o Pai
A Estocasticidade:
Faz com que precisemos executar esse algoritmo por vrias iteraes
Executar para sempre?
No, pois precisamos de uma soluo
Quando chegamos em uma boa soluo
Podemos analisar se esse algoritmo est convergindo em
termos de fitness
Para isso podemos plotar o fitness mdio da populao e
seu desvio a cada iterao
Assim chegamos em um nmero razovel de iteraes
Ou podemos colocar essa variao como critrio de
parada automtico!
Friedman (1956)
Podemos ver a Computao Evolutiva como rea que permite modelar
sistemas que evoluem ao longo do tempo (dinmicos)
Assim podemos modelar esses sistemas dinmicos:
Ex: Comportamento do crescimento da populao humana
Ou at mesmo utilizar a rea para controle adaptativo:
Ex: existe um sistema A que observamos, coletamos seus dados e
utilizamos Computao Evolutiva para adaptar parmetros desse
sistema A
Prof. Rodrigo Fernandes de Mello
Computao Evolutiva
Rechenberg (1965)
Comea a estudar a soluo de problemas complexos de otimizao
usando Computao Evolutiva
Fogel et al (1966)
Uso de agentes inteligentes
Mquinas de estado finito
Desenvolve a programao evolutiva
Holland (1967)
Estudou o emprego de Computao Evolutiva para modelar sistemas
adaptativos
Desenvolveu conceitos que levaram, mais tarde, aos algoritmos
genticos mais simples
Prof. Rodrigo Fernandes de Mello
Computao Evolutiva
Programao Evolutiva:
Fogel et al (1976)
Sugere reproduo:
Assexuada (mutao)
Sexuada (recombinao)
Estratgia Evolutiva:
Gerar populaes
Definir funes de fitness mais adequadas para determinados
problemas
Operadores de mutao e recombinao
Logo...
Os algoritmos anteriores:
Produzem um pequeno nmero de Filhos
Pode ser que deixemos de explorar possibilidades com isso
Rechenberg (1965)
Prope a seguinte tcnica chamada 1:5
Se mais de 20% dos indivduos mutados vencem na competio,
ento o percentual de mutao utilizado muito conservative
Se menos de 20% dos indivduos mutados vencem na
competio, ento a variao causada pela mutao negative
Muito explorative
Taxa de mutao deveria ser reduzida
46
Indivduo
Cromossomo
Estrutura de dados que representa uma possvel
soluo para o problema.
Os parmetros do problema de otimizao so
representados por cadeias de valores.
Exemplos:
Vetores de reais, (2.345, 4.3454, 5.1, 3.4)
Cadeias de bits, (111011011)
Vetores de inteiros, (1,4,2,5,2,8)
ou outra estrutura de dados.
47
Individuo (II)
Aptido
Nota associada ao indviduo que avalia quo boa a
soluo por ele representada.
Aptido pode ser:
Igual a funo objetivo (raramente usado na prtica).
Resultado do escalonamento da funo objetivo.
Baseado no ranking do indviduo da populao.
48
Cromossomo do Problema 1
49
Seleo
Seleo
Imitao da seleo natural.
Os melhores indivduos (maior aptido) so
selecionados para gerar filhos atravs de crossover e
mutao.
Dirige o AG para as melhores regies do espao de
busca.
Tipos mais comuns de seleo
Proporcional a aptido.
Torneio.
50
Populao Inicial do Problema 1
f ( xi )
Probabilidade de seleo pi
N
proporcional a aptido
k 1
f ( xk )
51
Seleo proporcional
a aptido (Roleta)
Pais selecionados
8,7%
A1 = 1 1 0 0 1
A4
17,1% A2 = 0 1 1 1 1
54,5% A3
A1 A2 = 0 1 1 1 1
19,6%
A2 A1 = 1 1 0 0 1
52
Seleo por Torneio
53
Crossover e Mutao
54
Crossover de 1 ponto
O Ponto de
corte
O crossover aplicado escolhido
1 1 0 0 1 aleatriamente
com uma dada Pais
probabilidade 01111
denominada taxa de
crossover (60% a 90%) 11011
Filhos
01101
55
Mutao
56
A primeira gerao
do Problema 1
Pais Filhos
crossover mutao
A1 = 1 1 0 0 1 11011 11011
A2 = 0 1 1 1 1 01101 00101
Nova
crossover mutao pop.
A2 = 0 1 1 1 1 01111 10111
A1 = 1 1 0 0 1 11001 11001
57
A primeira gerao
do Problema 1 (II)
cromossomos prob. de
x f (x )
seleo
1 11011 27 729 29,1%
2 11001 25 625 24,9%
3 11001 25 625 24,9%
4 10111 23 529 21,1%
58
As demais geraes
do Problema 1
x f (x )
1 110 11 27 729
Segunda Gerao
2 110 00 24 576
3 101 11 23 529
4 101 01 21 441
x f (x )
Terceira Gerao 1 1101 1 27 729
2 1011 1 23 529
3 0111 1 15 225
4 0011 1 7 49
59
As demais geraes
do Problema 1 (II)
x f (x )
1 111 11 31 961
Quarta Gerao
2 110 11 27 729
3 101 11 23 529
4 101 11 23 529
x f (x )
Quinta Gerao 1 111 11 31 961
2 111 11 31 961
3 111 11 31 961
4 101 11 23 529
60
Problema 2 TSP para 30 cidades
61
Problema 3 Primeira soluo
62
Problema 3 Segunda soluo
63
Problema 3 Terceira soluo
64
Problema 3 Melhor soluo
65
Problema 3 Progresso da evoluo
66
Elitismo
67
Elitismo no Problema 2
3,0
AG com elitismo
2,8 AG sem elitismo
Funo objetivo
2,6
2,4
2,2
2,0
0 5 10 15 20 25
Gerao
68
Computao Evolutiva: Algoritmos Genticos
Questes relevantes:
H problemas em que os operadores de mutao e crossover devem ser
adaptados
Pode ser que um indivduo no seja representado por um vetor
binrio, mas sim por um vetor de inteiros ou caracteres, ou at
mesmo por uma matriz
Formas mais complexas de codificao de indivduos tambm tm
sido propostas
Codificar usando rvore, por exemplo
Pode-se propor novos operadores
Isso tem se tornado comum para resolver problemas especficos
H ainda problemas multiobjetivo
Podemos simplificar vrios objetivos em uma nica funo de fitness
Ou podemos utilizar dois ou mais objetivos em conjunto
71
Particle Swarm Optimization (Pso)
72
Exemplo de cooperao
73
Idia principal
geogrfica
social
Vizinhana
Global
Vizinhana circular
1
3-vizinhana da
8 2
partcula 1
7 3
Crculo virtual 6 4
5
As partculas ajustam sua posio de acordo com
um compromisso psicossocial entre o conforto de
um indivduo e o que a sociedade reconhece
My best
perf.
pi
Here I am! The best perf. of
x my neighbours
pg
v
Pseudocode
http://www.swarmintelligence.org/tutorials.php
Equation (a)
v[] = c0 *v[]
+ c1 * rand() * (pbest[] - present[])
+ c2 * rand() * (gbest[] - present[])
(in the original method, c0=1, but many
researchers now play with this parameter)
Equation (b)
present[] = present[] + v[]
Pseudocode
http://www.swarmintelligence.org/tutorials.php
Do
For each particle
Calculate fitness value
If the fitness value is better than its peronal best
set current value as the new pBest
End
Choose the particle with the best fitness value of all as gBest
For each particle
Calculate particle velocity according equation (a)
Update particle position according equation (b)
End
While maximum iterations or minimum error criteria is not attained
Pseudocode
http://www.swarmintelligence.org/tutorials.php
timo
global
Parametros
Nmero de partculas
C0 (importncia da posio atual)
C1 (importncia do personal best)
C2 (importncia do neighbourhood best)
2002-04-24
Parmetros
Vmax
muito baixo, muito lento
muito alto, muito instvel.
Exemplos de aplicao
Griewank Rastrigin
Rosenbrock
... resultados
timo=0, dimenso=30, melhor resultado aps 40.000 iteraes
R astrigin [ 5 ] 8 2 .9 5 6 1 8 4 6 .4 6 8 9
R o sen b ro ck [ 1 0 ] 5 0 .1 9 3 8 7 7 1 6 1 0 .3 5 9
Applet PSO
http://natcomp.liacs.nl/NC/applets/SwarmApplet/SwarmApplet.html
http://www.projectcomputing.com/resources/psovis/
http://web.ist.utl.pt/gdgp/VA/pso.htm
90
PSO - Referncias
91
Otimizao por Colnia de
Formigas (ACO)
Inspirao Biolgica
Proposto por Dorigo e Gambardella em 1997
ACO (Ant Colony Optimization)
Principal aplicao no PCV
Programao do algoritmo
Inspirao Biolgica
Metaheurstica baseada em uma populao de formigas
Relao com o comportamento na busca de alimento ou
deslocamento.
Muitas espcies de formigas so quase cegas
A comunicao atravs de feromnios (usado para criar
caminhos trilhas de formigas)
Ao caminhar, as formigas depositam no cho o feromnio,
formando, uma trilha
Atravs do olfato, as formigas escolhem, conforme a
probabilidade, o caminho com maior feromnio
Esta trilha auxilia a formiga a encontrar o alimento e a
volta ao formigueiro, alm de ajudar as outras formigas a
encontrar o alimento
O experimento da ponte binria
Experimento realizado por Denebourg et al., 1990, para
estudar o comportamento forrageiro das formigas
No incio, as formigas so deixadas livres para escolher o
caminho. No h feromnio ainda
ou
Usando pontes de tamanhos diferentes, as formigas
convergem para a ponte mais curta
A ponte curta percorrida em menos tempo, fazendo com
que mais formigas a atravessem. Logo, mais feromnio
depositado
As formigas escolhem, com maior probabilidade a ponte
mais curta (com mais feromnio)
Mtodo da Colnia de Formigas
Formigas artificiais so heursticas construtivas
Solues contrudas de forma probabilstica utilizando
duas informaes
A trilha de feromnios (artificial) muda dinmicamente
durante a execuo do programa
A informao heurstica especfica do problema a ser
resolvido
Ant System
Proposto por Marco Dorigo e colaboradores (DORIGO et
al., 1991)
O Ant System o primeiro algoritmo que surgiu
inspirado em colnia de formigas.
Peculiaridades do ambiente das formigas utilizadas:
Ao tomar um caminho a formiga deixa no mesmo uma certa
quantidade de feromnio;
Uma formiga escolhe determinado caminho de acordo com uma
funo probabilstica envolvendo a distncia deste caminho e
a quantidade de feromnio presente neste;
As formigas lembram os pontos por onde j passaram e no
retornam a estes pontos at que tenham chegado fonte de
alimento.
ACO aplicado ao PCV
Matriz de distncias
dij 1 2 3 4 5
1 0,0 1,0 2,2 2,0 4,1
2 1,0 0,0 1,4 2,2 4,0
3 2,2 1,4 0,0 2,2 3,2
4 2,0 2,2 2,2 0,0 2,2
5 4,1 4,0 3,2 2,2 0,0
Cidades do PCV
Cada formiga ir construir uma soluo movendo-se de
uma cidade para outra. No incio, cada formiga colocada
em uma cidade diferente (ou colocada aleatoriamente)
Comeando de uma cidade i, a formiga move-se escolhendo
probabilisticamente a cidade vizinha j (entre os vizinhos
factveis)
Probabilidade de Transio
A probabilidade da formiga k que est na cidade i de
escolher a cidade j dada pela regra
ij ij
pijk , quando j N ik
il jl
lN kj
em que:
ij o feromnio associado aresta (i, j)
e so parmetros para determinar a influncia do
feromnio e da informao heurstica
Njk a vizinhana factvel da formiga k (isto , o conjunto
de cidades ainda no visitadas pela formiga k).
Informao heurstica do PCV
Associada a aresta (i, j) existe um valor heurstico ij dado
por
ij = 1/dij
que representa a atratividade da formiga visitar a cidade i
depois de visitar a cidade j
O valor ij inversamente proporcional a distncia dij
entre as cidades i e j
A partir de uma cidade i, a escolha da cidade candidata j
feita de acordo com a probabilidade de transio, com
idia similar escolha por roleta de algoritmos genticos
Exemplo
Considere o PCV dado abaixo pela matriz de distncias,
= = = 0,5, e a matriz de feromnios iniciais:
dij 1 2 3 4 5 ij 1 2 3 4 5
1 0,0 1,0 2,2 2,0 4,1 1 0,30 0,25 0,20 0,30
2 1,0 0,0 1,4 2,2 4,0 2 0,30 0,20 0,20 0,30
3 2,2 1,4 0,0 2,2 3,2 3 0,25 0,20 0,10 0,15
4 2,0 2,2 2,2 0,0 2,2 4 0,20 0,20 0,10 0,45
5 4,1 4,0 3,2 2,2 0,0 5 0,30 0,30 0,15 0,45
lN kj aco
Passo 1
Passo 2
Passo 3
Passo 4
Trmino da Primeira Iterao
Algoritmo
Coloque cada formiga em uma cidade aleatria
Para t = 1 at o nmero de iteraes
Para k = 1 at m (n de formigas)
Enquanto a formiga k no construir a viagem Sk
Selecione a prxima cidade pela regra da probabilidade
Fim
Calcule a distncia Lk da viagem Sk
Se Lk < L* ento
S* = Sk, L* = Lk
Fim
Fim
Atualize os feromnios
Fim
Retornar S*
Atualizao do Feromnio
No feromnio ij associado a aresta (i, j) ocorrem dois eventos:
1. Evaporao
evita que o feromnio acumulado cresa
indefinidamente
permite esquecer pobres decises do passado de busca
permite solues diferentes
2. Depsito de feromnio de todas as formigas que
passaram sobre (i, j)
Depois que todas as formigas construram suas viagens, o
feromnio atualizado
ijk a quantidade de feromnio que a formiga k
deposita sobre a aresta (i, j):
http://natcomp.liacs.nl/NC/applets/AntsApplet/AntsApplet.html
http://www.openprocessing.org/sketch/15109
http://www.djoh.net/inde/ANTColony/applet.html
120