Você está na página 1de 48

Simulated Annealing

Introdução

Neste capı́tulo é analisado o algoritmo de simulat-


ed annealing. É apresentado um algoritmo de simu-
lated annealing sequencial e um algoritmo de simulated
annealing paralelo.
Annealing é uma das técnicas usadas pelos fı́sicos na
construção de cristais perfeitos. Nessa técnica um ma-
terial é aquecido até uma temperatura elevada
e depois esfriado lentamente, mantendo du-
rante o processo o chamado quase equilı́brio
termodinâmico. O processo pára quando o material
atinge seu estado de energia mı́nima na qual se trans-
forma num cristal perfeito. Assim, o algoritmo de sim-
ulated annealing tenta simular um processo equivalente
para encontrar a configuração ótima de um problema
complexo.
O problema padrão para simulated annealing é um
problema de minimização que é o caso do problema
de planejamento de sistemas de transmissão. Portanto,
na análise do algoritmo de simulated annealing, neste
capı́tulo, está implı́cito que o problema é de minimização.

1
Princı́pios Básicos de Simulated Annealing

SA é uma técnica de otimização combinatorial que


foi desenvolvida analisando o processo de “annealing”
em sólidos que é um dos processos de construção de
cristais perfeitos. No processo de “annealing” o ma-
terial sólido é esquentado a temperaturas el-
evadas onde esse material assume uma estru-
tura atômica altamente desordenada. Depois
o material é aquecido lentamente, mantendo
o quase-equilı́brio térmico, até atingir o esta-
do de mı́nima energia onde o material assume
a estrutura de um cristal perfeito. Este processo
de “annealing”, desenvolvido pelos fı́sicos para a con-
strução de cristais perfeitos, foi usado para desenvolver
um algoritmo com capacidade de resolver problemas do
campo da pesquisa operacional.
SA foi usado com sucesso em muitas áreas
da pesquisa operacional e em algumas apli-
cações em engenharia elétrica. Tem a caracterı́sti-
ca de que apresenta soluções ótimas ou quase-ótimas,
mas a um esforço computacional elevado. O programa
de esfriamento controla esta qualidade da solução e
o esforço computacional.

2
O Algoritmo de Metrópolis

A metodologia de “simulated annealing” (SA) foi pro-


posta no inı́cio da década de 80, como uma
nova ferramenta a ser usada na solução de
problemas grandes e complexos. SA surgiu do
campo da termodinâmica, especificamente da mecânica
estatı́stica, como consequência de uma comparação entre
os problemas formulados neste campo com os do campo
da pesquisa operacional. SA é uma metodologia sim-
ples e de grande potencialidade para ser aplicada a uma
grande variedade de problemas.
A idéia original que deu lugar ao algoritmo SA é o
chamado algoritmo de Metrópolis, o que por sua
vez está baseado no método de Monte-Carlo, com o
qual se estudam as propriedades de equilı́brio na análise
do comportamento microscópico dos corpos. Basicamente,
essa teoria estuda o comportamento fı́sico quı́mico de um
material que tem um número muito grande de moléculas.
Assim, dado um material, nem todas as molécu-
las têm a mesma energia. Na verdade, as molécu-
las estão distribuı́das em diferentes nı́veis de
energia, sendo o menor deles conhecido como
estado fundamental de energia.

3
Portanto, um material que está a 0oK têm to-
das suas moléculas no estado (nı́vel) funda-
mental de energia. Para outro valor de temperatu-
ra T , as moléculas ocupam diferentes nı́veis de energia
mantendo uma distribuição decrescente, isto é, no esta-
do fundamental existem sempre mais moléculas e esse
número diminui nos seguintes nı́veis de energia. Um au-
mento de temperatura significa a passagem de algumas
moléculas para nı́veis superiores de energia. Este proces-
so é adequadamente analisado pela mecânica estatı́stica.
Deve-se observar que o número de moléculas em movi-
mento num material é muito grande.

4
O algoritmo de Metrópolis gera uma sequência de es-
tados de um sólido, isto é, dado um sólido num estado i
e com energia Ei, gera-se o estado seguinte j mediante a
aplicação de um mecanismo de transição através de um
pequeno distúrbio. A energia do próximo estado é Ej ; se
a diferença de energia Ej - Ei é menor ou igual a zero,
o estado j é aceito. Se a diferença de energia é maior que
zero, o estado j é aceito com certa probabilidade, a qual
é dada como:
E −E
{ ki T j }
e b

em que T é a temperatura do material e kb é uma con-


stante fı́sica conhecida como constante de Boltzmann.
A regra de aceitação descrita é chamada critério de
Metrópolis e o algoritmo como algoritmo de Metrópo-
lis.

5
Se a diminuição da temperatura é feita de maneira
paulatina, o sólido pode alcançar o estado de equilı́brio
em cada nı́vel de temperatura. No algoritmo de Metrópo-
lis esta condição é encontrada após gerar um grande
número de transições num dado nı́vel de temperatura.
Para cada valor de temperatura T, o sólido deve atingir
um equilı́brio térmico, caracterizado pela probabilidade
de estar num estado i com energia Ei dado pela dis-
tribuição de Boltzmann:

