Você está na página 1de 20

MICHAEL ANDR GONALVES

BUSCA TABU

Vitria, 2010

MICHAEL ANDR GONALVES

BUSCA TABU

Trabalho apresentado para obteno de crditos na disciplina Otimizao Combinatria e Metaheuristicas no Mestrado em Informtica pela Universidade Federal do Esprito Santo

Professora D.Sc Maria Cristina Rangel

DEPARTAMENTO

DE INFORMTICA

Centro tecnolgico Universidade Federal do Esprito Santo

Vitria, 2010

RESUMO apresentado neste trabalho o algoritmo de Busca Tabu. No primeiro capitulo apresentado o algoritmo e suas principais caractersticas. Um exemplo pratico da implementao mostrado no segundo capitulo. No terceiro capitulo apresentado o estado da arte. Palavras-chave: metaheurstica, busca tabu, otimizao.

SUMRIO

1 BUSCA TABU............................................................................................................7 2 EXEMPLO DE BUSCA TABU PARA A K-RVORE MNIMA ..............................13 3 ESTADO DA ARTE..................................................................................................17 REFERNCIAS..........................................................................................................20

1 BUSCA TABU

1.1 Principais caractersticas

A busca Tabu (BT) um procedimento adaptativo que aceita movimentos de piora para escapar de timos locais. A aceitao dos movimentos baseada em uma estrutura de memria. De uma soluo inicial, um algoritmo BT explora a cada iterao um conjunto de vizinhos da soluo. O vizinho da soluo corrente com melhor avaliao se torna a nova soluo, mesmo que tenha uma menor avaliao. Na figura 1.1 a seguir apresenta um esboo da evoluo do processo de gerao de solues vizinhas. O melhor vizinho representado por S i* tomado a cada iterao como a soluo corrente.

Figura 1.1 Esquema de vizinhana para a Busca Tabu. Fonte: [3] Essa estratgia de tomar o melhor vizinho como a nova soluo utilizada para escapar de mnimos locais, porem pode fazer com que o algoritmo forme ciclos, ou seja, retorne a uma soluo j tomada anteriormente passando pelo mesmo caminho. Como por exemplo, na figura 1.1, se considerarmos que S*i a soluo corrente, a soluo da iterao anterior representada por S*i-1 tambm pertencer vizinhana da soluo atual, e desse modo caso seja a melhor soluo da vizinhana, ser tomada novamente como a soluo corrente. A palavra Tabu teve origem na ilha de Tonga da Polinsia, e de modo geral, significa que um comportamento ou assunto proibido ou sagrado. A caracterstica mais importante e

8 semelhante ao seu significado original vem do conceito que Tabus so concebidos de uma memria social de assuntos proibidos que esteja sujeita a modificao com o passar do tempo. Desse modo, para evitar a ocorrncia de ciclos, existe uma lista de movimentos proibidos, denominado lista Tabu. Na sua forma mais clssica contm os ltimos movimentos realizados em ruma fila de tamanho fixo, ao qual o primeiro elemento que entra, o ultimo que sai. Desse Assim, na busca tabu ficam excludos os vizinhos que esto na lista tabu, mesmo que estes sejam boas solues da vizinhana atual.

1.2 Uso da memria

A estrutura de memria da Lista Tabu tem como base quatro principais conceitos, formados por recncia, frequncia, qualidade e influncia.

1.2.1 Memria por recncia A memria de recncia tem como principal objetivo evitar ciclos, mantendo registrados por um determinado tempo os atributos dos caminhos tomados pelo algoritmo. E as solues que utilizam estes atributos so proibidas de serem modificadas em quanto estiverem na memria.

1.2.2 Memria por frequncia A memria de frequncia faz parte do mecanismo denominado memria de longa durao. Esse tipo de memria armazena a freqncia que determinadas caractersticas aparecem na soluo, auxiliando o algoritmo a evitar ou visitar caminhos que apresentem estas caractersticas.

1.2.3 Memria por qualidade A memria pode ser utilizada para identificar os elementos que so comuns a boas solues ou caminhos que conduzem a tais. A qualidade da soluo se torna uma base para a

