You are on page 1of 27

Uma Introduo Busca Tabu

Uma Introduo Busca Tabu



Andr Gomes
Departamento de Cincia da Computao, Instituto de Matemtica e Estatstica, Universidade de
So Paulo, SP, Brasil
RESUMO

Este artigo discorre sobre os fundamentos e principais caractersticas de uma meta
heurstica que vem mudando profundamente (para melhor) nossa habilidade de
resolver uma enorme srie de problemas em cincia aplicada, negcios e engenharia:
a Busca Tabu.
Um de seus aspectos mais teis a facilidade com que possvel adaptar uma
implementao rudimentar para absorver diversas caractersticas adicionais. O
mtodo pode ser evoludo a uma grande variedade de nveis de sofisticao e
aplicao, fazendo com que a Busca Tabu tenha usos importantes em reas como:
mtodos evolucionrios e genticos, melhoras de processos de redes neurais e
aplicaes prticas em campos variados como economia, fsica, transporte, dentre
outros.
Palavras Chave: Busca Tabu, Heursticas, Meta-Heursticas, Otimizao.
ABSTRACT

This article explains the grounds and main characteristics of a meta heuristics which
is deeply changing (for better) our ability to solve a large series of problems in applied
sciences, business and engineering: The Tabu Search.
One of its most useful aspects is the ease with which is possible to adapt a
rudimentary implementation to absorb many additional characteristics. The method
could be evolved to a great variety of levels of sophistication and applications, doing
that Tabu Search has important uses in areas like evolutionary and genetic methods,
improvement of neural network processes and practice applications in varied fields
like economy, physics, transportation and many others.
Key words: Tabu Search, Heuristics, Meta-Heuristics, Optimization.
1. INTRODUO

