busca tabu

Download Busca Tabu

Post on 24-Feb-2016

40 views

Category:

Documents

0 download

Embed Size (px)

DESCRIPTION

Meta - heurísticas Prof. Aurora. Busca Tabu. Tabu Search. Fred Glover e Pierre Hansen, 1986 . é um método de busca local explorar o espaço de soluções movendo-se de uma solução para outra que seja seu melhor vizinho. uma estrutura de memória para armazenar as soluções geradas - PowerPoint PPT Presentation

TRANSCRIPT

Simulated Annealing

Busca TabuMeta - heursticasProf. Aurora1Tabu SearchFred Glover e Pierre Hansen, 1986. um mtodo de busca localexplorar 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

2Algoritmo BTComeando com uma soluo inicial s0, a cada iterao,Um subconjunto V da vizinhana N(s) da soluo corrente s exploradoO 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 Ciclosexiste 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 AspiraoA lista tabupor um lado, reduz o risco de ciclagem por outro, tambm pode proibir movimentos para solues que ainda no foram visitadasFuno de aspirao um mecanismo que retira, sob certas circunstncias, o status tabu de um movimento.

Aspirao por ObjetivoMais 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 ParadaDuas 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 Principaisa 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 IntensificaoUma 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 trminotal como um nmero fixo de iteraes, utilizado para encerrar o perodo de intensificao.

Busca TabuFred Glover (1986) & Pierre Hansen (1986)1 Idia: Utilizar heurstica de descida1 Idia: Utilizar heurstica de descida1 Idia: Utilizar heurstica de descidaProblema: Fica-se preso no primeiro timo local2 Idia: Mover para o melhor vizinhoO melhor vizinho pode ser de piora!2 Idia: Mover para o melhor vizinhoProblema: Ciclagem3 Idia: Criar Lista TabuTABU3 Idia: Criar Lista TabuProblemas com uma Lista Tabu de solues. computacionalmente invivel armazenar todas as solues geradas!Idia: Armazenar apenas as ltimas |T| solues geradasObservao: Uma lista com as |T| ltimas solues evita ciclos de at |T| iteraesProblema: Pode ser invivel armazenar |T| solues e testar se uma soluo est ou no na Lista TabuIdia: Criar uma Lista Tabu de movimentos reversosProblema: 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).Exemplo de que uma Lista Tabu de movimentos pode ser restritivaH\S123H\S1231A1A2D2D3CD3CD4BC4CBs0s1T = {}T={}Movimento = Exemplo de que uma Lista Tabu de movimentos pode ser restritivaH\S123H\S1231A1A2D2D3DC3DC4CB4BCs2s3T = {, {, }Fazendo-se o movimento tabu geramos s3 s04 Idia: Critrio de AspiraoRetirar o status tabu de um movimento sob determinadas circunstnciasExemplo: aceitar um movimento, mesmo que tabu, se ele melhorar o valor da funo objetivo global (Critrio de aspirao por objetivo)Busca Tabu aplicada aoProblema da MochilaSeja 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 bitLista tabu = {}|T| = 1; BTmax = 1; Aspirao por objetivo.Busca Tabu aplicada aoProblema da Mochila

Funo de avaliao:

Busca Tabu aplicada aoProblema da Mochila

Busca Tabu aplicada aoProblema da Mochila

Busca Tabu aplicada aoProblema da Mochila

Busca Tabu aplicada aoProblema da Mochila

Busca Tabu aplicada aoProblema da Mochila

Mtodo de Subida aplicado aoProblema da Mochila

Mtodo de Subida aplicado aoProblema da Mochila

Prescries especiais para a Busca TabuLista 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 ciclagemPassagem por regies planasAumentar o tamanho da lista enquanto estiver na regio planaRetornar ao tamanho original quando houver mudana no valor da funo de avaliao

Restries tabuO Tempo_tabu pode no ser fixo (varia em uma unidade para mais ou para menos, sempre que no houver melhoria na soluo corrente durante, por exemplo, 20% do nmero total de iteraes do algoritmo);Testes empricos mostraram que, quando diferentes valores para Tempo_tabu forem determinados de forma aleatria, a eficincia da heurstica BTpMcap aumenta; Tempo tabu aleatrio (TTA)A cada iterao, um nmero aleatrio escolhido dentro do intervalo especificado por Tmn e Tmx e atribudo ao elemento tabu que acaba de entrar na lista.

Tempo TabuTempo tabu varivel (TTV)Se no ocorrer melhora na funo objetivo durante o tempo de T iteraes: T = Tempo Tabu Corrente = todos os elementos que esto na lista tabu so liberados de seu estado tabu;A lista tabu zerada e seu tamanho modificado para um valor escolhido dentro do intervalo especificado por Tmn e Tmx.

Diversificao e memria de longo prazoA diversificao utilizada para evitar timos locais e ativada pela chamada memria de longo prazo;A memria de longo prazo uma lista que armazena a frequncia (nmero de vezes) que cada movimento foi realizado. Esta freqncia representada por Freq(vi). utilizada uma funo de penalizao denotada por , onde: (vi) = k.Freq(vi)k uma constante arbitrriaTamanho de lista varivel O tamanho da lista tabu varivel e limitado a dois parmetros (stm_lo e stm_hi). Ao obter-se uma nova soluo, se esta apresentar melhora em relao ltima, devemos diminuir o tamanho da lista (para intensificar a busca). Caso contrrio, devemos aumentar o tamanho da lista numa tentativa de buscar outras regies.

DiversificaoUma estratgia adotada para estimular a diversificao de solues, utiliza um mecanismo de gerador de histricos. Trata-se de armazenar numa lista LIFO (last in, first out) solues que ao serem encontradas representavam as melhores solues at aquele momento. Se aps um nmero determinado de movimentos no houver melhora na melhor soluo, a ltima soluo inserida na pilha recuperada e a lista tabu zerada.

Estratgia de anti-ciclagem Para evitar ciclagem, so armazenados algumas caractersticas encontrados em solues. A cada nova soluo verificado se a seqncia j foi encontradaCaso sim, aumenta-se o stm_lo em 1. Se stm_lo for = stm_hi, ento a mesma estratgia (acima) de diversificao adotada.