New VNS heuristic for Total Flowtime Flowshop Scheduling Problem Wagner Emanoel Costa Marco César Goldbarg Elizabeth G. Goldbarg Technical Report - UFRN-DIMAp-2011-103-RT March - 2011 - Março Relatório Técnico The contents of this document are the sole responsibility of the authors. O conteúdo do presente documento é de única responsabilidade dos autores. Departamento de Informática e Matemática Aplicada Universidade Federal do Rio Grande do Norte www.dimap.ufrn.br New VNS heuristic for Total Flowtime Flowshop Scheduling Problem Wagner Emanoel Costa ∗ Marco César Goldbarg † wemano@gmail.com gold@dimap.ufrn.br Elizabeth G. Goldbarg ‡ beth@dimap.ufrn.br Abstract. This paper develops a new VNS approach to Permutational Flow shop Scheduling Problem with Total Flow time criterion. There are many hybrid approaches in the problem’s literature, that make use of VNS internally, usually applying job insert neighbourhood followed by job interchange neighbourhood. In this study different ways to combine both neighbourhoods were examined. All tests use the benchmark data set from [18]. The results indicates, that there is a more profitable way to combine both neighbourhoods than the one frequently used in literature. The new VNS produces results comparable with state-of-art methods, and obtained 25 novel solutions. Keywords: Flow-shop, Scheduling, Total Flow-time, Heuristics, VNS. Resumo. Este documento desenvolve uma nova abordagem VNS para o problema flow shop de permutação com critério total flow time. Existem muitas abordagens híbridas, na literatura do problema, que utilizam algum tipo de VNS internamente, normalmente combinando as vizinhanças job insert e job interchange. Neste estudo, compara-se maneiras distintas de se combinar as duas vizinhanças. Todos os testes realizados utilizam o conjunto de teste de [18]. Os resultados obtidos apontam para uma maneira mais proveitosa de se combinar as duas vizinhança tão comuns na literatudo do problema. A nova VNS produz resultados comparavéis com métodos do estado-da-arte, e encontrou 25 novas soluções. Palavras-Chave: Flow-shop, Scheduling, Total Flow-time, Heuristics, VNS. 1 Introduction In permutational flow shop scheduling problem there is a set of jobs J = {1, 2, . . . , n}. Each of n jobs has to be processed by a set of m machines M = {1, 2, . . . , m}, sequentially ∗ Programa de Pós-graduação em Sistemas e Computação, UFRN Departamento de Informática e Matemática Aplicada - UFRN/CCET/DIMAp ‡ Departamento de Informática e Matemática Aplicada - UFRN/CCET/DIMAp † 1 New VNS heuristic for Total Flowtime Flowshop Scheduling Problem 2 from the first machine to the last, in the same order. Each job j requires tjr units of time on machine r. Each machine can process at most one job at any given time, and it can not be interrupted. Each job is available at time zero, and can be processed by at most one machine in any given time. Here the focus is to find the permutation of jobs Π = {π1 , π2 , . . . , πn }, such that the total completion time of jobs, named Total flow time (T F T ), is minimised. Equation 1 express mathematically the concept of total flow time of a given permutation, Π, where C (πi , m) stands for the completion time of job in position i of Π, πi . T F T (Π) = n X C (πi , m) (1) i=1 The values of C (πi , m) can be evaluated using equations 2 to 5. Equations 2 and 3 define the completion time relative to the first job in permutation Π, π1 . Equation 2 defines the completion time of the first job, π1 , on the first machine as time required to complete its processing, t1 1 ,1 . It provides a base case for equation 3. Equation 3 defines the completion time of π1 on machine r, 1 < r ≤ m, as the completion time of π1 on the previous machine, C(π1 , r − 1), plus the processing time of job π1 on machine r, t1 1 ,r . C (π1 , 1) = tπ1 ,1 C (π1 , r) = C (π1 , r − 1) + tπ1 ,r (2) ∀r ∈ {2, . . . , m} (3) Equations 4 and 5 evaluate the completion times for all jobs πi , 1 < i ≤ n. For the first machine, r = 1, C(πi , 1) is defined as the sum of the completion time of the previous job on the first machine, C(πi−1 , 1), with the processing time of πi , t1 i ,1 . For all remaining machines, 1 < r ≤ m, completion time of job πi , C(πi , r), 1 < i ≤ n, depends on two factors. First, the time on which job πi will conclude its processing on the previous machine, r − 1, and therefore become available to be processed on machine r. Second, machine r can process job πi only, if r has finished processing the previous job, πi−1 . If machine r has not concluded the previous job, πi−1 , than job πi will wait machine r conclusion of job πi−1 . Equation 5 express both factors, and defines the completion time, C(πi , r), 1 < i ≤ n and 1 < r ≤ m, as the sum of processing time t1 i,r , with the greatest value between C(πi , r − 1) and C(πi−1 , r). C (πi , 1) = C (πi−1 , 1) + tπi ,1 ∀i ∈ {2, . . . , n} C (πi , r) =max {C (πi , r − 1) , C (πi−1 , r)} + tπi ,r ∀i ∈ {2, . . . , n} ∀r ∈ {2, . . . , m} (4) (5) Due to the fact, that the decision problem associated with TFT is NP-Complete in the strong sense when m ≥ 2, [4], many heuristics approaches have been proposed to this problem. There are constructive methods such as [10, 3, 14, 15, 12], local search methods [10, 1], genetic algorithms [13, 23, 21, 22], ant colonies [16, 24], particle swarm optimisation [19, 9, 8], bee colony optimization [20], hybrid discrete differential evolutionary algorithm [20], VNS and EDA-VNS [7]. From the cited approaches, the works of [23, 21, 7, 20, 22] are the ones which produced the current state-of-art results. A significant number of the state-of-art heuristics combines two neighbourhoods, named job insert and job interchange, in a internal VND procedure. The two neighbourhoods are New VNS heuristic for Total Flowtime Flowshop Scheduling Problem 3 combined in the same order and in the same way in the works of [23, 7, 20, 22]. And so far no study has been reported, examining distinct combinations. The present work exams different way to combine both neighbourhoods. The experiments indicate, that a different combination from the one used in literature is more effective for the problem. This new VNS approach is tested over all 120 instances of Taillard’s data set, [18], achieving 26 novel solutions. The remaining of this paper is organised as follows. Section 2 reports a brief literature review of the problem. Section 3 describes the VNS approach, describes job insert and job interchange neighbourhoods and the different ways to combine both of them, and paramenters tested in the experiments. Section 4 reports the experiments to determine which combination of neighbourhoods performs better, using a subset of instances from [18]. Section 5 describes the computational experiments and results obtained over all 120 instances of the data set. Section 6 exposes the conclusions and future works. 2 Literature Review This section reviews some methods proposed to PFSP with TFT criterion. Because the literature of PFSP is extensive, this review is lmited to some constructive methods in literature, and meta-heuristic approaches that compose the current state-of-art of the problem. The method of Rajendran and Ziegler [15] evaluates the lower bound for each job available to be assigned, m different solutions are created by changing how many machines are considered while evaluating the lower bound. For instance, the first solution is constructed by sorting the jobs, in non-decreasing order, by the weighted sum of processing times of all m machines. The weights are defined in such way that one unit of processing time of a machine, r = j, has greater impact than one unit of time of subsequent machines, r > j. Equation 6 shows the formula for the unweighted total flowtime. The equation for the weighted total flowtime is slightly different, but the weighted case is not the topic of this work. The processing time of the first machine is removed, and the jobs re-sorted considering only the processing times of the m − 1 machines. This procedure is repeated, removing the data from one machine at each iteration, until the last solution is created, when only the processing time of the last machine is taken into account. The best solution among the m created ones is then submitted to a local search procedure using job insert neighbourhood. m X (m − r + 1) Tri j ∈ {1, . . . , m} (6) r=j The method H(1) presented in [10] weights down two criteria: weighted sum of machine idle time (IT ) and artificial flowtime (AT ). The idle time criterion for selecting job i when k jobs were already selected (ITik ) is defined by Eq. (7), where wrk is calculated with Eq. (8). The term max {C(i, r − 1) − C(πk , r), 0} stands for the idle time of machine r. The weights, as defined on Eq. (8), stress that idle times on early machines are undesirable, for they delay the remaining jobs. Such stress is stronger if there are many unscheduled jobs (small value of k), and drops when the number k of scheduled jobs increases. ITik = m X wrk max {C(i, r − 1) − C(πk , r), 0} (7) r=2 wrk = m r+ k(m−r) n−2 (8) New VNS heuristic for Total Flowtime Flowshop Scheduling Problem 4 The artificial flowtime (ATik ) of candidate job i after k jobs were schedule refers to the T F T value obtained after including unscheduled job i, plus the time of an artificial job placed at the end of the sequence of jobs. The processing time of the artificial job on each machine is equal to the average processing time of all unscheduled jobs, excluding job i, on the correspondent machine. Both criteria, ITik and ATik are combined according to Eq. (9). fik = (n − k − 2)ITik + ATik (9) Also, Liu and Reeves [10] propose a class of constructive heuristics named H(x), where x is an integer, 1 ≤ x ≤ n. Each variant differs on the number of solutions it produces which is given by x. While H(1) produces only one solution, H(2) produces 2 solutions and so on. These methods create new solutions by changing the initial job. Once the greedy criterion used in these heuristics is adaptive, different initial jobs produce different solutions. H(1) uses the job with the best value according to the greedy criterion as the initial job. H(2) creates two solutions using each of the two best evaluated jobs as the initial job. Thus, the first solution generated by H(2) is exactly the same one produce by H(1). The second solution uses the n ) which uses the same principle, second best job as the initial one. A special case is H( 10 n n producing 10 solutions with the best 10 initial jobs. The work of [10] also proposes the use of job interchange local search to further improve the greedy solution obtained. Framinan et al. [3] define a queue based on the sum of the processing times of each job. The job on top of the queue is inserted in the best possible position in the partial solution. Later the inserted job can be interchanged with any other job in the partial solution in order to minimise the current value of the total flowtime. Nagano and Moccellin [12] create the queue in the same way as in [2]. The algorithm iteratively removes the first job in the queue and places it at the end of the partial solution. Local search methods, job insert and interchange, are then applied over the partial sequence to minimise total flowtime. The iterated local search proposed by Dong et al. [1] adopts the job at index neighbourhood created by [16]. This neighbourhood consists of job insert moves; the order in which neighbours solutions are created is dependant of the best solution found so far. In Dong et al. [1] each time the local search procedure gets trapped in local optima, a perturbation over the solution is performed and local search resumed. In this case the perturbation consists of randomly interchanging six adjacent jobs in the solution. The hybrid genetic algorithm of Zhang et al. [23] applies a data mining procedure over its population, creating a table that maps jobs to positions and counts how many “good” solutions have a given association job/position. An assignment procedure creates a solution that will be used during crossover operations to preserve building blocks in the new solutions. Solutions obtained after crossover are submitted to local searches (with job insert and interchange neighbourhoods). The hybrid genetic with local search of Tseng and Lin [21] uses an orthogonal crossover operator to recombine solutions. New solutions are submitted to two local searches that use the job insert neighbourhood. One local search method is driven to minimise T F T while the other looks for minimising idle times. The latter is used to escape local optima achieved by the former and then minimisation of T F T is resumed. The asynchronous genetic n algorithm, AGA, of [22], has a population of 40 solutions, one of them generated using H m n heuristic, where m are created using the H criterion, followed by interchange local search , the other 39 are randomly generated. Each iteration the evolution process submit solution to E-VNS (an specific VNS approach), crossover and E-VNS a second time. If all individual in population have the same T F T value, the population is restarted, by random generating 38 individuals, keeping the best solution in the current pool of solutions and inserting the solution generated New VNS heuristic for Total Flowtime Flowshop Scheduling Problem 5 n again. The E-VNS uses job insert local search and job interchange. When using by LR m job insert local search, a job πi is randomly selected. E-VNS will attempt to re-insert πi on a different position j, also randomly selected. If such attempt improves current solution, the new solution is accepted and a new iteration of job insert occurs, selecting another random job to be re-inserted. E-VNS execute 50 iterations of job insert. After them, 50 iterations of job interchange occurs, where the jobs to be interchange are randomly selected, if any improvement is achieved the solution is accepted and E-VNS resumes job insert local search. The number of times job insert can be resumed is limited by a value, randomly selected each time E-VNS is called, between 10 and 60, therefore is possible to E-VNS to terminate not trapped in a local optimum. AGA uses a two point crossover defined in [11]. The pair of parents used in crossover are randomly selected. The crossover chooses two random points, s and t, of a parent, the block of jobs within the index (πi , s ≤ i ≤ t) are copied to their respective positions in a new solution, the remaining positions are filled following the job order on the second parent. Such crossover is applied twice for each pair of parents creating 2 new solutions. Each iteration applies the crossover operator repeatedly, until 40 new solutions are created, replacing the previous population. E-VNS is applied over the new solutions. AGA stops if a time limit of 0.4 × n × m seconds is achieved. Rajendran and Ziegler [16] propose two ant colonies for the problem, they are named MMAS and PACO. Both of them apply three iterations of job at index local search once a solution has been fully constructed. MMAS and PACO differ on how the probabilities are assigned to unscheduled jobs while constructing the solution. MMAS adopts uniform distribution for the best five options, while PACO gives distinct probabilities to the five best options. The ant colony named SACO [24] starts using uniform probability distribution and evolves the probabilities of the pheromones using Kullback-Liebler divergence (see [24] for further details). The PSO of Tasgetiren et al. [19] uses a real representation of solution and a rule is used to decode the real representation into a permutational representation. The particles move towards the best global point and the best previous position visited. A variable neighbourhood descent (VND) approach (using interchange and job insert neighbourhoods) is defined and applied to the best solution in the population each generation. The PSO of Liao et al. [9] represents a solution using a discrete binary matrix B, where job i is assigned to position j if the entry bij = 1. The velocity represents probabilities of changes within B. This PSO uses two local searches (interchange and job insert) but limits the neighbourhood size. Depending on the jobs positions, the search procedure considers only movements within a distance of 12 positions (e.g. a job in the first position cannot be inserted in position 14 or further, neither can it be interchanged with another job placed in position 14 or above). The PSO of Jarboui et al. [8] uses the permutation representation and applies a simulated annealing method to optimise solutions whose T F T is within 2% of the best T F T value obtained up so far. The VNS of Jarboui et al. [7] uses two neighbourhoods: job insert and interchange. It starts using job insert. Once this neighbourhood cannot improve the current solution, the procedure migrates to interchange neighbourhood and keeps using interchange moves until no improvement can be reached, when it reverts to using job insert. If both neighbourhoods fail to further improve a solution, this VNS makes a copy of the best solution found, applies over it a random interchange move, and resumes optimisation using job insert neighbourhood. The algorithm alternates between the two neighbourhoods until both of them are not able to produce improvements on the current solution. At this point, the algorithm applies a random interchange move on the best solution found so far and resumes optimisation with the job insert neighbourhood. EDA-VNS [7] is a hybrid evolutionary approach. It uses a population of 10 solutions where a subset Q of three solutions is selected. A probabilistic model is constructed based on New VNS heuristic for Total Flowtime Flowshop Scheduling Problem 6 Q which is used to generate new solutions. If a new solution is better than the worst solution in the population, the new one replaces the worst solution. There is a probability to apply VNS over a solution. Such probability is related to objective function, the closer the value is to the best found fow-time value the better are the chances that VNS will be applied over a solution. The closer the value of a given solution is to the best flowtime value found so far, the better the chances of VNS is applied to that solution. The chances drop exponentially for farther values to a minimum of 1%. Tasgetiren et al. [20] propose two approaches for T F T : a bee colony optimisation (named DABC) and a hybrid evolutionary approach (hDDE). There is a population of ten bees in DABC, each one executing one of three activities. In the first activity, named employed bee phase, the bee exploits its current solution by randomly choosing between three methods: job insert, interchange or iterated greedy neighbourhood [17]. Once a neighbour is chosen, it is further improved using VNS. In the second activity, named onlooker phase, the bee migrates to another solution, randomly picking two solutions from the other bees and keeping the better one. Then, the bee creates a neighbour of the chosen solution, using the same schemes from employed bee, and applies the VNS of Jarboui et al. [7] afterwards. In the third activity, named scout, the bee generates two random solutions, keeps the worst one and applies the iterated greedy move over it. The algorithm hDDE also uses a population with 10 individuals. Its solution representation is discrete. Mutation is done by a random insert or interchange move. The crossover operator takes a muted individual and combines it with a non-mutated solution. For a given position pos, the crossover picks a random number c within [0, 1]. If c is smaller than a constant CR = 0.9, the value from the mutated solution fills position pos, otherwise the value for pos comes from the non-mutated one. There is a probability of 1% of applying VNS (insert and interchange moves only) over an individual. The iterated greedy procedure is applied only over the best individual of the population. Crossover and mutation rates are 90% and 20%, respectively. The results produced by AGA [22], DABC, hDDE [20], VNS, EDA-VNS [7], HGA [23] and HGLS [21] are used as references for the experiments presented here, once these methods, present the best results over Flowshop instances created by Taillard [18], as far as the authors’ knowledge concerns. These instances have been used as test set for flowshop T F T and are used here on the computational experiments to assess the proposed approach performance in comparison to the state-of-art methods. 3 Variable Neighbourhood Search - VNS VNS is a metaheuristic approach proposed in 1997 by Hansen & Mladenović for the pmedian problem, [5]. In a recent review of VNS [6], the creators of VNS define it as “. . . a metaheuristic which systematically exploits the idea of neighbourhood change, both in descent to local minima and in escape from the valleys which contain them”. Because of its simplicity and efficiency, VNS is often hybridised with other heuristics in order to achieve solutions of higher quality. VNS have few parameters, at the same time, it has a historic of good results in many problems including flowshop. The approaches presented by [7], VNS and EDA-VNS, are examples of how VNS can be effective by itself or hybridised with an evolutionary approach. In order to implement VNS the parameters to be defined in a VNS are: 1. A initial solution. 2. A perturbation scheme, named Shake procedure, used to escape local optimum common to multiple neighbourhoods; New VNS heuristic for Total Flowtime Flowshop Scheduling Problem 7 3. A set of local searches neighbourhoods; 4. A scheme to define when to change the neighbourhood. The first two items are simple to solve. An initial solution can be generated randomly or using greedy procedure. The work of [1] tested many greedy heuristic as source for initial solution for its local search methods, when compaed with other greedy approaches. Their experiments conclude that H heuristics proposed by [10] produced better results. Therefore H methods are tested in section 4. The second item, Shake, can be easily implemented using random moves from a given neighbourhood,as suggested in [6]. This parameter is also tested in section 4. The remaining of this section is devoted to items 3 and 4, describing neighbourhoods and VNS approaches tested. Considering the particular case of permutational flow shop with T F T criterion, two local searches methods are repeatedly used in literature. They are job insert local search, also referred as shift local search, and the job interchange local search, [23, 7, 20, 22]. The neighbourhood structures used in these local search are explained next. The neighbourhood used in job insert is defined as follows, Let ΠA = {πA1 , πA2 , . . . , πAn } be a solution for the PFSP. Solution ΠB = {πB1 , πB2 , . . . , πBn } is in the job insert neighbourhood of solution ΠA if given two indices s and t, s < t one of the two possibilities is true, either πBs = πAt , and ∀c , s ≤ c < t, πBc = πAc+1 , or πBt = πAs , and ∀d, s < d ≤ t, πBd = πAd−1 . Figure 1 illustrates the job insert neighbourhood, ΠA = {1, 2, 7, 4, 5, 6, 3}, s = 2, t = 6 and ΠB = {1, 7, 4, 5, 6, 2, 3}. On Figure 1, job 2 (in black) occupies the second position in the starting solution. A neighbour solution is generated moving job 2 to the sixth position and shifting the jobs between the third and sixth positions of the starting solution. Figura 1: Example of job insert’s move. Job 2, in black, is moved from the second position to the sixth, creating a neighbour solution. Jobs in between the second and sixth position, in gray, are shifted during the process. In the interchange neighborhood, two jobs exchange positions. Solution ΠB = {πB1 , πB2 , . . . , πBn } is a neighbour of ΠA = {πA1 , πA2 , . . . , πAn } if given two indices s and t, s 6= t, πAs = πBt , πAt = πBs and ∀c, c 6= s,t, πAc = πBc . Figure 2 ilustrates two neighbours, ΠA = {1, 2, 7, 4, 5, 6, 3} and ΠB = {1, 6, 7, 4, 5, 2, 3}, where s = 2 and t = 6. Algorithms 7 to 10 refers to four VNS implementations combining both neighbourhoods in distinct ways. The VNS of algorithm 7 is the one used in several state-of-art methods [23, 20]. The other three VNS are novel approaches proposed and under exam in this paper. The algorithms 1 to 6 describes how to implement local search methods based on the above described neighbourhoods. Algorithm 1 receives a solution Π and the index of a position. With these two arguments it constructs neighbouring solutions, by moving job πi into distinct positions than πi ’s original position. Initially a temporary copy, named Π0 , of solution Π is made in line 1. The procedure New VNS heuristic for Total Flowtime Flowshop Scheduling Problem 8 Figura 2: Example of interchange neighbourhood. Job 2, in black, is moved from the second position to the sixth, creating a neighbour solution. Jobs in between the second and sixth position, in gray, are shifted during the process. continues by shifting the job πi to the first position, lines 2 to 8 (i 6= 1). If the new solution (Π0 ) is better than the original (Π), then, Π is updated and the procedure finishes. If i = 1 then, this initial shift is not necessary, for πi already occupies the first position in the permutation. Once job πi is in the first position, the loop, from line 9 to line 22, does create the other job insert neighbours. These neighbours can be generated by successive interchange moves. At each iteration the loop shifts job πi to position j. The loop makes a interchange move with jobπj−1 and πj , because πi was initially shifted to position 1, the successive interchange move between positions j − 1 and j creates the other neighbours of job insert, line 17. If a neighbouring solution is better than the original one, Π is updated and returned, lines 18 to 21. Lines 10 to 16 takes care of the case when j = i. If both, i and j are equal to n, then all shift neighbours of job πi were generated, the procedure concludes without finding any improvement. Otherwise, case i = j 6= n, in this case, lines 14 and 15, the next interchange move will bring πi to its original position i. This interchange move is performed and j is incremented in one unit, so the interchange move of line 17 shift πi to position i + 1, continuing the procedure. Algorithm 2 receives a solution Π and the index of a position. With these two arguments it constructs neighbouring solutions, by interchanging job πi with job πj , j > i. Initially a temporary copy, named Π0 , of solution Π is made in line 1.The loop, from line 2 to line 9, creates and exams the interchange neighbours. In line 3, job πi changes positions with job πj . If this change improves the original solution, Π, then Π is updated and the procedure returns, lines 4 to 7. Otherwise, the change is reversed, line 8. The algorithms 3 and 4 are reduced local search methods. For each job πi , they apply either Shif t_πi (Π, i) or the Interchange_πi (Π, i) procedure. They concludes after applying their respective neighbourhoods over all positions. Algorithm 3, named Reduced_JI(Π), uses Shif t_πi (Π, i) procedure. If the Shif t_πi (Π, i) procedure improves the current solution, the procedure will return a T rue value otherwise returns F alse. Similarly, algorithm 3, named Reduced_Interchange(Π), uses Interchange_πi (Π, i) procedure. Reduced_Interchange(Π) will return T rue only if it improves the current solution, Π. The full local searches are depicted in algorithms 5 and 6. In algorithm 5 (Job_Insert_LS(Π, time_limit)) , the procedure Reduced_JI(Π) is repeatedly called, while it returns the true value and the running time has not exceeded the time limit. Simply put, the procedure Job_Insert_LS(Π, time_limit) will continuously explore the job insert neighbourhood until, either no further improvement is possible, or the time limit is reached. The algorithm 6, Job_Interchange_LS(Π, timelimit) procedure, will explore job interchange neighbourhood until no further improvement is possible or until a time limit is reached. In both New VNS heuristic for Total Flowtime Flowshop Scheduling Problem Algorithm 1 Shif t_πi (Π, i) 1: Π0 ← Π 2: if i 6= 1 then 3: Shif t(Π0 , i, 1) 4: if T F P (Π0 ) < T F P (Π) then 5: Π ← Π0 6: return Π 7: end if 8: end if 9: for j = 2 to n do 10: if j = i then 11: if j = n then 12: return Π 13: end if 14: Interchange(Π0 , j − 1, j) 15: j ←j+1 16: end if 17: Interchange(Π0 , j − 1, j) 18: if T F P (Π0 ) < T F P (Π) then 19: Π ← Π0 20: return Π 21: end if 22: end for 23: return Π Algorithm 2 Interchange_πi (Π, i) 1: Π0 ← Π 2: for j = i + 1 to n do 3: Interchange(Π0 , i, j) 4: if T F P (Π0 ) < T F P (Π) then 5: Π ← Π0 6: return Π 7: end if 8: Interchange(Π0 , j, i) 9: end for 10: return Π Algorithm 3 Reduced_JI(Π) 1: improve ← F alse 2: Π0 ← Π 3: Current_F low ← T F T 4: for i = 1 to n do 5: Shif t_πi (Π, i) 6: if T F T (Π) < Current_F low then 7: improve ← T rue 8: end if 9: end for 10: return improve 9 New VNS heuristic for Total Flowtime Flowshop Scheduling Problem 10 Algorithm 4 Reduced_Interchange(Π) 1: improve ← F alse 2: Π0 ← Π 3: Current_F low ← T F T 4: for i = 1 to n − 1 do 5: Interchange_πi (Π, i) 6: if T F T (Π) < Current_F low then 7: improve ← T rue 8: end if 9: end for 10: return improve Algorithm 5 Job_Insert_LS(Π, time_limit) 1: condition ← T rue 2: while conditionand within time_limit do 3: condition ← Reduced_JI(Π) 4: end while 5: return Π procedures an initial solution is provided, as well the time limit to be obeyed. Algorithm 6 Job_Interchange_LS(Π, timelimit) 1: condition ← T rue 2: while condition and within time_limit do 3: condition ← Reduced_Interchange(Π) 4: end while 5: return Π The VNS of algorithm 7, named V N S_1, explores both neighbourhoods fully. First it explores job insert, once it reaches a local optimum, there is a neighbourhood change to job interchange. V N S_1 will continue to use interchange moves until is no further improvements can be found. At this point the procedure exam if the current solution is the best one so far and update the best solution if it is the case, line 6. The procedure then copies the best solution found during the search procedure, and apply over it the Shake procedure, that, introduces random modifications on Π in order to escape the local optimum. If there is still time left, the procedure restarts from job insert local search, line 9. Otherwise the procedure returns the best solution found (Best_Solution) , line 10. The V N S_2, algorithm 8, is very similar to V N S_1. The difference lies on the order neighbourhoods will be examined. V N S_2 firstly explores interchange neighbourhoods and later migrates to job insert, lines 4 and 5. The main difference of algorithms 9 and 10, to above VNS heuristics, is the use of reduced local searches procedures, algorithms 3 and 4. The third VNS approach, algorithm 9, starts fully exploring job insert, when it fails to improve the current solution, it calls Reduced_Interchange which is equivalent to one iteration of interchange local search. If this single iteration finds an improvement over current solution Π, the VNS resumes job insert local New VNS heuristic for Total Flowtime Flowshop Scheduling Problem 11 Algorithm 7 V N S_1(Π) 1: Π ← Initial_Sol 2: Best_Solution ← Π 3: repeat 4: Job_Insert_LS(Π) 5: Job_Interchange_LS(Π) 6: U pdate_Best_Solution(Π) 7: Π ← Best_Solution 8: Shake(Π) 9: until time limit is reached 10: return Best_Solution Algorithm 8 V N S_2(Π) 1: Π ← Initial_Sol 2: Best_Solution ← Π 3: repeat 4: Job_Interchange_LS(Π) 5: Job_Insert_LS(Π) 6: U pdate_Best_Solution(Π) 7: Π ← Best_Solution 8: Shake(Π) 9: until time_limit is reached 10: return Best_Solution search. In terms of pseudo-code, this is expressed from lines 5 to 8. The repeat loop starting on line 3 is equivalent to the repeat loop from algorithms 7 and 8. Within this loop, there is a Boolean variable named condition, initially true so an inner while loop can iterate, lines 4 and 5. In the loop, job insert local search is applied, line 6, when it stops on a local optimum, an iteration of interchange is applied, line 7. If this single iteration improves the quality of Π, it will return true, this will lead the algorithm back to job insert local search, for variable condition will be true. If the interchange iteration fails, then, condition will be false, terminating while loop. In this case V N S_3 exams if a new best solution was found, line 9. Π receives a copy of the current best solution, line 10. The shake procedure acts over Π, line 11, and if the time limit was not reached, the local search is resumed, otherwise the procedure terminates returning the best solution found, line 13. V N S_4, algorithm 10, is analogous to V N S3 . V N S_4 starts exploring interchange until no further improvement is possible, line 6. Then, Reduced_JI is used, a single iteration of job insert neighbourhood. If this iteration improves the current solution, the algorithm resumes the interchange local search. From the set of VNS heuristics tested in the next section, V N S_4, surprisingly, is the one that provided better results, as the experiments on section 4 points to. The works of [22, 20, 7, 23, 19] all start with job insert. New VNS heuristic for Total Flowtime Flowshop Scheduling Problem Algorithm 9 V N S_3(Π, time_limit) 1: Π ← Initial_Sol 2: Best_Solution ← Π 3: repeat 4: condition ← T rue 5: while conditon and within time_limit do 6: Job_Insert_LS(Π) 7: condition ← Reduced_Interchange(Π) 8: end while 9: U pdate_Best_Solution(Π) 10: Π ← Best_Solution 11: Shake(Π) 12: until time limit is reached 13: return Best_Solution Algorithm 10 V N S_4(Π, time_limit, Initial_Sol) 1: Π ← Initial_Sol 2: Best_Solution ← Π 3: repeat 4: condition ← T rue 5: while conditon and within time_limit do 6: Job_Interchange_LS(Π) 7: condition ← Reduced_JI(Π) 8: end while 9: U pdate_Best_Solution(Π) 10: Π ← Best_Solution 11: Shake(Π) 12: until time limit is reached 13: return Best_Solution 12 New VNS heuristic for Total Flowtime Flowshop Scheduling Problem 4 13 Parameter Tuning This section reports experiments done to tune the following parameters of the proposed algorithms: neighbourhood order and change strategy, Shake mechanism and initial solution method. The four described VNS are tested. The Shake procedures is implement using a number k of random job insert moves. In section 4.2 up to 20 different values of k are tested. Section 4.3 reports the results of the comparison between six different methods to create the initial solution, one random and five using the criterion of [10]. A subset of Taillard’s instances is used in the experimentation. The complete dataset contains 120 randomly generated instances [18]. The number of jobs is in the set {20, 50, 100, 200, 500} and the number of machines in {5, 10, 20}. The subset utilized in the experiments reported in this section comprises the five first test cases of each group of 50 and 100 jobs of Taillard’s dataset, making a total of 30 instances. Twenty independent executions of each algorithmic version are performed for each instance. The tests were executed on a Core 2 - Quad 2.4GHz (Q6600), 1GB RAM. Results obtained during trials are transformed into relative percentage deviation (RP D) which calculated with Eq. (10), where BestSolution refers to the lowest T F T found in any experiment on the same instance. Because RP D is a dimensionless value resultant from a normalisation procedure, the RP Ds from different instances are compared, treating RP D as a response variable similar to what is considered in [17]. HeuristicSolution − BestSolution (10) BestSolution The median RP D value among the twenty independent executions of all 30 tested instances is used to discern which algorithmic version is best. Initially the VNS’ parameters are defined as follows: RP D(%) = 100 × 1. Initial solution randomly generated; 2. Initially the Shake procedure is defined as two random job interchange moves; 3. Time limit of time_limit = 0.4 × n × m seconds. 4.1 Neighbourhood Order Table 1 summarises the results. The main factor of difference seems to be the use of the reduced local searches. V N S_1 and V N S_2 have a very similar RP D’s values, around 0.65%, whereas the median values of V N S_3 and V N S_4 are visible smaller. V N S_3 with 0.49%, and V N S_4 with 0.44%. As stated earlier, the median is the criterion used to define with parameter value is better, in this case it means that V N S_4 is considered better option over the other VNS presented (indicated in bold face in table 1). Even thou V N S_4, different from the others VNS from the problem’s literature, gives priority to job interchange over job insert local search, the latter being mainly used to escape local optimum. 4.2 Shake - Perturbation Strength The next parameter to be examined is the Shake procedure. The VNS of [7] uses one interchange move as Shake, although Jarboui et al. do not report any experiment to tune this parameter. The work of [1] tested multiples numbers of interchange moves, and their results New VNS heuristic for Total Flowtime Flowshop Scheduling Problem 14 Tabela 1: RPD’s median for different VNS approaches VNS Approaches Technique V N S_1 V N S_2 Median – RP D(%) 0.657418 0.655237 V N S_3 V N S_4 0.498377 0.440944 indicated that four to seven interchange moves were appropriate when using only job insert local search. The hybrid VNS approaches do not need to tune this parameter as the other operators involves became responsible to escape local optimum. This experiment deals the number of job insert moves, k, used as Shake. Initially two job insert were used in previous test. The reasoning behind this choice was that any given swap move can be replicated using two specific job insert moves, therefore enough job insert move can work as well as interchange moves. This experiment varies k from one up to twenty, 1 ≤ k ≤ 20, in order to identify a value that helps best escape from local optimum. The results are summarised on table 2. They indicate a Shake procedure composed of k = 14 job insert moves, as it is the one with the lowest RP D’s median Tabela 2: RPD’s median for different number of job insert moves, used as Shake procedure RPD (%) RPD (%) RPD (%) RPD (%) 4.3 number of insert moves k k=1 k=2 k=3 k=4 k=5 0.531533 0.547817 0.532402 0.522590 0.550798 k=6 k=7 k=8 k=4 k=5 0.535054 0.538884 0.561393 0.570443 0.534179 k = 11 k = 12 k = 13 k = 14 k = 15 0.524655 0.545517 0.543708 0.469627 0.472480 k = 16 k = 17 k = 18 k = 19 k = 20 0.481483 0.477755 0.477755 0.532989 0.532077 Initialisation Method The final parameter under exam is the initialisation method, which provides the initial solution. According to [1], heuristics with the greedy criterion proposed by [10] provide the better initial solutions. Therefore the tests were restricted to heuristics using the criterion of [10]. The n n heuristics tested are random solution, solution from H(1), from H(2), H , H , and 10 m n H(n). Heuristic H m is not explained in [10], however it is used in [22]. Table 3 summarises the experiment. All option have similar median RP D’s values. This suggest that the options tested, for this parameter, do not have large impact on the results. The n n option with the smallest median value is H m followed close by H 10 . This concludes parameter tuning experiments. The final version of VNS uses the following parameters. n 1. Initialisation method: H m ; New VNS heuristic for Total Flowtime Flowshop Scheduling Problem 15 Tabela 3: RPD’s median for different initialisation methods Technique Random Median – RP D(%) 0.453532 Initialisation Methods n n H 10 H(1) H(2) H m 0.446480 0.435431 0.426657 0.427712 H(n) 0.430853 2. Shake procedure: 14 random job insert moves; 3. Local search methods: Job Interchange and Job Insert 4. Neighbourhood change scheme: V N S_4 procedure; The next section does apply the proposed VNS approach over all 120 instances of Taillard’s benchmark instances and compared with the current best results from lierature, as far as the authors’ knowledge concerns. 5 Computational Experiments The proposed VNS algorithm was implemented in C++ on a Core 2 - Quad 2.4GHz (Q6600), 1GB RAM, using Gnu C++ compiler. The experiments were performed on all 120 instances from the Taillard’s benchmark [18]. Twenty independent executions were performed for each instance. The stopping criterion adopted in the experimentation was a maximum processing time of (0.4 × n × m) seconds, for it’s the same used in the recent works of [7, 20] and [22]. All results are summarised on table 4. The shows the name of the instance (Instance), which is denoted by n × m and an identifying integer, the best solution reported in literature (Best), the work reporting the results (Work), the minimum (Min), average (Ave), maximum (Max) and standard deviation (S.d.) achieved after 20 executions. The VNS approach achieves the best know solution in 32 instances, plus 25 novel solutions. The proposed method find all 30 best know solutions for all instances with n = 20 job. It also ties with HGLS of [21] on instance 50 × 05 number 4, and 50 × 20 number 9. However the major contribution of VNS are the novel solutions, contributing to state-of-art of the problem, indicated with a star symbol (O) next to it. There are three novel solutions for instances with 100 × 10, two in the group with 100 × 20, five in group with 200 × 10, seven in group with 200 × 20 and eight in the group 500 × 20. Tabela 4: Results obtained after 20 executions of V N S_4 over each of 120 instances from [18]. Instance Best Work of Min Ave Median Max S.d. 20 × 05 1 14033 [19] 14033 14037.000 14037.000 14041 4.104 20 × 05 2 15151 [16] 15151 15151.000 15151.000 15151 0.000 Continued on next page 16 New VNS heuristic for Total Flowtime Flowshop Scheduling Problem Instance 20 × 05 3 20 × 05 4 20 × 05 5 20 × 05 6 20 × 05 7 20 × 05 8 20 × 05 9 20 × 05 10 Best Work of 13301 [19] 15447 [19] 13529 [16] 13123 [16] 13548 [19] 13948 [19] 14295 [19] 12943 [19] Min 13301 15447 13529 13123 13548 13948 14295 12943 Ave 13302.800 15447.000 13529.000 13123.000 13548.000 13948.000 14295.000 12943.000 Median 13301.000 15447.000 13529.000 13123.000 13548.000 13948.000 14295.000 12943.000 Max 13313 15447 13529 13123 13548 13948 14295 12943 S.d. 4.396 0.000 0.000 0.000 0.000 0.000 0.000 0.000 20 × 10 1 20 × 10 2 20 × 10 3 20 × 10 4 20 × 10 5 20 × 10 6 20 × 10 7 20 × 10 8 20 × 10 9 20 × 10 10 20911 22440 19833 18710 18641 19245 18363 10241 20330 21320 [19] [16] [16] [19] [19] [16] [19] [16] [16] [16] 20911 22440 19833 18710 18641 19324 18363 20241 20330 21320 20911.000 22440.000 19833.000 18736.200 18641.000 19324.000 18363.000 20261.400 20330.000 21320.000 20911.000 22440.000 19833.000 18747.000 18641.000 19324.000 18363.000 20241.000 20330.000 21320.000 20911 22440 19833 18751 18641 19324 18363 20309 20330 21320 0.000 0.000 0.000 16.120 0.000 0.000 0.000 31.971 0.000 0.000 20 × 20 1 20 × 20 2 20 × 20 3 20 × 20 4 20 × 20 5 20 × 20 6 20 × 20 7 20 × 20 8 20 × 20 9 20 × 20 10 33623 31587 33920 31661 34557 32564 32922 32412 33600 32262 [16] [8] [16] [8] [8] [8] [16] [8] [8] [8] 33623 31587 33920 31661 34557 32564 32922 32412 33600 32262 33646.700 31587.000 33920.000 31661.000 34578.250 32564.000 32922.000 32412.000 33604.800 32263.800 33623.000 31587.000 33920.000 31661.000 34557.000 32564.000 32922.000 32412.000 33600.000 32262.000 33781 31587 33920 31661 34629 32564 32922 32412 33612 32271 57.883 0.000 0.000 0.000 29.410 0.000 0.000 0.000 6.031 3.694 50 × 05 1 50 × 05 2 50 × 05 3 50 × 05 4 50 × 05 5 50 × 05 6 64803 68051 63162 68241 69360 66841 [21] [20] [20] [21] [20] [20] 64851 68083 63195 68241 69392 66865 64928.900 68225.850 63402.650 68536.250 69563.400 67054.450 64915.000 65083 65.757 68232.500 68396 90.736 63417.500 63563 100.895 68565.000 68656 107.041 69570.500 69691 74.029 67053.000 67263 92.844 Continued on next page 17 New VNS heuristic for Total Flowtime Flowshop Scheduling Problem Instance 50 × 05 7 50 × 05 8 50 × 05 9 50 × 05 10 Best Work of 66253 [22] 64365 [20] 62981 [21] 68811 [21] Min 66273 64381 63062 68884 Ave 66421.300 64572.500 63151.700 69111.700 Median 66415.000 64579.000 63162.500 69118.000 Max S.d. 66635 96.486 64694 79.931 63201 39.306 69258 100.364 50 × 10 1 50 × 10 2 50 × 10 3 50 × 10 4 50 × 10 5 50 × 10 6 50 × 10 7 50 × 10 8 50 × 10 9 50 × 10 10 87143 82820 79987 86466 86391 86682 88811 86839 85548 87998 [20] [21] [21] [21] [21] [21] [21] [21] [21] [20] 88100 83042 80104 86600 86655 86848 89020 86848 85555 88214 88222.700 83259.950 80325.450 86939.300 86825.850 87025.850 89405.150 87145.950 85994.650 88559.200 88225.000 83241.000 80291.500 86954.500 86829.000 87008.000 89385.500 87105.000 86004.000 88559.500 88313 83483 80657 87181 87082 87369 89687 87503 86355 89020 83.801 119.719 140.349 151.823 124.858 112.710 178.123 191.771 210.850 226.665 50 × 20 1 50 × 20 2 50 × 20 3 50 × 20 4 50 × 20 5 50 × 20 6 50 × 20 7 50 × 20 8 50 × 20 9 50 × 20 10 125831 119247 116459 120766 118405 120703 123018 122520 121872 124079 [7] [7] [21] [21] [22] [20] [21] [21] [21] [20] 125852 119270 116792 120972 118636 120792 123237 122723 121872 124182 126393.400 119638.000 117171.700 121531.400 119072.600 121278.800 123781.300 123259.500 122467.450 124687.600 126449.500 119597.000 117133.000 121546.000 119026.000 121240.500 123812.000 123303.000 122455.500 124699.000 127008 120253 117766 122081 119575 121634 124478 123772 123170 125463 358.374 260.242 267.599 291.521 204.615 237.851 345.524 258.531 277.673 307.934 100 × 05 1 100 × 05 2 100 × 05 3 100 × 05 4 100 × 05 5 100 × 05 6 100 × 05 7 100 × 05 8 100 × 05 9 100 × 05 10 253926 242886 238280 228169 240810 232876 240918 231716 248679 243518 [22] [22] [22] [22] [22] [22] [20] [20] [22] [22] 254271 243266 238452 228494 241008 233277 241165 231782 248652 243822 254665.350 243748.100 238773.850 228873.500 241564.800 233749.600 241437.950 232255.900 249353.750 244358.200 254669.500 255020 179.851 243732.000 244155 259.702 238743.500 239161 178.067 228909.500 229248 216.875 241612.500 242037 281.953 233740.500 234203 259.043 241409.000 241757 159.167 232229.000 232803 252.885 249375.000 249885 272.027 244349.000 244985 251.794 Continued on next page 18 New VNS heuristic for Total Flowtime Flowshop Scheduling Problem Instance Best Work of Min Ave Median Max S.d. 100 × 10 1 100 × 10 2 100 × 10 3 100 × 10 4 100 × 10 5 100 × 10 6 100 × 10 7 100 × 10 8 100 × 10 9 100 × 10 10 300201 275298 288707 302635 285643 271475 280921 292471 303742 293147 [20] [22] [22] [22] [22] [22] [20] [22] [20] [20] 299999O 276369 289505 303729 285692 272190 281312 293093 303594O 293053O 301146.450 277065.850 290599.450 305290.750 286397.300 272811.000 282482.350 294156.550 305264.300 293632.250 301368.000 277022.000 290530.000 305167.000 286319.500 272740.000 282578.000 294251.500 305204.000 293511.000 302238 278107 291859 306632 286992 273594 283607 295093 307273 294517 596.229 521.233 655.157 887.709 319.089 395.361 601.748 605.879 925.328 405.215 100 × 20 1 100 × 20 2 100 × 20 3 100 × 20 4 100 × 20 5 100 × 20 6 100 × 20 7 100 × 20 8 100 × 20 9 100 × 20 10 368590 374086 372057 374205 370646 373689 375188 386803 377113 380725 [22] [22] [20] [20] [20] [20] [20] [20] [20] [20] 368262O 375198 372837 375871 371103 375059 375530 386147O 377348 381905 370082.400 376200.600 374199.350 377375.100 372869.800 376642.250 377397.000 388421.600 378654.700 383014.100 369996.000 376163.500 374051.500 377538.500 373090.500 376632.000 377396.500 388677.000 378482.500 383143.500 371804 377032 375647 378564 374569 378445 379389 390020 379864 384021 956.824 518.621 788.133 837.982 865.321 955.200 990.267 1038.635 688.393 645.148 200 × 10 1 200 × 10 2 200 × 10 3 200 × 10 4 200 × 10 5 200 × 10 6 200 × 10 7 200 × 10 8 200 × 10 9 200 × 10 10 1049830 1036427 1048993 1033110 1038288 1011864 1059727 1048299 1026137 1035409 [22] [22] [22] [22] [22] [22] [22] [22] [22] [22] 1055987 1041239 1048561O 1037222 1037392O 1010243O 1058211O 1046284O 1026701 1035763 1057658.750 1042968.450 1051159.800 1039857.250 1042839.250 1014712.550 1061977.400 1048405.250 1029171.000 1038669.250 1057812.500 1042938.500 1051321.500 1039886.500 1042732.500 1014687.500 1062187.000 1048486.000 1029161.000 1038780.000 1059668 1044664 1052615 1042419 1046322 1018207 1064875 1049503 1031123 1041476 1071.512 997.076 1010.974 1608.904 1622.749 2214.350 1688.834 718.576 1077.048 1768.979 200 × 20 1 200 × 20 2 200 × 20 3 1234223 1253715 1273570 [22] 1231266O [22] 1249948O [22] 1272659O 1234564.200 1256720.100 1278707.800 1234688.000 1237772 1837.478 1257125.500 1262029 2842.730 1278458.000 1282194 2488.849 Continued on next page 19 New VNS heuristic for Total Flowtime Flowshop Scheduling Problem Instance 200 × 20 4 200 × 20 5 200 × 20 6 200 × 20 7 200 × 20 8 200 × 20 9 200 × 20 10 Best Work of 1243223 [22] 1231608 [22] 1231235 [22] 1248109 [22] 1248110 [22] 1237168 [22] 1250596 [22] Min 1245410 1229972O 1230942O 1247268O 1249994 1233899O 1255584 Ave 1252567.500 1232165.450 1235104.850 1249607.600 1256079.700 1238479.250 1259308.450 Median 1252880.500 1232020.500 1235254.000 1249836.000 1256333.000 1238882.000 1259395.500 Max 1256607 1235137 1238945 1252009 1260504 1241097 1265328 S.d. 2835.948 1615.646 2158.889 1461.702 3119.256 1870.324 2272.168 500 × 20 1 500 × 20 2 500 × 20 3 500 × 20 4 500 × 20 5 500 × 20 6 500 × 20 7 500 × 20 8 500 × 20 9 500 × 20 10 6718965 6841013 6743171 6802933 6737370 6738575 6691468 6790270 6715549 6760926 6714364O 6827845O 6730079O 6748315O 6708168O 6741342 6701864 6777832O 6714308O 6755838O 6717996.550 6840461.400 6736636.200 6752824.600 6712996.750 6745905.450 6715516.800 6782049.500 6726297.650 6758481.450 6718394.500 6841734.000 6737195.000 6753448.000 6713539.000 6745774.500 6717960.000 6782262.500 6727181.000 6759128.500 6720035 6845135 6738500 6754596 6714732 6749510 6721695 6784628 6729076 6759219 1706.961 4480.686 2399.737 1641.332 1858.038 2528.494 5758.049 2078.395 3300.249 1070.840 6 [22] [22] [22] [22] [22] [23] [22] [22] [22] [22] Conclusions The present work examined distinct combinations of the two most common neighbourhoods structures for the permutational flow shop scheduling using total flow time criterion. Although the use of VNS is common in the problem’s literature, the experiments performed pointed that, the most profitable combination of job interchange and job insert local search, is distinct from the combination of such local searches in literature. After tests were performer over 120 instances from Taillard’s benchmark, the results presented suggest that, the new VNS is competitive in all instances, and improved the current state-of-art of the problem by finding 25 novel solutions. A natural question is how this new VNS performs when hybridised with other state-of-art approaches, e.g. AGA of [22]. Does this new VNS improves the performance on an hybridised approach? These questions are addressed in future studies. 7 Acknowledgements This work was partially supported by the Conselho Nacional de Desenvolvimento Científico e Tecnológico under Grants 141851/2009-0, 303538/2008-2, 302333/2007-0. References [1] DONG, X; HUANG, H; CHEN, P. An iterated local search algorithm for the permutation flowshop problem with total flowtime criterion. Computers & Operations Research, 36(5):1664 – 1669, 2009. [2] FRAMINAN, J. M; LEISTEN, R. An efficient constructive heuristic for flowtime minimisation in permutation flow shops. Omega, 31(4):311 – 317, 2003. New VNS heuristic for Total Flowtime Flowshop Scheduling Problem 20 [3] FRAMINAN, J. M; LEISTEN, R; RUIZ-USANO, R. Efficient heuristics for flowshop sequencing with the objectives of makespan and flowtime minimisation. European Journal of Operational Research, 141(3):559–569, 2002. [4] GRAHAM, R; LAWLER, E; LENSTRA, J; KAN, A. R. Optimization and approximation in deterministic sequencing and scheduling: A survey. Annals of Discrete Mathematics, 5:287 – 326, 1979. [5] HANSEN, P; MLADENOVIĆ, N. Variable neighborhood search for the p-median. Location Sci, 5:207 – 226, 1997. [6] HANSEN, P; MLADENOVIĆ, N; PÉREZ, J. A. M. Variable neighbourhood search: methods and applications. Operations Research, p. 319 – 360, 2008. [7] JARBOUI, B; EDDALY, M; SIARRY, P. An estimation of distribution algorithm for minimizing the total flowtime in permutation flowshop scheduling problems. Computers & Operations Research, 36(9):2638 – 2646, 2009. [8] JARBOUI, B; IBRAHIM, S; SIARRY, P; REBAI, A. A combinatorial particle swarm optimisation for solving permutation flowshop problems. Computers and Industrial Engineering, 54:526 — 538, 2008. [9] LIAO, C.-J; TSENG, C.-T; LUARN, P. A discrete version of particle swarm optimization for flowshop scheduling problems. Computers & Operations Research, 34:3099 – 3111, 2007. P [10] LIU, J; REEVES, C. R. Constructive and composite heuristic solutions to the p// ci scheduling problem. European Journal of Operational Research, 132:439 – 452, 2001. [11] MURATA, T; ISHIBUCHI, H; TANAKA, H. Genetic algorithms for flowshop scheduling problems. Computers & Industrial Engineering, 30(4):1061 – 1071, 1996. [12] NAGANO, M. S; MOCCELLIN, J. V. Reducing mean flow time in permutation flow shop. Journal of the Operational Research Society, 59:1700 – 1707, 2007. [13] NAGANO, M. S; RUIZ, R; LORENA, L. A. N. A constructive genetic algorithm for permutation flowshop scheduling. Computers & Industrial Engineering, 55(1):195 – 207, 2008. [14] RAJENDRAN, C. Heuristic algorithm for scheduling in a flowshop to minimize total flowtime. International Journal of Production Economics, 29:65 – 73, 1993. [15] RAJENDRAN, C; ZIEGLER, H. An efficient heuristic for scheduling in a flowshop to minimize total weighted flowtime of jobs. European Journal of Operational Research, 103:129 – 138, 1997. [16] RAJENDRAN, C; ZIEGLER, H. Ant-colony algorithms for permutation flowshop scheduling to minimize makespan/total flowtime of jobs. European Journal of Operational Research, 155:426 – 438, 2004. [17] RUIZ, R; STÜTZLE, T. A simple and effective iterated greedy algorithm for the flowshop scheduling problem. European Journal of Operational Research, 177(3):2033– 2049, 2007. New VNS heuristic for Total Flowtime Flowshop Scheduling Problem 21 [18] TAILLARD, E. D. Benchmarks for basic scheduling problems. European Journal of Operational Research, 64:278 – 285, 1993. [19] TASGETIREN, M. F; LIANG, Y.-C; SEVKLI, M; GENCYILMAZ, G. A particle swarm optimization algorithm for makespan and total flowtime minimization in the permutation flowshop sequencing problem. European Journal of Operational Research, 177:1930 – 1947, 2007. [20] TASGETIREN, M. F; PAN, Q.-K; SUGANTHAN, P. N; CHEN, A. H.-L. A discrete artificial bee colony algorithm for the permutation flow shop scheduling problem with total flowtime criterion. In: PROCEEDINGS OF THE IEEE WORLD CONGRESS ON COMPUTATIONAL INTELLIGENCE (WCCI-2010), p. 137–144. IEEE, 2010. [21] TSENG, L.-Y; LIN, Y.-T. A hybrid genetic local search algorithm for the permutation flowshop scheduling problem. European Journal of Operational Research, 198(1):84–92, Oct. 2009. [22] XU, X; XU, Z; GU, X. An asynchronous genetic local search algorithm for the permutation flowshop scheduling problem with total flowtime minimization. Expert Systems with Applications, In Press:–, 2010. [23] ZHANG, Y; LI, X; WANG, Q. Hybrid genetic algorithm for permutation flowshop scheduling problems with total flowtime minimization. European Journal of Operational Research, 169(3):869 – 876, 2009. [24] ZHANG, Y; LI, X; WANG, Q; ZHU, J. Similarity based ant-colony algorithm for permutation flowshop scheduling problems with total flowtime minimization. In: INTERNATIONAL CONFERENCE ON COMPUTER SUPPORTED COOPERATIVE WORK IN DESIGN, p. 582–589, Los Alamitos, CA, USA, April 2009. IEEE Computer Society.