1 −E
( K Ti )
PT {X = i} = e b
Z(T )

em que X é uma variável estocástica do estado atual do


−E
( K Tj )
sólido, Z(T ) = e é um fator de normalização,
X
b
j
conhecido como função partição; kb é a constante de
−E
( K Ti )
Boltzmann; e e b é conhecido como fator de Boltz-
mann.

6
Algoritmo de “Simulated Annealing” (SA)

Um problema de otimização combinatorial que pode


ser resolvido usando SA pode ser formulado como um
par (G, v) onde G representa um conjunto finito, embora
muito grande, de configurações e v é o custo associado a
cada configuração. Assim, resolver um problema combi-
natorial deste tipo consiste em encontrar a configuração
de custo mı́nimo entre todas as configurações possı́veis.
Assim, SA parte de uma configuração inicial
e depois gera um conjunto de configurações
candidatas controladas pelo programa de es-
friamento. Estas configurações candidatas são
aceitas se apresentam um custo menor que a
configuração corrente, mas elas também po-
dem ser aceitas se o custo for maior que a con-
figuração corrente de acordo com um critério
probabilı́stico. Esta última caracterı́stica, aceitar
configurações com custo mais elevado, per-
mite ao SA sair de eventuais ótimos locais.
Este processo é controlado pelo programa de
esfriamento.

7
Na figura 6.1 é mostrada a estrutura básica do algorit-
mo SA. Neste algoritmo, aplica-se uma ação combinada
do mecanismo de geração de alternativas e do critério
de aceitação. Tk é o parâmetro de controle ou temper-
atura e Nk é o número de alternativas geradas na k-
ésima iteração do algoritmo. Inicialmente quando T
é grande, grandes deteriorações da função ob-
jetivo podem ser aceitas; quando T decresce,
somente pequenas deteriorações são aceitas e
finalmente quando T tende a zero, nenhuma
deterioração é aceita. Esta caracterı́stica faz com
que o algoritmo SA seja diferente em relação aos algorit-
mos de busca local como os algoritmos heurı́sticos con-
strutivos.
A partir do estado i com custo f(i) gera-se o estado viz-
inho j com custo f(j) usando um mecanismo de geração
de vizinhança. O critério de aceitação determina se este
novo estado é aceito; assim deve-se calcular a seguinte
probabilidade:



 1 se ↔ f (j) ≤ f (i)
PT {aceitaj } = 

f (i)−f (j)
 e( T )
se ↔ f (j) > f (i)

8
Algoritmo “Simulated Annealing”;

inicia

inicializar (T0 , N0 );

k := 0;

configuração inicial Si

repetir o procedimento

do L := 1 to Nk

gere (Sj de Si );

se f (j) ≤ f (i) faça Si := Sj ;

caso contrário
 
f (i)−f (j)
if exp Tk
> random[0, 1] faça Si := Sj ;

end do;

k := k + 1;

Cálculo do comprimento de (Nk );

Cálculo do parâmetro de controle (Tk );

Critério de parada

termina;

Fonte: [ Aarts & Korst (1989) ]

Figura 6.1: Descrição do algoritmo “annealing”

9
Analogia Fı́sica e Simulated Annealing

Fazendo uma analogia entre os parâmetros que partici-


pam do processo de annealing e os métodos de otimização
é possı́vel sugerir a seguinte equivalência:
TERMODINÂMICA OTIMIZAÇÃO
Configuração Solução factı́vel
Configuração fundamental Solução ótima
Energia da configuração Valor da função objetivo
Temperatura Parâmetro de controle
A temperatura não corresponde a um sig-
nificado real no campo da otimização; assim,
esse parâmetro, deve ser adequadamente calculado e at-
ualizado durante o processo. Geralmente, SA inicia o
processo de otimização com um valor do parâmetro tem-
peratura elevado onde a grande maioria de propostas
de transição são aceitas. A proporção de transições pro-
postas que são aceitas diminui durante o processo com
a diminuição do parâmetro de temperatura e, nas fases
finais do processo, somente transições com funções ob-
jetivo de melhor qualidade são aceitas. Assim, na fase
final o algoritmo SA é semelhante a um algo-
ritmo de busca local.

10
Programa de Esfriamento

O programa de esfriamento controla o processo


SA até atingir a convergência. A qualidade de um al-
goritmo SA depende significativamente da qualidade do
correspondente programa de esfriamento. Um programa
de esfriamento é definido pela determinação ou escolha
de cada um dos seguintes parâmetros:

Temperatura inicial.
Taxa de esfriamento ou de diminuição de temperatu-
ra.
Número de tentativas de transição em cada nı́vel de
temperatura.
Critério de parada.

11
Existem muitas formulações matemáticas que
justificam a escolha desses parâmetros de con-
trole do programa de esfriamento da maneira
mais adequada. Na verdade, a escolha dos parâmetros
de controle já é um problema complexo. Entretanto, to-
dos os argumentos matemáticos estão baseados na su-
posição de que o processo deve atingir o quase-equilı́brio
em cada nı́vel de temperatura o que teoricamente leva
a uma exigência de esforço computacional muito eleva-
do para a maioria dos problemas de aplicações reais.
Na prática, esses parâmetros são calibrados
empiricamente para cada tipo de problema e
para esforços computacionais não proibitivos.
O algoritmo de simulated annealing foi desenvolvi-
do a partir da analogia com a construção de cristais
perfeitos na fı́sica. Entretanto, é possı́vel eliminar essa
origem na análise teórica do algoritmo SA. Toda a teo-
ria básica sobre SA pode ser reformulada us-
ando a teoria de processos estocásticos através
de cadeias de Markov.

12
SA Aplicado ao Problema de Planejamento

A aplicação de um algoritmo de SA para re-


solver um problema de otimização complexo
precisa da especificação de três aspectos significativa-
mente distintos e independentes:

1. Uma adequada representação do problema.


2. Um mecanismo de transição.
3. Um programa de esfriamento (“cooling schedule”).

Para cada tipo de problema, deve-se definir claramente


cada um destes três aspectos e geralmente existem várias
maneiras de se definir ou caracterizar cada um destes
itens, o que leva a algoritmos de SA substancialmente
diferentes.

13
A Representação do Problema

Esta parte do algoritmo está relacionado com


dois aspectos do problema: (1) uma forma ade-
quada de determinar a função objetivo do problema e
a manipulação de infactibilidades e, (2) uma adequada
identificação ou representação de uma solução ou con-
figuração do problema.
O problema de planejamento de sistemas de trans-
missão usando o modelo DC modificado (ver capı́tulo 2)
assume a seguinte forma:

mı́n v = cij nij + αiri (6.1)


X X

ij i
s.a. B(γ eq + γ )θ + g + r = d
o

(γijeq + γijo ) |θi − θj | ≤ (γijeq + γijo )φij


0≤g≤g
0≤r≤d
nij inteiro
θj irrestrito

que é um problema PNLIM. Entretanto, para uma pro-


posta de investimento, caracterizado especificando os val-
ores dos nkij , esse problema se transforma num problema
de PL que simplesmente encontra a corte de carga para
essa proposta de investimento.
14
A representação do problema deve carac-
terizar corretamente o espaço de configurações
possı́veis e uma forma adequada de determi-
nar a função objetivo. Na formulação (6.1),
ambos aspectos estão claramente definidos: a
factibilidade de uma configuração é determinada pelas
restrições e a função objetivo está constituı́da por dois
termos diferentes. A primeira parte corresponde aos cus-
tos dos circuitos adicionados e a segunda parte corre-
sponde a uma penalidade devido ao corte de carga.

15
Na verdade, a formulação (6.1) já é uma modificação
do problema de planejamento que na sua formulação
original somente leva em conta os custos dos circuitos
adicionados na função objetivo. Entretanto, nessa for-
mulação original seria muito difı́cil e pouco eficiente im-
plementar um algoritmo de SA pois essa formulação ap-
resenta três grandes limitações:

1. Precisa de uma configuração inicial factı́vel para ini-


ciar o processo, o que não é fácil encontrar em sis-
temas de grande porte.
2. A partir da configuração corrente, deve-se passar a
outra configuração factı́vel, isto é, sem corte de carga,
o que também é difı́cil de encontrar.
3. Esse mecanismo de transição, passar de uma configu-
ração sem corte de carga a outra configuração sem
corte de carga, limitaria a capacidade do algoritmo
de SA de sair de um ótimo local. Assim, representar
a função objetivo com penalidade devido aos cortes
de carga ou sem ela, representam duas alternativas
diferentes de implementar algoritmos de SA para o
problema de planejamento.

16
A vantagem de usar a formulação (6.1) em
que a função objetivo tem um termo corre-
spondente a penalidade devido ao corte de
carga. O motivo da escolha é que esta formulação não
apresenta os problemas anteriormente mencionados, ap-
resentando uma grande flexibilidade para realizar tran-
sições através de configurações factı́veis e infactı́veis com
pequeno corte de carga. Nesta formulação, qualquer con-
figuração candidata ou proposta de adição de circuitos,
nkij , é “factı́vel” para a formulação (6.1), isto é, as con-
figurações que apresentam e não apresentam corte de
carga. Assim, o espaço das configurações factı́veis foi
acrescido para facilitar o processo de transição.

17
Por outro lado, o processo deve priorizar as
configurações e regiões factı́veis do problema
original, isto é, das regiões sem corte de carga. Este
objetivo é atingido de duas maneiras complementares:

1. Implicitamente, pois as configurações com


corte de carga são fortemente penalizadas
produzindo uma função de custo elevado o que levará à
rejeição de configurações deste tipo; quanto mais ele-
vado o corte de carga de uma configuração, mais ele-
vada será a chance de ser rejeitada. Já configurações
com pequeno corte de carga serão mais facilmente
aceitas.
2. Usando limitantes inferiores e superiores
para a parte correspondente aos custos dos
circuitos de uma configuração, informação
que sempre está disponı́vel para cada sis-
tema e ainda pode ser melhorada usando
informação do processo de convergência do
próprio problema.

