You are on page 1of 3

Tabu Search

• 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

HW/SW-Codesign / System Synthesis - 1 © Lehrstuhl für Integrierte Systeme


Tabu Search Algorithm

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) = 

HW/SW-Codesign / System Synthesis - 2 © Lehrstuhl für Integrierte Systeme


nTabu_Fifo = 5
Tabu Search - Example Termination condition:
4 x no improvement in BS

BS: CS: Step:


L1 L2 L3 L4 L5 L6 L7 L8 L9 L10 L11 L12
99 99 Start: L27
L13 L14
L15 L16 L17 L18 L19 L20 L21 L22 L23 L24 91 91 L27 L38
C=98
C=99 C=97 89 89 L38 L51
L25 L26
L27 L28 L29 L30 L31 L32 L33 L34 L35 L36
C=97 C=95
C=99 C=98 85 85 L51 L63
L37 L38
L39 L40 L41 L42 L43 L44 L45 L46 L47 L48 79 79 L63 L76
C=95 C=91
C=95 C=98 C=69 C=65 C=61 79 80 L76 L77
L49 L50
L51 L52 L53 L54 L55 L56 L57 L58 L59 L60
C=93 C=92
C=89 C=94 C=71 C=65 C=59 C=65 79 81 L77 L89
L61 L62
L63 L64 L65 L66 L67 L68 L69 L70 L71 L72 79 84 L89 L90
C=91
C=85 C=87 C=85 C=89 C=74 C=65 C=60 C=64 C=69 77 77 L90 L79
L73 L74
L75 L76 L77 L78 L79 L80 L81 L82 L83 L84
C=84
C=82 C=79 C=80 C=84
C=89
C=99 C=77 C=71 C=62 C=63 C=67 65 65 L79 L68
L85 L86
L87 L88 L89 L90 L91 L92 L93 L94 L95 L96 59 59 L68 L57
C=85 C=86 C=81 C=85
C=84 C=91 C=80 C=73 C=65 C=61 59 60 L57 L69
L97 L98 L99 L100 L101 L102 L103 L104 L105 L106 L107 L108
C=88 C=89 C=87
C=97 C=95 59 62 L69 L81
L109 L110 L111 L112 L113 L114 L115 L116 L117 L118 L119 L120 59 63 L81 L82
59 61 L82 L95

Current solution Neighborhood (w/o Tabu Fifo content) Tabu Fifo content
HW/SW-Codesign / System Synthesis - 3 © Lehrstuhl für Integrierte Systeme

You might also like