Buscar

aula t 2 _SA_

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 38 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 38 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 38 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

1
Simulated Annealing (S.A.)
O annealing (anelamento, têmpera, recozimento, cristalização)
de certos materiais consiste em submetê-los inicialmente a
altas temperaturas e reduzi-las gradualmente até atingirem,
com aumentos e reduções do estado de energia, o equilíbrio
térmico, tornando-os assim, consistentes e rígidos.
A técnica matemática de Simulated Annealing faz uma
simulação algorítmica do processo físico da têmpera de
materiais. A idéia de aplicar este método para resolver
problemas de otimização combinatória surgiu com Kirkpatrick
et al., 1983 e Aragon et al., 1984.
(têmpera simulada ou anelamento simulado) 
Exemplo 1: Suponha o Problema de Caixeiro Viajante (PCV) constituído de cinco pontos,
dada a matriz com as distâncias inteiras mínimas aproximadas entre todos os pares de pontos.
Determine uma solução ( ótima ou quase ótima) do PVC aplicando a meta-heurística
Simulated Annealing.
A B C D E
A 0 1 1 4 2
B 1 0 4 1 4
C 1 4 0 5 3
D 4 1 5 0 4
E 2 4 3 4 0
•Dados os parâmetros a serem adotados para resolução do problema:
•Nº máximo de iterações → M = 3
•Fator de redução de temperatura → α = 0,9
•Nº máximo de perturbações por iteração → P=3
•Limite de sucessos por iteração (perturbações aceitas a cada iteração) →L = 3
•Adote o número randômico rdn = 0,5 como limite para aceitação ou rejeição 
de uma solução quando esta causar um aumento de energia no processo. 
OBS: Caso não tivéssemos dada a matriz com as 
distâncias mínimas poderíamos obtê-la através da 
aplicação do algoritmo de FLOYD como já foi visto na 
disciplina de Métodos Heurísticos.
3
Determinação da estimativa da temperatura inicial T0: A estimativa da temperatura inicial,
segundo Johnson et al. (1987) poderá ser calculada da seguinte forma:
1) (C,D,E,A,B) C → Energia = 5+4+2+1+4=16
2) (A,B,C,D,E) A → Energia = 1+4+5+4+2=16
3) (E,D,C,B,A) E → Energia = 4+5+4+1+2=16
4) (C,A,E,D,B) C → Energia = 1+2+4+1+4=12
5) (C,D,B,E,A) C → Energia = 5+1+4+2+1=13
 0,8. menteaproximada a igual almente)experiment (obtido empírico fixovalor 
(energia). objetivo função da 
os)(increment variações das es,perturbaçõ de radômico nº um para ,aritmética médiaE :onde 

 
0ξ
A B C D E
A 0 1 1 4 2
B 1 0 4 1 4
C 1 4 0 5 3
D 4 1 5 0 4
E 2 4 3 4 0
 0variação 
 0variação 
 4variação 
 1variação 
   
68,5
22,0
25,1
8,0ln
25,1
ln
25,1
4
1400













0ξ
E
T
E
:Logo
0
Exemplo: Suponha que através de um processo aleatório obtivemos a seguinte amostra de 
cinco soluções viáveis:
Obs: Esta temperatura T0 =5,68 deverá ser adotada para
toda a 1ª iteração. Na sequencia, ao início de cada
iteração, esta temperatura sofrerá um decréscimo (taxa
de resfriamento) gradual e controlado conforme será
observado no desenvolvimento da solução do problema.
 
 
E
T 0
0ξln


Variação em módulo:
 esta. adotaremos aqui
),(T inicial atemperatur aestimar de formas outras Existem :OBS 0
4
Solução do exemplo 1:
Solução inicial (S0) (escolha aleatória de uma solução qualquer):
S0 = (C,D,E,A,B) C → Energia →E0 = 5+4+2+1+4=16
Solução (S1)= Uma perturbação sobre S0 = (C,D,E,A,B) C → E0 =16, é um processo aleatório.
Por exemplo: Troca, entre si, as posições entre C e A.
S1 = (A,D,E,C,B) A → E1 = 4+4+3+4+1=16
Variação de energia: ∆E= E1 – E0 =16-16=0 →Nem aumentou e nem diminuiu a energia,
então podemos aceitar a solução S1.
Nº de sucessos (nº de aceitações) , L= 1
Nº de perturbações executadas , P = 1
OBS: Se E = 0: caso de estabilidade ou equilíbrio. Neste caso temos duas configurações 
vizinhas com a mesma energia ou custo (coincidência pouco provável de acontecer na prática). 
O novo estado pode ser aceito e o processo continua (exploitation-profundidade);
Insere-se uma pequena perturbação(ou alteração) nas posições de algumas
partículas (pontos) da solução resultando uma variação de energia, ou seja, uma
alteração no valor da função objetivo. Isto pode ser feito de três modos:
1º modo: Troca-se, entre si, as posições de dois (ou mais) pontos;
2º modo: Insere-se um ponto retirado de sua posição em outra posição.
3º modo: Pode-se aplicar os dois modos anteriormente descritos de forma mesclada.
Solução (S2)= Uma perturbação sobre S1 = (A,D,E,C,B) A → E1 =16
Por exemplo: Troca, entre si, as posições entre A e B.
S2 = (B,D,E,C,A) B → E2 = 1+4+3+1+1=10
Variação de energia: ∆E= E2 – E1 =10-16= - 6 →Diminuiu a energia, então aceitamos a
solução S2.
Nº de sucessos (nº de aceitações acumuladas) , L= 2
Nº de perturbações executadas (acumuladas) , P=2
A B C D E
A 0 1 1 4 2
B 1 0 4 1 4
C 1 4 0 5 3
D 4 1 5 0 4
E 2 4 3 4 0
OBS: Se E < 0: neste caso houve redução de energia; o novo estado é 
aceito e o processo continua (exploitation-profundidade);
6
A B C D E
A 0 1 1 4 2
B 1 0 4 1 4
C 1 4 0 5 3
D 4 1 5 0 4
E 2 4 3 4 0
Solução(S3)= Uma perturbação sobre S2 = (B,D,E,C,A) B → E2 = 10.
Por exemplo: Troca, entre si, as posições entre B e E .
S3 = (E,D,B,C,A) E → E3 = 4+1+4+1+2=12
Variação de energia: ∆E= E3 – E2 =12-10=+2 →Aumentou a energia, então iremos aceitar ou
rejeitar a solução S3 de acordo com a seguinte probabilidade (Fator de Boltzmann-FB) :
Nº de sucessos (nº de aceitações acumuladas) ,L= 3
Nº de perturbações executadas (acumuladas), P =3
Obs: A iteração finaliza quanto atingimos o valor de nº máx. perturbações/iteração → P=3 ou o
nº limite de sucessos/ iteração→ L = 3, arbitrados no início do problema.
   
 problema. do início no arbitrado e enterandomicam gerado Número 0,5 rdn 2) 
iteração. primeira desta início do antes Estimada68,5TT 1) :Onde
.0,5rdn0,7FB Como .70,072,272,2eFB
0i
35,0 5,68
2
 


 

3S solução a Aceitamos
iT
ΔE
 
OBS: Se E > 0: neste caso houve aumento de energia que no processo físico é útil para 
permitir uma futura “acomodação” das partículas (evitando a convergência da função objetivo 
para mínimos locais indesejáveis- (exploration-diversidade)).A probabilidade de aceitar uma 
mudança deste tipo (E > 0) é chamada de “critério de Metrópolis”, estabelecido a partir do 
fator de Boltzmann que é dado pela função exp (- E / T), onde T é a temperatura válida para 
a iteração em que ocorreu a mudança, ou seja, estimada antes do início da iteração em curso 
(em andamento). 
Fim da 1ª iteração, com a solução:
S3 = (E,D,B,C,A) E → E3 =12 
7
Função de
Boltzmann
Fluxograma para o algoritmo de Metropolis.
O algoritmo, proposto por Metropolis e outros (1953), pertence a classe de
métodos estatísticos denominada Métodos de Monte Carlo, os quais, tem a
característica de usar um grande número de amostragens aleatórias.
<
rdn
0 < rdn < 1
ΔE
ΔE
•O resfriamento gradativo de um material a partir de uma alta temperatura inicial leva o 
material a estados mínimos de energia. 
•Informalmente esses estados são caracterizados por uma perfeição estrutural do material 
congelado que não se obteria caso o resfriamento não tivesse sido gradativo. 
•Sob outras condições menos cuidadosas de resfriamento, o material se cristalizaria com 
uma energia “localmente mínima”, apresentando imperfeições estruturais. A esse 
processo cuidadoso de resfriamento dá-se o nome de “annealing” (Têmpera simulada 
ou Anelamento simulado) .
•A simulação (Simulated Annealing) a uma temperatura fixa T consiste em dar um pequeno 
deslocamento a um dos átomos, computando a variação E da energia do sistema. 
1. Se E  0, o deslocamento é incorporado ao estado do sistema, que é então utilizado no 
passo seguinte.
2. Caso contrário, se E > 0, a aceitação ou não do deslocamento passa aser uma decisão 
probabilística, segundo a função de Boltzmann já definida anteriormente.
Comentários:
Resfriamento rápido (amorfo) Resfriamento Lento (critalino)
9
Função de Boltzmann 
Probabilidade de aceitação de uma transição de maior energia:
Comentários:
P
ro
b
a
b
il
id
a
d
e
 d