18
Configuração Tı́pica

Relacionado com a representação do problema é inter-


essante analisar o que significa uma configuração tı́pica
no problema de planejamento de sistemas de transmissão
de acordo com o tipo de representação que foi adotado.
Assim, uma configuração é uma proposta de
investimento com valores de nij inteiros. Para
verificar se uma configuração é factı́vel ou in-
factı́vel, deve-se resolver o PL resultante de
(6.1) após fixar os valores de n = {nij } que
são conhecidos. Entretanto, para o algoritmo SA to-
das as configurações são “factı́veis” e as infactibilidades
são penalizadas na função objetivo através dos cortes de
carga, tornando as configurações realmente infactı́veis
pouco atrativas.

19
Nas figuras 6.3, 6.4, 6.5 e 6.6 são mostradas 4 con-
figurações do sistema de 6 barras de Garver onde são
mostradas configurações obtidas em diferentes estágios
do processo de transições do algoritmo SA. Assim, por
exemplo, a figura 6.5 representa a seguinte configuração:

1-2 1-3 1-4 1-5 1-6 2-3 2-4 2-5 2-6 3-4 3-5 3-6 4-5 4-6 5-6

n = 0 0 0 0 0 0 0 0 2 0 0 0 0 2 0

com função objetivo v = 911, 19 para α = 5. Pode-se ob-


servar que são codificadas apenas as adições de circuitos
realizadas, isto é, não são representados os circuitos da
topologia inicial.

20
As figuras 6.3, 6.4, 6.5 e 6.6 representam a configu-
ração base, a configuração ótima, uma configuração com
corte de carga e uma configuração sem corte de carga
e com excesso de circuitos, respectivamente. Portanto,
as topologias das figuras 6.3, 6.4 e 6.6 são representadas
(codificadas) da seguinte forma:

1-2 1-3 1-4 1-5 1-6 2-3 2-4 2-5 2-6 3-4 3-5 3-6 4-5 4-6 5-6

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 4 0 1 0 0 2 0

0 0 0 0 0 1 0 0 4 0 1 0 0 3 0

21
g1 = 50 g1 = 50
t
r5 = 240 t t
240 80 240 80
? 65 - 37,903 ? 6 1 6
5  52,999 ? 6 1

n35 = 1
g3 = 165  g3 = 165 
t 37,903 t 187,001
? 3 5.645 ? 3 51,251
? ? 
40 40
H H
HH87,097 HH62,001
H
Hj r = 145
H HH
H 2 t Y
HH
HH HH
240 2,258 ? 240 31,748 6
? 62 6
2
w = 545 w = 0, 0
v1∗ = 0 @ v1∗ = 200 @
@ 2,258 @
@  @3,630
@@
I
@ n26 = 4 356,882 @@
R
@
@ @
@ @
r4 = 160@t
@ - 188,118 @
@
6 ? 4 6 4
n46 = 2
t6g6 = 0 160 ? t6
g6 = 545 160 ?

Figura 6.3: Configuração base. Figura 6.4: Configuração ótima.

r5 = 120, 469 g1 = 50 g1 = 50
t t t
240 80 240 80
? 65  19,531 ?6 1 6
5  47,117 ?6 1

n35 = 1
g3 = 165  g3 = 165 
t 100 t 192,883
? 3 27,734 ? 3 41,634
?
40 ?
40
HH 25 HHH
HH H H67,883
j r2 = 37, 77
H
H HH
HH t n23 = 1HHY
H
HHH
H
H H
H
240 21,797 6 240 35,483 6
? 62 6
2
w = 158, 239 w=0
v1∗ = 120 @ v1∗ = 250 @
@ @
 @4,964  @11,592
n26 = 2 200 @@I
@ n26 = 4 337,925 @@
I
@
@ @
@ @
- 186,761 @
@ - 207,075 @
@
6 n46 = 2 4 6 n46 = 3 4
t6 160 ? t6
g6 = 545 160 ?
g6 = 386, 761

Figura 6.5: Configuração com corte de carga. Figura 6.6: Configuração sem corte de carga.

22
Mecanismo de Transição

O mecanismo de transição é o processo que con-


siste em realizar a transição da configuração
corrente para a configuração subsequente. Este
processo é realizado em três etapas:

1. Geração de uma configuração candidata a partir da


configuração corrente, o que é implementado definin-
do uma estrutura de vizinhança para o problema.
2. Determinação da variação da função objetivo para a
configuração candidata.
3. Decidir se a configuração candidata é aceita, transfor-
mando-a em configuração corrente.

A seguir são apresentados detalhes destes aspectos


para o problema de planejamento de sistemas de trans-
missão.

23
Estrutura de vizinhança
A estrutura de vizinhança é o mecanismo
que permite gerar uma configuração candida-
ta nk+1
ij a partir da configuração corrente, nkij .
Um mecanismo de geração simples, que chamamos
mecanismo básico de transição , pode ser facil-
mente implementado. Assim, podem ser caracterizados
três tipos simples de obtenção de uma configuração can-
didata a partir da configuração corrente:

