METAHEURÍSTICAS CLÁSSICAS · SUBTÓPICO 03

Não volte ao mesmo lugar só porque ele parece familiar.

A Busca Tabu permite movimentos que não melhoram a solução atual, mas registra os retornos recentes em uma memória curta. Assim, ela atravessa platôs e escapa de ciclos previsíveis.

solução atual
A→B→C→B
movimento B ↔ C bloqueadoa memória evita desfazer a última decisão

01 · MEMÓRIA DE CURTO PRAZO

O movimento é proibido por um tempo, não para sempre.

01Explorar

Avalie os vizinhos, inclusive os que pioram.

→
02Filtrar

Ignore movimentos presentes na lista tabu.

→
03Escolher

Escolha o melhor candidato permitido.

→
04Registrar

Insira o movimento e reduza sua validade.

02 · EXCEÇÃO IMPORTANTE

A aspiração quebra a regra quando a oportunidade é realmente melhor.

MOVIMENTO COMUMtabu → rejeitar

Se o movimento reaparece cedo, a memória preserva uma trajetória diferente.

tabu(m) = verdadeiro
CRITÉRIO DE ASPIRAÇÃOtabu + recorde → aceitar

Uma solução tabu pode entrar se superar a melhor solução encontrada em toda a execução.

f(x′) < f(melhor)
INTENSIDADE DA MEMÓRIAtenure = duração

Tenure curto favorece retorno; longo diversifica, mas pode bloquear bons movimentos.

t = 3 … 10 iterações

03 · LABORATÓRIO INTERATIVO

Troque cidades, bloqueie retornos e melhore a rota.

O experimento minimiza a distância de uma rota por seis cidades. Cada passo avalia todas as trocas possíveis e escolhe a melhor que não esteja tabu.

EXPERIMENTO 13
iteração0
rota atual—
melhor rota—
movimentos tabu0

Rota atual

O traço violeta representa a solução visitada.

pronta

Histórico de custo

O melhor global permanece guardado mesmo que a rota atual piore.

MOVIMENTO ESCOLHIDOaguardando
LISTA TABU ATIVAvazia
DECISÃOpronta para explorar

04 · AJUSTE E USO

Memória é uma forma controlada de explorar.

VIZINHANÇAQuais movimentos?

Troca, inserção e inversão determinam o que a busca consegue alcançar.

TENUREPor quanto tempo?

Escolha uma duração proporcional ao tamanho do problema e ajuste por testes.

ASPIRAÇÃOQuando liberar?

Use o recorde global como uma exceção segura à proibição.

PARADAQuando encerrar?

Defina orçamento, número de iterações ou estagnação máxima.

05 · NO CÓDIGO

O melhor vizinho permitido conduz o próximo passo.

busca-tabu.js
for (const movimento of vizinhos(atual)) {
  const aspirado = custo(movimento) < custo(melhor);
  if (!listaTabu.tem(movimento) || aspirado) candidato = melhor(candidato, movimento);
}
atual = candidato;
listaTabu.adicionar(movimento, tenure);
1
Avaliar

Veja toda a vizinhança.

2
Filtrar

Aplique tabu e aspiração.

3
Mover

Aceite o melhor permitido.

4
Atualizar

Envelheça a memória.

PRÓXIMO SUBTÓPICO

GRASP e VNS.

Duas estratégias que alternam construção gulosa, busca local e perturbações de vizinhança.

Continuar estudo →