e
 a
c
e
it
a
ç
ã
o
.
P
ro
b
a
b
il
id
a
d
e
 d
e
 a
c
e
it
a
ç
ã
o
.
ΔE ΔE/T
A aceitação temporária de soluções “piores” significa que o método 
admite caminhar “morro acima”, na esperança de encontrar “vales” 
mais profundos.
iT
ΔE
 
 eFB
10
Início da 2ª iteração:
5,115,68 9,0TT αT 101 
Solução inicial (S0)= Solução obtida no final da 1ª iteração, ou seja, “S3” = (E,D,B,C,A) E :
S0 = (E,D,B,C,A) E → E0 = 12
Solução (S1)= Uma perturbação sobre S0 = (E,D,B,C,A) E → E0 = 12, é um processo aleatório.
Por exemplo: Troca, entre si, as posições entre B e C.
S1 = (E,D,C,B,A) E → E1 = 4+5+4+1+2=16
Variação de energia: ∆E= E1 – E0 =16-12=+4 → Aumentou a energia, então podemos
aceitar ou rejeitar a solução S1 de acordo com a seguinte probabilidade (Fator de
Boltzmann-FB) :
Nº de sucessos (nº de aceitações acumuladas) , L= 0
Nº de perturbações executadas (acumuladas) ,P=1
A B C D E
A 0 1 1 4 2
B 1 0 4 1 4
C 1 4 0 5 3
D 4 1 5 0 4
E 2 4 3 4 0
   
 problema. do início no arbitrado e enterandomicam gerado Número 0,5 rdn 2) 
iteração. segunda desta início do antes Estimada11,5TT 1) :Onde
0,5rdn0,45FB Como .45,072,272,2eFB
0i
78,0 5,11
4
 
T
E
 
i


 



.S solução a aceitamos Não 1
Atualização da temperatura Ti : Uma das formas de se obter o
fator de decréscimo da temperatura, proposta por Romeo et al.,
1985, onde  = 0,9, em geral é dada por:
1-ii T αT 
11
Solução (S2)= Uma perturbação sobre S0 = (E,D,B,C,A) E → E0 = 12, é
um processo aleatório.
Por exemplo: Troca, entre si, as posições entre A e C.
S2 = (E,D,B,A,C) E → E2 = 4+1+1+1+3=10
Variação de energia: ∆E= E2 – E0 =10-12=-2 → Diminuiu a energia, então aceitamos a solução S2.
Nº de sucessos (nº de aceitações acumuladas) ,L= 1
Nº de perturbações executadas (acumuladas), P=2
A B C D E
A 0 1 1 4 2
B 1 0 4 1 4
C 1 4 0 5 3
D 4 1 5 0 4
E 2 4 3 4 0
Solução (S3)= Uma perturbação sobre S2 = (E,D,B,A,C) E → E2 =10, é um processo aleatório.
Por exemplo: Troca, entre si, as posições entre D e C.
S3 = (E,C,B,A,D) E → E3 = 3+4+1+4+4=16
Variação de energia: ∆E= E3 – E2 =16-10=+6 → Aumentou a energia, então podemos aceitar ou rejeitar a
solução S3 de acordo com a seguinte probabilidade (Fator de Boltzmann-FB) :
Nº de sucessos (nº de aceitações acumuladas) , L= 1
Nº de perturbações executadas (acumuladas) ,P=3
   
 problema. do início no arbitrado e enterandomicam gerado Número 0,5 rdn 2) 
iteração. segunda desta início do antes Estimada11,5TT 1) :Onde
.0,5rdn0,31FB Como .31,072,272,2eFB
1i
17,15,11
6
T
E
i


 



3S solução a aceitamos Não
Fim da 2ª iteração, com a solução:
S2 = (E,D,B,A,C) E → E2 =10
Obs: A iteração finaliza quanto atingimos o valor de nº máx. perturbações/iteração → P=3 ou
o nº limite de sucessos/ iteração→L = 3, arbitrados no início do problema.
12
Solução (S1)= Uma perturbação sobre S0 = (E,D,B,A,C) E → E0 =10, é um processo aleatório.
Por exemplo: Inserir o E imediatamente antes do A.
S1 = (D,B,E,A,C) D → E1 = 1+4+2+1+5=13
Variação de energia: ∆E= E1 – E0 =13 -10=+3 → Aumentou a energia, então podemos aceitar ou rejeitar
a solução S1 de acordo com a seguinte probabilidade (Fator de Boltzmann-FB) :
Nº de sucessos (nº de aceitações acumuladas), L = 1
Nº de perturbações executadas (acumuladas), P=1
   
 problema. do início no arbitrado e enterandomicam gerado Número 0,5 rdn 2) 
