You are on page 1of 5

BUSCA TABU

A Busca Tabu (BT) foi proposta por Glover e Hansen em 1986, e logo
tornou-se uma das mais robustas e usadas metaheurísticas para a resolução de
problemas combinatórias. Ela é uma metaheurística de busca local que permite
evitar o retorno a soluções já visitadas através da aceitação de movimentos de
piora e do auxílio de uma estrutura de memória.

Partindo de uma solução inicial s, a BT avalia uma vizinhança N(s) de


maneira a encontrar a melhor solução s’ dentro dela, que será o novo valor de s
mesmo que isto signifique uma piora na solução. Sendo assim, a procura
continua repetindo este processo. A maneira encontrada para evitar que este
processo caia em um ciclo e fique preso a um ótimo local é a utilização de uma
estrutura de memória que proíbe movimentos já realizados.

Essa estrutura de memória, conhecida como Lista Tabu, armazena


movimentos realizados no processo de busca, guiando a procura de forma
adaptativa. Ou seja, movimentos já realizados são proibidos de serem repetidos
durante o tempo ou número de iterações, conhecido como tempo tabu. A lógica
é: se um movimento que levou a uma boa solução for realizado novamente, ele
provavelmente levará a busca a mesma solução ou a soluções próximas dela.
Sendo assim, este movimento é tornado tabu, não podendo ser realizado, o que
leva a busca a novos movimentos, que diversificam o tipo de solução encontrada.

O controle sobre o tempo tabu ou o tamanho da lista tabu é uma parte


essencial nesta metaheurística, dado que uma lista tabu muito grande evita que
a busca realize ciclos, mas pode restringir demais a busca, pois, ao tornar tabu
um grande número de movimentos, o procedimento termina de forma prematura
por não existir movimentos factíveis a realizar. Por outro lado, uma lista tabu
muito pequena aumenta as chances do processo ciclar, pois reduz o número de
iterações em que o movimento é proibido de ser realizado (FRAGA, 2006).

Ainda, é possível que um mesmo movimento leve a soluções diferentes.


Sendo assim, a fim de evitar a perda de uma solução devido a proibição da lista
tabu utiliza-se uma função de aspiração que pode tornar possível um movimento
presente na lista, desde que este leve a uma solução desconhecida e com bons
atributos. O critério mais utilizado neste caso é de que o movimento é aceito
desde que leve a uma solução melhor do que a melhor solução encontrada até
o momento.

A Figura () apresenta o procedimento da Busca Tabu.

Figura 1. Pseudo-código da metaheurística Busca Tabu. Fonte: Fraga (2006).

A Busca Tabu pode ser utilizada em diversos problemas de otimização,


como por exemplo na alocação de aulas a salas em uma universidade, a
Problemas de Roteamento de Veículos com Janela de Tempo, na definição da
topologia de redes elétricas, entre outros.

ITERATED LOCAL SEARCH

Iterated Local Search (ILS) é um algoritmo heurístico proposto por


Lourenço et al (2002), que busca melhorar um procedimento de busca local
baseando-se na ideia de que isto pode acontecer ao gerar-se novas soluções de
partida por meio de perturbações em uma solução ótima local. Essas
perturbações permitem que a busca local explore diferentes soluções e evitar um
reinício aleatório.
A metaheurística ILS possui quatro componentes principais: o processo
de geração da solução inicial, o método de busca local, o método de perturbação
e o critério de aceitação de uma nova solução.

A geração de uma solução inicial é o primeiro passo. Ela pode ser criada
de forma aleatória ou construída a partir de uma heurística rápida, como a
heurística construtiva gulosa. De modo geral, a utilização de uma heurística
gulosa adequada tem como vantagem retornar soluções iniciais de melhor
qualidade do que a geração aleatória (STÜTZLE, 1998) e é recomendada por
Lourenço et al. (2002). Os benefícios da geração da solução inicial tendem a
diminuir a medida que o tempo de execução da ILS aumenta. Por outro lado,
uma constante melhora na solução com um aumento de tempo de execução
pode ser um indicativo de que os métodos de perturbação e aceitação utilizados
não são adequados para o problema.

Ao atingir um mínimo local s*, a ILS aplica uma perturbação em s* obtendo


