Skip to content

Taunt-byte/Tabu-search-algorithm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Tabu search algorithm

🔎 O que é o Tabu Search?

O Tabu Search (Busca Tabu) é um metaheurístico usado para resolver problemas de otimização complexos, onde não é fácil (ou é impossível) encontrar a solução ótima exata em pouco tempo.

A ideia Ă©:

  • Começar com uma solução inicial qualquer.
  • Procurar por vizinhos dessa solução (pequenas mudanças).
  • Escolher o melhor vizinho mesmo que ele nĂŁo seja melhor que o atual (isso ajuda a escapar de mĂ­nimos locais).
  • Usar uma lista tabu (memĂłria) para guardar os movimentos ou soluções recentes, evitando voltar sempre para os mesmos lugares (ficar preso em ciclos).
  • Depois de várias iterações, chega-se a uma solução muito boa (nĂŁo garantidamente a Ăłtima, mas prĂłxima).

⚙️ Exemplo simples (Problema do Caixeiro Viajante - TSP)

Imagine um vendedor que precisa visitar 5 cidades e voltar à cidade inicial. Objetivo: encontrar a ordem que minimiza a distância total.

Como o Tabu Search ajudaria:

  1. Solução inicial: começa com uma rota qualquer, ex: A → B → C → D → E → A.
  2. Vizinhança: troca duas cidades de lugar, por exemplo: A → C → B → D → E → A.
  3. Avaliação: calcula a distância total da nova rota.
  4. Lista Tabu: se já testou essa troca recentemente, não deixa repetir (tabu).
  5. Melhor vizinho permitido: escolhe o vizinho que dá a menor distância sem quebrar a regra do tabu.
  6. Repete o processo até atingir o número de iterações ou critério de parada.

Esse código roda o Tabu Search para um TSP com 4 cidades. Ele faz trocas de cidades, evita repetições com a lista tabu, e tenta achar uma rota curta.

About

Algoritmo de procura Tabu feito em Python.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages