Você está na página 1de 33

Anais do 3

o
Congresso Tematico de Dinamica e Controle da SBMAC
31-maio a 3-junho-2004
UNESP Campus de Ilha Solteira
Introdu cao a Metaheursticas
R. Romero J.R.S. Mantovani
DEE-FEIS-UNESP-Ilha Solteira-Brasil
ruben@dee.feis.unesp.br, mant@dee.feis.unesp.br
1 Introdu cao
As metaheursticas representam um conjunto de
tecnicas de otimiza c ao adaptadas para lidar com
problemas complexos e que apresentam a carac-
terstica da explos ao combinat oria. Essas tecnicas
foram desenvolvidas nas duas decadas passadas e s ao
consideradas como as tecnicas que devem apresen-
tar maior evolu c ao e utiliza c ao na resolu c ao de pro-
blemas de otimiza c ao matem atica complexa e que
requerem tempo de processamento elevado. Neste
trabalho apresentamos, de forma resumida, algumas
das metaheursticas usadas na otimiza c ao de proble-
mas no campo da pesquisa operacional. Tambem,
neste trabalho, pretendemos dar uma base los oca
unicada para as metaheursticas. Portanto, an-
tes de apresentar as metaheursticas apresentamos
a base los oca e exemplos de problemas combi-
nat orios que s ao usados como exemplos ao mostrar
a aplica c ao das metaheursticas.
A metaheurstica pode ser considerada como uma
evolu c ao dos algoritmos heursticos. Uma heurstica
e uma tecnica de otimiza c ao que atraves de passos
muito bem denidos encontra uma solu c ao de boa
qualidade de um problema complexo. Nesse con-
texto, do ponto de vista te orico, uma heurstica n ao
tem capacidade de encontrar a solu c ao otima global
de um problema complexo. Geralmente em proble-
mas de grande porte e complexos, uma heurstica
encontra apenas um otimo local, geralmente de po-
bre qualidade. Entretanto, uma heurstica apresenta
a vantagem de ser muito simples de formular e de
implementar computacionalmente, muito simples de
entender e, s ao r apidos e robustos.
Uma heurstica realiza um conjunto de transi c oes
atraves do espa co de solu c oes do problema, iniciando
o processo de um ponto do espa co de busca e termi-
nando em um ponto de otimo local. A diferen ca
entre os diferentes algoritmos heursticos est a relaci-
onada com a escolha do ponto inicial para iniciar as
transi c oes, a caracteriza c ao da vizinhan ca e o criterio
usado para escolher o pr oximo ponto, isto e, o melhor
vizinho. O processo termina quando todos os vizi-
nhos s ao de pior qualidade. O algoritmo heurstico
mais popular e o algoritmo heurstico construtivo
onde a cada passo e escolhida uma componente da
solu c ao e o processo termina quando e encontrada
uma solu c ao factvel para o problema. Nesse sen-
tido, a metaheurstica representa uma evolu c ao em
rela c ao aos algoritmos heursticos cl assicos.
2 Ideia Fundamental das Me-
taheursticas
Neste trabalho, chamamos espa co de busca o con-
junto de solu c oes candidatas de um problema de
acordo com a forma escolhida para representar ou
codicar uma proposta de solu c ao de um problema.
Por exemplo, para o problema da mochila de n ele-
mentos (ver subse c ao de exemplos), o espa co de
busca tem 2
n
candidatos ` a solu c ao. Uma parcela
do espa co de busca corresponde a solu c oes factveis
(regi ao factvel) e a outra parcela corresponde a pro-
postas infactveis.
A ideia fundamental de uma metaheurstica con-
siste em analisar ou visitar apenas um conjunto redu-
zido do espa co de busca, considerando que o espa co
de busca e absurdamente grande. Esse processo de
busca deve ser realizado de uma forma eciente para
que, na medida do possvel, seja encontrada (visi-
tada) a solu c ao otima global ou uma solu c ao quase
otima global. Portanto, uma metaheurstica e uma
estrategia que especica a forma em que deve ser re-
alizada a busca de forma inteligente, isto e, a forma
em que devem ser realizadas as transi c oes atraves do
espa co de busca partindo de um ponto inicial ou de
um conjunto de pontos. Assim, a diferen ca entre as
metaheursticas e a estrategia usada por cada uma
delas. Nesse contexto, qualquer pesquisador pode in-
ventar uma nova metaheurstica desde que formule
uma estrategia consistente e eciente. De fato, esse
fen omeno est a acontecendo e nos ultimos anos apare-
ceram novas metaheursticas ou modica c oes de pro-
postas j a existentes. A melhor metaheurstica para
determinado tipo de problema e aquela que encon-
Anais do 3
o
Congresso Tematico de Dinamica e Controle da SBMAC
31-maio a 3-junho-2004
UNESP Campus de Ilha Solteira
tra solu c oes de melhor qualidade para um n umero
especicado de avalia c oes do espa co de busca. Por
exemplo, para o problema da mochila para n = 25 o
espa co de busca tem 2
25
= 33.554.432 de solu c oes
candidatas mas podemos considerar como criterio
de parada de uma metaheurstica a avalia c ao de
apenas 40.000 solu c oes candidatas. Assim, a me-
lhor metaheurstica seria aquela que encontra a me-
lhor solu c ao ap os avaliar 40.000 solu c oes candidatas,
sendo que cada metaheurstica tem sua pr opria es-
trategia para escolheras propostas de solu c ao que
pretende avaliar ou visitar.
Para realizar o processo de busca, uma me-
taheurstica deve resolver alguns problemas relaci-
onados com todas as metaheursticas. Esses proble-
mas s ao os seguintes: (1) especicar uma forma de
identicar ou representar um elemento do espa co de
busca, isto e, uma proposta de solu c ao do problema,
(2) especicar a forma de encontrar a fun c ao objetivo
ou seu equivalente para cada proposta de solu c ao, (3)
especicar a vizinhan ca da solu c ao corrente, (4) es-
pecicar se a forma de realizar as transi c oes deve
ser realizada a partir de um unico ponto ou de
um conjunto de pontos (ou propostas de solu c ao)
e, (5) se o processo de busca deve ser realizado
atraves de solu c oes factveis ou podem ser consi-
deradas tambem solu c oes infactveis no processo de
busca. A forma de resolver cada um desses proble-
mas depende da metaheurstica usada e do tipo de
problema que se pretende resolver. Analisamos bre-
vemente esses assuntos.
A forma de identicar um elemento do espa co
de busca chamamos de codica c ao. A codica c ao
de um problema representa a estrategia fundamen-
tal para que seja adequadamente resolvida usando
metaheursticas. Dene-se codica c ao como uma
forma consistente de representar uma proposta de
solu c ao de um problema do espa co de solu c oes do
problema. A forma de codicar uma solu c ao de
um problema nem sempre est a diretamente relaci-
onada com as vari aveis de decis ao da modelagem
matem atica de um problema. Na verdade, muitos
problemas complexos n ao apresentam modelagens
matem aticas adequadas em que o problema seja re-
presentado atraves de um modelo matem atico com
rela c oes matem aticas (algebricas) entre as vari aveis
de decis ao.
Em geral a codica c ao de um problema representa
um conceito mais geral que uma solu c ao do espa co de
solu c oes de um problema. Na verdade, a codica c ao
de um problema representa uma proposta de solu c ao
que pode ser factvel ou infactvel e nesse caso o
espa co de trabalho e maior. Da mesma forma, os vi-
zinhos de uma solu c ao codicada podem ser factveis
ou infactveis.
Uma proposta de solu c ao est a adequadamente co-
dicada quando, a partir dessa informa c ao, e possvel
encontrar o valor da fun c ao objetivo (o seu equi-
valente) do problema e determinar se a proposta
e factvel ou infactvel. Uma proposta de solu c ao
est a ecientemente codicada para sua utiliza c ao em
uma metaheurstica quando os operadores desse al-
goritmo podem ser ecientemente implementados.
Assim, para um problema, uma proposta de codi-
ca c ao pode ser eciente para uma metaheurstica e
pouco eciente para outra. A codica c ao deve per-
mitir encontrar facilmente a fun c ao objetivo. Em
alguns problemas, a fun c ao objetivo pode ser encon-
trada facilmente mas em outros problemas pode ser
necess ario resolver um problema de otimiza c ao sub-
sidi ario ou um sistema algebrico.
Estreitamente relacionada com a codica c ao do
problema est a presente o conceito de vizinhan ca de
uma solu c ao. Portanto, deve-se denir uma estru-
tura de vizinhan ca que permite identicar e analisar
cada um dos vizinhos de uma solu c ao. Uma solu c ao
codicada do espa co de solu c oes do problema geral-
mente e denominada de solu c ao, congura c ao, to-
pologia, etc. dependendo do contexto ou do tipo
de problema. Deve-se observar que uma vizinhan ca
grande pode produzir uma metaheurstica lenta e
uma vizinhan ca pequena pode transformar uma me-
taheurstica ineciente. Portanto, calibrar e redenir
adequadamente a vizinhan ca e um assunto crucial
que dene o desempenho de uma metaheurstica.
Algumas metaheursticas realizam as transi c oes
apenas usando uma solu c ao (simulated annealing
e tabu search convencional), mas outras realizam
as transi c oes usando um conjunto de propostas de
solu c ao (algoritmos evolutivos). Finalmente, as
transi c oes podem ser realizadas somente atraves de
solu c oes factveis ou podemos considerar as propos-
tas de solu c ao infactveis como parte do processo de
transi c oes. Em geral, na otimiza c ao de problemas de
opera c ao e mais adequado realizar as transi c oes so-
mente atraves de propostas de solu c ao factveis. Por
outro lado, na otimiza c ao de problemas de planeja-
mento da expans ao de um sistema e mais adequado
considerar as propostas de solu c ao infactveis no pro-
cesso de transi c ao porque nesse tipo de problemas as
propostas factveis representam uma parcela muito
reduzida no espa co de busca do problema.
Anais do 3
o
Congresso Tematico de Dinamica e Controle da SBMAC
31-maio a 3-junho-2004
UNESP Campus de Ilha Solteira
2.1 Exemplos de Problemas Combi-
nat orios
Nesta subse c ao apresentamos tres problemas com-
binat orios muito conhecidos na literatura de pes-
quisa operacional. Nesses problemas apresenta-
mos propostas muito simples de codica c ao, forma
de calcular a fun c ao objetivo, a estrutura de vizi-
nhan ca e o aparecimento de propostas de solu c ao in-
factveis, isto e, mostramos os elementos fundamen-
tais que aparecem na utiliza c ao das metaheursticas
na solu c ao desses problemas.
2.1.1 O Problema da Mochila
O problema da mochila pode ser enunciado da se-
guinte forma: Existe um conjunto de n produtos
diferentes e cada produto tem um valor c
j
e um vo-
lume a
j
. Pretende-se colocar esses produtos em uma
mochila de volume b de maneira que o valor total dos
produtos colocados na mochila seja m axima.
O problema da mochila e muito importante em
pesquisa operacional porque est a relacionado com
muitos modelos matem aticos de problemas tais como
investimento de capital, carregamento de veculos,
or camento, etc. O problema e muito f acil de enten-
der e formular atraves de um modelo matem atico,
mas pode ser muito difcil de resolver especialmente
se n for grande. Seja x
j
= {0, 1} a vari avel de decis ao
em que x
j
= 1 signica que o produto e colocado na
mochila. Assim, o modelo matem atico assume a se-
guinte forma:
Max v =
j=n

j=1
c
j
x
j
(1)
s.a.
n

j=1
a
j
x
j
b
x
j
{0, 1}; j = 1, . . . , n
Um exemplo numerico para o problema da mo-
chila com n = 10 e seguinte:
3 2 8 4 6 4 12 2 6 10
5 4 4 2 4 6 10 4 2 8
Volume da mochila: b = 30
Volume:
Custo:
a =
c =
Codica cao:
O problema da mochila pode ser codicado, para
ser resolvido usando uma metaheurstica, usando um
vetor de tamanho n. Na forma mais usada, cada
elemento do vetor de codica c ao representa o valor
de x
j
na proposta de solu c ao codicada. Assim, por
exemplo, para o exemplo anterior, uma proposta de
solu c ao tpica assume a seguinte forma:
0 0 1 1 1 0 1 0 1 1
p
1
=
A proposta de solu c ao anterior e factvel (os pro-
dutos colocados na mochila tem um volume total de
30) e uma fun c ao objetivo de 46.
No problema da mochila existe uma sintonia per-
feita entre a proposta de codica c ao e as vari aveis
de decis ao, isto e, o vetor x = {x
j
} de vari aveis de
decis ao do modelo matem atico e praticamente igual
ao vetor de codica c ao p = {p
j
}. Ambos vetores
tem o mesmo tamanho e os elementos representam
a mesma grandeza, a decis ao de colocar um produto
na mochila. Essa sintonia perfeita n ao existe em ou-
tros problemas combinat orios.
Estrutura de vizinhan ca:
Para o codica c ao proposta, pode-se denir v arias
formas de vizinhan ca, isto e, v arias formas de identi-
car solu c oes vizinhas da solu c ao corrente. No pro-
cesso de transi c oes de uma metaheurstica, a par-
tir da solu c ao corrente, passa-se a uma solu c ao vi-
zinha de acordo com os criterios de cada tipo de
algoritmo. Para a codica c ao proposta, as seguin-
tes propostas representam estruturas de vizinhan ca
ou caracteriza c ao de vizinhan ca: (1) toda solu c ao
obtida trocando um elemento de 0 para 1; (2) toda
solu c ao obtida trocando um elemento de 1 para 0;
(3) toda solu c ao obtida trocando, simultaneamente,
um elemento de 0 para 1 e outro elemento de 1 para
0; ou (4) todas as anteriores.
Anais do 3
o
Congresso Tematico de Dinamica e Controle da SBMAC
31-maio a 3-junho-2004
UNESP Campus de Ilha Solteira
Deve-se observar que o n umero de vizinhos pode
ser muito grande. Este fato n ao representa proble-
mas para algoritmos como simulated annealing mas
pode representar serios problemas de esfor co adicio-
nal de processamento para algoritmos tipo tabu se-
arch.
Problema de Infactibilidades:
Normalmente e f acil encontrar uma solu c ao
factvel ou um conjunto de solu c oes factveis para
o problema da mochila com a codica c ao pro-
posta. Entretanto, operadores como a recombina c ao
no algoritmo genetico podem produzir solu c oes in-
factveis. Nesse caso, a proposta mais simples pode
consistir em eliminar essas solu c oes infactveis. En-
tretanto, quando o tamanho do problema cresce o
n umero de solu c oes infactveis pode ser proibitivo
descaracterizando o desempenho do operador de re-
combina c ao.
Outra estrategia muito usada em problemas com-
binat orios consiste em realizar as transi c oes atraves
de congura c oes factveis e infactveis, penalizando
adequadamente as infactibilidades na fun c ao obje-
tivo.
2.1.2 Problema do Caixeiro Viajante
O problema do caixeiro viajante (PCV) e um dos
mais tradicionais problemas de pesquisa operacional.
Pode ser enunciado da seguinte forma: Existe um
conjunto de n cidades, V = {1, 2, 3, . . . , n}, e um
conjunto de caminhos (arcos) ligando cada uma das
cidades, (i, j) A. c
ij
e a dist ancia para ir da cidade
i para a cidade j (c
ij
= c
ji
no caso simetrico). Um
caixeiro viajante deve fazer um tour partindo de uma
cidade origem, passando por cada uma das cidades
uma unica vez e voltando para a cidade de origem.
Pretende-se encontrar o tour de dist ancia mnima.
O PCV e considerado importante porque tem
grande import ancia pr atica, est a relacionado com
os modelos matem aticos de outros problemas im-
portantes, e geralmente e muito difcil encontrar a
solu c ao otima deste tipo de problemas quando n e
grande. O problema e muito f acil de entender mas
a formula c ao matem atica e complexa. Na verdade,
existem v arias formula c oes matem aticas para este
problema. Na formula c ao matem atica a vari avel de
decis ao e x
ij
, em que x
ij
= 1 se o arco (i, j) e usado
para fazer o tour e x
ij
= 0 em caso contr ario. Assim,
para um problema com n cidades existem n(n 1)
vari aveis para o caso assimetrico.
A gura 1 mostra o PCV para n = 10 onde n ao
s ao mostrados os caminhos que existem entre todas
as cidades mas e mostrado um tour tpico .
'
_
/
/
/
/
/
/
/
/
`
`
`
` *
\
\
\
\
\
\ 1


\
\
\
\
\
\ "
`
`
`
` `
|
|
|
|
|
|
|
| r
/
/
/
/
/
/ r
,
, ,
,
,
,
,
,
,
,
1
2
3
4 5
6 7
8
9 10
Figura 1: Caixeiro viajante para n = 10.
Deve-se observar que o modelo matem atico para
o PCV para n = 10 apresenta 90 vari aveis do tipo
x
ij
e um n umero muito elevado de restri c oes. O
PCV com n = 100 cidades alocadas num arranjo
simetrico de 10 10, como o mostrado na gura
2, n ao e muito f acil de resolver. Pode-se vericar
que o problema mostrado na gura 2 possui solu c oes
otimas alternativas com v = 100. Problemas para
n = 10000 para cidades alocadas em um arranjo
simetrico de 100100 similar ao mostrado na gura
2 e muito difcil de resolver. Nesse caso o n umero de
vari aveis seria 99.990.000!!!.
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
Figura 2: Caixeiro viajante para n = 100.
Anais do 3
o
Congresso Tematico de Dinamica e Controle da SBMAC
31-maio a 3-junho-2004
UNESP Campus de Ilha Solteira
Codica cao:
O PCV pode ser codicado, para ser resolvido
atraves de uma metaheurstica, usando um vetor de
tamanho n. Na forma mais usada, cada elemento do
vetor de codica c ao representa um n umero que iden-
tica a cidade. Portanto, um vetor de codica c ao
representa um tour em que as cidades s ao visitadas
na sequencia em que se encontram na codica c ao.
Assim, por exemplo, para o tour mostrado na gura
1, a proposta de solu c ao assume a seguinte forma:
1 9 10 7 4 2 3 6 8 5
p
1
=
Deve-se observar que um vetor de codica c ao ar-
mazena os vertices do grafo (que est ao representa-
dos por n umeros mas podem ser representados, por
exemplo, por letras) no PCV. Neste caso, a codi-
ca c ao n ao tem nenhuma rela c ao com as vari aveis
de decis ao x
ij
geralmente escolhida para montar a
modelagem matem atica.
A proposta de codica c ao mostrada anteriormente
apresenta as seguintes vantagens: (1) qualquer ar-
ranjo das cidades sempre representa uma solu c ao
factvel para o problema, (2) o tamanho do arranjo e
igual a n (n umero de cidades) e n ao cresce muito com
o tamanho do problema comparado com os x
ij
da
modelagem matem atica, (3) e possvel encontrar e-
cientes estruturas de vizinhan ca em algoritmos tipo
simulated annealing e tabu search. Entretanto, essa
forma de codica c ao traz alguns problemas na imple-
menta c ao dos operadores geneticos nos algoritmos
evolutivos.
Estrutura de vizinhan ca:
Para a codica c ao proposta, pode-se denir v arias
formas de vizinhan ca, isto e, v arias formas de iden-
ticar solu c oes vizinhas da solu c ao corrente. Para
a codica c ao mostrada em que as cidades s ao orde-
nadas em um arranjo vetorial, as seguintes propos-
tas representam estruturas de vizinhan ca ou carac-
teriza c ao de vizinhan ca; (1) duas cidades trocam de
posi c ao no arranjo vetorial. (2) uma cidade troca de
posi c ao; (3) v arias cidades trocam de posi c ao; ou (4)
todas as anteriores.
Neste caso tambem o n umero de vizinhos pode
ser muito grande. A estrutura de vizinhan ca mais
popular, muito usada em algoritmos heursticos, e
a primeira proposta, chamada de 2 opt, em que
duas cidades trocam de posi c ao. Essa proposta tem
a vantagem adicional de que a fun c ao objetivo da
topologia vizinha e encontrada rapidamente, apenas
com quatro somas algebricas (com a sada de dois
caminhos do tour e a entrada de dois caminhos).
Problema de Infactibilidades:
Com a estrutura de vizinhan ca proposta e a pri-
meira codica c ao, n ao existe problemas de infactibi-
lidade no PCV. Todas as topologias encontradas s ao
factveis. Entretanto, quando a codica c ao de tama-
nho n e usada em algoritmos geneticos e evolutivos,
frequentemente aparecem topologias (solu c oes) in-
factveis. Este fato acontece particularmente com a
implementa c ao do operador de recombina c ao. Neste
tipo de casos, deve-se desenvolver novas estrategias
ou operadores geneticos modicados para encon-
trar topologias factveis ap os a recombina c ao. Al-
guns operadores modicados de recombina c ao para
o PCV s ao os seguintes: Operator Partially-Mapped
Crossover (PMX), Operator Order Crossover (OX),
Operator Cycle Crossover (CX), Operator Edge Re-
combination Crossover (ERX), etc. O operador de
muta c ao tambem deve ser redenido. Deve-se obser-
var que a necessidade de operadores geneticos mo-
dicados e uma consequencia do tipo de codica c ao
escolhida.
2.1.3 Problema das n Rainhas
Este problema consiste em colocar n rainhas num
tabuleiro de xadrez de dimens ao nn de maneira a
minimizar o n umero de ataques. Uma solu c ao otima
para esse problema deve ser tal que n ao exista mais
que uma rainha por linha, coluna ou diagonal do
tabuleiro (neste caso o n umero de ataques ser a nulo).
A gura 3 mostra uma topologia para o problema
das sete rainhas, onde existem quatro ataques ou
colis oes entre as rainhas e a gura 4 mostra uma
topologia em que n ao existe colis ao entre rainhas
representando, portanto, uma solu c ao otima.
Para o problema das n rainhas e possvel encon-
trar uma codica c ao eciente que consiste em des-
crever uma congura c ao usando um vetor P de ta-
manho n, onde um elemento desse vetor, chamado
P(i) representa a coluna do tabuleiro ocupada pela
i-esima rainha essa rainha sempre ocupa a linha i.
Usando este tipo de proposta, a codica c ao para a
congura c ao mostrada na gura 3 assume a seguinte
forma:
4 5 3 6 7 1 2
1 2 3 4 5 6 7
_
_
coluna
rainha
P
1
=
Anais do 3
o
Congresso Tematico de Dinamica e Controle da SBMAC
31-maio a 3-junho-2004
UNESP Campus de Ilha Solteira
7
6
5
4
3
2
1
1 2 3 4 5 6 7
R
R
R
R
R
R
R
Figura 3: Topologia inicial
onde a rainha 1 est a na coluna 4, a rainha 2 est a
na coluna 5, e assim por diante. Com essa codi-
ca c ao em mente poderemos reformular o problema
como sendo um problema de minimiza c ao: o obje-
tivo passa a ser minimizar o n umero de colis oes nas
diagonais considerando-se como solu c oes vi aveis to-
das aquelas que n ao apresentam colis oes horizontais
ou verticais.
7
6
5
4
3
2
1
1 2 3 4 5 6 7
R
R
R
R
R
R
R
Figura 4: Topologia otima
No contexto anterior, a codica c ao sugerida para
o problema das n rainhas e muito interessante pelos
seguintes motivos:
Para se obter uma solu c ao factvel basta exi-
girmos que as rainhas (e portanto as linhas do
tabuleiro) sejam numeradas atraves dos n pri-
meiros n umeros inteiros (1 i n) e que as
colunas P(i) sejam numeradas atraves de qual-
quer arranjo dos n primeiros n umeros inteiros,
n ao necessariamente em ordem crescente.
As congura c oes encontradas com a codica c ao
proposta nunca apresentam colis ao entre rai-
nhas atraves das linhas ou colunas do tabu-
leiro, assim o problema se reduz a minimizar
o n umero de colis oes atraves das diagonais do
tabuleiro. Pode-se vericar facilmente que n ao
existe colis ao atraves das colunas porque os ele-
mentos do vetor P s ao diferentes o que sig-
nica que sempre uma coluna e ocupada por
uma unica rainha. Tambem n ao existe colis ao
atraves das linhas porque as rainhas sempre per-
manecem numa mesma linha do tabuleiro.
Novas congura c oes encontradas a partir de
uma congura c ao factvel podem ser factveis
ou infactveis dependendo da forma proposta
para encontrar essas novas congura c oes. Por
exemplo, a recombina c ao convencional do al-
goritmo genetico destr oi facilmente a factibi-
lidade de congura c oes desse tipo. Na busca
tabu, pode-se desenvolver v arias estrategias
de vizinhan ca que sempre geram congura c oes
factveis, eliminando-se assim o problema de
gera c ao de congura c oes infactveis.
O problema da codica c ao e representa c ao do pro-
blema das n rainhas termina quando e encontrada
uma forma simples de determinar a fun c ao objetivo
de uma congura c ao que, para o caso da codica c ao
proposta, agora foi reduzida a calcular o n umero de
colis oes atraves das diagonais do tabuleiro que na
verdade e uma matriz de n n.
A forma mais conhecida de denir a estrutura de
vizinhan ca do problema das n rainhas e a seguinte: e
vizinha da congura c ao corrente toda congura c ao
que pode ser encontrada trocando as colunas ocu-
padas por duas rainhas. Assim, por exemplo, uma
congura c ao vizinha da congura c ao mostrada na -
gura 3 e obtida trocando as colunas ocupadas pelas
rainhas 2 e 6. A gura 5 mostra as congura c oes
corrente e vizinha.
Para essa estrutura de vizinhan ca, a congura c ao
corrente tem n(n 1)/2 congura c oes vizinhas. As-
sim, a congura c ao mostrada na gura 3, com n = 7,
possui 21 congura c oes vizinhas.
Anais do 3
o
Congresso Tematico de Dinamica e Controle da SBMAC
31-maio a 3-junho-2004
UNESP Campus de Ilha Solteira
4 5 3 6 7 1 2
1 2 3 4 5 6 7
_
congura c ao
corrente
P
1
=
4 1 3 6 7 5 2
_
congura c ao
vizinha
P
2
=
' '
Figura 5: Congura c ao vizinha.
Existem outras formas de caracterizar a vizi-
nhan ca de uma congura c ao para o problema das
n rainhas. Por exemplo, pode-se considerar con-
gura c ao vizinha da congura c ao corrente toda con-
gura c ao encontrada: (1) inserindo um elemento do
vetor P em outra posi c ao, por exemplo, na gura 5
inserindo 4 entre 3 e 6, o que signica que a rainha 1
passa para a coluna 5, a rainha 2 passa para a coluna
3 e a rainha 3 passa para a coluna 4, (2) trocando de
coluna 3 rainhas simultaneamente, (3) considerando
o conjunto de vizinhos encontrados em (1) e (2), e
(4) considerando os vizinhos obtidos em (3) mais os
vizinhos obtidos trocando duas rainhas de coluna.

E
evidente que quanto mais complexa e a deni c ao da
vizinhan ca de uma congura c ao, mais difcil ser a a
sua identica c ao e maior ser a a viznhan ca.
A troca de colunas de duas rainhas e a caracte-
riza c ao mais simples e tambem a mais usada de vi-
zinhan ca no problema das n rainhas. Entretanto,
mesmo essa caracteriza c ao j a e explosiva: considere-
se por exemplo o problema com n = 1000; a con-
gura c ao corrente teria 499500 vizinhos!
3 Simulated Annealing
3.1 Introdu cao
O algoritmo de simulated annealing (SA) e uma
das mais importantes metaheursticas para resol-
ver problemas combinat orios. Annealing e uma das
tecnicas usadas pelos fsicos na constru c ao de cris-
tais perfeitos. Nessa tecnica um material e aque-
cido ate uma temperatura elevada e depois esfri-
ado lentamente, mantendo durante o processo o cha-
mado quase equilbrio termodin amico. O processo
p ara quando o material atinge seu estado de energia
mnima, no qual se transforma num cristal perfeito.
Assim, o algoritmo de simulated annealing tenta si-
mular um processo equivalente para encontrar a con-
gura c ao otima de um problema complexo.
Metropolis idealizou a tecnica de simulated anne-
aling para a constru c ao de cristais perfeitos ainda
no incio da decada de 50 e essa tecnica foi usada na
constru c ao de cristais perfeitos. Somente na decada
de 80, duas pesquisas realizadas independentemente
por Kirkpatrick, Gelatt, Vecchi [4] e Cerny [2] en-
contraram semelhan cas no processo de annealing na
fsica e no processo de otimiza c ao de um problema
na pesquisa operacional. Assim, foi inventada uma
tecnica de otimiza c ao baseada num fen omeno fsico,
ou melhor ainda, no processo de constru c ao de um
material perfeito que e um cristal. Cerny usou um al-
goritmo SA rudimentar para resolver problemas de
caixeiro viajante com cidades simetricamente loca-
lizadas e que apresentam solu c oes otimas conheci-
das. Assim, o algoritmo de Cerny encontra a solu c ao
otima do problema do caixeiro viajante para n = 100
mostradas nas guras 6 e 7.
Na gura 6 e mostrada uma distribui c ao simetrica
de 100 cidades sendo que existe uma dist ancia
unit aria entre cidades vizinhas pelo caminho hori-
zontal ou vertical. Pode-se vericar que o tour otimo
apresenta uma dist ancia de v = 100.
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
Figura 6: Tour otimo para o PCV com n = 100.
Na gura 7 e mostrada uma distribui c ao simetrica
de 100 cidades em torno de uma circunferencia de
raio unit ario. A gura mostra uma parcela de um
percurso tpico e, pode-se concluir trivialmente que
o tour otimo consiste em percorrer as cidades em
forma sequencial em torno da circunferencia pro-
duzindo um tour otimo com v 2 6.28 [2].
Assim, quanto maior for o valor de n, por exem-
plo n = 10000, o tour otimo ca mais pr oximo de
v = 2.
Os inventores do algoritmo SA vericaram que
Anais do 3
o
Congresso Tematico de Dinamica e Controle da SBMAC
31-maio a 3-junho-2004
UNESP Campus de Ilha Solteira
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
, ,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
, ,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
, ,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
, ,
' `
`
`
`
`
`
`
`
`
`
`
`
`
`
Z
Z
Z
Z
Z
Z
Z
Z
Z `
`
` `
`
`
`
`
`
`
`
`
`
Z
Z
Z
Z
Z
Z
Z
Z
Z
Z
Z
Z
Z
Z
Z
Z
Z
Z
Z
Z
Z
Z
Z
Z
Z
Z
Z
Z
.
.
.
.
. z
.
.
.
.
.
.
.
.
.
.
Figura 7: O PCV com n = 100.
existe muita semelhan ca entre o processo de annea-
ling na constru c ao de cristais perfeitos e o processo
de otimiza c ao de um problema na pesquisa operaci-
onal. Nesse processo de verica c ao de semelhan cas o
estado fsico da materia corresponde a uma proposta
de solu c ao do espa co de estado de um problema de
otimiza c ao, a fun c ao objetivo do problema corres-
ponde ` a energia livre (free energy) do material em
processo de annealing, a solu c ao otima do problema
corresponde a um cristal perfeito na qual o material
se encontra em um estado de energia mnima. Nesse
contexto, uma solu c ao otima local corresponde a um
cristal imperfeito, isto e, um vidro. A gura 8 mostra
a estrutura de um cristal perfeito, que corresponde
a uma solu c ao otima, e dois casos de estrutura de
cristal imperfeito.
Entretanto, a semelhan ca entre o processo de oti-
miza c ao de um problema e o processo de annealing
n ao e perfeita porque no processo de annealing existe
uma grandeza fsica, chamada de temperatura, que
adequadamente controlada garante que o processo
de annealing termine com a obten c ao de um cristal
perfeito. O processo de controle da varia c ao da tem-
peratura no processo de annealing e chamado de coo-
ling schedule. Assim, os inventores do algoritmo SA
tiveram que inventar um par ametro de otimiza c ao
que simule a temperatura e controle adequadamente
o processo de otimiza c ao do problema na pesquisa
operacional. Esse par ametro foi chamado de tempe-
ratura, como no processo de annealing, embora n ao
exista um signicado fsico para esse par ametro.




(a) Cristal perfeito.




(b) Defeito de falta




(c) Defeito intersticial.
Figura 8: Constru c ao de cristais.
A proposta de Metropolis para sugerir uma
tecnica de constru c ao de cristais est a baseada
em conceitos da mec anica estatstica, especica-
mente em tecnicas de Monte Carlo que genera uma
sequencia de estados de um s olido. Portanto, e
possvel desenvolver uma teoria consistente para o
algoritmo SA sem levar em conta o algoritmo de
Metropolis, assim como as propostas iniciais dos in-
ventores do algoritmo SA e, simplesmente, apresen-
tar o algoritmo de SA baseado em uma tecnica de
otimiza c ao baseada na teoria de tecnicas de Monte
Carlo. Por esse motivo, muitos autores chamam o
algoritmo SA simplesmente de tecnica de otimiza c ao
de Monte Carlo.
Anais do 3
o
Congresso Tematico de Dinamica e Controle da SBMAC
31-maio a 3-junho-2004
UNESP Campus de Ilha Solteira
3.2 Ideia Fundamental em Simulated
Annealing
O algoritmo SA pode ser considerado como um pro-
cesso de transi c oes atraves do espa co de busca de um
problema complexo. Assim, comparado com outras
metaheursticas, SA apresenta duas caractersticas
fundamentais: (1) a forma de escolha do vizinho
mais interessante e (2) o controle do processo de
transi c oes.
SA escolhe o vizinho mais interessante atraves de
uma l ogica baseada no processo de annealing. As-
sim, escolhe-se aleatoriamente um vizinho da topolo-
gia corrente. Se esse vizinho for de melhor qualidade
ent ao e realizada a transi c ao escolhendo esse vizinho
como a nova topologia corrente. Em caso contr ario,
esse vizinho ainda pode ser escolhido usando um
criterio probabilstico baseado no processo de anne-
aling. A escolha de um vizinho de pior qualidade,
embora seja probabilstica, est a controlado por dois
par ametros: (1) a temperatura e (2) a varia c ao da
fun c ao objetivo. Assim, se a varia c ao da fun c ao ob-
jetivo e pequena e/ou a temperatura for elevada, a
probabilidade de escolher um vizinho de pior quali-
dade e elevada. Com essa l ogica, nas fases iniciais do
processo geralmente s ao realizadas muitas transi c oes
para vizinhos de pior qualidade. Essa probabilidade
diminui atraves do processo chegando a ser pratica-
mente nula nas fases nais do processo em que s ao
realizadas apenas transi c oes para topologias vizinhas
de melhor qualidade.
A l ogica mostrada anteriormente permite a SA
sair dos otimos locais sendo que essa possibilidade
diminui com a evolu c ao do processo de solu c ao. Por-
tanto, SA parte de uma congura c ao inicial e depois
gera um conjunto de congura c oes candidatas con-
troladas pelo programa de esfriamento. Estas con-
gura c oes candidatas s ao aceitas se apresentam um
custo menor que a congura c ao corrente, mas elas
tambem podem ser aceitas se o custo for maior que
a congura c ao corrente de acordo com um criterio
probabilstico. Este processo e controlado pelo pro-
grama de esfriamento.
Na gura 9 e mostrada a estrutura b asica do algo-
ritmo SA. Neste algoritmo, aplica-se uma a c ao com-
binada do mecanismo de gera c ao de alternativas e
do criterio de aceita c ao. T
k
e o par ametro de con-
trole ou temperatura e N
k
e o n umero de alternati-
vas geradas na k-esima itera c ao do algoritmo. Ini-
cialmente quando T e grande, grandes deteriora c oes
da fun c ao objetivo podem ser aceitas; quando T de-
cresce, somente pequenas deteriora c oes s ao aceitas e
nalmente quando T tende a zero, nenhuma deteri-
ora c ao e aceita.
A partir da proposta de solu c ao i com custo f(i)
gera-se o vizinho j com custo f(j) usando um me-
canismo de gera c ao de vizinhan ca. O criterio de
aceita c ao determina se este novo estado e aceito; as-
sim deve-se calcular a seguinte probabilidade:
P
T
{aceita
j
} =
_
1 se f(j) f(i)
e
(
f(i)f(j)
T
)
se f(j) > f(i)
A rela c ao anterior e usada na l ogica de funciona-
mento de um algoritmo de simulated annealing.
3.3 O Programa de Esfriamento
O programa de esfriamento e a estrategia geral
de controle do processo SA desde o incio do pro-
cesso ate atingir a convergencia e est a caracterizado
pela escolha ou determina c ao dos quatro seguintes
par ametros:
Valor inicial do par ametro de controle T
o
, cha-
mado de temperatura inicial.
N umero de tentativas de transi c ao N
k
a cada
nvel de temperatura T
k
.
Taxa de diminui c ao de temperatura, T
k+1
=
g(T
k
)T
k
, em que g(T
k
) e uma fun c ao de T
k
.
Temperatura nal T
f
ou criterio de parada.
Uma vez denidos esses par ametros ca caracteri-
zado um programa de esfriamento. Assim, pode-
se implementar muitos programas de esfriamento
dependendo do tipo de escolha ou a forma usada
para obter cada um desses quatro par ametros. A
eciencia de um algoritmo de SA, isto e, a qualidade
da congura c ao nal, assim como o esfor co compu-
tacional para atingir a convergencia, depende da es-
colha adequada dos par ametros de controle no pro-
grama de esfriamento. A seguir s ao apresentados e
discutidos os criterios de escolha ou determina c ao
desses par ametros.
Temperatura inicial, T
o
Uma forma de determinar o valor da temperatura
inicial T
o
e implementar um processo experimental
construtivo, simulando o processo correspondente ao
primeiro nvel de temperatura, isto e, T
o
e construti-
vamente determinado. Em [1] e proposta a seguinte
f ormula construtiva:
Anais do 3
o
Congresso Tematico de Dinamica e Controle da SBMAC
31-maio a 3-junho-2004
UNESP Campus de Ilha Solteira
T
o
=
V
+
ln(
m2
m2Xom1(1Xo)
)
(2)
Algoritmo Simulated Annealing;
inicia
inicializar (T
0
, N
0
);
k := 0;
congura c ao inicial S
i
repetir o procedimento
do L := 1 to N
k
gere (S
j
de S
i
);
se f(j) f(i) fa ca S
i
:= S
j
;
caso contrario
if exp
_
f(i)f(j)
T
k
_
> random[0, 1] fa ca S
i
:= S
j
;
end do;
k := k + 1;
Calculo do comprimento de (N
k
);
Calculo do parametro de controle (T
k
);
Criterio de parada
termina;
Fonte: [ Aarts & Korst (1989) ]
Figura 9: Descri c ao do algoritmo annealing .
em que X
o
e escolhido e os outros par ametros s ao de-
terminados atraves de um teste experimental de m
o
tentativas; assim, m
1
e m
2
correspondem ao n umero
de transi c oes com fun c oes objetivo decrescentes e
crescentes, respectivamente e V
+
e o valor medio
das diferen cas da fun c ao objetivo v de todas as m
2
transi c oes com aumento na fun c ao objetivo. Logica-
mente, m
o
= m
1
+ m
2
. A literatura especializada
recomenda usar um valor de X
o
= 0, 85, o que signi-
ca que na temperatura inicial s ao aceitas em torno
de 85% das congura c oes candidatas.
Outra forma de determinar o valor de T
o
e pro-
posta em [5] onde e sugerida usar a seguinte rela c ao:
T
o
=

Ln
f(x
o
) (3)
em que e aceita % das vezes uma solu c ao que e
% pior que a fun c ao objetivo da solu c ao inicial f(x
o
)
durante o primeiro nvel de temperatura.
Exemplo: Encontrando T
o
:
Em um problema de otimiza c ao, pretende-se acei-
tar em = 13% das vezes solu c oes cujas fun c oes
objetivo s ao ate = 1 % piores que a fun c ao obje-
tivo da solu c ao inicial cujo valor e igual a f(x
o
) =
100000. Pretende-se encontrar T
o
.
Usando (3) temos seguinte:
T
o
=
0, 01
Ln(0, 13)
(100000) = 490
A proposta de encontrar o valor de T
o
usando a
rela c ao (3) apresenta a vantagem de sua simplici-
dade mas a desvantagem e que depende do valor de
f(x
o
), o que pode n ao ser uma boa alternativa em
determinadas aplica c oes.
Escolha de N
k
A escolha de N
k
, n umero de tentativas a cada nvel
de temperatura, deve garantir o quase-equilbrio em
cada nvel, assim a escolha deste par ametro est a li-
gada ` a determina c ao da taxa de diminui c ao da tem-
peratura. A maioria dos algoritmos escolhem o va-
lor de N
k
em fun c ao do tamanho do problema ou do
n umero de vari aveis e esse valor pode ser mantido
constante ou pode variar com a diminui c ao da tem-
peratura. Assim, na literatura especializada existem
as seguintes propostas:
N
k
constante:
N
k+1
= N
o
(4)
N
k
vari avel: 1, 0
N
k+1
= N
k
(5)
em que N
o
e o n umero de tentativas de transi c ao
na temperatura inicial que e escolhida levando em
conta o tamanho do problema, isto e, tipicamente as
vari aveis de decis ao do problema.
Determina cao de T
k+1
Existem muitos criterios para determinar a taxa
de diminui c ao da temperatura, todos eles baseados
no criterio b asico de manter o quase-equilbrio do
processo. Em [1] s ao analisadas v arias propostas
para atualizar o valor do par ametro temperatura,
sendo duas dessas propostas as seguintes:
Anais do 3
o
Congresso Tematico de Dinamica e Controle da SBMAC
31-maio a 3-junho-2004
UNESP Campus de Ilha Solteira
Taxa constante: [0, 50; 0, 99]
T
k+1
= T
k
(6)
Taxa vari avel: [0, 01; 0, 20]
T
k+1
=
T
k
[1 +
ln(1+)T
k
3(T
k
)
]
(7)
em que (T
k
) e o desvio padr ao das fun c oes ob-
jetivo das congura c oes geradas no nvel de tem-
peratura T
k
.
Em determinadas aplica c oes o uso de um deter-
minado criterio para determinar o novo valor do
par ametro temperatura pode ser relevante. Entre-
tanto, resultados experimentais indicam que e mais
pr atico usar a rela c ao (6) com uma adequada cali-
bra c ao dos par ametros.
Criterio de parada:
Existem v arios criterios de parada desde os mais
simples ate os mais elaborados. Essas propostas po-
dem ser pre-denidas ou dependentes do processo de
otimiza c ao. As mais simples sugeridas na literatura
especializada s ao as seguintes: (1) xar no incio do
processo um n umero determinado de nveis de tem-
peratura; (2) usar a taxa de melhoria da fun c ao ob-
jetivo como criterio de parada; assim se a fun c ao ob-
jetivo ou a incumbente n ao melhorarem para v arios
nveis consecutivos de temperatura ent ao o processo
atinge a convergencia; (3) xar um n umero mnimo
de aceita c oes durante o ultimo nvel de temperatura;
se no ultimo nvel n ao for aceito um n umero de con-
gura c oes maior ao mnimo estabelecido, ent ao o pro-
cesso atinge a convergencia.
Para problemas grandes e complexos, especi-
almente aqueles que resolvem subproblemas sub-
sidi arios que requerem elevado esfor co computaci-
onal como a maioria dos problemas de sistemas
eletricos de potencia, o criterio de parada deve es-
tar determinado pelo n umero de subproblemas re-
solvidos e da evolu c ao do processo. Portanto, uma
proposta de criterio de parada mais objetiva para
problemas de engenharia, que usam problemas de
PL como subproblemas subsidi arios, pode ser a se-
guinte:
Parar o processo se foram resolvidos um n umero
m aximo de PLs previamente especicados ou,
Parar o processo se a incumbente n ao melhora
durante um n umero especicado de chamadas
ao algoritmo de PL.
Deve-se observar que em aplica c oes do algoritmo
SA, em problemas de sistemas de potencia, sempre
que e necess ario encontrar a fun c ao objetivo de uma
congura c ao vizinha ent ao, deve-se resolver um pro-
blema subsidi ario que geralmente implica resolver
um problema de PL ou um problema de uxo de
carga. Assim, resolver problemas de PL ou de uxo
de carga consome praticamente todo o tempo de pro-
cessamento do algoritmo SA. Este fato n ao acontece
em outros problemas complexos da pesquisa operaci-
onal, como no PCV, onde a fun c ao objetivo ou a va-
ria c ao da fun c ao objetivo se encontra rapidamente.
3.4 Proposta de Algoritmo de Simu-
lated Annealing
A estrutura geral de um algoritmo SA foi mos-
trada na gura 9. Na literatura especializada foram
propostas muitas propostas alternativas com peque-
nas altera c oes na formula c ao b asica. Uma proposta
alternativa e mostrada na gura 10 na forma de di-
agrama de blocos. Na gura 10 foi adicionado um
bloco adicional de fase de melhoramento local. Nesse
caso pode ser usado um algoritmo greedy com uma
estrutura de vizinhan ca modicada.
3.5 Exemplo: Problema do Caixeiro
Viajante
Apresentamos um algoritmo SA para o PCV que na
verdade e uma vers ao melhorada do algoritmo de
Cerny [2].
3.5.1 Codica cao do Problema
Para implementar o algoritmo SA, deve-se escolher
um tipo de codica c ao para representar uma pro-
posta de solu c ao do PCV. Por exemplo, supor que
o tour apresentado na gura 11 representa uma pro-
posta de solu c ao e existe caminho que liga uma ci-
dade com as outras cidades. Uma alternativa de
codica c ao, a mais usada no PCV, consiste em re-
presentar uma proposta de solu c ao atraves de um
arranjo vetorial com os n umeros de 1 a n ordenados
usando algum tipo de estrategia. Assim, para a pro-
posta de solu c ao mostrada na gura 11, a codica c ao
assume a seguinte forma:
1 9 10 7 4 6 8 5 3 2
p
1
=
que indica um tour ligando as cidades na seguinte
Anais do 3
o
Congresso Tematico de Dinamica e Controle da SBMAC
31-maio a 3-junho-2004
UNESP Campus de Ilha Solteira
sequencia: 1,9,10,7,4,6,8,5,3,2. A proposta de codi-
ca c ao mostrada anteriormente apresenta as seguin-
tes vantagens: (1) qualquer arranjo das cidades sem-
pre representa uma solu c ao factvel para o problema,
(2) o tamanho do arranjo e igual a n (n umero de
cidades) e n ao cresce muito com o tamanho do pro-
blema, (3) e possvel encontrar ecientes estruturas
de vizinhan ca para o algoritmo simulated annealing.
'
'
'
'
'
_
_
.
.
.
.
.
.