uma nova solução s’. Em seguida, uma nova busca local é realizada a partir de
s’, escapando da região que conduziria ao mesmo mínimo local e encontrando
um novo mínimo local s*’. A escolha de um método de perturbação adequado é
importante para o funcionamento da ILS, uma vez que uma perturbação pequena
restringe a nova busca a mesma região, recaindo sobre o mesmo ótimo local e,
por sua vez, uma perturbação muito grande fará com que ela se comporte como
uma busca local com reinício aleatório. A intensidade da perturbação está
relacionada à quantidade de componentes da solução que são modificados,
podendo ser fixa ou variar durante a execução da meta-heurística. Por exemplo,
pode ser interessante aumentar a intensidade caso a busca fique restrita a uma
mesma região por diversas iterações.

O critério de aceitação determina se a solução s*’ será aceita como nova


solução corrente e pode ser definido de várias maneiras. Pode-se aceitar uma
nova solução apenas se esta apresentar melhoria em relação a solução corrente,
dado preferência a intensificação ou sempre aceitar a solução s*’, favorecendo
a diversificação. Pode-se ainda variar o critério de aceitação, com uma ideia
similar ao Simulated Annealing, onde uma solução que não é melhor do que a
corrente é aceita com uma probabilidade, que decai durante a execução do
algoritmo.
A estrutura geral da ILS é mostrada na Figura ().

Figura 2. Pseudo-código da metaheurística ILS. Fonte: Pinto (2014).

A ILS é uma heurística versátil que pode ser utilizada, por exemplo, em
problemas de Single and Parallel Machine Scheduling (Programação de
Máquinas única e paralela), problemas de programação de fluxo de compra, em
Graph bipartitioning. Em Santana (2016) a ILS é utilizada para a resolução de
um Problema de Alocação de Corredor e em Pinto (2014) é utilizada para o
problema de Clusterização de Módulos de Software.
REFERÊNCIAS

BARBOSA, Marco A.; DELBEM, Alexandre C. B. Uma busca local iterada para
o problema da árvore geradora mínima sob restrições de conflitos. XLIX
Simpósio Brasileiro de Pesquisa Operacional – Blumenau, 2017.
COSTA, Felippe P. Programação de Horários em Escolas via GRASP e
Busca Tabu. Monografia de graduação em Engenharia de Produção.
Universidade Federal de Ouro Preto, 2003.
FRAGA, Marcelo C. P. Uma metodologia híbrida colônia de formigas –
busca tabu - reconexão por caminhos para resolução do problema de
roteamento de veículos com janelas de tempo. Dissertação de Mestrado em
Modelagem Matemática e Computacional. Centro Federal de Educação
Tecnológico de Minas Gerais, 2006.
GOMES, André. Uma introdução à Busca Tabu. Departamento de Ciência da
Computação, Instituto de Matemática e Estatística da Universidade de São
Paulo. São Paulo, 2009.
KAMPKE, Edmar H.; ARROYO, José Elias. Busca local iterativa para resolver
o problema de programação de tarefas em máquinas paralelas com setup
times dependentes da sequência e de recursos. XXIX Encontro Nacional de
Engenharia de Produção. Salvador, 2009.
LOURENÇO, H. R.; MARTIN, O. C.; STÜTZLE, T. Iterated local search.
Handbook of Metaheuristics. International Series in Operations Research and
Management Science, v. 57, pp. 321–353, 2002.
OLIVEIRA, Eduardo M.; AMARAL, André R. S. Desenvolvimento de um
algoritmo de busca local iterada para o problema Dial-a-Ride. Universidade
Federal do Espírito Santo. Vitória, 2015.
PINTO, Alexandre F. Uma heurística baseada em busca local iterada para o
problema de clusterização de módulos de software. Dissertação de Mestrado
em Informática da Universidade Federal do Estado do Rio de Janeiro. Rio de
Janeiro, 2014.
POLI, Guilherme I.; PUREZA, Vitória. Um algoritmo de busca tabu para
carregamento de contêineres com caixas idênticas. Departamento de
Engenharia de Produção da Universidade Federal de São Carlos. São Carlos,
2012.
SANTANA, Charles A. Uma heurística baseada na busca local iterada para o
problema de alocação de corredor. XLVII Simpósio Brasileiro de Pesquisa
Operacional. Vitória, 2016.
STÜTZLE, T. Applying iterated local search to the permutation flow shop
problem. Technical Report AIDA–98–04, FG Intellektik, TU Darmstadt. 1998.

You might also like