Tabu Search
Modern Heuristic Techniques for Combinatorial Problems, Colin R. Reeves (Ed.), 70150, Blackwell Scientific Publications, Oxford, 1993.
FRED GLOVER^{1} and MANUEL LAGUNA ^{2}
1 US West Chair in Systems Science, Graduate School of Business and Administration, Campus Box 419, University of Colorado. Boulder, CO 803090419. glover@spot.colorado.edu.
2 Graduate School of Business and Administration, Campus Box 419. University of Colorado, Boulder. CO 803090419, manuel@mayan.colorado.edu.
Tabu Search / 1
1. Introduction
Tabu search (TS) has its antecedents in methods designed to cross boundaries of feasibility or local optimality standardly treated as barriers, and to systematically impose and release constraints to permit exploration of otherwise forbidden regions. Early examples of such procedures include heuristics based on surrogate constraint methods and cutting plane approaches that systematically violate feasibility conditions (Glover, 1977). The modern form of tabu search derives from Glover (1986). Seminal ideas of the method are also developed by Pierre Hansen (1986) in a steepest ascent / mildest descent formulation. Additional contributions, such as those cited in the following pages, are shaping the evolution of the method and are responsible for its growing body of successful applications.
Webster's dictionary defines tabu or taboo as "set apart as charged with a dangerous supernatural power and forbidden to profane use or contact. .." or "banned on grounds of morality or taste or as constituting a risk " Tabu search scarcely involves reference to supernatural or moral considerations, but instead is concerned with imposing restrictions to guide a search process to negotiate otherwise difficult regions. These restrictions operate in several forms, both by direct exclusion of search alternatives classed as "forbidden," and also by translation into modified evaluations and probabilities of selection.
The purpose of this chapter is to integrate some of the fundamental ways of viewing and characterizing tabu search, with extended examples to clarify its operations. We also point to a variety of directions for new applications and research. Our development includes comparisons and contrasts between the principles of tabu search and those of simulated annealing (SA) and genetic algorithms (GAs). Computational implications of these differences, and foundations for creating hybrid methods that unite features of these different approaches are also discussed. In addition, we examine special designs and computational outcomes for incorporating tabu search as a driving mechanism within neural networks.
The philosophy of tabu search is to derive and exploit a collection of principles of intelligent problem solving. A fundamental element underlying tabu search is the use of flexible memory. From the standpoint of tabu search, flexible memory embodies the dual processes of creating and exploiting structures for taking advantage of history (hence combining the activities of acquiring and profiting from information).
The memory structures of tabu search operate by reference to four principal dimensions, consisting of recency, frequency, quality, and influence. These dimensions in turn are set against a background of logical structure and connectivity. The role of these elements in creating effective problem solving processes provides the focus of our following development
2 / GLOVER and LAGUNA
2. The Tabu Search Framework
To provide a background for understanding some of the fundamental elements of tabu search, we illustrate its basic operation with an example.
2.1 An Illustrative Example
Pemutation problems are an important class of problems in optimization, and offer a useful vehicle to demonstrate some of the considerations that must be faced in the combinatorial domain. Classical instances of permutation problems include traveling salesman problems, quadratic assignment problems, production sequencing problems, and a variety of design problems. As a basis for illustration, consider the problem of designing a material consisting of a number of insulating modules. The order in which these modules are arranged determine the overall insulating property of the resulting material, as shown in Figure 1.
Fig. 1 Modules in an insulating material.
Material
~ Modules
The problem is to find the ordering of modules that maximizes the overall insulating property of the composite material. Suppose that 7 modules are considered for a particular material, and that evaluating the overall insulating property of a particular ordering is a computationally expensive procedure. We desire a search method that is able to fmd an optimal or nearoptimal solution by examining only a small subset of the total possible permutations (in this case, numbering 5040, though for many applications the number can be astronomical).
Closely related problems that can be represented in essentially the same way include serial fIltering and job sequencing problems. Serial fIltering problems arise in pattern recognition and signal processing applications, where a given input is to be subjected to a succession of fIlters (or screening tests) to obtain the "best" output. Filters are sequentially applied to the input signal, and the quality of the output is determined by the order in which they are placed (see Figure 2). In this case, the search method must be designed to find the best filtering sequence. Such filtering
Tabu Search /
3
processes are also relevant to applications in chemical engineering, astronomy, and biochemistry.
Fig. 2 Filtering sequence.
Job sequencing problems consist of determining best sequences for processing a set of jobs on designated machines. Each machine thus is assigned some permutation of available jobs. A single machine problem is illustrated in Figure 3. (In some settings, multiple machine problems may be treated by extensions of processes for single machine problems.)
There are many variants of the single machine problem depending on the definition of "best" sequence. For example, the best sequence may be the one that minimizes the makespan (i.e., the completion time of the last job in the sequence). Other possibilities are to minimize a weighted sum of tardiness penalties or a sum of setup costs.
Fig. 3 Word processing jobs on a single machine.
Jobs
For well structured objective functions, evaluations of ways to move from one solution to another are generally fast. However, problems with even modest numbers of jobs overwhelm the capabilities of algorithms that "guarantee" optimality, rendering them unable to obtain solutions in reasonable amounts of time. That is one of the reasons why effective heuristic approaches have proved important in the area of production scheduling.
4
I
GLOVER and LAGUNA
Some useful variants of the foregoing problems can be represented ''as ir' they were permutation problems. These include, for example, problems where it is simultaneously desired to select a best subset of items (modules, filters, jobs) from an available pool, and to identify a best sequence for this chosen set. In this case, the problem can be represented by creating a dummy position to hold a residual pool, where all items that do not currently occupy one of the sequence positions are placed. (The path assignment problem discussed in Section 4 is a good example of this kind of representation.)
We focus on the module insulation problem to introduce and illustrate the basic components of tabu search. First we assume that an initial solution for this problem can be constructed in some intelligent fashion, ie., by taking advantage of some problemspecific structure. Suppose the initial solution to our problem is the one shown in Figure 4.
Fig. 4 Initial pennutation.
The ordering in Figure 4 specifies that module 2 is placed in the fIrst position, followed by module 5, etc. The resulting material has an insulating property of 10 units (which we assume was found by an accompanying evaluation routine, e.g., a simulator package for estimating the properties of a material without actually building a prototype). TS methods operate under the assumption that a neighborhood can be constructed to identify "adjacent solutions" that can be reached from any current solution. (Neighborhood search is described in Section 2.3.) Pairwise exchanges (or swaps) are frequently used to define neighborhoods in permutation problems, identifying moves that lead from one solution to the next. In our problem, a swap exchanges the position of two modules as illustrated in Figure 5. Therefore, the complete neighborhood of a given current solution consists of the 21 adjacent solutions that can be obtained by such swaps.
Fig. 5 Swap of modules 5 and 6.
Tabu Search I
5
Associated with each swap is a move value, which represents the change on the objective function value as a result of the proposed exchange. Move values generally provide a fundamental basis for evaluating the quality of a move, although other criteria can also be important, as indicated later. A chief mechanism for exploiting memory in tabu search is to classify a subset of the moves in a neighborhood as forbidden (or tabu). The classification depends on the history of the search, particularly as manifested in the recency or frequency that certain move or solution components, called attributes, have participated in generating past solutions. For example, one attribute of a swap is the identity of the pair of elements that change positions (in this case, the two modules exchanged). As a basis for preventing the search from repeating swap combinations tried in the recent past, potentially reversing the effects of previous moves by interchanges that might return to previous positions, we will classify as tabu all swaps composed of any of the most recent pairs of such modules; in this case, for illustrative purposes, the three most recent pairs. This means that a module pair will be kept tabu for a duration (tenure) of 3 iterations. Since exchanging modules 2 and 5 is the same as exchanging modules 5 and 2, both may be represented by the pair (2, 5). Thus, a data structure such as the one shown in Figure 6 may be used.
Fig. 6 Tabu data sttucture for attributes consisting of module pairs exchanged.
Each cell of the structure in Figure 6 contains the number of iterations remaining until the corresponding modules are allowed to exchange positions again. Therefore, if the cell (3, 5) has a value of zero, then modules 3 and 5 are free to exchange positions. On the other hand, if cell (2, 4) has a value of 2, then modules 2 and 4 may not exchange positions for the next two iterations (i.e., a swap that exchanges these modules is classified tabu).
The type of move attributes illustrated here for defming tabu restrictions are not the only ones possible. For example, reference may be made to separate modules rather than module pairs, or to positions of modules, or to links between their immediate predecessors (or successors), and so forth. Some choices of attributes are better than others, and relevant considerations are discussed in Sections 2.5.1 and 2.5.2. (Attributes involving created and broken links between
6
I GWVER and LAGUNA
immediate predecessors and successors are often among the more effective for many permutation problems.)
To implement tabu restrictions such as those based on module pairs, an important exception must be taken into account. Tabu restrictions are not inviolable under all circumstances. When a tabu move would result in a solution better than any visited so far, its tabu classification may be overridden. A condition that allows such an override to occur is called an aspiration criterion. (Several useful forms of such criteria are presented in Section 2.7.) The following shows 4 iterations of the basic tabu procedure that employs the paired module tabu restriction and the best solution aspiration criterion.
Iteration 0 (Starting Point)
Current solution
12 Is 17 1314 1611 I Insulation Value = 10
1
Tabu structure 234567
L" 
2