1. Adicionar um circuito em um caminho candidato.


2. Trocar circuitos, adicionando um circuito em um cam-
inho candidato e retirando outro circuito em outro
caminho candidato.
3. Retirar um circuito em um caminho candidato.

24
Este mecanismo gera as novas alternativas na sequência
adição-troca-retirada:

1. Escolhe-se aleatoriamente um circuito i como sendo


candidata a adição. A configuração candidata é obti-
da adicionando-se um circuito na posição i da con-
figuração Gk . Se esta configuração é aceita pelos critérios
de SA então foi obtida a configuração Gk+1 e deve-se
repetir o item 1. Caso contrário, tenta-se a troca de
circuitos.
2. Escolhe-se aleatoriamente um circuito j entre aque-
les circuitos que já estão adicionadas na configuração
atual. A troca consiste em adicionar um circuito na
posição i e retirar um circuito da posição j na con-
figuração Gk , para obter a configuração candidata.
Se esta configuração é aceita então foi obtida a con-
figuração Gk+1 e deve-se voltar ao item 1. Caso con-
trário, tenta-se a retirada.
3. O circuito j escolhido no item anterior é considerada
candidata a retirada. Assim, a configuração candi-
data é obtida retirando-se um circuito na posição
j da configuração Gk . Se esta configuração é aceita
então foi obtida a configuração Gk+1 e deve-se voltar
ao item 1. Caso contrário, fracassaram as três ten-
tativas (adição-troca-retirada) e volta-se ao item 1,
preservando a configuração corrente Gk .

25
No esquema anterior, cada vez que o pro-
cesso volta ao item 1, o contador de iterações
para o nı́vel de temperatura Tk deve ser incre-
mentado em 1, até atingir o limite de Nk ; de-
pois o processo deve passar ao seguinte nı́vel
de temperatura. Entretanto, pode-se verificar que
para cada iteração controlada por Nk são realizadas até três
tentativas. Assim, no esquema anterior, é evidente que
para um determinado nı́vel de temperatura a quantidade
de tentativas para a obtenção de novas configurações
está dentro do intervalo [Nk , 3 × Nk ].
A sequência de operações é adição-troca-retirada, is-
to é, primeiro tenta-se a adição de um circuito, depois a
troca e finalmente a retirada de um circuito. No proble-
ma de planejamento o processo se inicia geralmente com
um corte de carga muito grande o que, intuitivamente,
levaria à conclusão de priorizar a adição de circuitos; en-
tretanto, uma vez obtida uma configuração sem corte de
carga é evidente que a prioridade seria a de retirar cir-
cuitos. Baseados nos argumentos anteriores, a sequência
de adição-troca-retirada deve ser invertida em determi-
nados momentos do processo a fim de melhorar o desem-
penho do algoritmo.

26
O mecanismo básico de transição deve ser implementa-
do de maneira eficiente com sequência trocada: adição-
troca-retirada quando a configuração corrente apre-
senta corte de carga maior que uma tolerância especifi-
cada wo, onde deve ser priorizada a adição de circuitos;
ou retirada-troca-adição quando a configuração cor-
rente apresenta um corte de carga menor que uma tol-
erância especificada wo, e portanto deve ser priorizada a
retirada de circuitos.
A primeira sequência é acionada mais frequentemente
nas fases iniciais do processo onde o corte de carga é el-
evado e a segunda sequência nas fases finais onde prati-
camente todas as configurações com corte de carga são
rejeitadas. Este mecanismo básico de transição apresen-
ta a vantagem de sua simplicidade e a possibilidade de
implementar um eficiente algoritmo de PL para calcular
rapidamente o corte de carga da configuração candida-
ta a partir da solução da configuração corrente, como
será mostrado mais adiante; entretanto, apresenta limi-
tações para sistemas de grande porte com muitas barras
não conexas.

27
Um mecanismo de geração de configurações
mais elaborado deve levar em conta a topolo-
gia da rede elétrica, assim o processo de adição
e retirada de circuitos em novos caminhos deve
garantir a conectividade do sistema, evitando
que sejam adicionados circuitos ineficientes ou
retiradas de circuitos em novos caminhos que
deixem outros circuitos sem possibilidade de
transportar energia elétrica. Em sistema grandes
e complexos, como o Norte-Nordeste brasileiro, às vezes
é necessária a adição de 3 a 6 circuitos sucessivos, cone-
tados em série, para garantir a conectividade do sistema.

28
Avaliação da função objetivo

Dada a configuração corrente, a primeira parcela


da função objetivo se encontra de forma triv-
ial. A segunda parcela implica resolver o (PL):

mı́n w = αiri (6.2)


X

i
s.a. B(xk + γ o)θ + g + r = d
(xkij + γijo ) |θi − θj | ≤ (xkij + γijo )φij
0≤g≤g
0≤r≤d
θj irrestrito

Nesta formulação são alocados, de forma fictı́cia, ger-