A meta heurstica conhecida como
que guia um algoritmo de busca local na explorao contnua
busca.
Diferente do que pode vir a ocorrer com
confundida pela ausncia de vizinhos aprimorantes.
retornar a um timo local visitado
local e atingir um resultado timo ou prximo ao
Partindo de uma soluo inicial
algum dentre os vrios critrios possveis (que sero abordados mais adiante neste
texto), a busca move-se, a cada iterao, para a melhor soluo na vizinhan
1.2), no aceitando movimentos que levem a solues j visitadas
permanecerem armazenadas em uma lista tabu.
guardando solues j visitadas (tabu) durante um
certo nmero de iteraes (prazo tabu)
material. Como resultado final
soluo mais prxima deste (figura

conhecida como Busca Tabu um procedimento adaptativo auxiliar
que guia um algoritmo de busca local na explorao contnua dentro de um
o que pode vir a ocorrer com outros procedimentos, a Busca Tabu no
confundida pela ausncia de vizinhos aprimorantes. Isso significa que o mtodo
retornar a um timo local visitado previamente, de forma a superar a otimalidade
e atingir um resultado timo ou prximo ao timo global.
Partindo de uma soluo inicial (figura 1.1), que pode ser escolhida de acordo com
algum dentre os vrios critrios possveis (que sero abordados mais adiante neste
se, a cada iterao, para a melhor soluo na vizinhan
, no aceitando movimentos que levem a solues j visitadas (figura
m armazenadas em uma lista tabu. A lista permanece na memria
guardando solues j visitadas (tabu) durante um determinado espao de tempo ou
nmero de iteraes (prazo tabu), que tambm abordaremos a seguir neste
Como resultado final esperado que se encontre um timo global ou a
soluo mais prxima deste (figura 1.4).

Figura 1.1 Soluo Inicial

Busca Tabu um procedimento adaptativo auxiliar,
e um espao de
outros procedimentos, a Busca Tabu no
o mtodo evita
, de forma a superar a otimalidade
escolhida de acordo com
algum dentre os vrios critrios possveis (que sero abordados mais adiante neste
se, a cada iterao, para a melhor soluo na vizinhana (figura
(figura 1.3) por
lista permanece na memria
espao de tempo ou
, que tambm abordaremos a seguir neste
que se encontre um timo global ou a
A Busca Tabu utiliza estruturas de memria flexveis para armazenar o conhecimento
referente aos espaos que j foram
intensivamente tcnicas de memria adaptativa,
boas solues, onde boas
global em um tempo de processamento aceitvel

Figura 1.2 timo Local


Figura 1.3 Elementos Tabu



Figura 1.4 timo Global

A Busca Tabu utiliza estruturas de memria flexveis para armazenar o conhecimento
que j foram percorridos. Devido ao fato de
de memria adaptativa, a tcnica consegue proporcionar
boas denota solues geralmente timas ou perto do timo
global em um tempo de processamento aceitvel.
A Busca Tabu utiliza estruturas de memria flexveis para armazenar o conhecimento
Devido ao fato de utilizar
segue proporcionar
denota solues geralmente timas ou perto do timo
Outra importante caracterstica do mtodo que a soluo final tem pouca ou
nenhuma dependncia da escolha feita para a soluo inicial. Isso graas aos
mecanismos implementados pelo mtodo, que fogem de timos locais.
1.1 BREVE HISTRICO
Com suas razes no fim dos anos 60 e comeo dos anos 70, a Busca Tabu foi proposta
na sua forma atual por Glover [1] em 1986, tornando-se rapidamente em uma forma
bem estabelecida de otimizao, sendo utilizada hoje em diversas reas e campos do
conhecimento.
Entretanto, aspectos tericos da Busca Tabu, que elucidassem e comprovassem
formalmente sua eficcia foram investigados somente alguns anos aps a definio da
sua forma atual [3], [4], permanecendo por muito tempo inexplicado o motivo da sua
eficincia na busca de solues timas.
A origem da palavra tabu remonta ao Tongan, um idioma da Polinsia, onde era usada
pelos nativos da ilha Tonga para indicar objetos que no podiam ser tocados por
serem sagrados.
De acordo com o dicionrio Aurlio da Lngua Portuguesa a palavra tambm significa
"uma proibio imposta por costumes sociais como uma medida de proteo" ou de
algo "banido por constituir risco". Estes sentidos atuais e mais pragmticos da palavra
definem melhor a prpria Busca Tabu: O risco a ser evitado neste caso o de seguir
um caminho no produtivo, incluindo um que leve ao aprisionamento sem chances de
escapatria. Por outro lado, bem como no contexto social onde "proibies
protetoras" so passveis de suspenso quando a ocasio exige, os "tabus" da Busca
podem ser retirados quando a situao assim exige como bem veremos em sees
posteriores.
A mais importante associao com o uso tradicional da palavra tabu, entretanto, vem
do fato que tabus so normalmente transmitidos atravs da memria social, que est
sujeita a mudanas ao longo do tempo. Isto cria a conexo fundamental para o
significado de "tabu" em Busca Tabu: os elementos proibidos da Busca Tabu recebem
seus status pela dependncia em uma memria evolutiva, que permite a este status
mudar de acordo com o momento e circunstncia.


1.2 META HEURSTICAS
So tcnicas usadas em situaes que podem ser modeladas como problemas de
maximizar (ou minimizar) uma funo cujas variveis tem certas restries.
So estratgias comumente utilizadas para resolver problemas NP - Difceis por
oferecerem melhores solues e geralmente com tempo de processamento menor do
que por outros tipos de tcnicas.
De forma geral, utilizam combinao de escolhas aleatrias e conhecimento histrico
(dos resultados anteriores adquiridos pelo mtodo) para se guiarem e realizar suas
buscas pelo espao de pesquisa em vizinhanas dentro do espao de pesquisa, o que
evita paradas prematuras em timos locais.
1.3 ESPAO DE PESQUISA
O espao de todas as solues possveis chamado de espao de pesquisa. A procura
por uma soluo equivalente a procurar por algum ponto extremo (mnimo ou
mximo) neste espao.
2. DEFINIO DA BUSCA TABU EM TERMOS GERAIS
De forma simplificada, podemos ver o mtodo como uma tcnica iterativa que explora
um conjunto de solues X de um problema, repetidas vezes, fazendo movimentos de
uma soluo s para outra soluo s' localizada na vizinhana N( s ). (N vem do ingls:
neiborhood).
Estes movimentos so executados com o objetivo de alcanar, eficientemente, uma
soluo qualificada como "boa" (aqui boa refere-se a qualquer soluo tima ou
prxima desta) pela avaliao de algumas funes objetivas f( s ) a serem
minimizadas.
Como ponto de partida inicial, podemos realizar uma comparao da Busca Tabu com
um simples mtodo descendente, que formulado como segue:
(a)
Escolha uma soluo inicial s em X
stop = falso;
(b)
Faa
Gere um exemplo de solues V* em N( s )
Encontre o melhor s' em V* (onde f( s' ) f( s ) para qualquer s em V*).
Se f( s' ) f( s ) ento
stop = verdade;
Se no
s = s'; (2.1)
at stop == verdade;

Ao limitar a escolha de s ao melhor elemento de V* estamos restringindo a classe de
mtodos descendentes a um subconjunto prprio de coleo maior, algumas vezes
chamados de "mtodos de melhora".
A forma mais direta de realizar a implementao da aproximao anterior utilizar
V* = N( s ), ou seja, vasculhar toda a vizinhana de s. Em algumas circunstncias,
entretanto, este tipo de processo impraticvel pois possui uma grande complexidade
no consumo de tempo. Porm, nestes casos estipulamos que um conjunto V* c N com
|V*| |N( s )| seja analisado. Como forma alternativa de realizar a implementao da
soluo, podemos fazer com que |V*| = 1, eliminando uma comparao direta entre
elementos e no fazendo mais distino entre o melhor elemento e um membro
arbitrrio de V*. Esta ultima forma de amostragem reflete a poltica adotada pela meta
heurstica Recozimento Simulado (simulated annealing): esta pode ser vista como uma
forma de restringir um mtodo descendente, empregando critrios de rejeio que
podem resultar na gerao de um nmero de conjuntos com |V*| = 1.
Indo alm do caso onde |V*| = 1, a tcnica descendente anterior pode ser refinada ao
se considerar sua dependncia implcita em se resolver um problema de otimizao
local (tanto por iterizao ou por outros mtodos mais sofisticados), para achar um s'
que leve ao min.{ f( s' ) | s' e V* N( s ) }, possivelmente de maneira aproximada.
Construdo a partir deste ponto de vista, um conceito chave da Busca Tabu obrigar a
definio do problema de otimizao local em um modo estratgico fazendo uso
sistemtico da memria para explorar conhecimento alm do contido na funo f( s ) e
a vizinhana N( s ) sobre V* para ser mais proximamente representativo do mnimo
sobre N( s ), sujeito reestruturao especial de N( s ). Isso tambm leva a uma
orientao geral qual o conjunto V* para ser gerado estrategicamente de forma um
tanto quanto randmica, com o objetivo de permitir que o mnimo de f( s' ) sobre V*
seja representativamente mais prximo do mnimo sobre N( s ), sujeito
reestruturao especial de N( s ) atravs da dependncia da memria. Neste sentido,
ns podemos chamar o mtodo de uma meta heurstica, pois a cada passo ele usa uma
heurstica para mover-se de uma soluo para a prxima, guiando a busca em X.
Uma busca guiada oferece vantagens sobre as heursticas descendentes padro. Por
exemplo, a primeira dificuldade que pode surgir , se a aproximao descendente
aplicada como descrito em (2.1) ela vai ser (na melhor das hipteses) levada a um
mnimo local de f onde vai ser presa.
Para contornar este efeito, um procedimento guia (guidance procedure) deve ser
capaz de aceitar um movimento de s para s' (em V*) mesmo se f( s' ) > f( s ). Mas
quando uma soluo s' pior que s pode ser aceita, um looping pode ocorrer, levando
novamente o processo a ser preso por retornar repetidamente mesma soluo de
timo local (talvez aps alguns intervalos de solues intermedirias). O Recozimento
Simulado tenta guiar o procedimento por aceitar uma piora de s' com certa
probabilidade que depende de f( s ), f( s' ) e um parmetro identificado como
temperatura.
Por outro lado, a tcnica da Busca Tabu tenta evitar antecipadamente o perigo de ficar
preso ao incorporar uma estrutura de memria que probe ou penaliza certos
movimentos que poderiam retornar a uma soluo visitada recentemente. A variante
chamada Busca Tabu Probabilstica (Probabilistic Tabu Search) cria probabilidades de
aceitar movimentos como uma funo mono tnica de avaliaes criada por uma
penalidade do mtodo.
A noo do uso de memria para proibir certos movimentos (i.e. por torn-los tabu)
pode ser geralmente formalizada dizendo que a vizinhana da soluo depende da
linha do tempo, portanto da iterao de nmero k. Isto , ao invs de N( s ) ns
podemos nos referir a uma vizinhana denotada N(s , k). (Uma notao mais precisa
poderia indicar que N(s , k) depende de solues e vizinhanas encontradas em
iteraes prvias a k). Por exemplo, suponha que a memria empregada para
recordar solues transitrias em um determinado perodo de tempo e cria N(s , k)
por deletar de N( s ) cada soluo que tem um predecessor imediato de s em uma
destas transies. Podemos expressar a forma do procedimento que usa os vizinhos
modificados como segue:
(a)
Escolha uma soluo inicial s em X
s* = s e k = 1;
(b)
Enquanto a condio de parada no atingida, faa
k = k + 1;
gere V* N(s , k)
s = s'
Se f( s ') < f( s* )
s* = s' (2.2)
Fim Enquanto

Existem inmeras condies de parada em uso pelas diversas aplicaes disponveis
atualmente. Entretanto, as mais significativas esto descritas a seguir. Normalmente
todas as demais condies em uso so variaes ou combinaes destas:
Uma soluo tima encontrada.
N(s , k + 1) = .
k maior que o nmero mximo de iteraes permitido.
O nmero de iteraes executadas desde que s* mudou pela ltima vez maior
que o nmero mximo de iteraes especificado.
Pra-se quando o valor da melhor soluo chega a um limite inferior conhecido
(ou prximo dele). Isto evita execues desnecessrias ao encontrar uma
soluo tima suficientemente boa.
No procedimento acima, um exemplo no-trivial e estrategicamente gerado da
vizinhana da soluo examinado a cada passo e o melhor elemento no tabu do
exemplo selecionado. O objetivo fazer movimentos de melhora at a mxima
extenso permitida pela estrutura de N(s , k), balanceando as solues fornecidas
entre qualidade do resultado e esforo computacional ao examinar grandes amostras.
Caracterizada desta maneira, a Busca Tabu pode ser vista como um mtodo de
vizinhana varivel: cada passo redefine a vizinhana pela qual a prxima soluo vai
ser desenhada, baseada nas condies que classificam certos movimentos como tabu.
Um aspecto crucial do procedimento envolve a escolha de uma definio apropriada
de N(s , k). Devido explorao da memria, N(s , k) depende da trajetria seguida ao
se mover de uma soluo para a prxima. Como ponto de partida, considere uma
forma de memria encarnada em uma lista tabu T que se recorda das |T| solues
visitadas mais recentemente, levando N(s , k) = N( s ) T.
Uma aproximao baseada em dados recentes na memria (recencia da memria) ir
prevenir que ciclos de tamanho menor ou igual |T| ocorram na trajetria da busca.
Esta formulao normalmente tem somente interesse terico, pois manter as solues
mais recentes de |T| pode consumir um grande volume de espao na memria. (Isto
tambm representa uma forma relativamente limitada de memria baseada em dados
recentes).
Como base para identificar uma estrutura de memria mais prtica e efetiva podemos
melhorar nossa definio de T ao definir a vizinhana N( s ) em termos de
movimentos que transformam a soluo s em novas solues. Especificamente, para
cada soluo s considere um conjunto M( s ) de movimentos permitidos m que podem
ser aplicados a s para obter uma nova soluo s' = s m. Ento temos
N( s ) = { s' | + m e M( s ) com s' = s m }. Geralmente til empregar um conjunto
de movimentos M( s ) que sejam reversveis, isto , para cada m e M( s ),
v m
1
e M( M( s ) ) tal que (s m) m
1
= s. Com esta estipulao, T pode consistir
dos ltimos |T| "movimentos reversos" associados com os movimentos j executados.
Ao invs de uma nica lista tabu T pode ser mais conveniente usar diversas listas Tj de
m (ou de s) para indicar que estes movimentos j efetuados so atualmente proibidos
para compor um novo movimento. Geralmente o status tabu de um movimento uma
funo do status tabu dos atributos que mudam ao ir da soluo atual para a prxima
(como variveis que mudam os valores, ou elementos que mudam posies, ou itens
que so transferidos de um conjunto a outro).
Isto leva a uma coleo de condies Tabu da forma
tj (m , s) e Ti (i = 1, ... , p) (2.3)
Um movimento m aplicado s solues correntes vai ser ento um movimento tabu
(isto , implicitamente um membro da lista T) se todas as condies em (2.3) so
satisfeitas.

A seguir mostrado o pseudocdigo do algoritmo da Busca Tabu na Tabela 2.1:
PROCEDIMENTO DA BUSCA TABU

procedimento BT
01. Seja s0 soluo inicial;
02. s
*
s; {Melhor soluo obtida at ento}
03. Iter 0; {Contador do nmero de iteraes}
04. MelhorIter 0; {Iterao mais recente que forneceu s
*
}
05. Seja BTmax o nmero mximo de iteraes sem melhora em s
*
;
06. T ; {Lista Tabu}
07. Inicialize a funo de aspirao A;
08. enquanto (Iter MelhorIter Btmax) faa
09. Iter Iter + 1;
10. Seja s s m o melhor elemento de V N (s) tal que o movimento m no seja tabu
(m T) ou s atenda a condio de aspirao ( f(s) < A(f(s)));
11. Atualize a Lista Tabu T;
12. s s;
13. se f(s) < f(s
*
) ento
14. s
*
s;
15. MelhorIter Iter ;
16. fim-se;
17. Atualize a funo de aspirao A;
18. fim - enquanto;
19. Retorne s
*
;
fim BT;

Tabela 2.1 Procedimento Busca Tabu
3. EFICINCIA DE MTODOS DE SOLUO ITERATIVOS
Ao trabalhar com mtodos de soluo iterativos temos de ter uma mente que a sua
eficincia depende, em sua maior parte, da qualidade da modelagem. Por exemplo, um
ajuste fino dos parmetros do mtodo nunca ser capaz de balancear uma m escolha
de estrutura de vizinhana da funo objetivo. Por outro lado, uma modelagem
eficiente deve levar a tcnicas robustas que no sejam to sensveis a configuraes
distintas de parmetros. Nos prximos tpicos sero abordados dois assuntos
essenciais para o desenho eficiente de mtodos de soluo iterativos: Modelagem e
Computao eficientes.

3.1 MODELAGEM EFICIENTE
Mtodos de soluo iterativos podem ser vistos como passeios em um grafo de
estados do espao (state space graph) G(S , A) onde o conjunto de vrtices S o
conjunto de possveis solues e existe uma aresta (i , j) e A de i para j se j e N( i ). A
escolha de uma soluo inicial equivalente a gerar um vrtice em G e um passo do
procedimento iterativo consiste em mover do vrtice corrente i a um vrtice
adjacente a i. Para um problema de otimizao dado, normalmente existem vrias
maneiras para definir o grafo de estados do espao G e essencial escolher um que
satisfaa a seguinte condio:
Dado qualquer i em S, deve existir um caminho de i a uma soluo tima i*. (*)
Se uma soluo que no satisfaz esta condio visitada durante o processo iterativo,
ento uma soluo tima nunca ser alcanada.
Para ilustrar este fato, vamos considerar o problema de colorao de grafos: dado um
grafo H = (V , E) temos que encontrar uma colorao de vrtices com a menor
quantidade de cores possvel de tal forma que dois vrtices unidos por uma aresta
tenham a mesma cor. Podemos definir o conjunto S de solues possveis como o
conjunto de coloraes possveis que no usam mais do que um dado nmero de
cores; por exemplo, este limite superior pode ser o nmero de cores usadas na
soluo inicial. Vamos definir a vizinhana N( i ) da soluo i como o conjunto de
possveis coloraes que podem ser obtidas por i ao mudar a cor de exatamente um
vrtice. Isto induz um grafo de estados do espao que no satisfaz a condio (*). De
fato, considere o exemplo na figura 3.1: se o mtodo de soluo iterativo visita a
possvel cor c1 e se o limite superior no numero de cores que pode ser usado trs,
ento uma colorao tima usando somente duas cores nunca ser alcanada. Uma
definio melhor do grafo de estados dos espaos G ser descrita na seo 5.

Figura 3.1 Exemplo de solues

Neste ponto, importante relembrar que o conjunto S de possveis solues no
necessariamente o conjunto de solues do problema original: na verdade, em alguns
casos, pode ser muito difcil redefinir a estrutura da vizinhana que satisfaa a
condio (*). Se as solues do problema original precisam satisfazer um conjunto C
de restries, ento algumas vezes sensato definir S como um conjunto de solues
que satisfaa um subconjunto prprio C c C de restries. Por exemplo, para o
problema de colorao dos grafos, uma adaptao eficiente da Busca Tabu ser
descrita na seo 5 onde a restrio que dois vrtices ligados por uma aresta devem
receber cores diferentes relaxada. Claro, a violao de uma restrio relaxada
penalizada na funo objetivo.
Cada vrtice i do grafo G tem um valor f( i ). Considerando estes valores como
altitudes, isso induz uma topologia com vales contendo timos locais. importante
definir f de forma que no existam muitos vales ou grandes planaltos. Nestes casos
muito difcil guiar a busca pela soluo tima, que o topo de um dos vales mais
profundos.
Para o problema de colorao de grafos, definir o valor f( i ) de uma colorao i como
o nmero de cores que so usadas em i induz planaltos muito grandes se todas as
solues tiverem um valor inteiro que pertence ao pequeno intervalo [ f(i*) , u ], onde
f( i* ) o valor para uma soluo tima e u o limite superior.
Como mencionado anteriormente, a funo objetivo f pode ser alterada durante a
busca. Estas mudanas correspondem modificao da topologia. Durante a fase de
diversificao, por exemplo, tentado substituis os vales j visitados por altas
montanhas. Assim a busca direcionada atravs de regies inexploradas.
3.2 COMPUTAO EFICIENTE
A cada passo de um mtodo de soluo iterativo, muitas solues tm de ser avaliadas
e importante executar essa computao de uma forma eficiente.
Para uma soluo i e um movimento m, mais simples computar A(| , ) definido
como f( i m ) f( i ) do que f( i m). Em alguns casos possvel armazenar os
valores (i , m) para todo m M( i ). Neste caso, se um movimento m pode ser
aplicado a duas solues consecutivas i e j, ( m M( i ) M( j ) ). Acontece
freqentemente que ( j , m ) pode ser computado de forma ainda mais fcil. Por
alguns problemas, dada uma soluo i e um movimento m M( i ), difcil de
computar f( i m ). Por exemplo, para o problema de roteamento de veculos, vamos
definir uma soluo i como uma distribuio dos usurios aos veculos e um
movimento m como a transferncia de exatamente um usurio de um veculo para
outro. Se o objetivo minimizar a distncia total viajada, a computao f( i m )
equivalente a resolver vrios problemas do caixeiro viajante. Como sabido, o
problema do caixeiro viajante um problema NP - difcil.
Nestes casos necessrio utilizar mtodos de heurstica velozes (que no tenham
grande complexidade de tempo) para avaliar as solues na vizinhana. Uma vez que a
melhor soluo vizinha tenha sido determinada, uma tcnica mais elaborada pode ser
utilizada para melhorar o resultado. Por exemplo, para o problema de roteamento de
veculos, um mtodo simples de insero pode ser usado para encontrar a melhor
vizinhana j N( i ). Todas as rotas de i modificadas para obter j so ento re-
otimizadas usando mtodos de melhora como o r-opt [17] ou mesmo mtodos exatos
quando no existem muitos usurios nas rotas.
No caso onde todos os valores ( i , m ) m M( i ) podem ser armazenados, s vezes
possvel manter uma lista sortida destes valores com um pequeno esforo
computacional.

4. USO EFICIENTE DE MEMRIA
No fim da seo 2 dada uma descrio do procedimento da Busca Tabu. Nela
possvel perceber que o uso intensivo de memria uma caracterstica essencial deste
mtodo. As condies Tabu podem, usualmente, ser consideradas como memria de
curto prazo que previne ciclagem (loopings) por alguma extenso na iterizao. Agora,
nesta seo, descrevo algumas polticas eficientes para o gerenciamento de listas tabu.
Tambm ser mostrado como o uso de memria pode ajudar a intensificar a busca em
regies "boas" ou diversificar a busca atravs de regies inexploradas.
4.1 LISTAS TABU DINMICAS
As Listas Tabu Dinmicas tem como principal objetivo evitar que o algoritmo entre em
processo de ciclagem (looping). Esta situao pode ocorrer devido a inmeros fatores.
Por exemplo, se a lista tabu tem tamanho trs, mas somente no quinto passo achado
um valor de melhora. Neste caso a lista retorna ao timo local prvio e comea a busca
novamente. (Neste caso a busca seria encerrada aps algumas repeties deste
movimento, pois atingiria o critrio de parada que diz que aps certo nmero de
iteraes sem melhora o algoritmo deve ser encerrado) .
Para evitar isso, as listas dinmicas tm tamanho varivel no intervalo [tmin , tmax]. O
tamanho deve ser mudado periodicamente. Um valor muito utilizado realizar a
mudana a cada 2tmaxiteraes.

4.2 PASSAGENS POR REGIES PLANAS
Passar por regies planas pode levar o algoritmo a pensar que no h melhora
significativa na qualidade das solues e atingir o critrio de parada (no encontrar
solues de melhora por um grande nmero de iteraes, por exemplo). Mas muitas
vezes isso apenas uma concluso artificial e aps uma longa regio plana podem
haver resultados aprimorantes.
Para tentar evitar esta situao utilizada uma tcnica que aumenta o tamanho da
lista tabu enquanto o algoritmo estiver passando pela regio plana e volta a reduzir
seu tamanho (ao original, por exemplo), quando houver uma mudana no valor da
funo de avaliao.
4.3 INTENSIFICAO
So tcnicas utilizadas para concentrar os esforos da pesquisa em regies
consideradas promissoras. muito comum que mtodos de Busca Tabu incluam
estratgias de intensificao para melhorar seu desempenho e a qualidade da
resposta fornecida.
As duas principais estratgias so:
Retornar a uma soluo j visitada para explorar sua vizinhana de forma mais
efetiva e,
Incorporar atributos das melhores solues j encontradas durante o
progresso da pesquisa e estimular componentes dessas solues a tornar parte
da soluo corrente.
So consideradas livres no procedimento de busca local apenas as componentes no
associadas s boas solues, permanecendo as demais componentes fixas.
Um procedimento de intensificao com estas caractersticas a Reconexo por
Caminhos (Path-Relinking).
4.4 DIVERSIFICAO
Mtodos baseados em Busca Tabu incluem tambm, estratgias de diversificao. O
objetivo dessas estratgias, que tipicamente utilizam uma memria de longo prazo,
redirecionar a pesquisa para regies ainda no suficientemente exploradas do espao
de solues.
Estas estratgias procuram, ao contrrio das estratgias de intensificao, gerar
solues que tm atributos significativamente diferentes daqueles encontrados nas
melhores solues obtidas at o momento.
A diversificao, em geral, utilizada somente em determinadas situaes, como, por
exemplo, quando dada uma soluo s, no existem movimentos m de melhora para
ela, indicando que o algoritmo j exauriu a anlise naquela regio.
4.5 PATH RELINKING
uma estratgia de intensificao que objetiva incorporar atributos de solues de
boa qualidade (chamadas de solues elite), favorecendo a seleo de movimentos
que as contenham. Foi originalmente proposta por Fred Glover em 1996 no contexto
de Busca Tabu ou Scatter Search.
Basicamente, consiste em gerar e explorar caminhos no espao de solues partindo
de uma ou mais solues elite e levando a outras solues elite.
Para tanto, so selecionados movimentos que introduzem atributos das solues guia
na soluo corrente. O caminho, ento, gerado selecionando movimentos que
introduzam na soluo inicial atributos da soluo guia.
A cada passo, todos os movimentos que incorporam atributos da soluo guia so
avaliados e o melhor movimento selecionado.

5. EXEMPLOS
Mtodos clssicos de otimizao muitas vezes encontram grande dificuldade quando
so confrontados com a tarefa de resolver problemas de otimizao difceis que faam
parte do mundo real. Aplicaes vitais em negcios, engenharia, economia e cincia
no conseguem ser abordadas com esperana razovel de sucesso dentro de janelas
de tempo prticas, por mtodos de soluo que tenham tido foco predominante em
pesquisa acadmica nas trs dcadas passadas [6].
Por outro lado, a Busca Tabu est ampliando consideravelmente nossa habilidade de
resolver problemas com significados prticos reais. Aplicaes atuais da Busca Tabu
abrangem ramos de planejamento de recursos, telecomunicaes, VLSI design, anlise
financeira, agendamento, planejamento de espao, distribuio de energia, engenharia
molecular, logstica, classificao de padres, fabricao flexvel, gerenciamento de
gastos, explorao de minrios, anlises biomdicas, preservao ambiental, dentre
muitas outras aplicaes. Nos ltimos anos, diversas publicaes em uma grande
variedade de reas tm disponibilizado artigos, tutoriais e estudos computacionais
documentando sucessos da Busca Tabu em estender a fronteira de problemas que
podem ser lidados de forma eficiente - levando a solues cuja qualidade se sobrepe
significantemente a aquelas obtidas por mtodos aplicados previamente. A tabela 5.1
mostra um catlogo parcial de exemplos de aplicaes. Uma lista mais compreensiva,
incluindo descries de ganhos atingidos pelas implementaes prticas, bem como
relatrios de implementaes recentes de BT podem ser encontradas em [15].

Aplicaes da Busca Tabu
Design
Design assistido por computador
Redes tolerantes a falhas
Design de redes de transporte
Architectural Space Planning
Coerncia de diagramas
Fixed Charge Network Design
Problemas de Corte Irregular

Produo, Inventrio e Investimento
Flexible Manufacturing
Produo Just-in-Time
Capacitated MRP
Part Selection
Multi-item Inventory Planning
Volume Discount Acquisition
Fixed Mix Investment

Roteamento
Roteamento de Veculos
Capacitated Routing
Roteamento de Janelas de Tempo
Roteamento Multi Modo
Mixed Fleet Routing
Caixeiro Viajante
Traveling Purchaser

Otimizao de Grafos
Particionamento de Grafos
Colorao de Grafos
Particionamento de Clique
Problemas de Clique Mximo
Maximum Planner Graphs
Scheduling
Flow-Time Cell Manufacturing
Heterogeneous Processor Scheduling
Planejamento de fora de trabalho
Escalonamento de Cursos
Escalonamento em Mquinas
Flow Shop Scheduling
Job Shop Scheduling
Sequencing and Batching

Telecomunicaes
Roteamento de Chamadas
Bandwidth Packing
Hub Facility Location
Path Assignment
Network Design for Services
Arquitetura Imune a Falhas
Synchronous Optical Networks

Lgica e Inteligncia Artificial
Maximum Satisfiability
Lgica Probabilstica
Clusterizao
Reconhecimento / Classificao de
Padres Integridade de Dados
Redes Neurais: Treinamento e Design

General Combinational Optimization
Programao Zero - Um
Fixed Charge Optimization
Nonconvex Nonlinear Programming
Redes Tudo-ou-Nada
Programao Bilevel
Problemas P-Medianos

Tecnologia
Seismic Inversion
Distribuio de Energia Eltrica
Engineering Structural Design
Minimum Volume Ellipsoids
Space Station Construction
Circuit Cell Placement
General Mixed Integer Optimization

Location and Allocation
Multicommodity Location/Allocation
Quadratic Assignment
Quadratic Semi-Assignment
Multilevel Generalized Assignment
Planejamento de Lay-Out
Explorao de Petrleo em Alto Mar
Tabela 5.1 Aplicaes da Busca Tabu

A seguir, alguns dos conceitos anteriores sero relembrados com exemplos simples
onde o procedimento da Busca Tabu produziu solues muito boas.
5.1 O PROBLEMA DE COLORAO DE GRAFOS
Mais detalhes sobre a resoluo deste problema podem ser encontrados em [5].
Dado um grafo G = (V , E) temos que encontrar uma colorao de seus vrtices com a
menor quantidade de cores possvel. A nica restrio que dois vrtices ligados por
uma aresta no recebam a mesma cor.
Em outras palavras, uma colorao de vrtices de G em k cores uma partio do
conjunto de vrtices V em k conjuntos independentes V1, ... , Vk. Para definir o conjunto
S de possveis solues, a nica restrio foi relaxada e Busca Tabu utilizada para
encontrar se possvel uma colorao em um dado nmero k de cores. Isto , uma
soluo possvel qualquer partio (V1, ... , Vk) de V em k conjuntos. Ao definir E( Vv )
como o conjunto de arestas tendo as duas pontas em Vv, o objetivo minimizar
_ | ( )|

=1
.
Portanto uma soluo de valor zero corresponde a uma colorao de G em k cores.
Como mencionado anteriormente, definindo S como o conjunto de todas as parties
de V em conjuntos independentes (que a nica restrio do problema no relaxado)
e a funo objetivo como o nmero de cores usadas implica que um nmero maior de
movimentos (que mudam a cor de um nico vrtice) tem o mesmo valor (e muito
poucos de aumento). difcil guiar a busca nesta situao.
Na modelagem eficiente da Busca Tabu descrita acima a vizinhana N( i ) de uma
soluo i consiste em todas as solues geradas por i pela modificao local: mova um
vrtice que tem ponta em uma aresta monocromtica (ambas as pontas esto no
mesmo Vv) para um conjunto Vq (q r). Quando um vrtice movido de Vv Vq o par
(v , r) introduzido na lista tabu T. Isto significa que proibido introduzir v em Vv
durante |T| iteraes.
5.2 PROBLEMAS DE ESCALONAMENTO DE CURSOS
Mais detalhes sobre este problema podem ser encontrados em [8], [9], [14].
Basicamente, problemas de escalonamento de cursos podem ser formulados como
problemas de colorao de grafos: os cursos so os vrtices de um grafo, os horrios
correspondem s cores e dois vrtices so conectados por uma aresta se as matrias
no podem ser dadas ao mesmo tempo. Na vida real muito mais restries devem ser
levadas em conta e a maioria das tcnicas de otimizao mal pode lidar com os
requerimentos de cada escola (o que caracteriza este problema como NP Difcil).
A BT vem sido aplicada com sucesso a este problema atravs de uma extenso da sua
adaptao do problema de colorao de grafos. Uma soluo vivel definida como
um escalonamento de aulas que satisfaa um subconjunto C de restries e uma
soluo vizinha obtida ao modificar o horrio de uma matria. Se todas as matrias
duram um horrio, isto equivalente a mudar a cor de um vrtice. Para decidir se uma
restrio especfica deve ser includa em C, as seguintes orientaes podem ser
usadas: uma matria nunca deve ser atribuda a um perodo se esta atribuio induz
somente escalonamentos de cursos que no satisfazem todas as restries. Alm
disso, um conflito entre duas matrias no deveria ser uma condio suficiente para
dificultar uma atribuio.
Por exemplo, vamos considerar dois cursos c1 e c2 envolvendo estudantes em comum.
Se c1 no pode ser atribudo no perodo p por alguma razo (talvez o professor no
esteja disponvel para aquele horrio, por exemplo), ento no devemos nunca visitar
uma soluo onde c1 dada no perodo p. Entretanto, se esta restrio no existe e c2
atribudo ao perodo p, ento ns devemos permitir a atribuio de c1 no perodo p,
mesmo se isto violar a restrio de no sobreposio de cursos envolvendo estudantes
em comum. A razo que c1 possivelmente dado no perodo p em um
escalonamento timo e a violao da restrio deve ser cancelada movendo a matria
c2 para outro perodo. Como mencionado em [9], este modelo pode lidar com
problemas de escalonamento de cursos com matrias opcionais, janelas no horrio e
pr-requisitos para as matrias, restries de espao e precedncia e os cursos podem
ter duraes diferentes.




5.3 O PROBLEMA DO CONJUNTO INDEPENDENTE MXIMO
Maiores detalhes sobre a implementao deste problema podem ser encontrados em
[12] e [13].
Dado um grafo G = (V , E) temos que determinar um subconjunto X de V to grande
quanto possvel tal que E(X) = (onde E(X) um conjunto de arestas tendo ambas as
terminaes em X).
A Busca Tabu foi adaptada para tentar determinar um conjunto independente em G de
um tamanho dado k. Mais uma vez, a nica restrio do problema foi relaxada. Uma
soluo qualquer subconjunto X de V de tamanho k e a funo objetivo |E(X)|. A
vizinhana consiste em trocar um vrtice v e X com um vrtice w e V - X. O tamanho
da vizinhana da soluo igual k(n - k) e O(nk) onde n = |V|.
Para um vrtice v e V, deixe-nos denotar I(X)(v) o conjunto de vrtices w em X que so
conectados v por uma aresta. Os vrtices v em X so distribudos de acordo com os
valores no crescentes de I e os vrtices w e V - X so ordenados de acordo com
valores no decrescentes de I. Manter estas duas listas ordenadas requer tempo O(n).
Trs listas Tabu so usadas. A primeira T1 armazena as ultimas solues visitadas, a
segunda T2 contm os ltimos vrtces introduzidos em X e a ltima T3 contm todos
os ltimos vrtices removidos de X. Como mostrado em [12], ao usar tcnicas de
hashing para implementar T1 e escolhendo um valor de constante pequeno para |T2| e
|T3|, um melhor vizinho pode ser encontrado na pratica em tempo constante. Por isso
um passo de BT leva tempo O(n) ao invs de O(nk).
Uma adaptao completamente diferente de BT para o problema do conjunto
independente mximo foi descrita em [13]. BT usada para obter limites em um
algoritmo de "branch & bound". Em cada n do algoritmo definimos dois conjuntos I e
O de vrtices que so forados a estar respectivamente dentro e fora de um conjunto
interdependente mximo. Seja X o maior conjunto encontrado at agora. BT usada
para cobertura com |X| - |I| cliques para tantos vrtices quanto possvel no grafo H
induzido por U = V - (I U O). Deixe W ser o conjunto de vrtices cobertos pelos cliques.
Se |W| = |U| ento backtracking ocorre desde que H no contenha um conjunto estvel
de tamanho maior que |X| - |I|. De outra maneira, ns geramos um novo subproblema
par cada vrtice v pertence a U - W ao introduzir v em I e por adicionar em O todos os
vrtices adjacentes v.
Usando uma tcnica menos elaborada para cobrir os vrtices de H por cliques requer
menos tempo, mas o nmero de ramificaes gerados em cada n do algoritmo
"branch & bound" geralmente muito maior. Foi mostrado que vale a pena gastar
tempo adicional usando BT em cada n para reduzir o nmero de ramificaes. Mais
detalhes podem ser encontrados em [13].

5.4 FORMULAO QAP
Prosseguimos analisando o Problema da Atribuio Quadrtica [2] (quadratic
assignment problem ou QAP):
N itens devem ser atribudos N diferentes localizaes. A distncia aij entre as
localidades i e j dada bem como o valor bpq de um fluxo (circulao de partes) entre
os itens p e q.
procurada uma distribuio dos itens s localidades que minimize a soma dos
produtos das distncias e valores de fluxo associados. Matematicamente, o problema
consiste em encontrar uma permutao de {1, ... , N} para minimizar

f() = __ij b (i) (j) (2.4)

Aplicando nossa notao anterior neste problema, X consiste nas N! permutaes de
{1, ... , N}; um movimento m em M( ) pode consistir na mudana de dois itens p e q.
A permutao obtida por que pode mover m dada por

n = @ m
( i ) = ( i ) para todo i p, q.
( p ) = ( q )
( q ) = ( p )

A diferena f( @ m) f() pode ser computada facilmente, permitindo explorao
de toda a vizinhana N() em tempo O(N) [7]
}
Uma possibilidade para criar uma memria baseada em eventos recentes definir
atributos de um movimento pelo par no ordenado de itens (p , q). O atributo par que
precisa ser proibido para prevenir o movimento reverso da mesma forma (p , q)
(no permitindo estes dois itens a serem trocadas novamente, constatando que uma
mudana imediata deste tipo poderia revisitar a soluo j abandonada). Fazendo
deste atributo par a base de uma restrio Tabu permite que cada p e q sejam
trocadas de cada vez com outros intens. Infelizmente, entretanto, este tipo de
restrio no satisfaz a propriedade de proibir um retorno solues j visitadas,
desde que a seqncia de movimentos (p , s) (q , s) (p , r) (p , q) (r , s) no muda nada.
Outra maneira de identificar atributos de um movimento de mudana introduzir
informao adicional, referindo-se no somente a itens alterados, mas a posies
ocupadas por estes itens na hora da mudana. Fazer isto sem incluir peso na memria
por introduzir vetores de quatro dimenses, ns imaginamos um movimento que ser
composto de dois meio movimentos (p, ( q )), o primeiro colocando p na localizao
f( q ) e o segundo colocando q na localizao ( p ). O modo reverso prevenido por
no permitir que os dois pares de atributos (p, ( p )) e (q, ( q )) ocorram
simultaneamente e, so estes dois pares que so armazenados na lista tabu da
implementao do QAP.
Mais precisamente, definimos um movimento m (troca dos itens p e q) a serem tabu
se o movimento manda ambos, p e q, a localidades que ocuparam dentro das ultimas t
interaes. Esta condio tabu admite alguns movimentos prevenidos pela condio
ilustrada previamente e tambm probe alguns movimentos permitidos pela condio
prvia, por isso no tambm uniformemente mais restritiva ou menos restritiva.
A restrio atual tem o apelo de ser baseada no somente em atributos de solues
(correspondendo a itens localizados em posies especficas). Em adio, permitimos
o tamanho t da lista tabu primria, consistindo de pares (item, localizao), a serem
alterados durante o processo de soluo.
6. COMPARAO COM OUTRAS META HEURSTICAS
Outra forma de definir o poder e a versatilidade da tcnica realizar uma comparao
com outras meta heursticas igualmente bem estabelecidas e aceitas.
Como tcnicas diferentes se comportam ao fornecer solues para os mesmos
problemas? A Busca Tabu fornece respostas com mais ou menos preciso que outras
tcnicas? Em mais ou menos tempo?
So estas perguntas e comparaes que tentaremos elucidar logo a seguir.

6.1 RECOZIMENTO SIMULADO X BUSCA TABU
A seo 2 estabelece a Busca Tabu partir de uma construo por comparao com o
Recozimento Simulado. Para mais detalhes, consulte a seo 2.
6.2 UMA COMPARAO DE ALGORITMOS MIMTICOS, BUSCA
TABU E COLNIA DE FORMIGAS PARA O QAP
[16] realizou um extenso estudo comparativo entre as tcnicas descritas acima.
No artigo foi apresentado um algoritmo mimtico para resolver vrias instncias do
QAP. Foram descritos os ingredientes, operadores evolucionrios e busca de
vizinhana local do algoritmo memtico. Em particular, um novo e altamente eficiente
operador de recombinao foi proposto.
O desempenho do algoritmo mimtico foi investigado em um conjunto de instncias
do QAP e comparado em desempenho em trs tcnicas de heursticas muito boas em
resolver QAP: Busca Tabu reativa, Busca Tabu Robusta e o Fast ant Colony System. O
Algoritmo Mimtico foi capaz de superar estas heursticas em todas as instncias de
QAP de interesse prtico.
Sendo assim, nem sempre todas as implementaes de Busca Tabu encontram as
melhores solues no melhor tempo possvel. Entretanto, os tempos de resposta so
geralmente muito bons.
7. CONCLUSES
A Busca Tabu uma tcnica extremamente verstil e poderosa. Muito provavelmente,
grande parte da sua versatilidade advm do fato da tcnica se parecer mais com uma
aproximao de engenharia para problemas grandes e complexos do que com um
algoritmo matemtico simples e elegante.
Por no oferecer uma implementao rgida como nica resposta ou uma receita
pronta para seu uso, possvel aplicar a BT quase qualquer problema de otimizao
com resultados timos, ou prximos do timo por um custo aceitvel. Mesmo que no
seja sempre a tcnica mais indicada para todos os tipos de problemas.
uma tcnica relativamente recente e, apesar de robusta, ainda se encontra em
processo de amadurecimento: apesar das vrias aplicaes tem ainda potencial para
muitas outras. E a cada nova aplicao se descobre um pouco mais sobre seu poder.

REFERNCIAS

[01] F. Glover; Future paths for integer programming and links to artificial
intelligence.
[02] E. Taillard; Robust taboo search for the quadratic assignment problem.
[03] Faigle U., Kern W.; Some Convergence Results for Probabilistic Tabu Search;
ORSA Journal on Computing 4, (1992), pg. 32-37.
[04] Fox B.L.; Integrating and accelerating Tabu Search, simulated annealing and
genetic algorithms; Annals of Operations Research 41, (1993) pg. 47-67.
[05] Hertz A., de Werra D.; Using Tabu Search Techniques for Graph Coloring;
Computing 39, (1987), pg. 345-351.
[06] Glover F.; Tabu Search, Part I - ORSA Journal on Computing 1, (1989).
[07] Glover F.; Tabu Search, Part II - ORSA Journal on Computing 2, (1990).
[08] Hertz A.; Tabu Search for Large Scale Timetabling Problems; European Journal of
Operational Research 54/1, (1991), pg. 39-47.

[09] Hertz A.; Finding a Feasible Course Schedule Using Tabu Search; Discrete Applied
Mathematics 35, (1992), pg. 255-270.

[10] Hertz A., de Werra D.; Using Tabu Search Techniques for Graph Coloring; (1987), pg.
345-351.

[11] Hertz A., de Werra D.; The Tabu Search Metaheuristic: how we used it; Annals of
Mathematics and Artificial Intelligence 1, (1990), pg. 111-121.

[12] Friden C., Hertz A., de Werra D.; STABULUS: a technique for finding stable sets in
large graphs with tabu search; Computing 42, (1989) pg. 35-44.

[13] Friden C., Hertz A., de Werra D.; TABARIS: an exact algorithm based on tabu search
for finding a maximum independent set in a graph; Computers and Operations Research 17,
(1990), pg. 437-445.

[14| Costa D.; A Tabu Search Algorithm for Computing an Operational Time Table;
European Journal of Operational Research 76, (1994), pg. 98-110.

[15] Relatrios de implementaes recentes de BT: http://www.upt.pt/tabusearch.

[16] Mertz Peter, Freisleben Bernd; A Comparison of Memetic Algorithms, Tabu Search,
and Ant Colonies for the Quadratic Assignment Problem.

[17] Lin S., Kernighan B.W.; An Effective Heuristic Algorithm for the Traveling-Salesman
Problem.

SUMRIO
Resumo ............................................................................................................................................................................. 2
Abstract ............................................................................................................................................................................ 2
1. Introduo .................................................................................................................................................................. 3
1.1 Breve Histrico ...................................................................................................................................................... 5
1.2 Meta Heursticas .................................................................................................................................................... 6
1.3 Espao de Pesquisa .............................................................................................................................................. 6
2. Definio da Busca Tabu em termos gerais .................................................................................................. 6
3. Eficincia de Mtodos de Soluo Iterativos .............................................................................................. 11
3.1 Modelagem Eficiente ......................................................................................................................................... 11
3.2 Computao eficiente ........................................................................................................................................ 13
4. Uso eficiente de Memria ................................................................................................................................... 14
4.1 Listas Tabu Dinmicas ...................................................................................................................................... 14
4.2 Passagens por regies planas ........................................................................................................................ 15
4.3 Intensificao ........................................................................................................................................................ 15
4.4 Diversificao ....................................................................................................................................................... 15
4.5 Path Relinking ...................................................................................................................................................... 16
5. Exemplos ................................................................................................................................................................... 16
5.1 O problema de Colorao de Grafos ............................................................................................................ 18
5.2 Problemas de Escalonamento de Cursos .................................................................................................. 19
5.3 O Problema do Conjunto Independente Mximo................................................................................... 20
5.4 Formulao QAP .................................................................................................................................................. 21
6. Comparao com Outras Meta Heursticas ................................................................................................. 22
6.1 Recozimento Simulado X Busca Tabu ........................................................................................................ 23
6.2 Uma comparao de Algoritmos Mimticos, Busca Tabu e Colnia de Formigas para o QAP
............................................................................................................................................................................................ 23
7. Concluses ................................................................................................................................................................ 23
Referncias.................................................................................................................................................................... 25

You might also like