Professional Documents
Culture Documents
• Heuristic search method for fast and • Escapes from local minima
nearly optimal solving of optimization
problems • Accepting a new solution implies
Starting from an initial solution, Tabu removal of oldest solution from
Search picks either the best better
TabuFifo (if TabuFifo is full)
neighbor solution or the neighbor
solution with least degradation of result
• Loops are prevented by considering • Length of TabuFifo influences
only solutions which haven't been effectiveness of method
considered before TabuFifo too small: Loops may occur
Requires temporary storing of TabuFifo too large: Possibly no new
last n solutions (TabuFifo) neighbors are found which weren’t
considered yet
CurrentSolution:=InitialSolution • Initialization
BestSolution:= CurrentSolution
TabuFifo := { } // Size nTabu_Fifo • Pick best solution from neighborhood
REPEAT which isn‘t yet stored in TabuFifo
N := Neighbourhood(CurrentSolution) • Accept degradation in result.
NewSolution := NoSolution
FOR all Elements X N AND X TabuFifo
IF (cost(X) < cost(NewSolution)) THEN • No further solution possible,
NewSolution := X i.e. N TabuFifo
ENDIF • Stop Tabu Search
ENDFOR
IF (NewSolution = NoSolution) THEN
• Select solution for next iteration
EXIT • Update Tabu-Fifo
CurrentSolution := NewSolution • Memorize best solution found so far
Enter_in_TabuFifo(CurrentSolution)
BestSolution := Select_MinCost(BestSolution, CurrentSolution )
• Stop Tabu Search with
UNTIL (stopcondition) other stop criterium cost(NoSolution) =
Current solution Neighborhood (w/o Tabu Fifo content) Tabu Fifo content
HW/SW-Codesign / System Synthesis - 3 © Lehrstuhl für Integrierte Systeme