iteração. segunda desta início do antes Estimada60,4TT 1) :Onde
0,5rdn0,52FB Como .52,072,272,2eFB
2i
65,0 4,60
3
 
T
E
 
i


 



.S solução a Aceitamos 1
A B C D E
A 0 1 1 4 2
B 1 0 4 1 4
C 1 4 0 5 3
D 4 1 5 0 4
E 2 4 3 4 0
Início da 3ª iteração:
Atualização da temperatura Ti :  = 0,9
60,45,11 9,0TT αTT αT 2121-ii 
Solução inicial (S0)= Solução obtida no final da 2ª iteração, ou seja, “S2”= (E,D,B,A,C) E :
S0 = (E,D,B,A,C) E → E0 =10
Solução (S2)= Uma perturbação sobre S1 = (D,B,E,A,C) D → E1=13, é
um processo aleatório.
Por exemplo: Troca, entre si, as posições entre A e E.
S2 = (D,B,A,E,C) D → E2 = 1+1+2+3+5=12
Variação de energia: ∆E= E2 – E3 =12-13=-1 → Diminuiu a energia, então aceitamos a solução S2.
Nº de sucessos (nº de aceitações acumuladas) ,L= 2
Nº de perturbações executadas (acumuladas), P=2
A B C D E
A 0 1 1 4 2
B 1 0 4 1 4
C 1 4 0 5 3
D 4 1 5 0 4
E 2 4 3 4 0
Solução (S3)= Uma perturbação sobre S2 = (D,B,A,E,C) D → E2 =12, é um processo aleatório.
Por exemplo: Inserir o C imediatamente antes do D.
S3 = (C,D,B,A,E) C → E3 = 5+1+1+2+3=12
Variação de energia: ∆E= E3 – E2 =12-12=0→ Nem aumentou e nem diminuiu a energia,
então podemos aceitar a solução S3.
Nº de sucessos (nº de aceitações acumuladas) , L= 3
Nº de perturbações executadas (acumuladas) ,P=3
Fim da 3ª iteração, com a solução:
S3 = (C,D,B,A,E) C → E3 =12
Obs: 1) A iteração finaliza quanto atingimos o valor de nº máx. perturbações/iteração →
P=3 ou o nº limite de sucessos/ iteração→L = 3, arbitrados no início do problema.
2) Como inicialmente a solução foi limitada em três iterações (M=3) interrompemos
aqui a continuidade da solução. Fim
Atenção: Caso prosseguíssemos com as iterações a solução inicial S0 
para próxima iteração seria S0 =S3 = (C,D,B,A,E) C → E3 =12 
14
Obs: No final do processo (após várias iterações),
espera-se que o sistema estacione em um estado
de energia globalmente mínima, por analogia com
a física do problema. (A temperatura se aproxima
de zero e soluções de piora não são mais
aceitas.) Assim a melhor solução tende a ser a
última obtida da última interação.
15
Um exemplo de simulação para maximização:
Start temperature: 25
Temperature step: 0.1
End temperature: 0
Iterations : 1,000,000
16
Exemplo 2: Dado o seguinte problema de designação, determine uma solução ótima (ou quase 
ótima). Faça duas iterações completas explicando bem cada passo. A Metalúrgica Araucária S/A, 
dentro de 60 dias, deverá começar a funcionar em sua nova sede localizada na Cidade Industrial 
de Curitiba (CIC). O Presidente da Metalúrgica deseja que a distribuição das salas, dessa nova 
instalação, seja feita de modo a atender, na medida do possível, as preferências já manifestadas. 
Em uma pesquisa realizada, os Diretores manifestaram as suas preferências, sendo que 1 indica 
a sala de maior preferência e 6 indica a sala de menor preferência :
Sala
Diretor
1 2 3 4 5 6
1 2 4 3 1 5 6
2 1 5 4 6 3 2
3 5 3 4 2 1 6
4 1 3 2 4 6 5
5 3 2 5 6 1 4
Se você fosse convidado a 
opinar sobre a distribuição das 
salas qual seria a sua 
recomendação, de forma a 
satisfazer ao máximo as 
preferências dos diretores?
•Dados os parâmetros a serem adotados para resolução do problema:
•Nº máximo de iterações → M = 2
•Fator de redução de temperatura → α = 0,9
•Nº máximo de perturbações por iteração → P=4
•Limite de sucessos por iteração (perturbações aceitas a cada iteração) →L = 3
•Adote o número randômico rdn = 0,5 como limite para aceitação ou rejeição de uma 
solução quando esta causar um aumento de energia no processo. 
17
Sala
Diretor
1 2 3 4 5 6
1 2 4 3 1 5 6
2 1 5 4 6 3 2
3 5 3 4 2 1 6
4 1 3 2 4 6 5
5 3 2 5 6 1 4
A 0 0 0 0 0 0
Como o número deDiretores (5) é menor que o número de salas (6), toda solução 
implicará em uma sala vazia cuja designação será feita a um diretor inexistente 
(artificial), que representaremos por A.
Salas em ordem crescente : 1 2 3 4 5 6
Configuração do ex. de uma a solução tipo:→ Diretores designados (ex.) : (2 3 A 5 4 1)
Exemplo: Suponha que através de um processo aleatório obtivemos a seguinte amostra de 
cinco soluções viáveis:
Estimativa da temperatura inicial T0: 
1ª) (2,3,A,5,4,1)→ Energia = 1+3+0+6+6+6=22
2ª) (4,5,1,3,2,A)→ Energia = 1+2+3+2+3+0=11
3ª) (3,1,4,5,A,2)→ Energia = 5+4+2+6+0+2=19
4ª) (1,2,3,4,5,A)→ Energia = 2+5+4+4+1+0=16
5ª) (A,5,4,3,2,1)→ Energia = 0+2+2+2+3+6=15
 11 variação 
 8 variação 
 3 variação 
 1 variação 
   