9 aprendizagem baseada em incentivos, onde os incentivos so fornecidos para aes que levam a boas solues, enquanto aes que levam a solues ruins so penalizadas. O conceito de qualidade mais amplo do que o utilizado em mtodos de busca mais simples e a flexibilidade da estrutura de memria permite que a viabilidade de uma direo especfica seja determinada por mais de uma funo.

1.2.4 Memria por influncia A influncia considera o impacto das escolhas realizadas durante a busca, tanto na qualidade quanto na estrutura. Ou seja, esse tipo de memria leva como critrio o impacto que uma determinada caracterstica tem sobre uma soluo. importante lembrar que a qualidade pode ser considerada como uma forma especial de influncia.

1.3 Critrio de Aspirao

A Lista Tabu pode ocasionar a proibio de solues atraentes de serem visitadas. O critrio de Aspirao permite que solues sejam visitadas mesmo que sejam Tabu. A aspirao no seu modelo mais comum satisfeita se uma determinada soluo da vizinhana melhor do que todas as anteriores obtidas. importante lembrar que o critrio de aspirao no obriga selecionar uma soluo, mas simplesmente disponibiliza-os ou anula a penalidade atribuda.

1.4 Estratgia de Intensificao e diversificao

Dois componentes muito relevantes para a BT so as estratgias de diversificao e intensificao. Ambas as estratgias normalmente so utilizadas com o conceito de memria de longo prazo.

10 1.4.1 Intensificao A intensificao baseia-se na modificao de regras para incentivar solues com caractersticas historicamente boas. Essa modificao pode ser utilizada para retornar a regies atraentes fazendo uma busca mais profunda nesta regio. Um exemplo do uso da intensificao na BT a utilizao da memria de frequncia, onde, de tempos em tempos a fase de busca normal interrompida para dar inicio ao processo de intensificao. A idia congelar os componentes considerados atraentes (de maior frequncia) e modificar apenas os componentes restantes. Outra idia seria ao invs de congelar, aplicar uma penalidade proporcional a frequncia para modificar a componente da soluo.

1.4.2 Diversificao A diversificao estimula a gerar solues que se diferem das anteriores. Ela geralmente utilizada em determinadas situaes como, por exemplo, uma soluo no tem um vizinho que apresente melhoria, neste caso aplicada uma penalidade a esta soluo. Geralmente um nmero fixo de iteraes sem melhoria utilizada para ativar essa estratgia. Um exemplo de uso da diversificao impondo a penalizao aos atributos com alta frequncia ou incentivar os de baixa frequncia. Outra estratgia seria a diversificao por reiniciao, forando a incluso de atributos raramente utilizados na soluo corrente e reiniciar a busca, permitindo explorar novos espaos de busca.

1.5 Estratgia de lista de candidatos

Em alguns casos que a vizinhana muito espaa ou o apresenta alto custo na avaliao, uma lista de candidatos se torna essencial. A lista de candidatos utilizada para reduzir o numero de vizinhos durante cada iterao. Essa estratgia importante para dar equilbrio ao fator esforo computacional e qualidade das solues.

11 1.6 Perodo Tabu

O perodo Tabu o numero de iteraes que uma determinada soluo ou atributo permanece como Tabu. um elemento essencial para a eficincia da busca, pois, perodos muito curtos podem gerar ciclos, j os longos podem prejudicar a soluo. O perodo Tabu pode ser Esttico ou Dinmico. O perodo Esttico fixo durante toda a busca e todos os elementos permanecem na Lista Tabu pelo mesmo numero de iteraes. J o dinmico no tem um perodo constante, e cada elemento pode ter um perodo diferente durante a busca. Esses podem ser gerados de forma randmica ou sistemtica.

1.7 Critrio de parada

O critrio de parada da Busca Tabu, assim como em outras metaheuristicas, pode ser a partir de um numero fixo de iteraes, um numero fixo de iteraes sem melhoria da soluo, depois de uma quantidade de tempo da CPU ou quando alcanado um limite pr estabelecido de qualidade da soluo.

1.8 Algoritmo Busca Tabu

Um algoritmo na sua forma mais simples de BT pode ser representado em 6 passos de acordo com o pseudocdigo na figura 1.2.

