Você está na página 1de 29

BUSCA

TABU
Parte I

Busca Tabu

BT guia a busca local utilizando uma estrutura de


memria com aceitao de movimentos que no so
de melhora.
Usa a memria para:

Prevenir ciclos (isto , evitar visitar solues j visitadas);

Explorar regies no visitadas do espao de busca;

Melhorar, atravs de experincias passadas, processo de


tomada de deciso.

Componentes da Busca Tabu

Vizinhana;

Movimentos;

Memria de Curto Prazo;

Critrios de Aspirao;

Memria de Longo Prazo.

Origem
BT foi primeiramente sugerido por:
Glover, F. (1986) Future paths for integer programming and
links to artificial intelligence, Computers & Operations
Research, Vol. 13, pp. 533-549.

As idias bsicas de BT tambm foram sugeridas por:


Hansen, P. The steepest ascent mildest descent heuristic for
combinatorial programming, Congress on Numerical Methods
in Combinatorial Optimization, Capri, Italy, 1986.

Memria de Curto Prazo (1/2)


A principal meta evitar:
reverter o movimento
ciclos.

Lista tabu: registra o histrico das t mais recentes


solues visitadas.

Em geral, registrado apenas alguns atributos das


solues j visitadas em vez da soluo completa
( mais barato).

Memria de Curto Prazo (2/2)

A lista tabu possui um tamanho t denominado de


perodo tabu (do ingls, tabu tenure).
A lista circular: quando um novo atributo entra na
lista, o mais antigo sai.

Solues que possuem atributos na


lista tabu so proibidas de serem visitadas.

Lista tabu para o problema da mochila


EXEMPLO
a)Suponha que a varivel sj mudou de 0 para 1;
b)Ento, o valor sj = 0 torna-se um atributo tabu
porque pertenceu a uma soluo j visitada;
c)A lista tabu contm todos os atributos tabu e
proibir movimentos que mudem sj de 1 para 0.

A lista tabu evita que solues j visitadas sejam


novamente visitadas.

Critrios de Aspirao

Note que a lista tabu pode proibir solues atraentes


de serem visitadas.

Critrios de aspirao permitem que


solues sejam visitadas mesmo que
elas sejam tabu.

Critrios de Aspirao

Aspirao por objetivo:

a aspirao satisfeita se o movimento leva a uma


soluo melhor do todas as outras que j foram obtidas.

Outros tipos de aspirao:

Por default

Por direo de busca

Por influncia

Conceito de Intensificao

Seu objetivo concentrar a busca em regies


promissoras do espao de busca.
Estratgias de intensificao modificam as
regras de escolha para encorajar combinaes ou
caractersticas historicamente boas.

Conceito de Diversificao

Seu objetivo dirigir a busca para novas regies


do espao de busca.
Estratgias de diversificao encorajam a busca
a examinar solues que diferem substancialmente
das solues j visitadas.

Algoritmo Busca Tabu


Passo 1. Selecione uma soluo inicial s S. Faa s* = s.
Passo 2. Gere um subconjunto V N(s) tal que cada
elemento de V no Tabu ou satisfaz o critrio
de aspirao.
Passo 3. Escolha a melhor soluo v V
Passo 4. Se v melhor que s* ento faa s* = v
Passo 5. Faa s = v
Passo 6. Atualize a Lista Tabu.
Passo 7. Se o critrio de parada for satisfeito v ao
passo 8, caso contrrio v ao passo 2.
Passo 8. Retorne s*

O problema das n-rainhas


A meta colocar n rainhas em um tabuleiro n x n
de modo que nenhuma ataque a outra.
1
1
2
3
4

Uma soluo para o problema


das 8-rainhas

Representao
O problema das n-rainhas ser tratado como um
problema de permutao;
A rainha i esta na linha i e na colunai;
Uma soluo representada por uma permutao

1 2 3 4
Exemplo

1
2
3
4

A Estrutura da Vizinhana
Operador do movimento:
troca da rainha 2 pela 6
4 5 3 6 7 1 2

4 1 3 6 7 5 2

A Estrutura da Vizinhana

