Anda di halaman 1dari 13

Computers & Industrial Engineering 44 (2002) 3547

www.elsevier.com/locate/dsw

A tabu search based algorithm for minimizing the number of tool switches on a exible machine
M.A. Al-Fawzan*, K.S. Al-Sultan
King Abdulaziz City for Science and Technology, P.O. Box 6086, Riyadh 11442, Saudi Arabia Received 7 April 2002; accepted 10 June 2002

Abstract The tool switching problem consists of N jobs which must be processed on a single exible machine. The machine contains a tool magazine which has a limited capacity of C slots. Each job requires a set of tools and the total number of tools, M, required to process all N jobs is greater than C. The problem is to nd a job sequence and the tools to be loaded on the machine before each job in the sequence such that the total number of tool switches is minimized. A variety of tabu search algorithms for solving this problem are proposed. The algorithms are tested on some random test problems and are compared with the basic algorithm. Computational results show that the use of recency-based and frequency-based memory along with strategic oscillation produce the best results. q 2002 Elsevier Science Ltd. All rights reserved.
Keywords: Tool switches; Tabu search; Flexible machine; Sequencing; Strategic oscillation

1. Introduction The problem of tool switching on a exible machine (TSFM) is concerned with nding the best job sequence and best tool loading policy in order to minimize the number of tool switches. The TSFM problem is of special importance whenever the tool switch time is signicant compared to the processing time (Tang & Denardo, 1988), and arises in situations where numerically controllable machines are used in exible manufacturing systems to produce parts. Prominent examples of the problem occur in the metal working industry and in the electronic industry (Bard, 1988; Tang & Denardo, 1988). Other examples can be found in Bard and Feo (1989), Finke and Kusiak (1987), and Hirabayashi, Suzuki, and Tsuchiya (1984). This problem is NP-hard, see Crama, Kolen, Oerlemans, and Spieksma (1994). Therefore, an
* Corresponding author. Fax: 966-1-481-3991. E-mail address: mfawzan@kacst.edu.sa (M.A. Al-Fawzan). 0360-8352/02/$ - see front matter q 2002 Elsevier Science Ltd. All rights reserved. PII: S 0 3 6 0 - 8 3 5 2 ( 0 2 ) 0 0 1 8 3 - 3

36

M.A. Al-Fawzan, K.S. Al-Sultan / Computers & Industrial Engineering 44 (2002) 3547

exact solution for even medium size problems is almost impossible, and one has to resort to heuristics. The problem has been considered by many researchers. Bard (1988) formulated the problem as a nonlinear integer programming and suggested a dual-based relaxation heuristic to solve it. Tang and Denardo (1988) proposed a greedy procedure that uses some lower bounds on the number of tool switches. Crama et al. (1994) suggested several heuristics for solving the problem. In all of the previous work, the concentration has been focused on the job sequencing since the tool loading problem can be solved optimally and in polynomial time by the keep tool needed soonest (KTNS) policy (Tang & Denardo, 1988). In this paper, we propose a new tabu search based algorithm for solving the TSFM problem. We also develop several modications of the proposed algorithm. This paper is organized as follows: the problem statement is given in Section 2. In Section 3, we give a brief introduction to tabu search. The proposed algorithm is stated in Section 4. In Section 5, we present extensions of the proposed algorithm. Computational results and discussion are presented in Section 6. Finally, conclusions are given in Section 7.

2. TSFM problem statement N jobs have to be processed on a single machine, one at a time. The machine has a tool magazine of a limited capacity of C tools (i.e. C slots in the tool magazine). Each job requires a subset of tools and no job requires more than C tools. Let M be the number of tools needed to produce all the N jobs, where it is assumed that C is less than M. A tool switch occurs if a tool is removed from the tool magazine and another tool is inserted. (That is, if the current job on the machine requires a tool, which is not on the tool magazine, then a switch must occur). The problem is to determine a job sequence and an associated sequence of loadings for the tool magazine. This problem can be divided into two interrelated subproblems: 1. Job sequencing: nd the optimal job sequence. 2. Tool loading: given a xed sequence, determine the optimal tool loading on the tool magazine so that the total number of tool switches is minimized. Tang and Denardo (1988) proved that the tool loading subproblem can be solved optimally by the socalled KTNS policy. Hence, the real difculty lies in solving the job-sequencing problem. Assumptions that apply to the tool switching problem are given below: 1. 2. 3. 4. 5. 6. The tool magazine is always fully loaded. One tool is changed at a time. Tool changing times are constant and identical. Each tool ts in only one slot of the magazine. Tools do not break down and do not wear out. All jobs are known in advance and the subset of tools required by each job is xed.

