Você está na página 1de 32

Busca Tabu

Meta - heursticas
Prof. Aurora

Tabu Search
Fred Glover e Pierre Hansen.
um mtodo de busca local
explorar o espao de solues
movendo-se de uma soluo para
outra que seja seu melhor vizinho.
uma estrutura de memria para
armazenar as solues geradas
Ou caractersticas destas

Algoritmo BT
Comeando com uma soluo inicial
s0, a cada iterao,
Um subconjunto V da vizinhana
N(s) da soluo corrente s
explorado
O membro s0 de V com melhor valor
nesta regio segundo a funo f(:)
torna-se a nova soluo corrente
mesmo que s0 seja pior que s.

Evitando Ciclos
existe uma lista tabu T, a qual uma lista de
movimentos proibidos.
A lista tabu clssica contm os movimentos
reversos aos ltimos |T| movimentos realizados
|T| funciona como uma fila de tamanho fixo,
isto , quando um novo movimento adicionado lista,
o mais antigo sai.

Assim, na explorao do subconjunto V da


vizinhana N(s) da soluo corrente s, ficam
excludos da busca os vizinhos s0 que so obtidos
de s por movimentos m que constam na lista
tabu

Funo de Aspirao
A lista tabu
por um lado, reduz o risco de ciclagem
por outro, tambm pode proibir
movimentos para solues que ainda
no foram visitadas

Funo de aspirao um
mecanismo que retira, sob certas
circunstncias,
o status tabu de um movimento.

Aspirao por Objetivo


Mais precisamente, para cada possvel valor v da
funo objetivo existe um nvel de aspirao A(v):
uma soluo s0 em V pode ser gerada se f(s0) <
A(f(s)), mesmo que o movimento m esteja na lista
tabu.
A funo de aspirao A tal que,
para cada valor v da funo objetivo, retorna outro
valor A(v) que representa o valor que o algoritmo
aspira ao chegar de v.
Um exemplo simples de aplicao desta idia
considerar A(f(s)) = f(s*) onde s* a melhor soluo
encontrada at ento.
Neste caso, aceita-se um movimento tabu somente se
ele conduzir a um vizinho melhor que s*. Esta a
chamada aspirao por objetivo.

Critrio de Parada
Duas regras so normalmente utilizadas de forma
a interromper o procedimento.
Pela primeira, pra-se quando atingido um
certo nmero mximo de iteraes sem melhora
no valor da melhor soluo.
Pela segunda, quando o valor da melhor soluo
chega a um limite inferior conhecido (ou prximo
dele).
Esse segundo critrio evita a execuo
desnecessria do algoritmo quando uma soluo
tima encontrada ou quando uma soluo
julgada suficientemente boa.

Parmetros Principais
a cardinalidade |T| da lista tabu,
a funo de aspirao A,
a cardinalidade do conjunto V de
solues vizinhas testadas em cada
iterao e
BTmax, o nmero mximo de
iteraes sem melhora no valor da
melhor soluo.

Estratgias de Intensificao
Uma estratgia tpica retornar uma
soluo j visitada para explorar sua
vizinhana de forma mais efetiva.
Outra estratgia consiste em incorporar

atributos das melhores solues j encontradas


estimular componentes destas solues a
tornar parte da soluo corrente.

Um critrio de trmino

tal como um nmero fixo de iteraes,


utilizado para encerrar o perodo de
intensificao.

Busca Tabu
Fred Glover (1986) & Pierre Hansen (1986)

1 Idia: Utilizar heurstica de


descida

1 Idia: Utilizar heurstica de


descida

1 Idia: Utilizar heurstica de


descida

Problema: Fica-se preso no primeiro timo local

2 Idia: Mover para o melhor


vizinho

O melhor vizinho pode ser de piora!

2 Idia: Mover para o melhor


vizinho

Problema: Ciclagem

3 Idia: Criar Lista Tabu

TABU

3 Idia: Criar Lista Tabu

Problemas com uma Lista Tabu de


solues.
computacionalmente invivel armazenar todas
as solues geradas!
Idia: Armazenar apenas as ltimas |T| solues
geradas
Observao: Uma lista com as |T| ltimas solues evita
ciclos de at |T| iteraes
Problema: Pode ser invivel armazenar |T| solues e
testar se uma soluo est ou no na Lista Tabu
Idia: Criar uma Lista Tabu de movimentos reversos

Problema: Uma Lista Tabu de movimentos pode


ser muito restritiva (impede o retorno a uma soluo

j gerada anteriormente e tambm a outras solues ainda


no geradas).

de movimentos pode ser


restritiva
H\
S
1

2
3
4

C
B

H\
S
1

s0

s1

T = {}

T={<4,3,1>}

Movimento = <Horrio de incio, Sala antiga, Sala nova>

de movimentos pode ser


restritiva
H\
S
1
2
3
4

1
A
D
D

C
C

s2
T = {<4,3,1>,
<2,1,3>}

H\
S
1
2
3
4

A
D
D
B

C
C

s3

Fazendo-se o movimento tabu <4,3,1> geramos s3 s0

4 Idia: Critrio de Aspirao


Retirar o status tabu de um
movimento sob determinadas
circunstncias
Exemplo: aceitar um movimento,
mesmo que tabu, se ele melhorar o
valor da funo objetivo global
(Critrio de aspirao por objetivo)

Busca Tabu aplicada ao


Problema da Mochila
Seja uma mochila de capacidade b = 23

Representao de uma soluo: s =


(s1,s2,...,s5), onde sj {0,1}
Movimento m = troca no valor de um bit
Lista tabu = {<posio do bit alterado>}
|T| = 1; BTmax = 1; Aspirao por objetivo.

Busca Tabu aplicada ao


Problema da Mochila
Funo de avaliao:

Busca Tabu aplicada ao


Problema da Mochila

Busca Tabu aplicada ao


Problema da Mochila

Busca Tabu aplicada ao


Problema da Mochila

Busca Tabu aplicada ao


Problema da Mochila

Busca Tabu aplicada ao


Problema da Mochila

Mtodo de Subida aplicado ao


Problema da Mochila

Mtodo de Subida aplicado ao


Problema da Mochila

Prescries especiais para a


Busca Tabu
Lista tabu dinmica:
Tamanho varivel no intervalo [tmin, tmax]
Tamanho deve ser mudado periodicamente (p.ex., a
cada 2tmax iteraes)
Objetivo: Se h ciclagem com um determinado
tamanho, mudando-se o tamanho, muda-se a
quantidade de movimentos tabu e possivelmente a
seqncia de solues geradas e conseqentemente,
diminui-se a probabilidade de ciclagem

Passagem por regies planas


Aumentar o tamanho da lista enquanto estiver na regio
plana
Retornar ao tamanho original quando houver mudana
no valor da funo de avaliao