.
.
.
.
.
.
`
_
Determine a temperatura inicial
To
Dena os outros par ametros de
controle: , , , o, w
N
k
= No = .Nt
MECANISMO DE TRANSI c aO
Repita N
k
vezes o mecanismo
de transi c ao
Foi
satisfeito o
criterio de parada ?
N
S
Entrar na fase de
melhoramento local (opcional)
pare
Par ametros
N
k+1
e T
k+1
Figura 10: Algoritmo SA
A estrutura de vizinhan ca proposta para o PCV
n ao e a unica mas e a mais usada para o PCV, es-
pecialmente quando s ao usados algoritmos tipo SA
e PCV.
'
_
/
/
/
/
/
/
/
/
`
`
`
` *


`
`
`
` `
|
|
|
|
|
|
|
| r
-
-
-
-
-
-
-
-

_ ,
, ,
,
,
,
,
,
,
,
1
2
3
4 5
6 7
8
9 10
Figura 11: Caixeiro viajante para n = 10.
3.5.2 Determina cao da topologia inicial
A topologia inicial do PCV para iniciar o algoritmo
SA pode ser encontrada de v arias formas. A forma
mais simples consiste em determinar a topologia
(solu c ao) inicial de forma aleat oria, encontrando um
arranjo vetorial dos n umeros de 1 a n. Outra forma,
mais sosticada, consiste em encontrar a topologia
inicial usando um algoritmo heurstico tipo guloso
(greedy).
A fun c ao objetivo, isto e, a dist ancia correspon-
dente ao tour, para a topologia inicial do PCV, se
encontra facilmente realizando uma somat oria das
dist ancias do tour. Assim, a fun c ao objetivo e en-
contrada somando n dist ancias. Deve-se observar
que o custo computacional para encontrar o valor
da fun c ao objetivo e muito pequeno. Entretanto,
o custo computacional para encontrar o valor da
fun c ao objetivo das novas topologias no processo de
transi c oes do algoritmo SA e muito menor ainda.
A fun c ao objetivo da topologia inicial mostrada
na gura 11, que est a a uma escala de 1 unidade =
7 mm, e encontrada da seguinte forma:
v
1
= d
1,9
+d
9,10
+d
10,7
+. . . +d
3,2
+d
2,1
= 53, 72
3.5.3 Estrutura de Vizinhan ca
Para o PCV a forma mais popular de identicar as
solu c oes vizinhas da solu c ao corrente e o chamado
mecanismo 2-opt. Nessa proposta, qualquer tour que
pode ser obtido trocando a posi c ao de duas cidades
no tour corrente, representa um tour vizinho. Em
Anais do 3
o
Congresso Tematico de Dinamica e Controle da SBMAC
31-maio a 3-junho-2004
UNESP Campus de Ilha Solteira
geral, no PCV se dene a estrategia de vizinhan ca
mais complexa chamada de k opt.
Para o PCV a estrutura de vizinhan ca mais usada
e a estrategia 2opt. Deve-se observar que para valo-
res grandes de n, por exemplo n = 1000, o n umero de
vizinhos da solu c ao corrente pode ser muito grande.
Este fato n ao representa um problema crtico para o
algoritmo SA. No algoritmo SA a decis ao de passar
para uma solu c ao vizinha n ao depende da qualidade
nem da quantidade de vizinhos da solu c ao corrente.
A transi c ao e decidida apenas analisando a varia c ao
da fun c ao objetivo entre a solu c ao corrente e uma
solu c ao vizinha. Como a solu c ao vizinha e geral-
mente escolhida de forma aleat oria, e possvel que
existam solu c oes de melhor qualidade na vizinhan ca
da solu c ao corrente. Somente quando a temperatura
e muito baixa a quantidade de vizinhos se torna im-
portante porque a rejei c ao elevada permite analisar
e testar a maioria dos vizinhos da topologia corrente.
Para ilustrar a identica c ao de solu c oes vizinhas,
supor que o tour mostrado na gura 11 representa a
solu c ao corrente e se pretende encontrar uma solu c ao
vizinha em forma aleat oria. Assim, aleatoriamente
e escolhida a troca das posi c oes das cidades 10 e 8
na codica c ao identicada como p
1
para o tour da
gura 11. Portanto, a codica c ao da solu c ao vizinha,
p
2
, assume a forma mostrada na gura 12.
' '
1 9 10 7 4 6 8 5 3 2
p
1
=
1 9 8 6 4 7 10 5 3 2
p
2
=
Figura 12: Congura c ao vizinha.
A gura 13 mostra o tour correspondente ` a
solu c ao vizinha, p
2
, mostrada na gura 12. Pode-
se observar que a sequencia do tour entre as cidades
8, 6, 4, 7 e 10 foi invertida. Tambem, deve-se obser-
var que entre os tours p
1
e p
2
existem apenas dois
tramos diferentes. Em p
1
existem os tramos 9-10
e 8-5 enquanto que em p
2
existem os tramos 9-8 e
10-5.
A estrutura de vizinhan ca tipo 2-opt, como a mos-
trada anteriormente permite encontrar facilmente a
varia c ao da fun c ao objetivo entre a solu c ao corrente
e uma solu c ao vizinha do tipo 2-opt.
'
`
`
`
`
`
`
`
`

`
`
`
`
/
/
/
/
/
/
/
/
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
-
-
-
-
-
-
-
-

_ ,
, ,
,
,
,
,
,
,
,
1
2
3
4 5
6 7
8
9 10
Figura 13: Caixeiro viajante para n = 10.
3.5.4 Varia cao da Fun cao Objetivo
Em cada passo do algoritmo SA, deve-se encontrar
a varia c ao da fun c ao objetivo entre a solu c ao cor-
rente e uma solu c ao vizinha para tomar a decis ao de
realizar o processo de transi c ao.
Para o PCV e muito simples e r apido encon-
trar a varia c ao da fun c ao objetivo necess aria para
analisar um processo de transi c ao. A varia c ao da
fun c ao objetivo, quando e usada a vizinhan ca 2-opt,
encontra-se facilmente atraves de quatro somat orias
algebricas. Por exemplo, supor que a topologia cor-
rente e a mostrada na gura 11 e a topologia vizinha
e a mostrada na gura 13. A varia c ao da fun c ao ob-
jetivo, v, pode-se encontrar da seguinte forma:
v = v
2
v
1
= d
9,8
+d
10,5
d
9,10
d
8,5
v = 2

2 + 10 9

17 = 0, 295
No caso do algoritmo SA a topologia vizinha seria
automaticamente aceita porque e de melhor quali-
dade e transformada na nova topologia corrente com
fun c ao objetivo v
2
:
v
2
= v
1
+ v = 53, 72 0, 29 = 53, 43
e topologia corrente denida por p
2
.
3.5.5 Cooling Schedule
No cooling schedule, deve-se determinar a tempera-
tura inicial T
o
, o n umero de tentativas a cada nvel
Anais do 3
o
Congresso Tematico de Dinamica e Controle da SBMAC
31-maio a 3-junho-2004
UNESP Campus de Ilha Solteira
de temperatura N
k
, a taxa de diminui c ao de tempe-
ratura e o criterio de parada.
Para o PCV, pode-se determinar T
o
, por exemplo,
usando a rela c ao (3). Assim, supor que se pretende
aceitar em = 30% das vezes solu c oes cujas fun c oes
objetivo s ao ate = 15 % piores que a fun c ao obje-
tivo da solu c ao inicial cujo valor e igual a v
1
= 53, 72
(mostrada na gura 11). Portanto T
o
pode ser en-
contrada usando (3):
T
o
=
0, 15
Ln(0, 30)
(53, 72) = 6.69
O n umero de tentativas a cada nvel de tempera-
tura pode ser assumida constante e igual a N
k+1
=
N
o
em que N
o
, o n umero de tentativas no nvel ini-
cial de temperatura, geralmente e proporcional ao
n umero de cidades no PCV. Assim, por exemplo,
pode-se assumir um valor de N
o
= 4n = 4(10) = 40
tentativas em cada nvel de temperatura para o pro-
blema com n = 10 cidades.
A taxa de diminui c ao de temperatura pode ser
assumida constante e igual a, por exemplo, = 0, 98.
Assim, a temperatura para o nvel de temperatura
k + 1 assume a seguinte forma:
T
k+1
= 0.98T
k
O criterio de parada pode assumir v arias formas.
Uma alternativa simples consiste em parar o pro-
cesso se a incumbente n ao varia durante um n umero
especicado de nveis de temperatura, por exemplo,
se a incumbente n ao melhora em 5 nveis consecu-
tivos de temperatura. Um algoritmo SA, com os
par ametros especicados anteriormente para o PCV
com n = 10 e com a topologia inicial mostrada na
gura 11 converge rapidamente para a solu c ao otima
com v = 43, 38 mostrada na gura 14.
3.6 Resultados Obtidos
O algoritmo SA e particularmente adequado para re-
solver o PCV. O algoritmo inicialmente apresentado
por Cerny [2] foi aplicado ao PCV com distribui c ao
simetrica das cidades. O algoritmo SA apresentado
neste trabalho encontra facilmente a solu c ao otima
do PCV com distribui c ao simetrica das cidades como
a mostrada na gura 6 e 7 para n = 100. Algoritmos
SA sosticados podem encontrar as solu c oes otimas
ou quase otimas do PCV para um problema com
milhares de cidades.
'
_
/
/
/
/
/
/
/
/
`
`
`
` *
\
\
\
\
\
\ 1


\
\
\
\
\
\ "
`
`
`
` `
|
|
|
|
|
|
|
| r
/
/
/
/
/
/ r
,
, ,
,
,
,
,
,
,
,
1
2
3
4 5
6 7
8
9 10
Figura 14: Solu c ao otima para n = 10.
Uma particularidade muito importante do algo-
ritmo SA para o PCV e que, para a codica c ao pro-
posta e com vizinhan ca tipo k-opt, todas as topo-
logias vizinhas s ao factveis. Assim n ao acontece o
aparecimento de tours infactveis como pode acon-
tecer, por exemplo, com o algoritmo genetico ou al-
goritmos evolutivos em geral.
3.7 Aplica c oes de Simulated Annea-
ling
SA foi inventado simultaneamente por Cerny e Kirk-
patrick na decada de 80 e as primeiras aplica c oes, no
campo da pesquisa operacional come caram a apa-
recer na segunda metade da decada de 80. Entre-
tanto, as primeiras aplica c oes se limitaram a proble-
mas cl assicos da pesquisa operacional, tais como tra-
veling salesman problem, graph coloring, quadratic
assigment problem, etc. No campo da engenharia
a primeira aplica c ao importante foi em VLSI pla-
cement realizado pelo pr oprio Kirkpatrick. Poste-
riormente apareceram muitas aplica c oes em digital
design automation problems.
Aplica c oes de SA na otimiza c ao de problemas
complexos das diferentes areas do conhecimento au-
mentaram de forma mais intensiva na decada de 90,
ap os a publica c ao de dois livros cl assicos sobre SA
[1, 22], e essa tendencia assumiu um car ater explo-
sivo na primeira metade da decada de 90. Essa
tendencia de aumento de publica c oes come cou a di-
minuir nos ultimos anos onde e possvel vericar um
incremento de publica c oes usando algoritmos tipo
TS, geneticos e evolutivos em geral, assim como no-
Anais do 3
o
Congresso Tematico de Dinamica e Controle da SBMAC
31-maio a 3-junho-2004
UNESP Campus de Ilha Solteira
vas tecnicas de otimiza c ao. Um levantamento reali-
zado em maio de 2001 nas revistas indexadas pelo
Institute for Scientic Information (ISI) mostrou 680
publica c oes relacionadas com teoria e aplica c ao de
SA sendo que mais de 50 % dessas publica c oes cor-
respondem ao perodo 1998-2001.
4 O Algoritmo Genetico
O algoritmo genetico e uma metaheurstica original-
mente formulado usando os mecanismos da evolu c ao
e da genetica natural. Este algoritmo foi inventado
por Holland na decada de 70 [17].
A evolu c ao das especies est a determinada por um
processo de sele c ao que leva ` a sobrevivencia dos in-
divduos geneticamente melhor adaptados para su-
perar os problemas do meio ambiente que geralmente
s ao vari aveis. O conceito de geneticamente melhor
adaptado tem um valor relativo porque depende do
fator problem atico que existe no meio ambiente. As-
sim, as mudan cas do meio ambiente determinam,
de maneira signicativa, a mudan ca na composi c ao
genetica dos elementos de uma popula c ao.
Os elementos da popula c ao geneticamente me-
lhor qualicados tem maior possibilidade de che-
gar ` a fase adulta e gerar descendentes, transmi-
tindo suas caractersticas geneticas para os descen-
dentes e aumentando essas caractersticas geneticas
na popula c ao. Neste processo, existe uma compo-
nente aleat oria muito importante na gera c ao dos in-
divduos da nova popula c ao.
Para que exista sele c ao devem existir indivduos
geneticamente diferentes. A diferen ca genetica entre
os indivduos de uma popula c ao pode ser explicada
pela teoria de Darwin. Assim, em forma resumida,
pode-se dizer que existe diversidade genetica pelos
seguintes motivos:
1. Divis ao e Duplica c ao de Celulas Reprodutivas:
A informa c ao genetica se encontra nos cromos-
somos que, no caso da especie humana, con-
sistem em 23 pares de cadeias de cromosso-
mos. Cada par de cromossomos gemeos tra-
balham de maneira conjunta na determina c ao
de uma caracterstica genetica. Um cromos-
somo e constitudo por uma sequencia de uni-
dades mais elementares chamadas de genes. As-
sim, em cada elemento do cromossomo, cha-
mado de gene, existe uma informa c ao genetica
dominante que e consequencia da informa c ao
existente em cada cromossomo gemeo do par
cromoss omico. O tipo especco de informa c ao
existente no gene e chamado de alelo. Por-
tanto, um gene est a constitudo por 2 alelos,
um alelo em cada cromossomo gemeo. Geral-
mente, um dos alelos e dominante sobre o outro
e assim aparece o conceito de gen otipo como
uma indica c ao dos tipos de alelos existentes e
a informa c ao do alelo dominante. O gen otipo,
determinado pelo tipo de gene, determina um
fen otipo que e a caracterstica visual ou seletiva
no indivduo. Por exemplo, o tipo de sangue
das pessoas (fen otipo) e determinado por um
tipo de alelo dominante (gen otipo) e como con-
sequencia aparecem pessoas com dois fen otipos:
pessoas de sangue Rh
+
e Rh

