Introduction
Tabu search is an optimization technique used to find an optimal solution to a problem. Tabu search uses a memory-based strategy to prohibit cycling, thereby avoiding outcomes that are only local maxima or local minima. In tabu search, when a move is made to improve the overall outcome (like a hill-climbing problem) it influences the neighborhood of the problem. This is then stored in a “tabu list” or memory, and any move which recreates the state or moves back to that state are prohibited for a given period of time.
Tabu Search Algorithm
Tabu search is an iterative heuristic search process that seeks to find the solution to a problem. While the search process is similar to other algorithms like random search and genetic algorithms, there are a few key differences: Tabu search is based on local search, using a memory of previously visited states to “remember” unsuccessful moves.
The algorithm can be broken down into three steps.
1. Initialization
To initialize a Tabu search, first identify any local optima (the maximum or minimum points of a given set). Your starting point should be close to the local optima, though not necessarily the same point.
Create the tabu list, which is an array of the last few unsuccessful moves for the search. Initially, set all the moves to zero, in order to ensure that no moves can be repeated too soon.
2. Move Evaluation
To evaluate a move in a Tabu search, the algorithm looks at the previous few steps, and looks for any points which were missed. After a move is evaluated, it is placed onto the tabu list, and given a score. The goal is to seek out potential improvements and minimize the scores for each move.
3. Iteration
The third step of the Tabu search is iteration. For each iteration, the previous best move is remembered, and the behaviour at each point is evaluated. This allows the algorithm to explore different areas and find better solutions.
Conclusion
Tabu search is a valuable optimization technique which can be used to solve many different types of problems. While the algorithm is not guaranteed to give an exact answer, it can find solutions with close-to-optimal outcomes. By using memory-based strategies, it is possible to avoid cycling while also exploring different parts of the problem. By leveraging the power of local search with the use of tabu lists, Tabu search can be an extremely effective way to optimize solutions to complex problems.