3 I
4
5
6
Top 5 candidates
Swap
Value
5
7
3
2
4
4
4 6
3 1
6
4
2
0
1
*
The starting solution has an insulation value of 10, and the tabu data structure is initially empty (i.e., it is filled with zeros, indicating no moves are classified tabu at the beginning of the search). After evaluating the candidate swap moves, the top five moves (in terms of move values) are shown in the table for iteration 0 above.
This information is provided by an independent evaluation subroutine designed to identify move values for this particular problem. (Of course, it is not necessary for the subroutine to sort and identify each of the 5 best moves, since we are interested only in the best. Additional options are included to clarify certain ideas subsequently presented.) To locally maximize the insulating property of the material, we swap the positions of modules 5 and 4, as indicated by the asterisk. The total gain of such a move equals 6 units.
Tabu Search I
Iteration I Current solution
12 1417 13 IS 1611 I
Insulation Value = 16
Top 5 candidates
Swap
3
2
3
7

6
1 3
6
1 1
2
1
1
2
4
Value
7
The new current solution has an insulating value of 16 (i.e., the previous insulation value plus the value of the selected move). The tabu structure now shows that swapping the positions of modules 4 and 5 is forbidden for 3 iterations. The most improving move at this step is to swap 3 and 1 for a gain of 2.
Iteration 2 Current solution
12 1417 1115 1613 I
Insulation Value = 18
Top 5 candidates
Swap
Value
1 2 7 4
5
3
4
6
5
3
2
4
6
7 9
T
*
T
The new current solution becomes the best solution found so far with an insulating value of 18. At this iterationt two exchanges are classified tabut as indicated by the nonzero entries in the tabu structure.
Note that entry (4t 5) has been decreased from 3 to 2t indicating that its original tabu tenure of 3 now has 2 remaining iterations to go. This timet none of the candidates (including the top 5 shown) has a positive move value. Therefore, a nonimproving move has to be made. The most attractive nonimproving move is the reversal of the move performed in the previous iterationt but since it is classified tabut this move is not selected. Insteadt the swap of modules 2 and 4 is chosen, as indicated by the asterisk.
8
I
GlOVER and LAGUNA
Iteration 3
Current solution
14 12 17 11 Is 1613 1
Insulation Value = 14
Tabu structure
2 3 4
5
6
7
Top 5 candidates
Swap
Value
4
5
7 1
2
5 3