14,26
22,0
75,5
8,0ln
75,5
ln
E
T
75,5
4
13811
E
:Logo
0
0 













S
D
1 2 3 4 5 6
1 2 4 3 1 5 6
2 1 5 4 6 3 2
3 5 3 4 2 1 6
4 1 3 2 4 6 5
5 3 2 5 6 1 4
A 0 0 0 0 0 0
S
D
1 2 3 4 5 6
1 2 4 3 1 5 6
2 1 5 4 6 3 2
3 5 3 4 2 1 6
4 1 3 2 4 6 5
5 3 2 5 6 1 4
A 0 0 0 0 0 0
S
D
1 2 3 4 5 6
1 2 4 3 1 5 6
2 1 5 4 6 3 2
3 5 3 4 2 1 6
4 1 3 2 4 6 5
5 3 2 5 6 1 4
A 0 0 0 0 0 0
S
D
1 2 3 4 5 6
1 2 4 3 1 5 6
2 1 5 4 6 3 2
3 5 3 4 2 1 6
4 1 3 2 4 6 5
5 3 2 5 6 1 4
A 0 0 0 0 0 0
S
D
1 2 3 4 5 6
1 2 4 3 1 5 6
2 1 5 4 6 3 2
3 5 3 4 2 1 6
4 1 3 2 4 6 5
5 3 2 5 6 1 4
A 0 0 0 0 0 0
E
19
Início da 
1ª iteração:
Solução inicial (S0) (escolha aleatória de uma sol. qq.):
S0 = (4,5,1,3,2,A)→ E0 = 1+2+3+2+3+0=11
Solução (S1)= Uma perturbação sobre S0 = (4,5,1,3,2,A)→ E0 =11, é
um processo aleatório.
Por exemplo: Troca, entre si, as posições entre 4 e 3.
S1= (3,5,1,4,2,A)→ E1 =5+2+3+4+3+0=17
Variação de energia: ∆E= E1 – E0 =17-11=+6 → Aumentou a energia, então podemos
aceitar ou não a solução S1.
Nº de sucessos (nº de aceitações) , L= 1
Nº de perturbações executadas , P = 1
S
D
1 2 3 4 5 6
1 2 4 3 1 5 6
2 1 5 4 6 3 2
3 5 3 4 2 1 6
4 1 3 2 4 6 5
5 3 2 5 6 1 4
A 0 0 0 0 0 0
   
 problema. do início no arbitrado e enterandomicam gerado Número 0,5 rdn 2) 
iteração. primeira desta início do antes Estimada26,14TT 1) :Onde
0,5rdn0,79FB Como .79,072,272,2eFB
0i
23,0 26,14
6
 
T
E
 
i


 



.S solução a Aceitamos 1
Solução (S2)= Uma perturbação sobre S1 = (3,5,1,4,2,A) → E1 =17, é um processo aleatório.
Por exemplo: Troca, entre si, as posições entre 2 e 3.
S2= (2,5,1,4,3,A)→ E2 =1+2+3+4+1+0=11
Variação de energia: ∆E= E2 – E1 =11-17=-6 → Diminuiu a energia, então aceitamos a
solução S2.
Nº de sucessos (nº de aceitações) , L= 2
Nº de perturbações executadas , P = 2
Solução (S3)= Uma perturbação sobre S2 = (2,5,1,4,3,A)→ E2 =11, é
um processo aleatório.
Por exemplo: Troca, entre si, as posições entre 4 e 5.
S3= (2,4,1,5,3,A) → E3 =1+3+3+6+1+0=14
Variação de energia: ∆E= E3 – E2 =14-11=+3 → Aumentou a energia, então podemos
aceitar ou não a solução S3.
Nº de sucessos (nº de aceitações) , L= 3
Nº de perturbações executadas , P = 3
S
D
1 2 3 4 5 6
1 2 4 3 1 5 6
2 1 5 4 6 3 2
3 5 3 4 2 1 6
4 1 3 2 4 6 5
5 3 2 5 6 1 4
A 0 0 0 0 0 0
   
 problema. do início no arbitrado e enterandomicam gerado Número 0,5 rdn 2) 
