SCHEDULING PROBLEMS WITH SEQUENCE DEPENDENT SETUP TIMES. Alexandre S. Mendes. 1 .... iterations (10n) with no improvement in the incumbent ...
&203$5,1*0(7$+(85,67,&$3352$&+(6)253$5$//(/0$&+,1( 6&+('8/,1*352%/(06:,7+6(48(1&('(3(1'(176(7837,0(6 $OH[DQGUH60HQGHV )HOLSH00OOHU 3DXOR0)UDQoD and3DEOR0RVFDWR
^VPHQGHVIUDQFDPRVFDWR`#GHQVLVIHHXQLFDPSEU IHOLSH#LQIXIVPEU
)DFXOGDGHGH(QJHQKDULD(OpWULFDHGH&RPSXWDomR 8QLYHUVLGDGH(VWDGXDOGH&DPSLQDV81,&$03 &3&(3&DPSLQDV63%UD]LO
1
'HSDUWDPHQWRGH(OHWU{QLFDH&RPSXWDomR 8QLYHUVLGDGH)HGHUDOGH6DQWD0DULD &DPSXV8QLYHUVLWiULR&(36DQWD0DULD56%UD]LO 2
$EVWUDFW The aim of this paper is to compare the performance of two meta-heuristic methods proposed for solving the identical parallel machine scheduling problem with sequence dependent setup times. The first algorithm is a tabu search based heuristic and the second a memetic approach, which combines populationbased method with local search procedures. As benchmarks for small-sized instances we use optimal solutions provided by a dichotomous search. For larger instances the comparisons rely on the best known solutions. .H\ZRUGV Machine scheduling, Parallel machines, Meta-heuristics, Tabu search, Memetic algorithms.
1.
INTRODUCTION
This paper deals with the problem of scheduling a given set of Qjobs to Pidentical parallel machines with the objective of minimizing the makespan. There is a sequence dependent machine setup time, LH the machine changeover time is dependent on which job is currently being processed on the machine. This made-to-stock scheduling problem arises frequently from real world settings where the setup times are significant, as the ones encountered in the paper, chemical and textile industries. Following the three-field classification proposed by Graham HWDO, (1979) for scheduling problems, our problem can be categorized as P|sds|&PD[ Despite its relevance, few algorithms have been proposed for solving this problem. Dearing and Anderson, (1984) developed an integer linear programming model for loom assignment in a textile weaving operation. They reported results found through the rounding of the solutions obtained by the linear relaxation the integer model. Sumicharst and Baker, (1987) propose a heuristic method based on the solution of a series of 0-1 integer subproblems that improves on the results of Dearing and Anderson. These two articles deal with problem slightly different from ours because they assume that a job can be split among several machines. In our case the problem is combinatorial more complex. To the authors’ knowledge, only two papers have reported computational results for this problem. Frederickson HW DO.,(1978) present approximate algorithms derived from an equivalence between the P|sds|&PD[ and the
Traveling Salesman Problem (TSP). The other one is the paper of França HW DO, (1996) which uses a tabu search based heuristic in connection with a powerful neighborhood scheme that employs the concept of local and global neighbors. This paper considers the problem of nonpreemptively scheduling Qjobs, ---P to P identical parallel processors, 0 0 0P to minimize the completion time for the entire set of jobs. Each job -Mis assigned an integer and positive SURFHVVLQJWLPHSMand an integer and positive VHWXS WLPHVLM, if job -Mis executed immediately after job -L. The setup times may be considered asymmetric, that is, VLM ≠ VML The P|sds_&PD[ is a difficult combinatorial problem proved to be 13KDUG in a strong sense because it is equivalent to the TSP when the number of processors equals one (Baker, 1974). The main contribution of this paper is a comparison between two meta-heuristic approaches developed for its solution: the tabu search implementation of França HW DO, (1996) and a memetic algorithm (MA) adapted to solve the P|sds_&PD[ The MA implemented belongs to the hybrid-genetic algorithm class, which combines the strength of the genetic algorithms with local search. Comparisons are performed in two ways. For small-sized instances the two meta-heuristics are compared to optimal solutions obtained by a dichotomous search scheme (or to a lower bound when it fails). For medium to large instances the benchmark is the best-known solutions provided by a long time execution of the tabu search implementation.
2. TABU SEARCH ALGORITHM Tabu search (Glover and Laguna, 1997) is a metaheuristic that guides a local search procedure to explore the solution space beyond local optimality. The local procedure is a search that uses an operation called PRYH to define the neighborhood of any solution. Tabu search reduces the neighborhood by classifying certain moves as forbidden or tabu. This mechanism prevents cycling, LH., the indefinite execution of the same sequence of moves, and directs the search to regions not explored. The tabu search based algorithm proposed in this paper is an adaptation of the method developed in França HW DO (1996) capable of dealing with non-structured instances. It is composed of three phases: 3KDVH - An initial solution is constructed by assigning all jobs to the Pprocessors. 3KDVH - A local search heuristic controlled by a tabu search scheme is used to achieve improved solutions in terms of makespan moving jobs between different processors. 3KDVH - This is a final phase, which one tries to improve the sequence obtained in the busiest processor to achieve a better makespan. The initial solution is obtained by successively assigning each job to the machine that yields the least increase in the current makespan. Before describing the two other phases, consider the following definitions. The ORFDOQHLJKERUVof a job -M, relative to a machine, are the closest T successors and the closest T predecessors among the jobs already assigned to this machine, where T is an input parameter. The closest successor of a job -M means the job -N with the least VMN, and the closest predecessor is the job -L with the least VLM. *OREDO QHLJKERUV of a job -M are its S closest successors and its S predecessors among all jobs, except -M itself. These concepts are used to constrain the search to a subspace of the search space, reducing the run time. In our algorithm, a move is defined as the removal of a job -Mfrom the busiest machine and its insertion in another machine of the set 0(-M) ={0L0L≠0 L and 0L includes among its jobs at least one -M's global predecessor or successor}, where 0 L is the busiest machine. During Phase 2, when executing a removal or an insertion of a job in machine 0L, the algorithm selects the best move with respect to the finishing time of all jobs assigned to this machine. Four different types of removal/insertion moves are considered and the best one is chosen to be performed. Details can be found in França HW DO(1996). ,QVHUWLRQ W\SHV For a given orientation of the sequence, consider -N a job in the sub-sequence from -M to -L and -O a job in the sub-sequence from
-L. After insertion, job -[ will appear between jobs -L and -M. 7\SH,Assume that -N ≠-L and -N ≠-M . Inserting -[ in, say, processor 0P, results in the deletion of links ( -L-L), ( -M-M) and ( -N-N) and their replacement by links ( -L -[ ), ( -[ -M ), (-L-N ) and (-M -N ). Note that the subsequences (-L-M ) and (-M-N) should appear inverted. 7\SH,,Assuming that -N ≠ -M -N ≠-M-O ≠-L
and -O≠-L the insertion of -[ in processor 0P results in the deletion of links (-L-L) ( -O -O ) ( -M -M) and (-N -N) that should be replaced by links ( -L-[) (-[-M) ( -O-M) ( -N-O) and ( -L-N ). As a consequence, the sub-sequences ( -L -O ) and ( -O -M ) are inverted. To cope with the asymmetric aspect inherent to the P|sds|&PD[, two other types of insertions can be defined. 7\SH,,, This type of insertion can be seen as the inverse of Type I insertion. When job -[ is inserted between -L and -M , the sequence of jobs is rearranged in such way that almost the whole sequence is inverted. The aim is to explore other regions of the search space, hoping that valleys of new promising solutions will be found. As in Type I insertion, we assume that -N ≠ -L -N ≠ -M The insertion of -[ implies the deletion of links (-L -L ) , ( -M -M ) and ( -N -N ) that should be replaced by links (-L-[ ) , ( -[-M ) , ( -N-M ) and (-N-L ). This cause the inversion of the sequences (-L-M) and (-N-L). 7\SH ,9 Analogously, Type IV insertion is the reverse of Type II. Again it is supposed that -N ≠-M
-N≠-M-O≠-Land -O≠-L The links deleted are ( -L-L), ( -O-O ) , ( -M-M) and ( -N -N), and the links added are (-L-[) , (-[-M) , ( -L-O) , ( -O-N ) and (-N-M). The sub-sequences that are inverted as a result are ( -L -O) and (-O-M). 5HPRYDOW\SHV The removal process is the reversal of the insertion process. Hence, only the Type I removal is presented. The other three types can be derived in a straightforward manner.
7\SH , Consider -M belonging to the local neighborhood of -L and -N belonging to the local neighborhood of -L , with -N being part of the sequence ( -L,..., -M). The removal of job -L consists in the deletion of links (-L -L ), ( -L -L ), ( -N-N ) and (-M-M) and in the addition of links (-L-N ), ( -L-M ) and ( -N -M ). The sequences ( -L-N ) and ( -N -M ) become inverted. After a move (insertion DQG removal) is performed, the reverse action is prohibited for the next θ iterations. The parameter θ is a random variable uniformly distributed in the interval [θ’, θ"]. We have concluded that the best choice was θ’=3 and θ"=7. Such as in most tabu search implementations, if the selected move is tabu but it yields a better makespan than the incumbent, override the tabu status and perform the move. The list of T local predecessors and successors affected by the changes in the two machines involved in the movement are updated. Phase III is a final adjustment in which we try to obtain a better makespan attempting to perform a removal and an insertion in the busiest machine exclusively. In case the busiest machine changes, repeat Phase III. The stopping criterion was chosen as the number of iterations (10Q) with no improvement in the incumbent solution. The values for the parameters S and T are empirically taken as S α Q
and
T =PD[ {3, α
where α is an input parameter.
Q } P
Two different versions of the tabu search heuristic were implemented. )DVWWDEX uses a fixed value of 0.6 for α and /RQJ WDEX tries to achieve better solutions allowing α to assume four distinct values, namely, 0.6, 0.8, 1.5 and 2.0. The best solution is selected. The tabu search procedures were implemented in C and the dichotomous search in FORTRAN. Computational results were obtained using a SUN SPARC 10 Workstation. 3. MEMETIC ALGORITHM APPROACH Genetic Algorithms (GAs) got recognition in the mid 70’s after John Holland's book entitled “$GDSWDWLRQLQ1DWXUDODQG$UWLILFLDO6\VWHPV” was published. Since then, due to its simplicity and efficiency, GA became widespread, and in the 80’s, a new class of “NQRZOHGJHDXJPHQWHG *$V”, sometimes called “K\EULG *$V”, started to appear in the literature. Recognizing important differences and similarities with other population-based approaches some of them were categorized as PHPHWLFDOJRULWKPV (MA) in Moscato (1989). Next
we show a pseudo-code representation of a localsearch-based PHPHWLFDOJRULWKP. SURFHGXUH Local-Search-based Memetic Algorithm; EHJLQ LQLWLDOL]H3RSXODWLRQ 3RS using FirstPop(); IRU(DFK individual L ∈ 3RS GR L := Local-Search(L); IRU(DFK individual L ∈ PDLQ3RSGR EvaluateFitness(L); UHSHDW /*generations loop */ IRU L:= 1 to UHFRPELQDWLRQV GR VHOHFW7R0HUJH a set 6SDU ⊆ 3RS; RIIVSULQJ := Recombine(6SDU[); if (VHOHFW7R0XWDWHRIIVSULQJ) then RIIVSULQJ := Mutate(RIIVSULQJ); RIIVSULQJ := Local-Search(RIIVSULQJ); EvaluateFitness(RIIVSULQJ); DGG,Q3RSXODWLRQ individual RIIVSULQJ to 3RS; HQG)RU XQWLOtermination-condition = True); HQG;
The initialization part begins at LQLWLDOL]H3RSXODWLRQ and ends just before the UHSHDW command. This part is responsible for generating, optimizing and evaluating the initial population (3RS). The second part includes the socalled “generation loop”. At each step, two parent configurations are selected for recombination and an offspring is produced and, if selected to mutate, it suffers a mutation process. The next steps are local search, evaluation and insertion of the new solution into the population. Finally, a termination condition is checked. 3RSXODWLRQVWUXFWXUH A population structure approach based on a ternary tree was chosen. In contrast with a non-structured population it divides the individuals in FOXVWHUV and restricts crossover possibilities. Leader
Cluster Supporters Figure 1. Population structure The structure consists of several clusters, each one consisting of a OHDGHU and three VXSSRUWHU solutions. The leader of a cluster is always better fitted than its supporters. This hierarchy makes top clusters have better fitted individuals than bottom clusters. As new individuals are constantly generated, replacing old ones, it is necessary periodic adjustments to keep this structure well ordered. The number of individuals in the population is restricted to the numbers of nodes in a complete ternary tree: 13, 40, 121, etc. That is, it is
necessary 13 individuals to construct a ternary tree with 3 levels, 40 to one with 4 levels and so on. 5HSUHVHQWDWLRQ The representation we have chosen for the P|sds_&PD[ is quite intuitive, with a solution being represented as a chromosome with the alleles assuming different integer values in the [1, Q] interval, where Q is the number of jobs. There are P cut-points in the chromosome that define the subsequences for each machine. For instance, < 3 8 5 * 1 7 4 10 * 2 9 6 > is a possible solution for a problem with 10 jobs and 3 machines. The cutpoints (*) are in positions 4 and 9. As machines are identical, no distinction must be made between the cut-points.
We implemented two mutation procedures Mutate() and RestartPop(); one is a light and the other is a heavy mutation procedure, respectively. The Mutate() function is applied to each individual with a probability of PXWBUDWH and once applied it mutates two alleles. Implementations with more changes per individual showed no improvement. In fact, when the number of alleles to be mutated increases, valuable information tends to be lost, worsening MA’s overall performance. The RestartPop() procedure, on the other way, mutates all individuals in the PDLQ3RS except the incumbent solution. The swapping procedure is applied on each individual Q times, so the resulting population resembles almost a randomized initial population. )LWQHVVIXQFWLRQ
5HFRPELQDWLRQ The crossover operator implemented is the well known 2UGHU&URVVRYHU(OX). After choosing two parents, a fragment of the chromosome from one of them is randomly selected and copied into the offspring. In the second phase, the offspring’s empty positions are sequentially filled according to the chromosome of the other parent. Parent A Parent B
1 3 * 6 5 2 * 7 4 5 4 1 * 6 7 3 * 2
Offspring
1st phase 6 5 2 *
2nd phase 4 6 4 1 6 4 1 * 6 4 1 * 6 Final Offspring 4 1 * 6
5 5 5 5 5
2 2 2 2 2
* * * * 7 * 7 3
As in this problem the objective is to minimize the makespan, the fitness function was chosen as:
I L = (PDNHVSDQL )−1 where PDNHVSDQL is makespan of solution L. The inversion is due to the fact that a large makespan shall be translated into a low fitness and vice-versa. 6HOHFWLRQRISDUHQWV
(A) (B) (B) (B) (B) (B)
In the example above, the fragment was selected from the parent A and consisted of the alleles < 6 5 2 * >. The child’s empty positions were then filled according to the order that the alleles appear in the chromosome of parent B. 0XWDWLRQ In our implementation a traditional mutation strategy based on job swapping was implemented. According to it, two positions are randomly selected and the alleles in these positions swap their values. The alleles that are swapped can be both related to jobs (two integers) or one to a job and the other to a cut-point. In the first case the jobs swapped belong to the same machine. In the second case the structure of the solution is changed, because the number of jobs in each machine is modified. The cases in which both positions selected are cut-points do not change anything at all.
Recombination can only be made between a leader and one of its supporters. Firstly a leader is selected randomly. Once the leader is selected, one of its three supporters is also randomly selected. An intensification procedure was implemented putting pressure on the best individual by obligating it to take part in approximately 10% of the recombinations. This procedure showed to be very effective. Tests revealed small but repeated improvements over the scheme without intensification. 2IIVSULQJLQVHUWLRQLQSRSXODWLRQ Once the leader and one supporter are selected, the recombination, mutation and local search take place and an offspring is generated. If the fitness of the offspring is better than the leader, the new individual takes its place. Otherwise it takes the place of the supporter that took part in the recombination. If the new individual is already present in the population, it is not inserted. We adopted a policy of not allowing duplicated individuals to reduce loss of diversity. After all individuals are inserted, the population is restructured. The fitness of the leader of a group must be lower than the fitness of the leader of the group just above it. Following this policy, the higher subgroups will have leaders with better fitness than the lower groups and the best solution will be the leader of the root subgroup. The adjustment is made by comparing the leader of
each subgroup with the leader of the subgroup just above. If the leader in the level below turns out to be better, they swap their places. /RFDOVHDUFK The first neighborhood implemented was the $OO 3DLUV,QWHUFKDQJH. It consists in swapping all pairs of jobs in a given solution. A ’KLOOFOLPELQJ’ algorithm can be defined by reference to this neighborhood; LH starting with an initial permutation of all jobs, every time a proposed interchange UHGXFHV RU PDLQWDLQV the makespan it is confirmed and another cycle of interchanges takes place, until no improvement is obtained anymore. The second neighborhood implemented was the Insertion neighborhood. It consists of removing a job from one position and inserting it into another one. The ’KLOOFOLPELQJ’ procedure is the same of the All-Pairs scheme. The best ’hillclimbing’ procedure is described next. 3KDVH Apply an All-pairs based local search on the VWDUWLQJ VROXWLRQ, until the solution reaches a local minimum. 3KDVH Apply an insertion-based local search on the solution obtained at phase 1, until the solution reaches a local minimum. 3KDVH If the starting solution of phase 1 is the same solution obtained after phase 2, stop. The solution is a local minimum for both neighborhoods. Otherwise, return to phase 1, with the VWDUWLQJVROXWLRQ updated. This procedure is very time-consuming. Other ’hillclimbing’ procedures were tested such as executing phases 1 and 2 only once, or making a single pass in each neighborhood, without guaranteeing that the solution obtained is a local minimum. These alternative approaches have not performed well. 3DUDPHWHUVHWWLQJ Parameter setting was done empirically, with three parameters: size of population, crossover rate and mutation rate. The ranges are showed next. – Size of population: 13, 40 or 121 individuals (population tree with 3, 4 or 5 levels) – Crossover rate: from 0 to 100% (step size=10%) – Mutation rate: from 0 to 100% (step size =10%) Initially all parameters are fixed at specific values within the ranges above. Then, we vary the size of population and keep its best value, i.e., the value that led to the best makespan. Next we start varying the crossover rate with the population size fixed. The process finishes when the mutation rate is fixed. This completes the first round. The best makespan found and the best parameters are saved and another round begins, now with the initial parameters set as the best ones in the last round.
This strategy showed that after 3 rounds at most no improvements in the makespan were observed. Results were very similar for both crossover and mutation rates, independently from the population size. Mutation should be set at very low rates, never greater than 0.1. The best crossover rates were found around 0.2 and 0.3. The best number of individuals was 121 for the 20 jobs problems; 40 individuals for 30, 40 and 50 jobs; 13 individuals for 60 or more jobs. This decrease is easily explained by the fact that, with a fixed time span, it is better to have few individuals and to perform more generations than to have many individuals and few generations. Two stop criteria based on CPU time were implemented for MA: – –
2 minutes CPU time for all configurations (0$). The same CPU time of Fast Tabu (0$HT).
Software was programmed in Java JDK 1.2 and run using a PC-Compatible PENTIUM II 266 MHz. 4. COMPUTATIONAL RESULTS The instances used in the computational experiments were randomly generated and the ranges used for QandP were [20, 100] and [2, 10], respectively. Processing times were generated following a discrete uniform distribution DU(1,100) and setup times followed a DU(1,10). We considered 10 replications for each configuration of number of jobs and machines. Hence, 420 instances were generated. As we use lower bounds and optimal values for comparison with small instances, 71 of them had to be discarded because it was not possible to obtain such solutions. The aim is to compare the performance of the Long Tabu and Fast Tabu implementations against the memetic approach (MA). For small-sized instances both methods could be compared to optimal solutions yielded by an exact method based on a dichotomous search (see Table 1). For those instances in which the exact method was not able to find an optimal solution, a good lower bound provided by the dichotomous search was employed for comparisons whenever possible. The last column in Table 1 shows the number of instances compared to optimal solutions (Opt) and to the lower bound (LB). The performance measure adopted in Table 1 is the average relative percentage with respect to optimum or to the lower bound. For larger instances, the exact method very often fails to find even a lower bound and so the meta-heuristics were compared to the best known solutions produced by exhaustive runs of Long Tabu. In Table 2, the performance of the heuristics is measured as the average relative percentage with respect to Long Tabu. The stopping criteria used
were 10Q iterations without improvement for tabu search methods. For MA we used the time criteria described in the last section. Table 1 - Comparisons with small instances QP
/RQJ
&38
)DVW
&38
7DEX
VHF
7DEX
VHF
20 2 30 40 50 60 80 100 20 3 30 40 50 60 80 100 20 4 30 40 50 60 80 100 0HDQ
0.43 0.66 0.53 0.42 0.36 0.17 0.17 1.07 0.89 0.89 0.75 0.64 0.43 * 1.76 1.35 1.44 0.99 0.94 0.61 0.45
304 2016 6576 14248 12957 50478 57823 54 277 968 2758 6613 23167 * 23 144 468 1216 3215 14435 36833
0.62 0.87 0.70 0.65 0.47 0.45 0.23 1.14 0.98 1.02 0.95 0.88 0.56 * 1.88 1.35 1.56 1.04 1.05 0.81 0.77
13.7 40.6 87.0 165.8 225.8 417.2 1751 3.6 10.5 22.9 45.7 65.9 348.6 * 3.1 8.7 17.2 35.6 59.3 93.4 197.4
0$
0$HT
2SW
0.16 0.50 0.56 0.52 0.55 0.45 0.37 0.55 0.65 0.92 0.87 0.76 0.68 * 1.06 1.22 1.16 0.99 1.05 0.93 0.83
0.27 0.55 0.61 0.50 0.50 0.41 0.36 1.01 1.09 1.00 0.94 0.82 0.66 * 1.61 1.49 1.51 1.22 1.13 0.98 0.81
10 / 0 10 / 0 10 / 0 9/0 6/4 1/4 3/0 4/6 3/7 2/8 0/7 2/4 3/5 0/0 0/8 0/2 0/3 0/3 0/5 0/4 0/6
/%
Table 2 - Comparisons with large instances 1P
)DVW
&38VHF
0$
0$HT
-1.11 -0.43 -0.06 0.34 0.18 0.39 0.54 -0.73 -0.51 -0.19 0.19 0.13 0.40 0.43 -1.48 -1.65 -0.20 -0.15 0.23 0.38 0.47
-0.61 0.31 0.20 0.50 0.43 0.46 0.48 -0.59 -0.15 0.31 0.53 0.34 0.54 0.56 -1.40 -0.99 0.30 0.26 0.48 0.57 0.53
7DEX
20 6 30 40 50 60 80 100 20 8 30 40 50 60 80 100 20 10 30 40 50 60 80 100 0HDQ
0.78 0.39 0.23 0.26 0.20 0.31 0.29 1.40 0.77 0.69 0.34 0.29 0.33 0.30 0.49 0.53 0.96 0.93 0.39 0.55 0.49
2.4 5.0 11.8 20.1 30.1 62.4 124.8 1.4 3.9 7.2 14.9 23.3 44.6 71.3 1.0 4.7 6.6 10.9 16.5 27.5 50.9
5. CONCLUSIONS The performance of MA in Table 1 was comparable to both Fast and Long Tabu. TheMA2 obtained results very near Long Tabu, especially for instances with fewer jobs. Tabu takes advantage of its well-designed neighborhoods in the larger instances. In table 2, MA2 average performance
surpassed the Long Tabu by 0.13%. The MAeq was only 0.15% worse than the Long Tabu, against a 3times worse 0.52% of the Fast Tabu. A test with MA running for a 1-minute fixed CPU time was also executed. Mean results were for instances in Table 1 and for Table 2. The MA was an adaptation of 1|sds|7WRWDO (França HW DO., 1999) to P|sds_&PD[. Changes occurred on ORFDO VHDUFK, UHSUHVHQWDWLRQ and ILWQHVV IXQFWLRQ only, requiring little effort to readapt the code. Nevertheless, the final algorithm did not loose performance, what shows the reusability robustness of the MA, one of its strengths. $FNQRZOHGJHPHQWV This work was supported by &RQVHOKR1DFLRQDOGH 'HVHQYROYLPHQWR&LHQWtILFRH7HFQROyJLFR (CNPq)Brazil and )XQGDomR GH $PSDUR j 3HVTXLVD GR (VWDGRGH6mR3DXOR (FAPESP)-Brazil. We would like to thank the &HQWUH GHV 5HFKHUFKH VXU OHV 7UDQVSRUWV, Université de Montréal, Canada, for the computational support in executing the tabu search experiments. 6. REFERENCES BAKER, K. R., 1974, ,QWURGXFWLRQ WR 6HTXHQFLQJ DQG6FKHGXOLQJ, John Wiley & Sons, NY. FRANÇA, P. M., Gendreau, M., Laport, G. and Muller, F., 1996, 'A Tabu Search Heuristic for the Multiprocessor Scheduling Problem with Sequence Dependent Setup Times', ,QW - 3URG (FRQ 43, 79-89. FRANÇA, P. M., Mendes, A. S. and Moscato, P., 1999, 'Memetic Algorithms to minimize tardiness on a single machine with sequence-dependent setup times', $FFHSWHG DW WKH '6, ± WK ,QWO &RQI RI WKH 'HFLVLRQ 6FLHQFHV ,QVWLWXWH Athens, Greece. FREDERICKSON, G., Hecht, M. S., and Kim, C. E., 1978, 'Approximation Algorithm for some Routing Problems', 6,$0-&RPS.7, 178 - 193. GLOVER, F. and Laguna, M., 1997, 7DEX6HDUFK, Kluwer. GRAHAM R. L., Lawler, E. L. Lenstra, J. K., and Rinnooy Kan, A. H. G., 1979, 'Optimization and Approximation in Deterministic Sequencing and Scheduling: A Survey', $QQ'LVF0DWK. 5, 287 326. MOSCATO, P., 1989, 'On Evolution, Search, Optimization, Genetic Algorithms and Martial Arts: Towards Memetic Algorithms', &DOWHFK &RQFXUUHQW &RPSXWDWLRQ 3URJUDP &3 5HSRUW SUMICHRAST, R., and Baker, J. R., 1987, 'Scheduling Parallel Processors: An Integer Linear Programming Based Heuristic for Minimizing Setup Time', ,QW-3URG5HV. 25 (5), 761 - 771.