adores artificiais ri que fornecem a potência necessária
nessa barra, quando os circuitos que chegam à mesma
não podem transportar a potência necessária, assim a
somatória de todos os ri, w = Pi αiri é conhecida co-
mo corte de carga, isto é, a quantidade de carga que o
sistema não pode fornecer.
Assim, conhecida a configuração corrente nkij , a for-
mulação (6.1) que é um problema PNLIM se transforma
em um PL mostrado em (6.2). Portanto, a avaliação da
função objetivo para cada configuração candidata impli-
ca resolver o PL (6.2).
29
Critério de aceitação

O critério de aceitação de uma configuração candidata


é determinado pelo critério de aceitação de Metrópolis
P (a), mostrado a seguir:


 1 se ∆v < 0
P a =  (6.3)

exp(− ∆v
T ) se ∆v ≥ 0

em que T é o valor do parâmetro temperatura e ∆v


é a diferença da função objetivo entre a configuração
candidata e a configuração corrente.

30
O Programa de Esfriamento

O programa de esfriamento é a estratégia geral de con-


trole do processo SA desde o inı́cio do processo até atin-
gir a convergência e está caracterizado pela es-
colha ou determinação dos quatro seguintes
parâmetros:

Valor inicial do parâmetro de controle To, chamado


de temperatura inicial.
Número de tentativas de transição Nk a cada nı́vel
de temperatura Tk .
Taxa de diminuição de temperatura, Tk+1 = g(Tk )Tk ,
em que g(Tk ) é uma função de Tk .
Temperatura final Tf ou critério de parada.

Uma vez definidos esses parâmetros fica caracteriza-


do um programa de esfriamento. Assim, pode-se imple-
mentar muitos programas de esfriamento dependendo
do tipo de escolha ou a forma usada para obter cada
um desses quatro parâmetros. A qualidade do algorit-
mo SA, depende da escolha adequada dos parâmetros de
controle no programa de esfriamento.

31
Temperatura inicial, To

Uma forma de determinar o valor da temperatura ini-


cial To é implementar um processo experimental constru-
tivo, simulando o processo correspondente ao primeiro
nı́vel de temperatura e usando a relação:

+
∆V
To = m2 (6.4)
ln( m2Xo−m 1 (1−Xo )
)

em que Xo é escolhido e os outros parâmetros são deter-


minados através de um teste experimental de mo tenta-
tivas; assim, m1 e m2 correspondem ao número de tran-
sições com funções objetivo decrescentes e crescentes, re-
+
spectivamente e ∆V é o valor médio das diferenças da
função objetivo ∆v de todas as m2 transições com au-
mento na função objetivo. Logicamente, mo = m1 + m2.
A literatura especializada recomenda usar um valor de
Xo = 0, 85 o que significa que na temperatura inicial são
aceitas em torno de 85 % das configurações candidatas.
Esta proposta apresenta a vantagem de que pode ser es-
colhido e verificado experimentalmente o valor de Xo.
Entretanto, apresenta a desvantagem de realizar uma
simulação construtiva.

32
Outra forma de determinar o valor de To é é obtida
usando a relação:

µ
To = f (xo) (6.5)
−Lnφ
em que é aceita φ % das vezes uma solução que é µ % pior
que a função objetivo da solução inicial f (xo) durante o
primeiro nı́vel de temperatura.
Exemplo 6.1 Encontrando To:
Em um problema de otimização, pretende-se aceitar
em φ = 13 % das vezes soluções cujas funções objetivo
são até µ = 1 % piores que a função objetivo da solução
inicial cujo valor é igual a f (xo) = 100000. Pretende-se
encontrar To.
Usando (6.5) temos seguinte:

0, 01
To = (100000) = 490
−Ln(0, 13)

33
Exemplo 6.2 Prove a relação (6.5):
Uma configuração cuja função objetivo f (xc) é µ %
pior que f (xo) é a seguinte:

f (xc) = (1 + µ)f (xo) = f (xo) + µf (xo)

=⇒ µf (xo) = f (xc) − f (xo)

Da definição de φ temos:
c o
f (x ) − f (x ) 
 

φ = exp −

To

Das duas relações anteriores temos:

f (xc) − f (xo) µf (xo) µ


Lnφ = − =− =⇒ To = f (xo)
To To −Lnφ

A proposta de encontrar o valor de To usando a relação


(6.5) apresenta a vantagem de sua simplicidade
mas a desvantagem é que depende do valor
de f (xo) o que pode não ser uma boa alternativa em
determinadas aplicações.

34
Escolha de Nk

A escolha de Nk , número de tentativas a cada nı́vel


de temperatura, deve garantir o quase-equilı́brio em ca-
da nı́vel, assim a escolha deste parâmetro está ligada
à determinação da taxa de diminuição da temperatu-
ra. A maioria dos algoritmos escolhem o val-
or de Nk em função do tamanho do problema
ou do número de variáveis e esse valor pode
ser mantido constante ou pode variar com a
diminuição da temperatura. Assim, na literatura
especializada existem as seguintes propostas:

Nk constante:

Nk+1 = No (6.6)
Nk variável: ρ ≥ 1, 0

Nk+1 = ρNk (6.7)

em que No é o número de tentativas de transição na


temperatura inicial.

35
Determinação de Tk+1

Existem muitos critérios para determinar a taxa de


diminuição da temperatura, todos eles baseados no critério
básico de manter o quase-equilı́brio do processo. As-
sim existem critérios simples, como manter uma taxa
de diminuição fixa e outros um pouco mais elaborados,
que avaliam o desempenho do processo no nı́vel de tem-
peratura Tk para determinar o valor de Tk+1. Mostramos
3 propostas:

Taxa constante: β ∈ [0, 50; 0, 99]

Tk+1 = βTk (6.8)


Taxa variável: δ ∈ [0, 01; 0, 20]

Tk
Tk+1 = ln(1+δ)Tk (6.9)
[1 + 3σ(Tk ) ]

em que σ(Tk ) é o desvio padrão das funções objetivo


das configurações geradas no nı́vel de temperatura
Tk .
Taxa variável: λ ≤ 1, 0

Tk
Tk+1 = λTk (6.10)
exp( σ(T ))
k

36
em que o novo valor de Tk+1 também depende do desem-
penho do processo, de maneira similar que na relação
(6.9).

37
Observação: Para o problema de planejamento de
sistemas de transmissão, as relações (6.9) e (6.10) ap-
resentam desempenhos similares aos obtidos usando a
relação (6.8) em relação a qualidade das configurações
encontradas, mas o número de iterações necessário para
convergência cresce de maneira proibitiva. A influência
dos parâmetros δ e λ assim como de σ(Tk ) é peque-
na e produzem taxas de diminuição de temperaturas
variáveis, mas elevadas, variando entre 0,94 e 0,99. Por-
tanto, resultados experimentais indicam que é mais prático
usar a relação (6.8) com uma adequada calibração dos
parâmetros o que foi verificado experimentalmente no
problema de planejamento de sistemas de transmissão.

38
Critério de parada:

Existem vários critérios de parada desde os mais sim-


ples até os mais elaborados. Essas propostas podem ser
pre-definidas ou dependentes do processo de otimização.
As mais simples sugeridas na literatura especializada são
as seguintes:

Fixar no inı́cio do processo um número determinado


de nı́veis de temperatura tradicionalmente entre 6 e
50.
Usar a taxa de melhoria da função objetivo como
critério de parada; assim se a função objetivo ou a
incumbente não melhora para vários nı́veis consecu-
tivos de temperatura então o processo atinge a con-
vergência.
Fixar um número mı́nimo de aceitações durante o
último nı́vel de temperatura; se no último nı́vel não
for aceito um número de configurações maior ao mı́ni-
mo estabelecido, então o processo atinge a convergência.

Embora existam outros critérios mais elaborados, o


segundo e terceiro critério apresentam desempenho ade-
quado.

39
Para problemas grandes e complexos, especialmente
aqueles que resolvem subproblemas subsidiários que re-
querem elevado esforço computacional como a maior-
ia dos problemas de sistemas elétricos de potência, o
critério de parada deve estar determinado pe-
lo número de subproblemas resolvidos e da
evolução do processo. Portanto, uma proposta de
critério de parada mais objetiva para o problema de
planejamento de sistemas de transmissão pode ser a seguinte:

Parar o processo se foram resolvidos um número máxi-


mo de PL’s previamente especificados ou,
Parar o processo se a incumbente não melhora du-
rante um número especificado de chamadas ao algo-
ritmo de PL.

40
Algoritmo de “Simulated Annealing”
Implementado

Em [?] foi implementado o seguinte algoritmo que


é válido para todos os programas de esfriamento; a figura
6.8 mostra de maneira geral o algoritmo de SA.

41
Determine a temperatura inicial
To

?
Defina os outros parâmetros de
controle: ρ, β, µ, ωo , εw
Nk = No = µ.Nt


?
MECANISMO DE TRANSIçãO

Repita Nk vezes o mecanismo

de transição

?
 HH
 Foi HH
 H H
Parâmetros
 satisfeito o HH N
 H -
HH critério de parada ? 
H
HH 
Nk+1 e Tk+1
HH 
H 
H
S
?
Entrar na fase de
melhoramento local (opcional)


?
pare


Figura 6.8: Diagrama de Fluxo do Algoritmo de SA

