SIMULATED ANNEALING ALGORITHM
Disciplina: OTIMIZAÇÃO MULTIOBJETIVO
Prof. João Antônio de Vasconcelos
Otimização Multiobjetivo - Prof. João Antônio de Vasconcelos – Depto. Eng. Elétrica - UFMG
ALGORITMO SIMULATED ANNEALING
Termodinâmica: É possível
simular o processo de
Recozimento de um Sólido?
T0
T
Sólido
Fusão
T
Fusão
Cristal
Otimização Multiobjetivo - Prof. João Antônio de Vasconcelos – Depto. Eng. Elétrica - UFMG
Algoritmo de Metropolis
Em física de matéria condensada, recozimento (annealing) é
conhecido como um processo térmico para obter estados de
b i energia
baixa
i de
d um sólido
ólid em uma caldeira.
ld i
Este pprocesso baseia-se nos dois ppassos seguintes:
g
• No aumento da temperatura da caldeira até um valor
máximo
á i
para a quall o sólido
ólid se derrete;
d
• Na diminuição cuidadosa da temperatura da caldeira
até que as partículas se arranjem no estado de
mínima energia
g do sólido.
Otimização Multiobjetivo - Prof. João Antônio de Vasconcelos – Depto. Eng. Elétrica - UFMG
Na fase líquida, todas as partículas do sólido se arranjam
aleatoriamente. No estado de mínima energia as partículas
se arranjam em uma rede altamente estruturada e a energia
do sistema é mínima (estrutura cristalina).
A existência da estrutura cristalina resulta dos sólidos
cristalinos serem formados a partir da repetição no espaço de
uma estrutura elementar paralelepídica denominada célula
unitária (ver figura).
Célula unitária de um cristal de sal (NaCl).
(NaCl)
Note-se a ordenação dos átomos.
Otimização Multiobjetivo - Prof. João Antônio de Vasconcelos – Depto. Eng. Elétrica - UFMG
O estado de mínima energia é obtido somente se a
temperatura máxima é suficientemente elevada e se o
processo de resfriamento é feito suficientemente
s ficientemente
devagar. Senão o sólido após resfriado estará em um
estado denominado meta
meta-estável,
estável, ao invés de um estado de
mínima energia.
O processo físico de recozimento pode ser modelado com
sucesso usando métodos computacionais oriundos da física
de matéria condensada.
Otimização Multiobjetivo - Prof. João Antônio de Vasconcelos – Depto. Eng. Elétrica - UFMG
Algoritmo de Metropolis
(Metropolis, Rosenbluth, Rosenbluth, Teller & Teller [1953])
É um algoritmo simples para simular a evolução de um sólido em uma
caldeira na direção do equilíbrio térmico.
Este algoritmo é baseado na técnica de Monte Carlo,
Carlo o qual gera uma
seqüência de estados de energia do sólido da seguinte maneira:
• Dado um estado atual i do sólido,, com energia
g Ei,, um estado subsequente
q
j
é gerado ao se aplicar um mecanismo de perturbação que transforma o
estado atual em um próximo estado, através de uma pequena alteração, por
exemplo pelo deslocamento de uma partícula.
exemplo,
partícula
• A energia do próximo estado é Ej.
• Se a diferença de energia, Ej - Ei, é menor que ou igual a 0 (zero), o estado
j é aceito como o estado atual.
Otimização Multiobjetivo - Prof. João Antônio de Vasconcelos – Depto. Eng. Elétrica - UFMG
• Se a diferença de energia é maior que 0 (zero),
(zero) o estado j é aceito com uma
certa probabilidade que é dada por:
⎛ Ei − E j
p = exp⎜⎜
⎝ k BT
⎞
⎟
⎟
⎠
onde T é a temperatura da caldeira e kB é uma constante física conhecida
como constante de Boltzmann. O critério de aceite descrito acima é
conhecido como critério de Metropolis e o algoritmo de Algoritmo de
Metropolis.
Se a temperatura é diminuída suficientemente devagar, o sólido, no processo
físico, pode atingir equilíbrio térmico em cada temperatura. No algoritmo de
Metropolis
p
isto é conseguido
g
gerando um g
g
grande número de transições em
um dado valor de temperatura. Equilíbrio térmico é caracterizado por uma
distribuição de Boltzmann. Esta distribuição dá a probabilidade do sólido
estar em um estado i com energia Ei, na temperatura T, e é dada por:
Otimização Multiobjetivo - Prof. João Antônio de Vasconcelos – Depto. Eng. Elétrica - UFMG
⎛ − Ei ⎞
1
⎟⎟
PT {x = i} =
exp⎜⎜
Z(T )
⎝ k BT ⎠
onde X é uma variável estocástica designando o estado atual do sólido. Z(T)
é uma função de partição definida como:
⎛ − Ej ⎞
⎟⎟
Z(T) = ∑ exp⎜⎜
j
⎝ k BT ⎠
onde a soma se estende a todos os estados possíveis.
p
A distribuição de Boltzmann desempenha um papel importante no algoritmo
“Simulated Annealing”.
Otimização Multiobjetivo - Prof. João Antônio de Vasconcelos – Depto. Eng. Elétrica - UFMG
ALGORITMO SIMULATED ANNEALING
(Kirkpatrick et al)
Simulação do Equilíbrio
Térmico
((Metropolis)
p )
Iteração k+1
Calcular variação
Energética : ΔE = Ef - Ei
ΔE < 0
Se: ΔE > 0
Iteração k+1
Perturbação
Perturbação
Se:
otimização
aceitar
aceictar se:
Calcular variação
da função objetivo :
Se: ΔE < 0
Se: ΔE > 0
aceitar
aceictar se:
P(E) > δ
P(E) > δ
Onde: P(E) = exp(- ΔE /kbT)
[0,1)
δ
ΔE =ff - fi
Onde: P(E) = exp(- ΔE /kcT0)
[0,1)
δ
Otimização Multiobjetivo - Prof. João Antônio de Vasconcelos – Depto. Eng. Elétrica - UFMG
Simulated Annealing Algoritm - SAA
No SAA o algoritmo de Metropolis é aplicado para gerar uma sequência de
soluções de um dado problema. Assumimos para isto uma analogia entre um
sistema com muitas partículas físicas e um problema de otimização baseado
nas seguintes equivalências:
• Soluções em um problema de otimização são equivalentes a estados de um
sistema
it
fí i
físico.
• O custo de uma solução (valor da função objetivo) é equivalente à energia
de um estado.
A temperatura no processo físico é substituída no SAA por um parâmetro de
controle. Assim, o SAA p
pode agora
g
ser visto como um p
processo iterativo do
algoritmo de Metropolis, avaliado em valores decrescentes do parâmetro de
controle.
Otimização Multiobjetivo - Prof. João Antônio de Vasconcelos – Depto. Eng. Elétrica - UFMG
Definição 1.
1 Deixe (S,f)
(S f) designar uma amostra de um problema de
otimização e i e j duas soluções com custo f(i) e f(j), respectivamente. Então
o critério de aceite determina quando j é aceito em substituição a i pela
aplicação da seguinte probabilidade de aceite:
⎧1
⎪
Pc ( aceitar j ) = ⎨ ⎛ − ( f ( j ) − f ( i )) ⎞
⎟
⎪exp⎜
c
⎠
⎩ ⎝
se f ( j ) ≤ f ( i )
se f ( j ) > f ( i )
onde c ∈ R designa o parâmetro de controle. É claro que o mecanismo de
geração
g
ç e o critério de aceite correspondem
p
respectivamente
p
ao mecanismo
de perturbação e ao critério de aceite do algoritmo de Metropolis .
Definição 2.
2 Uma transição é uma ação combinada que resulta na
transformação de uma solução atual em uma subsequente. A ação consiste
nos dois passos seguintes: (i) aplicação do mecanismo de geração, (ii)
aplicação
li ã do
d critério
i é i de
d aceite.
i
Otimização Multiobjetivo - Prof. João Antônio de Vasconcelos – Depto. Eng. Elétrica - UFMG
Simulated Annealing Algoritm - SAA: Deixe ck designar o valor do parâmetro
de controle e Lk o número de transições geradas na k-ésima iteração do Algoritmo
de Metropolis. Então, o SAA pode ser descrito em pseudo PASCAL como:
procedure Simulated_Annealing;
begin
INITIALIZE(istart, c0, L0);
)
k := 0;
i := istart;
repeat
for l:=1 to Lk do
begin
GENERATE(j from Si);
if ( f(j) ≤ f(i) ) then i := j
else
⎛ − ( f ( j ) − f ( i )) ⎞
⎟
if ( exp⎜⎜
⎟
c
k
⎝
⎠
end;
> random [0, 1) ) then i :=j
k := k+1;
CALCULATE_LENGTH (Lk);
CALCULATE_CONTROL(ck);
until stopcriterion
p
end;
Otimização Multiobjetivo - Prof. João Antônio de Vasconcelos – Depto. Eng. Elétrica - UFMG
Características do SAA
O SAA além de aceitar os ganhos na função custo, ele também aceita dentro de
certos limites
li i
d i
deteriorações
õ no custo. Inicialmente,
I i i l
para grandes
d valores
l
d c,
de
grandes deteriorações no valor da função custo serão aceitos; na medida em que c
diminui, somente menores deteriorações serão aceitas e finalmente, na medida em
que c aproxima-se de 0 (zero), nenhuma deterioração será aceita.
Em contraste com outros algoritmos
g
de busca local,, o SAA pode
p
escapar
p de
mínimos locais enquanto ainda exibe características favoráveis de algoritmos de
busca local, que são simplicidade e aplicabilidade geral.
Dificuldades:
Determinação
D
t
i ã d
do
esquema de
resfriamento
- Valor inicial da temperatura
p
TEMP0
- Fator de redução da temperatura (0.8 - 0.99)
- Número de iterações sobre cada valor de temperatura
(no equilíbrio Na/Nr ~ 1)
Otimização Multiobjetivo - Prof. João Antônio de Vasconcelos – Depto. Eng. Elétrica - UFMG
Simulated Annealing Algoritm - SAA
Met-alg: Algoritmo de Metropolis
NUCICL: Número de ciclos auxiliares
LIM: Limite de movimentos com sucesso
j: j-ésimo ciclo auxiliar
i: i-ésima variável contínua
ui: uu-ésimo
ésimo sucesso da ii-ésima
ésima variável
TEMP: Temperatura
p0: Melhor solução
Aj t d
Ajuste
de TEMP
TEMP:
∑u
Se NT
∑
< 0,3
aumentar TEMP
∑u
Se
∑ NT
> 0,7
reduzir TEMP
i
i
i
i
i
i
i
i
Ajuste de H:
hi = hi[1+Ci(Pi-0,6)/0,4] se Pi > 0,6
hi = hi[1+Ci(0,4 - Pi)/0,4]-1 se Pi < 0,4
S íd d
Saída
do Ci
Ciclo
l d
de T
Temperatura:
t
i
Seja
Onde,
Pi = ui/Nti
Normalmente Ci ≈ 0,2
∑u
u=
∑ NT
i
i
i
Se
u ∈ [0.4;0.6]
e j > 2.nd
Otimização Multiobjetivo - Prof. João Antônio de Vasconcelos – Depto. Eng. Elétrica - UFMG
Inicialização
H = {h1, h2, ..., hnd}
Ind = 0
Ajustar H
Reduzir TEMP
Ind = Ind + 1
pp’i = pi + rhi
f’ = f(p’)
NTi = NTi + 1
Parar
Não
Não
Met-alg
f’ ≤ f
Não
Sim
Sim
Sim
p = p’
f = f’
ui = ui + 1
i=i+1
S i > nd,
Se
d i=1
p = p0
f = f0
Sim
f’ < f0
Não
p0 = p’
f0 = f’
Não
Sim
j < 10.nd
Não
j > 2.nd e
u ∈ [0.4;0.6]
Nao
j=j+1
Ind = 0 e
j ∈[k, 2k, 3k]
Sim
Sim
Otimização Multiobjetivo - Prof. João Antônio de Vasconcelos – Depto. Eng. Elétrica - UFMG
Ajustar
TEMP
FIM
Download

SIMULATED ANNEALING ALGORITHM