Figura 1.2 pseudocdigo Busca Tabu

12 No passo 1 escolhido uma soluo inicial. Partindo dessa soluo inicial, no passo 2 so selecionados os elementos de sua vizinhana. Nessa seleo, so descartados os elementos Tabus, menos os que atendam ao critrio de Aspirao. Os elementos selecionados so avaliados, e em seguida no passo 3 escolhido o melhor elemento para tornar-se a soluo atual. A lista Tabu atualizada no passo 4 tomando como base as caractersticas da nova soluo. No passo 5 avaliado se o critrio de parada foi atendido, caso tenha sido atendido, avana para o passo 6 e retorna a melhor soluo encontrada, caso contrario, retorna ao passo 2.

13

2 EXEMPLO DE BUSCA TABU PARA A K-RVORE MNIMA

O problema da k-rvore mnima se baseia em uma arvore formada por k arestas em um grafo, em que a soma de seus pesos mnima. Um exemplo desse problema pode ser representado na figura 2.1 em um grafo de 12 vrtices ligados por arestas com peso. 26 17 4 8 7 6 20 23 16 16 16 8 7
1 0

2 1 1

5 18 6 6 20

1 2

9 9 24

16
1 1

25

15

Figura 2.1 Grafo com pesos Suponha que se queira uma arvore com 4 arestas de menor peso, ou seja, uma k-rvore mnima para k = 4. Uma soluo inicial pode ser obtida atravs de um mtodo guloso simples, onde escolhida a aresta com o menor peso, e em seguida escolhido outras arestas a sua borda com o mnimo de peso at que se obtenha k = 4. O resultado da soluo gulosa representado na figura 2.2 pelas linhas mais espaas. 26 17 4 8 7 6 20

2 1 1

5 18 6 6 20

23 16 16 16 8 7 9

1 2

9 24

16
1 1

25

15

9
1 0

Figura 2.2 Soluo inicial gulosa

14 A construo inicia com a escolha da aresta (1,2) que contem o menor peso do grafo. Aps essa seleo, so selecionados os candidatos de menor peso at que se complete a quantidade de 4 arestas. A soma dos pesos da soluo inicial utilizando este mtodo guloso tem o total de 40. Esta soluo inicial ser o parmetro de entrada para a simulao do algoritmo. A vizinhana da Busca Tabu ser definida pelos movimentos de adio e remoo de arestas da arvore que so possveis, sendo que, retirada a aresta de maior peso e includa outra de modo que no forme ciclos (desobedecendo a definio de arvore) e no desconecte a arvore. Ser utilizado a memria de curto prazo (memria por recncia) para a Lista Tabu. As arestas que forem adicionadas ficam 1 iterao na Lista Tabu enquanto as que forem removidas ficam 2, pois o problema apresenta muito mais arestas fora da arvore do que na arvore. [3] Utilizando a soluo inicial gulosa como entrada para a Busca Tabu os critrios citado anteriormente, os movimentos sero semelhantes aos da tabela 3.1 onde a lista Tabu 2 a aresta que falta 2 iteraes para sair da lista (no caso, a aresta que acabou de ser removida), enquanto a Lista Tabu 1 so as arestas que ficaro na lista por mais uma iterao (arestas recm adicionadas e aresta removida na iterao anterior). Iterao 1 1 2 3 (4,6) (6,8) (4,7) Lista Tabu 2 (4,7) (6,7) (4,6) (6,8) (8,9) (4,7) (6,7) (1,2) 47 57 63 Adicionar Remover Peso

Tabela 3.1 - Iteraes iniciais da BT Podemos observar na figura 3.2 a representao grfica das 3 primeira iteraes que apesar da adio de (4,7) e remoo de (6,7) ser a melhor vizinhana da iterao 1 ela no visitada, pois viola a lista tabu, onde a aresta (4,7) foi recm removida e s poder ser modificada novamente na iterao 4.

15

