_____________________________________________________________________________
Otimização com
Simulated Annealing e Tabu Search
Marcílio Souto
DIMAp/UFRN
_____________________________________________________________________________
Otimização
– Problema de Otimização:
• Sendo S o conjunto de soluções possíveis, em que cada solução
tem um custo, o objetivo é encontrar a solução com menor
custo possível.
• Ex.: Problema do Caixeiro Viajante.
A
3
2
5
4
4
E
5
B
6
4
3
D
5
C
– Soluções possíveis:
• Todos os percursos fechados
passando por cada cidade uma
única vez.
– Função de custo:
• Distância total do percurso.
_____________________________________________________________________________
Algoritmo Hill Climbing (Subida da Encosta)
– Estrutura básica:
Escolhe aleatoriamente uma solução inicial.
Enquanto critérios de parada não forem satisfeitos,
Gera uma nova solução (vizinha) a partir da atual.
Se (custo da solução nova < custo da solução atual),
Aceita solução nova.
Se não,
Rejeita solução nova (continua com a atual).
– Limitação:
• Facilidade de ficar preso em mínimos locais.
– Todas as soluções vizinhas têm custo maior.
_____________________________________________________________________________
Simulated Annealing e Tabu Search
– Simulated Annealing:
• Procura minimizar esta limitação, permitindo aceitar
vizinhos piores com uma certa probabilidade.
– Tabu Search:
• Procura minimizar esta limitação, aceitando sempre os
vizinhos gerados e guardando a melhor solução
encontrada.
_____________________________________________________________________________
Simulated Annealing
– Idéia básica:
• Se a nova solução for melhor que a atual (custo menor),
esta nova solução é aceita.
• Se for pior, a nova solução pode ser aceita com uma dada
probabilidade.
• Esta probabilidade é controlada por um parâmetro
chamado de temperatura, que diminui ao longo das
iterações.
_____________________________________________________________________________
Simulated Annealing
– Estrutura básica:
Escolhe aleatoriamente uma solução inicial.
Enquanto critérios de parada não forem satisfeitos,
Gera uma nova solução (vizinha) a partir da atual.
Se (custo da solução nova < custo da solução atual),
Aceita solução nova.
Se não,
Pode aceitar solução nova com probabilidade
p = exp (–(custo da sol. nova – custo da sol. atual) / temperatura)
Retorna solução atual.
– Obs.: O parâmetro temperatura diminui a cada N iterações.
_____________________________________________________________________________
Simulated Annealing
– Probabilidade de aceitar a nova solução (se o custo aumentar):
p = exp (–(custo da sol. nova – custo da sol. atual) / temperatura)
aumento no custo
• Mantendo fixo o aumento no custo, se a temperatura diminuir,
a probabilidade diminui.
– Ao longo das iterações, fica mais difícil aceitar soluções que
aumentam o custo.
• Mantendo fixa a temperatura, se a variação no custo
aumentar, a probabilidade diminui.
– Em uma mesma iteração, quanto maior o aumento no custo,
mais difícil é aceitar a nova solução.
_____________________________________________________________________________
Simulated Annealing
– Implementação da probabilidade de escolha (critério de
Metropolis):
• Gera-se um número aleatório retirado de uma distribuição
uniforme no intervalo [0, 1].
• Se este número for menor ou igual a “p”, aceita-se a
solução.
• Se for maior que “p”, rejeita-se a solução.
_____________________________________________________________________________
Simulated Annealing
– Resolvendo um problema com Simulated Annealing:
• Representação das soluções:
– Como as soluções do problema serão representadas no
espaço de busca.
• Função de custo:
– Como será calculado o custo de cada solução.
• Operador (mecanismo de geração de vizinhos):
– Como novas soluções serão geradas a partir da atual.
• Esquema de esfriamento:
– Como a temperatura será reduzida ao longo das iterações.
• Máximo número de iterações permitidas.
_____________________________________________________________________________
Problema do Caixeiro Viajante
– Representação das soluções:
• Seqüência de cidades do percurso.
• Ex.: s = [B,D,E,C,A]
– Função de custo:
A
3
• Distância total do percurso.
• Ex.: custo (s) = 6 + 4 + 5 + 4 + 2 = 21
2
5
4
4
E
5
B
6
4
3
D
5
C
– Operador:
• Permutar 2 cidades consecutivas
escolhidas aleatoriamente.
• Ex.: s’ = [B,E,D,C,A]
– Esquema de esfriamento:
• Temperatura inicial:
• Regra de esfriamento:
– Máximo de 5 iterações.
T0 = 1
Ti+1 = 0.9 Ti
_____________________________________________________________________________
Problema do Caixeiro Viajante
Iteração Temp.
Solução
Custo
0
1 BDECA
21
1
0.9 BDEAC
20
2
0.81 BDAEC
22
3
0.73 BADEC
19
4
0.66 BADCE
21
5
0.59 BAEDC
17
Aleatório
Solução final: BAEDC – Custo: 17
Probabilidade
Aceita?
S
0.02 e – (22 – 20)/0.81 = 0.085
S
S
0.13 e – (21 – 19)/0.66 = 0.047
N
S
_____________________________________________________________________________
Tabu Search
– Idéia básica:
• A partir da solução atual, gerar um conjunto de novas
soluções.
• Aceitar sempre a melhor solução deste conjunto.
– Pode ser melhor ou pior que a solução atual.
– Pode haver ciclos na trajetória (aceitar soluções que já foram
visitadas).
• Guardar na memória:
– A melhor solução encontrada desde o início da execução.
– Uma lista tabu, contendo as K soluções mais recentemente
visitadas. Estas soluções são proibidas (para evitar ciclos).
• A solução final dada pelo algoritmo é a melhor solução
encontrada desde o início da execução, e não a atual.
_____________________________________________________________________________
Tabu Search
– Estrutura básica:
Escolhe aleatoriamente uma solução inicial.
Guarda a solução em melhor solução e na lista tabu.
Enquanto critérios de parada não forem satisfeitos,
Gera um conjunto de N soluções vizinhas a partir da atual.
Escolhe o vizinho de menor custo que não esteja na lista tabu.
Atualiza melhor solução e lista tabu.
Retorna melhor solução.
– Obs.: A lista tabu guarda as K soluções mais recentemente visitadas
ou as K alterações mais recentes, dependendo da abordagem.
_____________________________________________________________________________
Problema do Caixeiro Viajante
– Representação das soluções:
• Seqüência de cidades do percurso.
• Ex.: s = [B,D,E,C,A]
– Função de custo:
A
3
• Distância total do percurso.
• Ex.: custo (s) = 6 + 4 + 5 + 4 + 2 = 21
2
5
4
4
E
5
B
6
4
3
D
5
C
– Operador:
• Permutar 2 cidades consecutivas,
gerando 5 vizinhos por iteração.
• Ex.: s1 = [D,B,E,C,A]
s2 = [B,E,D,C,A]
s3 = [B,D,C,E,A]
s4 = [B,D,E,A,C]
s5 = [A,D,E,C,B]
– Máximo de 2 iterações.
_____________________________________________________________________________
Problema do Caixeiro Viajante
Iteração
Solução Atual
– Custo
Lista
Tabu
BEDCA
Melhor Solução –
Custo
Vizinhos – Custo
EBDCA – 22
BDECA – 21
0 BEDCA – 19
BEDCA – 19 BECDA – 21
BEDAC – 20
AEDCB – 17 
1 AEDCB – 17
BEDCA
EADCB – 20
AEDCB
ADECB – 19 
AEDCB – 17 AECDB – 21
AEDBC – 20
BEDCA – 19 X
_____________________________________________________________________________
Problema do Caixeiro Viajante
Iteração
Solução Atual
– Custo
Lista
Tabu
Melhor Solução –
Custo
Vizinhos – Custo
BEDCA
EADCB – 20
AEDCB
ADECB – 19 
1 AEDCB – 17
AEDCB – 17 AECDB – 21
AEDBC – 20
BEDCA – 19 X
2 ADECB – 19
BEDCA
DAECB – 22
AEDCB
AEDCB – 17 X
ADECB
AEDCB – 17 ADCEB – 21
ADEBC – 20 
BDECA – 21
Solução final: AEDCB – Custo: 17
_____________________________________________________________________________
Observações Importantes
– Esforço computacional por iteração:
• Uma iteração de Tabu Search exige mais esforço
computacional do que uma iteração de Simulated
Annealing (mais vizinhos são avaliados).
• Por este motivo, em geral, Tabu Search precisa de menos
iterações para convergir do que Simulated Annealing.
– Variações dos algoritmos:
• Existem diversas variações de Simulated Annealing e Tabu
Search.
• Nesta aula, só foram vistas noções básicas.
_____________________________________________________________________________
Simulated Annealing e Tabu Search para
Treinamento de Redes MLP
– Representação:
• Cada rede é representada por um vetor contendo seus pesos.
• Ex.: Para a topologia abaixo, temos:
(2 x 2) + (2 x 1) = 6 conexões.
w1
w5
w3
w2
s = [w1, w2, w3, w4, w5, w6]
w6
w4
Obs.: Os termos de polarização (bias) também são representados na
solução, pois geralmente são ajustáveis.
_____________________________________________________________________________
Simulated Annealing e Tabu Search para
Treinamento de Redes MLP
– Função de custo:
• Erro para o conjunto de treinamento.
– Ex.: SSE ou Erro de Classificação.
• SSE:
Saídas da rede:
Saídas desejadas:
0.98 0.12 ... 0.16
1.00 0.00 ... 0.00
SSE = (0.98 – 1.00)2 + (0.12 – 0.00)2 + ... + (0.16 – 0.00)2.
• Erro de Classificação:
Erro Class. = 100 . Nº de padrões classificados erradamente pela rede
Nº total de padrões
_____________________________________________________________________________
Simulated Annealing e Tabu Search para
Treinamento de Redes MLP
– Operador (geração de soluções novas):
• A cada peso, adicionar um número aleatório retirado de
uma distribuição uniforme no intervalo [-n , +n].
• Ex.: Aleatórios na faixa [-1, +1].
Solução atual = [0.2, -0.1, 0.7, 0.5, -0.3, -0.9]
Aleatórios
= [0.1, 0.2, -0.3, -0.7, 0.6, 0.2]
Solução nova = [0.3, 0.1, 0.4, -0.2, 0.3, -0.7]
_____________________________________________________________________________
Observações Importantes
– Overfitting:
• Assim como backpropagation, Simulated Annealing e Tabu
Search procuram o conjunto de pesos que minimiza o erro
de treinamento.
• Da mesma forma, deve-se evitar o overfitting (erro alto
para dados não usados no treinamento).
– Funções de ativação:
• Diferentemente do treinamento com backpropagation, os
neurônios não precisam ter funções de ativação contínuas
(diferenciáveis).
• Ex.:
f (x)
1
0
Função do tipo degrau (step).
x
_____________________________________________________________________________
Bibliografia Sugerida
– Introdução de Simulated Annealing e Tabu Search:
• D.T. Pham and D. Karaboga, “Introduction”, Intelligent
Optimisation Techniques (Edited by D.T. Pham and D.
Karaboga), pp. 1-50, Springer-Verlag, 2000.
– Simulated Annealing para treinar redes neurais:
• S. Chalup and F. Maire, “A Study on Hill Climbing Algorithms
for Neural Network Training”, Proceedings of the 1999 Congress
on Evolutionary Computation (CEC’99), Volume 3, pp. 20142021, Washington, D.C., USA, July 6-9, 1999.
– Tabu Search para treinar redes neurais:
• R. S. Sexton, B. Alidaee, R. E. Dorsey and J. D. Johnson, “Global
optimization for artificial neural networks: a tabu search
application”, Eur. J. Operational Research (106)2-3, pp. 570-584,
1998.
Download

Simulated Annealing and Tabu Search