iteração. primeira desta início do antes Estimada26,14TT 1) :Onde
0,5rdn0,89FB Como .89,072,272,2eFB
0i
11,0 26,14
3
 
T
E
 
i


 



.S solução a Aceitamos 3
Obs: A iteração finaliza quanto atingimos o valor de nº máx. perturbações/iteração → P=4 ou
o nº limite de sucessos/ iteração → L = 3, arbitrados no início do problema.
Fim da 1ª iteração, com a solução:
S3= (2,4,1,5,3,A) → E3 =14
21
Início da 2ª iteração:
Atualização da temperatura Ti :  = 0,9
53,2326,14 9,0TT αTT αT 2121-ii 
Solução inicial (S0)= Solução obtida no final da 1ª iteração, ou seja, “S3” = (2,4,1,5,3,A)
S0= (2,4,1,5,3,A) → E0 =14
Solução (S1)= Uma perturbação sobre S0 = (2,4,1,5,3,A) → E0 =14, é um processo aleatório.
Por exemplo: Troca, entre si, as posições entre A e 1.
S1 = (2,4,A,5,3,1) → E1 = 1+3+0+6+1+6=17
S
D
1 2 3 4 5 6
1 2 4 3 1 5 6
2 1 5 4 6 3 2
3 5 3 4 2 1 6
4 1 3 2 4 6 5
5 3 2 5 6 1 4
A 0 0 0 0 0 0
Variação de energia: ∆E= E1 – E0 =17-14=+3 → Aumentou a energia, então podemos
aceitar ou rejeitar a solução S1 de acordo com a seguinte probabilidade (Fator de
Boltzmann-FB) :
Nº de sucessos (nº de aceitações acumuladas) , L= 1
Nº de perturbações executadas (acumuladas) ,P=1
   
 problema. do início no arbitrado e enterandomicam gerado Número 0,5 rdn 2) 
iteração. segunda desta início do antes Estimada53,23TT 1) :Onde
0,5rdn0,88FB Como .88,072,272,2eFB
0i
13,0 23,53
3
 
T
E
 
i


 