Figura 3.2 Representao grfica das iteraes iniciais da BT. Fonte adaptada de [3]. Dando prosseguimento ao algoritmo, na figura 3.3 est a representao grfica da iterao 3 at a iterao 10. As linhas pontilhadas representam arestas que foram removidas. O smbolo 1* e 2* representam respectivamente que a aresta tem 1 e 2 iteraes restantes na Lista Tabu. A linha mais espaa representa a aresta adicionada na iterao corrente. Pode ser observado que at a 3 iterao o algoritmo apresenta um aumento no peso, porem da 4 em diante o peso diminui, caindo em um mnimo local na quinta iterao e chegando a um Maximo global na 9 (considerando o critrio de parada em 10 iteraes).

16

Figura 3.3 Representao grfica das iteraes finais da BT. Fonte adaptada de [3].

17

3 ESTADO DA ARTE

3.1 A Parallel Tabu Search Algorithm Based on Partitioning Principle for TSPs

apresentado em [6] uma proposta de Busca Tabu paralela, ao qual foi aplicada ao problema do caixeiro viajante. O modelo apresentado tem a comunicao entre o processo mestre e os processos escravos de forma assncrona. No inicio do algoritmo o processo mestre desenvolve uma soluo inicial por um mtodo guloso. A partir da soluo inicial o mestre divide em solues reduzidas para os escravos ao qual, cada um trabalha em uma rea diferenciada de cidades. Quando um escravo termina a tarefa, envia para o mestre e recebe outra tarefa da fila. Neste trabalho tambm foram implementados mtodos de intensificao e diversificao para os processos escravos. A quantidade de processos que usa a intensificao ou a diversificao de tamanho dinmico. Na figura 3.1 apresentado um resultado comparando com duas propostas para o caixeiro viajante, sendo um o algoritmo gentico com propostas de novos operadores de crossover, e outro a implementao de busca local paralela. Em ambos os casos a Busca Tabu paralela proposta foi mais eficaz.

3.1 Comparao do TSP com outros algoritmos paralelos. Fonte: [6]

18 3.2 Selecting survivors in genetic algorithm using tabu search strategies

No artigo [7] proposto uma implementao hibrida entre o Algoritmo Gentico e o mtodo de Busca Tabu denominada TGA2, ao qual a busca tabu aplicada na etapa de seleo de sobreviventes para crossover da prxima iterao. De acordo com o fluxograma na figura 3.2.

Figura 3.2 Algoritmo TGA2. Fonte: [7] O algoritmo parte do principio em que genes muito prximos podem ser prejudiciais a sade e ocasionar cromossomos ruins, gerando filhos que no esto aptos a sobreviver. Dessa forma o TGA2 possui no final do cromossomo dos indivduos uma identificao da famlia do cromossomo e as famlias que so Tabu para o cruzamento. Na figura 3.3 representado o cromossomo do Algoritmo TGA2.

19

Figura 3.3 Representao do cdigo binrio do gene do algoritmo TGA2

REFERNCIAS

[1] Glover, F. (1986) Future paths for integer programming and links to artificial intelligence, Computers & Operations Research, Vol. 13, pp. 533-549. [2] Hansen, P. The steepest ascent mildest descent heuristic for combinatorial programming, Congress on Numerical Methods in Combinatorial Optimization, Capri, Italy, 1986. [3] Glover, F. and M. Laguna (1997). Tabu Search, Kluwer Academic Publishers, Boston. [4] VIANA, V. Meta-heursticas e Combinatria. Fortaleza: EUFC,1998. Programao Paralela em Otimizao

[5] MANSANO, Elisngela Menegasso. Algoritmos Busca Tabu Paralelos Aplicados ao Planejamento da Expanso da Transmisso de Energia Eltrica. 2008. 128 f. Dissertao (Mestrado em Engenharia Eltrica - Automao) - Faculdade de Engenharia, Universidade Estadual Paulista, Ilha Solteira, 2008. [6] Y. He, G. Liu, and Y. Qiu, A parallel tabu search algorithm based on partitioning principles for tsps, IJCSNS Journal of Computer Science and Network Security, vol. 6, no. 8A, 2006. [7] TING, Chuan-Kang; KO, Cheng-Feng; HUANG, Chih-Hui. Selecting survivors in genetic algorithm using tabu search. strategies Memetic Computing. p. 191-203, 2009.