Overview
Tabu search uses a memory list to avoid cycling back to recent solutions, allowing the search to escape shallow local optima.
Improves solutions with local moves while forbidding recently visited moves or states.
Compact metadata for implementation and discovery.
Tabu search uses a memory list to avoid cycling back to recent solutions, allowing the search to escape shallow local optima.
Quick facts
Runtime and memory behavior at a glance.
Best
O(neighborhood)
Average
O(iterations * neighborhood)
Worst
O(iterations * neighborhood)
Space
O(tabu tenure)
next = argmin allowed_neighbor objective(neighbor)Chooses the best non-tabu move, unless an aspiration rule overrides it.
Plot candidate points, objective values, and improvement steps across iterations.
Tabu Search should be used with the assumptions and tradeoffs of local Search in mind.
What each reference supports for this entry.
Good next jumps from the relationship graph, ranked for useful discovery.
Tabu search adds memory to avoid immediately revisiting poor local moves.
Both attempt to improve local search on rugged objective landscapes.