42
1. Determinar a temperatura inicial: To.
2. Escolher ou calcular os parâmetros de controle (β, ρ, etc.)
usados nas relações (6.8)-(6.10), assim como também
o parâmetro µ, usado para definir o número de it-
erações na temperatura inicial, obtida através da relação
No = µ.Nt, onde Nt é o número de variáveis do sis-
tema, isto é, o número de circuitos candidatos. Es-
colha também wo que define o corte de carga para
fazer a seqüência adição-troca-retirada de circuitos
ou vice-versa . Valores tı́picos para wo estão na faixa
de 0,3 % a 1,0 % da demanda total do sistema e
εw é o mı́nimo corte de carga permitido para que
a configuração seja considerada factı́vel. Em termos
de planejamento de sistemas de transmissão foram
usados valores de εw da ordem de 0,1 % a 0,3 % da
demanda total do sistema.
3. Incrementar o contador de iterações ncon. Se ncon ≥
Nk ir ao passo 7; caso contrário, ir ao passo 4.
4. Se o corte de carga corrente wk for menor que wo, ir
ao passo 5; caso contrário, ir ao passo 6.
a) Obter uma configuração candidata simulando a
retirada de um circuito i aleatoriamente escolhi-
do; com a configuração candidata, assim obtida,
processar um PL e testar sua aceitação usando
(6.3). Se for aceita, atualize a configuração cor-
43
rente e as outras grandezas do processo (função
objetivo corrente, melhor configuração encontra-
da (incumbente), etc.) e volte ao passo 3; caso
contrário, ir a 5(b).
b) Obter uma configuração candidata simulando a
troca do circuito i com um circuito j aleatoria-
mente escolhido; com a configuração candidata,
assim obtida, processar um PL e testar sua acei-
tação usando (6.3). Se for aceita, atualize a con-
figuração corrente e as outras grandezas do pro-
cesso e volte ao passo 3; caso contrário, ir a 5(c).
c) Obter uma configuração candidata simulando a
adição do circuito j aleatoriamente escolhido; com
a configuração candidata, assim obtida, processar
um PL e testar sua aceitação usando (6.3). Se
for aceita, atualize a configuração corrente e as
outras grandezas do processo. Em qualquer caso,
volte ao passo 3.
5. Idem ao passo 5 com a seqüência trocada:
a) Simular a adição de um circuito. Se a configu-
ração for aceita, volte ao passo 3; caso contrário,
ir a 6(b).
b) Simular a troca de circuitos. Se a configuração for
aceita, volte ao passo 3; caso contrário, ir a 6(c).
c) Simular a retirada de um circuito. Em qualquer
44
caso, volte ao passo 3.
6. Testar o critério de parada: se o critério for satisfeito,
ir ao passo 8; caso contrário, ir ao passo 7.
7. Atualizar os parâmetros de controle: Nk+1 e Tk+1 e
voltar ao passo 3.
8. O processo de SA foi concluı́do, entrar na fase de
melhoramento local (busca local) e parar o processo.

45
O melhoramento local (busca local) pode ser um pro-
cesso muito rápido, pois nesta fase somente são tes-
tadas aquelas configurações candidatas que produzem
redução do investimento, portanto, somente são consid-
erados para avaliação os seguintes casos:

Retirada de circuitos: Neste caso, deve-se ten-


tar retirar um circuito que leva a uma diminuição do
investimento e cada avaliação implica processar um
PL. Geralmente o número de caminhos onde são adi-
cionados circuitos é pequeno. Assim, esta parte leva
a um esforço computacional muito pequeno.
Troca de circuitos: Neste caso, deve-se simular
a retirada de um circuito que foi previamente adi-
cionado para obter a configuração atual, simultane-
amente com a adição de cada um dos circuitos can-
didatos. Esta parte também implica pouco esforço
computacional pois somente são testados através do
PL aquelas trocas que implicam numa diminuição
em investimento, pois as outras combinações, isto é,
aquelas que incrementam o investimento, são auto-
maticamente rejeitadas.

Na fase de melhoramento iterativo não é avaliada a


possibilidade de adição de circuitos pois implicaria em
um incremento do investimento. São aceitas todas as
configurações que diminuem o investimento e apresen-
46
tam um corte de carga menor que a tolerância εw es-
pecificada. Nesta fase, se é aceita alguma configuração,
então o processo deve ser reinicializado. Também nesta
fase, a função objetivo considerada é somente o custo
dos circuitos, isto é, υ ′ = P(i,j) cij nij .

47
Processador Processador Processador Processador Processador Processador Processador Processador
1 2 3 4 5 6 7 8

................ ........... . ... ..


........................................ . . . . ..
.............................................................
..
....
............ .... . . ................ . .
.............. ..
....
....
.... ......
.... ......
.
............................. ................
......
......... ..........
. .
...
..
. ..
.. ........
.... ......
.....
..... ........................... ...............
...... ......
......
......
......
.....
....
....
............ ............
.. .
.......... ....
.
..
...... .....
... . . . . . . . .......................
.. ..
......................
............ ...
.... .....
.. . . . .. ..................................

................ ........... . ... .. ..................................


........................................ ... . ... ......................... ......
....
............ ....
....
....
......
......
.....
.... .
.............................. ...............
..
......
.....
.....
. ................ ......
....
....
.... ...
. ... ...... .
......
...
.. ..
. ..............................................
........ . ..........
........ ....
. .... ..... . .
.............. ... ... ..................... ....
....
....
....
....
....
....................
..
..
..
..
..
..
..
..
.......... ..
...... . . .. ....... .......................................
...... .... .. . . . ... ....

r
r
r
r
r

................ ........... . ... ........................


........................................ . . . ... ................................
...... ..
....
............ .... . .. .
. .......... ..
....
....
..........
.... ......
.. . .
... ... ................
........................ ..... .
..... ..
. ....
....
.... ..... ....
...
........
...

Figura 6.10: Estrutura de operação do Algoritmo da Divisão

48

Você também pode gostar