M.A. Al-Fawzan, K.S. Al-Sultan / Computers & Industrial Engineering 44 (2002) 3547

37

The problem data is represented by an M N tool requirement matrix A, with: ( 1 if job j requires tool i aij 0 otherwise; for i 1; 2; ; M and j 1; 2; ; N: 3. Tabu search Tabu search is a metaheuristic that guides local heuristic search procedures to explore the solution space beyond local optimality, introduced by Glover (1986, 1989, 1990) specically for combinatorial problems. Since then, tabu search has been applied to a wide range of problem settings. Example of applications may be found in Al-Fawzan and Hoymani (2000). The tabu search starts at some initial point and then moves successively among neighboring points. A candidate list of solutions is generated, by a strategy designed to include higher quality neighbors on the candidate list. At each iteration a move is made to the best point in the neighborhood of the current point that is a member of the candidate list (which may not be an improving solution). The method forbids (makes tabu) points with certain attributes with the goals of preventing cycling and guiding the search towards unexplored regions of the solution space. This is done using an important feature of the tabu search method called tabu list. A tabu list consists of the latest moves made so that recently visited points are not generated again. The size of the tabu list can be either xed or variable. In its simplest form, tabu search requires the following ingredients: Initial point Mechanism for generating some candidate neighborhood of the current point Tabu list Aspiration criterion Stopping criterion.

For more complete description of this method, see Glover and Laguna (1997). The above version of tabu search is a primitive one that considers only short term memory. More elaborate (and complete) versions introduce long-term memory elements, which typically provide considerable improvements. In this paper, we include such elements by implementing recency-based and frequency-based memory structures, strategic oscillation, and probabilistic oscillation (OS) features as subsequently indicated. 4. The proposed algorithm As explained in Section 2, we will concentrate on the job sequencing problem since it is the hard part of the problem to solve. Our proposed algorithm uses tabu search to generate a set of job sequences and for every sequence, we use the optimal KTNS algorithm to get the optimal tool loading policy. The short term memory component of the algorithm can be summarized as follows: start with any initial sequence of jobs and compute its number of tool switches and store it as the best solution so far. Using this

38

M.A. Al-Fawzan, K.S. Al-Sultan / Computers & Industrial Engineering 44 (2002) 3547

sequence, generate a set of neighbor sequences. For every sequence, nd the optimal loading policy by the KTNS algorithm, and count the resulting number of tool switches. Then the best nontabu improving sequence (or best nontabu if no improving sequence is found) is selected and its associated attribute is stored in the tabu list (recency frequency based memory structure). This procedure is repeated and controlled by tabu search until a predetermined number of iterations performed. Next, we formally present the short-term component of our algorithm.

4.1. Statement of the short term tabu search (ST-TS) algorithm 4.1.1. Initialization step Choose nbhsize (the size of the neighborhood). Choose a suitable size for the tabu list, TL: Choose MAXITER (the maximum number of iterations). Choose an initial sequence S. Let Scurrent S; Smin S; Sbest S: Let nswchS be the number of tool switches incurred by the sequence, S. Let TL f; BV nswchS: Let k 1 and go to the main step. 4.1.2. Main step 1. Generate nbhsize random sequences from Scurrent : min 1: For h 1 to nbhsize; Do Obtain S from Scurrent using a neighborhood generating scheme. Apply KTNS procedure (stated below) on S. Evaluate nswchS: If nswchS , min then min nswchS; Smin S: 2. Check Tabu Status If Smin [ TL or (Smin [ TL and min , BV then go to step 3; otherwise go to step 1. 3. Update Current Point Let Scurrent Smin TL Smin If min , BV then BV min; and go to step 4. 4. Check stopping criterion If k MAXITER; go to step 5; otherwise, replace k by k 1; and go to step 1. 5. Stop. Sbest is the best sequence found with total number of switches equals BV:

4.1.3. KTNS procedure (Tang & Denardo, 1988; Bard, 1988) For completeness, we restate the KTNS algorithm (Tang & Denardo, 1988; Bard, 1988). We introduce two new sets, Ii; n and Ji; n: The rst contains each instant after n in which tool i is needed and the second contains the rst instant after n in which tool i is needed. If Ii; n f; put Ii; n {N 1}: To implement the algorithm, remember that C tools should always be on the tool magazine.

M.A. Al-Fawzan, K.S. Al-Sultan / Computers & Industrial Engineering 44 (2002) 3547

39

Now given a xed job sequence, the KTNS algorithm can be stated as follows: 1. 2. 3. 4. 5. 6. Set n 1: Let SOT be the sum of the tools required by job n. If SOT C; go to step 4; otherwise go to step 5. If n N; stop; otherwise set n n 1 and go to step 2. Let ip min{Ji; n : i 1; ; M}: Load ip and set Jip ; n N 2: Go to step 2.

5. Extensions of the short term TS algorithm In this section, we present some extensions to the short term algorithm (ST-TS) which was discussed in Section 4. 5.1. Generation of random sequences We have considered the following two schemes for generating random sequences (i.e. moves) from a current sequence. 5.1.1. Random swapping scheme Let Si be the ith component of the sequence S, where 1 # i # N and N is the number of the jobs. To generate a random sequence using RS, perform the following steps: 1. Select two positions in the sequence i and j randomly, where i j: 2. Swap Si with Sj : For example, suppose we have the following sequence: {1; 2; 3; 4; 5}: Suppose that we select randomly i 2 and j 5: Then, the new sequence will be {1; 5; 3; 4; 2}: 5.1.2. Random block insertion scheme The random block insertion (RBI) scheme is an extension of the usual insertion. That is, if the size of the block is one, we have the usual insertion in which a job is selected at random, removed from its current position, and inserted in a randomly selected position. To generate a random sequence using RBI scheme, we use the following steps: 1. Select a position in the sequence, begin; randomly. This corresponds to the starting position of the block in the sequence. 2. Select a position in the sequence, at; randomly. This corresponds to the position where the block is going to be inserted at in the sequence. 3. Select the size of the block, size; randomly with the following condition: If begin , at; size # at 2 begin; otherwise size # N 2 begin 1 4. Remove the jobs in the positions begin; begin 1; ; begin size 2 1 and insert the block consisting of these jobs at position at:

40

M.A. Al-Fawzan, K.S. Al-Sultan / Computers & Industrial Engineering 44 (2002) 3547

For example, suppose we have the following sequence: {1; 2; 3; 4; 5}: Suppose that we select randomly begin 2; size 2; and at 5: Then, the new sequence will be {1; 4; 5; 2; 3}: 5.2. Recency-based and frequency-based memory structures In our extensions, we implement both short term and long term memory schemes as indicated. For short-term memory, we have used recency-based memory structure. For long-term memory, we have used frequency-based memory structure. For the random swapping (RS) scheme, we used the same method suggested by Glover, Kelly, and Laguna (1995). However, for random block insertion (RBI) scheme, we modify the method as follows: for each possible value of size, there is a corresponding recency frequency based memory structure. These memory structures have been utilized to inuence the search process. This was done by applying the memory to affect the choice of the best neighbor (move). To illustrate, let Ri; j be the tabu tenure of the pair i; j in the recency memory where a tabu tenure for a pair i; j is dened as the number of iterations where this pair is considered tabu. Let Fi; j be the frequency of the pair i; j from the long term memory where a frequency of a pair i; j is dened as the number of times during the search process where this pair has been exchanged. Let PR and PF be the penalty given to recency-based memory and frequency-based memory, respectively. We update the objective function ( f ) as follows: f f PR Ri; j PF Fi; j where f is number of tool switches. In our experiments, we have used PR 1 and PF 1: 5.3. Strategic oscillation Strategic oscillation (SO) as explained in Glover, Kochenberger, and Alidaee (1996) is a nonmonotonic guidance mechanism that directly or indirectly underlies many tabu search implementation. We propose a strategic oscillation scheme by using a straightforward type of oscillation which alternates between RBI (generate the neighbors using random block insertion) and RS (generate the neighbors using random swapping) for a number of cycles, cycle: Fig. 1 shows our proposed SO scheme. One can see that this proposed scheme starts by doing more diversication (by using random block insertion which is a major rearrangement of jobs) till no improvement is obtained for a number of iterations, say MITER1; then intensication is done around the best solution obtained in the cycle (by using RS which is kind of a local rearrangement of jobs) till no improvement is found for a number of iterations, say MITER2; and then the process is repeated. 5.4. Probabilistic oscillation PO is an extension of strategic oscillation. PO oscillates randomly in the choice between the two types of moves. One hopes that this random oscillation may lead to new regions in the solution space. One can control this randomness by introducing a control parameter, called POW : This parameter controls the percentage of calls for a certain move. For example, suppose that POW 0:3; then approximately 30% of the moves will be of the rst type (RS) while the remaining moves will be of the second type (RBI). The word approximately is used because we draw a random number and check if it is less than 0.3, then 1

M.A. Al-Fawzan, K.S. Al-Sultan / Computers & Industrial Engineering 44 (2002) 3547

41

Fig. 1. Our proposed strategic oscillation scheme.

a move of the rst type is generated, otherwise a move of the second type is generated. In our implementation of PO, we used an oscillation, which alternates between RS scheme and RBI scheme. Fig. 2 shows our implementation of PO. 5.5. The extended versions We have used the above elements to extend the short term algorithm (ST-TS) explained in Section 4. In all the extensions, we have implemented both recency-based and frequency-based memory structures. In two of them, we have used PO and in one of them, we have used strategic oscillation. These extensions are explained as follows: 1. TSA-II: recency- and frequency-based memory structures, only RS scheme (see Section 5.1.1). 2. TSA-III: recency- and frequency-based memory structures, only RBI scheme (see Section 5.1.2). 3. TSA-IV: recency- and frequency-based memory structures, both RS and RBI schemes, and a PO scheme with POW 1=2 (see Section 5.4). 4. TSA-V: recency- and frequency-based memory structures, both RS and RBI, and a PO scheme with POW 1=3 (see Section 5.4).

42

M.A. Al-Fawzan, K.S. Al-Sultan / Computers & Industrial Engineering 44 (2002) 3547

Fig. 2. Our implementation of probabilistic oscillation.

5. TSA-VI: recency- and frequency-based memory structures, both RS and RBI, and a strategic oscillation scheme with cycle 2 (see Section 5.3). 6. Computational results and discussion In this section, we discuss various implementation details and results of our computational experiments. 6.1. Parameter setting Tabu search is a parameter sensitive technique similar to simulated annealing and genetic algorithms. We have conducted an extensive parametric study on the proposed algorithm. The results of this study show that the following set of parameters give the best performance for the basic algorithm (ST-TS): nbhsize 10N; tabu list size, TL 7; MAXITER 5:

M.A. Al-Fawzan, K.S. Al-Sultan / Computers & Industrial Engineering 44 (2002) 3547

43

For the other algorithms (TSA-II,,TSA-VI), the following set of parameters are used: nbhsize 5N; tabutenure 5; PR 1 and PF 1; MITER1 3 and MITER2 3; MAXITER 5: 6.2. Test problems We test our algorithm (TSA) using a set of random problems. We generate these random problems as suggested by Tang and Denardo (1988). We compare our algorithm with the basic algorithm as well as with the random sequencing. For convenience, we show how we generate those random problems. 1. We have ve cases. Case 1: N 10; M 10; C 4; Case 2: N 20; M 15; C 8; Case 3: N 30; M 25; C 10; Case 4: N 40; M 30; C 15; and Case 5: N 50; M 40; C 25: 2. We consider ve data sets in each case. In each data set, we generate a random M N tool requirement matrix A as follows: for each job j, the number of tools required is uniformly distributed over 1; C: We make sure that the set of tools required by each job is not a subset of the set of tools required by any other job. 3. For each case, we apply the KTNS policy (Tang & Denardo, 1988) on random job sequences to determine the tool switches for a CPU time equals the CPU time of the short-term algorithm (ST-TS). 6.3. Results and discussion Tables 1 5 show the results of our experiments. The column labeled Time shows the CPU time in seconds taken by ST-TS on an IBM personal computer equipped with 80486 microprocessor and using Microsoft QuickBasic. The following notation is used for each table. Min Max Mean s ST-TS Time Dev the minimum number of tool switches found in all the random job sequences. the maximum number of tool switches found in all the random job sequences. the average number of tool switches of all the random job sequences. the standard deviation of the number of tool switches of all the random job sequences. the number of tool switches found by ST-TS (the short term algorithm). the CPU time in seconds needed by ST-TS. percentage deviation from Min for ST-TS ((Min 2 (ST-TS))/Min) 100.

Tables 1 5 show that the number of tool switches found by ST-TS is far below the Mean. As a matter of fact, in most of the problems it is below the minimum by approximately 10 25%. To show the effect of the use of recency-based memory, frequency-based memory, strategic

44

M.A. Al-Fawzan, K.S. Al-Sultan / Computers & Industrial Engineering 44 (2002) 3547

Table 1 Results of ST-TS for Case 1: N 10; M 10; C 4 Data set 1 2 3 4 Min 7 5 7 6 Max 12 9 13 14 Mean 8.84 7.14 10.07 10.44

s
4.74 5.56 6.85 7.87

ST-TS 7 5 7 6

Time 31.64 32.13 32.08 31.30

Dev 0.00 0.00 0.00 0.00

Table 2 Results of ST-TS for Case 2: N 20; M 15; C 8 Data set 1 2 3 4 5 Min 22 25 17 21 24 Max 40 38 30 37 39 Mean 30.55 31.24 23.99 29.01 32.11

s
16.89 14.12 11.23 14.51 13.88

ST-TS 18 20 16 20 24

Time 249.62 232.55 226.01 210.35 210.08

Dev 18.18 20.00 5.88 4.76 0.00

Table 3 Results of ST-TS for Case 3: N 30; M 25; C 10 Data set 1 2 3 4 5 Min 75 46 58 66 74 Max 105 66 82 91 102 Mean 89.07 54.88 69.89 77.92 88.52

s
26.07 19.43 22.71 22.82 26.12

ST-TS 63 37 49 53 64

Time 1111.46 966.56 1018.92 1118.72 1146.73

Dev 16.00 19.56 15.51 19.69 13.51

Table 4 Results of ST-TS for Case 4: N 40; M 30; C 15 Data set 1 2 3 4 5 Min 73 87 75 90 92 Max 105 121 106 128 130 Mean 91.22 103.02 90.62 105.86 111.30

s
26.98 30.63 29.21 30.62 35.02

ST-TS 60 65 61 69 69

Time 2365.20 2528.16 2524.26 2394.75 2987.57

Dev 17.80 25.28 18.66 23.33 25.00

oscillation, and PO features, we compare ST-TS with the other variants of the tabu search algorithm explained in Section 4. Table 6 shows the comparison. One should remember that all variants of the tabu search algorithm are run for the same CPU times given in Tables 1 5. To compare ST-TS with the extended versions, we calculate the percentage improvement of each algorithm over the ST-TS as follows: percentage improvement over ST-TS ST-TS 2 TSA 2 k=ST-TS 100; where k II, III, IV, V, and VI.

M.A. Al-Fawzan, K.S. Al-Sultan / Computers & Industrial Engineering 44 (2002) 3547 Table 5 Results of ST-TS for Case 5: N 50; M 40; C 25 Data set 1 2 3 4 5 Min 129 147 99 159 162 Max 174 188 136 198 205 Mean 152.11 160.52 114.87 172.53 181.24

45

s
37.47 35.96 33.21 34.61 35.74

ST-TS 113 117 71 136 137

Time 4398.10 4685.92 5093.90 4983.26 4769.34

Dev 12.40 20.40 28.28 14.46 15.43

It can be seen from Table 7 that by introducing long term memory elements, we have, in general, obtained on average a saving of 10% over the short term tabu search algorithm. In some problems, the saving is as high as 30%. Considering the average performance of each algorithm, TSA-VI is the best, while TSA-III is second though very close to TSA-VI, followed by TSA-V, TSA-IV, and TSA-II, respectively. Standard deviations are not signicantly different from one algorithm to another.
Table 6 Comparison of the short-term algorithm with the other algorithms N 10 M 10 C 4 Data set 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 ST-TS 7 5 7 6 5 18 20 16 20 24 63 37 49 53 64 60 65 61 69 69 113 117 71 136 137 TSA-II 7 5 7 6 5 16 18 14 15 18 59 31 44 49 56 55 64 60 67 68 103 106 71 131 130 TSA-III 7 5 7 6 5 15 17 12 14 18 55 31 41 48 54 46 60 56 62 63 99 103 68 126 124 TSA-IV 7 5 7 6 5 17 17 15 16 18 58 32 42 47 59 51 64 56 62 63 92 99 71 123 120 TSA-V 7 5 7 6 5 17 17 15 15 19 53 35 41 49 54 55 60 56 61 64 93 104 68 121 120 TSA-VI 7 5 7 6 5 15 17 15 15 17 52 29 43 49 55 53 62 55 60 57 95 97 66 123 118

20

15

30

25

10

40

30

15

50

40

25

46

M.A. Al-Fawzan, K.S. Al-Sultan / Computers & Industrial Engineering 44 (2002) 3547

Table 7 Percentage of deviation from ST-TS N 10 M 10 C 4 Data set 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 TSA-II 0.00 0.00 0.00 0.00 0.00 11.11 10.00 12.50 25.00 25.00 6.34 16.21 10.20 7.54 12.50 8.33 1.53 1.64 2.89 1.44 8.84 9.40 0.00 3.67 5.10 25.00 0.00 7.17 7.08 TSA-III 0.00 0.00 0.00 0.00 0.00 16.66 15.00 25.00 30.00 25.00 12.69 16.21 16.32 9.43 15.63 23.33 7.69 8.19 10.14 8.69 12.39 11.96 4.22 7.35 8.03 30.00 0.00 11.35 8.32 TSA-IV 0.00 0.00 0.00 0.00 0.00 5.55 15.00 6.25 20.00 25.00 7.93 13.51 14.28 11.32 7.81 15.00 1.53 8.19 10.14 8.69 18.58 15.38 0.00 9.55 12.40 25.00 0.00 9.04 6.96 TSA-V 0.00 0.00 0.00 0.00 0.00 5.55 15.00 6.25 25.00 20.83 15.87 5.40 16.32 7.54 15.62 8.33 7.69 8.19 11.59 7.24 17.69 11.11 4.22 11.03 12.40 25.00 0.00 9.31 6.76 TSA-VI 0.00 0.00 0.00 0.00 0.00 16.66 15.00 6.25 25.00 29.16 17.46 21.62 12.24 7.54 14.06 11.66 4.61 9.83 13.04 17.39 15.92 17.09 7.04 9.55 13.86 29.17 0.00 11.40 7.87

20

15

30

25

10

40

30

15

50

40

25

Max Min Avg. Std. dev.

7. Conclusions In this paper, a new algorithm for the tool switching problem has been proposed based on tabu search. Various versions of the algorithm that utilize both short term and long-term memory structures have been developed and implemented. Computational results show that the proposed algorithm and its variants are very promising. Long-term memory structures in particular have signicant effect on the performance of the algorithm. The algorithm can be extended by considering other features for generating random sequences. One can also extend the work by considering two (or more) exible machines sharing the same tool magazine.

M.A. Al-Fawzan, K.S. Al-Sultan / Computers & Industrial Engineering 44 (2002) 3547

47

Acknowledgments The authors would like to thank the anonymous referees for their helpful comments which have improved the paper. References
Al-Fawzan, M. A., & Hoymani, F. (2000). Placement of network servers in a wide-area network. International Journal of Computers and Telecommunications Networks (Computer Networks and ISDN Systems), 34, 355 361. Bard, J. F. (1988). A Heuristic for minimizing the number of tool switches on a exible machine. IIE Transactions, 20(4), 382 391. Bard, J. F., & Feo, T. A. (1989). The cutting path and tool selection problem in computer-aided process planning. Journal of Manufacturing Systems, 8(1), 17 26. Crama, Y., Kolen, A. W. J., Oerlemans, A. G., & Spieksma, F. C. R. (1994). Minimizing the number of tool switches on a exible machine. International Journal of Flexible Manufacturing Systems, 6, 33 54. Finke, G., & Kusiak, A. (1987). Models for the process planning problem in a exible manufacturing system. International Journal of Advanced Manufacturing Technology, 2, 3 12. Glover, F. (1986). Future paths for integer programming and linkage to articial intelligence. Computers and Operations Research, 13, 533 549. Glover, F. (1989). Tabu search-part I. ORSA Journal on Computing, 1, 190 206. Glover, F. (1990). Tabu search-part II. ORSA Journal on Computing, 2, 4 32. Glover, F., & Laguna, M. (1997). Tabu search, Kluwer Academic Publishers. Glover, F., Kelly, J. P., & Laguna, M. (1995). Genetic algorithms and tabu search: Hybrids for optimization. Computers and Operations Research, 22, 111 134. Glover, F., Kochenberger, G. A., Alidaee, B (1996). Adaptive memory tabu search for binary quadratic programs. Working Paper. Boulder, CO: Graduate school of business, University of Colorado. Hirabayashi, R., Suzuki, H., & Tsuchiya, N. (1984). Optimal tool module design problem for NC machine tools. Journal of the Operations Research Society of Japan, 27(3), 205 228. Tang, C. S., & Denardo, E. V. (1988). Models arising from a exible manufacturing machine. Part I: Minimization of the number of tool switches. Operations Research, 36(5), 767 777.