. A gura 15 mos-
tra os conceitos analisados.
K
2
K
1
P
1
P
1
S
2
S
1
. .
'
'
_
_
cromossomo
herdado do pai
cromossomo
herdado da m ae
alelo
alelo
gene
Figura 15: Dois cromossomos gemeos.
Na divis ao celular de uma celula reprodutiva,
primeiro acontece uma separa c ao e duplica c ao
dos cromossomos gemeos (e da cadeia cro-
moss omica). Assim, por exemplo, uma celula
reprodutiva masculina gera 4 espermatoz oides
(gametas), sendo que um espermatoz oide re-
presenta uma meia celula que depois pode se
juntar com um ovulo (outra meia celula) para
formar o ser humano mais elementar, chamado
de zigoto. Assim, o zigoto e a uni ao de duas
meias celulas que se complementam e permitem
recuperar, novamente, os 23 pares de cromos-
somos gemeos. A forma em que a celula re-
produtiva se separa e se duplica representa a
principal fonte de diversidade genetica e, nesse
processo, acontece o fen omeno chamado de re-
combina c ao genetica ou crossing over (crosso-
ver). Outra fonte de diversidade genetica, me-
nos importante, e a reprodu c ao sexuada formal,
isto e, a uni ao de dois gametas de pessoas com
caractersticas geneticas diferentes. Essas fon-
tes de diversidade genetica s ao analisadas em
separado.
2. O Fen omeno de Crossing Over (Recombina c ao
Genetica)
Quando dois cromossomos gemeos se separam
no processo de divis ao celular de uma celula
Anais do 3
o
Congresso Tematico de Dinamica e Controle da SBMAC
31-maio a 3-junho-2004
UNESP Campus de Ilha Solteira
reprodutiva acontece o chamado fen omeno de
crossing over ou de recombina c ao genetica.
Para ilustrar este fen omeno centramos a an alise
num par de cromossomos gemeos, chamados A
e B, de uma pessoa. Assim, o cromossomo A
foi herdado do pai e o cromossomo B da m ae.
Quando a celula reprodutiva se separa e se du-
plica podemos imaginar que s ao gerados game-
tas A e B, exatamente como foram herdados dos
pais. Entretanto, foi descoberto que n ao e exa-
tamente isso que acontece na natureza. Na ver-
dade, cada gameta gerado tem parcelas do cro-
mossomo A e B. Portanto, antes da separa c ao,
os cromossomos A e B se recombinam, trocando
parcelas de genes de tamanho variado numa
forma que ainda n ao est a claramente explicada.
O resultado desse processo e a produ c ao de ga-
metas que possuem parcelas dos cromossomos
gemeos A e B numa forma diversicada e dife-
rentes umas das outras. Este fen omeno (cros-
sing over) faz com que sejam gerados gametas de
caractersticas muito diferentes por uma mesma
pessoa.
3. A Reprodu c ao Sexuada:
A reprodu c ao sexuada e outra fonte de di-
versidade genetica entre os indivduos de uma
especie. A uni ao de dois gametas de pes-
soas diferentes contribui na gera c ao de zigo-
tos de caractersticas geneticas diferentes. En-
tretanto, dois zigotos de um mesmo casal se-
riam geneticamente iguais sem a presen ca do
fen omeno de crossing over. Portanto, a re-
produ c ao sexuada n ao e uma grande fonte de
diversidade genetica.
A an alise apresentada e, obviamente, super-
cial porque n ao foram analisados outros aspec-
tos importantes que acontecem na natureza. Na
natureza existem seres vivos unicelulares e de
reprodu c ao assexuada. Tambem existem se-
res vivos que se desenvolvem somente a par-
tir dos gametas (meia celula) como acontece
em v arios tipos de plantas. Existem tambem
fen omenos mais complexos na determina c ao das
caractersticas geneticas. Por exemplo, existe o
fen omeno conhecido como pleiotropia onde um
simples gene pode controlar simultaneamente
v arias caractersticas fenotpicas, assim como o
fen omeno de poligenia onde uma simples carac-
terstica fenotpica e controlado pela a c ao si-
mult anea de v arios genes.
Existe ainda outra fonte de diversidade genetica,
considerada secund aria, chamada de muta c ao. A
muta c ao acontece na intera c ao dos seres vivos com
a natureza. Assim, podem aparecer mudan cas na
estrutura de um gene produzindo uma modica c ao
da fun c ao do gene e do correspondente fen otipo.
Holland analisou o fen omeno da evolu c ao natural
das especies e encontrou semelhan cas deste processo
com o processo de solu c ao de problemas grandes e
complexos. Assim, o algoritmo genetico inventado
por Holland gera uma sequencia de popula c oes (con-
junto de congura c oes ou solu c oes) usando os me-
canismos de sele c ao, recombina c ao e muta c ao como
mecanismo de busca (operadores geneticos) atraves
do espa co de congura c oes de um problema com-
plexo.
4.1 Ideia Fundamental do Algoritmo
Genetico
O algoritmo genetico usa uma popula c ao de in-
divduos, que nos problemas combinat orios signi-
cam um conjunto de congura c oes, para resolver um
problema de otimiza c ao complexo. Portanto, o al-
goritmo genetico deve fazer o seguinte:
1. Representar adequadamente uma congura c ao
do problema. A representa c ao mais popular e
a representa c ao em codica c ao bin aria onde s ao
facilmente simulados os operadores geneticos de
recombina c ao e muta c ao.
2. Deve encontrar uma forma adequada para ava-
liar a fun c ao objetivo ou seu equivalente (t-
ness value). Assim, as melhores congura c oes
s ao aquelas que apresentam fun c oes objetivo de
melhor qualidade.
3. Deve existir uma estrategia de sele c ao das con-
gura c oes com direito a participar na con-
forma c ao das congura c oes da nova popula c ao.
4. Deve existir um mecanismo que permita imple-
mentar o operador genetico de recombina c ao.
5. Deve existir um mecanismo que permita im-
plementar o operador genetico de muta c ao.
Muta c ao geralmente e considerado um operador
genetico secund ario nos algoritmos geneticos
mas pesquisas recentes mostram que este ope-
rador e muito mais importante do que se ima-
ginava inicialmente.
6. Deve-se especicar o tamanho da popula c ao,
isto e, o n umero de congura c oes em cada
gera c ao.
Anais do 3
o
Congresso Tematico de Dinamica e Controle da SBMAC
31-maio a 3-junho-2004
UNESP Campus de Ilha Solteira
Uma vez especicados todos os aspectos anteri-
ormente mencionados para um problema especco,
ent ao dizemos que foi implementado um algoritmo
genetico b asico (AGB). Usando a l ogica apresentada
na se c ao 2 sobre as metaheursticas, pode-se ar-
mar que o algoritmo genetico, ao contr ario das ou-
tras metaheursticas, trabalha com um conjunto de
congura c oes ou propostas de solu c ao. Assim, em
cada itera c ao o AG com popula c ao de tamanho n
p
,
identica n
p
elementos do espa co de busca do pro-
blema e, a partir desses elementos, em cada itera c ao
passa para outros n
p
elementos do espa co de busca.
Essa transi c ao das n
p
propostas de solu c ao e reali-
zada usando os operadores de sele c ao, recombina c ao
e de muta c ao. O leitor, pode vericar que mesmo
neste caso de transi c oes de um conjunto de propostas
de solu c ao, o conceito de vizinhan ca ainda e v alida.
Neste caso temos uma vizinhan ca mais din amica e,
de forma e tamanho denidos de forma implcita pe-
los operadores geneticos.
4.2 Algoritmo Genetico Basico
Nesta se c ao s ao analisadas, em detalhe, as princi-
pais caractersticas de um algoritmo genetico b asico
(AGB). Para ilustrar as caractersticas fundamen-
tais de um AGB usamos um exemplo do problema
da mochila.
Exemplo: O problema da mochila
Seja o problema da mochila para n = 12 mostrado
a seguir:
max z(x) = 3x
1
+ 2x
2
+ 8x
3
+ 4x
4
+ 6x
5
+ 4x
6
+12x
7
+ 2x
8
+ 6x
9
+ 10x
10
+ 15x
11
+ 9x
12
s.a.
5x
1
+ 4x
2
+ 4x
3
+ 2x
4
+ 4x
5
+ 6x
6
+ 10x
7
+4x
8
+ 2x
9
+ 8x
10
+ 12x
11
+ 5x
12
36
x
j
{0, 1}, j = 1, . . . , 12.
Os vetores de trabalho podem ser facilmente iden-
ticados:
5 4 4 2 4 6 10 4 2 8 12 5
3 2 8 4 6 4 12 2 6 10 15 9
36
Volume:
a =
Custo:
c =
Este exemplo deve ser usado para ilustrar a im-
plementa c ao do AGB.
4.2.1 Algoritmo Genetico Elementar
Um algoritmo genetico elementar realiza a seguinte
sequencia de opera c oes:
1. Gera a popula c ao inicial ap os escolher o tipo de
codica c ao.
2. Calcula a fun c ao objetivo de cada congura c ao
da popula c ao e, armazena e atualiza a incum-
bente (melhor congura c ao encontrada durante
o processo).
3. Implementa a sele c ao.
4. Implementa a recombina c ao.
5. Implementa a muta c ao e termina de gerar a po-
pula c ao da nova gera c ao.
6. Se o criterio de parada (ou criterios de parada)
n ao for satisfeito, repetir os passos 2 a 6.
A seguir s ao analisadas todas as etapas do AGB
usando exemplos ilustrativos.
4.3 O Problema da Codica cao
A forma de implementar a codica c ao depende, en-
tre outros aspectos, da natureza das vari aveis de
decis ao do problema ou da forma de representar
uma congura c ao do problema. O AGB exige que
a codica c ao seja em codica c ao bin aria. Por-
tanto, independentemente da forma das vari aveis
de decis ao, deve-se transformar em uma codica c ao
bin aria. Entretanto, quando as vari aveis de de-
cis ao do problema s ao reais ou inteiros, a codica c ao
bin aria pode apresentar problemas de desempenho
adequado. Os algoritmos geneticos mais avan cados
e os algoritmos evolutivos em geral recomendam
que a codica c ao seja realizada respeitando as ca-
ractersticas especcas do problema e, portanto,
quando necess ario, deve-se redenir os operadores
geneticos para permitir trabalhar com formas de co-
dica c ao n ao bin arias. Neste trabalho, n ao existe
espa co para analisar em detalhe os problemas e as di-
ferentes formas de contornar os problemas relaciona-
dos com a codica c ao. Neste trabalho usamos como
exemplo o problema da mochila em que as vari aveis
de decis ao s ao bin arias e a codica c ao bin aria e a
mais adequada.
Anais do 3
o
Congresso Tematico de Dinamica e Controle da SBMAC
31-maio a 3-junho-2004
UNESP Campus de Ilha Solteira
4.4 Determina cao da Fun cao Obje-
tivo e Manipula cao de Infactibi-
lidades
O valor da fun c ao objetivo, ou seu equivalente, de-
ne a qualidade de uma congura c ao. Neste caso,
geralmente a literatura de algoritmos geneticos usa a
fun c ao objetivo ou seu equivalente porque nem sem-
pre e possvel usar o valor normal da fun c ao obje-
tivo e, deve-se usar um equivalente que de alguma
maneira permita identicar a qualidade de uma con-
gura c ao ou, melhor ainda, fazer uma compara c ao
quantitativa das congura c oes de uma popula c ao.
Deve-se mencionar tambem que o valor da fun c ao
objetivo e usado para implementar adequadamente o
operador de sele c ao e alguns metodos de sele c ao n ao
trabalham com os valores absolutos da fun c ao obje-
tivo, ent ao apenas interessa a diferen ca entre os dife-
rentes valores das fun c oes objetivo das congura c oes
da popula c ao. Esta discuss ao deve ser retomada ao
analisar o operador de sele c ao. Neste trabalho, fre-
quentemente e usado o termo fun c ao de adapta c ao
(tness function) para a fun c ao objetivo verdadeira
ou para um equivalente da fun c ao objetivo.
A determina c ao da fun c ao objetivo est a direta-
mente relacionada com as infactibilidades de uma
congura c ao. Uma vez escolhida uma codica c ao
para um problema especco podem acontecer v arios
casos de infactibilidade que dependem da forma em
que e especicada a codica c ao, da natureza do pro-
blema e dos operadores geneticos escolhidos ou pro-
jetados. Assim, podem acontecer os seguintes casos
ap os escolher um tipo de codica c ao: (1) qualquer
congura c ao gerada sempre e factvel e os operado-
res geneticos geram tambem congura c oes factveis,
(2) as congura c oes geradas na popula c ao inicial s ao
sempre factveis mas os operadores geneticos des-
troem essa factibilidade e, (3) as congura c oes inici-
almente geradas s ao factveis e infactveis e os ope-
radores geneticos, obviamente, mantem essa carac-
terstica.
No primeiro caso, que raramente acontece em pro-
blemas reais, n ao existe ponto em discuss ao e pode
acontecer, por exemplo, no problema do caixeiro via-
jante com operadores geneticos adequadamente de-
senvolvidos. No segundo caso, que pode acontecer
com o problema da mochila que gera uma popula c ao
inicial usando algoritmos heursticos r apidos, deve-se
encontrar uma forma de contornar as congura c oes
infactveis geradas pelos operadores geneticos. As-
sim, pode-se eliminar as congura c oes infactveis
geradas, implementar uma heurstica r apida para
transformar em factveis as congura c oes infactveis
geradas ou penalizar a fun c ao objetivo com as in-
factibilidades. O terceiro caso acontece em muitos
problemas de engenharia relacionados com planeja-
mento e, nesse caso as infactibilidades devem ser
manipuladas usando a mesma estrategia do segundo
caso.
Penalizar a fun c ao objetivo e uma estrategia muito
usada em otimiza c ao cl assica. O metodo de barrei-
ras e uma dessas tecnicas e, nesse caso, o par ametro
de penaliza c ao e crucial no desempenho desse tipo
de algoritmo. Esse fator n ao pode ser muito grande
porque eliminaria todas as congura c oes infactveis
e, tambem, n ao pode ser muito pequeno porque
pode levar o processo a convergir em congura c oes
infactveis.

E tpico usar par ametros que variam
durante o processo de otimiza c ao iniciando o pro-
cesso com valores pequenos e aumentando o valor
do par ametro durante o processo de otimiza c ao.
Para o problema da mochila, por exemplo, pode-se
aceitar congura c oes factveis e infactveis e modi-
car a fun c ao objetivo da seguinte forma:
max z(x) = cx +S
inf
onde e o par ametro de penaliza c ao e S
inf
e a in-
factibilidade encontrada da seguinte forma:
S
inf
= min{0 ; b
n

j=1
a
j
x
j
}
A fun c ao objetivo ou seu equivalente deve preser-
var a seletividade entre as congura c oes, isto e, deve
ter capacidade de identicar as congura c oes de me-
lhor qualidade. Portanto, a fun c ao objetivo deve
permitir uma clara diferencia c ao entre as diferentes
congura c oes da popula c ao para facilitar a sele c ao.
Exemplo: Fun cao objetivo:
Para o problema da mochila mostrado no exem-
plo, uma popula c ao tpica de 4 elementos e usando
a codica c ao bin aria apresenta a seguinte forma:
0 0 1 0 0 0 1 0 0 1 1 0
0 1 1 0 0 0 1 1 0 0 0 1
0 1 0 1 1 0 0 1 0 1 1 0
1 1 1 1 1 1 0 0 1 1 0 0
P
4
:
P
3
:
P
2
:
P
1
:
b

= 34
b

= 29
b

= 34
b

= 35
Recurso
usado
45
33
39
43
f.o.
Popula c ao inicial: 4 congura c oes factveis.
Anais do 3
o
Congresso Tematico de Dinamica e Controle da SBMAC
31-maio a 3-junho-2004
UNESP Campus de Ilha Solteira
em que e indicada a fun c ao objetivo de cada pro-
posta de solu c ao. Essa popula c ao deve ser usada
para implementar os operadores geneticos.
4.5 O Operador de Sele cao
A sele c ao e o operador genetico que permite sele-
cionar as congura c oes da popula c ao corrente que
devem participar da forma c ao da nova popula c ao.
Portanto, o operador de sele c ao termina ap os decidir
o n umero de descendentes que deve ter cada con-
gura c ao da popula c ao corrente. Assim, por exemplo,
algumas congura c oes podem gerar v arios descen-
dentes e outras podem ser eliminadas do processo
por serem consideradas de pobre qualidade. Exis-
tem v arias formas ou tipos de sele c ao sendo a mais
conhecida a sele c ao proporcional.
Na sele c ao proporcional, cada congura c ao tem
direito de gerar um n umero de descendentes que e
proporcional ao valor de sua fun c ao de adapta c ao.
Esta proposta tem a desvantagem de gerar um
n umero de descendentes n ao inteiro. Esse problema
e contornado usando uma roleta. A sele c ao propor-
cional apresenta v arios problemas tais como: (1) a
gera c ao de n umero de descendentes n ao inteiro pre-
cisando do auxlio de uma roleta para resolver esse
problema, (2) a necessidade de padronizar os proble-
mas e, portanto, tratando de forma diferente proble-
mas de minimiza c ao e de maximiza c ao, (3) apresenta
o problema de predomnio das supercongura c oes
nas fases iniciais do processo levando o algoritmo
para a convergencia prematura e (4) perde seletivi-
dade nas fases nais do processo em que os valo-
res das fun c oes de adapta c ao s ao muito parecidas.
Assim, apareceram propostas derivadas da sele c ao
proporcional que contornam de alguma forma parte
desses problemas. Entretanto, todos esses problemas
s ao contornados facilmente pela sele c ao baseada em
torneio.
4.5.1 Sele cao Usando Torneio (tournament
selection)
Esta proposta de sele c ao e muito atrativa porque
e signicativamente diferente da sele c ao proporci-
onal. Nesta estrategia, os descendentes s ao esco-
lhidos realizando n
p
jogos sendo n
p
o tamanho da
popula c ao. Em cada jogo s ao escolhidos aleatoria-
mente k congura c oes e a congura c ao ganhadora
do jogo e aquela que tem fun c ao de adapta c ao de
melhor qualidade. O valor de k e geralmente pe-
queno, tipicamente k {2, 3, 4}. Ap os n
p
jogos se
termina o processo de sele c ao.
Este tipo de sele c ao e atrativo porque e com-
putacionalmente muito r apido e, tambem, porque
a estrategia e a mesma para problemas de maxi-
miza c ao e minimiza c ao, apenas o criterio de fun c ao
de adapta c ao de melhor qualidade e diferente. Ou-
tra vantagem do metodo e que elimina os proble-
mas existentes na sele c ao proporcional tradicional
porque a sele c ao depende apenas dos valores rela-
tivos das fun c oes de adapta c ao. Finalmente, o pro-
cesso encontra um n umero de descendentes inteiro e,
portanto, dispensa o uso da roleta. Embora muito
simples, este metodo e r apido e eciente. Usando a
sele c ao baseada em torneio para a popula c ao mos-
trada na p agina anterior, P
1
e P
2
tem direito a gerar
um descendente e P
4
dois descendentes.
4.6 Recombina cao
As congura c oes escolhidas no processo de sele c ao
devem ser submetidas ao operador de recombina c ao.
No algoritmo genetico, a recombina c ao consiste em
trocar parcelas de duas congura c oes para formar
duas novas congura c oes candidatas. Em outras
palavras, duas congura c oes candidatas s ao gera-
das com parcelas de duas congura c oes geradoras.
Essas novas congura c oes geradas devem ainda ser
submetidas ao operador de muta c ao para que se
transformem em congura c oes da nova popula c ao ou
gera c ao. O operador de recombina c ao tenta simular
o fen omeno de crossing over na genetica.
Existem v arios tipos de recombina c ao e a dife-
ren ca entre eles est a no n umero de pontos de re-
combina c ao. Assim, esses tipos de recombina c ao
s ao conhecidos como recombina c ao de um ponto,
de dois pontos, multiponto e uniforme. Nem sem-
pre, todas as congura c oes s ao submetidas a recom-
bina c ao. A taxa de recombina c ao determina, em
forma aleat oria, se duas congura c oes selecionadas
devem ser submetidas a recombina c ao.
4.6.1 Recombina cao de um Simples Ponto
(single point recombination)
A mais simples forma de recombina c ao consiste em
escolher um unico ponto para fazer recombina c ao.
Supor que uma congura c ao tem k elementos ou ca-
sas bin arias. Ent ao, uma vez escolhidas as duas con-
gura c oes para implementar a recombina c ao, deve-
se gerar em forma aleat oria um n umero entre 1 e
(k 1) e, esse n umero indica o ponto de recom-
bina c ao. A parcela que est a na direita de ambas as
Anais do 3
o
Congresso Tematico de Dinamica e Controle da SBMAC
31-maio a 3-junho-2004
UNESP Campus de Ilha Solteira
congura c oes s ao trocadas para formar as duas no-
vas congura c oes candidatas. As congura c oes que
devem ser submetidas a recombina c ao s ao escolhidas
aleatoriamente do conjunto de congura c oes seleci-
onadas que ainda tem direito a gerar descendentes.
Para que as congura c oes selecionadas sejam sub-
metidas a recombina c ao, deve-se gerar um n umero
aleat orio p [0, 1]. Se p e menor que a taxa de
recombina c ao
c
ent ao, deve-se proceder ` a recom-
bina c ao; em caso contr ario as duas congura c oes se-
lecionadas n ao s ao recombinadas.
Neste processo de recombina c ao, novamente, est ao
presentes tres decis oes de car ater aleat orio: (1)
as duas congura c oes que devem ser submetidas a
recombina c ao s ao escolhidas aleatoriamente, (2) o
ponto de recombina c ao e escolhido aleatoriamente
e, (3) deve-se gerar um n umero aleat orio p que de-
termina se as congura c oes selecionadas devem ser
submetidas a recombina c ao.
Exemplo: Recombina c ao de um ponto.
Implementar a recombina c ao de um ponto para as
congura c oes selecionadas no problema da mochila
do exemplo que est a sendo analisado. Considere uma
taxa de recombina c ao de
c
= 1, 0.
Em forma aleat oria s ao escolhidos os seguintes pa-
res.
{P
1
com P
4
} e {P
2
com P
4
}
1. P
1
e P
4
s ao submetidas a recombina c ao para
gerar duas congura c oes candidatas.

E gerado
um n umero aleat orio p = 8 {1, 11}. Portanto,
a recombina c ao gera as seguintes congura c oes
candidatas:
ponto de recombina c ao
'
recombina c ao
0 0 1 0 0 0 1 0 1 1 0 0
1 1 1 1 1 1 0 0 0 1 1 0
0 0 1 0 0 0 1 0 0 1 1 0
1 1 1 1 1 1 0 0 1 1 0 0
P

2
:
P

1
:
P
4
:
P
1
:
b

= 24
b

= 45
b

= 34
b

= 35
Recurso
usado
36
52
45
43
f.o.
Recombina cao entre P
1
e P
4
.
Deve-se observar que a congura c ao candidata
P

1
est a infactvel porque 45 > 36 (a restri c ao
est a violada).
2. P
2
e P
4
s ao submetidas a recombina c ao para
gerar duas congura c oes candidatas.

E gerado
o n umero aleat orio p = 3 {1, 11}. Portanto,
a recombina c ao gera as seguintes congura c oes
candidatas:
ponto de recombina c ao
'
recombina c ao
0 0 1 1 1 0 0 1 0 1 1 0
0 1 0 0 0 0 1 0 0 1 1 0
0 0 1 0 0 0 1 0 0 1 1 0
0 1 0 1 1 0 0 1 0 1 1 0
P

4
:
P

3
:
P
4
:
P
2
:
b

= 34
b

= 34
b

= 34
b

= 34
Recurso
usado
45
39
45
39
f.o.
Recombina cao entre P
2
e P
4
.
Neste caso as duas congura c oes candidatas s ao
factveis.
4.7 Muta cao (mutation)
Na codica c ao bin aria o operador de muta c ao sim-
plesmente troca o valor de uma vari avel de 0 para
1 ou vice-versa. Nos trabalhos iniciais sobre algo-
ritmos geneticos, a muta c ao sempre foi considerada
um operador secund ario. Entretanto, este ponto de
vista est a mudando especialmente quando se trata
de resolver problemas reais de grande porte.
A taxa de muta c ao
m
indica a probabilidade de
que uma posi c ao ou casa bin aria seja modicada.
Na an alise te orica e nas propostas originais, sugere-
se que a muta c ao deve ser realizada bit por bit, casa
por casa, e portanto a decis ao de mutar uma posi c ao
deve ser independente da decis ao realizada em outras
posi c oes bin arias de uma congura c ao. Assim, supor
que e escolhida uma taxa de muta c ao de
m
= 0, 05,
ent ao cada bit de uma congura c ao e submetido
a muta c ao com esta probabilidade. Desta forma,
e gerado um n umero aleat orio p [0, 1] e se esse
n umero e menor que
m
= 0, 05 ent ao e realizada
a muta c ao. Na implementa c ao da muta c ao tambem
existe necessidade de gerar n umeros aleat orios intro-
duzindo, novamente, uma componente aleat oria na
implementa c ao do algoritmo genetico.
Exemplo: Muta c ao.
Implementar a muta c ao das congura c oes candi-
datas obtidas ap os a recombina c ao no exemplo que
est a sendo analisado, usando uma taxa de muta c ao
de
m
= 0, 05 e terminar de gerar as congura c oes
da nova popula c ao.
Na forma pr atica de implementar a muta c ao,
deve-se fazer 0, 05(4)(12) = 2, 4 muta c oes, isto e,
2 muta c oes. Assim, s ao escolhidos dois n umeros
Anais do 3
o
Congresso Tematico de Dinamica e Controle da SBMAC
31-maio a 3-junho-2004
UNESP Campus de Ilha Solteira
aleat orios entre 1 e 48, gerando-se os n umeros 6 e
23. Portanto, deve-se mutar a sexta posi c ao da pri-
meira congura c ao e a decima primeira posi c ao da
segunda congura c ao. As novas congura c oes can-
didatas, ap os a muta c ao assumem a seguinte forma:
0 0 1 1 1 0 0 1 0 1 1 0
0 1 0 0 0 0 1 0 0 1 1 0
0 0 1 0 0 0 1 0 1 1 1 0
1 1 1 1 1 0 0 0 0 1 1 0
P

4
:
P

3
:
P

2
:
P

1
:
b

= 34
b

= 34
b

= 36
b

= 39
Recurso
usado
45
39
51
48
f.o.
Congura c oes ap os a muta c ao.
No caso particular do problema da mochila, com o
tipo de codica c ao escolhida, tanto a recombina c ao
assim como a muta c ao podem gerar congura c oes
infactveis. Neste tipo de casos existem as seguin-
tes alternativas: (1) transformar as congura c oes in-
factveis em factveis usando uma heurstica r apida,
(2) eliminar as congura c oes infactveis ou, (3) consi-
derar todas as congura c oes como sendo factveis
e penalizar aquelas infactveis na fun c ao objetivo.
Para gerar a nova popula c ao e escolhida a primeira
alternativa e para eliminar a infactibilidade, deve-se
passar uma vari avel com valor 1 para 0 ate reto-
mar a factibilidade. A vari avel que deve passar de
1 para 0 e aquela que tiver a menor rela c ao
cj
aj
. As-
sim, na congura c ao candidata P

1
passamos x
2
= 1
para x
2
= 0 e retomamos a factibilidade. Portanto,
termina o processo de gera c ao da nova popula c ao
constituda pelas seguintes congura c oes:
0 0 1 1 1 0 0 1 0 1 1 0
0 1 0 0 0 0 1 0 0 1 1 0
0 0 1 0 0 0 1 0 1 1 1 0
1 0 1 1 1 0 0 0 0 1 1 0
P
4
:
P
3
:
P
2
:
P
1
:
b = 34
b = 34
b = 36
b = 35
Recurso
usado
45
39
51
46
f.o.
Congura c oes ap os eliminar as infactibilidades.
Quando a codica c ao for de outro tipo, diferente
da codica c ao bin aria ent ao, deve-se desenvolver es-
trategias equivalentes de muta c ao levando em conta
a natureza do problema, do tipo de codica c ao es-
colhida e a essencia da muta c ao na genetica natu-
ral, isto e, pequenas mudan cas no conte udo genetico
mas que produzem um gen otipo que n ao existia com
o consequente aparecimento de um novo fen otipo.
4.8 Programa de Controle do Algo-
ritmo Genetico

E o conjunto de par ametros que dene o tamanho


da popula c ao, a taxa de recombina c ao e a taxa de
muta c ao e que dene, em forma signicativa, o com-
portamento do algoritmo genetico. Este conjunto
de par ametros e chamado de programa de controle
do algoritmo genetico. Valores tpicos recomendados
pela literatura especializada s ao os seguintes:
Tamanho da popula c ao: n
p
[30 ; 200].
Taxa de recombina c ao:
c
[0, 5 ; 1, 0].
Taxa de muta c ao:
m
[0, 001 ; 0, 050].
4.9 Criterio de Parada
Existem v arios criterios de parada que podem ser
implementados. Assim, pode-se parar o algoritmo
genetico quando:
Foi executado um n umero especicado de
gera c oes.
A incumbente (melhor solu c ao encontrada) as-
sume um valor pelo menos de igual qualidade
que um valor previamente especicado.
A incumbente n ao melhora durante um n umero
especicado de gera c oes.
As congura c oes da popula c ao cam muito ho-
mogeneas, isto e, as congura c oes s ao muito pa-
recidas e praticamente j a n ao existe evolu c ao.
Usando um criterio que depende do tipo de pro-
blema analisado.
Na pr atica podem ser implementados v arios
criterios de parada simult aneos. O leitor pode ob-
servar que alguns criterios de parada s ao est aticos
(previamente especicados) e outros s ao din amicos
(depende da evolu c ao do processo). Em imple-
menta c oes pr aticas de problemas complexos geral-
mente s ao especicados criterios de parada mais ob-
jetivos que dependem do tipo especco de problema.
Por exemplo, em problemas que resolvem proble-
mas de PL subsidi arios, um criterio de parada obje-
tivo consiste em parar o processo ap os resolver um
n umero especicado de problemas de programa c ao
linear (PL), j a que na resolu c ao desses PLs e usado
o maior esfor co computacional.
Anais do 3
o
Congresso Tematico de Dinamica e Controle da SBMAC
31-maio a 3-junho-2004
UNESP Campus de Ilha Solteira
4.10 Gera cao da Popula cao Inicial
A teoria b asica dos algoritmos geneticos sugere que a
popula c ao inicial seja gerada aleatoriamente porque
a qualidade da solu c ao nal deve ser independente
da popula c ao inicial usada. Entretanto, esse ponto
de vista te orico e verdadeiro para um esfor co com-
putacional proibitivo, especialmente em problemas
de grande porte e complexos.
Existem problemas onde e possvel gerar uma
popula c ao inicial em forma aleat oria e encontrar
solu c oes otimas ou quase- otimas de sistemas reais.
Em outros casos, como nos problemas de engenha-
ria eletrica, podem ser usadas propostas alternativas
como as seguintes:
Gerar uma popula c ao inicial usando um pro-
cesso aleat orio controlado. Esta estrategia e e-
ciente em muitos problemas em que se conhece
as caractersticas da solu c ao nal. Este fato
acontece, por exemplo, no problema de aloca c ao
de bancos de capacitores em sistemas de dis-
tribui c ao. Nesse tipo de problema e conhecido
que nas melhores topologias s ao alocados ban-
cos num n umero muito reduzido de barras, ti-
picamente, entre 2 a 8 barras mesmo em sis-
temas de grande porte. Portanto, pode-se ge-
rar uma popula c ao inicial para um sistema de
200 barras do problema antes mencionado alo-
cando, por exemplo, bancos de capacitores em
ate 10 barras do sistema. Em outras palavras,
escolhe-se um n umero reduzido de barras, 10 de
200 no exemplo, e o processo aleat orio identica
aquelas barras onde devem ser alocados ban-
cos de capacitores e o n umero de bancos. Um
processo totalmente aleat orio produziria con-
gura c oes com aloca c ao de capacitores em muitas
barras.
Gerar uma popula c ao inicial usando algorit-
mos heursticos construtivos r apidos e ecientes.
Para problemas muito complexos esta proposta
e a melhor alternativa. A ideia consiste em ge-
rar congura c oes de boa qualidade mas tambem
signicativamente diferentes entre elas. Estes
objetivos podem ser atingidos usando algorit-
mos heursticos construtivos e pequenas modi-
ca c oes nesses algoritmos.
Observa c oes importantes: Ap os apresentar os
conceitos elementares sobre a evolu c ao e a genetica
natural, assim como o algoritmo genetico b asico,
deve-se observar que o algoritmo genetico imita ape-
nas de forma grosseira a evolu c ao e a genetica natu-
ral. Nesse contexto apareceu a proposta dos algorit-
mos evolutivos.
Para mostrar a diferen ca entre os diferentes al-
goritmos evolutivos, apresentamos a diferen ca fun-
damental entre dois desses algoritmos, o algoritmo
genetico tradicional e o programa evolutivo. Em
[18] se mostra essa diferen ca fundamental. Um algo-
ritmo genetico tradicional modica o problema origi-
nal para que seja enquadrado na l ogica do algoritmo
genetico, isto e, deve-se realizar a codica c ao bin aria
de representa c ao, mapeamento entre o espa co de
solu c oes originais e da representa c ao bin aria, codi-
ca c ao e decodica c ao de solu c oes, etc. Por outro
lado, um programa evolutivo mantem a estrutura de
um problema e modica o algoritmo genetico para
que seja enquadrado na estrutura do problema, o
que implica modicar a codica c ao e representa c ao
de uma solu c ao (diferente da bin aria), desenvolver
operadores geneticos adequados, etc. Portanto, a
l ogica fundamental e inversa; no algoritmo genetico
o problema e transformado e no programa evolutivo
e o algoritmo genetico que e transformado para se
adaptar ao problema especco. O leitor est a convi-
dado a revisar esses t opicos em [18].
5 Tabu Search
5.1 Introdu cao
A busca tabu foi desenvolvida a partir de concei-
tos usados na inteligencia articial e, diferentemente
de outros metodos, n ao teve sua origem relacionada
a processos de otimiza c ao biol ogicos ou fsicos. A
busca tabu foi proposta por Fred Glover na decada
de 80 e est a sendo intensamente utilizada para resol-
ver problemas complexos em diversas areas da pes-
quisa operacional.
5.2 Conceitos Basicos de Busca Tabu
A busca tabu consiste em um conjunto de
princpios (fun c oes) que, de forma integrada, per-
mitem resolver um problema complexo da maneira
inteligente. Segundo as pr oprias palavras de seu in-
ventor, F. Glover [24]:
A busca tabu est a baseada na premissa de que a
resolu c ao de um problema pode ser considerada inte-
ligente se esse processo incorpora a mem oria adapta-
Anais do 3
o
Congresso Tematico de Dinamica e Controle da SBMAC
31-maio a 3-junho-2004
UNESP Campus de Ilha Solteira
tiva (adaptive memory) e a explora c ao sensvel (res-
ponsive (sensitive) exploration). O uso de mem oria
adaptativa contrasta com as tecnicas sem mem oria
(como e o caso dos algoritmos genetico e de re-
cozimento simulado simulated annealing) e com
as tecnicas de mem oria rgida (como as tecnicas
de inteligencia articial e de branch and bound).
Da mesma forma, a ideia de explora c ao sensvel
em busca tabu est a inspirada na suposi c ao de que
uma escolha ruim realizada por uma estrategia pro-
duz mais informa c ao que uma boa escolha aleat oria
(como acontece, por exemplo, com SA). Assim, se a
estrategia que guia um algoritmo que usa mem oria
(como a busca tabu) faz uma escolha ruim (passa a
uma congura c ao de baixa qualidade) ent ao, pode-se
aproveitar essa informa c ao (escolha ruim) para evi-
tar voltar a visitar a referida congura c ao (ruim) e,
ainda melhor, para modicar (melhorar) a pr opria
estrategia que guia o processo de busca para ter ca-
pacidade de encontrar ou escolher congura c oes de
melhor qualidade.
TS faz uma codica c ao de uma congura c ao ou
solu c ao do espa co de busca. A busca tabu resolve um
problema iniciando o processo como qualquer algo-
ritmo heurstico de busca local. Nessa busca local,
dada uma congura c ao x (solu c ao), dene-se uma
vizinhan ca de x como sendo o conjunto de todas as
congura c oes x

N(x) que podem ser obtidas pela


aplica c ao de um mecanismo de transi c ao a partir
de x. A estrutura de vizinhan ca dene as condi c oes
para que x

seja vizinho de x. No algoritmo de busca


local, a partir da congura c ao corrente, passa-se para
a congura c ao vizinha que apresenta o maior decres-
cimo da fun c ao objetivo. Um procedimento repeti-
tivo desta estrategia leva o algoritmo de busca local
a parar no momento em que n ao existe nenhuma
congura c ao vizinha que produz uma diminui c ao da
fun c ao objetivo, o que signica que foi encontrado
um otimo local.
A busca tabu difere de um algoritmo de busca
local do tipo descrito acima em dois aspectos funda-
mentais:
1. A partir da congura c ao corrente pode-se pas-
sar para uma congura c ao para a qual a fun c ao
objetivo de fato aumenta (estamos imaginando
um problema de minimiza c ao).
2. O conjunto de vizinhos de x n ao e caracterizado
de maneira est atica. Assim, a busca tabu dene
uma nova estrutura de vizinhan ca, N

(x) que
varia dinamicamente em composi c ao e tamanho
durante todo o processo de otimiza c ao. Esta
estrategia permite a busca tabu realizar uma
busca eciente e inteligente. Assim, N

(x) pode
ser modicado de v arias formas:
Usando uma lista tabu que armazena atri-
butos de congura c oes consideradas tabu
(proibidas). Neste caso N

(x) N(x)
pois alguns vizinhos denidos pela estru-
tura de vizinhan ca e cujos atributos fazem
parte da lista tabu est ao proibidos. Esta
estrategia evita retornar ` as congura c oes
j a visitadas evitando assim a ciclagem.
Usando estrategias para diminuir a vizi-
nhan ca ou a lista de congura c oes can-
didatas. Geralmente o n umero de con-
gura c oes x