.S solução a Aceitamos 1
22
Solução (S2)= Uma perturbação sobre S1 =(2,4,A,5,3,1) → E1 = 17,
é um processo aleatório.
Por exemplo: Troca, entre si, as posições entre 3 e 5.
S2 = (2,4,A,3,5,1) → E2 = 1+3+0+2+1+6=13
Variação de energia: ∆E= E2 – E1 =13-17=-4→ Diminuiu a energia,
então podemos aceitar a solução S2 :
Nº de sucessos (nº de aceitações acumuladas) , L= 2
Nº de perturbações executadas (acumuladas) ,P=2
S
D
1 2 3 4 5 6
1 2 4 3 1 5 6
2 1 5 4 6 3 2
3 5 3 4 2 1 6
4 1 3 2 4 6 5
5 3 2 5 6 1 4
A 0 0 0 0 0 0
Solução (S3)= Uma perturbação sobre S2 = (2,4,A,3,5,1) → E2 =13, é um processo aleatório.
Por exemplo: Troca, entre si, as posições entre 1 e 2.
S3 = (1,4,A,3,5,2) → E3 = 2+3+0+2+1+2=10
Variação de energia: ∆E= E3 – E2 =10-13=-3→ Diminuiu a energia, então podemos aceitar a
solução S3 :
Nº de sucessos (nº de aceitações acumuladas) , L= 3
Nº de perturbações executadas (acumuladas) ,P=3
Obs: A iteração finaliza quanto atingimos o valor de nº máx. perturbações/iteração → P=4 ou
o nº limite de sucessos/ iteração → L = 3, arbitrados no início do problema.
2) Como inicialmente a solução foi limitada em duas iterações (M=2) interrompemos aqui a
continuidade da solução.
Fim da 2ª iteração, com a solução:
S3 = (1,4,A,3,5,2) → E3=10
Fim
Atenção: Caso prosseguíssemos com as iterações a solução inicial S0 
para próxima iteração seria S0 =S3 = (1,4,A,3,5,2) → E3=10
23
Fim da 2ª iteração, com a solução:
S3 = (1,4,A,3,5,2) → E3=10
Interpretação desta solução:
Sala Diretor Preferência
1 1 2
2 4 3
3(vazia) A(inexistente) 0
4 3 2
5 5 1
6 2 2
- - Total:10
S
D
1 2 3 4 5 6
1 2 4 3 1 5 6
2 1 5 4 6 3 2
3 5 3 4 2 1 6
4 1 3 2 4 6 5
5 3 2 5 6 1 4
A 0 0 0 0 0 0
Lembrete: A melhor solução
tende a ser a última obtida
da última interação.
Suponha o Problema de Caixeiro Viajante (PCV) constituído de seis pontos, dada a matriz com
as distâncias inteiras mínimas aproximadas entre todos os pares de pontos. Determine uma
solução do PVC aplicando a meta-heurística Simulated Annealing.
1 2 3 4 5 6
1 0 2 2 4 4 4
2 2 0 1 2 3 2
3 2 1 0 2 2 3
4 4 2 2 0 3 3
5 4 3 2 3 0 5
6 4 2 3 3 5 0
Problema proposto:
•Dados os parâmetros a serem adotados para resolução do problema:
•Nº máximo de iterações → M = 2
•Fator de redução de temperatura → α = 0,9
•Nº máximo de perturbações por iteração → P=4
•Limite de sucessos por iteração (perturbações aceitas a cada iteração) →L = 3
•Adote o número randômico rdn = 0,5 como limite para aceitação ou rejeição 
de uma solução quando esta causar um aumento de energia no processo. 24
Alguns Exemplos Adicionais:
Legenda:
•n : nº de nós
•M: Nº máximo de iterações
•α: Fator de redução detemperatura
•P:Nº máximo de perturbações por iteração
•L:Limite de sucessos por iteração 
•S0: Solução inicial
•T0: Temperatura inicial
•S :Solução Final
Legenda:
•n : nº de nós
•M: Nº máximo de iterações
•α: Fator de redução de temperatura
•P:Nº máximo de perturbações por iteração
•L:Limite de sucessos por iteração 
•S0: Solução inicial
•T0: Temperatura inicial
•S :Solução Final
Simulated Annealing
1. Introdução
A origem da técnica de otimização conhecida por Simulated Annealing (têmpera 
simulada ou anelamento simulado) vem de 1953, quando foi usada para 
simular em um computador o processo de annealing de cristais. 
O annealing (anelamento ou têmpera) de certos materiais consiste em 
submetê-los inicialmente a altas temperaturas e reduzi-las gradualmente até 
atingirem, com aumentos e reduções do estado de energia, o equilíbrio térmico, 
tornando-os assim, consistentes e rígidos. 
A técnica matemática de Simulated Annealing faz uma simulação algorítmica do 
processo físico da têmpera de materiais. A idéia de aplicar este método para 
resolver problemas de otimização combinatória surgiu bem mais tarde com 
Kirkpatrick et al., 1983 e Aragon et al., 1984.
Tarefa: Leitura Integral do Material a Seguir.
Profa. Maria Teresinha Arns Steiner.
2. Fundamentação:
A fundamentação desta metaheurística baseia-se em simulações da evolução 
do equilíbrio térmico de materiais, proposto por Metrópolis et al., 1953, a qual 
utiliza o Método de Monte Carlo para gerar sequências de estados do material 
caracterizados pelas posições de suas partículas. 
Sob altas temperaturas as partículas estão totalmente “desorganizadas” 
correspondendo a uma configuração aleatória de um problema de otimização 
(em geral, distante da configuração ótima desejada). 
Uma pequena alteração (perturbação) nas posições de algumas destas 
partículas resulta numa variação de energia, que equivale a uma alteração no 
valor da função objetivo. 
Considerando dois estados sucessivos de energia Ei+1 e Ei, temos as 
seguintes situações:
Se E < 0: neste caso houve redução de energia; o novo estado é aceito e o 
processo continua;
Se E = 0: caso de estabilidade ou equilíbrio. Neste caso temos duas 
configurações vizinhas com o mesmo custo (coincidência pouco provável de 
acontecer na prática).
Se E > 0: neste caso houve aumento de energia que no processo físico é útil 
para permitir uma futura “acomodação” das partículas (evitando a convergência 
da função objetivo para mínimos locais indesejáveis). 
A probabilidade de aceitar uma mudança deste tipo (E > 0) é chamada de 
“critério de Metrópolis”, estabelecido a partir do fator de Boltzmann que é 
dado pela função exp (- E / T), onde T é a temperatura no momento em que 
ocorreu a mudança.
O Quadro 1 (Valdísio Viana, 1998) a seguir mostra o comportamento desta 
função para alguns valores de temperatura e variação de energia E > 0:
E
T 0.1 0.5 1 10
0.001 99% 99.8% 99.9% 99.99%
0.1 36.79% 81.87% 90.48% 99%
1 0% 13.53% 36.79% 90.48%
10 0% 0% 0% 36.79%
50 0% 0% 0% 0.67%
Quadro 1. Valores da função exp (-E / T)
iT
E
eFB