1
3
6
6 2

0

3
6
T*
T
The new current solution has an insulation value inferior to the two values previously obtained, as a result of executing a move with a negative move value. The tabu data structure now indicates that 3 moves are classified tabu, with different remaining tabu tenures. At the top of the candidate list, we fmd the swap of modules 4 and 5, which in effect represents the reversal of the fIrst move perfonI1ed, and is classified tabu. However, perfonI1ing this move produces a solution with an objective function value that is superior to any previous insulation value. Therefore, we make use of the aspiration criterion to override the tabu classification of this move and select it as the best on this iteration.
Iteration 4
Current solution
15 12 17 11 14 1613 I
Insulation Value = 20
Tabu structure 2 3 4
5
6
7
Top 5 candidates
Swap
Value
7
4 6
5 2
1

3 3 4
6
0
3
5
6
8
*
T
The current solution becomes the incumbent new best solution and the process continues. Note that the chosen tabu restriction and tabu tenure of 3 results in forbidding only 3 out of 21 possible swaps, since the module pair with a residual tenure of 1 always drops to a residual tenure of 0 each time a new pair with tenure 3 is introduced. (By recording the iteration when a module pair becomes tabu, and comparing this against the current iteration to determine the remaining tabu tenure, it is unnecessary to change these entries at each step as we do here.)
In some situations, it may be desirable to increase the percentage of available moves that
Tabu Search /
9
receive a tabu classification. This may be achieved either by increasing the tabu tenure or by changing the tabu restriction. For example, a tabu restriction that forbids swaps containing at least one member of a module pair will prevent a larger number of moves from being executed, even if the tenure remains the same. (In our case, this restriction would forbid 15 out of 21 swaps if the tabu tenure remains at 3!) Such a restriction is based on single module attributes instead of paired module attributes, and can be implemented with much less memory, i.e., by an array that records a tabu tenure for each module separately. Generally speaking, regardless of the type of restriction selected, improved outcomes are often obtained by tabu tenures that vary dynamically, as described in Section 2.6.
Move Values and Updates. Because tabu search aggressively selects best admissible moves (where the meaning of best is affected by tabu classification and other elements to be indicated), it must examine and compare a number of Dlove options. For many problems, only a portion of the move values will change from one iteration to the next, and often these changed values can be isolated and updated very quickly. For example, in the present illustration it may be useful to store a table move_value(j, k), which records the current move value for exchanging modules j and k. Then when a move is executed, a relatively small part of this table (consisting of values that change) can be quickly modified, and the updated table can then be consulted to identify moves that become the new top candidates.
Such partial updating often can be further enhanced by a list move_name(move_value) which, for each move_value in a relevant range, identifies move_name to be a specific move that yields this value. A linked list then can connect this move_name to the names of all other moves that yield the same move_value. The combination of the move_name(move_value) array and the linked list can be updated very quickly to make it easy to locate moves with best move values in cases where only a relatively small number of elements change. A given move_value entry also can refer to a range of move values, with an option to regard all values within a specified range as "essentially equivalent." (However, we suggest the merit of differentiating members of a given range more carefully upon approaching local optimality.)
On a broader scale, lists to facilitate access to ~'st moves invite differentiation to include considerations introduced by move influence (Section 2.'7) and by candidate list strategies (Section 3). They also are subject to periodic scanning with reference to concerns that extend beyond the short term horizon, as we illustrate next
Complementary Tabu Memory Structures. The accompaniment of recency based memory with frequency based memory adds a component that typically operates over a longer horizon. To illustrate one of the useful longer term applications of frequency based memory, suppose that 25 TS iterations have been performed, and that the number of times each module pair has been exchanged is saved in an expanded tabu data structure. The lower diagonal of this structure now contains the frequency counts.
10 I GLOVER and LAGUNA
Iteration 26 Current solution
111316121715141
Insulation Value =12
Tabu structure
1
2
3
4
5
6
7
1
2
3
4
5
6
7
Frequency
"
"
~
Top 5 candidates
Swap
Value
Penalized Value
1
2
3 1
6
4
4
7
6
5
3
1
3 5
4
3
6
3
5
6
At the current iteration (iteration 26), the recency memory indicates that the last three module pairs exchanged were (4, 1), (6,3), and (4, 7). The frequency counts show the distribution of moves throughout the first 25 iterations. We use these counts to diversify the search, driving it into new regions. This diversifying influence is restricted to operate only on particular occasions. In this case, we select those occasions where no admissible improving moves exist. Our use of the frequency information will penalize nonimproving moves by assigning a larger penalty to swaps of module pairs with greater frequency counts. (Typically tliese counts would be normalized, as by dividing by the total number of iterations or their maximum value.) We illustrate this in the present example by simply subtracting a frequency count from the associated move value.
The list of top candidates for iteration 26 shows that the most improving move is the swap (1,4), but since this module pair has a residual tabu tenure of 3, it is classified tabu. The move (2, 4) has a value of 1, and it might otherwise be the one next preferred, except that its associated modules have been exchanged frequently during the history of the search (in fact, more frequently than any other module pair). Therefore, the move is heavily penalized and it looses its attractiveness. The swap of modules 3 and 7 thus is selected as the best move on the current iteration.
The strategy of instituting penalties only under particular conditions is used to preserve the aggressiveness of the search. Penalty functions in general are designed to account not only for frequencies but also for move values and certain influence measures, as discussed in Section 2.8.
In addition, frequencies defined over different subsets of past solutions, particularly subsets of elite solutions consisting of high quality local optima, give rise to complementary strategies called intensification strategies. Intensification and diversification strategies interact to provide fundamental cornerstones of longer term memory in tabu search. The ways in which such elements are capable of creating enhanced search methods, extending the simplified approach of the preceding example, are elaborated in following sections.
T
Tabu Search I 11
2.2
Notation and Problem Description
A few basic definitions and conventions are useful as a foundation for communicating the principal ideas of TS. For this purpose we express the mathematical optimization problem as follows.
Minimize c(x)
subject to
xeX
The objective function c(x) may be linear or nonlinear, and the condition x e X, summarizes constraints on the vector x. These constraints may include linear or nonlinear inequalities, and may compel some or all components of x to receive discrete values.
In many applications of combinatorial optimization, the problem of interest is not explicitly formulated as we have shown it. In such cases the present formulation may be conceived as a code for another formulation. The requirement x e X, for example, may specify logical conditions or interconnections that would be cumbersome to formulate mathematically, but may better be left as verbal stipulations (for example, in the form of rules). Often in these instances the variables are simply codes for conditions or assignments that are parts of the more complex structure. For example, an element of x may be a binary variable that receives a value of 1 to code for assigning an element u to a set or position v, and that receives a value 0 to indicate the assignment does not occur.
2.3
Neighborhood Search
TS may be conveniently characterized as a fonn of neighborhood search, though we warn that neighborhood search often is defined in a more restricted fashion than presented here. Frequently, for example, constructive and destructive procedures are excluded, whereas such procedures and their combinations are standardly subjected to the guidance of TS.
In neighborhood search, each solution x e X has an associated set of neighbors, N (x) c X, called the neighborhood ofx. Each solution Xl e N(x) can be reached directly from x by an operation called a move, and x is said to move (or transition) to x' when such an operation is performed. Normally in tabu search neighborhoods are assumed symmetric, i.e., Xl is a neighbor of x if and only if x is a neighbor of x' .
The steps of neighborhood search may be described as follows. We assume choice criteria for selecting moves, and termination criteria for ending the search, are given by some external set of prescriptions.
12 /
GLOVER and LAGUNA
Neighborhood Search Method
Step 1 (Initialization).
(A) Select a starting solution x_now E X.
(B) Record the current best known solution by setting x_best = x_now and defme best_cost = c(x_best).
Step 2 (Choice and termination).
Choose a solution x_next E N(x_now). If the choice criteria employed cannot be satisfied by any member of N(x_now) (hence no solution qualifies to be x_next), or if other termination criteria apply (such as a limit on the total number of iterations), then the: method stops.
Step 3 (Update).
Re.set x_now = x_next, and if c(x_now) < best_cost, perform Step 1(B). Then return to Step 2.
The foregoing method can represent a constructive method by stipulating that X is expanded to include x vectors whose components take null (unassigned) values, and by stipulating that a neighbor Xl of x can result by replacing a null component of x with a nonnull component. (A change of representation sometimes conveniently allows null components to be represented by values of 0 and nonnull components by values of 1.) A standard constructive method does not yield symmetric neighborhoods, since nonnull components are not permitted to become null again (hence the method ends when no more components are null). However, tabu search reinstates the symmetric relation by allowing constructive and destructive moves to coexist, as a special instance of an approach called strategic oscillation (see Section 3).
The Neighborhood Search Method can easily be altered by adding special provisions to yield a variety of classical procedures. Descent Methods, which only permit moves to neighbor solutions that improve the current c(x_now) value, and which end when no improving solutions can be found, can be expressed by the following provision in Step 2.
Descent Method
Step 2 (Choice and termination).
Choose x_next E N (x_now) to satisfy c(x_next) < c(x_now) and terminate if no such x_next can be found.
The final x_now obtained by a Descent Method is called a local optimum, since it is at least
Tabu Search / 13
as good or better than all solutions in its neighborhood. The evident shortcoming of a Descent Method is that such a local optimum in most cases will not be a global optimum, ie., it usually will not minimize c(x) over all x E X.
Randomized procedures such as Monte Carlo methods, which include simulated annealing, similarly can be represented by adding a simple provision to Step 2.
Monte Carlo Method
Step 2 (Choice and tennination).
(A) Randomly select x_next from N(x_now).
(B) If c(x_next) S c(x_now) accept x_next (and proceed to the Update Step) .
(C) If c(x_next) > c(x_now) accept x_next with a probability that decreases with increases in the difference c(x_next) c(x_now). If x_next is not accepted on the current trial by this criterion, return to Step 2(A).
(D) Tenninate by a chosen cutoff rule.
Monte Carlo methods continue to sample the search space until finally terminating by some fomt of iteration limit. Nomtally they use an exponential function to define probabilities, drawing from practice established in engineering and physical science. The Monte Carlo version represented by simulated annealing starts with a high probability for accepting nonimproving moves in Step 2(C) and decreases this probability over time as a function of a parameter called the "temperature," which monotonically diminishes toward 0 as the number of iterations grows. Such approaches offer a chance to do better than finding a single local optimum since they effectively terminate only when the probability of accepting a nonimproving move in Step 2(C) becomes so small that no such move is ever accepted (in the finite time allowed). Hence, they may wander in and out of various intemtediate local optima prior to becoming lodged in a final local optimum, when the temperature becomes small.
Another randomizing approach to overcome the limitation of the Descent Method is simply to restart the method with different randomly selected initial solutions, and run the method multiple times. Such a random restart approach (sometimes called Iterated Descent), may be contrasted with a random perturbation approach, which simply chooses moves randomly for a period after reaching each local optimum, and then resumes a trajectory of descent. Alternating threshold methods indicated in Section 2.7.1 provide a refmement of this idea.
14 / GLOVER and LAGUNA
2.4
Tabu Search Characteristics
Tabu search, in contrast to the preceding methods, employs a somewhat different philosophy for going beyond the criterion of tenninating at a local optimum. Randomization is deemphasized, and generally is employed only in a highly constrained way, on the assumption that intelligent search should be based on more systematic fonns of guidance. Randomization (pseudo randomization) thus chiefly is assigned the role of facilitating operations that are otherwise cumbersome to implement or whose strategic implications are unclear. (In the latter case, a supplementary learning approach such as target analysis (Laguna and Glover, 1993) customarily is employed to detennine if such implications can be sharpened.) Accordingly, many tabu search implementations are largely or wholly detenninistic. An exception occurs for the variant called probabilistic tabu search, which selects moves according to probabilities based on the status and evaluations assigned to these moves by the basic tabu search principles. (A discussion of probabilistic convergence issues is provided by Faigle and Kern, 1992.)
2.4.1
Special TS Uses of Memory: Modifying Neighborhood Structures
The notion of exploiting certain forms of flexible memory to control the search process is the central theme underlying tabu search. The effect of such memory may be envisioned by stipulating that TS maintains a selective history H of the states encountered during the search, and replaces N(x_now) by a modified neighborhood which may be denoted N(H, x_now). History therefore determines which solutions may be reached by a move from the current solution, selecting x_next from N(H, x_now).
In the TS strategies based on short term considerations, N(H, x_now) characteristically is a subset of N(x_now), and the tabu classification serves to identify elements of N(x_now) excluded from N(H, x_now). In the intermediate and longer term strategies, N(H, x_now) may contain solutions not in N(x_now), generally consisting of selected elite solutions (high quality local optima) encountered at various points in the solution process. Such elite solutions typically are identified as elements of a regional cluster in intermediate term intensification strategies, and as elements of different clusters in longer term diversification strategies. In addition, elite solution components, in contrast to the solutions themselves, are included among the elements that can be retained and integrated to provide inputs to the search process.
TS also uses history to create a modified evaluation of currently accessible solutions. This may be expressed formally by saying that TS replaces the objective function c(x) by a function c(H, x), which has the purpose of evaluating the relative quality of currently accessible solutions. (An illustration is provided by the use of frequency based memory in the example of Section 2.1.) The relevance of this modified function occurs because TS uses aggressive choice criteria that seek a best x_next, ie., one that yields a best value of c(H, x_next), over a candidate set drawn from N(H, x_now). Moreover, modified evaluations often are accompanied by systematic alteration of
Tabu Search I 15
N(H,x_now), to include neighboring solutions that do not satisfy customary feasibility conditions (i.e., that strictly speaking do not yield x e X). Reference to c(x) and feasibility is retained for determining whether a move is improving or leads to a new best solution.
For large problems, where N(H, x_now) may have many elements, or for problems where these elements may be costly to examine, the aggressive choice orientation of TS makes it highly important to isolate a candidate subset of the neighborhood, and to examine this subset instead of the entire neighborhood. This can be done in stages, allowing the candidate subset to be expanded if alternatives satisfying aspiration levels are not found. Because of the significance of the candidate subset's role, we refer to this subset explicitly by the notation Candidate_N (x_now). Then the tabu search procedure may be expressed in the following manner.
Tabu Search Method
Step 1 (Initialization).
Begin with the same initialization used by Neighborhood Search, and start with the history record H empty.
Step 2 (Choice and termination).
Determine Candidate_N(x_now) as a subset of N(H, X~Ow). Select x_next from Candidate_N(x_now) to minimize c(H, x) over this set (x_next is called a highest evaluation element of Candidate_N(x_now).) Terminate by a chosen iteration cutoff
rule.
Step 3 (Update).
Perform the update for the Neighborhood Search Method, and additionally update the history record H.
Fonnally the tabu search method is quite straightforward to state. The essence of the method depends on how the history record H is defined and utilized, and on how the candidate neighborhood Candidate_N(x_now) and the evaluation function c(H, x) are determined.
In the simplest cases we may imagine Candidate_N (x_now) to constitute all of N(H, x_now), and take c(H, x) = c(x), disregarding neighborhood screening approaches and the longer tenn considerations that introduce elite solutions into the determination of moves. We begin from this point of view, focusing on the short tenn component of tabu search for detennining the fonn and use of H. The basic considerations provide a foundation for the intennediate and long tenn TS components as well.
16 /
GLOVER and LAGUNA
2.5
2.5.1
Tabu Search Memory
Attribute Based Memory
An attribute of a move from x_now to x_next, or more generally of a trial move from x_now to a tentative solution x_trial, can encompass any aspect that changes as a result of the move. Natural types of attributes are as follows.
Illustrative Move Attributes for a Move x_now to x_trial
(AI) Change of a selected variable Xj from 0 to 1. (A2) Change of a selected variable Xk from 1 to O.
(A3) The combined change of (AI) and (A2) taken together. (A4) Change of c(x_now) to c(x_tria/).
(AS) Change of a function g(x_now) to g(x_trial) (where g may represent a function that occurs naturally in the problem formulation or that is creatOO strategically).
(A6) Change represented by the difference value g(x_trial) g(x_now).
(A7) The combined changes of (AS) or (A6) for more than one function g considered simultaneously.
A single move evidently can give rise to multiple attributes. For example, a move that changes the values of two variables simultaneously may give rise to each of the three attributes (AI), (A2), and (A3), as well as to other attributes of the fonn indicated. Attributes that represent combinations of other attributes do not necessarily provide more exploitable infonnation, as will be seen. Attributes (A5) to (A 7) are based on a function g that may be strategically chosen to be completely independent from c. For example, g may be a measure of distance (or dissimilarity) between any given solution and a reference solution, such as the last local optimum visited or the best solution found so far. Then, attribute (A6) would indicate whether a trial solution leads the search farther from or closer to the reference point.
Move attributes, involving change, may be subdivided into component attributes called fromattributes and toattributes. That is, each move attribute may be expressed as an ordered pair (fromattribute, toattribute) whose components are respectively attributes of the solutions x_now and x_trial. Letting A(x_now) and A(x_trial) denote attribute sets for these two solutions, the requirement of change underlying the definition of a move attribute implies
fromattribute E A(x_now) A(x_trial) toattribute E A(x_trial) A(x_now).
Tabu Search I 17
This differentiation between move attributes and their component fromattributes and toattributes is useful for establishing certain outcomes related to their use.
When we refer to assigning alternative values to a selected variable x. of x, and
J
particularly to assigning values 0 and 1 to a binary variable, we will understand by our previous conventions that this can refer to a variety of operations such as adding or deleting edges from a graph, assigning or removing a facility from a particular location, changing the processing position of a job on a machine, and so forth. Such coding conventions can be extended to include the creation of supplementary variables that represent states of subservient processes. For example, x. = 0 or 1 may indicate that an associated variable is nonbasic or basic in an extreme point
J
solution procedure, as in the simplex method and its variants for linear and nonlinear programming.
2.5.2
Uses of Move Attributes
Recorded move attributes are often used in tabu search to impose constraints, called tabu restrictions, that prevent moves from being chosen that would reverse the changes represented by these attributes. More precisely, when a move from x_now to x_next is performed that contains an attribute e, a record is maintained for the reverse attribute which we denote bye, in order to prevent a move from occuning that contains some subset of such reverse attributes. Examples of kinds of tabu restrictions frequently employed are as follows.
Illustrative Tabu Restrictions
A move is tabu if:
(RI) Xj changes from 1 to 0 (where Xj previously changed from 0 to I).
(R2) xk changes from 0 to 1 (where xk previously changed from 1 to 0).
(R3) At least one of (RI) and (R2) occur. (This condition is more restrictive than either (RI) or (R2) separately i.e., it makes more moves tabu.)
(R4) Both (RI) and (R2) occur. (This condition is less restrictive than either (RI) or (R2) separately i.e., it makes fewer moves tabu.)
(R5) Both (RI) and (R2) occur, and in addition the reverse of these moves occurred simultaneously on the same iteration in the past. (This condition is less restrictive than (R4).)
(R6) g(x) receives a value v' that it received on a previous iteration (i.e., v' = g(x') for some previously visited solution x').
(R7) g(x) changes from v" to v', where g(x) changed from v' to v" on a previous iteration (i.e., v' = g(x') and v" = g(X") for some pair of solutions x' and x" previously visited in sequence.)
18 I GLOVERandLAGUNA
Among the restrictions of the preceding examples, only (R5) applies to a composite attribute, in which two component attributes simultaneously identify a single attribute of a previous move. (However, restriction (R4) is meaningful only if the present move is composed of two such attributes, but does not depend on the condition that both of these attributes have occuned together in the past.) Also, while (R7) is less restrictive than (R6) (since it renders fewer moves tabu), both of these restrictions can reduce either to (Rl) or (R2) by specifying g(x) = Xj or g(x) = Xk' «R6) is equivalent to (R7) in the situation where g(x) can only take two different values.)
Tabu restrictions are also sometimes used to prevent repetitions rather than reversals, as illustrated by stipulating in (Rl) that Xj previously changed from 1 to 0, rather than from 0 to 1. These have a role of preventing the repetition of a search path that leads away from a given solution. By contrast, restrictions that prevent reversals have a role of preventing a return to a previous solution. Hence, tabu restrictions vary according to whether they are defined in terms of reversals or duplications of their associated attributes.
2.5.3
The Role of Tabu Status
A tabu restriction typically is activated only in the case where its attributes occuned within a limited number of iterations prior to the present iteration (creating a recency based restriction) or occurred with a certain frequency over a longer span of iterations (creating a frequency based restriction). More precisely, a tabu restriction is enforced only when the attributes underlying its definition satisfy certain thresholds of recency or frequency. To exploit this notion, we define an attribute to be tabuactive when its associated reverse (or duplicate) attribute has occuned within a stipulated interval of recency or frequency in past moves. An attribute that is not tabuactive is called tabuinactive.
The condition of being tabuactive or tabuinactive is called the tabu status of an attribute. Sometimes an attribute is called tabu or not tabu to indicate that it is tabuactive or tabuinactive. It is important to keep in mind in such cases that a "tabu attribute" does not correspond to a tabu move. As the preceding examples show, a move may contain tabuactive attributes, but still may not be tabu if these attributes are not of the right number or kind to activate a tabu restriction.
The most common tabu restrictions, whose attributes are the reverse of those defIning these restrictions, characteristically have a goal of preventing cycling and of inducing vigor into the search. However, some types of restrictions must be accompanied by others, at least periodically, to achieve the cycle avoidance effect. For example, the restriction (R5) is not able to prevent cycling by itself, regardless of the interval of time it is allowed to be in effect. This can be demonstrated by letting the ordered pair V, k) denote an attribute in which Xj changes from 0 to 1 and xk changes from 1 to O. Then a sequence of 3 moves that creates the three attributes (1, 2), (2, 3), and (3, 1) both starts and ends at the same solution, but this sequence is not prevented by
restriction (R5). (R7) also may not prevent cycling, if g(x) can change from a later value to an
Tabu Search I 19
earlier value without visiting values that were successively generated at intermediate points (e.g., going from 5 to 10 to 15 and then back to 5, jumping over the reverse move from 15 to 10).
Cycle avoidance can easily be achieved over the duration of tabu tenure, however, by focusing specifically on fromattributes and toattributes rather than on their ordered pair combinations. More precisely, as long as at least one toattribute of a current move is not afrom attribute of a previous move, cycling cannot occur. Examination of the preceding restrictions shows that all except (R5) and (R7) implicitly are based on the requirement that specified from attributes of previous moves must not be toattributes of the current move, or else the move is tabu. (The only component attributes of the present move that are relevant to its tabu classification are its toattributes, which to prevent reversals must be fromattributes of previous moves.)
It should be pointed out, however, that cycle avoidance is not an ultimate goal of the search process. In some instances, a good search path will result in revisiting a solution encountered before. The broader objective is to continue to stimulate the discovery of new high quality solutions. Hence in the longer term the issue of cycle avoidance is more subtle than simply preventing a solution from being revisited. The way that tabu restrictions depend on different choices of move attributes, and the consequences of this dependency, are examined in the following example.
An Example. Consider a past move that involves a change from Xj = P to Xj = q. To avoid a reversal. we stipulate that the fromattribute of this move. Xj = p, is tabuactive. thus allowing the possibility of preventing a move with a change in which Xj = P is the toattribute. But Xj = P is not the only component of the past move that can qualify as a fromattribute, and hence that can be the basis for defining a tabuactive status.
By conceiving an attribute change implicitly to involve replacing an attribute e by a complementary attribute e. the change from Xj = P to Xj = q in fact may be viewed as composed of two such attribute changes: from Xj =p to Xj ~p, and from Xj ~ q to Xj = q. Thus. Xj ~ q also can be regarded as afromattribute of this change. By avoiding either of the tabuactive reverse attributes. to Xj = P or to Xj ~ q, the present move will not be able to revisit the solution that initiated the past move. (Note that avoiding Xj ~ q is the same as compelling Xj = q, which is more restrictive than avoiding Xj = p.)
The problem illustrated at the start of this chapter gives an instructive example of options created by identifying tabu attributes in this way. The swap moves of the illustration consist of selecting two items. j and k, where item j occupies position p and item k occupies position q, and then exchanging their positions. Let Xu = v denote the statement "item u is assigned to position v." Hence the the swap move for interchanging the positions of items j and k can be represented as consisting of the two operations "from Xj =p to Xj = q" and "from Xk = q to Xk =p." Subdividing these operations into their components. we can express the outcome as consisting of the following changes:
20 I GLOVER and LAGUNA
from Xj =p toXj ~ p from Xj ~ q to Xj = q from Xk = q to Xk ~ q from Xk ~ P to Xk =p,
Thus, any combination of the preceding fromattributes can be selected to represent corresponding toattributes of a move currently under consideration, for the purpose of defIning a tabu restriction applicable to this move. We may elect, for instance, to rely on just the first and third of the preceding fromattributes, using the tabu restriction that classifies a move tabu only if it contains both Xj = P and xl = q as toattributes. (Hence this prevents the current move if it transfers item j to position p and item k to position q, where items j and k were respectively moved out of these two positions in the past, though not necessarily on the same move.) This is a weaker restriction than one based on either the second or fourth fromattribute above, rendering a move tabu if it contains Xj :to q or xl :to p as a toattribute, hence essentially compelling the current move to result in Xj = q or xl = P (or at least one or both, depending on the restriction chosen). One implication of choosing stronger or weaker tabu restrictions is to render smaller or larger tabu tenures appropriate.
Effect of Variable Codings. Different codings of variables also lead to different consequences for creating tabu restrictions. For example, if Xu = v instead is given the interpretation "item u immediately precedes item v," then the swap of items j and k yields an altered set of attributes with different associated possibilities. Denoting the two items that immediately precede and immediately follow j by p and q, and the two items that immediately precede and immediately follow k by rand s, we see that the swap creates the following changes:
fromx.=qtox.=s
:I :I
from Xk = S toxk = q from Xp = j to xp = k from x, = k to x, = j.
Moreover, each of these subdivides into two additional components (for example, the first becomes "from Xj = q to Xj * q" and "from Xj * S to Xj = sIt), yielding a set of options for defIning tabu restrictions that is considerably expanded over those of the preceding coding of the
variables. Representationally, there may be multiple options for characterizing the same set of attributes, and it is appropriate to use one that is natural for the problem setting. In this case, for example, it is convenient to represent the condition "item u immediately precedes item v" as an arc (u, v) from node u to node v in a directed graph, and by this convention the statement "from
Tabu Search I 21
Xj = q to Xj = s" corresponds to saying "arc (i, q) replaces arc (i, s)." A component change of the form "from Xj = q to Xj ~ q" (or "from Xj ~ q to Xj = q") then corresponds to saying that arc (i, q) is dropped from (or added to) the graph. We note it is always possible to encode the pair of conditions Xj = q and Xj ~ q as the assignment of values to a binary variable, e.g., letting Xjq = 1 denote Xj = q and letting Xjq = 0 denote Xj ~ q, and in the present example this yields the standard algebraic notation for expressing that arc (i, q) is absent or present in a graph.
Broadly speaking, regardless of the representation employed, a move can be determiried to be tabu by a restriction defmed over any set of conditions on its attributes, provided these attributes are currently tabuactive. As the precedirig discussion illustrates, a common type of restriction operates by selecting some subset of attributes and declaring the move to be tabu if a certairi miriimum number (e.g., one or all) are tabuactive.
2.6
Recency Based Tabu Memory Functions
To keep track of the status of move attributes that compose tabu restrictions, and to determine when these restrictions are applicable, several basic kinds of memory functions have been found useful. Two common examples of recency based memory functions are specified by the arrays tabu_start(e) and tabu_end(e), where e ranges over attributes relevant to a particular application. These arrays respectively identify the starting and ending iterations of the tabu tenure for attribute e, thus bracketing the period during which e is tabuactive.
The rule to identify appropriate values for tabu_start(e) and tabu_end(e) results by keeping track of the attributes at each iteration that are components of the current move. In particular, on iteration i, if e is an attribute of the current move, and tabu status is defined to avoid reversals, then we set tabu_start(e) = i + 1, indicating that the reverse attribute e begins its tabu active status at the start of the next iteration. (For example, if e represents "from Xj = p" then e can represent "to Xj = p.") Attribute e will retain this status throughout its tabu tenure, which we denote by t. Then this yields tabu_end(e) = i + t, so that the tenure for e ranges over the t iterations from i + 1 to i + t.
As a result, it is easy to test whether an arbitrary attribute e is tabuactive, simply by checking to see if tabu_end(e) ~ current_iteration. Initializing tabu_end(e) = 0 for all attributes assures that tabu_end(e) < current_iteration, and hence that attribute e is tabuinactive, until the update previously specified is performed. This suggests we need to keep only the single array tabu_end(e) to provide information about tabu status. However, we will see that situations arise where it is valuable to keep tabu_start(e), and either to infer tabu_end(e) by adding an appropriate value of t (currently computed, or preferably extracted from a prestored sequence), or to maintain tabu_end(e) as a separate anay.
Memory often can be further simplified when attributes represent binary alternatives, such as changing from Xj = 0 tOXj = 1. Then, instead of recording a separate value tabu_start(e) for
22 I GLOVER and LAGUNA
each of these attributes, it suffices simply to record a single value tabu_startv). We automatically know whether tabu_start(j) refers to changing from Xj = 0 to Xj = 1 or the reverse, by taking account of the value of Xj in the current solution. If cwrently Xj = 1, for example, the most recent change was from Xj = 0 to Xj = 1. Then the reverse attribute, derived from changing Xj from 1 to 0, is the one whose tenure is represented by the value of tabu_startv). (We assume that the latest tabu tenure assigned to an attribute takes precedence over all others.)
Regardless of the data structure employed, the key issue for creating tabu status using recency based memory is to determine a "good value" of t. Rules for determining t are classified as static or dynamic. Static rules choose a value for t that remains fixed throughout the search. Dynamic rules allow the value of t to vary. Examples of these two kinds of rules are as follows.
Illustrative Rules to Create Tabu Tenure
(Recerx:y Based)
Dostları ilə paylaş: 