O documento descreve a técnica de busca tabu, incluindo seu funcionamento, conceitos básicos e aplicação ao problema das n-rainhas. A busca tabu é uma metaheurística que melhora a busca local evitando movimentos repetidos através de uma lista tabu de soluções já visitadas.
2. Roteiro
Algoritmos de busca Funcionamento
Heurísticas Código
Metaheurísticas Problema das n-Rainhas
Busca local Execução do TSM
Busca tabu
Conceitos básicos
3. Algoritmos de busca
Dois tipos
Força bruta
Heurística
Vantagens e desvantagens
Busca em listas
Busca em árvores
Busca em grafos
4. Heurísticas em algoritmos
de buscas
As heurísticas são funções usadas como alternativas
em algoritmos de busca
Visam diminuir o tempo computacional de uma busca
Nem sempre apresentam uma solução ótima
O trabalho de escolher uma heurística adequada para
um problema geralmente é feito pela IA
5. Tipos de heurísticas
Heurística de construção: uma ou mais soluções são
construídas elemento a elemento, baseando-se em
critérios até que se encontre a solução
Heurísticas de busca em vizinhança: parte de uma
solução possível e tenta melhorar a mesma através de
trocas, remoções ou inserções, até que seja atingido
algum critério (geralmente uma solução ideal)
Heurísticas sistemáticas: a árvore de espaço de
soluções é percorrida sob critérios de ramificação e
corte da mesma
6. Tipos de heurísticas
Heurísticas híbridas: resulta da combinação de uma ou
mais heurísticas, de tipos diferentes
Metaheurísticas: o tipo mais sofisticado, consiste de
uma heurística simples que é analisada por um
procedimento que explora o problema e seu espaço
de soluções
7. Exemplos de uso de
heurísticas
Busca de melhor caminho em um grafo
Busca de virus
Desktops semânticos
8. Metaheurística
Geralmente utilizada quando não se conhece um
algoritmo eficiente para resolver o problema
São usadas para melhorar os resultados obtidos por
funções heurísticas
“Evoluem” com o tempo, aprendendo sobre o que foi
feito anteriormente de maneira a melhorar as próximas
soluções
Termo cunhado por Fred Glover, em 1986
9. Busca local
É também considerada uma metaheurística
Busca uma solução ótima dentro de um conjunto de
soluções possíveis (o espaço de busca)
Parte de uma solução candidata inicial para a uma
solução vizinha, i.e. vértices vizinhos em um grafo
Geralmente, cada solução candidata tem mais de uma
solução vizinha. A escolha de qual será a próxima deve
ser feita tomando em consideração apenas a
vizinhança da solução candidata atual, por isso é
chamada de busca local
10. Busca local
É iterativa, métodos para encerrar a busca podem
involver o tempo de execução ou um certo número de
iterações sem apresentar melhora na solução
Considerada um algortimo de busca incompleto uma
vez que pode encerrar sem ter encontrado uma
solução ótima
Na prática é pouco provável que a solução encontrada
em pouco tempo seja próxima da ótima, por isso
foram feitas várias tentativas de melhorar o algortimo,
resultando por exemplo na busca tabu
11. Busca tabu
Um algoritmo de busca baseado em metaheurística
Um método de otimização matemática, da classe dos
métodos de pesquisa local
Melhora os métodos de pesquisa local usando
estruturas de memória
12. Busca tabu
Muito usada nas telecomunicações e em otimização
de trajetórias
Estudada principalmente no ramo da IA
Surgiu na década de 70
Fred Glover formalizou sua estrutura também em 1986
13. Busca tabu
É uma estratégia para resolver problemas de
otimização combinatorial as quais a aplicação abrange
da teoria de grafos e conjuntos de matróides à
problemas de programação linear gerais, puros e
mistos. É um procedimento adaptativo com a
habilidade de fazer uso de muitos outros métodos,
como algoritmos de programação linear e heurísticas
especializadas, que são dirigidas para superar as
limitações da otimização local. (Glover, 1988)
14. Conceitos básicos
Solução Vizinhança
Inicial Original
Corrente Modificada (reduzida
ou espandida)
Melhor
Tabu
Movimento
Status
Atributos
Regra de ativação
Valores
15. Funcionamento
Busca possíveis soluções a partir de um ponto
conhecido
Caso seja uma solução possível, marca o ponto como
tabu para que ele não seja visitado repetidamente
Para que todos os pontos sejam visitados, ao contrário
da busca local, a busca tabu modifica a estrutura de
vizinhos a cada solução
16. Funcionamento
Busca o ótimo local, mesmo que seja necessário fazer
movimentos que não melhorem a solução em relação
ao passo atual
Mantém uma lista de soluções já visitadas, chamada
de lista tabu para evitar que elas sejam revisitadas
17. Procedimento Gerar solução
heurístico inicial e inicializar
PARAR
estruturas de
memória
Restrições tabu Não
Lista de Construir
candidatos estruturas de Sim Mais iterações?
Critério de vizinhos
aspiração modificadas
Regras de
escolhas Escolher melhor Atualizar estruturas Curto e longo
modificadas para vizinho de memória prazo
diversificação e
intensificação
Recomeçar Executar
Atualizar melhor
Religar caminhos procedimentos
solução
Oscilação especializados
estratégica
18. Código
k := 1.
generate initial solution
WHILE the stopping condition is not met DO
Identify N(s). (Neighbourhood set)
Identify T(s,k). (Tabu set)
Identify A(s,k). (Aspirant set)
Choose the best s‘ | N(s,k) = {N(s) - T(s,k)}+A(s,k).
Memorize s’ if it improves the previous best known solution
s := s’.
k := k+1.
END WHILE
19. Memória a curto prazo
O principal objetivo da memória a curto prazo é evitar
movimentos reversos e ciclos
20. Exemplo 1
Após um movimento que muda o valor de xi de 0 para
1, gostariamos que o valor de xi não volte a ser 0
numa próxima iteração
Atributo a recordar: i
Regra de ativação tabu: move(xi←0) é tabu se i é
tabu-ativo
21. Exemplo 2
Após um movimento que muda as posições dos
elementos i e j, gostariamos que na próxima iteração
os valores de i e j não mudassem novamente
Atributo a recordar: i e j
Regra de ativação tabu: move(i j) é tabu se
ambos i e j são tabu-ativos
22. Tabu, or not tabu, that is the
question.
Somente movimentos podem ser tabu. Atributos não
são tabu, somente podem ser tabu-ativos
Um movimento pode ser tabu se conter um ou mais
atributos tabu-ativos
A classificação de um movimento tabu (tabu ou não
tabu) é determinada pela regra de ativação
23. Movimento
O movimento Sim O movimento
contém atributos
é tabu?
tabu-ativos?
Sim
Não
Não O movimento
satisfaz o critério
de aspiração?
Movimento Sim
Não
permitido
Movimento
não permitido
24. Flexidade de busca
O número de movimentos permitidos na vizinhança da
solução corrente depende de:
Tipo de movimento
Regras de ativação tabu
Número de movimentos permitidos
Critério de aspiração
25. Número de movimentos
permitidos
Estático
O número de movimentos (TabuTenure) é fixo e se
mantém durante toda a busca
Os atributos se mantém tabu-ativos pelo mesmo
número de iterações
Dinâmico
O valor do TabuTenure não é constante durante a
busca
A duração dos atributos também varia
26. Critério de aspiração
Por objetivo
Um movimento tabu se torna permissível se
possibilitar uma solução melhor do que um valor
aspirado
Por direção da busca
Um movimento tabu se torna permissível se a
direção da busca (melhorando ou não) não se altera
O critério de aspiração permite aceitar uma solução baseado em sua qualidade, mesmo que tal
solução faça movimentos da lista tabu.
27. Lista de candidatos
São usados para reduzir o número de soluções
examinadas em um determinada iteração
Elas isolam regiões da vizinhança contendo
movimentos que se aproximam de atributos desejáveis
28. Problema das n-Rainhas
Consiste em colocar rainhas em um tabuleiro de
xadrez, onde elas só são capazes de executar os seus
movimentos tradicionais de modo que elas não
consigam capturar umas as outras
Ou seja, nenhuma rainha pode estar na mesma linha,
coluna ou diagonal da outra
Uma simplificação do problema á chamada de
problema das 8 rainhas, onde são usadas 8 rainhas no
tabuleiro
29.
30. Problema das n-Rainhas
É um problema computacionalmente muito caro de se
resolver
São possíveis 4.426.265.368 (64!/(56!8!)) com oito
rainhas no tabuleiro, mas apenas 92 soluções existem
nesse cenário (12 únicas)
Diversas heurísticas existem para que esse problema
torne-se computacionalmente viável, uma delas é a
busca tabu