(1,3,2,4)
(1,2,4,3)
(2,1,3,4)

(3,2,1,4)
(1,2,3,4)

(1,4,3,2)
(4,2,3,1)

O operador define uma vizinhana


com 6 vizinhos para o problema das
4-rainhas.

A estrutura da lista tabu


Todos os movimentos realizados sero classificados
como tabu durante trs iteraes.
1 2 3 4 5 6 7
1

Cada clula armazena


a ltima iterao em que um 2
3
atributo ainda tabu.

*
4
5
6
7

1 2 3 4 5 6 7

Iterao 0

1
2
3

soluo corrente

4 5 3 6 7 1 2

5
6

2 3 4 5 6 7
1
2
3
estrutura
tabu

4
5
6

7
troca

valor

1 7

-2

2 4

-2

2 6

-2

5 6

-2

1 5

No. colises = 4
Os 5 melhores
dos 21
candidatos

1 2 3 4 5 6 7

Iterao 1

1
2
3

soluo corrente

2 5 3 6 7 1 4

5
6

2 3 4 5 6 7
1

4
2
3

estrutura
tabu

4
5
6

7
troca

valor

2 4

-1

1 6

2 5

1 2

1 3

No. colises = 2
Os 5 melhores
candidatos

1 2 3 4 5 6 7

Iterao 2

1
2
3

soluo corrente

2 6 3 5 7 1 4

5
6

2 3 4 5 6 7
1

4
2

5
3

estrutura
tabu

4
5
6

7
troca

valor

No. colises = 1

1 3

1 7

1 Tabu

2 4

1 Tabu

4 5

6 7

Os 5 melhores
candidatos

1 2 3 4 5 6 7

Iterao 3

1
2
3

soluo corrente

3 6 2 5 7 1 4

5
6

2 3 4 5 6 7
1

6
2

4
5

3
estrutura
tabu

4
5
6

7
troca

valor

No. colises = 1

1 3

0 Tabu

1 7

0 Tabu

5 7

6 7

1 2

Os 5 melhores
candidatos

1 2 3 4 5 6 7

Iterao 4

1
2
3

soluo corrente

3 6 2 5 4 1 7

5
6

2 3 4 5 6 7
1

6
2

4
5

3
estrutura
tabu

4
5

7
6

7
troca

valor

4 7

-1

5 7

-1 Tabu

1 5

2 5

2 4

2 Tabu

No. colises = 2

Os 5 melhores
candidatos

1 2 3 4 5 6 7

Iterao 5

1
2
3

soluo corrente

3 6 2 7 4 1 5

5
6

2 3 4 5 6 7
1

6
2

troca

valor

1 3

-1

5 6

-1

5 7

0 Tabu

1 6

1 7

5
3

estrutura
tabu

4
5
6

7
No. colises = 1

* Tabu

Satisfaz o
critrio de
aspirao

Iterao 6

1 2 3 4 5 6 7
1
2
3

soluo final
2 6 3 7 4 1 5

4
5
6
7

Fim da busca

No. colises = 0

Memria baseada na freqncia (1/4)

um tipo de memria de longo prazo.


Usada para Implementar estratgias de
diversificao ou intensificao.

Memria baseada na freqncia (2/4)

Exemplo de estratgia de diversificao para o


problema das n-rainhas:

Armazena-se a freqncia de trocas rainhas.


A informao da freqncia penalizar troca de rainhas
com grande freqncia de troca.
Neste exemplo, sua aplicao ser restrita apenas a
movimentos sem melhora.

Memria baseada na frequncia (3/4)


Soluo
1

Iterao 26

troca
1

29

2
3

28
27
4
2
4

valor
valor penalizado

1 Tabu

A matriz triangular Inferior


armazena a frequncia de trocas
de rainhas.

ValorMovimento' = ValorMovimento + Freq(i,j)

Memria baseada na frequncia (4/4)

tambm usada para intensificar a busca em uma


regio promissora do espao de busca.
Exemplo:
Registre os atributos das melhores solues
encontradas;
Calcule a frequncia dos atributos das solues de elite;
Incentive movimentos com atributos de alta freqncia.

Você também pode gostar