N(x) pode ser muito grande


e avaliar a fun c ao objetivo de todas es-
sas congura c oes, para encontrar aquela
que apresenta melhor desempenho, pode
requerer elevado esfor co computacional. A
busca tabu disp oe de pelo menos qua-
tro metodos diferentes para encontrar uma
vizinhan ca de tamanho reduzido tal que
N

(x) N(x).
Usando congura c oes de elite e path relin-
king para caracterizar e encontrar novas
congura c oes candidatas. Esta estrategia
visa encontrar novas congura c oes de alta
qualidade que dicilmente seriam encon-
tradas a partir da deni c ao de N

(x).

E f acil vericar que neste caso a rela c ao


N

(x) N(x) j a n ao e mais verdadeira.


Redenir o conjunto N(x) durante o pro-
cesso de otimiza c ao. Geralmente esta pro-
posta pode ser implementada aproveitando
as caractersticas especcas do problema.
Assim como ocorre com as demais me-
taheursticas, a representa c ao e a codica c ao
do problema permitem identicar a forma e
estrutura de uma solu c ao ou congura c ao e a
possibilidade de aparecimento de congura c oes
factveis e infactveis. Alem disso, a representa c ao
e codica c ao determinam a forma em que deve
ser escrita a fun c ao objetivo. Um outro aspecto,
mais delicado, e a deni c ao e caracteriza c ao da
vizinhan ca de uma congura c ao. Esses assuntos
podem ser crticos na formula c ao de algoritmos de
busca tabu ecientes.
Em rela c ao aos conceitos b asicos, tres aspectos
devem ser analisados em detalhe para uma melhor
compreens ao dos aspectos b asicos do algoritmo tabu
Anais do 3
o
Congresso Tematico de Dinamica e Controle da SBMAC
31-maio a 3-junho-2004
UNESP Campus de Ilha Solteira
search: (1) a forma de realizar as transi c oes no
espa co de busca, (2) as caractersticas de uma con-
gura c ao ou elemento do espa co de busca e, (3) as
caractersticas das congura c oes vizinhas da con-
gura c ao corrente.
5.3 Tabu search com Mem oria de
Curto Prazo - Tabu Search Re-
cency Based
O algoritmo TS mais elementar e o chamado al-
goritmo TS com mem oria de curto prazo que usa
uma lista de atributos proibidos e um criterio de as-
pira c ao. Neste algoritmo, o processo de busca e inici-
ada de uma congura c ao inicial (que pode ser obtida
aleatoriamente) e realiza um n umero determinado
de transi c oes ate satisfazer um criterio de parada.
Em cada passo este algoritmo TS analisa um con-
junto de vizinhos (todos os vizinhos ou um conjunto
reduzido deles) e passa para a melhor congura c ao
vizinha n ao proibida ou que estando proibida satis-
faz o criterio de aspira c ao. Essa congura c ao vizi-
nha se transforma na nova congura c ao corrente. O
car ater agressivo da estrategia TS de passar sempre
para a melhor congura c ao ou menos pior permite
a TS sair de eventuais otimos locais mas tambem
exige a presen ca de uma lista de transi c oes proibi-
das para evitar retornar a uma congura c ao j a vi-
sitada. A lista tabu pode armazenar congura c oes
completas (que exigiria muita mem oria para arma-
zenamento) ou melhor ainda se pode armazenar atri-
butos de congura c oes visitadas, que e a estrategia
mais adequada em problemas reais.
Uma lista tabu que armazena atributos reduz con-
sideravelmente os requerimentos de mem oria mas
tambem acrescenta um problema: o atributo proi-
bido, que corresponde a uma congura c ao j a vi-
sitada, pode ser compartilhado por outras con-
gura c oes vizinhas candidatas algumas das quais po-
dem ser altamente atrativas mas que n ao poderiam
ser visitadas porque possuem um atributo proibido.
Este problema e contornado usando uma fun c ao de
TS chamado criterio de aspira c ao. Assim, pode-
se eliminar a proibi c ao de uma congura c ao candi-
data se sua fun c ao objetivo satisfaz um determinado
criterio de aspira c ao, por exemplo, se a fun c ao ob-
jetivo de uma congura c ao com atributo proibido e
melhor das ultimas kp transi c oes visitadas ou se e
a melhor de todas as congura c oes encontradas (in-
cumbente). Neste ultimo caso o criterio de aspira c ao
e muito rgida e dicilmente ser a acionada.
Um algoritmo elementar de TS realiza, portanto,
um conjunto de transi c oes usando mem oria de curto
prazo para armazenar a lista de atributos proibidos,
usando um criterio de aspira c ao especicado e re-
alizando um mecanismo de transi c ao ap os analisar
todos ou uma parcela dos vizinhos candidatos. Por-
tanto, um algoritmo TS com mem oria de curto prazo
na verdade e o algoritmo TS mais elementar onde
est ao presentes a mem oria de curto prazo, as listas
de atributos proibidos e um criterio de aspira c ao que
elimina a proibi c ao de um atributo. Adicionalmente,
no algoritmo TS b asico, deve-se especicar a forma
de codica c ao de uma congura c ao, a forma de en-
contrar a fun c ao objetivo, a deni c ao da vizinhan ca
e a forma de implementar a transi c ao. Muitos algo-
ritmos usados em aplica c oes pr aticas s ao algoritmos
TS com mem oria de curto prazo.
5.4 Exemplo de Tabu Search
Para mostrar o desempenho de um algoritmo TS
usamos o problema das n rainhas. Portanto, apre-
sentamos os principais componentes do algoritmo TS
com mem oria de curto prazo que usa uma lista de
atributos proibidos e um criterio de aspira c ao. Lo-
gicamente, tambem devemos especicar a forma de
codicar uma proposta de solu c ao do problema, de-
nir a vizinhan ca e a forma de lidar com infactibilida-
des. Na escolha da estrategia preferimos a simplici-
dade em detrimento da qualidade do algoritmo, isto
e, tentamos apresentar os componentes do algoritmo
TS usando os criterios mais simples.
5.4.1 Codica cao do Problema
Neste caso sugerimos usar a codica c ao apresentada
na se c ao de exemplos, isto e, usamos um vetor P de
tamanho n, onde um elemento desse vetor, chamado
P(i) representa a coluna do tabuleiro acupada pela
i-esima rainha essa rainha sempre ocupa a linha i.
Usando este tipo de proposta, a codica c ao para a
congura c ao mostrada na gura 3 assume a seguinte
forma:
4 5 3 6 7 1 2
1 2 3 4 5 6 7
_
_
coluna
rainha
P
1
=
onde a rainha 1 est a na coluna 4, a rainha 2 est a
na coluna 5, e assim por diante. Nesse contexto,
o problema consiste em minimizar o n umero de co-
lis oes entre as rainhas. Foi vericado anteriormente
que nesse tipo de codica c ao aparece apenas ata-
ques na diagonal. Portanto, para encontrar o valor
Anais do 3
o
Congresso Tematico de Dinamica e Controle da SBMAC
31-maio a 3-junho-2004
UNESP Campus de Ilha Solteira
da fun cc ao objetivo, o n umero de colis oes, deve-se
apenas percorrer as diagonais do tabuleiro. Esse tra-
balho pode ser realizado de forma eciente usando a
propriedade de diagonais positivas e negativas no ta-
buleiro que permite implementar de forma eciente
o c alculo da fun c ao objetivo no computador [24].
5.4.2 Estrutura de Vizinhan ca
Uma transi c ao do algoritmo de busca tabu consiste
em passar da congura c ao corrente para uma con-
gura c ao vizinha. Idealmente, essa congura c ao vi-
zinha deve ser uma congura c ao que ainda n ao foi
visitada e que seja a melhor entre as congura c oes
vizinhas. Caso n ao exista uma congura c ao vizinha
de melhor qualidade, deve-se passar para a con-
gura c ao vizinha menos pior, isto e, e permitida a
menor degrada c ao da fun c ao objetivo a menor de-
grada c ao possvel. Esta estrategia exige uma carac-
teriza c ao adequada da vizinhan ca da congura c ao
corrente, isto e, quantos e quais s ao os vizinhos da
congura c ao corrente.
A forma mais conhecida de denir a estrutura de
vizinhan ca do problema das n rainhas e a seguinte: e
vizinha da congura c ao corrente toda congura c ao
que pode ser encontrada trocando as colunas ocu-
padas por duas rainhas. Assim, por exemplo, uma
congura c ao vizinha da congura c ao mostrada na -
gura 3 e obtida trocando as colunas ocupadas pelas
rainhas 2 e 6. A gura 16 mostra as congura c oes
corrente e vizinha.
4 5 3 6 7 1 2
1 2 3 4 5 6 7
_
congura c ao
corrente
P
1
=
4 1 3 6 7 5 2
_
congura c ao
vizinha
P
2
=
' '
Figura 16: Congura c ao vizinha.
Para essa estrutura de vizinhan ca, a congura c ao
corrente tem n(n 1)/2 congura c oes vizinhas. As-
sim, a congura c ao mostrada na gura 3, com n = 7,
possui 21 congura c oes vizinhas. Obviamente, esse
n umero de vizinhos pode ser reduzido usando al-
guma das estrategias adequadas.
Deve-se observar que a forma de especicar a vi-
zinhan ca produz sempre topologias factveis, isto e,
nunca aparecem problemas de infactibilidade no pro-
blema das n rainhas para a codica c ao proposta e a
estrutura de vizinhan ca escolhida.
5.4.3 Armazenamento de informa cao
Neste caso armazenamos apenas a topologia cor-
rente e uma matriz de atributos proibidos. Assim,
por exemplo, para a topologia corrente mostrada na
gura 3 foi identicado que o melhor vizinho e encon-
trado trocando as colunas das rainhas 1 e 7. Ent ao,
essas rainhas n ao podem trocar de coluna por um
n umero determinado de transi c oes. Seja k = 5 esse
n umero, ent ao no arranjo matricial de atributos proi-
bidos devemos colocar essa informa c ao como se mos-
tra na gura 17.
5
2 3 4 5 6 7
1
2
3
4
5
6
Figura 17: Armazenamento de atributos
5.4.4 Algoritmo TS
Em resumo, a busca tabu com mem oria de curto
prazo apresenta as seguintes caractersticas:


