Tabu Search: 1. Basic Concepts 2. Algorithm 3. Practical Considerations
Tabu Search: 1. Basic Concepts 2. Algorithm 3. Practical Considerations
Contents
1. Basic Concepts
2. Algorithm
3. Practical considerations
Literature
1. Modern Heuristic Techniques for Combinatorial Problems,
(Ed) C.Reeves 1995, McGraw-Hill. Chapter 3.
2. Operations Scheduling with Applications in Manufacturing
and Services, Michael Pinedo and Xiuli Chao, McGraw Hill, 2000,
Chapter 3.6.
or
Scheduling, Theory, Algorithms, and Systems, Second Addition,
Michael Pinedo, Prentice Hall, 2002, Chapter 14.4
Basic Concepts
Tabu-lists contains moves which have been made in the recent past but
are forbidden for a certain number of iterations.
Algorithm
Step 1.
k=1
Select an initial schedule S1 using some heuristic and set Sbest = S1
Step 2.
Select ScN(Sk)
If the move Sk Sc is prohibited by a move on the tabu-list
then go to Step 2
3
Example.
jobs
pj
dj
wj
1
10
4
14
2
10
2
12
3
13
1
1
4
4
12
12
1 | dj | wjTj
Neighbourhood: all schedules that can be obtained through
adjacent pairwise interchanges.
Tabu-list: pairs of jobs (j, k) that were swapped within the last
two moves
S1 = 2, 1, 4, 3
F(S1) = wjTj = 128 + 1416 + 1212 + 1 36 = 500 = F(Sbest)
F(1, 2, 4, 3) = 480
F(2, 4, 1, 3) = 436 = F(Sbest)
F(2, 1, 3, 4) = 652
Tabu-list: { (1, 4) }
S2 = 2, 4, 1, 3, F(S2) = 436
F(4, 2, 1, 3) = 460
F(2, 1, 4, 3) (= 500) tabu!
F(2, 4, 3, 1) = 608
Tabu-list: { (2, 4), (1, 4) }
S3 = 4, 2, 1, 3, F(S3) = 460
F(2, 4, 1, 3) (= 436) tabu!
F(4, 1, 2, 3) = 440
F(4, 2, 3, 1) = 632
Tabu-list: { (2, 1), (2, 4) }
S4 = 4, 1, 2, 3, F(S4) = 440
F(1, 4, 2, 3) = 408 = F(Sbest)
F(4, 2, 1, 3) (= 460) tabu!
F(4, 1, 3, 2) = 586
Tabu-list: { (4, 1), (2, 4) }
Practical considerations
Tabu tenure: the length of time t for which a move is forbiden
t too small - risk of cycling
t too large - may restrict the search too much
t=7 has often been found sufficient to prevent cycling
t n