O método surgiu da seguinte observação da mecânica estatística: 
O resfriamento gradativo de um material a partir de uma alta temperatura inicial leva o 
material a estados mínimos de energia. 
Informalmente esses estados são caracterizados por uma perfeição estrutural do material 
congelado que não se obteria caso o resfriamento não tivesse sido gradativo. 
Sob outras condições menos cuidadosas de resfriamento, o material se cristalizaria com 
uma energia “localmente mínima”, apresentando imperfeições estruturais. A esse 
processo cuidadoso de resfriamento dá-se o nome de “annealing”.
A referida simulação a uma temperatura fixa T consiste em dar um pequeno deslocamento 
a um dos átomos, computando a variação E da energia do sistema. 
Se E  0, o deslocamento é incorporado ao estado do sistema, que é então utilizado no 
passo seguinte.
Caso contrário, isto é, se E > 0, a aceitação ou não do deslocamento passa a ser uma 
decisão probabilística, segundo a função de Boltzmann já definida anteriormente.
O procedimento da técnica Simulated Annealing compreende basicamente 
os seguintes 2 passos:
1) Identifica-se a função energia do sistema com a função objetivo que se quer 
otimizar, por exemplo minimizar, e os átomos do sistema são associados às 
variáveis do problema.
2) Para cada temperatura de uma seqüência de temperaturas decrescentes 
realiza-se a simulação descrita. No final do processo, espera-se que o sistema 
estacione em um estado de energia globalmente mínima, por analogia com a 
física do problema.
O fato do método Simulated Annealing permitir a aceitação de configurações 
intermediárias do problema em que cresce o valor da função objetivo que se 
deseja minimizar é crucial. 
Essa aceitação temporária de soluções “piores” significa que o método admite 
caminhar “morro acima”, na esperança de encontrar “vales” mais 
profundos.
Laarhoven e Aarts, 1987, que trazem um estudo detalhado da teoria e aplicações 
de Simulated Annealing, apresentam várias formas de se obter o fator de 
decréscimo da temperatura, dentre as quais se tem a seguinte:
Ti =  Ti-1
proposta por Romeo et al., 1985, onde  = 0,9, em geral.
Laarhoven e Aarts, 1987 indicam, também, várias formas de se obter a 
temperatura inicial, dentre as quais se tem a seguinte:
T0 = - E
+ / ln (0)
proposta por Johnson et al., 1987, onde E+ é a média aritmética, para um 
número randômico de perturbações, dos incrementos da função objetivo e 0 é 
um valor empírico, em torno de 0,8.
Pode-se estimar previamente o número de iterações m necessárias para 
variação da temperatura, pois em geral as fórmulas contêm implicitamente um 
fator  de seu decréscimo:
Se Ti =  Ti-1, então T1 =  T0; T2 =  T1 =  ( T0) = 
2 T0; ...; Tm = 
m T0; 
Assim: 
m = log  (Tm / T0).
Sugere-se os seguintes valores:  = 0,9 com um número aproximado de m = 100 
iterações e para T0 valores na faixa de 0,5 a 100.
3. Algoritmo Simulated Annealing:
Os passos do algoritmo contidos em Barbosa, 1989, são os seguintes:
Seja x0  D a solução inicial e T0 a temperatura inicial;
k = 0; xk = x0; Tk = T0
While Tk  Tmin do
begin
While ainda não em equilíbrio a temperatura Tk do
begin
selecione aleatoriamente um ponto x’ A(xk)  D
 = f (x’) - f (x) 
if   0 then
xk = x’
else
xk = x’ com probabilidade 
end
Tk+1= r(k); xk+1 = xk; k = k + 1
end
A solução é xk. 
Uma outra forma de apresentação do algoritmo Simulated Annealing
(Viana, 1998):
onde:
n = número de cidades;
M = número máximo de iterações;
P = número máximo de perturbações 
por iteração;
L = limite de sucessos por iteração 
(perturbações aceitas a cada 
iteração);
 = fator de redução de temperatura;
S0 = custo da configuração inicial;
S = melhor solução (configuração) 
obtida;
T0 = temperatura inicial.
4. Alguns Exemplos Adicionais:
Exemplo 1. PCV (Viana, 1998) 
 
Figura 1.1. Evolução do SA para o PCV (n = 44) 
(onde: n = 44; M = 100; P = 4400; L = 440;  = 0,90; S0 = 17,19; T0 = 2,5; S = 4,40). 
 
Figura 1.2. Configuração Inicial do PCV (f0 = 17,19). 
 
Figura 1.3. Configuração Final do PCV (fótimo = 4,40) 
 
Figura 2.2. Configurações Inicial e Final do PCV (S0 = 481,82; Sótimo = 100,00).

Continue navegando