E um processo de k
T
transi c oes atraves das con-
gura c oes (factveis ou factveis/infactveis) de
um problema. O valor de k
T
que determina
o criterio de parada pode ser previamente ou
adaptativamente especicado.
Em cada transi c ao s ao identicadas e calcula-
das as fun c oes objetivo de todos os vizinhos da
congura c ao corrente.
A transi c ao e realizada para a congura c ao vizi-
nha de melhor qualidade ou a menos pior desde
que n ao se encontre proibida ou, estando proi-
bida, cumpra com o criterio de aspira c ao.
Em cada transi c ao s ao armazenados os atribu-
tos proibidos usando listas adequadas e, deve-
se especicar o n umero de transi c oes em que os
Anais do 3
o
Congresso Tematico de Dinamica e Controle da SBMAC
31-maio a 3-junho-2004
UNESP Campus de Ilha Solteira
atributos permanecem proibidos. No caso em
que existam v arias listas tabu, ent ao, o n umero
de transi c oes proibidas de cada tipo de atributo
proibido podem ser diferentes e esses valores
podem tambem ser previamente ou adaptativa-
mente especicados.
Deve-se denir uma estrutura de vizinhan ca
adequada e eciente.
A qualidade de um algoritmo de busca tabu com
mem oria de curto prazo depende da forma em que
e especicada a estrutura de vizinhan ca, do tipo de
atributo escolhido, da dura c ao da proibi c ao dos atri-
butos e do criterio de aspira c ao adotado.
Para o problema das n rainhas, um algoritmo
TS com mem oria de curto prazo assume a seguinte
forma:
1. Escolher o criterio de aspira c ao e a dura c ao da
proibi c ao dos atributos.
2. Denir a estrutura de vizinhan ca.
3. Escolher a topologia inicial.
4. Gerar todos os vizinhos, calcular a fun c ao obje-
tivo e ordenar esses vizinhos colocando primeiro
o de melhor qualidade.
5. Passar para o melhor vizinho desde que n ao se
encontre proibido ou estando proibido cumpra
com o criterio de aspira c ao.
6. Atualizar a lista de atributos proibidos.
7. Repetir os passos 4 a 6 ate encontrar uma to-
pologia com fun c ao objetivo zero, isto e, sem
colis oes.
O problema de n = 7 rainhas pode ser facil-
mente resolvido usando os seguintes criterios [24]:
(1) dura c ao da proibi c ao: 3 transi c oes, (2) criterio
de aspira c ao: eliminar a proibi c ao se aparece uma
congura c ao candidata melhor que a incumbente,
(3) caracteriza c ao da vizinhan ca: e vizinho da con-
gura c ao corrente toda congura c ao encontrada tro-
cando as colunas de duas rainhas, isto e, existem 21
vizinhos e, (4) escolhendo a topologia inicial mos-
trada na gura 3.
Os resultados do processo de solu c ao s ao mostra-
dos na tabela 1.
No processo de solu c ao os vizinhos foram orde-
nados em ordem de qualidade e mantendo a ordem
Iter. Topologia corrente
Congura c ao v
4 5 3 6 7 1 2
1 4
1 2 3 4 5 6 7
2 6 3 7 4 1 5
7 0
3 6 2 7 4 1 5
6 1
3 6 2 5 4 1 7
5 2
3 6 2 5 7 1 4
4 1
2 6 3 5 7 1 4
3 1
2 5 3 6 7 1 4
2 2
Tabela 1(a): Solu c ao do problema das 7 rainhas
natural, assim se os atributos 1-7 e 2-4 produzem
congura c oes vizinhas de igual qualidade ent ao e or-
denado primeiro 1-7 e se essas congura c oes s ao as
melhores seria escolhida a congura c ao com atributo
1-7 para realizar a transi c ao que e o que acontece na
primeira transi c ao do processo.
O exemplo permite mostrar o trabalho de cada
um dos componentes da busca tabu com mem oria
de curto prazo. Assim, deve-se observar os seguintes
aspectos:
A solu c ao otima foi encontrada ap os 6
transi c oes. Nas duas primeiras transi c oes acon-
teceu uma melhoria da fun c ao objetivo e na ter-
ceira transi c ao a fun c ao objetivo permaneceu
inalterada.
Na quarta transi c ao n ao existe nenhuma con-
gura c ao vizinha de melhor qualidade. Entre-
tanto, existem duas congura c oes com atributos
1-3 e 1-7 que produzem fun c oes objetivo de igual
qualidade, mas ambas se encontram proibidas.
Anais do 3
o
Congresso Tematico de Dinamica e Controle da SBMAC
31-maio a 3-junho-2004
UNESP Campus de Ilha Solteira
Iter. Melhor vizinho
atributo
v
Atributo proibido
(dura c ao)
1 1-7 2 1 7 (3)
6 1-3 0 5 7 (1); 4 7 (2); 1 3 (3)
5 4-7 1 1 3 (1); 5 7 (2); 4 7 (3)
4 5-7 2 2 4 (1); 1 3 (2); 5 7 (3)
3 1-3 1 1 7 (1); 2 4 (2); 1 3 (3)
2 2-4 1 1 7 (2); 2 4 (3)
Tabela 1(b): Solu c ao do problema das 7 rainhas
Veja que o atributo 1-3 produziria o retorno
a uma congura c ao j a visitada (a congura c ao
anterior) mas o atributo 1-7 n ao produziria o re-
torno a uma congura c ao j a visitada. Mas essa
congura c ao vizinha est a proibida porque com-
partilha o mesmo atributo (1-7) de uma con-
gura c ao j a visitada (a congura c ao de partida).
Entretanto, a proibi c ao n ao e eliminada porque
n ao funciona o criterio de aspira c ao.
Na quarta transi c ao e realizada uma transi c ao
para o vizinho menos pior com uma degrada c ao
da fun c ao objetivo. Na quinta transi c ao acon-
teceu uma melhoria na fun c ao objetivo.
Finalmente a ultima transi c ao e realizada
mesmo que o atributo 1-3 se encontre proibido
porque o criterio de aspira c ao funciona j a que
foi encontrada uma topologia cuja fun c ao obje-
tivo e melhor que aquela da incumbente. Neste
caso foi encontrada a topologia otima que estava
proibida porque compartilha o mesmo atributo
com a terceira (segunda visitada) congura c ao.
Embora o exemplo seja muito simples permite
vericar o trabalho de cada um dos elementos
da busca tabu com mem oria de curto prazo.
5.5 Componentes Avan cadas de Tabu
Search
Existem outros componentes do algoritmo tabu se-
arch que podem ser usados em algoritmos mais so-
sticados. Os principais componentes s ao os seguin-
tes: (1) tecnica de redu c ao de vizinhan ca, (2) uso de
outros tipos de mem oria, (3) uso de intensica c ao
e diversica c ao, (4) uso de path relinking, (5) os-
cila c ao estrategica, e (5) uso de topologias de elite.
Comentamos brevemente esses componentes.
Em problemas de grande porte, todas as formas
de vizinhan ca usadas produzem um n umero elevado
de vizinhos. TS deve avaliar todos esses vizinhos
para identicar o vizinho mais atrativo. Quando o
n umero de vizinhos for muito grande, o esfor co com-
putacional para realizar uma simples transi c ao pode
ser muito grande. Nesse tipo de casos, que acontece
na maioria dos problemas reais, deve-se usar uma
tecnica de redu c ao de vizinhan ca, isto e, devemos
analisar apenas um n umero reduzido de vizinhos. A
literatura especializada apresenta v arias formas de
redu c ao de vizinhan ca tais como: (a) aspiration plus,
(b) elite list candidate, (c) successive lter strategy e
(d) sequential fan candidate list. Entretanto, pode-
se usar caractersticas especcas de um problema
para identicar um n umero reduzido de vizinhos e
de qualidade.
TS tambem usa outros tipos de mem oria que po-
dem ser usadas em algoritmos mais sosticados. As-
sim, por exemplo, existe a mem oria baseada em
frequencia, isto e, o numero de vezes em que um
atributo e acionado para executar uma transi c ao
(frequencia de transi c ao) e o n umero de vezes em
que um atributo permanece na topologia corrente
(frequencia de permanencia). Esse tipo de in-
forma c ao pode ser usado para direcionar a busca
atraves dos operadores de intensica c ao e diversi-
ca c ao.
A intensica c ao e uma estrategia de busca na qual
mudamos a estrategia de vizinhan ca para aumen-
tar a intensidade de busca na vizinhan ca de topo-
logias de grande qualidade, identicadas e armaze-
nadas previamente (topologias de elite). Por outro
lado, o operador de diversica c ao e uma estrategia
para levar o processo de busca a regi oes do espa co
de busca n ao procuradas anteriormente.
Anais do 3
o
Congresso Tematico de Dinamica e Controle da SBMAC
31-maio a 3-junho-2004
UNESP Campus de Ilha Solteira
Path relinking e uma estrategia que consiste em
realizar um processo de busca gerenciados por topo-
logias de elite. A ideia e aproveitar a informa c ao
de qualidade armazenada nas topologias de elite
para identicar novas topologias de elite. Oscila c ao
estrategica e uma estrategia de busca na qual as
transi c oes s ao realizadas priorizando a fronteira en-
tre as regi oes factvel e infactvel com r apidas pas-
sagens pelas regi oes factvel e infactvel de forma
cclica. Essa forma de busca tenta identicar to-
pologias de elite na fronteira da regi ao factvel que
s ao consideradas regi oes de elevado potencial para
encontrar solu c oes otimas ou quase- otimas. Final-
mente, as topologias de elite s ao um grupo reduzido
de topologias de grande qualidade e diferentes en-
tre eles em pelo menos um n umero mnimo de ele-
mentos. Essas topologias seriam as solu c oes otimas
locais de regi oes distantes do espa co de busca.
5.6 Aplica c oes de Tabu Search
As primeiras aplica c oes de TS foram no campo da
pesquisa operacional no nal da decada de 80. En-
tretanto, as primeiras aplica c oes se limitaram a pro-
blemas cl assicos da pesquisa operacional tais com
traveling salesman problem, graph coloring, etc.
Tambem o n umero inicial de publica c oes era relativa-
mente pequeno. Em princpio, TS pode ser aplicado
na otimiza c ao de qualquer tipo de problema desde
que seja possvel codicar uma proposta de solu c ao
e muitas vezes n ao e necess aria uma modelagem ma-
tem atica do problema.
Aplica c oes de TS na otimiza c ao de problemas
complexos das diferentes areas do conhecimento
come caram a aparecer em forma mais intensa na
decada de 90 e essa tendencia assumiu um car ater
explosivo nos ultimos anos. Um levantamento rea-
lizado em abril de 2001 nas revistas indexadas pelo
Institute for Scientic Information (ISI) mostrou 680
publica c oes relacionadas com teoria e aplica c ao de
TS sendo que mais de 50 % dessas publica c oes cor-
respondem ao perodo 1998-2001.
6 Sistema de Col onia de For-
migas(ACS)
6.1 Objetivos
Este texto sobre tecnica de otimiza c ao baseada no
comportamento de col onia de formigas apresenta as
diretrizes b asicas encontradas na literatura [28] [30],
que permitiram o desenvolvimento desta tecnica.
Apresentam-se os conceitos los ocos do metodo e
um algoritmo que utiliza a estrutura do sistema de
formigas dedicado ` a solu c ao do problema do caixeiro
viajante (PCV).
6.2 Introdu cao
Algoritmos baseados em insetos sociais como as for-
migas foram primeiramente propostos por Dorigo e
colaboradores [28], como uma tecnica multi-agentes
para resolver problemas de otimiza c ao combina-
toriais tipo caixeiro viajante (PCV) e designa c ao
quadr atica (QAP). H a atualmente uma grande
quantidade de estudos se desenvolvendo na comu-
nidade cientca para extender e aplicar algoritmos
baseados no comportamento das formigas para di-
ferentes problemas de otimiza c ao discreta - Rotea-
mento de veculos, ordena c ao sequencial, colora c ao
de grafos, roteamento de redes de comunica c ao, pla-
nejamento de sistemas eletricos entre outros.
Algoritmos de col onia de formigas foram inspira-
dos na observa c ao de col onias de formigas reais. For-
migas s ao insetos sociais que vivem em col onias e
cujo comportamento e direcionado muito mais pela
sobrevivencia da col onia do que de cada indivduo.
Insetos socias tem chamado a aten c ao de muitos ci-
entistas devido o elevado nvel de estrutura c ao de
suas col onias. Um dos problemas estudados pelos
entomologistas est a relacionado ao fato de como in-
setos quase cegos como as formigas, podem se guiar
para estabelecer caminhos de rota mnima de seus
ninhos ate as fontes de alimentos. Elas tambem pos-
suem a habilidade para se adaptarem ` a mudan cas no
ambiente, por exemplo, para encontrar um novo e
menor caminho quando o caminho velho n ao e mais
factvel devido ao aparecimento de um obst aculo que
o inviabiliza.
Foi descoberto que o meio usado entre os in-
divduos para trocar informa c oes relacionadas com
o caminho e usado para decidir que caminho se-
guir consiste do cheiro do ferom onio. Uma formiga
movimentando-se deixa algum ferom onio(em quan-
tidade vari avel) sobre a trilha, marcando o cami-
nho com um cheiro desta subst ancia. Enquanto
uma formiga isolada move essencialmente de forma
aleat oria, uma formiga encontrando uma trilha pre-
viamente marcada com o cheiro pode detectar e
decidir com alta probabilidade seguir esta trilha,
refor cando o cheiro com o seu pr oprio ferom onio.
Desta forma h a um comportamento coletivo do tipo
auto-cataltico, em que a maioria das formigas se-
Anais do 3
o
Congresso Tematico de Dinamica e Controle da SBMAC
31-maio a 3-junho-2004
UNESP Campus de Ilha Solteira
gue o cheiro, e o cheiro mais intenso torna por ser
seguido. O processo e ent ao caracterizado por um
la co de realimenta c ao positivo, onde a probabilidade
com que uma formiga escolha um determinado cami-
nho aumenta com o n umero de formigas que escolhe
previamente a mesmo caminho.
Seja o experimento ilustrado na Figura 18. H a
um caminho que as formigas est ao seguindo (por
exemplo, da fonte de alimentos A para o formigueiro
E e vice versa, Fig. 18(a)). Repentinamente um
obst aculo aparece no caminho que e interrompido.
Ent ao as formigas na posi c ao B, que caminham de
A para E (ou na posi c ao D cujo movimento e na
dire c ao oposta, tem que decidir se v ao para a direita
ou para a esquerda (Fig. 18(b)). A escolha e in-
uenciada pela intensidade do cheiro de ferom onio
deixado pelas formigas precedentes. Um alto nvel
de ferom onio sobre o caminho da direita fornece ` as
formigas um maior estmulo e ent ao uma alta pro-
babilidade de seguir o caminho da direita. A pri-
meira formiga que alcan ca o ponto B (ou D) tem a
mesma probabilidade de virar para a direita ou para
esquerda (previamente, n ao havia ferom onio nos dois
caminhos alternativos). Devido ao caminho BCD ser
mais curto que o caminho BHD, a primeira formiga
que seguir este caminho encontrar a D primeiro que a
formiga que seguir o caminho BHD (Fig. 18(c)). O
resultado e que uma formiga voltando de E para D
encontrar a um cheiro forte no caminho DCB provo-
cado pela metade de todas as formigas que tem chan-
ces de decidir para contornar o obst aculo atraves de
DCBA e por aquelas que chegaram vindas de BCD,
elas contudo preferir ao (probabilisticamente) o ca-
minho DCB ao caminho DHB. Isto faz com que a
quantidade de ferom onio sobre o caminho mais curto
aumente mais que no caminho mais longo, e desta
forma aumenta a probabilidade de qualquer formiga
escolher seguir o menor caminho.
O algoritmo otimiza c ao combinat oria Sistemas
de Formigas(SF) que est a sendo abordado neste
trabalho com base na literatura [28], e obtido a par-
tir dos estudos de col onias de formigas reais. Na
deni c ao deste algoritmo que utiliza col onias arti-
cias como uma ferramenta de otimiza c ao, prop oe-se
as seguintes abstra c oes:
As formigas articiais possuem alguma
mem oria;
Elas s ao completamente cegas;
As formigas articiais vivem num ambiente de
tempo discreto.
_
`

_
`

'

'

'

'

'

'

'

'

'

'

'

'

'

'

'

'

'

'

'

'

'

'

'

'

'

'

'

'

'

'

'

'

'

'

'

'

'

'

'

'

'
_ _ _
_ _ _

'

'

'

'

'

'

'

'

'

'

/
/

'
/
/

`
` *
(a) (b) (c)
A
E
A
E
A
E
Obst aculo Obst aculo H C H C
Figura 18
/
/
/
`
`
`
Z
Z
Z
`
`
`
H C
B
A
E
D
d = 1 d = 0.5
d = 1 d = 0.5
g
g
g g
/
/
/
`
`
`
Z
Z
Z
`
`
`
H C
B
A
E
D
15 ants 15 ants
15 ants 15 ants
g
g
g g
Z
Z
`
` `
/
/
`
` *
'
30 ants
' 30 ants
/
/
/
`
`
`
Z
Z
Z
`
`
`
H C
B
A
E
D
10 ants 20 ants
10 ants 20 ants
g
g
g g
Z
Z
`
` `
/
/
`
` *
'
30 ants
' 30 ants
t = 0 t = 1
= 15
= 15
= 30
= 30
(a) (b) (c)
Figura 19
Anais do 3
o
Congresso Tematico de Dinamica e Controle da SBMAC
31-maio a 3-junho-2004
UNESP Campus de Ilha Solteira
Seja a Figura 19, e considere o gr aco ilustrado
na Fig. 19(a), que e uma possvel interpreta c ao da
situa c ao da Fig. 19(b). Para ilustrar esta situa c ao
suponha que as dist ancias entre D e H, B e H, e
B e D atraves de C s ao iguais a 1, e seja C posi-
cionado na metade do caminho entre D e B (Fig.
19(a)). Os intervalos de tempo s ao discretizados em
t = 0, 1, 2, . . .. Suponha que 30 novas formigas vem
para B de A, e 30 para D de E em cada unidade de
tempo, e que cada formiga caminha com velocidade 1
por unidade de tempo, e que enquanto caminha, uma
formiga deixa no tempo uma dose de ferom onio de
intensidade 1, e que para tornar o exemplo mais sim-
ples, evapora completa e instant aneamente no meio
de intervalos de tempo sucessivos (t+1, t+2). Desta
forma:
Em t = 0 n ao h a intensidade de cheiro, com 30
formigas posicioandas em B e 30 posicionadas
em D.
A escolha entre sobre qual caminho seguir e
completamente aleat oria. Determina-se que
uma media de 15 formigas caminham para o
n o H e 15 formigas caminham para o n o C
(Fig.18(b)).
Em t = 1 as 30 novas formigas que vieram para
B de A encontrar ao uma intensidade de cheiro
15 sobre os caminhos que conduzem a H, dei-
xado pelas 15 formigas que seguiram o caminho
saindo de B, e uma intensidade de cheiro 30 so-
bre os caminhos que conduzem ate C, obtida
pela soma da intensidade do cheiro das 15 for-
migas que foram pelo caminho partindo de B e
pelas 15 formigas que chegaram ate B vindas de
D via C.
A probabilidade de escolher um caminho e pon-
derada, tal que o n umero de formigas passando
por C ser a o dobro do n umero de formigas que
passam por H, 20 e 10 respectivamente. O
mesmo e verdade para as 30 novas formigas em
D, que vem de E.
Este processo continua ate que todas as formi-
gas escolher ao eventualmente o caminho mais curto.
A losoa da heurstica de formigas est a baseada
no fato de que se em um dado ponto uma formiga
tem que escolher entre diferentes caminhos, aqueles
mais intensivamente escolhidos pelas formigas pre-
cedentes (ou seja, aqueles com grande intensidade
de cheiro), ser ao escolhidos com alta probabilidade.
Contudo caminhos com elevados nveis de cheiro n ao
s ao sin onimos de caminhos mais curtos.
6.3 Sistema de Col onia de Formi-
gas(ACS) - Algoritmo Basico
Um algoritmo geral da col onia de formigas e estabe-
lecido a seguir [28, 29].
Inicializa c ao: Nesta fase todas as formigas s ao
posicionadas nos n os de partida gerados aleato-
riamente e os valores iniciais para a intensidade
do cheiro sobre a trilhas s ao atribudos. O ACS
considera o espa co de busca atraves de m ultiplos
est agios. Em cada est agio s ao consideradas as
solu c oes factveis para o problema sob an alise.
Fase de Despacho das Formigas: Cada formiga
escolhe que caminho seguir, levando em consi-
dera c ao a intensidade do cheiro do caminho e
uma fun c ao de merito pre estabelecida, do pro-
blema sob estudo, que deve estar abstrada com
uma rela c ao com a dist ancia. As formigas pre-
ferem se mover para estados que est ao conecta-
dos por arestas mais curtas, ou com uma grande
quantidade de ferom onio. Este processo e repe-
tido ate que as formigas completem um tur.
Avalia c ao ou tness: Depois que todas as for-
migas completarem um tur, o valor de tness
de cada uma tem que ser calculado. Algumas
fun c oes de tness dos problemas de otimiza c ao
podem ser usadas para calcular o desempenho
das formigas. Qualquer restri c ao associada com
o problema de otimiza c ao pode ser incorporada
na fun c ao objetivo como termos de penalidades,
para especicar a fun c ao de tness. Estes valo-
res de tness s ao ent ao usados para atualizar a
intensidade de ferom onio dos caminhos em cada
est agio.
Atualiza c ao da Intensidade do Cheiro: Dois fa-
tores afetar ao a intensidade do cheiro de cada
aresta. A intensidade de ferom onio de cada
aresta ir a evaporar depois de um certo tempo
(ou seja, o cheiro de ferom onio perde a intensi-
dade se outras formigas n ao passarem pelo ca-
minho e depositarem mais ferom onio). Para
aqueles camimhos que as formigas passaram
pela itera c ao atual, a intensidade de ferom onio
pode ser atualizada atraves de uma regra de
transi c ao de estados.
Convergencia: O processo iterativo termina se
foi alcan cado o n umero m aximo de itera c oes pre
estabelecidos ou se todas as formigas escolherem
o mesmo tur.
Anais do 3
o
Congresso Tematico de Dinamica e Controle da SBMAC
31-maio a 3-junho-2004
UNESP Campus de Ilha Solteira
Para aplicar este algoritmo para problemas de oti-
miza c ao da vida real e necess ario mapear as vari aveis
dos problemas e o c alculo da fun c ao de adapta c ao de
acordo com a losoa da metaheurstica ACS. Cada
problema de otimiza c ao dene uma estrutura de co-
dica c ao e algoritmo de solu c ao especco, de forma
que as caractersticas fsicas do problema tem que
ser analisadas e inseridas na sosoa do sistema de
formigas (ACS). Na pr oxima se c ao ser a apresentado
o algoritmo ACS para o problema do caixeiro via-
jante (PCV).
6.4 Algoritmo ACS - Problema do
Caixeiro Viajante(PCV)
Para exemplicar o uso do sistema de formigas,
optou-se pelo problema do caixeiro viajante (PCV),
que e normalmente utilizado para exemplicar e
comparar outras tecnicas heursticas e ser de grande
aplica c ao pr atica. O PCV euclidiano considera a
norma euclidiana (d
ij
), como a dist ancia entre as ci-
dades i e j. O PCV e um grafo (N, E) em que N
e o conjunto de cidades e E e o conjunto de arestas
que ligam as N cidades.
Seja b
i
(t)(i = 1, . . . , n) o n umero de formigas na
cidade i no tempo t e seja m =

n
i=1
b
i
(t) o n umero
total de formigas. Cada formiga e um agente simples
com as seguintes caractersticas:
Escolhe a cidade a visitar com uma probabili-
dade que e fun c ao da dist ancia e da quantidade
de ferom onio existente na aresta que conecta
duas cidades.
Para for car as formigas a realizarem um roteiro
factvel, transi c oes para cidades visitadas s ao
descartadas ate que um roteiro seja completado
(que e controlado por uma lista tabu).
Quando e completado um circuito cada formiga
deixa uma certa quantidade de ferom onio sobre
cada aresta (i, j) visitada.
Seja
ij
(t) a intensidade de ferom onio na aresta
(i, j) no tempo t. Cada formiga no tempo t escolhe
a pr oxima cidade onde ir a no tempo t +1. Denindo
uma itera c ao do ACS como sendo os n movimentos
realizados pelas m formigas no intervalo (t, t + 1),
ent ao as n itera c oes de cada uma das formigas for-
mam um ciclo; ou seja, cada formiga realizou um
tour passando por todas as cidades. Em todos es-
tes pontos a intensidade de ferom onio e atualizada
segundo a f ormula:

ij
(t +n) =
ij
(t) +
ij
(8)
em que : Coeciente tal que (1 ) representa
a evapora c ao do ferom onio entre os tempos t e t +n
e
ij
=

m
k=1

k
ij
onde
k
ij
e a quantidade por
unidade de comprimento de ferom onio deixada na
aresta (ij) pela k-esima formiga entre os tempos t e
t + 1 tal que:

k
ij
(t) =
_

_
Q
L
k
se a k-esima formiga passa
pela aresta(i, j)em seu tur
entre os tempos(t, t + 1)
0 caso contr ario
(9)
em que Q e uma constante e L
k
e o comprimento do
caminho percorrido pela k-esima formiga.
O coeciente deve ser ajustado em um va-
lor menor que 1 para evitar ac umulo ilimitado de
subst ancia. Normalmente a intensidade do cheiro
no tempo 0,
ij
(0) e ajustada como uma constante
inteira positiva c.
De forma a atender a restri c ao que cada uma das
formigas visite n cidades diferentes, associa-se com
cada formiga uma estrutura de dados chamada lista
tabu, que armazena o n umero das cidades visitadas
ate o tempo t e probe a formiga visit a-las novamente
ate que n itera c oes tenham sido completadas (um
tur). Quando um tour e completado, a lista tabu
e utilizada para calcular a solu c ao atual da formiga
(isto e, a dist ancia do caminho percorrido). A lista
tabu e ent ao esvaziada e a formiga est a livre nova-
mente para escolher um novo tur. Dene-se tabu
k
o vetor que cresce dinamicamente e que contem a
lista tabu da k-esima formiga; tabu(s) e o s-esimo
elemento da lista (ou seja, a s-esima cidade visitada
pela k-esima formiga no tour corrente)
Chama-se visibilidade
ij
a quantidade 1/d
ij
.
Esta quantidade n ao e modicada durante o pro-
cessamento do ACS, ao contr ario da intensidade do
cheiro que deve mudar segundo a Equa c ao (8).
Dene-se a probabilidade de transi c ao da cidade i
para j pela k-esima formiga como:
p
k
ij
(t) =
_

_
[ij(t)]

[ij]

kPermitido
k
[
ik
(t)]

[
ik
]

se j Permitido
k
0 caso contr ario
em que Permitido
k
= {N tabu
k
} e e s ao
par ametros que controlam a import ancia relativa do
Anais do 3
o
Congresso Tematico de Dinamica e Controle da SBMAC
31-maio a 3-junho-2004
UNESP Campus de Ilha Solteira
cheiro vs. visibilidade. Desta forma a probabilidade
de transi c ao e uma combina c ao entre visibilidade e
a intensidade do cheiro no tempo t.
Estrutura do Algoritmo para o PCV
Inicializa c ao
No tempo 0 as formigas s ao posicionadas em dife-
rentes cidades e valores iniciais para a intensidade do
cheiro
ij
(0) s ao atribudos para cada uma das ares-
tas. O primeiro elemento da lista tabu de cada for-
miga e ajustado como sendo a cidade inicial. Fa ca:
- t = 0 (t e o contador de tempo )
- NC = 0 (NC e o contador de ciclos
)
- Para toda aresta (i, j) adote um valor inicial

ij
(t) = c e posicione as m formigas nos n n os.
Passo Principal
1. Toda formiga deve se movimentar da cidade i
para a cidade j, escolhendo a cidade para se mo-
vimentar com uma probabilidade que e fun c ao
de e .
S = 1 (S e o ndice da lista tabu)
- Para k = 1 ate m fa ca:
Insira a cidade de partida da k-esima formiga
na lista tabu
k
(s).
2. Repita este movimento das formigas de cada
uma das cidades i para a cidades j, ate que a
lista tabu esteja cheia. Este processo deve ser
repetido (n 1) vezes, ou seja:
- Para S = S + 1 fa ca,
Para k = 1, m fa ca,
Escolha a cidade j para se movimentar com uma
probabilidade p
k
ij
(t) (No tempo t a k-esima for-
miga est a na cidade i = tabu
k
(s 1))
- Movimente a k-esima formiga para a cidade j
- Insira a cidade j na lista tabu
k
(s).
3. Para k = 1, m fa ca,
- Analise o tour da k-esima formiga atraves dos
movimentos registrados nas listas tabu
k
.
- Calcule o comprimento L
k
do tour percorrido
pela k-esima formiga.
- Atualize o tour mais curto encontrado.
- Para toda aresta (i, j),
- Para k = 1, m fa ca;

k
ij
(t) =
_
_
_
Q
L
k
se (i, j) tour descrito por tabu
k
0 caso contr ario

ij
=
ij
+
k
ij
4. Para toda aresta (i, j) calcule
t+n
ij
segundo a
equa c ao
t+n
ij
=
t
ij
+
ij
Fa ca,
t = t +n
NC = NC + 1

ij
= 0 para toda aresta (i, j)
5. Se NC < NC
max
e sem comportamento de es-
tagna c ao, fa ca,
- Esvazie todas as listas tabu,
- Volte ao passo (2);
Caso contr ario,
- Imprima o menor tur,
PARE.
Este e um algoritmo ilustrativo b asico da tecnica
ACS. De acordo com a complexidade do problema
e aspectos fsicos envolvidos na implementa c ao do
ACS, podem ser propostas outras fun c oes para de-
terminar a probabilidade de movimento das formigas
e atualiza c ao do cheiro das trilhas.
Referencias
[1] Aarts E., Korst J.: Simulated Annealing and
Boltzmann Machines, John Wiley & Sons,
1989.
[2] Cerny V.: Termodynamical Approach to the
Traveling Salesman Problem: An Ecient Si-
mulation Algorithm, Journal of Optimiza-
tion Theory and Application, 45(1), pp. 41-51,
1985.
[3] Eglese R.W.: Simulated Annealing: A Tool
for Operational Research, European Journal
of Operational Research, 46, pp. 271-281, 1990
[4] Kirkpatrick S., Gelatt Jr. C.D., Vecchi M.:
Optimization by Simulated Annealing, Sci-
ence, 220(4598), pp. 498-516, 1983.
[5] Diaz A., Glover F., Ghaziri H.M., Gonzalez
J.L., Laguna M., Moscato P., Tseng F.T.:
Optimizaci on Heurstica y Redes Neurona-
les, Editorial Paraninfo, Madrid, 1996.
[6] Drexl A.: A Simulated Annealing Appro-
ach to the Multiconstraint Zero-One Knapsack
Problem, Computing 40, pp. 1-8, 1988.
[7] Gallego R.A., Monticelli A., Romero R.:
Comparative Studies of Non-Convex Opti-
mization Methods for Transmision Network
Anais do 3
o
Congresso Tematico de Dinamica e Controle da SBMAC
31-maio a 3-junho-2004
UNESP Campus de Ilha Solteira
Expansion Planning, IEEE Transactions on
Power Systems, Vol. 13, No. 2, May, 1998.
[8] Gallego R.A., Monticelli A., Romero R.:
Transmission System Expansion Planning by
Extended Genetic Algorithm, IEE Procee-
dings - Generation, Transmission and Distri-
bution, 145(3):329-335, May, 1998.
[9] Gallego R.A., Monticelli A., Romero R.:
Tabu Search Algorithm for Network Synthe-
sis, IEEE Transactions on Power Systems,
Vol. 15, No. 2, May, 2000.
[10] Romero R., Gallego R.A., Monticelli A.:
Transmission System Expansion Planning by
Simulated Annealing, IEEE Transactions on
Power Systems, Vol. 11, No. 1, pp. 364-369,
February 1996.
[11] Reeves C.R.: Modern Heuristic Techniques
for Combinatorial Problems, Jhon Wiley &
Sons, 1993.
[12] Sait S.M., Youssef H.: Iterative Computer
Algorithms with Applications in Engineering,
IEEE Computer Society, 1999.
[13] Back T.: Evolutionary Algorithm in Theory
and Practice, Oxford University Press, 1996.
[14] Fogel D.B.: Evolutionary Computation,
IEEE Press, 1998.
[15] Goldberg D.E.: Genetics Algorithms in Se-
arch, Optimization and Machine Learning,
Addison Wesley, Reading, Mass., 1989.
[16] Hancock P.J.B.: Selection Methods for Evo-
lutionary Algorithms: New Frontiers, Vol. II,
Ed. by Lance Chambers, CRC Press, 1995.
[17] Holland J.H.: Adaptation in Natural and Ar-
ticial Systems, University of Michigan Press,
1975.
[18] Michalewicz Z.: Genetic Algorithms + Data
Strutures = Evolution Programs, Articial
Intelligence, Springer, Berlin, 1996.
[19] Mitchell M.: Introduction to Genetics Al-
gorithms, Editorial Cambridge MIT Press,
1996.
[20] Rawlins G.J.E.: Foundations of Genetic
Algorithms, Morgan Kaufmann Publishers,
1991.
[21] Srinivas M., Patnaik L.M.: Genetic Algo-
rithms, IEEE Computer, 1994.
[22] Van Laarhoven P.J.M., Aarts E.H.: Simula-
ted Annealing: Theory and Applications, D.
Reidel Publishing Company, Holand, 1987.
[23] Whitley: Foundations of Genetic Algo-
rithms, Vol. 2, Morgan Kaufmann Publishers,
1993.
[24] F. Glover, E. Taillard, D. de Werra: A Users
Guide to Tabu Search, Annals of Operations
Research, Vol. 41, 1993.
[25] F. Glover and M. Laguna: Tabu Search,
Kluwer Academic Publishers, 1997.
[26] J.P. Kelly, M. Laguna, F. Glover: A Study
of Diversication Estrategies for the Quadratic
Assignment Problem Computers & Operati-
ons Research, 21(8), 885-893, 1994.
[27] M. Laguna, J.P. Kelly, J.L. Gonzalez Velarde,
F. Glover: Tabu Search for the Multilevel
Generalized Assignment Problem, European
Journal of Operational Research, 82(1), 176-
189, 1995.
[28] M. Dorigo, V. Maniezzo, A. Colorni: The
Ant System: Optimization by a colony of coo-
perating agents, IEEE Transsactions on Sys-
tems, Man, and Cyberbetics - Pat B, Vol.26,
No. 1, pp. 1-33, 1996.
[29] J. Teng, Y. Liu: A Novel ACS-Based Opti-
mum Switch Relocation Method, IEEE Tran-
saction on Power Systems, Vol. 18, No. 1, pp
113-120, February, 2003.
[30] J. Glover, G.A. Kochenberger: A Handbook of
Metaheuristic, Kluwer Academic Publishers,
2003.

Você também pode gostar