PERMUTATION FLOW-SHOP SCHEDULING USING A GENETIC ...

134
PERMUTATION FLOW-SHOP SCHEDULING USING A GENETIC ALGORITHM-BASED ITERATIVE METHOD A Thesis Submitted to the Faculty of Graduate Studies and Research In Partial Fulfillment of the Requirements for the Degree of Master of Applied Science in Industrial Systems Engineering University of Regina by Mandi Eskenasi Regina, Saskatchewan July, 2006 Copyright 2006: Mandi Eskenasi Reproduced with permission of the copyright owner. Further reproduction prohibited without permission. PERMUTATION FLOW-SHOP SCHEDULING USING A GENETIC ALGORITHM-BASED ITERATIVE METHOD A Thesis Submitted to the Faculty of Graduate Studies and Research In Partial Fulfillment of the Requirements for the Degree of Master of Applied Science in Industrial Systems Engineering University of Regina by Mahdi Eskenasi Regina, Saskatchewan July, 2006 Copyright 2006: Mahdi Eskenasi Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

Transcript of PERMUTATION FLOW-SHOP SCHEDULING USING A GENETIC ...

PERMUTATION FLOW-SHOP SCHEDULING USING

A GENETIC ALGORITHM-BASED ITERATIVE METHOD

A Thesis

Submitted to the Faculty of Graduate Studies and Research

In Partial Fulfillment of the Requirements

for the Degree of

Master of Applied Science in

Industrial Systems Engineering

University of Regina

by

Mandi Eskenasi

Regina, Saskatchewan

July, 2006

Copyright 2006: Mandi Eskenasi

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

PERMUTATION FLOW-SHOP SCHEDULING USING

A GENETIC ALGORITHM-BASED ITERATIVE METHOD

A Thesis

Submitted to the Faculty o f Graduate Studies and Research

In Partial Fulfillment o f the Requirements

for the Degree o f

Master o f Applied Science in

Industrial Systems Engineering

University o f Regina

by

Mahdi Eskenasi

Regina, Saskatchewan

July, 2006

Copyright 2006: Mahdi Eskenasi

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

1+1 Library and Bibliotheque et Archives Canada Archives Canada

Published Heritage Direction du Branch Patrimoine de redition

395 Wellington Street Ottawa ON KlA ON4 Canada

395, rue Wellington Ottawa ON KlA ON4 Canada

NOTICE: The author has granted a non-exclusive license allowing Library and Archives Canada to reproduce, publish, archive, preserve, conserve, communicate to the public by telecommunication or on the Internet, loan, distribute and sell theses worldwide, for commercial or non-commercial purposes, in microform, paper, electronic and/or any other formats.

The author retains copyright ownership and moral rights in this thesis. Neither the thesis nor substantial extracts from it may be printed or otherwise reproduced without the author's permission.

Your file Votre reference ISBN: 978-0-494-20208-1 Our file Notre reference ISBN: 978-0-494-20208-1

AVIS: L'auteur a accord& une licence non exclusive permettant a la Bibliotheque et Archives Canada de reproduire, publier, archiver, sauvegarder, conserver, transmettre au public par telecommunication ou par ('Internet, preter, distribuer et vendre des theses partout dans le monde, a des fins commerciales ou autres, sur support microforme, papier, electronique et/ou autres formats.

L'auteur conserve la propriete du droit d'auteur et des droits moraux qui protege cette these. Ni la these ni des extraits substantiels de celle-ci ne doivent etre imprimes ou autrement reproduits sans son autorisation.

In compliance with the Canadian Privacy Act some supporting forms may have been removed from this thesis.

While these forms may be included in the document page count, their removal does not represent any loss of content from the thesis.

1*1

Canada

Conformement a la loi canadienne sur la protection de la vie privee, quelques formulaires secondaires ont ete enleves de cette these.

Bien que ces formulaires aient inclus dans la pagination, it n'y aura aucun contenu manquant.

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

Library and Archives Canada

Bibliotheque et Archives Canada

Published Heritage Branch

395 Wellington Street Ottawa ON K1A 0N4 Canada

Your file Votre reference ISBN: 978-0-494-20208-1 Our file Notre reference ISBN: 978-0-494-20208-1

Direction du Patrimoine de I'edition

395, rue Wellington Ottawa ON K1A 0N4 Canada

NOTICE:The author has granted a non­exclusive license allowing Library and Archives Canada to reproduce, publish, archive, preserve, conserve, communicate to the public by telecommunication or on the Internet, loan, distribute and sell theses worldwide, for commercial or non­commercial purposes, in microform, paper, electronic and/or any other formats.

AVIS:L'auteur a accorde une licence non exclusive permettant a la Bibliotheque et Archives Canada de reproduire, publier, archiver, sauvegarder, conserver, transmettre au public par telecommunication ou par I'lnternet, preter, distribuer et vendre des theses partout dans le monde, a des fins commerciales ou autres, sur support microforme, papier, electronique et/ou autres formats.

The author retains copyright ownership and moral rights in this thesis. Neither the thesis nor substantial extracts from it may be printed or otherwise reproduced without the author's permission.

L'auteur conserve la propriete du droit d'auteur et des droits moraux qui protege cette these.Ni la these ni des extraits substantiels de celle-ci ne doivent etre imprimes ou autrement reproduits sans son autorisation.

In compliance with the Canadian Privacy Act some supporting forms may have been removed from this thesis.

While these forms may be included in the document page count, their removal does not represent any loss of content from the thesis.

Conformement a la loi canadienne sur la protection de la vie privee, quelques formulaires secondaires ont ete enleves de cette these.

Bien que ces formulaires aient inclus dans la pagination, il n'y aura aucun contenu manquant.

i * i

CanadaReproduced with permission of the copyright owner. Further reproduction prohibited without permission.

UNIVERSITY OF REGINA

FACULTY OF GRADUATE STUDIES AND RESEARCH

SUPERVISORY AND EXAMINING COMMITTEE

Mandi Eskenasi, candidate for the degree of Master of Applied Science, has presented a thesis

titled, The Permutation Flow-Shop Scheduling Using a Genetic Algorithm-Based Iterative

Method, in an oral examination held on May 26, 2006. The following committee members

have found the thesis acceptable in form and content, and that the candidate demonstrated

satisfactory knowledge of the subject material.

External Examiner: Dr. Stephen O'Leary, Faculty of Engineering

Supervisor: Dr. Mehran Mehrandezh, Faculty of Engineering

Committee Member: Dr. Nader Mahinpey, Faculty of Engineering

Committee Member: Dr. Rene Mayorga, Faculty of Engineering

Chair of Defense: Dr. Wojciech Ziarko, Department of Computer Science

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

UNIVERSITY OF REGINA

FACULTY OF GRADUATE STUDIES AND RESEARCH

SUPERVISORY AND EXAMINING COMMITTEE

Mahdi Eskenasi, candidate for the degree o f Master o f Applied Science, has presented a thesis

titled, The Permutation Flow-Shop Scheduling Using a Genetic Algorithm-Based Iterative

Method, in an oral examination held on May 26, 2006. The following committee members

have found the thesis acceptable in form and content, and that the candidate demonstrated

satisfactory knowledge o f the subject material.

External Examiner: Dr. Stephen O'Leary, Faculty o f Engineering

Supervisor: Dr. Mehran Mehrandezh, Faculty o f Engineering

Committee Member: Dr. Nader Mahinpey, Faculty o f Engineering

Committee Member: Dr. Rene Mayorga, Faculty o f Engineering

Chair o f Defense: Dr. Wojciech Ziarko, Department o f Computer Science

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

ABSTRACT

The purpose of this research is to investigate one well-known type of scheduling

problem, the Permutation Flow-Shop Scheduling Problem, with the makespan as the

objective function to be minimized. During the last four decades, the permutation flow-

shop scheduling problem has received considerable attention. Various techniques,

ranging from the simple constructive algorithm to the state-of-the-art techniques, such as

Genetic Algorithms, have been proposed for this scheduling problem.

The development of a solution methodology based on genetic algorithms, yielding

(near) optimal makespans, has been investigated in this thesis. In order to improve the

performance of the search technique, the proposed genetic algorithm is hybridized with

an Iterated Greedy Search Algorithm.

The parameters of both the hybrid and the non-hybrid genetic algorithms were

tuned using the Full Factorial Experimental Design and Analysis of Variance. The

performance of the tuned hybrid and non-hybrid algorithms are finally examined on the

existing standard benchmark problems cited in the literature, and it is shown that the

proposed hybrid genetic algorithm performs well on those benchmark problems. In

addition, it is demonstrated that the hybrid proposed algorithm is robust with respect to

problem parameters, such as population size, crossover type, and crossover probability.

i

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

A bst r a c t

The purpose o f this research is to investigate one well-known type o f scheduling

problem, the Permutation Flow-Shop Scheduling Problem, with the makespan as the

objective function to be minimized. During the last four decades, the permutation flow-

shop scheduling problem has received considerable attention. Various techniques,

ranging from the simple constructive algorithm to the state-of-the-art techniques, such as

Genetic Algorithms, have been proposed for this scheduling problem.

The development o f a solution methodology based on genetic algorithms, yielding

(near) optimal makespans, has been investigated in this thesis. In order to improve the

performance o f the search technique, the proposed genetic algorithm is hybridized with

an Iterated Greedy Search Algorithm.

The parameters o f both the hybrid and the non-hybrid genetic algorithms were

tuned using the Full Factorial Experimental Design and Analysis o f Variance. The

performance o f the tuned hybrid and non-hybrid algorithms are finally examined on the

existing standard benchmark problems cited in the literature, and it is shown that the

proposed hybrid genetic algorithm performs well on those benchmark problems. In

addition, it is demonstrated that the hybrid proposed algorithm is robust with respect to

problem parameters, such as population size, crossover type, and crossover probability.

i

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

ACKNOWLEDGMENTS

I would like to extend my hearty appreciation to Dr. Mehran Mehrandezh for his

invaluable guidance in conducting the research reported in this thesis. I am indebted to

him for both his time and insights over the course of conducting this thesis.

I am very grateful to the Faculty of Graduate Studies and Research for their

financial support. In addition, the financial support provided through the John Spencer

Middleton and Jack Spencer Gordon Scholarship is greatly acknowledged.

The help provided by Mr. Shaahin Rushan on implementing my proposed

algorithm in Java is acknowledged.

ii

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

A c k n o w l e d g m e n t s

I would like to extend my hearty appreciation to Dr. Mehran Mehrandezh for his

invaluable guidance in conducting the research reported in this thesis. I am indebted to

him for both his time and insights over the course o f conducting this thesis.

I am very grateful to the Faculty of Graduate Studies and Research for their

financial support. In addition, the financial support provided through the John Spencer

Middleton and Jack Spencer Gordon Scholarship is greatly acknowledged.

The help provided by Mr. Shaahin Rushan on implementing my proposed

algorithm in Java is acknowledged.

ii

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

DEDICATION

This thesis is dedicated to my parents. Without their

devotion, support and above all love, the completion

of this work would not have been possible.

iii

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

D ed ic a t io n

This thesis is dedicated to my parents. Without their

devotion, support and above all love, the completion

of this work would not have been possible.

iii

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

TABLE OF CONTENTS

ABSTRACT I

ACKNOWLEDGMENTS II

DEDICATION III

TABLE OF CONTENTS IIV

LIST OF TABLES VI

LIST OF FIGURES VII

LIST OF APPENDICES VIII

LIST OF ACRONYMS IIX

CHAPTER 1: INTRODUCTION TO SCHEDULING 1

1.1 FLOW-SHOP SCHEDULING PROBLEM 1 1.2 RESEARCH OBJECTIVES 8 1.3 RESEARCH CONTRIBUTIONS 8

CHAPTER 2: REVIEW OF LITERATURE 10

2.1 JOHNSON'S ALGORITHM 12 2.2 THE ALGORITHM OF NAWAZ, ENSCORE AND HAM 13 2.3 TAILLARD'S ALGORITHM 15 2.4 TAILLARD'S BENCHMARK PROBLEMS 18

CHAPTER 3: GENETIC ALGORITHMS (AN OVERVIEW) AND THEIR APPLICATIONS IN THE PFSP 21

3.1 REPRESENTATION AND INITIAL POPULATION 25 3.2 EVALUATION 26 3.3 SELECTION 26

3.3.1 Roulette Wheel Selection 27 3.3.2 Rank-Based Selection 28 3.3.3 Tournament Selection 30 3.3.4 Elitist Selection 30

3.4 CROSSOVER OPERATORS 30 3.4.1 Longest Common Subsequence Crossover (LCSX) 32 3.4.2 Similar Block Order Crossover (SBOX) 34

3.5 MUTATION OPERATORS 35 3.5.1 Insertion Mutation (Shift Change Mutation) 37 3.5.2 Reciprocal Exchange Mutation (Swap Mutation) 36 3.5.3 Transpose Mutation 36 3.5.4 Inversion Mutation 37

CHAPTER 4: SOLUTION METHODOLOGY 39

4.1 THE STRUCTURE OF THE PROPOSED GA 39

iv

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

Ta b l e o f C o n ten t s

ABSTRACT........................................................................................................................ I

ACKNOWLEDGMENTS............................................................................................... IIDEDICATION.................................................................................................................IllTABLE OF CONTENTS............................................................................................. IIVLIST OF TABLES..........................................................................................................VI

LIST OF FIGURES...................................................................................................... VIILIST OF APPENDICES.............................................................................................VIII

LIST OF ACRONYMS................................................................................................ IIXCHAPTER 1: INTRODUCTION TO SCHEDULING..................................................1

1.1 Flo w -S hop Sc h ed u lin g Pr o b l e m .............................................................................................. 11.2 Resea r c h O b je c t iv e s ....................................................................................................................... 81.3 Re se a r c h Co n t r ib u t io n s ................................................................................................................8

CHAPTER 2: REVIEW OF LITERATURE................................................................102.1 Jo h n s o n ’s A l g o r it h m .................................................................................................................... 122 .2 The A lgorithm of N a w a z , En sc o r e a n d H a m .................................................................132.3 Ta il l a r d ’s A lg o r ith m ...................................................................................................................152 .4 Ta il l a r d ’s B en c h m a r k Pr o bl em s ...........................................................................................18

CHAPTER 3: GENETIC ALGORITHMS (AN OVERVIEW) AND THEIR APPLICATIONS IN THE PFSP....................................................................................21

3.1 Repr esen ta tio n a n d Initia l Po p u l a t io n ............................................................................253 .2 Ev a l u a t io n ......................................................................................................................................... 263.3 S el e c t io n .............................................................................................................................................. 26

3.3.1 Roulette Wheel Selection..........................................................................................273.3.2 Rank-Based Selection............................................................................................... 283.3.3 Tournament Selection.............................................................................................. 303.3.4 Elitist Selection ......................................................................................................... 30

3.4 C r o sso v e r O p e r a t o r s .................................................................................................................. 303.4.1 Longest Common Subsequence Crossover (LCSX)............................................. 323.4.2 Similar Block Order Crossover (SBOX)................................................................34

3.5 M u t a t io n Op e r a t o r s .....................................................................................................................353.5.1 Insertion Mutation (Shift Change M utation)........................................................ 373.5.2 Reciprocal Exchange Mutation (Swap Mutation).................................................363.5.3 Transpose M utation ..................................................................................................363.5.4 Inversion Mutation....................................................................................................37

CHAPTER 4: SOLUTION METHODOLOGY.......................................................... 394.1 T he Str u c tu r e of the Pro po sed G A .................................................................................. 39

iv

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

4.1.1 Representation and Initial Population 39 4.1.2 Selection Mechanisms 41 4.1.3 Crossover and Mutation Mechanisms 41 4.1.5 Termination Condition 43

4.2 ITERATED GREEDY ALGORITHM 44 4.3 HYBRIDIZATION WITH ITERATED GREEDY ALGORITHM 47 4.4 FINAL REMARKS ON THE IMPLEMENTATION OF THE PROPOSED ALGORITHM 49

CHAPTER 5: EXPERIMENTAL PARAMETER TUNING OF THE PROPOSED ALGORITHM 50

5.1 IMPLEMENTATION OF THE FULL FACTORIAL EXPERIMENTAL DESIGN 50 5.2 ANALYSIS OF VARIANCE FOR THE PROPOSED HYBRID ALGORITHM 52 5.3 MODEL ADEQUACY CHECKING FOR THE PROPOSED HYBRID ALGORITHM 56 5.4 INTERPRETING THE RESULTS OF ANOVA FOR THE PROPOSED HYBRID ALGORITHM 61 5.5 PLOTS OF MAIN EFFECTS AND THEIR INTERACTIONS FOR THE PROPOSED HYBRID ALGORITHM 63 5.6 TUNING THE PROPOSED NON-HYBRID GA 66 5.7 PERFORMANCE OF THE STAND-ALONE IGA AND ITS COMPARISON WITH THE HYBRID GA 70 5.8 PERFORMANCE OF THE NON-HYBRID GA AND ITS COMPARISON WITH THE HYBRID GA 78

CHAPTER 6: CONCLUSIONS AND FUTURE WORK 82

REFERENCES 85

v

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

4.1.1 Representation and Initial Population................................................................... 394.1.2 Selection Mechanisms.............................................................................................. 414.1.3 Crossover and Mutation M echanisms................................................................... 414.1.5 Termination Condition........................................................................................... 43

4.2 Ite r a t ed G r ee d y A l g o r it h m .................................................................................................... 444.3 Hy b r id iza t io n w ith Iter ated G r ee d y A lg o r ith m ....................................................... 474 .4 Fin a l Rem a r k s o n the Im plem en ta tio n of the Pr o po sed A lg o r it h m 49

CHAPTER 5: EXPERIMENTAL PARAMETER TUNING OF THE PROPOSED ALGORITHM................................................................................................................. 50

5.1 Im plem en ta tio n of the Fu ll Facto rial Ex per im en ta l D e s ig n ........................... 505.2 A n a l y sis of V a r ia n c e for the Pro po sed H y b r id A l g o r it h m ............................... 525.3 M o d el A d e q u a c y Check ing for the Pr o po sed H y b r id A l g o r it h m .................. 565.4 In terpr etin g the Re su l t s of A N O V A for the Pr o po sed H y b r id A lgorithm 615.5 Plo ts of M a in E ffects a n d T heir In te r a c tio n s for the Pr o po sed H y br id A l g o r ith m ....................................................................................................................................................635 .6 Tu n in g the Pr o po sed N o n -H y br id G A ................................................................................. 665.7 Per fo r m a n c e of the St a n d -a lo n e IG A a n d its Co m pa r iso n w ith the Hy br id G A ..................................................................................................................................................................... 705.8 Per fo r m a n c e of the N o n -H y b r id G A a n d its C o m pa r iso n w ith the H y br id G A ..................................................................................................................................................................... 78

CHAPTER 6: CONCLUSIONS AND FUTURE WORK............................................82REFERENCES.................................................................................................................85

v

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

LIST OF TABLES

TABLE 1.1 PROCESSING TIMES OF FIVE JOBS ON FOUR MACHINES. 5 TABLE 5.1 ANALYSIS OF VARIANCE FOR RPD OF THE PROPOSED HYBRID GA FOR SOLVING

PFSP 54 TABLE 5.2 AVERAGE RPD FOR DIFFERENT PROBLEMS SIZES OF TAILLARD'S BENCHMARKS

OBTAINED BY TEN RUNS OF THE TUNED HYBRID GA 66 TABLE 5.3 AVERAGE RPD FOR DIFFERENT INSTANCE SIZES OF TAILLARD'S BENCHMARKS

OBTAINED BY THE THE STAND-ALONE IGA AND THE HYBRID GA 71 TABLE 5.4 AVERAGE RPD OBTAINED BY THE STAND-ALONE IGA, AND THE HYBRID GA

FOR DIFFERENT TAILLARD'S INSTANCES WITH THE SIZE OF 20x5. 72 TABLE 5.5 AVERAGE RPD OBTAINED BY THE STAND-ALONE IGA, AND THE HYBRID GA

FOR DIFFERENT TAILLARD'S INSTANCES WITH THE SIZE OF 20x 10 72 TABLE 5.6 AVERAGE RPD OBTAINED BY THE STAND-ALONE IGA, AND THE HYBRID GA

FOR DIFFERENT TAILLARD'S INSTANCES WITH THE SIZE OF 20x20 73 TABLE 5.7 AVERAGE RPD OBTAINED BY THE STAND-ALONE IGA, AND THE HYBRID GA

FOR DIFFERENT TAILLARD'S INSTANCES WITH THE SIZE OF 50x5 74 TABLE 5.8 AVERAGE RPD OBTAINED BY THE STAND-ALONE IGA, AND THE HYBRID GA

FOR DIFFERENT TAILLARD'S INSTANCES WITH THE SIZE OF 50x 10 74 TABLE 5.9 AVERAGE RPD OBTAINED BY THE STAND-ALONE IGA, AND THE HYBRID GA

FOR DIFFERENT TAILLARD'S INSTANCES WITH THE SIZE OF 50x20 75 TABLE 5.10 AVERAGE RPD OBTAINED BY THE STAND-ALONE IGA, AND THE HYBRID GA

FOR DIFFERENT TAILLARD'S INSTANCES WITH THE SIZE OF 100x5 75 TABLE 5.11 AVERAGE RPD OBTAINED BY THE STAND-ALONE IGA, AND THE HYBRID GA

FOR DIFFERENT TAILLARD'S INSTANCES WITH THE SIZE OF 100x 10 76 TABLE 5.12 AVERAGE RPD OBTAINED BY THE STAND-ALONE IGA, AND THE HYBRID GA

FOR DIFFERENT TAILLARD'S INSTANCES WITH THE SIZE OF 100x20 76 TABLE 5.13 AVERAGE RPD OBTAINED BY THE STAND-ALONE IGA, AND THE HYBRID GA

FOR DIFFERENT TAILLARD'S INSTANCES WITH THE SIZE OF 200x 10 77 TABLE 5.14 AVERAGE RPD OBTAINED BY THE STAND-ALONE IGA, AND THE HYBRID GA

FOR DIFFERENT TAILLARD'S INSTANCES WITH THE SIZE OF 200x20 77 TABLE 5.15 AVERAGE RPD FOR DIFFERENT INSTANCE SIZES OF TAILLARD'S BENCHMARKS

OBTAINED BY THE TUNED NON-HYBRID GA WITH THE TERMINATION CONDITION OF NxMx360 80

vi

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

L ist o f Ta b l e s

Ta ble 1.1 Pr o c essin g tim es of five jobs o n fo u r m a c h in e s .....................................................5T a ble 5.1 A n a l y sis of V a r ia n c e for RPD of the pro po sed h y b r id G A for so lv in g

PF SP .............................................................................................................................................................54Ta b l e 5 .2 A v er a g e R PD for different problem s sizes of Ta il l a r d 's ben c h m a r k s

OBTAINED BY TEN RUNS OF THE TUNED HYBRID G A .................................................................66T a ble 5.3 A v er a g e R PD for different in st a n c e sizes of Ta il l a r d 's be n c h m a r k s

OBTAINED BY THE THE STAND-ALONE IG A AND THE HYBRID G A .......................................71Ta b l e 5 .4 A v er a g e RPD o b ta in ed b y the s t a n d -a lo n e IG A, a n d the h y br id G A

FOR DIFFERENT TAILLARD'S INSTANCES WITH THE SIZE OF 2 0 x 5 ......................................... 72Ta b l e 5.5 A v er a g e R PD o b ta in ed b y the s t a n d -a lo n e IG A, a n d the h y br id G A

FOR DIFFERENT TAILLARD'S INSTANCES WITH THE SIZE OF 2 0 x 1 0 ......................................72Ta ble 5 .6 A v er a g e RPD o b ta in ed b y the s t a n d -a lo n e IG A, a n d th e h y br id G A

FOR DIFFERENT TAILLARD'S INSTANCES WITH THE SIZE OF 2 0 x 2 0 ......................................73Ta b l e 5 .7 A v er a g e RPD o b ta in ed b y the s t a n d -a lo n e IG A, a n d th e h y br id G A

FOR DIFFERENT TAILLARD'S INSTANCES WITH THE SIZE OF 5 0 x 5 ........................................ 74Ta b l e 5 .8 A v er a g e RPD o b ta in ed b y the s t a n d -a lo n e IG A, a n d the h y br id G A

FOR DIFFERENT TAILLARD'S INSTANCES WITH THE SIZE OF 5 0x 1 0 ......................................74Ta b l e 5 .9 A v er a g e RPD o b ta in ed b y the s t a n d -a lo n e IG A, a n d the h y br id G A

FOR DIFFERENT TAILLARD'S INSTANCES WITH THE SIZE OF 5 0 x 2 0 ......................................75Ta ble 5 .10 A v er a g e RPD o b ta in ed b y the s t a n d -a l o n e IG A, a n d the h y b r id G A

FOR DIFFERENT TAILLARD'S INSTANCES WITH THE SIZE OF 1 0 0 x 5 ......................................75Ta b l e 5.11 A v er a g e R PD o b ta in ed b y the s t a n d -a l o n e IG A, a n d the h y br id G A

FOR DIFFERENT TAILLARD'S INSTANCES WITH THE SIZE OF 100x 1 0 ................................... 76Ta b l e 5 .12 A v er a g e R PD o b ta in ed b y the s t a n d -a lo n e IG A , a n d the h y br id G A

FOR DIFFERENT TAILLARD'S INSTANCES WITH THE SIZE OF 1 0 0 x 2 0 ................................... 76Ta ble 5 .13 A v er a g e R PD o b ta in ed b y the s t a n d -a lo n e IG A , a n d the h y br id G A

for d ifferent Ta ill a r d 's in st a n c e s w ith the SIZE OF 2 0 0 X1 0 ................................... 77Ta b l e 5 .14 A v er a g e R PD o b ta in ed b y the s t a n d -a l o n e IG A , a n d the h y br id G A

FOR DIFFERENT TAILLARD'S INSTANCES WITH THE SIZE OF 2 0 0 x 2 0 ................................... 77Ta b l e 5 .15 A v er a g e R PD for d ifferent in st a n c e sizes of Ta il l a r d 's be n c h m a r k s

OBTAINED BY THE TUNED NON-HYBRID G A WITH THE TERMINATION CONDITION OF NXMX360....................................................................................................................................................80

vi

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

LIST OF FIGURES

FIGURE 1.1 GANTT CHART FOR THE PERMUTATION {J1, J2, J3, J4, J5} BASED ON DATA GIVEN IN TABLE1.1 (ORIGINAL IN COLOR). 5

FIGURE 2.1 THE NEH ALGORITHM 14 FIGURE 2.2 GANTT CHART FOR THE PARTIAL SCHEDULE {J1, J2, J4, J.5} BASED ON GIVEN

DATA IN TABLE 1.1 (ORIGINAL IN COLOR) 16 FIGURE 2.3 GANTT CHART FOR THE LATEST START TIMES FOR THE PARTIAL SCHEDULE OF

{J1, J2, J4, J.5} (ORIGINAL IN COLOR). 17 FIGURE 2.4 GANTT CHART FOR THE PARTIAL SCHEDULE {J1, J2, J3} AFTER INSERTING THE

J3 (ORIGINAL IN COLOR) 17 FIGURE 2.5 GANTT CHART AFTER ADDING TAILS (ORIGINAL IN COLOR) 17 FIGURE 3.1 THE STRUCTURE OF A GENETIC ALGORITHM. 22 FIGURE 4.1 THE PROPOSED MODIFIED NEH ALGORITHM AS THE INITIAL POPULATION

GENERATOR 40 FIGURE 4.2 PSEUDO CODE OF AN ITERATED GREEDY ALGORITHM PROCEDURE WITH LOCAL

SEARCH. 46 FIGURE 4.3 PSEUDO CODE FOR THE HYBRID ALGORITHM 48 FIGURE 5.1 NORMAL PROBABILITY PLOT OF THE RESIDUALS (FOR THE HYBRID GA) 57 FIGURE 5.2 HISTOGRAM OF THE RESIDUALS (FOR THE HYBRID GA) 57 FIGURE 5.3 PLOT OF RESIDUALS VERSUS N (FOR THE HYBRID GA) 58 FIGURE 5.4 PLOT OF RESIDUALS VERSUS PROBABILITY OF IGA (FOR THE HYBRID GA) 58 FIGURE 5.5A PLOT OF RESIDUALS VERSUS THE OBSERVATION ORDER (FOR THE HYBRID GA)

59 FIGURE 5.5B PLOT OF RESIDUALS VERSUS THE OBSERVATION ORDER (FOR THE HYBRID GA)

60 FIGURE 5.5C PLOT OF RESIDUALS VERSUS THE OBSERVATION ORDER (FOR THE HYBRID GA)

60 FIGURE 5.5D PLOT OF RESIDUALS VERSUS THE OBSERVATION ORDER (FOR THE HYBRID GA)

61 FIGURE 5.6 PLOT OF MAIN EFFECTS OF SELECTION TYPE AND MUTATIOPN PROBABILITY FOR

THE HYBRID GA 64 FIGURE 5.7 PLOT OF INTERACTION BETWEEN SELECTION TYPE AND MUTATION RATE FOR

THE HYBRID GA 65 FIGURE 5.8 PLOTS OF MAIN EFFECTS OF THE CROSSOVER TYPE, POPULATION SIZE,

CROSSOVER PROBABILITY AND IGA PROBABILITY (FOR THE HYBRID GA) 65 FIGURE 5.9 PLOTS OF MAIN EFFECTS FOR THE NON-HYBRID GA 68 FIGURE 5.10 INTERACTION PLOTS FOR THE NON-HYBRID GA 69 FIGURE 5.11 PLOT OF THE BEST SOLUTION ACROSS GENERATION OF THE NON-HYBRID GA

FOR THE INSTANCE TAOS 1 WITH THE TERMINATION CONDITION OF NxM x360 79 FIGURE 5.12 PLOT OF THE BEST SOLUTION ACROSS GENERATION OF THE NON-HYBRID GA

FOR THE INSTANCE TA071 WITH THE TERMINATION CONDITION OF NxMx 360 80

vii

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

L ist O f F ig u r e s

F ig u r e 1.1 G a n t t c h a r t f o r t h e p e r m u ta t io n {Jl, J2, J3, J4, J5 } b a s e d o n d a t ag iv e n in Ta b l e 1.1 (O riginal in Co lor) ...................................................................................... 5

F igure 2.1 T he NEH a l g o r it h m ............................................................................................................ 14F ig u r e 2 .2 G a n t t c h a r t f o r t h e p a r t i a l s c h e d u le {Jl, J2, J4, J5} b a s e d o n g iv e n

d a t a in T a b l e 1.1 (original in color) .................................................................................... 16F igure 2 .3 G a n t t c h a r t for the la test start tim es for the pa r tia l sc h ed u l e of

{Jl, J2, J4, J5} (ORIGINAL IN COLOR).......................................................................................... 17F ig u r e 2 .4 G a n t t c h a r t f o r t h e p a r t i a l s c h e d u le {Jl, J2, J3} a f t e r in s e r t in g t h e

J3 ( o r ig in a l in c o l o r ) .......................................................................................................................17F igure 2 .5 G a n t t c h a r t a fter a d d in g tails (o rig inal in co lo r ) ...................................... 17F igure 3.1 T he str uc tur e of a genetic alg o rith m ....................................................................22F igure 4.1 T he pr o po sed m o dified NEH a lgo rithm a s the in itial po pu la tio n

GENERATOR.............................................................................................................................................. 40F igure 4 .2 P se u d o c o d e of a n iterated g r eed y a lgo rithm pr o c ed u re w ith lo cal

SEARCH........................................................................................................................................................46F igure 4 .3 P se u d o c o d e for the h y br id a l g o r it h m ..................................................................48F igure 5.1 N o r m a l pr o ba bility plot of the r e sid u a l s (for th e h y b r id G A )............57F igure 5 .2 H isto g ra m of the r esid u a l s (fo r the h y br id G A ) ............................................ 57F ig u r e 5.3 P l o t o f r e s id u a l s v e r s u s n ( f o r t h e h y b r id G A ) ...............................................58F igure 5 .4 Plot of r esid u a l s v e r su s pr o ba bility of IG A (for the h y b r id G A ).......58F igure 5 .5 a Plot of r e sid u a l s v e r su s the o b se r v a tio n o r d er (fo r the h y br id G A )

........................................................................................................................................................................59F igure 5 .5 b Plot of r esid u a l s v e r su s the o b se r v a tio n o r d er (for the h y br id G A )

60F igure 5 .5 c Plot of r esid u a l s v e r su s the o b se r v a tio n o r d er (for the h y br id G A )

60F igure 5 .5 d Plot of r esid u a l s v e r su s the o b se r v a t io n o r d er (fo r the h y br id G A )

61F igure 5 .6 Plot of m a in effects of selection ty pe a n d m u t a t io pn pr o ba bility for

THE HYBRID G A .......................................................................................................................................64F igure 5 .7 Plot of In te r a c tio n betw een selection ty pe a n d m u t a t io n rate for

THE HYBRID G A .......................................................................................................................................65F igure 5 .8 Plo ts of m a in effects of the c r o sso v er t y p e , po pu la tio n size ,

CROSSOVER PROBABILITY AND IG A PROBABILITY (FOR THE HYBRID G A )...................... 65F igure 5 .9 Plo ts of m a in effects for the n o n -h y br id G A ....................................................68F igure 5 .10 In te r a c tio n plots for the N o n -h y br id G A .........................................................69F igure 5.11 Plot of the b e st so lu tio n a c r o ss g ener atio n of the n o n -h y br id G A

FOR THE INSTANCE TA051 WITH THE TERMINATION CONDITION OF VXM><360................79F igure 5 .12 Plot of the b e st so lu tio n a c r o ss g ener atio n of th e n o n -h y br id G A

FOR THE INSTANCE TA071 WITH THE TERMINATION CONDITION OF N*M><3 6 0 ................80

vii

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

LIST OF APPENDICES

APPENDIX 90

APPENDIX A. PLOT OF RESIDUALS VERSUS FACTORS 91 APPENDIX B. ANOVA TABLE FOR THE NON-HYBRID GA 94 APPENDIX C. RESIDUALS PLOTS FOR THE NON-HYBRID GA 95 APPENDIX D. BEST-KNOWN MAKESPAN FOR TAILLARD'S STANDARD BENCHMARK ROBLEMS 96 APPENDIX E. JAVA CODE 98

viii

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

L ist o f A ppe n d ic e s

APPENDIX.......................................................................................................................90A ppen d ix A . Plot of Re sid u a l s v e r su s Fa c t o r s ................................................................... 91A p pen d ix B . A N O V A Ta b l e for the N o n -H y br id G A .........................................................94A p pen d ix C. Re sid u a l s Plots for the N o n -H y b r id GA......................................... 95A ppen d ix D . b e st -k n o w n m a k e spa n for Ta il l a r d 's s t a n d a r d be n c h m a r k

ROBLEMS..........................................................................................................................................................96A ppen d ix E. Ja v a Co d e ..........................................................................................................................98

viii

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

LIST OF ACRONYMS

ANOVA: Analysis of Variance

CPU: Central Processing Unit

DOE: Design of Experiments

EP: Evolution Programs

FSP: Flow-Shop Scheduling Problem

GA: Genetic Algorithms

IGA: Iterated Greedy Algorithm

ILS: Iterated Local Search

LCSX: Longest Common Subsequence Crossover

NEH: Nawaz, Enscore and Ham's Algorithm

PFSP: Permutation Flow-Shop Scheduling Problem

RPD: Relative Percentage Deviation

SA: Simulated Annealing

SBOX: Similar Block Order Crossover

TS: Tabu Search

TSP: Traveling Salesman Problem

ix

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

L ist o f A c r o n y m s

ANOVA: Analysis o f Variance

CPU: Central Processing Unit

DOE: Design o f Experiments

EP: Evolution Programs

FSP: Flow-Shop Scheduling Problem

GA: Genetic Algorithms

IGA: Iterated Greedy Algorithm

ILS: Iterated Local Search

LCSX: Longest Common Subsequence Crossover

NEH: Nawaz, Enscore and Ham’s Algorithm

PFSP: Permutation Flow-Shop Scheduling Problem

RPD: Relative Percentage Deviation

SA: Simulated Annealing

SBOX: Similar Block Order Crossover

TS: Tabu Search

TSP: Traveling Salesman Problem

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

CHAPTER 1: INTRODUCTION To SCHEDULING

Scheduling can simply be defined as "the allocation of resources over time to perform a

collection of tasks" [2]. It is a decision-making process in which one or more objectives

should be optimized [39].

Different forms of resources and tasks in manufacturing systems or service

industries can result in different classifications of scheduling. As Pinedo states, the

resources can take many forms such, as machines in a workshop, crews of an airplane or

a ship, processing units in a network of computers, and so on [39]. The tasks may be

operations on an assembly line, take-offs and landings at an airport, phases of a

construction project, etc. [39]. Therefore, according to the different types of resources

and tasks, and also considering the technological constraints that exist, various classical

scheduling problems can be defined and formulated, such as flow-shop scheduling, job

shop scheduling, open shop scheduling, etc.

1.1 Flow-Shop Scheduling Problem (FSP)

A well-known class of scheduling problems, the flow-shop scheduling problem, is of

interest in this thesis. In assembly lines of many manufacturing companies, there are a

number of operations that have to be performed on every job. Frequently, these jobs can

follow the same route in an assembly line, meaning that the processing order of the jobs

on machines should remain the same. The machines are normally set up in series, which

constitutes a flow-shop [39], and the scheduling of the jobs in this environment is

1

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

C h a p t e r 1: In t r o d u c t io n To Sc h e d u l in g

Scheduling can simply be defined as “the allocation of resources over time to perform a

collection o f tasks” [2]. It is a decision-making process in which one or more objectives

should be optimized [39].

Different forms o f resources and tasks in manufacturing systems or service

industries can result in different classifications o f scheduling. As Pinedo states, the

resources can take many forms such, as machines in a workshop, crews o f an airplane or

a ship, processing units in a network o f computers, and so on [39], The tasks may be

operations on an assembly line, take-offs and landings at an airport, phases o f a

construction project, etc. [39]. Therefore, according to the different types o f resources

and tasks, and also considering the technological constraints that exist, various classical

scheduling problems can be defined and formulated, such as flow-shop scheduling, job

shop scheduling, open shop scheduling, etc.

1.1 Flow-Shop Scheduling Problem (FSP)

A well-known class o f scheduling problems, the flow-shop scheduling problem, is of

interest in this thesis. In assembly lines o f many manufacturing companies, there are a

number o f operations that have to be performed on every job. Frequently, these jobs can

follow the same route in an assembly line, meaning that the processing order o f the jobs

on machines should remain the same. The machines are normally set up in series, which

constitutes a flow-shop [39], and the scheduling of the jobs in this environment is

1

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

commonly referred to as flow-shop scheduling. An apparent example for such a shop is

an assembly line, where the workers (or workstations) represent the machines and a

unidirectional conveyer performs the materials handling for machines [7]. In this

particular example, operations are performed on materials. A job in the aforementioned

environment is accomplished the moment the material of interest leaves the last machine.

The flow-shop scheduling problem can be mathematically described as follows,

[15]:

• There are n jobs to be processed on m machines.

• Each job has to be processed on all machines in the order 1, 2, ..., m.

• The processing time, pi,;, of job i on machine] is known.

• Every machine can handle at most one job at a time.

• Each job can be processed on one machine at a time.

• The operations, once started, cannot be preempted.

• The set-up times for operations are sequence-independent and are included

in the processing times.

• It is assumed that there is an unlimited storage (buffer) capacity in

between the successive machines.

• All jobs are available for processing on the machines at time zero.

• Machines never breakdown and are available throughout the scheduling

period.

2

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

commonly referred to as flow-shop scheduling. An apparent example for such a shop is

an assembly line, where the workers (or workstations) represent the machines and a

unidirectional conveyer performs the materials handling for machines [7]. In this

particular example, operations are performed on materials. A job in the aforementioned

environment is accomplished the moment the material o f interest leaves the last machine.

The flow-shop scheduling problem can be mathematically described as follows,

[15]:

• There are n jobs to be processed on m machines.

• Each job has to be processed on all machines in the order 1 ,2 , m.

• The processing time, ptj, o f job i on machine j is known.

• Every machine can handle at most one job at a time.

• Each job can be processed on one machine at a time.

• The operations, once started, cannot be preempted.

• The set-up times for operations are sequence-independent and are included

in the processing times.

• It is assumed that there is an unlimited storage (buffer) capacity in

between the successive machines.

• All jobs are available for processing on the machines at time zero.

• Machines never breakdown and are available throughout the scheduling

period.

2

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

The time required to complete the last job on machine m is called the total

completion time (makespan), and is denoted as C max. The objective is to determine a

processing order of the jobs on each machine which minimizes the Cmax . Conventionally,

the flow-shop scheduling problem with the makespan as the objective function to be

minimized is given the notation n/m/F/Cmax , where n represents the number of jobs, m

represents the number of machines, and F denotes that the given machine environment is

flow-shop. The C max is the most common objective function (performance measure) cited

in the literature on flow-shop scheduling, and its minimization leads to minimization of

the total production run.

Other objective functions have been studied in the literature as well. The most

common ones are flow-time (e.g., [12], [18], [32]), tardiness (e.g., [1], [21]), and lateness

(e.g., [26], [38], [49]). These objective functions are briefly defined as follows:

• Flow-time: Flow-time for a job is the total time which the job spends on

the shop. In other words, the flow-time of a job is the period between the

start of its processing on the first machine and its completion on the last

machine. Noticeably, the mean flow-time is the average of the flow-time

for all the jobs.

• Lateness: Assuming a deadline for each job, the lateness of a job is its

completion time minus its due date. Therefore, the lateness of a job can

have either a negative or a positive value.

• Tardiness: The tardiness of a job is the maximum of two values; namely

the lateness of the job and zero. Therefore, tardiness is always a non-

3

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

The time required to complete the last job on machine m is called the total

completion time (makespan), and is denoted as Cmax. The objective is to determine a

processing order o f the jobs on each machine which minimizes the Cmax. Conventionally,

the flow-shop scheduling problem with the makespan as the objective function to be

minimized is given the notation n/m/F/Cmax, where n represents the number o f jobs, m

represents the number o f machines, and F denotes that the given machine environment is

flow-shop. The Cmax is the most common objective function (performance measure) cited

in the literature on flow-shop scheduling, and its minimization leads to minimization of

the total production run.

Other objective functions have been studied in the literature as well. The most

common ones are flow-time (e.g., [12], [18], [32]), tardiness (e.g., [1], [21]), and lateness

(e.g., [26], [38], [49]). These objective functions are briefly defined as follows:

• Flow-time: Flow-time for a job is the total time which the job spends on

the shop. In other words, the flow-time of a job is the period between the

start o f its processing on the first machine and its completion on the last

machine. Noticeably, the mean flow-time is the average of the flow-time

for all the jobs.

• Lateness: Assuming a deadline for each job, the lateness of a job is its

completion time minus its due date. Therefore, the lateness o f a job can

have either a negative or a positive value.

• Tardiness: The tardiness o f a job is the maximum o f two values; namely

the lateness of the job and zero. Therefore, tardiness is always a non-

3

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

negative number. The interpretation behind defining the tardiness as an

objective function is that one may be simply interested in meeting due

dates without being concerned about their actual start times.

Most of the literature on the flow-shop scheduling is limited to a special case

called the permutation flow-shop scheduling (e.g., [23], [42], [45], [46], [47], and [50]).

In this particular case of flow-shop, machines must process the jobs in the very same

order. In other words, in permutation flow-shop scheduling, sequence change is not

allowed between the machines, and once the sequence of jobs is scheduled on the first

machine, this sequence remains unchanged on the other machines [3].

The Permutation Flow-Shop Scheduling Problem (PFSP) is conventionally

labeled as n/m/P/Cmax, where n represents the number of jobs, m represents the number of

machines, and P denotes that the given machine environment is permutation flow-shop.

Adopting the notation of Gen et al. in [15], the PFSP can be formulated as follows:

Let p(i, j) be the processing time for job i on machine j , and let {Ji, J2, ..., 4} be

a job permutation. Also, let C(Ji, k) be the completion time of job on machine k, then

completion times for the given permutation are:

C(11,1)= p(41) (1.1a)

C(Ji, 1) = C(41, 1) + p(J i, 1), for i = 2, ..., n, (1.1b)

C(J1, k) = C(J1, k-1) + p(Ji, k), for k = 2, ..., m, (1.1c)

4

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

negative number. The interpretation behind defining the tardiness as an

objective function is that one may be simply interested in meeting due

dates without being concerned about their actual start times.

Most o f the literature on the flow-shop scheduling is limited to a special case

called the permutation flow-shop scheduling (e.g., [23], [42], [45], [46], [47], and [50]).

In this particular case o f flow-shop, machines must process the jobs in the very same

order. In other words, in permutation flow-shop scheduling, sequence change is not

allowed between the machines, and once the sequence o f jobs is scheduled on the first

machine, this sequence remains unchanged on the other machines [3].

The Permutation Flow-Shop Scheduling Problem (PFSP) is conventionally

labeled as n/m/P/Cmax, where n represents the number o f jobs, m represents the number of

machines, and P denotes that the given machine environment is permutation flow-shop.

Adopting the notation of Gen et al. in [15], the PFSP can be formulated as follows:

Let p(i, j ) be the processing time for job i on machine j , and let {J\, Ji, ..., Jn) be

a job permutation. Also, let C(Jt, k) be the completion time o f job J\ on machine k, then

completion times for the given permutation are:

C(JU 1) = p (Ju 1) (1.1a)

C(Jh 1) = C(J,.U 1 )+ p (Jh 1), for i = 2, .... n, ( 1.1b)

C(J\, k) = C(Ji, £-1) + p(J\, k), for k = 2, .... m, (1.1c)

4

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

C(Ji, k) = max {C(Ji_i, k), C(Ji, k-1)} + p(J,, k),

for i = 2, ..., n; for k = 2, ..., m (1.1d)

The makespan for the given permutation is obtained through:

Cma., = m). (1.1e)

In the following illustrative example for the PFSP, there are five jobs to be

processed on four machines. The processing times of each job on different machines are

given in Table 1.1:

Cable 1.1 Processing times of five jobs on four machines [391

J.5

jobs processing times Jl J2 J3 J4

P(Jill) 5 5 3 6 3

P(Ji,2) 4 4 2 4 4

P(Ji,3) 4 4 3 4 1

P64,49 3 6 3 2 5

The following Gantt chart (Figure 1.1) illustrates how the makespan 34 for the

permutation of {Ji, J2, J3, J4, J5} is derived from data given in Table 1.1.

In addition to makespan, Figure 1.1 illustrates the earliest completion time for

each job on different machines. For example, the earliest completion time of J4 on

machine 1 to machine 4 are respectively 19, 23, 27, 29.

J1

J1

J3 J5

J3 J5

J5

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34

Figure 1.1 Gantt chart for the permutation {J1, J2, J3, J4, J5} based on data given in Table1.1 (Original in Color).

5

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

C(J\, k) = max{C(J,-.i, k), C(J, ft-1)} + p(Jt, k),

for / = 2 , n; for k = 2 , m ( 1.1 d)

The makespan for the given permutation is obtained through:

Cmax = C(Jn, m). ( l .le )

In the following illustrative example for the PFSP, there are five jobs to be

processed on four machines. The processing times o f each job on different machines are

given in Table 1.1:

Table 1.1 Processing times o f five jobs on four machines [391.jobs

processing times'""— Ji J 2 Ji J 4 Js

P ( J i J ) 5 5 3 6 3

p (J i> 2 ) 4 4 2 4 4

p ( J t ,3 ) 4 4 3 4 1

p (J i> 4 ) 3 6 3 2 5

The following Gantt chart (Figure 1.1) illustrates how the makespan 34 for the

permutation o f {J], J 2, J 3, J4, J 5 } is derived from data given in Table 1.1.

In addition to makespan, Figure 1.1 illustrates the earliest completion time for

each job on different machines. For example, the earliest completion time o f J 4 on

machine 1 to machine 4 are respectively 19, 23, 27, 29.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34

Figure 1.1 Gantt chart for the permutation {Jl, J2, J3, J4, J5} based on data given in Tablel.l (Original in Color).

5

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

The permutation flow-shop scheduling problem, as presented above, is a

combinatorial optimization problem and the size of its search space is n!. According to

Reeves, [43] any improvement in the quality of the solution (i.e., the makespan) obtained

for the general flow-shop scheduling (n/m/F/Cmax) is rather small compared with that of

permutation flow-shop scheduling. On the other hand, general flow-shop scheduling

causes the size of the search space to increase considerably, from n! to (n!)" . Therefore,

in the general form of flow-shop scheduling (where the permutation of jobs is allowed to

be different on each machine) one might obtain a slightly better makespan at the cost of

much higher computation time.

One of the most frequently cited papers in the field of the flow-shop scheduling

problem, which is also referred to as the first paper in that area, dates back to 1954 [25].

In that paper, Johnson proposed a constructive algorithm which can find the optimal

solution for the two-machine permutation flow-shop scheduling problem (2/m/P/Cm„,).

However, the PFSP (i.e., n/m/P/C„,„,) is known to be Non-deterministic Polynomial-time

hard (NP-hard') if the number of machines are greater than two [14], [44].

As mentioned earlier, scheduling problems can take many forms in industry.

Before closing the introductory notes on scheduling, the definitions of other important

machine scheduling problems that may arise in a shop environment are given according

to Pinedo [39]:

According to Weisstein, a problem is NP-hard if an algorithm for solving it can be translated into one for solving any NP-problem (nondeterministic polynomial time problem). NP-hard, therefore, means at least as hard as any NP-problem, although it might, in fact, be harder [63]. In addition, he defines NP-problems as follows: "A problem is assigned to the NP class if it is solvable in polynomial time by a nondeterministic Turing machine. A nondeterministic Turing machine is a "parallel" Turing machine that can take many computational paths simultaneously, with the restriction that the parallel Turing machines cannot communicate" [63].

6

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

The permutation flow-shop scheduling problem, as presented above, is a

combinatorial optimization problem and the size o f its search space is n!. According to

Reeves, [43] any improvement in the quality o f the solution (i.e., the makespan) obtained

for the general flow-shop scheduling (n/m/F/Cmax) is rather small compared with that of

permutation flow-shop scheduling. On the other hand, general flow-shop scheduling

causes the size o f the search space to increase considerably, from n! to (n!)m. Therefore,

in the general form of flow-shop scheduling (where the permutation o f jobs is allowed to

be different on each machine) one might obtain a slightly better makespan at the cost of

much higher computation time.

One o f the most frequently cited papers in the field o f the flow-shop scheduling

problem, which is also referred to as the first paper in that area, dates back to 1954 [25].

In that paper, Johnson proposed a constructive algorithm which can find the optimal

solution for the two-machine permutation flow-shop scheduling problem (2/m/P/Cmax ).

However, the PFSP (i.e., n/m/P/Cmax) is known to be Non-deterministic Polynomial-time

hard (NP-hard1) if the number o f machines are greater than two [14], [44].

As mentioned earlier, scheduling problems can take many forms in industry.

Before closing the introductory notes on scheduling, the definitions o f other important

machine scheduling problems that may arise in a shop environment are given according

to Pinedo [39]:

1 According to Weisstein, a problem is NP-hard if an algorithm for solving it can be translated into one forsolving any NP-problem (nondeterministic polynomial time problem). NP-hard, therefore, means at least ashard as any NP-problem, although it might, in fact, be harder [63]. In addition, he defines NP-problems asfollows: “A problem is assigned to the NP class if it is solvable in polynomial time by a nondeterministicTuring machine. A nondeterministic Turing machine is a "parallel" Turing machine that can take many computational paths simultaneously, with the restriction that the parallel Turing machines cannot communicate” [63].

6

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

Flexible Flow-Shop Scheduling: A flexible flow-shop makes use of parallel

machines. Instead of having m machines working in series, there would exist c stages

(work centers) in series with a number of identical machines working in parallel at each

stage. Each job must be performed first at Stage 1, then at Stage 2, and so on. Each stage

can provide us with some parallel machines and a job can be processed on any idle

machine at each stage.

Job-Shop Scheduling: In a job shop environment, each job has its own pre-

specified route of machines to follow. These routes are fixed but they are not necessarily

the same for each job. The job shop scheduling problem itself can be classified into two

sub-categories based on whether recirculation is allowed or not. Recirculation occurs

when a job visits certain machines more than once.

Flexible Job-Shop Scheduling: A flexible job shop is a generalization of the job

shop scheduling by making use of parallel machines. Each job has its own pre-specified

route of machines to follow. But similar to the flexible flow-shop environment, there are

c work centers with a number of identical machines at each work center. The work

centers can provide us with parallel machines, and each job can be processed on any idle

machine at each work center.

Open-Shop Scheduling: Similar to flow-shop scheduling, each job has to be

processed on each of the m machines. However, there are no technological constraints

with respect to the routing of each job through the machines. In other words, the

scheduler can specify a route for each job, and different jobs are allowed to have different

routes.

7

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

Flexible Flow-Shop Scheduling: A flexible flow-shop makes use o f parallel

machines. Instead o f having m machines working in series, there would exist c stages

(work centers) in series with a number o f identical machines working in parallel at each

stage. Each job must be performed first at Stage 1, then at Stage 2, and so on. Each stage

can provide us with some parallel machines and a job can be processed on any idle

machine at each stage.

Job-Shop Scheduling: In a job shop environment, each job has its own pre­

specified route o f machines to follow. These routes are fixed but they are not necessarily

the same for each job. The job shop scheduling problem itself can be classified into two

sub-categories based on whether recirculation is allowed or not. Recirculation occurs

when a job visits certain machines more than once.

Flexible Job-Shop Scheduling: A flexible job shop is a generalization of the job

shop scheduling by making use o f parallel machines. Each job has its own pre-specified

route of machines to follow. But similar to the flexible flow-shop environment, there are

c work centers with a number o f identical machines at each work center. The work

centers can provide us with parallel machines, and each job can be processed on any idle

machine at each work center.

Open-Shop Scheduling: Similar to flow-shop scheduling, each job has to be

processed on each o f the m machines. However, there are no technological constraints

with respect to the routing o f each job through the machines. In other words, the

scheduler can specify a route for each job, and different jobs are allowed to have different

routes.

7

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

1.2 Research Objectives

As Pinedo states, efficient scheduling has become crucial for the survival of companies in

the marketplace [39]. Scheduling systems can be considered as sub-systems that interact

with other sub-systems in an enterprise, such as logistics, supplier, and marketing

systems. The overall system, which integrates all those sub-systems, is typically known

as an enterprise-wide information system. Jessup defines enterprise-wide information

system as "information systems that allow companies to integrate information across

operations on a company-wide basis" [24].

The purpose of this research is to investigate one well-known form of the

scheduling problems, the permutation flow-shop scheduling problem, with the makespan

minimization as the objective function. Development of a new algorithm based on

genetic algorithms to find solutions fast (and reliably) has been investigated.

Efficiency of the permutation flow-shop scheduling in manufacturing systems is

affected by the decisions made with respect to the sequence of jobs. Makespan

minimization, as mentioned earlier, leads to a minimization of the total production run.

The literature on the PFSP employing this objective function is vast. Therefore, proposed

algorithms can be extensively evaluated and compared with the wide range of heuristic

algorithms that already exist in the literature.

1.3 Research Contributions

A genetic algorithm-based solution methodology is developed and implemented in this

thesis. More specifically, the performance of two versions of the proposed algorithm,

namely, a stand-alone genetic algorithm (referred to as the non-hybrid genetic algorithm

8

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

1.2 Research Objectives

As Pinedo states, efficient scheduling has become crucial for the survival o f companies in

the marketplace [39]. Scheduling systems can be considered as sub-systems that interact

with other sub-systems in an enterprise, such as logistics, supplier, and marketing

systems. The overall system, which integrates all those sub-systems, is typically known

as an enterprise-wide information system. Jessup defines enterprise-wide information

system as “information systems that allow companies to integrate information across

operations on a company-wide basis” [24].

The purpose o f this research is to investigate one well-known form of the

scheduling problems, the permutation flow-shop scheduling problem, with the makespan

minimization as the objective function. Development o f a new algorithm based on

genetic algorithms to find solutions fast (and reliably) has been investigated.

Efficiency of the permutation flow-shop scheduling in manufacturing systems is

affected by the decisions made with respect to the sequence o f jobs. Makespan

minimization, as mentioned earlier, leads to a minimization o f the total production run.

The literature on the PFSP employing this objective function is vast. Therefore, proposed

algorithms can be extensively evaluated and compared with the wide range o f heuristic

algorithms that already exist in the literature.

1.3 Research Contributions

A genetic algorithm-based solution methodology is developed and implemented in this

thesis. More specifically, the performance o f two versions o f the proposed algorithm,

namely, a stand-alone genetic algorithm (referred to as the non-hybrid genetic algorithm

8

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

in this thesis) and a hybrid genetic algorithm (merging the GA with iterated greedy search

algorithm) are thoroughly investigated in this thesis. As for the comparative experimental

results, the standard benchmarks proposed by Taillard [53] are employed. Experimental

results, presented in this thesis, demonstrate that the proposed hybridized genetic

algorithm outperforms the stand-alone genetic algorithm.

The parameters of both the non-hybrid and the proposed hybrid genetic

algorithms are individually tuned using the full factorial experimental design and analysis

of variance. This statistical inference technique shows that the optimal combination of the

parameters for the proposed non-hybrid GA is as follows:

• Population size of 60,

• Selection type of rank-based,

• Crossover type of SBOX,

• Crossover probability of 0.40,

• Mutation probability of 0.20.

As for the hybrid genetic algorithm, it is shown that the following set of

parameters yields the optimal combination for the proposed hybrid GA:

• Population size of 40,

• Selection type of tournament,

• Crossover type of SBOX,

• Crossover probability of 0.60,

• Mutation probability of 0.1,

• IGA probability of 0.02.

9

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

in this thesis) and a hybrid genetic algorithm (merging the GA with iterated greedy search

algorithm) are thoroughly investigated in this thesis. As for the comparative experimental

results, the standard benchmarks proposed by Taillard [53] are employed. Experimental

results, presented in this thesis, demonstrate that the proposed hybridized genetic

algorithm outperforms the stand-alone genetic algorithm.

The parameters o f both the non-hybrid and the proposed hybrid genetic

algorithms are individually tuned using the full factorial experimental design and analysis

o f variance. This statistical inference technique shows that the optimal combination o f the

parameters for the proposed non-hybrid GA is as follows:

• Population size o f 60,

• Selection type o f rank-based,

• Crossover type o f SBOX,

• Crossover probability o f 0.40,

• Mutation probability o f 0.20.

As for the hybrid genetic algorithm, it is shown that the following set of

parameters yields the optimal combination for the proposed hybrid GA:

• Population size o f 40,

• Selection type o f tournament,

• Crossover type o f SBOX,

• Crossover probability o f 0.60,

• Mutation probability o f 0.1,

• IGA probability o f 0.02.

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

CHAPTER 2: REVIEW OF LITERATURE

The motivation for solving the PFSP over the last four decades stems not only from its

practical relevance, but also from its misleading simplicity and challenging difficulties

[28].

The proposed methods for the PFSP can be divided into two main categories;

namely, exact methods and heuristic methods. French refers to exact methods as

enumerative algorithms [13]. According to French, enumerative algorithms can be

described as algorithms which "generate schedules one by one, searching for an optimal

solution. Often, they use 'clever' elimination procedures to see if the non-optimality of a

schedule implies the non-optimality of many others not yet generated. Thus, the methods

may not search the whole set of feasible solutions. Nonetheless, they are considered as

methods that proceed through exhaustive enumeration and, hence, require much

computation time".

Enumerative algorithms, such as integer programming, and branch and bound

techniques, can be theoretically applied to find the optimal solution for the permutation

flow-shop scheduling problem [13], [28]. However, these methods are not practical for

large-sized or even mid-sized problems. Ruiz et al. [46] states that exact methods are

only applicable for small instances, when the number of jobs is roughly less than 20.

Therefore, researchers have focused on applying heuristic methods to the PFSP in order

10

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

C h a p t e r 2: R e v ie w O f L ite r a tu r e

The motivation for solving the PFSP over the last four decades stems not only from its

practical relevance, but also from its misleading simplicity and challenging difficulties

[28].

The proposed methods for the PFSP can be divided into two main categories;

namely, exact methods and heuristic methods. French refers to exact methods as

enumerative algorithms [13]. According to French, enumerative algorithms can be

described as algorithms which “generate schedules one by one, searching for an optimal

solution. Often, they use ‘clever’ elimination procedures to see if the non-optimality o f a

schedule implies the non-optimality o f many others not yet generated. Thus, the methods

may not search the whole set o f feasible solutions. Nonetheless, they are considered as

methods that proceed through exhaustive enumeration and, hence, require much

computation time”.

Enumerative algorithms, such as integer programming, and branch and bound

techniques, can be theoretically applied to find the optimal solution for the permutation

flow-shop scheduling problem [13], [28]. However, these methods are not practical for

large-sized or even mid-sized problems. Ruiz et al. [46] states that exact methods are

only applicable for small instances, when the number o f jobs is roughly less than 20.

Therefore, researchers have focused on applying heuristic methods to the PFSP in order

10

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

to find near-optimal solutions in much shorter time. The heuristics proposed for the PFSP

can fall into either constructive or improvement heuristics.

According to French [13], a constructive heuristic for a scheduling problem can

be defined as an algorithm that builds up a schedule from the given data of the problem

by following a simple set of rules (e.g., First-In-First-Out) which exactly determines the

processing order. Later on, a constructive heuristic will be discussed, and it can be

observed that this algorithm can optimally solve the two-machine flow-shop scheduling

problem.

Improvement heuristics, as contrasted to constructive heuristics, start from a

previously generated schedule and try to iteratively modify it. Meta-heuristics (modem

heuristics), such as Genetic Algorithms, Simulated Annealing, Iterated Local Search,

Iterated Greedy Search, etc., fall in the category of improvement heuristics.

An extensive literature review on the proposed heuristics for the PFSP can be

found in [15] and [45]. The heuristics by Johnson [25], Campel et al. [4], Dannenbring

[8], Palmer [37], Gupta [17], Nawaz et al. [58], Taillard [52], Hundal et al. [22],

Koulamas [27], and Davoud Pour [10] are instances of constructive heuristics in the

literature. The most cited existing improvement heuristics in the literature are Simulated

Annealing (SA) of Osman et al. [36], SA of Ogbu et al. [60], Genetic Algorithm (GA) of

Chen et al. [5], GA of Reeves [42], GA of Murata et al. [33], Iterated Local Search of

Stiizle [50], GA of Ponnambalom et al. [40], GA of Iyer et al. [23], GA of Ruiz et al.

[46], Iterated Greedy Search of Ruiz et al. [47].

11

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

to find near-optimal solutions in much shorter time. The heuristics proposed for the PFSP

can fall into either constructive or improvement heuristics.

According to French [13], a constructive heuristic for a scheduling problem can

be defined as an algorithm that builds up a schedule from the given data o f the problem

by following a simple set o f rules (e.g., First-In-First-Out) which exactly determines the

processing order. Later on, a constructive heuristic will be discussed, and it can be

observed that this algorithm can optimally solve the two-machine flow-shop scheduling

problem.

Improvement heuristics, as contrasted to constructive heuristics, start from a

previously generated schedule and try to iteratively modify it. Meta-heuristics (modem

heuristics), such as Genetic Algorithms, Simulated Annealing, Iterated Local Search,

Iterated Greedy Search, etc., fall in the category o f improvement heuristics.

An extensive literature review on the proposed heuristics for the PFSP can be

found in [15] and [45]. The heuristics by Johnson [25], Campel et al. [4], Dannenbring

[8], Palmer [37], Gupta [17], Nawaz et al. [58], Taillard [52], Hundal et al. [22],

Koulamas [27], and Davoud Pour [10] are instances o f constructive heuristics in the

literature. The most cited existing improvement heuristics in the literature are Simulated

Annealing (SA) o f Osman et al. [36], SA of Ogbu et al. [60], Genetic Algorithm (GA) of

Chen et al. [5], GA of Reeves [42], GA of Murata et al. [33], Iterated Local Search of

Stuzle [50], GA o f Ponnambalom et al. [40], GA of Iyer et al. [23], GA of Ruiz et al.

[46], Iterated Greedy Search o f Ruiz et al. [47].

11

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

In this chapter, three most important constructive heuristics; namely, Johnson's

algorithm, the heuristic of Nawaz et al. [58] (referred to as the NEH Algorithm), and

Taillard's algorithm [52] (which is an accelerated form of the NEH algorithm) are

described. The improvement heuristics of interest in this thesis, the genetic algorithms,

are briefly introduced in the next chapter.

2.1 Johnson's Algorithm

Johnson has been recognized as the pioneer in the research of the PFSP [25]. The

significance of his proposed algorithm is that it can provide an optimal solution for the

two-machine flow-shop scheduling problem in polynomial time. However, where the

number of machines is greater than two, the PFSP is known to be NP-hard [14].

Johnson's algorithm is described as follows according to Pinedo [39]: The jobs

are first split into two sets; namely, Set #1 that contains all the jobs with pi] < pi2, and

Set #2 that contains all the jobs with pH > Pi2 (where pee is the processing time of the i-th

job on the first machine, and pee is the processing time of the i-th job on the second

machine). The jobs in Set #1 are scheduled first and they are sequenced in increasing

order of pee (Shortest Processing Times (SPT) first); then the jobs in Set #2 are scheduled

in decreasing order of pi2 (Longest Processing Times (LPT) first). Ties can be broken

randomly (e.g., if the processing times of two jobs in Set #1 are equal, each of them can

be arbitrarily scheduled first). Any schedule constructed through the aforementioned

method is typically known as a SPT(1)-LPT(2) schedule. Johnson proved that any

SPT(1)-LPT(2) is optimal for the two-machine flow-shop scheduling problem.

12

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

In this chapter, three most important constructive heuristics; namely, Johnson’s

algorithm, the heuristic o f Nawaz et al. [58] (referred to as the NEH Algorithm), and

Taillard’s algorithm [52] (which is an accelerated form o f the NEH algorithm) are

described. The improvement heuristics o f interest in this thesis, the genetic algorithms,

are briefly introduced in the next chapter.

2.1 Johnson’s Algorithm

Johnson has been recognized as the pioneer in the research of the PFSP [25]. The

significance o f his proposed algorithm is that it can provide an optimal solution for the

two-machine flow-shop scheduling problem in polynomial time. However, where the

number o f machines is greater than two, the PFSP is known to be NP-hard [14].

Johnson’s algorithm is described as follows according to Pinedo [39]: The jobs

are first split into two sets; namely, Set #1 that contains all the jobs with pu < pi2, and

Set #2 that contains all the jobs with pu > pt2 (where pu is the processing time of the z'-th

job on the first machine, and pi2 is the processing time of the z'-th job on the second

machine). The jobs in Set #1 are scheduled first and they are sequenced in increasing

order of pu (Shortest Processing Times (SPT) first); then the jobs in Set #2 are scheduled

in decreasing order o f pi2 (Longest Processing Times (LPT) first). Ties can be broken

randomly (e.g., if the processing times o f two jobs in Set #1 are equal, each of them can

be arbitrarily scheduled first). Any schedule constructed through the aforementioned

method is typically known as a SPT(1)-LPT(2) schedule. Johnson proved that any

SPT(1)-LPT(2) is optimal for the two-machine flow-shop scheduling problem.

12

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

Although it has been proven that when m > 3 (where m is the number of

machines), the PFSP turns into a NP-hard problem, some efforts have been made to

propose a modification of Johnson's rule for permutation flow-shop scheduling problem

for more than two machines (e.g., [4]).

2.2 The Algorithm of Nawaz, Enscore and Ham

The algorithm of Nawaz et al. [58] is commonly referred to as the NEH algorithm in the

literature. The NEH algorithm has been given considerable attention in the literature of

the PFSP, because it has been unanimously referred to as the best constructive method for

the permutation flow-shop scheduling problem among the constructive heuristics in the

literature; (see, for example: [40], [45], [52], [55], and [57]). Among the aforementioned

references, the work of Ruiz et al. (i.e., [45]) is the most comprehensive, since they have

compared fifteen constructive heuristics extensively.

In the NEH algorithm, first the jobs are sorted by a decreasing sum of the

processing times on machines (the sum of the processing times for job J, is denoted by

TPi and is calculated using the formula TP, = EAJ,k), where k represents the machine k=1

number on which the job is being processed). Then, the first two jobs with highest sum of

processing times on the machines are considered for partial scheduling. The best partial

schedule of those two jobs (i.e., one that produces lower partial makespan) is selected.

This partial sequence is fixed in a sense that the relative order of those two jobs will not

change until the end of the procedure. In the next step, the job with the third highest sum

of processing times is selected and three possible partial schedules are generated through

placing the third chosen job at the beginning, in the middle, and at the end of the fixed

13

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

Although it has been proven that when m > 3 (where m is the number of

machines), the PFSP turns into a NP-hard problem, some efforts have been made to

propose a modification of Johnson’s rule for permutation flow-shop scheduling problem

for more than two machines (e.g., [4]).

2.2 The Algorithm of Nawaz, Enscore and Ham

The algorithm of Nawaz et al. [58] is commonly referred to as the NEH algorithm in the

literature. The NEH algorithm has been given considerable attention in the literature of

the PFSP, because it has been unanimously referred to as the best constructive method for

the permutation flow-shop scheduling problem among the constructive heuristics in the

literature; (see, for example: [40], [45], [52], [55], and [57]). Among the aforementioned

references, the work o f Ruiz et al. (i.e., [45]) is the most comprehensive, since they have

compared fifteen constructive heuristics extensively.

In the NEH algorithm, first the jobs are sorted by a decreasing sum of the

processing times on machines (the sum of the processing times for job Ji is denoted by

m

TPi and is calculated using the formula 77* = t ,k) , where k represents the machinek=1

number on which the job is being processed). Then, the first two jobs with highest sum of

processing times on the machines are considered for partial scheduling. The best partial

schedule o f those two jobs (i.e., one that produces lower partial makespan) is selected.

This partial sequence is fixed in a sense that the relative order o f those two jobs will not

change until the end o f the procedure. In the next step, the job with the third highest sum

of processing times is selected and three possible partial schedules are generated through

placing the third chosen job at the beginning, in the middle, and at the end o f the fixed

13

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

partial sequence. These three partial schedules are examined, and the one that produces

the minimum partial makespan is chosen. This procedure is repeated until all jobs are

fixed and the complete schedule is generated. This algorithm can be summarized in

Figure 2.1.

1) Order the n jobs by decreasing sums of processing times on the machines.

2) Take the first two jobs and schedule them in order to minimize the partial makespan as if there were only these two jobs.

3) For k = 3 to n do: Insert the k-th job at the place, among the k possible ones, which minimizes the partial makespan.

Figure 2.1 The NEH algorithm.

In order to illustrate this algorithm, suppose that there are five jobs to be

scheduled through the NEH algorithm. Also, assume that the vector (.11 J4 J5 J2 J3) is

constructed when these five jobs are sorted by decreasing sums of processing times on

the machines. First, the first two jobs from the above-mentioned vector (i.e., J i and J 4)

are selected for scheduling. Two partial makespans for two corresponding partial

schedules (i.e., {.//, J 4} and {J4, Ji}), are constructed and the one which results in a lower

partial makespan is chosen. Suppose that {J4 , gives a lower partial makespan.

Therefore, the relative order of the partial schedule {J4 , J will be maintained until the

end of the NEH procedure. Now, the third job is selected from the sorted vector (i.e., J 5),

and three partial schedules are scheduled. Among the three partial schedules (namely,

{J4, Jl, J5}, {J4, J5, J1} and {J5, J 4, Ji }), the one which yields the lowest partial makespan

is chosen. This procedure continues until all jobs from the sorted vector are scheduled.

14

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

partial sequence. These three partial schedules are examined, and the one that produces

the minimum partial makespan is chosen. This procedure is repeated until all jobs are

fixed and the complete schedule is generated. This algorithm can be summarized in

Figure 2.1.

1) Order the n jobs by decreasing sums of processing timeson the machines.

2) Take the first two jobs and schedule them in order tominimize the partial makespan as if there were only these two jobs.

3) For k = 3 to n do: Insert the A>th job at the place, amongthe k possible ones, which minimizes the partial makespan.

Figure 2.1 The NEH algorithm.

In order to illustrate this algorithm, suppose that there are five jobs to be

scheduled through the NEH algorithm. Also, assume that the vector (J4 J 4 J 5 J2 J 3) is

constructed when these five jobs are sorted by decreasing sums o f processing times on

the machines. First, the first two jobs from the above-mentioned vector (i.e., Jj and J4)

are selected for scheduling. Two partial makespans for two corresponding partial

schedules (i.e., {J/, J4] and {J4, J/}), are constructed and the one which results in a lower

partial makespan is chosen. Suppose that {J4 , J/} gives a lower partial makespan.

Therefore, the relative order o f the partial schedule {J4, J{) will be maintained until the

end of the NEH procedure. Now, the third job is selected from the sorted vector (i.e., J5),

and three partial schedules are scheduled. Among the three partial schedules (namely,

{J4, J 1, J5}, {J4, J$, Jj} and {J5, J4, Jj}), the one which yields the lowest partial makespan

is chosen. This procedure continues until all jobs from the sorted vector are scheduled.

14

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

2.3 Taillard's Algorithm

Taillard investigated some of the above-mentioned constructive algorithms and he

showed that the performance of the NEH algorithm is superior in terms of the achieved

makespan through some experimental results. Moreover, he proposed a method which

reduces the complexity of the NEH algorithm, and consequently accelerates the original

NEH algorithm. Using his proposed technique, the order of the NEH algorithm decreases

from 0(n3 nz)to 0(n2 m) . One should note that Taillard's algorithm achieves the very

same results that the NEH algorithm does, in lower CPU time [52].

Taillard's procedure is illustrated through Figures 2.2 to 2.5. For the previously

given processing times of five jobs on four machines summarized in

Table 1.1, suppose that four jobs have been sequenced according to the NEH algorithm

and that the partial schedule {Jj, J2, J 4, J 5} has been constructed as the best partial

schedule so far with the makespan of 31 (see Figure 2.2). Preserving the relative order of

the best partial schedule, J3 (i.e., the only job which has not been scheduled yet) is going

to be inserted at five possible positions. Consequently, the makespan for five schedules

should be calculated and the one with the lowest makespan is considered as the best

complete schedule. According to the original NEH algorithm, the makespan for those five

schedules should be calculated from scratch; but Taillard proposed a method where the

makespan for those five schedules can be obtained from the best partial schedule of four

jobs, which is achieved already in the previous step.

For instance, suppose that J3 is going to be inserted at the 3rd position (i.e.,

between J2 and J4 of the partial schedule {Jj, J2, J4, J5}). Based on Taillard's algorithm,

15

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

2.3 Taillard’s Algorithm

Taillard investigated some o f the above-mentioned constructive algorithms and he

showed that the performance o f the NEH algorithm is superior in terms o f the achieved

makespan through some experimental results. Moreover, he proposed a method which

reduces the complexity o f the NEH algorithm, and consequently accelerates the original

NEH algorithm. Using his proposed technique, the order o f the NEH algorithm decreases

from 0 ( n 3m)to 0 ( n 2m ) . One should note that Taillard’s algorithm achieves the very

same results that the NEH algorithm does, in lower CPU time [52].

Taillard’s procedure is illustrated through Figures 2.2 to 2.5. For the previously

given processing times o f five jobs on four machines summarized in

Table 1.1, suppose that four jobs have been sequenced according to the NEH algorithm

and that the partial schedule {Ji, J 2, J 4, J 5 } has been constructed as the best partial

schedule so far with the makespan o f 31 (see Figure 2.2). Preserving the relative order of

the best partial schedule, J 3 (i.e., the only job which has not been scheduled yet) is going

to be inserted at five possible positions. Consequently, the makespan for five schedules

should be calculated and the one with the lowest makespan is considered as the best

complete schedule. According to the original NEH algorithm, the makespan for those five

schedules should be calculated from scratch; but Taillard proposed a method where the

makespan for those five schedules can be obtained from the best partial schedule o f four

jobs, which is achieved already in the previous step.

For instance, suppose that J 3 is going to be inserted at the 3rd position (i.e.,

between J2 and J4 o f the partial schedule {Ji, J 2, J 4, J 5 )). Based on Taillard’s algorithm,

15

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

the makespan for the schedule 1.11, J2, J3, J4, J5} is not calculated from scratch. Instead, it

will be obtained from the matrices of the earliest completion times and the latest start

times demonstrated in the following procedure:

Step 1) The earliest completion times for J2 (the job before the insertion position)

on different machines are computed. Arrows in Figure 2.3 represent these earliest

completion times. The earliest completion times for J2 are denoted by E(J2, k) (where k

represents the machine number on which the job is being processed). The mathematical

equation for calculating the E(J2, k) is quite similar to the ones discussed in Section 1.1.

M1

M2

M3

M4

111111111111111111111 j5J5

J1 111111 IMP J1

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

Figure 2.2 Gantt chart for the partial schedule {J1, J2, J4, J5} based on given data in Table 1.1 (original in color).

Step 2) The latest start times for each job on different machines are computed.

For calculating the latest start times, the jobs are shifted to the right as much as possible.

Shifting the jobs should be to the extent that they do not delay the already achieved

partial makespan of 31 for the partial schedule J2, J4, J5}. The latest start times for

the jobs are demonstrated in Figure 2.4. The tail of J 4 (the job after the insertion position)

on each machine is defined as the duration between the latest start time of J4 on that

particular machine and the partial makespan. Arrows in Figure 2.3 demonstrate the tails

of J 4 on the different machines. The tails for J4 are denoted by Q(J4, k).

16

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

the makespan for the schedule {Ji, J2, J3, J4, J5} is not calculated from scratch. Instead, it

will be obtained from the matrices o f the earliest completion times and the latest start

times demonstrated in the following procedure:

Step 1) The earliest completion times for J 2 (the job before the insertion position)

on different machines are computed. Arrows in Figure 2.3 represent these earliest

completion times. The earliest completion times for J2 are denoted by E(J2, k) (where k

represents the machine number on which the job is being processed). The mathematical

equation for calculating the E{J2, k) is quite similar to the ones discussed in Section 1.1.

M1

M2

M3

M4

■■— ■■■■■IJ1

J5

J1

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

Figure 2.2 Gantt chart for the partial schedule {JI, J2, J4, J5} based on given data in Table 1.1(original in color).

Step 2) The latest start times for each job on different machines are computed.

For calculating the latest start times, the jobs are shifted to the right as much as possible.

Shifting the jobs should be to the extent that they do not delay the already achieved

partial makespan o f 31 for the partial schedule {Ji, J2, J4, J5}. The latest start times for

the jobs are demonstrated in Figure 2.4. The tail of J4 (the job after the insertion position)

on each machine is defined as the duration between the latest start time o f J 4 on that

particular machine and the partial makespan. Arrows in Figure 2.3 demonstrate the tails

of J4 on the different machines. The tails for J 4 are denoted by Q(J4, k).

16

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

M1

M2

M3

M4

J1

J1

J1

J1

J5

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 2 26 27 28 29 30 31

Figure 2.3 Gantt chart for the latest start times for the partial schedule of {J1, J2, J4, J5} (original in color).

Step 3) Considering E(J2, k) and the processing times of J3 (the job to be

inserted), J3 is scheduled, and the earliest completion times of J3 on different machines

(i.e., E(J3, k)) are calculated. The earliest completions times of J3 are illustrated in

Figure 2.4.

M1 J1

M2

M3

M4

1111.1111 J3 J1 ...11

J1J1

2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27

Figure 2.4 Gantt chart for the partial schedule {J1, J2, J3} after inserting the J3 (original in color).

Step 4) Now Q(J4, k) is added to E(J3, k), as illustrated in Figure 2.5. The

makespan of schedule J2, J3, 4, ‘15} is calculated through:

M= mcvc{E(J3, k) + Q(J4, k)} for 1, ...,m. (2.1)

In this particular example, the makespan for schedule {J1, J2, J3, J4, J 5} is

calculated through:

M= max {34, 31, 32, 34} = 34

5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29

Figure 2.5 Gantt chart after adding tails (original in color).

17

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

Figure 2.3 Gantt chart for the latest start times for the partial schedule o f {JI, J2, J4, J5}(original in color).

Step 3) Considering E(J2, k) and the processing times o f J 3 (the job to be

inserted), J 3 is scheduled, and the earliest completion times of J 3 on different machines

(i.e., E(J3, k)) are calculated. The earliest completions times o f J 3 are illustrated in

Figure 2.4.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27

Figure 2.4 Gantt chart for the partial schedule {JI, J2, J3} after inserting the J3(original in color).

Step 4) Now Q(J4, k) is added to E(J3, A), as illustrated in Figure 2.5. The

makespan of schedule {Ji, J2, J3, J4, J5) is calculated through:

M = max{E(J-3, k) + Q(Ja, A)} for k = 1,..., m. (2.1)

In this particular example, the makespan for schedule {Ji, J2, J3, J4, J5) is

calculated through:

M = m a x{34 ,31 ,32 , 34} = 34

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34

Figure 2.5 Gantt chart after adding tails (original in color).

17

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

One should note that if J3 is inserted into any other position in the partial schedule

{JI, J2, J4, J.5}, a similar procedure can be followed for calculating the makespan. For

example, the makespan of schedule {J], J2, J4, J.3, ../.5} can be obtained through the partial

schedule of {Jj, J2, J 4, J.5} and there is no need to calculate the makespan from scratch.

Taillard [52] concluded that the NEH algorithm-based solution can be obtained by

order of 0(n2m). In his paper, Taillard also addressed the concept of neighborhood in

the PFSP. This concept will be discussed in Chapter 3.

2.4 Taillard's Benchmark Problems

Most of the researchers in the area of machine scheduling in the 80s and 90s have tested

their heuristic approaches on randomly generated problems separately. Those problem

instances were never published. To solve this problem, Taillard has proposed a set of 120

test problems, denoted by ta001 to ta120, ranging from small instances with 20 jobs on 5

machines to large ones with 500 jobs on 20 machines as standard test benchmarks for the

PFSP [53]. Fortunately, Taillard's benchmarks for the PFSP are being widely used

recently by a wide range of researchers. For each problem size, ten instances are

available. The processing times of each instance are integers between 1 and 100 and they

were randomly generated with a uniform probability distribution. In fact, these 120

instances were selected by Taillard from a bigger set of generated instances. According to

Ruiz et al., some of them have been proven to be very difficult to solve over the past 10

years, [46].

18

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

One should note that if J 3 is inserted into any other position in the partial schedule

{ J i , J 2 , J 4 , J s ) , a similar procedure can be followed for calculating the makespan. For

example, the makespan o f schedule {Ji, J 2 , J 4 , J 3 , J 5 } can be obtained through the partial

schedule o f { J i , J 2 , J 4, Js) and there is no need to calculate the makespan from scratch.

Taillard [52] concluded that the NEH algorithm-based solution can be obtained by

order of 0 (n 2m) . In his paper, Taillard also addressed the concept o f neighborhood in

the PFSP. This concept will be discussed in Chapter 3.

2.4 Taillard’s Benchmark Problems

Most o f the researchers in the area o f machine scheduling in the 80s and 90s have tested

their heuristic approaches on randomly generated problems separately. Those problem

instances were never published. To solve this problem, Taillard has proposed a set o f 120

test problems, denoted by taOOl to tal20, ranging from small instances with 20 jobs on 5

machines to large ones with 500 jobs on 20 machines as standard test benchmarks for the

PFSP [53]. Fortunately, Taillard’s benchmarks for the PFSP are being widely used

recently by a wide range of researchers. For each problem size, ten instances are

available. The processing times o f each instance are integers between 1 and 100 and they

were randomly generated with a uniform probability distribution. In fact, these 120

instances were selected by Taillard from a bigger set o f generated instances. According to

Ruiz et al., some o f them have been proven to be very difficult to solve over the past 10

years, [46].

18

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

Global optima have been obtained for Taillard's small benchmarks, ranging from

20 x 5 ( n = 20, m = 5) to 50 x10 ( n = 50, m =10). But the optimal solutions for some of

the larger problem instances are still unknown.

By making use of Taillard's instances, researchers normally address the relative

percentage deviation of their solutions from the best-known solutions as the performance

measure. The best-known solution for an instance is denoted by Bestsoi and is either the

known optimal solution or the lowest-known upper bound (when the optimal solution is

still unknown). Denoting the achieved makespan of a given heuristic by Heusoi, the

relative percentage deviation (RPD) of that heuristic from the best-known solution can be

calculated through the following expression:

(Heu — Best sol ) RPD so. x100

Best so,

(2.2)

The optimal solutions or (upper bounds) are mainly found by branch and bound

technique which requires high CPU times [13], [28], [43]. Recently, the best-known

solutions for larger instances with unknown optimal solutions are being replaced by the

solutions found using meta-heuristics, such as Genetic Algorithms, Tabu Search, Iterated

Greedy Algorithm, and so on. The latest information on those solutions is updated by

Taillard on his website [54].

In this chapter, two constructive heuristic algorithms, namely the Johnson and the

NEH algorithms, were discussed. The improvement heuristics of interest in this thesis,

namely the genetic algorithms (GAs) and their applications in the PFPS are investigated

19

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

Global optima have been obtained for Taillard’s small benchmarks, ranging from

2 0 x 5 {n = 20, m = 5) to 5 0 x l0 (n = 50,m = 10). But the optimal solutions for some of

the larger problem instances are still unknown.

By making use o f Taillard’s instances, researchers normally address the relative

percentage deviation o f their solutions from the best-known solutions as the performance

measure. The best-known solution for an instance is denoted by BestS0i and is either the

known optimal solution or the lowest-known upper bound (when the optimal solution is

still unknown). Denoting the achieved makespan of a given heuristic by Heusoi, the

relative percentage deviation (RPD) o f that heuristic from the best-known solution can be

calculated through the following expression:

RPD = (HeUs°l ~ Best™>) x 100 2̂ '2)Bestsol

The optimal solutions or (upper bounds) are mainly found by branch and bound

technique which requires high CPU times [13], [28], [43]. Recently, the best-known

solutions for larger instances with unknown optimal solutions are being replaced by the

solutions found using meta-heuristics, such as Genetic Algorithms, Tabu Search, Iterated

Greedy Algorithm, and so on. The latest information on those solutions is updated by

Taillard on his website [54].

In this chapter, two constructive heuristic algorithms, namely the Johnson and the

NEH algorithms, were discussed. The improvement heuristics o f interest in this thesis,

namely the genetic algorithms (GAs) and their applications in the PFPS are investigated

19

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

in Chapter 3. The number of the proposed GAs to solve the PFSP is numerous. Therefore,

many of them will merely be mentioned for interested readers. In Chapter 4, the proposed

genetic algorithm is explained and its performance is tested on Taillard's benchmark

problems.

20

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

in Chapter 3. The number o f the proposed GAs to solve the PFSP is numerous. Therefore,

many of them will merely be mentioned for interested readers. In Chapter 4, the proposed

genetic algorithm is explained and its performance is tested on Taillard’s benchmark

problems.

20

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

CHAPTER 3: GENETIC ALGORITHMS (AN OVERVIEW)

AND THEIR APPLICATIONS IN THE PFSP

In this chapter, the general notion of Genetic Algorithms (GAs) is briefly discussed and

then it is explained that how genetic algorithms can be customized for the PFSP.

Genetic algorithms are stochastic search and optimization techniques developed

based on the mechanism of Darwinian 'natural evolution' and 'survival of the fittest'

[20]. The probabilistic search method in Genetic Algorithms, along with natural selection

and reproduction methods, mimic the process of biological evolution [20].

GAs can be applied to a wide range of optimization problems that cannot be

easily solved by conventional optimization algorithms, including problems in which the

objective function is discontinuous, fuzzy, non-differentiable, or highly nonlinear. For

various applications of GAs, see [6], [15], [19], [31], and [48].

Davis has been recognized as the pioneer in the application of genetic algorithms

in scheduling problems [63]. Since he proposed a methodology to solve the Job Shop

Scheduling problem through the genetic algorithms in 1985, the application of genetic

algorithms to different scheduling problems have been extensively investigated.

The general structure of the GA suggested by Michalewicz [31] is illustrated in

Figure 3.1. According to Michalewicz, a GA is a probabilistic algorithm which maintains

21

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

C h a p t e r 3: G e n e t ic A l g o r it h m s (A n o v e r v ie w )

A n d T h e ir A pplic a tio n s In Th e PFSP

In this chapter, the general notion o f Genetic Algorithms (GAs) is briefly discussed and

then it is explained that how genetic algorithms can be customized for the PFSP.

Genetic algorithms are stochastic search and optimization techniques developed

based on the mechanism o f Darwinian ‘natural evolution’ and ‘survival o f the fittest’

[20]. The probabilistic search method in Genetic Algorithms, along with natural selection

and reproduction methods, mimic the process o f biological evolution [20],

GAs can be applied to a wide range o f optimization problems that cannot be

easily solved by conventional optimization algorithms, including problems in which the

objective function is discontinuous, fuzzy, non-differentiable, or highly nonlinear. For

various applications o f GAs, see [6], [15], [19], [31], and [48].

Davis has been recognized as the pioneer in the application o f genetic algorithms

in scheduling problems [63], Since he proposed a methodology to solve the Job Shop

Scheduling problem through the genetic algorithms in 1985, the application of genetic

algorithms to different scheduling problems have been extensively investigated.

The general structure o f the GA suggested by Michalewicz [31] is illustrated in

Figure 3.1. According to Michalewicz, a GA is a probabilistic algorithm which maintains

21

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

a population of individuals, P(t), for iteration t. Each individual in the population is

referred to as a chromosome, representing a potential solution (i.e., fit) to the problem at

hand. A chromosome is encoded into a string of symbols, which might have a simple or

complex data structure.

procedure GA begin t 0 initialize P(t) evaluate P(t) while (not termination condition) do begin

t t + 1 select P(t) from P(t-1) alter P(t) evaluate P(t)

end end

Figure 3.1 The structure of a genetic algorithm [31].

The collection of individuals (chromosomes) forms the population, and the

population evolves iteration by iteration. Each iteration of the algorithm is named a

generation. In each generation, every chromosome is evaluated and is given some

measure of fitness. Then, a new population is generated by selecting the more fit

individuals (the "select" step in Figure 3.1). Some of the individuals of the new

population are transformed through genetic operators (the "alter" step in Figure 3.1).

There are mainly two types of transformation; namely mutation (unary operator) and

crossover (binary operator). In mutation, a single individual is usually slightly changed

and added to the population. In crossover, a new individual is generated through

2 Here, iteration refers to the process through which a new generation is produced.

22

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

a population o f individuals, P(t), for iteration t. Each individual in the population is

referred to as a chromosome, representing a potential solution (i.e., fit) to the problem at

hand. A chromosome is encoded into a string o f symbols, which might have a simple or

complex data structure.

procedure GA begin

t < -0initialize P(t) evaluate P(t)while (not termination condition) do begin

t ^ t + 1select P(t) from P(t-1) alter P(t) evaluate P(t)

endend

Figure 3.1 The structure o f a genetic algorithm [31].

The collection o f individuals (chromosomes) forms the population, and the

population evolves iteration by iteration. Each iteration of the algorithm is named a

generation. In each generation, every chromosome is evaluated and is given some

measure o f fitness. Then, a new population is generated by selecting the more fit

individuals (the “select” step in Figure 3.1). Some o f the individuals o f the new

population are transformed through genetic operators (the “alter” step in Figure 3.1).

There are mainly two types o f transformation; namely mutation (unary operator) and

crossover (binary operator). In mutation, a single individual is usually slightly changed

and added to the population. In crossover, a new individual is generated through

2 Here, iteration refers to the process through which a new generation is produced.

22

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

exchanging the information between two individuals. These selection, alteration, and

evaluation steps are repeated for a pre-set number of generations. At the final generation,

the algorithm converges to the best chromosome, which 'hopefully' represents a near-

optimal solution to the problem (with the highest fit value) [31].

According to Goldberg [16], GAs differ from conventional optimization and

search methods in several primary aspects:

• GAs work with a coding of the solutions sets rather than solutions

themselves.

• GAs start searching from a population of solutions, instead of a single

solution (robustness of the solution).

• GAs use the fitness function as payoff information. Whereas in

conventional algorithms, derivatives/gradients or other auxiliary

knowledge is normally applied.

• Genetic algorithms use probabilistic rules, whereas in conventional

algorithms, deterministic rules are applied.

In recent years, other terms, such as 'evolutionary computing', 'evolutionary

algorithms', and 'evolutionary programs' have been widely discussed by many

researchers. Michalewicz uses a common term, Evolution Programs (EPs), for all

evolution based systems. In addition, he states the fundamental differences between

classical GAs and EPs as follows:

23

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

exchanging the information between two individuals. These selection, alteration, and

evaluation steps are repeated for a pre-set number o f generations. At the final generation,

the algorithm converges to the best chromosome, which ‘hopefully’ represents a near-

optimal solution to the problem (with the highest fit value) [31].

According to Goldberg [16], GAs differ from conventional optimization and

search methods in several primary aspects:

• GAs work with a coding o f the solutions sets rather than solutions

themselves.

• GAs start searching from a population o f solutions, instead o f a single

solution (robustness o f the solution).

• GAs use the fitness function as payoff information. Whereas in

conventional algorithms, derivatives/gradients or other auxiliary

knowledge is normally applied.

• Genetic algorithms use probabilistic rules, whereas in conventional

algorithms, deterministic rules are applied.

In recent years, other terms, such as ‘evolutionary computing’, ‘evolutionary

algorithms’, and ‘evolutionary programs’ have been widely discussed by many

researchers. Michalewicz uses a common term, Evolution Programs (EPs), for all

evolution based systems. In addition, he states the fundamental differences between

classical GAs and EPs as follows:

23

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

"Classical genetic algorithms, which operate on binary strings, require

a modification of an original problem into appropriate (suitable for GA) form;

this would include mapping between potential solutions and binary

representation, taking care of decoders or repair algorithms, etc. This is not

usually an easy task. On the other hand, evolution programs would leave the

problem unchanged, modifying a chromosome representation of potential

solution (using "natural" data structures), and applying appropriate "genetic"

operators. In other words, to solve a nontrivial problem using an evolution

program, we can either transform the problem into a form appropriate for

genetic algorithm, or we can transform the genetic algorithm to suit the

problem. Clearly, classical GAs take the former approach, EPs the later. So

the idea behind evolution programs is quite simple and is based on the

following motto: if the mountain will not come to Mohammed, then

Mohammed will go to the mountain." [31].

However, Michalewicz [31] emphasizes that it is difficult to draw a precise line

between genetic algorithms and evolution programs. Therefore, the aforementioned

classification might not be followed by all researchers. In this thesis, the term 'genetic

algorithms' is used as a general term that embraces the concept of evolution programs, as

well. As a result, the binary representation of data is not necessarily intended in this

thesis by making use of genetic algorithms in the PFPS.

The effectiveness of GAs fundamentally depends on the proper choice of

encoding (representation), population size, selection type, crossover and mutation

operators, in addition to the probabilities that are assigned to crossover and mutation

24

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

“Classical genetic algorithms, which operate on binary strings, require

a modification o f an original problem into appropriate (suitable for GA) form;

this would include mapping between potential solutions and binary

representation, taking care o f decoders or repair algorithms, etc. This is not

usually an easy task. On the other hand, evolution programs would leave the

problem unchanged, modifying a chromosome representation o f potential

solution (using “natural” data structures), and applying appropriate “genetic”

operators. In other words, to solve a nontrivial problem using an evolution

program, we can either transform the problem into a form appropriate for

genetic algorithm, or we can transform the genetic algorithm to suit the

problem. Clearly, classical GAs take the former approach, EPs the later. So

the idea behind evolution programs is quite simple and is based on the

following motto: if the mountain will not come to Mohammed, then

Mohammed will go to the mountain.” [31].

However, Michalewicz [31] emphasizes that it is difficult to draw a precise line

between genetic algorithms and evolution programs. Therefore, the aforementioned

classification might not be followed by all researchers. In this thesis, the term ‘genetic

algorithms’ is used as a general term that embraces the concept o f evolution programs, as

well. As a result, the binary representation o f data is not necessarily intended in this

thesis by making use o f genetic algorithms in the PFPS.

The effectiveness o f GAs fundamentally depends on the proper choice of

encoding (representation), population size, selection type, crossover and mutation

operators, in addition to the probabilities that are assigned to crossover and mutation

24

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

operations. The crossover and mutation operators, which will be discussed in this chapter,

are mainly appropriate for the PFSP (or some other combinatorial optimization problems

such as traveling salesman problem). However, the selection operators are problem

independent, thus they can be applied to any problem at hand. The structure of the rest of

this chapter is as follows: first, the most common way of individual representation for the

PFSP is explained. Then four well-known GAs' selection mechanisms are discussed.

Finally, the crossover and mutation operators customized for the PFSP are investigated.

3.1 Representation and Initial Population

As mentioned earlier, in the GAs each individual, as a potential solution, is encoded into

a string of symbols. In the classical GAs proposed by Holland [20], the binary

representation of individuals has been applied. This, however, does not suit the

representation of schedules in a PFSP. In practice, the binary representation for the PFSP

needs special repair algorithms, because the change of a single bit of the binary string,

from zero to one (or vice versa), may produce an illegal schedule (a schedule which is not

a permutation of jobs). Instead, the most frequently applied encoding scheme, and

perhaps the most 'natural' representation of a schedule for the PFSP, is a permutation of

jobs. A permutation of jobs determines the relative order that the jobs should be

performed on machines. As an example, the schedule {J6, J.3, J 1, J4, J2, J5} is simply

represented in the majority of the GAs proposed for the PFSP by means of the following

data structure: (6, 3, 1, 4, 2, 5). Clearly, a permutation of jobs is a candidate solution and

plays the role of a chromosome (or possible solution) in the GAs proposed for the PFSP.

25

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

operations. The crossover and mutation operators, which will be discussed in this chapter,

are mainly appropriate for the PFSP (or some other combinatorial optimization problems

such as traveling salesman problem). However, the selection operators are problem

independent, thus they can be applied to any problem at hand. The structure o f the rest of

this chapter is as follows: first, the most common way of individual representation for the

PFSP is explained. Then four well-known GAs’ selection mechanisms are discussed.

Finally, the crossover and mutation operators customized for the PFSP are investigated.

3.1 Representation and Initial Population

As mentioned earlier, in the GAs each individual, as a potential solution, is encoded into

a string o f symbols. In the classical GAs proposed by Holland [20], the binary

representation o f individuals has been applied. This, however, does not suit the

representation o f schedules in a PFSP. In practice, the binary representation for the PFSP

needs special repair algorithms, because the change o f a single bit o f the binary string,

from zero to one (or vice versa), may produce an illegal schedule (a schedule which is not

a permutation o f jobs). Instead, the most frequently applied encoding scheme, and

perhaps the most ‘natural’ representation o f a schedule for the PFSP, is a permutation of

jobs. A permutation o f jobs determines the relative order that the jobs should be

performed on machines. As an example, the schedule {J* J3, Jj, J4 , J 2, Js) is simply

represented in the majority of the GAs proposed for the PFSP by means o f the following

data structure: (6 , 3, 1, 4, 2, 5). Clearly, a permutation o f jobs is a candidate solution and

plays the role o f a chromosome (or possible solution) in the GAs proposed for the PFSP.

25

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

The initial population of a GA can be a collection of random permutation of jobs,

collection of permutations, which have already been obtained through heuristic

approaches, and/or any combinations of these two methods. Obviously, high-quality

solutions generated by some heuristic method(s) might help a genetic algorithm find

near-optimal solutions more efficiently. However, on the flip side, one should note that

starting the GA with a homogeneous population might result in a premature convergence

[46].

3.2 Evaluation

As stated in the previous chapter, the makespan in a PFSP is considered as the objective

function to be minimized. Consequently, the fitness value of an individual should be

calculated based on its makespan. In Section 1.1, the way one can obtain the makespan of

a given permutation of jobs in a PFSP was formulated and illustrated.

3.3 Selection

The selection operator provides the driving force in a genetic algorithm [15]. From a

biological point of view, Darwinian natural selection results in the survival of the fittest.

Similarly, in the selection phase of the genetic algorithms, the fitter an individual, the

higher is the chance of being selected for the next generation.

It should be noted, however, that an appropriate selection method gives at least

some chance of competing for survival to the individuals having lower fitness values.

Otherwise, a few super individuals (highly fit individuals) will dominate the population

after a few generations, and the GA will terminate prematurely [15]. As stated by Whitley

[56], there are two significant and interrelated factors in the evolutionary process of GAs;

26

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

The initial population o f a GA can be a collection of random permutation of jobs,

collection o f permutations, which have already been obtained through heuristic

approaches, and/or any combinations o f these two methods. Obviously, high-quality

solutions generated by some heuristic method(s) might help a genetic algorithm find

near-optimal solutions more efficiently. However, on the flip side, one should note that

starting the GA with a homogeneous population might result in a premature convergence

[46],

3.2 Evaluation

As stated in the previous chapter, the makespan in a PFSP is considered as the objective

function to be minimized. Consequently, the fitness value o f an individual should be

calculated based on its makespan. In Section 1.1, the way one can obtain the makespan of

a given permutation o f jobs in a PFSP was formulated and illustrated.

3.3 Selection

The selection operator provides the driving force in a genetic algorithm [15]. From a

biological point o f view, Darwinian natural selection results in the survival o f the fittest.

Similarly, in the selection phase of the genetic algorithms, the fitter an individual, the

higher is the chance o f being selected for the next generation.

It should be noted, however, that an appropriate selection method gives at least

some chance o f competing for survival to the individuals having lower fitness values.

Otherwise, a few super individuals (highly fit individuals) will dominate the population

after a few generations, and the GA will terminate prematurely [15]. As stated by Whitley

[56], there are two significant and interrelated factors in the evolutionary process o f GAs;

26

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

namely population diversity and selective pressure3. On one hand, strong selective

pressure can lead to premature convergence because the search focuses on the top

individuals in the population and genetic diversity is lost and on the other hand, a weak

selective pressure causes the GAs to progress slowly and therefore it makes the search

less effective. A balance between these two factors is essential for GAs in order to have

an efficient search mechanism. This is another interpretation of the idea of striking a

balance between exploitation and exploration.

The most popular selection methods are investigated in this chapter. However, an

extensive literature review on selections strategies can be found in [15] and [31]:

3.3.1 Roulette Wheel Selection

The classical selection method proposed by Holland [20] is referred to as roulette wheel

selection or fitness proportionate selection. The idea behind this selection scheme is that

the survival chance of each individual is proportional to its fitness value. Roulette wheel

technique can be implemented as follows [11]:

1. The selection probability for each individual is obtained. Let f i be the

fitness value of individual i, and let n be the population size. The selection

probability of individual i is:

0 ,/“1 (3.1)

3 Selective pressure can be defined as the ratio of the probability of the best individual being selected to the average probability of selection of all individuals [62]. 4 The survival chance can be defined as the chance of being selected for next generation.

27

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

namely population diversity and selective pressure3. On one hand, strong selective

pressure can lead to premature convergence because the search focuses on the top

individuals in the population and genetic diversity is lost and on the other hand, a weak

selective pressure causes the GAs to progress slowly and therefore it makes the search

less effective. A balance between these two factors is essential for GAs in order to have

an efficient search mechanism. This is another interpretation o f the idea o f striking a

balance between exploitation and exploration.

The most popular selection methods are investigated in this chapter. However, an

extensive literature review on selections strategies can be found in [15] and [31]:

3.3.1 Roulette Wheel Selection

The classical selection method proposed by Holland [20] is referred to as roulette wheel

selection or fitness-proportionate selection. The idea behind this selection scheme is that

the survival chance4 of each individual is proportional to its fitness value. Roulette wheel

technique can be implemented as follows [11]:

1. The selection probability for each individual is obtained. Let f be the

fitness value o f individual i, and let n be the population size. The selection

probability o f individual i is:

n - f ‘Pi~~n 0 < Pi <1 (3.1)Z/,j=1

3 Selective pressure can be defined as the ratio o f the probability o f the best individual being selected to the average probability o f selection o f all individuals [62].4 The survival chance can be defined as the chance o f being selected for next generation.

27

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

2. The cumulative selection probabilities of individuals are calculated.

3. A random number is generated and its position among the obtained

cumulative selection probabilities determines which chromosome is

selected. This process is repeated until the required number of individuals

is obtained.

One of the disadvantages of roulette wheel selection is the likelihood of

encountering early convergence during the evolution process. In other words, highly fit

individuals might take over the entire population rapidly if the rest of the population is

much less fit [11]. The other problem associated with roulette wheel selection arises at

the end of runs of a GA, where the fitness values of individuals are rather close. In this

case, GA loses its selection pressure, and therefore its effectiveness.

3.3.2 Rank-Based Selection

Rank-based selection method is an attempt to remove the problems of roulette wheel

selection method [11]. In rank-based selection, the raw fitness values of the individuals

are weighted based on their ranks. The rank of an individual is its position in the sorted

vector of fitness values. More explicitly, the rank of the fittest individual is n (where n is

the number of individuals in a generation), the rank of the second fittest individual

is (n —1) , and so on. These ranks are used for selection of individuals instead of their

actual fitness values. Obviously, rank-based selection imposes an overhead of sorting

individuals on the algorithm.

28

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

2. The cumulative selection probabilities o f individuals are calculated.

3. A random number is generated and its position among the obtained

cumulative selection probabilities determines which chromosome is

selected. This process is repeated until the required number o f individuals

is obtained.

One o f the disadvantages o f roulette wheel selection is the likelihood of

encountering early convergence during the evolution process. In other words, highly fit

individuals might take over the entire population rapidly if the rest o f the population is

much less fit [11]. The other problem associated with roulette wheel selection arises at

the end o f runs o f a GA, where the fitness values o f individuals are rather close. In this

case, GA loses its selection pressure, and therefore its effectiveness.

3.3.2 Rank-Based Selection

Rank-based selection method is an attempt to remove the problems o f roulette wheel

selection method [11]. In rank-based selection, the raw fitness values o f the individuals

are weighted based on their ranks. The rank of an individual is its position in the sorted

vector o f fitness values. More explicitly, the rank of the fittest individual is n (where n is

the number o f individuals in a generation), the rank of the second fittest individual

i s ( n - l ) , and so on. These ranks are used for selection of individuals instead o f their

actual fitness values. Obviously, rank-based selection imposes an overhead of sorting

individuals on the algorithm.

28

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

The linear rank-based selection, as a simple form of rank-based selection, is

described here according to [56]. Suppose that n denotes the number of individuals in the

population, and ri denotes the rank of individual i in the current population (where, l< ri <

n). Then, the fitness value for individual i is calculated as:

= 2 _ sp + 2(sp —1)(1; —1)

(n —1)

where sp is the selective pressure.

(3.2)

The selective pressure of twos is typically employed for the linear rank-based

selection [56]. With this selective pressure, Eq.(3.2) takes the following simple form:

2(ri

—1) f = (n-1)

(3.3)

which indicates that the value of fi for the best and worst individuals in the population

will be two and zero, respectively. Additionally, the fitness value of any other individual

in the population is linearly mapped between the values of zero and two (i.e., 0 2 ).

After scaling the fitness values through the linear ranking method, the roulette

wheel mechanism (described in 3.3.1) is applied to assign a probability to each

individual. The assigned probabilities to individuals are finally employed to generate the

next generation. It is worth mentioning that since the fitness values of the individuals are

linearly mapped according to above-mentioned technique, the chance that highly fit

individuals dominate the population is removed.

5 Here the selective pressure of two indicates that the ratio of the probability of the best individual being selected to the probability of the selection of the individual ranked as the median of the population is equal to two.

29

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

The linear rank-based selection, as a simple form o f rank-based selection, is

described here according to [56]. Suppose that n denotes the number o f individuals in the

population, and r, denotes the rank o f individual i in the current population (where, 1 < r, <

n). Then, the fitness value for individual i is calculated as:

f , = 2 - s p + 2^ P ~ l)^ ‘ ~ X) , (3.2){ n - 1)

where sp is the selective pressure.

The selective pressure o f two5 is typically employed for the linear rank-based

selection [56]. With this selective pressure, Eq.(3.2) takes the following simple form:

/ , = ^ , (3.3)' (n -1 )

which indicates that the value o f f for the best and worst individuals in the population

will be two and zero, respectively. Additionally, the fitness value o f any other individual

in the population is linearly mapped between the values o f zero and two (i.e., o<y;. <2) .

After scaling the fitness values through the linear ranking method, the roulette

wheel mechanism (described in 3.3.1) is applied to assign a probability to each

individual. The assigned probabilities to individuals are finally employed to generate the

next generation. It is worth mentioning that since the fitness values o f the individuals are

linearly mapped according to above-mentioned technique, the chance that highly fit

individuals dominate the population is removed.

5 Here the selective pressure o f two indicates that the ratio o f the probability o f the best individual being selected to the probability o f the selection o f the individual ranked as the median o f the population is equal to two.

29

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

3.3.3 Tournament Selection

In tournament selection, a group of k individuals (where, 2 < k n) are randomly picked

from the population. k is called the size of the tournament. The best individual from the

group is then selected. This process is repeated until the required number of individuals is

obtained at each iteration. Tournament selection is a selection with replacement process

(i.e., the individual which is selected is not excluded from the next tournament). In

tournament selection, the population does not need to be sorted based on the fitness

values of its individuals.

3.3.4 Elitist Selection

The purpose of elitism is to preserve at least one copy of the fittest k individuals in the

population in order to pass onto the next generation, where k could be any number less

than the population size. The elitist model is usually applied along with one of the

aforementioned selection strategies.

3.4 Crossover Operators

Crossover operator is devised in GAs in order to exchange information between

randomly selected parents with the aim of producing better offspring and exploring the

search space [23]. Crossover operators mimic the reproduction mechanism in nature.

One should note that when a permutation of jobs in a PFSP represents a

chromosome in the population, classical crossover operators, which are suitable for

binary representation, cannot be applied. The reason is that the classical crossover

operators will often produce offspring which is not a permutation of jobs. One should

30

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

3.3.3 Tournament Selection

In tournament selection, a group of k individuals (where, 2 < k < ri) are randomly picked

from the population, k is called the size of the tournament. The best individual from the

group is then selected. This process is repeated until the required number o f individuals is

obtained at each iteration. Tournament selection is a selection with replacement process

(i.e., the individual which is selected is not excluded from the next tournament). In

tournament selection, the population does not need to be sorted based on the fitness

values o f its individuals.

3.3.4 Elitist Selection

The purpose o f elitism is to preserve at least one copy of the fittest k individuals in the

population in order to pass onto the next generation, where k could be any number less

than the population size. The elitist model is usually applied along with one o f the

aforementioned selection strategies.

3.4 Crossover Operators

Crossover operator is devised in GAs in order to exchange information between

randomly selected parents with the aim of producing better offspring and exploring the

search space [23]. Crossover operators mimic the reproduction mechanism in nature.

One should note that when a permutation o f jobs in a PFSP represents a

chromosome in the population, classical crossover operators, which are suitable for

binary representation, cannot be applied. The reason is that the classical crossover

operators will often produce offspring which is not a permutation o f jobs. One should

30

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

also note that in an offspring, each job must be represented only one time. Otherwise, the

produced offspring is named illegal (inadmissible). Therefore, a customized crossover

operator is needed for the problem at hand.

The most popular crossover operators applied for the PFSP are Order Crossover

[9], Position-Based Crossover [51], Order-Based Crossover [51], Cycle Crossover [35],

Partially-Mapped Crossover [16], Precedence Preservation Crossover [59], Two-Point

Crossover I [33], Two-Point Crossover II [33], One-Point Crossover [33], Longest

Common Subsequence Crossover [23], Similar Job Order Crossover [46], Similar Block

Order Crossover [46], Similar Job 2-Point Order Crossover [46], and Similar Block 2-

Point Order Crossover [46].

It is noteworthy that some of these crossover operators have not been exclusively

used for the PFSP. Some were originally proposed for the Traveling Salesman Problem

(TSP), which is another well-known combinatorial optimization problem.

Ruiz et al. [46] have investigated the performance of the above-mentioned

crossover operators except for the Longest Common Subsequence Crossover (LCSX). In

their survey, it is shown that the Similar Block Order Crossover (SBOX) outperforms

other crossover operators (excluding the LCSX, which was not considered in their

survey).

Iyer et al. proposed the LCSX and showed that LCSX outperform One-Point

Crossover (OPX) through experimental results [23]. Furthermore, in their experiments

the standard benchmarks of Taillard were not used. In fact, the performance of their

algorithm is tested on some randomly generated problem instances of the PFPS [23].

31

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

also note that in an offspring, each job must be represented only one time. Otherwise, the

produced offspring is named illegal (inadmissible). Therefore, a customized crossover

operator is needed for the problem at hand.

The most popular crossover operators applied for the PFSP are Order Crossover

[9], Position-Based Crossover [51], Order-Based Crossover [51], Cycle Crossover [35],

Partially-Mapped Crossover [16], Precedence Preservation Crossover [59], Two-Point

Crossover I [33], Two-Point Crossover II [33], One-Point Crossover [33], Longest

Common Subsequence Crossover [23], Similar Job Order Crossover [46], Similar Block

Order Crossover [46], Similar Job 2-Point Order Crossover [46], and Similar Block 2-

Point Order Crossover [46].

It is noteworthy that some of these crossover operators have not been exclusively

used for the PFSP. Some were originally proposed for the Traveling Salesman Problem

(TSP), which is another well-known combinatorial optimization problem.

Ruiz et al. [46] have investigated the performance o f the above-mentioned

crossover operators except for the Longest Common Subsequence Crossover (LCSX). In

their survey, it is shown that the Similar Block Order Crossover (SBOX) outperforms

other crossover operators (excluding the LCSX, which was not considered in their

survey).

Iyer et al. proposed the LCSX and showed that LCSX outperform One-Point

Crossover (OPX) through experimental results [23], Furthermore, in their experiments

the standard benchmarks o f Taillard were not used. In fact, the performance of their

algorithm is tested on some randomly generated problem instances o f the PFPS [23].

31

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

Consequently, the comparison of LCSX and SBOX on standard benchmarks of Taillard

seems necessary. In the following sections, the LCSX and SBOX are described. In

Chapter 5, the performance of LCSX and SBOX utilized in the proposed hybrid GA is

extensively studied and compared.

3.4.1 Longest Common Subsequence Crossover (LCSX)

The LCSX preserves the longest relative orders of the jobs which are common in both

parents [23]. This concept is illustrated via an example. In the following example, two

parents (schedules), P1 and P2, mate to produce two offspring, 01 and 02, via the

LCSX6:

P1 = (123456789)

P2 = (476289153)

Step 1) First, the longest common subsequence of jobs is found in the parents. In

this particular example, one can find several common subsequences. For instance (4, 7) is

a common subsequence between P1 and P2, since the relative order of these two jobs in

both parents remains the same. Another common subsequence between P1 and P2 is (4,

7, 8). After a simple investigation, one can readily realize that the longest common

subsequence between P1 and P2 is (4, 7, 8, 9).

The jobs belonging to the longest common subsequence are underlined in parents.

P1=(1234567$9)

6 The pseudo code for the obtaining the longest common subsequence can be obtained through [29]

32

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

Consequently, the comparison of LCSX and SBOX on standard benchmarks o f Taillard

seems necessary. In the following sections, the LCSX and SBOX are described. In

Chapter 5, the performance of LCSX and SBOX utilized in the proposed hybrid GA is

extensively studied and compared.

3.4.1 Longest Common Subsequence Crossover (LCSX)

The LCSX preserves the longest relative orders of the jobs which are common in both

parents [23], This concept is illustrated via an example. In the following example, two

parents (schedules), P I and P2, mate to produce two offspring, O l and 02 , via the

LCSX6:

P I = (1 2 3 4 5 6 7 8 9)

P2 = (4 7 6 2 8 9 1 5 3)

Step 1) First, the longest common subsequence o f jobs is found in the parents. In

this particular example, one can find several common subsequences. For instance (4, 7) is

a common subsequence between P I and P2, since the relative order o f these two jobs in

both parents remains the same. Another common subsequence between P I and P2 is (4,

7, 8). After a simple investigation, one can readily realize that the longest common

subsequence between P I and P2 is (4, 7, 8, 9).

The jobs belonging to the longest common subsequence are underlined in parents.

■Pi = (1 2 3 4 5 6 2S2)

6 The pseudo code for the obtaining the longest common subsequence can be obtained through [29]

32

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

P2 = (416282153)

Step 2) The underlined jobs are directly copied from P1 into the 01 by preserving

their positions in Pl. Likewise, the underlined jobs in P2 are directly copied into the 02

(`x's in the offspring 01 and 02 represent unknown jobs (open positions) at the current

step):

01=(xxx4xx782)

02= (47 xxa9xx x)

Step 3) The jobs in P2 which are not underlined (i.e., the jobs in P2 which are not

in longest common subsequence) will fill the open positions of 01 from left to right. One

should note that the relative order of jobs which are not in longest common in P2 is

preserved as the open positions of 01 are being filled. Likewise, the open positions of 02

will be filled.

01=(6214532a 2)

02= (42 1 2 a 2356)

Iyer et al. proposed LCSX since they assume that the relative positions of the jobs

constitute the building block of the parent chromosomes. Consequently, they proposed a

crossover operator that maintains the locations of those jobs whose relative positions in

both parents are identical. More specifically, LCSX preserves only the longest common

According to [19], a building block can be defined as the patterns that give a chromosome a high fitness and increase in number as the GA progresses (also, see the schema theorem in [31]).

33

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

P2 = ( 4 2 6 2 1 2 1 53)

Step 2) The underlined jobs are directly copied from P I into the O l by preserving

their positions in P l. Likewise, the underlined jobs in P2 are directly copied into the 0 2

( ‘x ’s in the offspring O l and 0 2 represent unknown jobs (open positions) at the current

step):

07 = ( x x x 4 x x 2 S 2 )

0 2 = ( 4 2 x x £ g x x x )

Step 3) The jobs in P2 which are not underlined (i.e., the jobs in P2 which are not

in longest common subsequence) will fill the open positions o f O l from left to right. One

should note that the relative order o f jobs which are not in longest common in P2 is

preserved as the open positions o f 01 are being filled. Likewise, the open positions o f 0 2

will be filled.

01 = { 6 2 1 4 5 3 2 S 2)

0 2 = (4 2 1 2 3 5 6)

Iyer et al. proposed LCSX since they assume that the relative positions o f the jobs

n

constitute the building block o f the parent chromosomes. Consequently, they proposed a

crossover operator that maintains the locations o f those jobs whose relative positions in

both parents are identical. More specifically, LCSX preserves only the longest common

7According to [19], a building block can be defined as the patterns that give a chromosome a high fitness

and increase in number as the GA progresses (also, see the schema theorem in [31]).

33

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

subsequence in the parents, which is 'expected' to give good results [23]. Since the

performance of LCSX has not been examined on Taillard's benchmark problem

instances, it is of interest to verify the conjecture of Iyer et al. in this thesis.

3.4.2 Similar Block Order Crossover (SBOX)

In the SBOX [46], similar block of the jobs occupying the same positions play the main

role in the crossover process. Considering P1 and P2 as the parents, the SBOX is

exemplified as follows:

P1= (1 2 3 4 5 6 7 8 9 10 11)

P2 = (2 5 3 4 9 6 7 8 1 11 10)

Step 1) similar block of jobs are to be found in the parents. Similar blocks are (at

least) two consecutive identical jobs which occupy the very same positions in both

parents. (similar blocks are underlined in this example):

P1 = (1 2 3 4 5 678 9 10 11)

P2 = (2 5 3 4 9 6 7 8 1 11 10)

Step 2) Similar block of the jobs are copied over to both offspring.

P1 = (xx34 x 678 x x x)

P2 = (xx34 x 678 xxx)

Step 31 All jobs of each parent, up to a randomly chosen cut point, (marked by 'I')

are copied to its corresponding offspring.

34

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

subsequence in the parents, which is ‘expected’ to give good results [23]. Since the

performance o f LCSX has not been examined on Taillard’s benchmark problem

instances, it is o f interest to verify the conjecture o f Iyer et al. in this thesis.

3.4.2 Similar Block Order Crossover (SBOX)

In the SBOX [46], similar block of the jobs occupying the same positions play the main

role in the crossover process. Considering P I and P2 as the parents, the SBOX is

exemplified as follows:

P l = {\ 2 3 4 5 6 7 8 9 10 11)

P2 = (2 5 3 4 9 6 7 8 1 11 10)

Step 11 similar block o f jobs are to be found in the parents. Similar blocks are (at

least) two consecutive identical jobs which occupy the very same positions in both

parents, (similar blocks are underlined in this example):

P l = {\ 2 3 4 5 6 2 8 9 10 11)

P2 = (2 5 3_4 9 62_8 1 11 10)

Step 2) Similar block o f the jobs are copied over to both offspring.

P I = (x x 3 4 x 6 7 8 x x x)

P2 = ( x x 3_4 x 6 7 8 x x x)

Step 31 All jobs o f each parent, up to a randomly chosen cut point, (marked by ‘|’)

are copied to its corresponding offspring.

34

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

0/=(1234 Ix 678 x x x)

02 = (25341x 678 xxx)

Step 4) Finally, the missing jobs of each offspring are copied in the relative order

of the other parent.

0/ = (1 2 3 415 6 7 8 9 11 10)

02 = (2 5 3 41 1 6 7 8 9 10 11)

Ruiz et al. proposed SBOX because they conjectured that preserving similar

blocks of the jobs (defined earlier) plays the role of the building block in the

chromosomes of the parents and consequently these blocks must be passed over from

parents to offspring unaltered.

3.5 Mutation Operators

In order to keep a GA from focusing on one region of the search space and from ending

up with local up optima, mutation operations have been introduced into the GAs. The

main mutation operators which have been proposed for the PFSP are described in this

section. One should note that in the proposed genetic algorithms for the PFSP, the

mutation probability is normally assigned to each individual whereas in classical binary

representation of genetic algorithms, the mutation probability is usually applied to each

bit (i.e., each position of the string) and not to an individual.

35

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

01 = (\ 2 3 4 | x 67_8 x x x)

0 2 = (2 5 3_4 | x 6 7 8 x x x)

Step 4) Finally, the missing jobs o f each offspring are copied in the relative order

o f the other parent.

01 = (1 2 3 4 | 5 6 7 J 9 11 10)

0 2 = (2 5 3_4 | 1 67_8 9 10 11)

Ruiz et al. proposed SBOX because they conjectured that preserving similar

blocks o f the jobs (defined earlier) plays the role o f the building block in the

chromosomes o f the parents and consequently these blocks must be passed over from

parents to offspring unaltered.

3.5 Mutation Operators

In order to keep a GA from focusing on one region o f the search space and from ending

up with local up optima, mutation operations have been introduced into the GAs. The

main mutation operators which have been proposed for the PFSP are described in this

section. One should note that in the proposed genetic algorithms for the PFSP, the

mutation probability is normally assigned to each individual whereas in classical binary

representation o f genetic algorithms, the mutation probability is usually applied to each

bit (i.e., each position o f the string) and not to an individual.

35

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

3.5.1 Reciprocal Exchange Mutation (Swap Mutation)

The swap mutation selects two jobs at random and then exchanges those jobs in the

permutation. The Swap mutation is illustrated as follows, where P is the original

individual and M is the mutated one:

P=(123456789)

t t

M= (127456389)

n — e It can be observed that with a permutation of n jobs there are n( 2 possible

swap mutations.

3.5.2 Transpose Mutation

The transpose mutation exchanges two adjacent jobs at random. The only difference

between the swap mutation and the transpose mutation is that in the transpose mutation

two adjacent jobs should be randomly chosen and exchanged while in the swap mutation

any two jobs can be exchanged. The transpose mutation is illustrated as follows:

P= (123 456789)

11

M=(124 356789)

It can be observed that with a permutation of n jobs there are (n —1) possible

transpose mutations.

36

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

3.5.1 Reciprocal Exchange Mutation (Swap Mutation)

The swap mutation selects two jobs at random and then exchanges those jobs in the

permutation. The Swap mutation is illustrated as follows, where P is the original

individual and M is the mutated one:

P = (l 2 3 4 5 6 7 8 9)

M = (1 2 7 4 5 6 3 8 9)

It can be observed that with a permutation o f n jobs there are ^ possible

swap mutations.

3.5.2 Transpose Mutation

The transpose mutation exchanges two adjacent jobs at random. The only difference

between the swap mutation and the transpose mutation is that in the transpose mutation

two adjacent jobs should be randomly chosen and exchanged while in the swap mutation

any two jobs can be exchanged. The transpose mutation is illustrated as follows:

P = (1 2 3 4 5 6 7 8 9 )

M = ( l 2 4 3 5 6 7 8 9)

It can be observed that with a permutation o f n jobs there are (n - 1) possible

transpose mutations.

36

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

3.5.3 Inversion Mutation

In the inversion mutation, two random positions in the permutation are selected and the

jobs surrounded by these two positions are named a sub-string. A mutated chromosome is

generated through an inversion of the sub-string. The inversion mutation is illustrated via

an example as follows:

P = (12134567189)

M= (12176543189)

3.5.4 Insertion Mutation (Shift Change Mutation)

When an individual in the population is selected to undergo insertion mutation (shift

change mutation), a job from that individual is selected at random, and then it is inserted

in another random position. This mutation is illustrated as follows:

P=(12_3456789)

I'

M = (127345689)

As observed in the above example, job 7 has been randomly selected and it has

been inserted in another random position (position three). It can be proven that for an

n-job individual, (n —1)2 possible insertion mutations can be found.

This concept can be similarly applied to local search methods proposed for the

PFSP [50]. Suppose that the neighborhoods of a schedule are defined as all schedules that

are obtained through the procedure of insertion mutation. Adopting this definition,

(n — 1)2 schedules, representing the neighbors of the initial schedule, can be found. The

37

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

3.5.3 Inversion Mutation

In the inversion mutation, two random positions in the permutation are selected and the

jobs surrounded by these two positions are named a sub-string. A mutated chromosome is

generated through an inversion of the sub-string. The inversion mutation is illustrated via

an example as follows:

P = (l 2 | 3 4 5 6 7 | 8 9)

M = ( 1 2 | 7 6 5 4 3 | 8 9)

3.5.4 Insertion Mutation (Shift Change Mutation)

When an individual in the population is selected to undergo insertion mutation (shift

change mutation), a job from that individual is selected at random, and then it is inserted

in another random position. This mutation is illustrated as follows:

P = (l 2_3 4 5 6 7 8 9)

t _______

M = (1 2 7 3 4 5 6 8 9)

As observed in the above example, job 7 has been randomly selected and it has

been inserted in another random position (position three). It can be proven that for an

H-job individual, (n - 1)2 possible insertion mutations can be found.

This concept can be similarly applied to local search methods proposed for the

PFSP [50]. Suppose that the neighborhoods o f a schedule are defined as all schedules that

are obtained through the procedure o f insertion mutation. Adopting this definition,

(n - 1)2 schedules, representing the neighbors o f the initial schedule, can be found. The

37

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

makespan for each neighborhood can be obtained in the order of 0(nm), and since there

are (n —1)2 neighbors (schedules), the makespan of all these schedules can be calculated

in the order of 0(n3m). By adopting Taillard's approach, discussed in the preceding

chapter, the makespan for these schedules can be calculated in the order of 0(n 2m).

It has been experimentally shown that the insertion mutation outperforms other

above-mentioned mutation operations [42], [46]. In Chapter 4, a new mutation named

destruction-construction is employed in the proposed genetic algorithm. In addition, the

comparative performance of the insertion mutation and destruction-construction mutation

is discussed in that chapter.

38

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

makespan for each neighborhood can be obtained in the order o f 0 (nm) , and since there

are (n - 1)2 neighbors (schedules), the makespan o f all these schedules can be calculated

in the order o f 0 (n 3m ). By adopting Taillard’s approach, discussed in the preceding

chapter, the makespan for these schedules can be calculated in the order o f 0 (n 2m ) .

It has been experimentally shown that the insertion mutation outperforms other

above-mentioned mutation operations [42], [46]. In Chapter 4, a new mutation named

destruction-construction is employed in the proposed genetic algorithm. In addition, the

comparative performance of the insertion mutation and destruction-construction mutation

is discussed in that chapter.

38

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

CHAPTER 4: SOLUTION METHODOLOGY

The organization of this chapter is as follows: first, the proposed GA-based algorithm to

solve the PFSP is described. The concept of the Iterated Greedy Algorithm (IGA) of Ruiz

et al. [47] is also discussed, and then the hybrid method, combining the proposed GA

with the IGA, yielding favorable results over each individual technique, is explained.

4.1 The Structure of the Proposed GA

4.1.1 Representation and Initial Population

Similar to the existing GAs cited in the literature (e.g., [5], [23], [33], [40], [42], [46]), a

permutation of jobs is adopted to represent an individual in the population. The initial

population is recommended to be a collection of permutations that have already been

obtained through heuristic approaches [5], [46]. In the proposed GA, the initial

population is generated through a slight modification of the NEH algorithm.

The original NEH algorithm (described in Section 2.2) can be observed as a

function that initially gets a permutation of jobs and returns a new permutation based on

its input. More specifically, in the first step of the algorithm, the jobs are sorted by

decreasing sum of their processing times. Then in the steps that follow, the NEH changes

the permutation constructed in step one.

In the proposed modification of the NEH algorithm, a slight change is made in the

first step of the original NEH to produce an initial population for the genetic algorithm

39

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

C h a p t e r 4: So l u t io n M e t h o d o l o g y

The organization o f this chapter is as follows: first, the proposed GA-based algorithm to

solve the PFSP is described. The concept o f the Iterated Greedy Algorithm (IGA) of Ruiz

et al. [47] is also discussed, and then the hybrid method, combining the proposed GA

with the IGA, yielding favorable results over each individual technique, is explained.

4.1 The Structure of the Proposed GA

4.1.1 Representation and Initial Population

Similar to the existing GAs cited in the literature (e.g., [5], [23], [33], [40], [42], [46]), a

permutation o f jobs is adopted to represent an individual in the population. The initial

population is recommended to be a collection o f permutations that have already been

obtained through heuristic approaches [5], [46]. In the proposed GA, the initial

population is generated through a slight modification o f the NEH algorithm.

The original NEH algorithm (described in Section 2.2) can be observed as a

function that initially gets a permutation o f jobs and returns a new permutation based on

its input. More specifically, in the first step of the algorithm, the jobs are sorted by

decreasing sum of their processing times. Then in the steps that follow, the NEH changes

the permutation constructed in step one.

In the proposed modification of the NEH algorithm, a slight change is made in the

first step o f the original NEH to produce an initial population for the genetic algorithm

39

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

(See figure 4.1). More specifically, the modified NEH is treated as a function that takes a

random permutation of jobs (instead of getting a vector of sorted jobs by decreasing sum

of their processing times) initially and then the second and the third steps of the original

NEH algorithm are simply followed.

1) Generate a random permutation of n jobs.

2) Take the first two jobs and schedule them in order to minimize the partial makespan as if there were only these two jobs.

3) For k = 3 to n do: Insert the k-th job at the place, among the k possible ones, which minimizes the partial makespan.

Figure 4.1 The proposed modified NEH algorithm as the initial population generator

For producing pop _ size permutations (pop _ size represents the size of the

population) as the initial population of the GA, the following strategy is adopted: The

first permutation of jobs (as the first individual in the initial population) is generated

through the original NEH algorithm. For initializing, the rest of the population, which

includes (pop _ size —1) permutations of jobs, (pop _ size —1) random permutations are

sent to the modified NEH, and, finally, (pop _ size —1) permutations are constructed.

According to the preliminary experiments, this type of initialization produces different

makespan, indicating that a heterogeneous population is generated. Consequently, this

type of initialization will not end up with a premature convergence. The examined

population sizes in this thesis are 20, 40, and 60. Similar population sizes have been cited

in the literature, [5], [33], [40], [42], [46].

40

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

(See figure 4.1). More specifically, the modified NEH is treated as a function that takes a

random permutation o f jobs (instead of getting a vector o f sorted jobs by decreasing sum

of their processing times) initially and then the second and the third steps o f the original

NEH algorithm are simply followed.

1) Generate a random permutation of n jobs.

2) Take the first two jobs and schedule them in order tominimize the partial makespan as if there were only these two jobs.

3) For k = 3 to n do: Insert the k-tb. job at the place, amongthe k possible ones, which minimizes the partial makespan.

Figure 4.1 The proposed modified NEH algorithm as the initial population generator

For producing pop_size permutations (p o p _ size represents the size o f the

population) as the initial population o f the GA, the following strategy is adopted: The

first permutation of jobs (as the first individual in the initial population) is generated

through the original NEH algorithm. For initializing, the rest o f the population, which

includes (pop _ s iz e -1 ) permutations o f jobs, (pop s iz e - \ ) random permutations are

sent to the modified NEH, and, finally, (pop size - l ) permutations are constructed.

According to the preliminary experiments, this type o f initialization produces different

makespan, indicating that a heterogeneous population is generated. Consequently, this

type of initialization will not end up with a premature convergence. The examined

population sizes in this thesis are 20, 40, and 60. Similar population sizes have been cited

in the literature, [5], [33], [40], [42], [46],

40

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

4.1.2 Selection Mechanisms

Elitist selection is employed in the GA in a way that the top ten percent of individuals in

every generation are directly copied into the next generation.

Two classical selection types are examined for the selection of parents; namely

rank-based selection and tournament selection (described in Sections 3.3.2 and 3.3.3,

respectively). Regardless of the adopted selection type, the selection mechanism produces

a set of permutations (referred to as candidacy list hereinafter) with the size of

0.90 x pop _size.

In rank-based selection, the notion of linear rank scaling with the selective

pressure of two is applied. The rationale behind this selection type was described in

Section 3.3.2.

The other implemented selection type is the tournament selection. A tournament

size of two, as cited in the literature is used [19], [30]. For implementing the tournament

selection mechanism, 0.90 x pop _ size tournaments will be performed. In each

tournament, two individuals are selected at random from the population (i.e., a selection

procedure with replacement), and one which has the lower makespan is selected and

added to the candidacy list.

4.1.3 Crossover and Mutation Mechanisms

When a candidacy list is thoroughly produced through selection, its individuals are paired

according to their order in the list. It is noteworthy that regardless of the selection type

employed, the candidacy list is filled with individuals in a way that every two

41

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

4.1.2 Selection Mechanisms

Elitist selection is employed in the GA in a way that the top ten percent o f individuals in

every generation are directly copied into the next generation.,

Two classical selection types are examined for the selection o f parents; namely

rank-based selection and tournament selection (described in Sections 3.3.2 and 3.3.3,

respectively). Regardless o f the adopted selection type, the selection mechanism produces

a set o f permutations (referred to as candidacy list hereinafter) with the size of

0.90x pop size.

In rank-based selection, the notion of linear rank scaling with the selective

pressure o f two is applied. The rationale behind this selection type was described in

Section 3.3.2.

The other implemented selection type is the tournament selection. A tournament

size of two, as cited in the literature is used [19], [30]. For implementing the tournament

selection mechanism, 0.90 x pop _size tournaments will be performed. In each

tournament, two individuals are selected at random from the population (i.e., a selection

procedure with replacement), and one which has the lower makespan is selected and

added to the candidacy list.

4.1.3 Crossover and Mutation Mechanisms

When a candidacy list is thoroughly produced through selection, its individuals are paired

according to their order in the list. It is noteworthy that regardless o f the selection type

employed, the candidacy list is filled with individuals in a way that every two

41

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

consecutive individuals in the list are statistically independent. In other words, there is no

need to perform an additional procedure to pair the individuals from the candidacy list at

random.

size x pop _ According to the aforementioned selection strategy,

0.90 pairs of

2

consecutive individuals exist in the candidacy list (i.e., the first and second individuals as

the first pair, the third and fourth individuals as the second pair, and so on). A fraction of

these pairs are randomly chosen (with the probability of pc) to undergo crossover

operation in the next step. Each pair which undergoes crossover operation produces two

offspring that replace the parents in the candidacy list. If a pair is not chosen for

crossover, they will remain intact in the candidacy list. Consequently, after applying the

crossover, the number of individuals in the candidacy list remains unchanged. LCSX and

SBOX, described in Sections 3.4.1 and 3.4.2, are examined as the crossover operators.

As stated in Section 3.4, Ruiz et al. [46] have recently shown that SBOX

outperforms One Point Crossover, Order Crossover, Partially-Mapped Crossover, Two

Point Crossover, Similar Job Order Crossover, Similar Job 2-Point Order Crossover,

Similar Block 2-Point Order Crossover operators cited in the literature. However, Ruiz

et al. have not tested the performance of LCSX in their algorithm. Furthermore, the

performance of the LCSX on standard benchmarks of Taillard has not been investigated

in the literature. The performance of the SBOX and LCSX in the proposed algorithm is

extensively studied in this thesis.

After applying the crossover operators, a fraction of individuals in the candidacy

list are randomly chosen to undergo mutation operator. More specifically, the mutation

42

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

consecutive individuals in the list are statistically independent. In other words, there is no

need to perform an additional procedure to pair the individuals from the candidacy list at

random.

According to the aforementioned selection strategy, ^ x P°P - iS7ze pajrs 0f

consecutive individuals exist in the candidacy list (i.e., the first and second individuals as

the first pair, the third and fourth individuals as the second pair, and so on). A fraction of

these pairs are randomly chosen (with the probability of p c) to undergo crossover

operation in the next step. Each pair which undergoes crossover operation produces two

offspring that replace the parents in the candidacy list. If a pair is not chosen for

crossover, they will remain intact in the candidacy list. Consequently, after applying the

crossover, the number o f individuals in the candidacy list remains unchanged. LCSX and

SBOX, described in Sections 3.4.1 and 3.4.2, are examined as the crossover operators.

As stated in Section 3.4, Ruiz et al. [46] have recently shown that SBOX

outperforms One Point Crossover, Order Crossover, Partially-Mapped Crossover, Two

Point Crossover, Similar Job Order Crossover, Similar Job 2-Point Order Crossover,

Similar Block 2-Point Order Crossover operators cited in the literature. However, Ruiz

et al. have not tested the performance o f LCSX in their algorithm. Furthermore, the

performance o f the LCSX on standard benchmarks o f Taillard has not been investigated

in the literature. The performance o f the SBOX and LCSX in the proposed algorithm is

extensively studied in this thesis.

After applying the crossover operators, a fraction o f individuals in the candidacy

list are randomly chosen to undergo mutation operator. More specifically, the mutation

42

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

operator, with a probability of pm, is applied to each individual of the candidacy list. Two

mutation operators are examined in the proposed algorithm; namely insertion mutation

and destruction-construction mutation. The destruction-construction mutation operation is

the same as destruction and construction phases of the Iterated Greedy Algorithm, which

will be discussed later on. The preliminary tests show that the destruction-construction

mutation is clearly superior to the insertion mutation. Therefore, the insertion mutation

will not be considered in design of experiments (to be discussed in Chapter 5). Three

levels are considered for the mutation rate, namely, 0.10, 0.15, and 0.20.

4.1.5 Termination Condition

A time dependent termination condition of n x m x 90 milliseconds is adopted, where n

and m are the number of jobs and machines, respectively. The proposed GA is

implemented in Java (J2SE8) and is run on a personal computer with 1.4 GHz Pentium III

processor, and 2 GB of RAM. The aforementioned period (as the termination condition)

is twice the duration that Ruiz et al. [46] used in their proposed GA. In fact, Ruiz et al.

employed faster computer9 with Athlon XP 1600+ processor (running at 1400 MHz) and

512 MB of RAM (See [46] for detail).

The hybrid method based on the GA and the IGA is addressed in the next

sections. An overview of the IGA is given in Section 4.2, and the proposed hybrid

solution technique is addressed in Section 4.3.

8 Java 2 Platform, Standard Edition

9 One should admit, that it is not easy to compare the performance of these two different types of computers precisely.

43

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

operator, with a probability o f p m, is applied to each individual o f the candidacy list. Two

mutation operators are examined in the proposed algorithm; namely insertion mutation

and destruction-construction mutation. The destruction-construction mutation operation is

the same as destruction and construction phases o f the Iterated Greedy Algorithm, which

will be discussed later on. The preliminary tests show that the destruction-construction

mutation is clearly superior to the insertion mutation. Therefore, the insertion mutation

will not be considered in design o f experiments (to be discussed in Chapter 5). Three

levels are considered for the mutation rate, namely, 0.10, 0.15, and 0.20.

4.1.5 Termination Condition

A time dependent termination condition of n x m x 90 milliseconds is adopted, where n

and m are the number o f jobs and machines, respectively. The proposed GA is

implemented in Java (J2SE8) and is run on a personal computer with 1.4 GHz Pentium III

processor, and 2 GB of RAM. The aforementioned period (as the termination condition)

is twice the duration that Ruiz et al. [46] used in their proposed GA. In fact, Ruiz et al.

employed faster computer9 with Athlon XP 1600+ processor (running at 1400 MHz) and

512 MB of RAM (See [46] for detail).

The hybrid method based on the GA and the IGA is addressed in the next

sections. An overview o f the IGA is given in Section 4.2, and the proposed hybrid

solution technique is addressed in Section 4.3.

8 Java 2 Platform, Standard Edition

9 One should admit, that it is not easy to compare the performance o f these two different types o f computers precisely.

43

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

4.2 Iterated Greedy Algorithm

Ruiz et al. [47] have proposed an Iterated Greedy Algorithm for the PFSP recently, which

is easy to implement.

The central idea behind any Iterated Greedy Algorithm (IGA) is to iteratively

apply two main stages to the current solution (e.g., permutation, etc.); namely destruction

stage and construction stage. These two stages are problem specific and in the case of the

PFSP they are tuned by Ruiz et al. as follows: in the destruction stage, some jobs are

removed at random from the current solution, and in the construction stage, those

removed jobs are added again to the sequence in a certain pattern which will be described

later on.

The Iterated Greedy algorithm (IGA) of Ruiz et al., which is similar to the

Iterated Local Search (ILS) of Stiitzle [50] to some extent, has five components, namely,

initial solution generation, destruction, construction, local search, and acceptance

criterion.

The initial solution is found through the NEH heuristics, which is followed by a

local search. The local search, which will be described later on, explores and finds local

optimal solution in the neighborhood of the initial solution. After finding the local

optimal solution, four components, namely destruction, construction, local search, and

acceptance criterion are iteratively applied to the incumbent solution, as illustrated in the

pseudo code of the IGA in Figure 4.1.

In the destruction phase, d jobs (without repetition) are randomly removed from

the current solution, it. Removing d jobs from a permutation of n jobs, yields two partial

44

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

4.2 Iterated Greedy Algorithm

Ruiz et al. [47] have proposed an Iterated Greedy Algorithm for the PFSP recently, which

is easy to implement.

The central idea behind any Iterated Greedy Algorithm (IGA) is to iteratively

apply two main stages to the current solution (e.g., permutation, etc.); namely destruction

stage and construction stage. These two stages are problem specific and in the case o f the

PFSP they are tuned by Ruiz et al. as follows: in the destruction stage, some jobs are

removed at random from the current solution, and in the construction stage, those

removed jobs are added again to the sequence in a certain pattern which will be described

later on.

The Iterated Greedy algorithm (IGA) o f Ruiz et al., which is similar to the

Iterated Local Search (ILS) o f Stiitzle [50] to some extent, has five components, namely,

initial solution generation, destruction, construction, local search, and acceptance

criterion.

The initial solution is found through the NEH heuristics, which is followed by a

local search. The local search, which will be described later on, explores and finds local

optimal solution in the neighborhood of the initial solution. After finding the local

optimal solution, four components, namely destruction, construction, local search, and

acceptance criterion are iteratively applied to the incumbent solution, as illustrated in the

pseudo code o f the IGA in Figure 4.1.

In the destruction phase, d jobs (without repetition) are randomly removed from

the current solution, n. Removing d jobs from a permutation o f n jobs, yields two partial

44

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

sequences; namely ltD which contains (n — d) jobs, and 7ER which has d jobs. Needles to

say, the order in which those d jobs are removed from It is important, because this order

provides the 7ER, which is one of the two mentioned partial schedules.

In the construction phase, the jobs of ltR are re-inserted to ltD one by one

according to the 3rd step of the NEH algorithm. Thus, the first job of ltR has

(n — d +1) possible positions for insertion to RD (see the NEH algorithm in Section 2.1).

All these positions are examined and the position which yields the best makespan is

chosen. After fixing the position of the first job of 7tR in irD, the best position for the

second job of 1ER is investigated. The second job of ltR has (n — d + 2) possible positions

for insertion to nro. This procedure is repeated until the last job of ltR is inserted to irD.

One should note that Taillard's acceleration investigated in Section 2.3 is applied in

construction phase.

After the construction phase, the current solution can undergo a local search (this

can be optional). In fact, Ruiz et al. realized that this step improves the overall

performance of the IGA. The insertion-move, which is similar to the insertion mutation

operator described in Section 3.5.4, is applied as a local search technique. As mentioned

in that section, (n —1)2 possible neighborhoods can be scanned for a given permutation.

Ruiz et al. follow the strategy in which the first randomly chosen neighborhood (among

(n — 0 2 possible neighborhoods) that improves the makespan of the current solution is

applied as the output of the local search procedure [47]. In this thesis, however, a

45

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

sequences; namely 7Ud which contains ( n - d ) jobs, and 7Er which has d jobs. Needles to

say, the order in which those d jobs are removed from it is important, because this order

provides the 7Tr , which is one o f the two mentioned partial schedules.

In the construction phase, the jobs of 7Tr are re-inserted to 7Td one by one

according to the 3rd step of the NEH algorithm. Thus, the first job of 7Tr has

( n - d + 1)possible positions for insertion to 7Td (see the NEH algorithm in Section 2.1).

All these positions are examined and the position which yields the best makespan is

chosen. After fixing the position of the first job o f 7Ir in 7tD, the best position for the

second job o f 7Cr is investigated. The second job o f 7Er has ( n - d + 2) possible positions

for insertion to 7to. This procedure is repeated until the last job o f 71r is inserted to jId.

One should note that Taillard’s acceleration investigated in Section 2.3 is applied in

construction phase.

After the construction phase, the current solution can undergo a local search (this

can be optional). In fact, Ruiz et al. realized that this step improves the overall

performance o f the IGA. The insertion-move, which is similar to the insertion mutation

operator described in Section 3.5.4, is applied as a local search technique. As mentioned

in that section, (n - 1)2 possible neighborhoods can be scanned for a given permutation.

Ruiz et al. follow the strategy in which the first randomly chosen neighborhood (among

(n - 1)2 possible neighborhoods) that improves the makespan of the current solution is

applied as the output o f the local search procedure [47]. In this thesis, however, a

45

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

different approach is adopted. More specifically, all (n —1)2 possible neighborhoods of the

current solution are scanned and the best one is applied as the output of the local

procedure.

procedure Iterated Greedy jor_PFSP := NEH_Meuristic;

IterativelmprovemenUnsertion(7): Th

while (termination criterion not satisfied) do := Tr: % Destruction phase

for 1 to d do := remove one job at random from 771 and insert it in T fi;

endfor for i := I to d do 4 -0 Construction phase

7 1 := best permutation obtained by inserting job r R(i) in all possible positions of 7 ' :

endfor Jr" := lterativelmprovement Insertion(7'): ?-o Local Search if ( ;mu I 7 " ) < 'mar ) then

:=

if Cma.r(Tr) < rmax("A-10 then 7t, = 77:

endif elseif (random vxp{ 7" ) — Crimx ( )V TeMpOra Mi' I) then

endif endwhile return 171,

% Acceptance Criterion

end

% check. if new best permutation

Figure 4.2 Pseudo code of an iterated greedy algorithm procedure with local search [47].

The acceptance criterion that is applied in the IGA is a

simulated annealing-type acceptance criterion, and is similar to the acceptance criterion

in ILS [30], [50]. Suppose that it is the current solution and after IE undergoes a local

search, 7E" is yielded (as illustrated in Figure 4.1). If Cmax(n") is worse (i.e., greater) than

C.(n), 1E" is accepted as a current solution with the probability of:

p = exp {- (Cmax(e) - Cmax(7t))1Temperature} 0 p 1 (5.2)

46

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

different approach is adopted. More specifically, all (n - 1)2 possible neighborhoods o f the

current solution are scanned and the best one is applied as the output o f the local

procedure.

procedure lteratedGreedy_for_PFSP 7T := NEH_heuristic: rrIterativelmprovementJnsertion(Tr):~i, n';while (termination criterion not satisfied) do

rd := ,v: °oDestruction phasefor / 1 to d do

:= remove one job at random from and insert it in ~ {(\eudforfor i 1 to d do ° o Construction phase

tt' best pennutation obtained by inserting job in all possible positions o f tt' :

eudfortr" := lterativelmprovement_lnsertion{-'): °o Local Searchif t ’mnji'") < f mrtxl'T) then °o Acceptance Criterion

t t n " :

if ( ' m u r i x ) < ( 'max( ~ h ) then 06 check if new best permutationttfc

endifelseif {ran dom < oxp{ —(CmnJ.(^") - C nuis(tt) ) / Tcinpeitiniit?}) theu

__ ._fi , — il .

eudif endwhile retttru rr,,

end

Figure 4.2 Pseudo code o f an iterated greedy algorithm procedure with local search [47].

The acceptance criterion that is applied in the IGA is a

simulated annealing-type acceptance criterion, and is similar to the acceptance criterion

in ILS [30], [50]. Suppose that 7t is the current solution and after 7t undergoes a local

search, Tt" is yielded (as illustrated in Figure 4.1). If Cmax(n") is worse (i.e., greater) than

Cmax(n), Tt" is accepted as a current solution with the probability of:

p = exp{- (Cmaxiti") - Cmax(n))/Temperature) 0 < p < 1 (5.2)

46

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

If C'„,„,(7r") is better than Cm (7t), 7C" is then accepted. Temperature in the

implementation of Ruiz et al. is a constant parameter that should be tuned offline. One

should note that 7rb in Figure 4.2 keeps track of the best visited solution. 7rb is returned

after the termination condition is satisfied.

Two parameters of IGA, namely T and d (where T and d represent the

Temperature and the number of jobs to be removed in the destruction phase,

respectively), were tuned by Ruiz et al. through the design of experiments. As a result of

experimental analysis, they found that the IGA with d = 4 and T = 0.4 yields the best

results in terms of the relative percentage deviation from best-known solution of

Taillard's instances.

Before dealing with the hybridization of the GA, it is noteworthy that the

mutation operation considered for the proposed GA consists of two phases, namely the

destruction and the construction phases of the IGA with d = 4.

4.3 Hybridization with Iterated Greedy Algorithm

The idea of hybridization of the GA with other heuristics has been investigated for

solving the PFPS in the literature. Murata et al. examined genetic local search and genetic

simulated annealing as two hybridization of genetic algorithm [33]. They showed that a

genetic local search outperforms the non-hybrid genetic algorithms and genetic simulated

annealing. In their genetic local search, the local search is added as an improvement

phase. In that improvement phase, all individuals of the current population of the GA

iteratively undergo a local search before going through the selection phase. The

disadvantage of their approach is that the local search becomes very time consuming.

47

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

If Cmax(n") is better than Cmax(n), % is then accepted. Temperature in the

implementation o f Ruiz et al. is a constant parameter that should be tuned offline. One

should note that 7Tb in Figure 4.2 keeps track o f the best visited solution. 7tb is returned

after the termination condition is satisfied.

Two parameters o f IGA, namely T and d (where T and d represent the

Temperature and the number o f jobs to be removed in the destruction phase,

respectively), were tuned by Ruiz et al. through the design of experiments. As a result of

experimental analysis, they found that the IGA with d = 4 and T = 0.4 yields the best

results in terms o f the relative percentage deviation from best-known solution of

Taillard’s instances.

Before dealing with the hybridization o f the GA, it is noteworthy that the

mutation operation considered for the proposed GA consists o f two phases, namely the

destruction and the construction phases o f the IGA with d = 4.

4.3 Hybridization with Iterated Greedy Algorithm

The idea of hybridization o f the GA with other heuristics has been investigated for

solving the PFPS in the literature. Murata et al. examined genetic local search and genetic

simulated annealing as two hybridization o f genetic algorithm [33]. They showed that a

genetic local search outperforms the non-hybrid genetic algorithms and genetic simulated

annealing. In their genetic local search, the local search is added as an improvement

phase. In that improvement phase, all individuals o f the current population of the GA

iteratively undergo a local search before going through the selection phase. The

disadvantage o f their approach is that the local search becomes very time consuming.

47

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

Similarly, Ruiz et al. showed that the hybridization of their proposed GA with a

local search yields better results [46].

Population:= Initialize_population(); if population initialization based on the modified NEH Evaluate (population); II calculate makespan for the initialized population While NOT (Termination condition) do elapsed CPU time of 11 x in x 90 milliseconds Begin

//selection Select Elitist Individuals: // select top ten percent individuals in the population Create Candidacy_List; either through ranking or tournament selection Repeat for all pairs in Candidacy_List

//crossover /I either LCSX or SBOX as the crossover operator Parentl:= CandidacyList(individuall); Pare nt2 = List(individual2): ndividual2 (Offspringl. Offspring2):= crossover(Parentl. Parent?, P,) //mutation similar to destruction and construction phases of IGA Offspringl := destmct_consttuct(Offspring 1, P„,); Offspring2:= destruct_constmct (Offspring2, P„,);

End end of Repeat //hybridization with IGA /1 IGA is applied to the best individual in the current population Best_individual:= IGA(best_individual, PIGA) Evaluate(population);

End " end of hybrid GA

Figure 4.3 Pseudo code for the hybrid algorithm

The approach that is adopted in this thesis is as follows: after applying the

crossover and mutation operators, the Iterated Greedy Algorithm is applied to the best

individual of the current population with probability of PIGA. The best permutation of the

GA is then sent to the IGA, and the IGA is run for n x m x 30 millisecond. If the

permutation, which is achieved through the IGA, has lower makespan than that of the

best permutation of GA, it is replaced with the best permutation of GA. The final pseudo

code for the hybrid method is illustrated in Figure 4.3.

The levels that are considered for PIGA are 0.00, 0.005, 0.01, and 0.02. One

should note that the case of PIGA = 0 corresponds to the non-hybrid genetic algorithm.

48

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

Similarly, Ruiz et al. showed that the hybridization of their proposed GA with a

local search yields better results [46],

Population:^ Initialize_population(); // population initialization based on the modified NEH Evaluate (population); // calculate makespan for the initialized populationWhile NOT (Termination condition) do ii elapsed CPU time of n x m x 90 milliseconds Begin

//selectionSelect Elitist Individuals; // select top ten percent individuals in the populationCreate Candidacy List; ii either through ranking or tournament selectionRepeat for all pairs in Candidacv_List

//crossover ii either LCSX or SBOX as the crossover operatorParentl := Candidacv_List(individuall);Parent2:= Candidacy_List(individual2):(Offspring 1. Offspring2):= crossover(Parentlr Parent2. P : )//mutation it similar to destruction and construction phases of IGAOffspringl:= destmct_construct(Offspringl. P ,n );Offspring2:= destruct_construct (Offspring2. P ,„);

End end of Repeat//hybridization with IGA ii IGA is applied to the best individual in the current populationBest_individual:= IGA(best_individuaL PIGA)Evaluate (popula tio n);

End end of hvbrid GA

Figure 4.3 Pseudo code for the hybrid algorithm

The approach that is adopted in this thesis is as follows: after applying the

crossover and mutation operators, the Iterated Greedy Algorithm is applied to the best

individual o f the current population with probability o f P i g a- The best permutation o f the

GA is then sent to the IGA, and the IGA is run for n x m x 30 millisecond. If the

permutation, which is achieved through the IGA, has lower makespan than that o f the

best permutation o f GA, it is replaced with the best permutation o f GA. The final pseudo

code for the hybrid method is illustrated in Figure 4.3.

The levels that are considered for Piga are 0.00, 0.005, 0.01, and 0.02. One

should note that the case o f Piga = 0 corresponds to the non-hybrid genetic algorithm.

48

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

4.4 Final Remarks on the Implementation of the Proposed Algorithm

The proposed algorithm was first implemented in MATLAB 7 using its Genetic

Algorithm and Direct Search Toolbox. Since MATLAB is a high-level programming

language, it does not need an intensive effort for implementing the proposed algorithm.

However, the drawback is that the implemented code in MATLAB needs a long time to

run as compared to low-level programming languages, such as C++, Delphi, and Java.

In order to compare the performance of the proposed algorithm with the

algorithms published in recent papers10 from a CPU time point of view, the proposed

algorithm was implemented in Java and the Java-based version of the proposed algorithm

was tested across the benchmarks of Taillard.

In Chapter 5, the tuning of the algorithm with the aforementioned parameters

through the Design of Experiments and Analysis of Variance is discussed, and the

performance of the algorithm is discussed.

10 Such as GA of Ruiz et al. [46], and IGA of Ruiz et al. [47], which are both implemented in Delphi.

49

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

4.4 Final Remarks on the Implementation of the Proposed Algorithm

The proposed algorithm was first implemented in MATLAB 7 using its Genetic

Algorithm and Direct Search Toolbox. Since MATLAB is a high-level programming

language, it does not need an intensive effort for implementing the proposed algorithm.

However, the drawback is that the implemented code in MATLAB needs a long time to

run as compared to low-level programming languages, such as C++, Delphi, and Java.

In order to compare the performance o f the proposed algorithm with the

algorithms published in recent papers10 from a CPU time point o f view, the proposed

algorithm was implemented in Java and the Java-based version o f the proposed algorithm

was tested across the benchmarks of Taillard.

In Chapter 5, the tuning of the algorithm with the aforementioned parameters

through the Design o f Experiments and Analysis o f Variance is discussed, and the

performance o f the algorithm is discussed.

10 Such as GA o f Ruiz et al. [46], and IGA o f Ruiz et al. [47], which are both implemented in Delphi.

49

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

CHAPTER 5: EXPERIMENTAL PARAMETER TUNING OF

THE PROPOSED ALGORITHM

In this chapter, the impact of the factors described in Chapter 4 on the performance of the

proposed GA-based algorithms to solve the PFSP is investigated through full factorial

experimental design and Analysis of Variance (ANOVA). The RPD is used as the

performance measure for this purpose. In the Design of Experiments (DOE), it is of

interest to determine which factors affect the proposed algorithms (both hybrid and non-

hybrid GA) the most. Moreover, the performances of the hybrid and non-hybrid GA are

extensively compared, and it is shown through experimental results that the hybridization

of the GA with the IGA (i.e., the hybrid GA) yields better results in terms of the RPD. It

is also shown that the proposed hybrid GA is robust".

5.1 Implementation of the Full Factorial Experimental Design

In the full factorial experimental design [61], all possible combinations of the levels

(treatments12) of the factors that are anticipated to be influential to the end results are

investigated. In this chapter, a combination of the following factors and their associated

RPDs is referred to as observations:

II According to Montgomery, the term robust algorithm is applied to an algorithm, which is influenced very slightly by the external source of variability [61].

12 In the design of experiments, every level of a factor is called a treatment.

50

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

C h a p t e r 5: E x pe r im e n t a l Pa r a m e t e r T u n in g O f

T h e Pr o po se d A l g o r it h m

In this chapter, the impact o f the factors described in Chapter 4 on the performance of the

proposed GA-based algorithms to solve the PFSP is investigated through fu ll factorial

experimental design and Analysis o f Variance (ANOVA). The RPD is used as the

performance measure for this purpose. In the Design o f Experiments (DOE), it is of

interest to determine which factors affect the proposed algorithms (both hybrid and non­

hybrid GA) the most. Moreover, the performances o f the hybrid and non-hybrid GA are

extensively compared, and it is shown through experimental results that the hybridization

o f the GA with the IGA (i.e., the hybrid GA) yields better results in terms o f the RPD. It

is also shown that the proposed hybrid GA is robustn .

5.1 Implementation of the Full Factorial Experimental Design

In the full factorial experimental design [61], all possible combinations o f the levels

(treatments12) o f the factors that are anticipated to be influential to the end results are

investigated. In this chapter, a combination o f the following factors and their associated

RPDs is referred to as observations'.

11 According to Montgomery, the term robust algorithm is applied to an algorithm, which is influenced very slightly by the external source o f variability [61].

12 In the design o f experiments, every level o f a factor is called a treatment.

50

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

• Population size: 20, 40, and 60;

• Selection type13: tournament and rank-based selections,

• Crossover type14: LCSX and SBOX,

• Crossover probability: 0.4, 0.6, and 0.8,

• Mutation probability: 0.1, 0.15, and 0.20,

• P IGA (IGA Probability): 0.005, 0.010, and 0.020.

One should note that the population size, selection type, crossover probability,

mutation probability, and IGA probability are controllable factors in the full factorial

experimental design. In addition to those controllable factors, there are two

uncontrollable factors in the DOE, namely the number of jobs (i.e., n) and the number of

machines (i.e., m). As a result, eight factors altogether are examined in the full factorial

experimental design.

For tuning of the proposed hybrid algorithm, the set of Taillard's benchmarks (see

Section 2.4) is used. The preliminary results show that any treatment combination of the

proposed hybrid algorithm to find the optimal solution for almost all small instances

(namely, the instances with the sizes of 20 x 5 , 20 x10 , 20 x 20 and 50 x 5 , which are

labeled as ta001 to ta040 in the literature). Therefore, in the design of experiments these

instances are not used. In addition, instances with the size of 100 x 5 (labeled as ta061 to

ta070) are not considered in the design of experiment for the same reason.

13 Hereinafter, tournament and rank-based selections will be denoted in the DOE by selection type 1 and 2, respectively.

14 Hereinafter, LCSX and SBOX will be denoted by crossover type 1 and 2, respectively.

51

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

• Population size: 20,40, and 60;

• Selection type13: tournament and rank-based selections,

• Crossover type14: LCSX and SBOX,

• Crossover probability: 0.4,0.6, and 0.8,

• Mutation probability: 0.1, 0.15, and 0.20,

• P ig a (IGA Probability): 0.005, 0.010, and 0.020.

One should note that the population size, selection type, crossover probability,

mutation probability, and IGA probability are controllable factors in the full factorial

experimental design. In addition to those controllable factors, there are two

uncontrollable factors in the DOE, namely the number o f jobs (i.e., n) and the number of

machines (i.e., m). As a result, eight factors altogether are examined in the full factorial

experimental design.

For tuning of the proposed hybrid algorithm, the set of Taillard’s benchmarks (see

Section 2.4) is used. The preliminary results show that any treatment combination o f the

proposed hybrid algorithm to find the optimal solution for almost all small instances

(namely, the instances with the sizes o f 2 0 x 5 ,2 0 x 1 0 , 20x20 and 50x 5 , which are

labeled as taOOl to ta040 in the literature). Therefore, in the design of experiments these

instances are not used. In addition, instances with the size of 100 x 5 (labeled as ta061 to

ta.070) are not considered in the design o f experiment for the same reason.

13 Hereinafter, tournament and rank-based selections will be denoted in the DOE by selection type 1 and 2, respectively.

14 Hereinafter, LCSX and SBOX will be denoted by crossover type 1 and 2, respectively.

51

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

The instances used in the design of experiment are as follows: five out of ten

instances with the size of 50 x10 (namely, ta041, ta043, ta045, ta047, and ta049), five

out of ten instances with the size of 50 x 20 (namely, ta051, ta053, ta055, ta057, and

ta059), five out of ten instances with the size of 100 x10 (namely, ta071, ta073, ta075,

ta077, and ta079), five out of ten instances with the size of 100x 20 (namely, ta081,

ta083, ta085, ta087, and ta089), five out of ten instances with the size of

200 x10 (namely, ta091, ta093, ta095, ta097, and ta099), and finally five out of ten

instances with the size of 200 x 20 (namely, ta101, ta103, ta105, ta107, and ta109).

Noticeably, 324 combinations of the controllable factors should be employed for

each of 30 above-mentioned instances. Consequently, 9,720 observations are needed to

conduct all possible combinations of the factors for 30 chosen instances. Since four

replicates15 are carried out for the hybrid GA, 38,880 observations are totally needed. In

short, for the implementation of full factorial experimental design the effects of these

38,880 observations were investigated on their corresponding RPDs as the response

variable, and the results will be discussed in the next section.

5.2 Analysis of Variance for the Proposed Hybrid Algorithm

The full factorial design with aforementioned characteristics is conducted in MINITAB

Statistical Software. MINITAB generates an ANOVA table as the output of factorial

design. ANOVA is a statistical inference technique through tests of hypotheses. Each of

15 The number of runs of the DOE on the same treatment combination is referred to as the number of replicates. The replication allows the experimenter to obtain a more precise estimate of the effect of factors [61].

52

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

The instances used in the design of experiment are as follows: five out o f ten

instances with the size o f 50x10 (namely, ta041, ta043, ta045, ta047, and ta049), five

out o f ten instances with the size of 50x 20 (namely, ta051, ta053, ta055, ta057, and

ta059), five out o f ten instances with the size o f 100x10 (namely, ta071, ta073, ta.075,

ta077, and ta079), five out o f ten instances with the size o f 100x20 (namely, ta081,

ta083, ta085, ta087, and ta089), five out o f ten instances with the size of

200x10 (namely, ta091, ta093, ta095, ta097, and ta099), and finally five out o f ten

instances with the size o f 200x20 (namely, talO l, ta!03, tal05, ta!07, and tal09).

Noticeably, 324 combinations o f the controllable factors should be employed for

each of 30 above-mentioned instances. Consequently, 9,720 observations are needed to

conduct all possible combinations o f the factors for 30 chosen instances. Since four

replicates15 are carried out for the hybrid GA, 38,880 observations are totally needed. In

short, for the implementation of full factorial experimental design the effects of these

38,880 observations were investigated on their corresponding RPDs as the response

variable, and the results will be discussed in the next section.

5.2 Analysis of Variance for the Proposed Hybrid Algorithm

The full factorial design with aforementioned characteristics is conducted in MINITAB

Statistical Software. MINITAB generates an ANOVA table as the output o f factorial

design. ANOVA is a statistical inference technique through tests o f hypotheses. Each of

15 The number o f runs o f the DOE on the same treatment combination is referred to as the number of replicates. The replication allows the experimenter to obtain a more precise estimate o f the effect o f factors [61].

52

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

the tests comprises two hypotheses: the null hypothesis (indicated by Ho), and the

alternative hypothesis (indicated by H1).

In the null hypothesis, it is assumed that the effects of different levels of a factor

are equal on the response variable. In the null hypothesis, it is claimed that the difference

in the average response across different levels of a factor is not statistically significant. In

the alternative hypothesis, it is assumed that at least two levels of a factor are not equal in

terms of the obtained response variable.

In addition, if the number of factors involved in the experiment is more than one,

it might be of interest to detect a possible interaction between two (or among more than

two) factors through hypothesis tests. Statistically speaking, the probability of rejection

of the null hypothesis when it is true is called the level of significance (also it is referred

to as the probability of committing type I error), [61]. On the other hand, acceptance of

the null hypothesis when it is false is called a type II error.

In the proposed algorithm, several hypotheses tests were performed. More

specifically, the effects of each of the eight16 aforementioned factors are individually

investigated using hypotheses tests. Furthermore, all possible interactions of two factors,

and all possible interactions of three factors are examined using hypotheses tests. As a

result, in this statistical model 92 hypotheses tests (i.e., (0+ (82 )+ (83 ) = 92) are

conducted. ANOVA table generated by MINITAB is illustrated in Table 5.1.

16 These eight factors consist of six controllable and two uncontrollable factors that are mentioned in Section 5.1.

53

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

the tests comprises two hypotheses: the null hypothesis (indicated by Ho), and the

alternative hypothesis (indicated by H }).

In the null hypothesis, it is assumed that the effects o f different levels o f a factor

are equal on the response variable. In the null hypothesis, it is claimed that the difference

in the average response across different levels o f a factor is not statistically significant. In

the alternative hypothesis, it is assumed that at least two levels o f a factor are not equal in

terms o f the obtained response variable.

In addition, if the number of factors involved in the experiment is more than one,

it might be o f interest to detect a possible interaction between two (or among more than

two) factors through hypothesis tests. Statistically speaking, the probability o f rejection

o f the null hypothesis when it is true is called the level o f significance (also it is referred

to as the probability o f committing type I error), [61]. On the other hand, acceptance of

the null hypothesis when it is false is called a type I I error.

In the proposed algorithm, several hypotheses tests were performed. More

specifically, the effects o f each of the eight16 aforementioned factors are individually

investigated using hypotheses tests. Furthermore, all possible interactions o f two factors,

and all possible interactions o f three factors are examined using hypotheses tests. As a

result, in this statistical model 92 hypotheses tests (i.e., ( f )+ ( | )+ (3) = 92) are

conducted. ANOVA table generated by MINITAB is illustrated in Table 5.1.

16 These eight factors consist o f six controllable and two uncontrollable factors that are mentioned in Section 5.1.

53

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

Table 5.1 Analysis of Variance for RPD of the proposed hybrid GA for solving the PFSP.

Factor Degrees

of Freedom

Sum of Squares

Mean Square

F-Value P-value

n 2 327.17 163.58 1747.87 0.000 m 1 10065.95 10065.95 107553.7 0.000 XoverType (Crossover Type) 1 0.06 0.06 0.69 0.408 SelecType (Selection Type) 1 1.08 1.08 11.49 0.001 Popsize (Population Size) 2 0.48 0.24 2.57 0.077 Xrate (Crossover Probabaility) 2 0.06 0.03 0.33 0.720 Mrate (Mutation Probability) 2 0.68 0.34 3.61 0.027 IGArate (IGA probability) 2 0.08 0.04 0.4 0.668 n*m 2 2314.2 1157.1 12363.51 0.000 n*XoverType 2 0.02 0.01 0.11 0.897 n*SelecType 2 0.22 0.11 1.15 0.316 n*Popsize 4 0.04 0.01 0.11 0.980 n*Xrate 4 0.18 0.05 0.49 0.746 n*Mrate 4 0.24 0.06 0.64 0.631 n*IGArate 4 0.25 0.06 0.67 0.611 m*XoverType 1 0.06 0.06 0.6 0.437 m*SelecType 1 0.00 0.00 0.01 0.912 m*Popsize 2 0.15 0.07 0.78 0.457 m*Xrate 2 0.03 0.02 0.16 0.849 m*Mrate 2 0.35 0.18 1.9 0.150 m*IGArate 2 0.23 0.11 1.2 0.300 XoverType*SelecType 1 0.01 0.01 0.09 0.763 XoverType*Popsize 2 0.22 0.11 1.17 0.311 XoverType*Xrate 2 0.09 0.04 0.46 0.630 XoverType*Mrate 2 0.03 0.02 0.18 0.838 XoverType*IGArate 2 0.04 0.02 0.2 0.822 SelecType*Popsize 2 0.07 0.03 0.36 0.697 SelecType*Xrate 2 0.26 0.13 1.37 0.255 SelecType*Mrate 2 0.17 0.09 0.93 0.395 SelecType*IGArate 2 0.14 0.07 0.75 0.470 Popsize*Xrate 4 0.02 0.00 0.05 0.996 Popsize*Mrate 4 0.19 0.05 0.5 0.736 Popsize*IGArate 4 0.06 0.02 0.16 0.956 Xrate*Mrate 4 0.08 0.02 0.21 0.934 Xrate*IGArate 4 0.15 0.04 0.4 0.810 Mrate*IGArate 4 0.4 0.1 1.07 0.367 n*m*XoverType 2 0.01 0.01 0.06 0.941 n*m*SelecType 2 11.72 5.86 62.62 0.000 n*m*Popsize 4 0.12 0.03 0.31 0.872 n*m*Xrate 4 0.08 0.02 0.21 0.933 n *Mrate 4 0.19 0.05 0.51 0.729 n*m*IGArate 4 0.27 0.07 0.72 0.578 n*XoverType*SelecType 2 0.64 0.32 3.41 0.033 n*XoverType*Popsize 4 0.07 0.02 0.2 0.940 n*XoverType*Xrate 4 0.18 0.05 0.48 0.750 n*XoverType*Mrate 4 0.17 0.04 0.45 0.770

54

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

Table 5.1 Analysis o f Variance for RPD o f the proposed hybrid GA for solving the PFSP.

FactorDegrees

o fFreedom

Sum of Squares

MeanSquare

F-Value F-value

n 2 327.17 163.58 1747.87 0.000m 1 10065.95 10065.95 107553.7 0.000XoverType (Crossover Type) 1 0.06 0.06 0.69 0.408SelecType (Selection Type) 1 1.08 1.08 11.49 0.001Popsize (Population Size) 2 0.48 0.24 2.57 0.077Xrate (Crossover Probabaility) 2 0.06 0.03 0.33 0.720Mrate (Mutation Probability) 2 0.68 0.34 3.61 0.027IGArate (IGA probability) 2 0.08 0.04 0.4 0.668n*m 2 2314.2 1157.1 12363.51 0.000n*XoverType 2 0.02 0.01 0.11 0.897n*SelecType 2 0.22 0.11 1.15 0.316n*Popsize 4 0.04 0.01 0.11 0.980n*Xrate 4 0.18 0.05 0.49 0.746n*Mrate 4 0.24 0.06 0.64 0.631n*IGArate 4 0.25 0.06 0.67 0.611m*XoverType 1 0.06 0.06 0.6 0.437m*SelecType 1 0.00 0.00 0.01 0.912m*Popsize 2 0.15 0.07 0.78 0.457m*Xrate 2 0.03 0.02 0.16 0.849m*Mrate 2 0.35 0.18 1.9 0.150m* IGArate 2 0.23 0.11 1.2 0.300XoverType*SelecType 1 0.01 0.01 0.09 0.763XoverType*Popsize 2 0.22 0.11 1.17 0.311XoverType*Xrate 2 0.09 0.04 0.46 0.630XoverType*Mrate 2 0.03 0.02 0.18 0.838XoverType*IGArate 2 0.04 0.02 0.2 0.822SelecType*Popsize 2 0.07 0.03 0.36 0.697SelecType*Xrate 2 0.26 0.13 1.37 0.255SelecType*Mrate 2 0.17 0.09 0.93 0.395SelecType*IGArate 2 0.14 0.07 0.75 0.470Popsize*Xrate 4 0.02 0.00 0.05 0.996Popsize*Mrate 4 0.19 0.05 0.5 0.736Popsize*IGArate 4 0.06 0.02 0.16 0.956Xrate*Mrate 4 0.08 0.02 0.21 0.934Xrate*IGArate 4 0.15 0.04 0.4 0.810Mrate*IGArate 4 0.4 0.1 1.07 0.367n*m*XoverType 2 0.01 0.01 0.06 0.941n*m*SelecType 2 11.72 5.86 62.62 0.000n*m*Popsize 4 0.12 0.03 0.31 0.872n*m*Xrate 4 0.08 0.02 0.21 0.933n*m*Mrate 4 0.19 0.05 0.51 0.729n*m*IGArate 4 0.27 0.07 0.72 0.578n*XoverType*SelecType 2 0.64 0.32 3.41 0.033n*XoverType*Popsize 4 0.07 0.02 0.2 0.940n*XoverType*Xrate 4 0.18 0.05 0.48 0.750n*XoverType*Mrate 4 0.17 0.04 0.45 0.770

54

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

Table 5.1 Analysis of Variance for RPD of the nronosed hybrid GA for solving the PFSP (continued).

n*XoverType*IGArate 4 0.32 0.08 0.85 0.490 n*SelecType*Popsize 4 0.08 0.02 0.21 0.936 n*SelecType*Xrate 4 0.05 0.01 0.12 0.974 n*SelecType*Mrate 4 0.11 0.03 0.3 0.880 n*SelecType*IGArate 4 0.04 0.01 0.11 0.979 n*Popsize*Xrate 8 0.31 0.04 0.41 0.916 n*Po size*Mrate 8 0.41 0.05 0.54 0.826 n*Popsize*IGArate 8 0.08 0.01 0.1 0.999 n*Xrate*Mrate 8 0.28 0.04 0.38 0.934 n*Xrate*IGArate 8 0.39 0.05 0.53 0.838 n*Mrate*IGArate 8 0.38 0.05 0.51 0.852 m*XoverType*SelecType 1 0.00 0.00 0.03 0.861 m*XoverType*Popsize 2 0.12 0.06 0.66 0.517 m*XoverType*Xrate 2 0.12 0.06 0.62 0.538 m*XoverType*Mrate 2 0.03 0.01 0.15 0.863 m*XoverType*IGArate 2 0.08 0.04 0.42 0.657 m*SelecType*Popsize 2 0.05 0.03 0.27 0.764 m*SelecType*Xrate 2 0.05 0.03 0.27 0.762 m*SelecType*Mrate 2 0.06 0.03 0.3 0.741 m*SelecType*IGArate 2 0.27 0.14 1.46 0.233 m*Popsize*Xrate 4 0.1 0.03 0.27 0.895 m*Popsize*Mrate 4 0.18 0.05 0.49 0.744 m*Popsize*IGArate 4 0.09 0.02 0.25 0.912 m*Xrate*Mrate 4 0.08 0.02 0.21 0.932 m*Xrate*IGArate 4 0.07 0.02 0.18 0.951 m*Mrate*IGArate 4 0.33 0.08 0.88 0.477 XoverType*SelecType*Popsize 2 0.05 0.03 0.29 0.751 XoverType*SelecType*Xrate 2 0.1 0.05 0.54 0.586 XoverType*SelecType*Mrate 2 0.04 0.02 0.2 0.817 XoverType*SelecType*IGArate 2 0.07 0.04 0.39 0.674 XoverType*Popsize*Xrate 4 0.19 0.05 0.52 0.722 XoverType*Popsize*Mrate 4 0.00 0.00 0.00 1.000 XoverType*Popsize*IGArate 4 0.27 0.07 0.72 0.577 XoverType*Xrate*Mrate 4 0.33 0.08 0.87 0.480 XoverType*Xrate*IGArate 4 0.58 0.15 1.55 0.183 XoverType*Mrate*IGArate 4 0.28 0.07 0.74 0.563 SelecType*Popsize*Xrate 4 0.15 0.04 0.4 0.811 SelecType*Popsize*Mrate 4 0.13 0.03 0.34 0.851 SelecType*Popsize*IGArate 4 0.11 0.03 0.28 0.891 SelecType*Xrate*Mrate 4 0.63 0.16 1.67 0.154 SelecType*Xrate*IGArate 4 0.01 0.00 0.04 0.997 SelecType*Mrate*IGArate 4 0.07 0.02 0.18 0.947 Popsize*Xrate*Mrate 8 0.21 0.03 0.28 0.973 Popsize*Xrate*IGArate 8 0.59 0.07 0.79 0.612 Popsize*Mrate*IGArate 8 0.3 0.04 0.4 0.922 Xrate*Mrate*IGArate 8 0.28 0.03 0.37 0.935 Error 38562 3609.02 0.09 Total 38879

55

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

Table 5.1 Analysis o f Variance for RPD o fthe proposed hybrid GA for solving the PFSP (continued).

n*XoverType*IGArate 4 0.32 0.08 0.85 0.490n*SelecType*Popsize 4 0.08 0.02 0.21 0.936n*SelecType*Xrate 4 0.05 0.01 0.12 0.974n*SelecType*Mrate 4 0.11 0.03 0.3 0.880n*SelecType*IGArate 4 0.04 0.01 0.11 0.979n*Popsize*Xrate 8 0.31 0.04 0.41 0.916n*Popsize*Mrate 8 0.41 0.05 0.54 0.826n*Popsize*IGArate 8 0.08 0.01 0.1 0.999n*Xrate*Mrate 8 0.28 0.04 0.38 0.934n*Xrate*IGArate 8 0.39 0.05 0.53 0.838n*Mrate*IGArate 8 0.38 0.05 0.51 0.852m* XoverType* SelecType 1 0.00 0.00 0.03 0.861m*XoverType*Popsize 2 0.12 0.06 0.66 0.517m*XoverType* Xrate 2 0.12 0.06 0.62 0.538m*XoverType*Mrate 2 0.03 0.01 0.15 0.863m*XoverType*IGArate 2 0.08 0.04 0.42 0.657m*SelecType*Popsize 2 0.05 0.03 0.27 0.764m*SelecType*Xrate 2 0.05 0.03 0.27 0.762m*SelecType*Mrate 2 0.06 0.03 0.3 0.741m*SelecType*IGArate 2 0.27 0.14 1.46 0.233m*Popsize*Xrate 4 0.1 0.03 0.27 0.895m*Popsize*Mrate 4 0.18 0.05 0.49 0.744m*Popsize*IGArate 4 0.09 0.02 0.25 0.912m*Xrate*Mrate 4 0.08 0.02 0.21 0.932m*Xrate*IGArate 4 0.07 0.02 0.18 0.951m*Mrate*IGArate 4 0.33 0.08 0.88 0.477XoverType*SelecType*Popsize 2 0.05 0.03 0.29 0.751XoverType*SelecType*Xrate 2 0.1 0.05 0.54 0.586XoverType*SelecType*Mrate 2 0.04 0.02 0.2 0.817XoverType*SelecType*IGArate 2 0.07 0.04 0.39 0.674XoverType*Popsize*Xrate 4 0.19 0.05 0.52 0.722XoverType*Popsize*Mrate 4 0.00 0.00 0.00 1.000XoverType*Popsize*IGArate 4 0.27 0.07 0.72 0.577XoverType * Xrate * Mrate 4 0.33 0.08 0.87 0.480XoverType*Xrate*IGArate 4 0.58 0.15 1.55 0.183XoverType*Mrate*IGArate 4 0.28 0.07 0.74 0.563SelecType*Popsize*Xrate 4 0.15 0.04 0.4 0.811SelecType*Popsize*Mrate 4 0.13 0.03 0.34 0.851SelecType*Popsize*IGArate 4 0.11 0.03 0.28 0.891SelecType*Xrate*Mrate 4 0.63 0.16 1.67 0.154SelecType*Xrate*IGArate 4 0.01 0.00 0.04 0.997SelecType*Mrate*IGArate 4 0.07 0.02 0.18 0.947Popsize*Xrate*Mrate 8 0.21 0.03 0.28 0.973Popsize*Xrate*IGArate 8 0.59 0.07 0.79 0.612Popsize*Mrate*IGArate 8 0.3 0.04 0.4 0.922Xrate*Mrate*IGArate 8 0.28 0.03 0.37 0.935Error 38562 3609.02 0.09Total 38879

55

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

Before discussing the ANOVA results presented in Table 5.1, one should perform

model adequacy checking, which is explained in Section 5.3.

5.3 Model Adequacy Checking for the Proposed Hybrid Algorithm

Adopting the results of the ANOVA is subjected to satisfaction of certain assumptions,

which are referred to as model adequacy checking [61]. The model adequacy checking

can be performed through examination of the residuals. According to [34], the residuals

can be defined as the differences between the responses observed at each combination

value of the factors and the corresponding prediction of the response computed using the

regression function. Consequently, in the aforementioned experiments, the residual for a

specific observation can be derived by calculating the difference between the (actual)

RPD and the value that the MINITAB predicts based on the regression model for that

particular observation.

Model adequacy checking consists of three tests; namely, a test of normality of

residuals, a test of residuals versus the factors (the residuals should be unrelated to any

factor, including the predicted response variable), and a test of residuals versus

observation order (the residuals should be run-independent). Validation of these

assumptions is investigated through a graphical residual analysis, which is generated by

MINITAB software in what follows [61].

In order to verify whether the residuals are distributed normally, the normal

probability plot and the histogram of residuals are used. The almost linear relationship

between residuals and percent axis (i.e., the normal probability plot) in Figure 5.1

56

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

Before discussing the ANOVA results presented in Table 5.1, one should perform

model adequacy checking, which is explained in Section 5.3.

5.3 Model Adequacy Checking for the Proposed Hybrid Algorithm

Adopting the results o f the ANOVA is subjected to satisfaction o f certain assumptions,

which are referred to as model adequacy checking [61]. The model adequacy checking

can be performed through examination of the residuals. According to [34], the residuals

can be defined as the differences between the responses observed at each combination

value of the factors and the corresponding prediction o f the response computed using the

regression function. Consequently, in the aforementioned experiments, the residual for a

specific observation can be derived by calculating the difference between the (actual)

RPD and the value that the MINITAB predicts based on the regression model for that

particular observation.

Model adequacy checking consists o f three tests; namely, a test o f normality of

residuals, a test o f residuals versus the factors (the residuals should be unrelated to any

factor, including the predicted response variable), and a test o f residuals versus

observation order (the residuals should be run-independent). Validation o f these

assumptions is investigated through a graphical residual analysis, which is generated by

MINITAB software in what follows [61].

In order to verify whether the residuals are distributed normally, the normal

probability plot and the histogram of residuals are used. The almost linear relationship

between residuals and percent axis (i.e., the normal probability plot) in Figure 5.1

56

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

indicates that residuals can be categorized as a normally distributed random variables. In

Figure 5.2, it is observed that the histogram of residuals is approximately symmetric and

bell-shaped, confirming the assumption of the normality of residuals17.

Normal Probability Plot of the Residuals (response is RPD)

a

99.99 -

99 -

95 - eo - so - 20 -

5 -

1 -

0.01-

-1.0 -0.5 0.0 Residual

0,5 1.0 1.5

Figure 5.1 Normal probability plot of the residuals (for the hybrid GA).

Histogram of the Residuals (response is RPD)

1600 -

1400 -

1200 -

1000 -

= 800 - er

600 -

400 -

200 -

-0 64 -0.32 0 00 032 0.64 0.96 Residual

1.28

Figure 5.2 Histogram of the residuals (for the hybrid GA).

17 According to the Engineering Statistics Handbook [34], "The normal probability plot helps us determine whether or not it is reasonable to assume that the random errors in a statistical process can be assumed to be drawn from a normal distribution. An advantage of the normal probability plot is that the human eye is very sensitive to deviations from a straight line that might indicate that the errors come from a non-normal distribution. However, when the normal probability plot suggests that the normality assumption may not be reasonable, it does not give us a very good idea what the distribution does look like. A histogram of the residuals from the fit, on the other hand, can provide a clearer picture of the shape of the distribution."

57

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

indicates that residuals can be categorized as a normally distributed random variables. In

Figure 5.2, it is observed that the histogram of residuals is approximately symmetric and

bell-shaped, confirming the assumption o f the normality o f residuals17.

Normal Probability Plot of the Residuals(response is RPD)

§£

0.01

- 1.0 -0.5 0.0 0.5 1.0 1.5Residual

Figure 5.1 Normal probability plot o f the residuals (for the hybrid GA).

Histogram of the Residuals(response is RPD)

1600

1400

1200

1000

5 8000)4 600

400

200

-0.96 -0.64 -0.32 0.00 0.32 0.64 0.96 1.28Residual

Figure 5.2 Histogram o f the residuals (for the hybrid GA).

17 According to the Engineering Statistics Handbook [34], “The normal probability plot helps us determine whether or not it is reasonable to assume that the random errors in a statistical process can be assumed to be drawn from a normal distribution. An advantage o f the normal probability plot is that the human eye is very sensitive to deviations from a straight line that might indicate that the errors come from a non-normal distribution. However, when the normal probability plot suggests that the normality assumption may not be reasonable, it does not give us a very good idea what the distribution does look like. A histogram o f the residuals from the fit, on the other hand, can provide a clearer picture o f the shape o f the distribution.”

57

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

As for the test of residuals versus the factors, the plot of residuals versus the n

(the number of jobs) is shown in Figure 5.3. It can be observed that the residuals are

scattered without any specific structure around n. More specifically, the variance of the

residuals versus n is almost constant, and the tendency for the variance of the residuals to

decrease as n increases is not significant.

Residuals Versus n (response is RPD)

1.5

1.0

0.5

0.0

-0.5

-1.0

50 75 100 125 n

150 175 200

Figure 5.3 Plot of the residuals versus n (for the hybrid GA).

1.5

1.0

0.5

1

1 0.0

-0.5

-1.0

Residuals Versus IGArate (response is RPD)

$

0.0050 0.0075 0.0100 0.0125 0.0150 IGArate

0.0175 0.0200

Figure 5.4 Plot of the residuals versus the probability of IGA (for the hybrid GA).

Similarly, the plot of residuals versus PIGA is investigated and no particular

relationship between the residuals and PIGA is observed (See Figure 5.4). The plots of the

58

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

As for the test o f residuals versus the factors, the plot o f residuals versus the n

(the number o f jobs) is shown in Figure 5.3. It can be observed that the residuals are

scattered without any specific structure around n. More specifically, the variance o f the

residuals versus n is almost constant, and the tendency for the variance o f the residuals to

decrease as n increases is not significant.

Residuals Versus n(response is RPD)

115 o.o

-0.5-

50 75 100 125 150 175 200n

Figure 5.3 Plot o f the residuals versus n (for the hybrid GA).

Residuals Versus IGArate (response is RPD)

1.5 A

1s*

-0.5-

0.02000.0050 0.0100 0.0125 0.0150 0,0175IGArate

Figure 5.4 Plot o f the residuals versus the probability o f IGA (for the hybrid GA).

Similarly, the plot o f residuals versus P ig a is investigated and no particular

relationship between the residuals and P ig a is observed (See Figure 5.4). The plots o f the

58

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

residuals versus other factors, including the predicted response variable (which is

statistically referred to as the fitted value) were investigated and none of them depicted a

particular relationship (see Appendix A).

The last step in model adequacy checking is the test of residuals versus the

observation order. In Figures 5.5a through 5.5d, the plot of residuals versus the

observation order is presented. Since no tendency1 8 to have runs of positive and negative

residuals is observed in this plot, it can be stated that no clear pattern is observed in this

plot, and consequently, the residuals are run-independent.

Residuals Versus the Order of the Data

0.5

ed 3 0

a

w

Ce

-0.5

-1

1 i I I 1 I 1000 5000 6000 7000 W 0OO 90D3 1001 0 11001 0

Observation Figure 5.5a Plot of the residuals versus the observation order (for the hybrid GA).

18 Since the number of observations is 38,880, representing all observations in one single plot will not be illustrative enough to detect the possible structure of residuals versus their order. Therefore, the plot of the residuals versus the observation order was divided into four groups. The results are shown in Figures 5.5a-5.5d.

59

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

residuals versus other factors, including the predicted response variable (which is

statistically referred to as the fitted value) were investigated and none of them depicted a

particular relationship (see Appendix A).

The last step in model adequacy checking is the test o f residuals versus the

observation order. In Figures 5.5a through 5.5d, the plot o f residuals versus the

observation order is presented. Since no tendency18 to have runs o f positive and negative

residuals is observed in this plot, it can be stated that no clear pattern is observed in this

plot, and consequently, the residuals are run-independent.

Residuals Versus the Order of the DataT I I I I I I I------------------1----------------- 1----------------- T

-1 -

_______ I__________ I__________ I__________ I__________ I__________ I__________ I__________ I__________ I__________ I__________ l_1000 2000 3000 4000 5000 6000 7000 8000 9000 10000 11000

ObservationFigure 5.5a Plot o f the residuals versus the observation order (for the hybrid GA).

18 Since the number o f observations is 38,880, representing all observations in one single plot will not be illustrative enough to detect the possible structure o f residuals versus their order. Therefore, the plot o f the residuals versus the observation order was divided into four groups. The results are shown in Figures 5.5a- 5.5d.

59

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

Residuals Versus the Order of the Data

0.5

-0.5

-1

0.5

-0.5

1.2 1.4 1.6

Observation x idsFigure 5.5b Plot of the residuals versus the observation order (for the hybrid GA).

1.8

Residuals Versus the Order of the Data

2

2.2 2.4 2.6 2.8

Observation

Figure 5.5c Plot of residuals versus the observation order (for the hybrid GA).

60

3

x

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

Res

idua

l

Residuals Versus the Order of the Datat--------------------------- 1--------------------------- 1----------------------------1--------------------------- 1--------------------------- r

-1 -

j ____________________i___________________ i____________________i____________________i___________________ i_______________1 1.2 1.4 1.6 1.8 2

Observation x 104

Figure 5.5b Plot o f the residuals versus the observation order (for the hybrid GA).

Residuals Versus the Order of the Data1 I I 1 I T

-1 -

2.2 2.4 2.6 2.8Observation

Figure 5.5c Plot o f residuals versus the observation order (for the hybrid GA).

60

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

Residuals Versus the Order of the Data

7 :0

0.5

-0.5

I I 3.1

1 1 1 1 3.2 3.3 3.4 3.5 3.6 3.7

3.8 3.9

Observation x le Figure 5.5d Plot of the residuals versus the observation order (for the hybrid GA).

5.4 Interpreting the Results of ANOVA for the Proposed Hybrid Algorithm

The name 'analysis of variance' is derived from decomposing of total variability of data

into variability arising from factors and their interaction individually. Discussing the

mathematical equations of ANOVA is beyond the scope of this thesis and the interested

reader is referred to [61]. Here, the general notions used in ANOVA Table (i.e., Table

5.1) are explained. Table 5.1 contains the following columns:

• "Factor", which indicates the involved factors and their interactions in the

statistical model.

61

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

Residuals Versus the Order of the DataT-----------------1-----------------1-----------------1-----------------1-----------------1-----------------1-----------------1-----------------1-----------------T

-1 -

J ____________I____________I____________I____________I____________I____________I____________I____________ I____________l_ l3 3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9

Observation x 104

Figure 5.5d Plot o f the residuals versus the observation order (for the hybrid GA).

5.4 Interpreting the Results of ANOVA for the Proposed Hybrid Algorithm

The name ‘analysis o f variance’ is derived from decomposing o f total variability o f data

into variability arising from factors and their interaction individually. Discussing the

mathematical equations o f ANOVA is beyond the scope o f this thesis and the interested

reader is referred to [61]. Here, the general notions used in ANOVA Table (i.e., Table

5.1) are explained. Table 5.1 contains the following columns:

• “Factor”, w h ich indicates the involved factors and their interactions in the

statistical m odel.

61

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

• "Sum of Squares", which denotes the measure of variability in data arising

from each factor. The sum of Squares for the "Error" denotes how much of

the variance in the data is accounted for random error. (see [61] for detail).

• "Degrees of Freedom", which indicates the number of degrees of freedom of

the sum of squares associated with each factor (see [61] for detail).

• "Mean Square", which is obtained through dividing the sum of squares by its

associated number of degrees of freedom.

• "F-value", which is equal to the mean square for the factor divided by the

mean square for the error. The F-value (also referred to as F-statistic) follows

an F distribution (see [61] for detail). The value of this statistic signifies

whether the null or the alternative hypothesis is accepted. As a substitute, the

column "P-value" can be employed in hypothesis-testing (see [61] for detail).

In order to recognize whether the null or alternative hypothesis is accepted for

each factor, the associated P-value of Table 5.1 is employed here. The P-value can be

defined as the smallest level of significance19 that would lead to rejection of the null

hypothesis. The predetermined level of significance of 0.05 is normally applied in

hypothesis testing, which is adopted in this thesis as well.

As it can be observed from Table 5.1, the P-values for factors n, m,

SelectionType, and MutationProbability are smaller than 0.05 (the predetermined level of

significance). Also, the P-values for some interactions, namely ( n x m ),

(nxCrossoverTypexSelectionType) and (n x m x SelectionType) are less than 0.05.

19 As stated earlier, the level of significance is the probability of rejection of the null hypothesis when it is true [61].

62

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

• “Sum of Squares”, which denotes the measure o f variability in data arising

from each factor. The sum of Squares for the “Error” denotes how much of

the variance in the data is accounted for random error, (see [61] for detail).

• “Degrees o f Freedom”, which indicates the number o f degrees o f freedom of

the sum of squares associated with each factor (see [61] for detail).

• “Mean Square”, which is obtained through dividing the sum of squares by its

associated number o f degrees o f freedom.

• “F-value”, which is equal to the mean square for the factor divided by the

mean square for the error. The F-value (also referred to as F-statistic) follows

an F distribution (see [61] for detail). The value o f this statistic signifies

whether the null or the alternative hypothesis is accepted. As a substitute, the

column “F-value” can be employed in hypothesis-testing (see [61] for detail).

In order to recognize whether the null or alternative hypothesis is accepted for

each factor, the associated P-value of Table 5.1 is employed here. The P-value can be

defined as the smallest level o f significance19 that would lead to rejection o f the null

hypothesis. The predetermined level o f significance o f 0.05 is normally applied in

hypothesis testing, which is adopted in this thesis as well.

As it can be observed from Table 5.1, the P-values for factors n, m,

SelectionType, and MutationProbability are smaller than 0.05 (the predetermined level of

significance). Also, the P-values for some interactions, namely ( n x m ),

(nxCrossoverTypexSelectionType) and (nxm xSelectionType) are less than 0.05.

19 As stated earlier, the level o f significance is the probability o f rejection o f the null hypothesis when it is true [61].

62

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

Therefore, null hypotheses are rejected for these terms, indicating that factors n, m,

SelectionType, and MutationProbability are influential on RPD. It is noteworthy that n

and m are uncontrollable factors and they are directly related to the problem at hand.

Furthermore, the three aforementioned terms, namely ( n x m),

(n x CrossoverType x SelectionType), and (n x mx SelectionType) are uncontrollable,

since they contain at least one of the two uncontrollable factors. In the next section, the

impact of SelectionType and MutationProbability will be investigated on the response

variable.

As for the remaining factors and their interactions, it can be observed that their

corresponding P-values are greater than 0.05, indicating that the null hypothesis should

be accepted for them. The statistical interpretation behind the acceptance of the null

hypothesis is that the obtained observations do not give enough evidence in support of

significant difference in the average RPD across the levels of those factors and their

interactions. Therefore, it can be concluded that the factors, or terms that have P-values

of greater than 0.05, are not influential on the overall performance of the proposed hybrid

genetic algorithm.

5.5 Plots of Main Effects and Their Interactions for the Proposed Hybrid Algorithm

In this section, SelectionType and MutationProbability are tuned by making use of the

plots of main effects and their interactions. The procedure for tuning these two

parameters is as follows: between these two factors, SelectionType (the factor that has a

lower P-value), is tuned first. In fact, the lower the P-value is, the more impact that factor

can have on the response variable.

63

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

Therefore, null hypotheses are rejected for these terms, indicating that factors n, m,

SelectionType, and MutationProbability are influential on RPD. It is noteworthy that n

and m are uncontrollable factors and they are directly related to the problem at hand.

Furthermore, the three aforementioned terms, namely ( n x m ) ,

( n x CrossoverType x Selection Type), and ( n x m x Selection Type) are uncontrollable,

since they contain at least one o f the two uncontrollable factors. In the next section, the

impact o f SelectionType and MutationProbability will be investigated on the response

variable.

As for the remaining factors and their interactions, it can be observed that their

corresponding P-values are greater than 0.05, indicating that the null hypothesis should

be accepted for them. The statistical interpretation behind the acceptance of the null

hypothesis is that the obtained observations do not give enough evidence in support of

significant difference in the average RPD across the levels o f those factors and their

interactions. Therefore, it can be concluded that the factors, or terms that have P-values

o f greater than 0.05, are not influential on the overall performance o f the proposed hybrid

genetic algorithm.

5.5 Plots of Main Effects and Their Interactions for the Proposed Hybrid Algorithm

In this section, SelectionType and MutationProbability are tuned by making use o f the

plots o f main effects and their interactions. The procedure for tuning these two

parameters is as follows: between these two factors, SelectionType (the factor that has a

lower P-value), is tuned first. In fact, the lower the P-value is, the more impact that factor

can have on the response variable.

63

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

The plots for main effects of SelectionType and MutationProbability are shown in

Figure 5.6. The difference between the mean of RPD for SelectionType 1 and

SelectionType 2 is greater than the difference between the mean of RPD for

MutationProbability of 0.10 and MutationProbability of 0.20. In other words, this plot

confirms the fact that the SelectionType has more influence on the response variable as

compared to the factor MutationProbability.

Main Effects Plot (data means) for RPD

0.96

0.95

0.94

0.93

0.92

Selection Type Mutaion Prob.

2 0.10 0.15 0.20

Figure 5.6 Plot of the main effects of the selection type and mutation probability for the hybrid GA.

In Figure 5.7, it can be observed that the SelectionType of the tournament

selection (denoted by 1) is more effective as compared to the rank-based selection

(denoted by 2). Considering the SelectionType of the tournament for the algorithm, it is

also of interest to determine what mutation probability is more effective for the

algorithm. It can be seen from Figure 5.7 that the mutation probability of 0.1 is more

effective on the response variable.

As mentioned in the previous section, the other factors and their interactions are

not influential on the RPD. However, through Figure 5.8 it can be seen that the following

64

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

The plots for main effects of SelectionType and MutaiionProbability are shown in

Figure 5.6. The difference between the mean o f RPD for SelectionType 1 and

SelectionType 2 is greater than the difference between the mean o f RPD for

MutationProbability o f 0.10 and MutationProbability o f 0.20. In other words, this plot

confirms the fact that the SelectionType has more influence on the response variable as

compared to the factor MutationProbability.

Main Effects Plot (data means) for RPDSelection Type Mutaion Prob.

0.96

0.95

'S 0.94

0.93

0.92

2 0.10 0.201 0.15

Figure 5.6 Plot o f the main effects o f the selection type and mutation probability for the hybrid GA.

In Figure 5.7, it can be observed that the SelectionType o f the tournament

selection (denoted by 1) is more effective as compared to the rank-based selection

(denoted by 2). Considering the SelectionType o f the tournament for the algorithm, it is

also of interest to determine what mutation probability is more effective for the

algorithm. It can be seen from Figure 5.7 that the mutation probability o f 0.1 is more

effective on the response variable.

As mentioned in the previous section, the other factors and their interactions are

not influential on the RPD. However, through Figure 5.8 it can be seen that the following

64

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

remaining parameters give slightly better results: crossover type 2 (i.e., SBOX),

population size of 40, crossover probability of 0.60, and IGA probability of 0.02.

Interaction Plot (data means) for RPD 0.97 -

0.96

0.95 -

0.94 -

0.93 -

0.92 •

0.91 -

-

0.10 0.15 Mutaion Prob.

0.20

Selection Type

—0— 1 — 2 M--

Figure 5.7 Plot of the interaction between the selection type and the mutation rate for the hybrid GA.

Main Effects Plot (data means) for RPD

Crossover Type Pop. Size

0.942

0.940

0.938 Mean RPD

p 0.936 0.

0.934 0 1 2 20 40 60 C ao Crossover Prob. IGA Prob. to

0.942

0.940

0.938

0.936

0.934 0.4 0.6 0.8 0.005 0.010 0.020

Figure 5.8 Plots of the main effects of the crossover type, population size, crossover probability and IGA probability (for the hybrid GA).

65

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

remaining parameters give slightly better results: crossover type 2 (i.e., SBOX),

population size o f 40, crossover probability of 0.60, and IGA probability o f 0.02.

Interaction Plot (data means) for RPD0.97

0.96

0.95

| 0.94

0.93

0.92

0.910.10 0.15 0.20

SelectionTyp«1

2

Mutaion Prob.

Figure 5.7 Plot o f the interaction between the selection type and the mutation rate for the hybrid GA.

Main Effects Plot (data m eans) for RPD

0.942

0.940 H

0.938

0.936

0.934

0.942

0.940

0.938

0.936

0.934

Crossover Type Pop. Size

Mean RPD\

1 2 20 40 60Crossover Prob. IGA Prob.

0.4 0.6 0.8 0.005 0.010 0.020

Figure 5.8 Plots o f the main effects o f the crossover type, population size, crossover probability and IGA probability (for the hybrid GA).

65

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

The hybrid GA was tuned with the aforementioned set of parameters and was run

ten times against each of the 110 instances of Taillard (labeled ta001 to tal 10). Since

these 110 instances contain 11 distinct problem sizes (i.e., for each problem size, ten

instances are available) the results are averaged over problem sizes and are given in

Table 5.2. The detailed results of these 10 runs, which are individually averaged on the

110 instances, are given in Section 5.7.

Table 5.2 Average RPD for different problems sizes of Taillard's benchmarks obtained by ten runs of the tuned hybrid GA.

Instances Instance Size Obtained RPD by

hybrid GA ta001-ta010 20x5 0.04

ta011-ta020 20 x10 0.03 ta021-ta030 20x20 0.03 ta031-ta040 50x5 0.01

ta041-ta050 50x 10 0.73 ta051-ta060 50x20 1.18

ta061-ta070 100x5 0.01 ta071-ta080 100x10 0.26 ta081-ta090 100x20 1.63 ta091-ta100 200x 10 0.23

ta101-ta1 10 200x20 1.54

In regard to the implementation of full factorial design, the non-hybrid GA needs

to be investigated separately. The reason is that the normality assumptions of the model

adequacy checking are not satisfied where observations of the non-hybrid GA are added

to 38,880 observations of the hybrid GA. Therefore, the parameters of the non-hybrid GA

were tuned separately, and the results are explained in Section 5.6.

66

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

The hybrid GA was tuned with the aforementioned set o f parameters and was run

ten times against each o f the 110 instances of Taillard (labeled taOOl to ta llO ). Since

these 110 instances contain 11 distinct problem sizes (i.e., for each problem size, ten

instances are available) the results are averaged over problem sizes and are given in

Table 5.2. The detailed results o f these 10 runs, which are individually averaged on the

110 instances, are given in Section 5.7.

Table 5.2 Average RPD for different problems sizes o f Taillard's benchmarks obtained by ten runs o f the tuned hybrid GA.

Instances Instance SizeObtained RPD by

hybrid GAtaOOl-taOlO 20x5 0.04ta011-ta020 20x10 0.03ta021-ta030 20x20 0.03ta031-ta040 50x5 0.01ta041-ta050 50x10 0.73ta051-ta060 50x20 1.18ta061-ta070 100x5 0.01ta071-ta080 100x10 0.26ta081-ta090 100x20 1.63ta091-tal00 200x10 0.23talO l-tallO 200x20 1.54

In regard to the implementation o f full factorial design, the non-hybrid GA needs

to be investigated separately. The reason is that the normality assumptions o f the model

adequacy checking are not satisfied where observations o f the non-hybrid GA are added

to 38,880 observations o f the hybrid GA. Therefore, the parameters o f the non-hybrid GA

were tuned separately, and the results are explained in Section 5.6.

66

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

5.6 Tuning the Proposed Non-Hybrid GA

In this section, the case of PIGA = 0 is individually investigated (i.e., the non-hybrid GA).

The rationale behind considering this case individually is that by adding the observations

associated with PIGA = 0 to the observations of the hybrid algorithm, the model adequacy

checking of ANOVA (discussed in Section 5.3) is not satisfied.

In order to tune the parameters of the non-hybrid GA, the full factorial

experimental design for all possible combinations of the following factors is carried out:

population size (20, 40, and 60), selection type (rank-based selection, and tournament),

crossover type (SBOX, and LCSX), crossover probability (0.4, 0.6, and 0.8), and

mutation probability (0.1, 0.15, and 0.20). PIGA

combinations are investigated.

is set to zero and, therefore, 108

The same thirty instances of Taillard, which were employed in the

implementation of the full factorial experimental design of the hybrid algorithm, were

used here as well. Three replicates, with the aforementioned combination of parameters,

were considered and consequently 9,720 observations were carried out. Similarly, the

analysis of variance, and the model adequacy checking were investigated. The ANOVA

table and the plots of residuals for the non-hybrid GA are given in Appendix B and

Appendix C, respectively. It can be observed that the residuals follow a normal

distribution. Additionally, the residuals are not related to any factor and they are run-

independent. Therefore, one can rely on the obtained observations of the non-hybrid GA.

The P-values of the ANOVA table for the non-hybrid GA (given in Appendix B)

are zero for all factors, meaning that all factors are statistically influential on the response

67

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

5.6 Tuning the Proposed Non-Hybrid GA

In this section, the case o f P i g a - 0 is individually investigated (i.e., the non-hybrid GA).

The rationale behind considering this case individually is that by adding the observations

associated with P i g a = 0 to the observations o f the hybrid algorithm, the model adequacy

checking o f ANOVA (discussed in Section 5.3) is not satisfied.

In order to tune the parameters o f the non-hybrid GA, the full factorial

experimental design for all possible combinations o f the following factors is carried out:

population size (20, 40, and 60), selection type (rank-based selection, and tournament),

crossover type (SBOX, and LCSX), crossover probability (0.4, 0.6, and 0.8), and

mutation probability (0.1, 0.15, and 0.20). P i g a is set to zero and, therefore, 108

combinations are investigated.

The same thirty instances of Taillard, which were employed in the

implementation o f the full factorial experimental design of the hybrid algorithm, were

used here as well. Three replicates, with the aforementioned combination of parameters,

were considered and consequently 9,720 observations were carried out. Similarly, the

analysis o f variance, and the model adequacy checking were investigated. The ANOVA

table and the plots of residuals for the non-hybrid GA are given in Appendix B and

Appendix C, respectively. It can be observed that the residuals follow a normal

distribution. Additionally, the residuals are not related to any factor and they are run-

independent. Therefore, one can rely on the obtained observations o f the non-hybrid GA.

The P-values o f the ANOVA table for the non-hybrid GA (given in Appendix B)

are zero for all factors, meaning that all factors are statistically influential on the response

67

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

variable. Since all P-values are zero, F-values are employed in order to determine the

order of importance of the factors in the non-hybrid GA. The higher the F-value is, the

more influential that factor is on the response variable. Therefore, it can be observed that

the order of importance of the controllable factors in the non-hybrid GA is as follows:

CrossoverType, SelectionType, PopulationSize, Crossover Probability, and Mutation

Probability.

Plots of main effects (the main factors) and their interaction are employed in order

to find the parameters that produce the lowest RPD. Based on the Figures 5.9 and 5.10, it

is concluded that the following set of parameters is the optimal combination for the non-

hybrid GA: crossover type 2 (i.e., SBOX), selection type 2 (i.e., rank-based selection),

population size of 60, crossover probability of 0.40, and mutation probability of 0.20.

Main Effects Plot (data means) for RPD

Mean o

f RP

D

8

7

6

5

4

8

7

6

5

4

Crossover Type Selection Type PopulationSize

Mean RPD •—_____ ie---_.

2 2

Crossover Prob. Mutation Prob.

rr

0.4 0.6 0.8 0.10 0.15 0.20

20 40

Figure 5.9 Plots of main effects for the non-hybrid GA.

68

60

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

variable. Since all P-values are zero, F-values are employed in order to determine the

order of importance o f the factors in the non-hybrid GA. The higher the F-value is, the

more influential that factor is on the response variable. Therefore, it can be observed that

the order o f importance o f the controllable factors in the non-hybrid GA is as follows:

CrossoverType, SelectionType, PopulationSize, Crossover Probability, and Mutation

Probability.

Plots o f main effects (the main factors) and their interaction are employed in order

to find the parameters that produce the lowest RPD. Based on the Figures 5.9 and 5.10, it

is concluded that the following set o f parameters is the optimal combination for the non­

hybrid GA: crossover type 2 (i.e., SBOX), selection type 2 (i.e., rank-based selection),

population size o f 60, crossover probability o f 0.40, and mutation probability o f 0.20.

Main Effects Plot (data means) for RPDSelection TypeCrossover Type

Mean RPD

C rossover Prob.

0.4 0.$ 0.10 0.15 0.20

Figure 5.9 Plots o f m ain effects for the non-hybrid GA.

68

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

1 2 3? 19 61? OA 0)5 011 0.10 0.15 0.20

Crossover

Crossover Type -7 -6 —0-

Type 1

•-- —s— -s M— — -5 --MI— 2 -4

Selection

Selection Type - 7 -6

Type 1

-5 2

— ♦ — —II —M — —IN -4

PopulationSize

PopulationSize -7 -6 —a-

20

-5 -4

Crossover

Crossover Prob. -7 -6

- a -Prob,

OA -5 -a— 0,6 -4 02

Mutation Prob.

Figure 5.10 Interaction plots for the Non-hybrid GA.

The mean20 of the RPD for the non-hybrid GA can be observed through the

horizontal line illustrated in Figure 5.9. As it can be observed, the mean of RPD for the

non-hybrid GA is greater than 5.5 (its exact value is 5.651). The obtained mean of the

RPD for the hybrid GA is 0.938 (see the horizontal line illustrated in Figure 5.8).

Consequently, the mean of the RPD for the non-hybrid GA is significantly higher than

that of the hybrid GA. In other words, the hybridization of the GA with the IGA yields

significantly better results as compared with the non-hybrid GA.

As in the hybridization of the GA, the IGA was employed and significantly better

results were obtained, the IGA was also independently run in order to realize whether the

20 It is noteworthy to mention that here for the calculation of the mean of RPD, 30 instances of Taillard were used. See Section 5.1 for details.

69

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

CrossoverTypeCrossover Type

SelectionTypeSelection Type

PopulationSize

CrossoverProb,

Q.AQjfi

______Q£

Crossover Prob.

Mutation Prob.

Figure 5.10 Interaction plots for the Non-hybrid GA.

70The mean o f the RPD for the non-hybrid GA can be observed through the

horizontal line illustrated in Figure 5.9. As it can be observed, the mean o f RPD for the

non-hybrid GA is greater than 5.5 (its exact value is 5.651). The obtained mean o f the

RPD for the hybrid GA is 0.938 (see the horizontal line illustrated in Figure 5.8).

Consequently, the mean of the RPD for the non-hybrid GA is significantly higher than

that of the hybrid GA. In other words, the hybridization of the GA with the IGA yields

significantly better results as compared with the non-hybrid GA.

As in the hybridization of the GA, the IGA was employed and significantly better

results were obtained, the IGA was also independently run in order to realize whether the

20 It is noteworthy to mention that here for the calculation o f the mean o f RPD, 30 instances o f Taillard were used. See Section 5.1 for details.

69

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

GA played any role in the overall performance of the proposed hybrid algorithm21. If

employing the GA has not been helpful at all, one would prefer to allocate all the

mentioned CPU time to the IGA. The other question that arises is on the performance of

the stand-alone GA (the proposed non-hybrid GA) in the long run. In other words, the

GA has been run on a relatively short CPU time, and since the GA is a population based

search technique, it might not be fair to compare its results with those of IGA over the

same CPU time. These two issues will be addressed in the next sections. More

specifically, in Section 5.7 the performance of the stand-alone IGA is tested on the

benchmarks of Taillard. Then, this performance is compared with that of the hybrid GA.

In Section 5.8 the performance of the non-hybrid GA is investigated over a long period of

time.

5.7 Performance of the stand-alone IGA and its Comparison with the Hybrid GA

A time-dependent termination condition of n x m x 90 milliseconds is considered for the

implemented IGA, where n and m are the number of jobs and machines, respectively. In

fact, this is the same termination condition adopted for the hybrid GA (discussed in

Section 4.1.5). The stand-alone IGA was run ten times for each of the 110 instances of

Taillard and the results, which are averaged on problem size, are given in Table 5.3. In

this table, the results of hybrid GA (discussed in Section 5.5) are also presented for the

sake of comparison.

21 It is worth mentioning that the IGA of Ruiz et al. [47] has been experimentally proven to be very effective. In fact, Ruiz et al. compared the IGA against the other twelve algorithms, and they showed that their IGA outperformed all of them.

70

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

0 1GA played any role in the overall performance o f the proposed hybrid algorithm . If

employing the GA has not been helpful at all, one would prefer to allocate all the

mentioned CPU time to the IGA. The other question that arises is on the performance of

the stand-alone GA (the proposed non-hybrid GA) in the long run. In other words, the

GA has been run on a relatively short CPU time, and since the GA is a population based

search technique, it might not be fair to compare its results with those of IGA over the

same CPU time. These two issues will be addressed in the next sections. More

specifically, in Section 5.7 the performance o f the stand-alone IGA is tested on the

benchmarks o f Taillard. Then, this performance is compared with that o f the hybrid GA.

In Section 5.8 the performance o f the non-hybrid GA is investigated over a long period of

time.

5.7 Performance of the stand-alone IGA and its Comparison with the Hybrid GA

A time-dependent termination condition o f n x m x 90 milliseconds is considered for the

implemented IGA, where n and m are the number o f jobs and machines, respectively. In

fact, this is the same termination condition adopted for the hybrid GA (discussed in

Section 4.1.5). The stand-alone IGA was run ten times for each o f the 110 instances of

Taillard and the results, which are averaged on problem size, are given in Table 5.3. In

this table, the results o f hybrid GA (discussed in Section 5.5) are also presented for the

sake of comparison.

21 It is worth mentioning that the IGA o f Ruiz et al. [47] has been experimentally proven to be very effective. In fact, Ruiz et al. compared the IGA against the other twelve algorithms, and they showed that their IGA outperformed all o f them.

70

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

As seen in Table 5.3, the average RPD obtained by the hybrid GA is at least as

good as the average of RPD obtained by the stand-alone IGA, except the problem size of

200x10.

The detailed comparative results for these instances are given in Tables 5.4-5.15.

In these tables, the results of 10 runs of the stand-alone IGA and hybrid GA are

individually averaged for each instance.

In Table 5.4, it can be observed that both stand-alone IGA, and hybrid GA can

obtian the optimal solution for all instances with the size 20x5, except for instace Tabled

ta007. More specifically, the optiml solution for ta007 was not obtained after 10 trials

(runs) of the hybrid GA. The stand-alone IGA could not achieve the optimal solution for

ta007 as well.

Table 5.3 Average RPD for different instance sizes of Taillard's benchmarks obtained by the stand-alone IGA, and the hybrid GA.

Instances Instance Size

Obtained RPD by the

stand-alone IGA

Obtained RPD by the hybrid GA

ta001-ta010 20x5 0.04 0.04

ta011-ta020 20x10 0.04 0.03

ta021-ta030 20x20 0.03 0.03

ta031-ta040 50x5 0.01 0.01 ta041-ta050 50x 10 0.78 0.73

ta051-ta060 50x20 1.23 1.18

ta061-ta070 100x5 0.01 0.01 ta071-ta080 100x10 0.28 0.26 ta081-ta090 100x20 1.72 1.63 ta091-ta100 200x 10 0.21 0.23 ta101-tall0 200x20 1.63 1.54

71

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

As seen in Table 5.3, the average RPD obtained by the hybrid GA is at least as

good as the average o f RPD obtained by the stand-alone IGA, except the problem size of

200x10.

The detailed comparative results for these instances are given in Tables 5.4-5.15.

In these tables, the results o f 10 runs o f the stand-alone IGA and hybrid GA are

individually averaged for each instance.

In Table 5.4, it can be observed that both stand-alone IGA, and hybrid GA can

obtian the optimal solution for all instances with the size 20x5, except for instace labled

ta007. More specifically, the optiml solution for ta007 was not obtained after 10 trials

(runs) o f the hybrid GA. The stand-alone IGA could not achieve the optimal solution for

ta007 as well.

Table 5.3 Average RPD for different instance sizes o f Taillard's benchmarks obtained by the stand-alone IGA, and the hybrid GA.

Instances Instance Size

Obtained RPD by the

stand-alone IGA

Obtained RPD by the hybrid GA

taOOl-taOlO 20x5 0.04 0.04ta011-ta020 20x10 0.04 0.03ta021-ta030 20x20 0.03 0.03ta031-ta040 50x5 0.01 0.01ta041-ta050 50x10 0.78 0.73ta051-ta060 50x20 1.23 1.18ta061-ta070 100x5 0.01 0.01ta071-ta080 100x10 0.28 0.26ta081-ta090 100x20 1.72 1.63ta091-tal00 200x10 0.21 0.23talO l-tallO 200x20 1.63 1.54

71

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

Table 5.4 Average RPD obtained by the stand-alone IGA, and the hybrid GA for different Taillard's instances with the size of 20x5.

Instances Instance Size Obtained RPD by stand-alone

IGA

Obtained RPD by

hybrid GA

ta001 20x5 0.00 0.00 ta002 20x5 0.00 0.00 ta003 20x5 0.00 0.00 ta004 20x5 0.00 0.00

ta005 20x5 0.00 0.00

ta006 20x5 0.00 0.00 ta007 20x5 0.40 0.40 ta008 20x5 0.00 0.00

ta009 20x5 0.00 0.00

ta010 20x5 0.00 0.00

Table 5.5 Average RPD obtained by the stand-alone IGA, and the hybrid GA for different Taillard's instances with the size of 20x10.

Instances Instance Size Obtained RPD by stand-alone

IGA

Obtained RPD by

hybrid GA ta011 20x 10 0.00 0.00

ta012 20x10 0.01 0.00

ta013 20x10 0.11 0.07 ta014 20x10 0.00 0.00

ta015 20x10 0.00 0.00

ta016 20x10 0.00 0.00

ta017 20x10 0.00 0.00

ta018 20x 10 0.15 0.22 ta019 20x10 0.00 0.00

ta020 20 x10 0.13 0.04

72

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

Table 5.4 Average RPD obtained by the stand-alone IGA, and the hybrid GAfor different Taillard's instances with the size o f 20x5.

Instances Instance SizeObtained RPD by stand-alone

IGA

Obtained RPD by

hybrid GAtaOOl 20x5 0.00 0.00ta002 20x5 0.00 0.00ta003 20x5 0.00 0.00ta004 20x5 0.00 0.00ta005 20x5 0.00 0.00ta006 20x5 0.00 0.00ta007 20x5 0.40 0.40ta008 20x5 0.00 0.00ta009 20x5 0.00 0.00taOlO 20x5 0.00 0.00

Table 5.5 Average RPD obtained by the stand-alone IGA, and the hybrid GA for different Taillard's instances with the size o f 20x10.

Instances Instance SizeObtained RPD by stand-alone

IGA

Obtained RPD by

hybrid GAtaOll 20x10 0.00 0.00ta012 20x10 0.01 0.00ta013 20x10 0.11 0.07ta014 20x10 0.00 0.00ta015 20x10 0.00 0.00ta016 20x10 0.00 0.00ta017 20x10 0.00 0.00ta018 20x10 0.15 0.22ta019 20x10 0.00 0.00ta020 20x10 0.13 0.04

72

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

Table 5.5 shows that the hybrid GA is slightly better than the stand-alone IGA on

instances ta012, ta013, and ta020. Whereas, the stand-alone IGA outperforms the hybrid

GA on ta018 with a slim margin.

It can be stated that the overal perfromance of the stand-alone IGA and the hybrid

GA are similar over the instances with sizes 20x20, 50x5, 50x10, 50x20, 100x5, 100x10.

More specifically, in some cases, such as ta026 and ta032, the performance of the hybrid

GA is slightly better than that of the stand-alone IGA. On the other hand, the

performance of the stand-alone IGA for some cases, such as ta025 and ta041, is better

than that of the hybrid GA. The slight advantage of the hybrid GA is more apparent for

the instances with the size of 100x20 and 200x20. The corresponding results are given in

Tables 5.12 and 5.14, respectively.

Table 5.6 Average RPD obtained by the stand-alone IGA, and the hybrid GA for different Taillard's instances with the size of 20x20.

Instances Instance Size Obtained RPD

stand-alone IGA

Obtained RPD by

hybrid GA ta021 20x20 0.00 0.01

ta022 20x20 0.03 0.04

ta023 20x20 0.10 0.09 ta024 20x20 0.00 0.00

ta025 20x20 0.05 0.11

ta026 20x20 0.07 0.04 ta027 20x20 0.00 0.01

ta028 20x20 0.02 0.00 ta029 20x20 0.02 0.00 ta030 20x20 0.01 0.01

73

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

Table 5.5 shows that the hybrid GA is slightly better than the stand-alone IGA on

instances ta012, taOl 3, and ta020. Whereas, the stand-alone IGA outperforms the hybrid

GA on ta018 with a slim margin.

It can be stated that the overal perffomance of the stand-alone IGA and the hybrid

GA are similar over the instances with sizes 20x20, 50x5, 50x10, 50x20, 100x5, 100x10.

More specifically, in some cases, such as ta026 and ta032, the performance o f the hybrid

GA is slightly better than that of the stand-alone IGA. On the other hand, the

performance o f the stand-alone IGA for some cases, such as ta025 and ta041, is better

than that o f the hybrid GA. The slight advantage o f the hybrid GA is more apparent for

the instances with the size o f 100x20 and 200x20. The corresponding results are given in

Tables 5.12 and 5.14, respectively.

Table 5.6 Average RPD obtained by the stand-alone IGA, and the hybrid GA for different Taillard's instances with the size o f 20x20.

Instances Instance SizeObtained RPD

stand-alone IGA

Obtained RPD by

hybrid GAta021 20x20 0.00 0.01ta022 20x20 0.03 0.04ta023 20x20 0.10 0.09ta024 20x20 0.00 0.00ta025 20x20 0.05 0.11ta026 20x20 0.07 0.04ta027 20x20 0.00 0.01ta028 20x20 0.02 0.00ta029 20x20 0.02 0.00ta030 20x20 0.01 0.01

73

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

Table 5.7 Average RPD obtained by the stand-alone IGA, and the hybrid GA for different Taillard's instances with the size of 50x5.

Instances Instance Size Obtained RPD by stand-alone

IGA

Obtained RPD by

hybrid GA

ta031 50x5 0.00 0.00 ta032 50x5 0.07 0.05

ta033 50x5 0.00 0.02 ta034 50x5 0.01 0.00 ta035 50x5 0.00 0.00

ta036 50x5 0.00 0.00 ta037 50x5 0.00 0.00 ta038 50x5 0.00 0.00

ta039 50x5 0.02 0.05

ta040 50x5 0.00 0.00

Table 5.8 Average RPD obtained by the stand-alone IGA, and the hybrid GA for different Taillard's instances with the size of 50x10.

Instances Instance Size Obtained RPD by stand-alone

IGA

Obtained RPD by

hybrid GA

ta041 50x10 1.23 1.32

ta042 50x10 1.54 1.33 ta043 50x10 1.11 1.05 ta044 50x10 0.16 0.15 ta045 50x10 0.88 _ 0.92 ta046 50x10 0.42 0.30

ta047 50x10 0.89 0.84

ta048 50x10 0.28 0.28 ta049 50x10 0.28 0.23 ta050 50x10 1.03 0.87

74

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

Table 5.7 Average RPD obtained by the stand-alone IGA, and the hybrid GAfor different Taillard's instances with the size o f 50x5.

Instances Instance SizeObtained RPD by stand-alone

IGA

Obtained RPD by

hybrid GAta031 50x5 0.00 0.00ta032 50x5 0.07 0.05ta033 50x5 0.00 0.02ta034 50x5 0.01 0.00ta035 50x5 0.00 0.00ta036 50x5 0.00 0.00ta037 50x5 0.00 0.00ta038 50x5 0.00 0.00ta039 50x5 0.02 0.05ta040 50x5 0.00 0.00

Table 5.8 Average RPD obtained by the stand-alone IGA, and the hybrid GA for different Taillard's instances with the size o f 50x10.

Instances Instance SizeObtained RPD by stand-alone

IGA

Obtained RPD by

hybrid GAta041 50x10 1.23 1.32ta042 50x10 1.54 1.33ta043 50x10 1.11 1.05ta044 50x10 0.16 0.15ta045 50x10 0.88 0.92ta046 50x10 0.42 0.30ta047 50x10 0.89 0.84ta048 50x10 0.28 0.28ta049 50x10 0.28 0.23ta050 50x10 1.03 0.87

74

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

Table 5.9 Average RPD obtained by the stand-alone IGA, and the hybrid GA for different Taillard's instances with the size of 50x20.

Instances Instance Size Obtained RPD by stand-alone

IGA

Obtained RPD by

hybrid GA ta051 50x20 1.30 1.24 ta052 50x20 1.14 1.07

ta053 50x20 1.56 1.36 ta054 50x20 1.38 1.03

ta055 50x20 1.19 1.23

ta056 50x20 1.30 1.28

ta057 50x20 1.19 1.11

ta058 50x20 1.47 1.37 ta059 50x20 1.11 1.11 ta060 50x20 0.65 0.96

Table 5.10 Average RPD obtained by the stand-alone IGA, and the hybrid GA for different Taillard's instances with the size of 100x5.

Instances Instance Size Obtained RPD by stand-alone

IGA

Obtained RPD by

hybrid GA ta061 100x5 0.00 0.00 ta062 100x5 0.04 0.05

ta063 100x5 0.00 0.00

ta064 100x5 0.06 0.06

ta065 100x5 0.00 0.01

ta066 100x5 0.00 0.00 ta067 100x5 0.01 0.00 ta068 100x5 0.00 0.00 ta069 100x5 0.01 0.01 ta070 100x5 0.00 0.00

75

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

Table 5.9 Average RPD obtained by the stand-alone IGA, and the hybrid GAfor different Taillard's instances with the size o f 50><20.

Instances Instance SizeObtained RPD by stand-alone

IGA

Obtained RPD by

hybrid GAta051 50x20 1.30 1.24ta052 50x20 1.14 1.07ta053 50x20 1.56 1.36ta054 50x20 1.38 1.03ta055 50x20 1.19 1.23ta056 50x20 1.30 1.28ta057 50x20 1.19 1.11ta058 50x20 1.47 1.37ta059 50x20 1.11 1.11ta060 50x20 0.65 0.96

Table 5.10 Average RPD obtained by the stand-alone IGA, and the hybrid GA for different Taillard's instances with the size o f 100*5.

Instances Instance SizeObtained RPD by stand-alone

IGA

Obtained RPD by

hybrid GAta061 100x5 0.00 0.00ta062 100x5 0.04 0.05ta063 100x5 0.00 0.00ta064 100x5 0.06 0.06ta065 100x5 0.00 0.01ta066 100x5 0.00 0.00ta067 100x5 0.01 0.00ta068 100x5 0.00 0.00ta069 100x5 0.01 0.01ta070 100x5 0.00 0.00

75

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

Table 5.11 Average RPD obtained by the stand-alone IGA, and the hybrid GA for different Taillard's instances with the size of 100x10.

Instances Instance Size Obtained RPD by stand-alone

IGA

Obtained RPD by

hybrid GA ta071 100x10 0.18 0.11

ta072 100x10 0.24 0.27

ta073 100x10 0.05 0.07 ta074 100x10 0.70 0.70

ta075 100x10 0.52 0.44 ta076 100x10 0.13 0.18 ta077 100x10 0.18 0.09 ta078 100x10 0.49 0.41

ta079 100x10 0.27 0.28

ta080 100x10 0.04 0.05

Table 5.12 Average RPD obtained by the stand-alone IGA, and the hybrid GA for different Taillard's instances with the size of 100x20.

Instances Instance Size Obtained RPD by non-hybrid

IGA

Obtained RPD by

hybrid GA

ta081 100x20 2.03 1.84

ta082 100x20 1.69 1.63

ta083 100x20 1.32 1.32

ta084 100x20 1.57 1.57

ta085 100x20 1.53 1.54

ta086 100x20 1.90 1.91

ta087 100x20 1.72 1.66

ta088 100x20 2.10 1.89 ta089 100x20 1.80 1.66 ta090 100x20 1.54 1.31

76

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

Table 5.11 Average RPD obtained by the stand-alone IGA, and the hybrid GAfor different Taillard's instances with the size o f 100x 10.

Instances Instance SizeObtained RPD by stand-alone

IGA

Obtained RPD by

hybrid GAta071 100x10 0.18 0.11ta072 100x10 0.24 0.27ta073 100x10 0.05 0.07ta074 100x10 0.70 0.70ta075 100x10 0.52 0.44ta076 100x10 0.13 0.18ta077 100x10 0.18 0.09ta078 100x10 0.49 0.41ta079 100x10 0.27 0.28ta080 100x10 0.04 0.05

Table 5.12 Average RPD obtained by the stand-alone IGA, and the hybrid GA for different Taillard's instances with the size o f 100x20.

Instances Instance SizeObtained RPD by non-hybrid

IGA

Obtained RPD by

hybrid GAta081 100x20 2.03 1.84ta082 100x20 1.69 1.63ta083 100x20 1.32 1.32ta084 100x20 1.57 1.57ta085 100x20 1.53 1.54ta086 100x20 1.90 1.91ta087 100x20 1.72 1.66ta088 100x20 2.10 1.89ta089 100x20 1.80 1.66ta090 100x20 1.54 1.31

76

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

Table 5.13 Average RPD obtained by the stand-alone IGA, and the hybrid GA for different Taillard's instances with the size of 200x10.

Instances Instance Size Obtained RPD by stand-alone

IGA

Obtained RPD by

hybrid GA ta091 200x10 0.18 0.13 ta092 200x10 0.36 0.42

ta093 200x10 0.27 0.39

ta094 200x10 0.04 0.04 ta095 200x10 0.12 0.12

ta096 200x10 0.24 0.34 ta097 200x10 0.16 0.19

ta098 200x10 0.47 0.33

ta099 200x10 0.20 0.25

ta100 200x10 0.08 0.05

Table 5.14 Average RPD obtained by the stand-alone IGA, and the hybrid GA for different Taillard's instances with the size of 200x20.

Instances Instance Size Obtained RPD by stand-alone

IGA

Obtained RPD by

hybrid GA

ta101 200x20 1.42 1.39

ta102 200x20 1.90 1.76

ta103 200x20 1.98 1.91 ta104 200x20 1.57 1.62

ta105 200x20 1.11 1.05

ta106 200x20 1.50 1.50 ta107 200x20 1.37 1.33

ta108 200x20 1.56 1.56

ta109 200x20 2.12 1.65 tall° 200x20 1.73 1.61

77

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

Table 5.13 Average RPD obtained by the stand-alone IGA, and the hybrid GAfor different Taillard's instances with the size o f 200x10.

Instances Instance SizeObtained RPD by stand-alone

IGA

Obtained RPD by

hybrid GAta091 200x10 0.18 0.13ta092 200x10 0.36 0.42ta093 200x10 0.27 0.39ta094 200x10 0.04 0.04ta095 200x10 0.12 0.12ta096 200x10 0.24 0.34ta097 200x10 0.16 0.19ta098 200x10 0.47 0.33ta099 200x10 0.20 0.25talOO 200x10 0.08 0.05

Table 5.14 Average RPD obtained by the stand-alone IGA, and the hybrid GA for different Taillard's instances with the size o f 200x20.

Instances Instance SizeObtained RPD by stand-alone

IGA

Obtained RPD by

hybrid GAtalOl 200x20 1.42 1.39tal02 200x20 1.90 1.76tal03 200x20 1.98 1.91tal04 200x20 1.57 1.62tal05 200x20 1.11 1.05tal06 200x20 1.50 1.50tal07 200x20 1.37 1.33tal08 200x20 1.56 1.56tal09 200x20 2.12 1.65tallO 200x20 1.73 1.61

77

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

5.8 Performance of the Non-Hybrid GA and its Comparison with the Hybrid GA

The performance of the non-hybrid GA, which was discussed and tuned in Section 5.7, is

investigated here over the long CPU time. It is of interest to realize whether the non-

hybrid GA can obtain results similar to the hybrid GA when run for a longer period of

time. A time-dependent termination condition, of n x m x 360 milliseconds, was

considered for the non-hybrid GA, which is three times greater than that of the CPU time

allocated to the hybrid GA discussed in Section 4.1.5.

In Figures 5.11 and 5.12, the plots of the best solution of the non-hybrid GA for

the instances ta051 and ta071 are given. These plots typically show how the best fitness

value (makespan) of the PFSP evolves across the aforementioned time period (which is

approximately equal to evolution over 2.5x104 generations).

After approximately 2.5x 104 generations, the best obtained solution for the

instances ta051 and ta071 are 3977 and 5834, respectively. The best-known solutions

cited in the literature for these two instances are 3850 and 5770, respectively (see

Appendix D). Therefore, the final RPDs through the non-hybrid GA for the instances

ta051 and ta071 are 3.30 and 1.11, respectively.

It can be observed in Figures 5.11 and 5.12, that the best obtained solutions by the

non-hybrid GA do not evolve significantly after 1000 generations. Similar trends are

observed typically for other instances of Taillard's benchmarks, meaning that the non-

hybrid GA stalls quickly.

78

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

5.8 Performance of the Non-Hybrid GA and its Comparison with the Hybrid GA

The performance o f the non-hybrid GA, which was discussed and tuned in Section 5.7, is

investigated here over the long CPU time. It is o f interest to realize whether the non­

hybrid GA can obtain results similar to the hybrid GA when run for a longer period of

time. A time-dependent termination condition, o f n x m x 360 milliseconds, was

considered for the non-hybrid GA, which is three times greater than that o f the CPU time

allocated to the hybrid GA discussed in Section 4.1.5.

In Figures 5.11 and 5.12, the plots o f the best solution o f the non-hybrid GA for

the instances ta051 and ta.071 are given. These plots typically show how the best fitness

value (makespan) o f the PFSP evolves across the aforementioned time period (which is

approximately equal to evolution over 2.5 xlO4 generations).

After approximately 2.5*104 generations, the best obtained solution for the

instances ta051 and ta071 are 3977 and 5834, respectively. The best-known solutions

cited in the literature for these two instances are 3850 and 5770, respectively (see

Appendix D). Therefore, the final RPDs through the non-hybrid GA for the instances

ta.051 and ta071 are 3.30 and 1.11, respectively.

It can be observed in Figures 5.11 and 5.12, that the best obtained solutions by the

non-hybrid GA do not evolve significantly after 1000 generations. Similar trends are

observed typically for other instances o f Taillard’s benchmarks, meaning that the non­

hybrid GA stalls quickly.

78

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

As mentioned earlier, the obtained RPD by the non-hybrid GA for the instance

ta051 is 3.30. The obtained RPD by the hybrid GA for this particular instance is 1.24 (see

Table 5.9). Similarly, the obtained RPDs by the non-hybrid and hybrid GA for the

instance ta071 were compared. These values are 1.11 and 0.11, respectively22. Therefore,

it is conjectured that the hybridization of GA with the IGA will improve the results of the

GA.

Best: 3977

4500

4333 3

4200

4100

40013 6

0.5 1 Generation

5

Figure 5.11 A plot of the best solution of the non-hybrid GA for the instance ta051, with the termination condition of n xm x360.

22 The obtained RPD by the hybrid GA can be found in Table 5.11.

79

2.5

x 104

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

As mentioned earlier, the obtained RPD by the non-hybrid GA for the instance

ta051 is 3.30. The obtained RPD by the hybrid GA for this particular instance is 1.24 (see

Table 5.9). Similarly, the obtained RPDs by the non-hybrid and hybrid GA for the

• 22instance ta071 were compared. These values are 1.11 and 0.11, respectively . Therefore,

it is conjectured that the hybridization o f GA with the IGA will improve the results o f the

GA.

Best: 39774600

4500

4400

4300 -

4200

4100

4000

3900 2.50.5Generation x104

Figure 5.11 A plot o f the best solution o f the non-hybrid GAfor the instance ta051, with the termination condition o f n x/n*360.

22 The obtained RPD by the hybrid GA can be found in Table 5.11.

79

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

Best: 5834 6600 —

6500'

64E10

6300

a)

6200

Co

U-

6100

6000

5900

5800

1

0.5 1 1.5 2 Generation

Figure 5.12 Plot of the best solution of the non-hybrid GA for the instance ta07 1 with the termination condition of n xm x360.

Table 5.15 Average RPD for different instance sizes of Taillard's benchmarks obtained by the tuned non-hybrid GA with the termination condition of nxmx360.

Instances Instance Size RPD

ta001-ta010 20x5 1.27

ta011-ta020 20x 10 2.88

ta021-ta030 20x20 2.94

ta031-ta040 50x5 0.55

ta041-ta050 50x 10 3.96

ta051-ta060 50x20 5.14

ta061-ta070 100x5 0.33

ta071-ta080 100 x 10 1.82

ta081-ta090 100x20 4.75

ta091-ta100 200x10 1.22

ta101-ta1 10 200x20 3.94

80

le

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

Best: 58348600

6500

6400

6300 -

X 6200 -

6100

6000

5900

58000.5

Generation x 10

Figure 5.12 Plot o f the best solution o f the non-hybrid GAfor the instance ta071 with the termination condition o f n *m x360.

Table 5.15 Average RPD for different instance sizes o f Taillard's benchmarks obtained by the tuned non-hybrid GA with the termination condition o f nxmx360.

Instances Instance Size RPDtaOOl-taOlO 20x5 1.27ta011-ta020 20x10 2.88ta021-ta030 20x20 2.94ta031-ta040 50x5 0.55ta041-ta050 50x10 3.96ta051-ta060 50x20 5.14ta061-ta070 100x5 0.33ta071-ta080 100x10 1.82ta081-ta090 100x20 4.75ta091-tal00 200x10 1.22talO l-tallO 200x20 3.94

80

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

Finally, in order to investigate the superiority of the hybridization of the proposed

GA further, the non-hybrid GA is run ten times over the aforementioned CPU time for all

the instances of Taillard and the obtained RPDs are given in Table 5.15. Comparison of

the Table 5.15 and Table 5.3 substantiates the conjecture that hybridization of the GA

with the IGA are beneficial, for all instance sizes.

The other advantage of the proposed hybrid GA is its robustness. This can be

realized through Figures 5.6 through 5.10. In Figures 5.6-5.8, it can be observed that

different treatments of the factors do not change the obtained RPDs to a great extent.

More specifically, the difference of the worst and best values for the RPDs in Figures

5.6-5.8 are not greater than 0.1. Whereas, the non-hybrid GA shows much higher

variation in terms of the RPD. Figures 5.9 and 5.10 show that these variations could reach

up to 4. Therefore, it can be concluded that the proposed hybrid GA is robust with respect

to its parameters. Moreover, according to Table 5.3, it can be concluded that the hybrid

GA outperforms the stand-alone IGA.

81

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

Finally, in order to investigate the superiority o f the hybridization o f the proposed

GA further, the non-hybrid GA is run ten times over the aforementioned CPU time for all

the instances o f Taillard and the obtained RPDs are given in Table 5.15. Comparison of

the Table 5.15 and Table 5.3 substantiates the conjecture that hybridization o f the GA

with the IGA are beneficial, for all instance sizes.

The other advantage o f the proposed hybrid GA is its robustness. This can be

realized through Figures 5.6 through 5.10. In Figures 5.6-5.8, it can be observed that

different treatments o f the factors do not change the obtained RPDs to a great extent.

More specifically, the difference o f the worst and best values for the RPDs in Figures

5.6-5.8 are not greater than 0.1. Whereas, the non-hybrid GA shows much higher

variation in terms o f the RPD. Figures 5.9 and 5.10 show that these variations could reach

up to 4. Therefore, it can be concluded that the proposed hybrid GA is robust with respect

to its parameters. Moreover, according to Table 5.3, it can be concluded that the hybrid

GA outperforms the stand-alone IGA.

81

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

CHAPTER 6: CONCLUSIONS AND FUTURE WORK

The goal of this thesis was to survey one of the most well-known scheduling problems,

the permutation flow-shop scheduling problem. Makespan, as the most common

objective function (i.e., performance measure) to be minimized, was considered for

evaluation of the proposed algorithms in this thesis.

A genetic algorithm-based solution methodology was developed and implemented

in this thesis. More specifically, the performance of two versions of the proposed

algorithm, namely the stand-alone genetic algorithm (referred to as the non-hybrid

genetic algorithm) and the hybrid genetic algorithm (its hybridization with the iterated

greedy search algorithm) were extensively studied in this thesis. As for the comparative

experimental results, Taillard's standard benchmarks were employed. Experimental

results presented in this thesis showed that the performance of the search for near optimal

solutions was highly increased where the proposed genetic algorithm is hybridized with

an iterated greedy search algorithm.

The parameters of both the hybrid and the non-hybrid proposed genetic

algorithms were individually tuned using the full factorial experimental design. As a

result, it was shown that the following set of parameters yields the optimal combination

for the proposed hybrid GA: population size of 40, selection type of tournament,

crossover type SBOX, crossover probability of 0.60, mutation probability of 0.1, and

IGA probability of 0.02.

82

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

C h a p t e r 6: C o n c l u sio n s A n d Fu t u r e W o r k

The goal o f this thesis was to survey one o f the most well-known scheduling problems,

the permutation flow-shop scheduling problem. Makespan, as the most common

objective function (i.e., performance measure) to be minimized, was considered for

evaluation of the proposed algorithms in this thesis.

A genetic algorithm-based solution methodology was developed and implemented

in this thesis. More specifically, the performance o f two versions o f the proposed

algorithm, namely the stand-alone genetic algorithm (referred to as the non-hybrid

genetic algorithm) and the hybrid genetic algorithm (its hybridization with the iterated

greedy search algorithm) were extensively studied in this thesis. As for the comparative

experimental results, Taillard’s standard benchmarks were employed. Experimental

results presented in this thesis showed that the performance of the search for near optimal

solutions was highly increased where the proposed genetic algorithm is hybridized with

an iterated greedy search algorithm.

The parameters o f both the hybrid and the non-hybrid proposed genetic

algorithms were individually tuned using the full factorial experimental design. As a

result, it was shown that the following set o f parameters yields the optimal combination

for the proposed hybrid GA: population size of 40, selection type o f tournament,

crossover type SBOX, crossover probability o f 0.60, mutation probability o f 0.1, and

IGA probability o f 0.02.

82

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

As for the non-hybrid genetic algorithm, it was shown that the optimal

combination of parameters for the proposed non-hybrid GA is: population size of 60,

selection type of rank-based, crossover type of SBOX, crossover probability of 0.40, and

mutation probability of 0.20.

Furthermore, it was shown that the hybrid genetic algorithm performs very well

on the benchmark problems of Taillard. More specifically, the hybrid genetic algorithm

obtains optimal solutions for a large number of the small instances of Taillard (namely,

instances with the size of 20x5, 20x10, 20x20, 50x5, and 100x5). The hybrid genetic

algorithm performs well for larger instances as well. In the worst case, the relative

percentage deviation from the best-known solution for instances with the size of 200x20

is less than two (see Table 5.14). In addition, it was shown that the proposed hybrid

genetic algorithm is robust with respect to its parameters.

The non-hybrid genetic algorithm is not as effective as the hybrid one in terms of

the obtained relative percentage deviation from the best-known solution. As it was seen,

the performance of the non-hybrid genetic algorithm was always worse than the hybrid

genetic algorithm. Even allocating longer CPU time to the non-hybrid genetic algorithm

did not result in achieving the same results obtained by the hybrid genetic algorithm.

Finally, it was shown that the hybrid genetic algorithm performs slightly better

than the iterative greedy search algorithm of Ruiz et al. It is noteworthy to mention that

Ruiz et al. compared their iterative greedy search algorithm against other existing

algorithms and concluded that their algorithm outperforms them.

83

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

As for the non-hybrid genetic algorithm, it was shown that the optimal

combination o f parameters for the proposed non-hybrid GA is: population size o f 60,

selection type o f rank-based, crossover type of SBOX, crossover probability o f 0.40, and

mutation probability o f 0.20.

Furthermore, it was shown that the hybrid genetic algorithm performs very well

on the benchmark problems o f Taillard. More specifically, the hybrid genetic algorithm

obtains optimal solutions for a large number o f the small instances o f Taillard (namely,

instances with the size o f 20x5, 20x10, 20x20, 50x5, and 100x5). The hybrid genetic

algorithm performs well for larger instances as well. In the worst case, the relative

percentage deviation from the best-known solution for instances with the size o f 200x20

is less than two (see Table 5.14). In addition, it was shown that the proposed hybrid

genetic algorithm is robust with respect to its parameters.

The non-hybrid genetic algorithm is not as effective as the hybrid one in terms o f

the obtained relative percentage deviation from the best-known solution. As it was seen,

the performance o f the non-hybrid genetic algorithm was always worse than the hybrid

genetic algorithm. Even allocating longer CPU time to the non-hybrid genetic algorithm

did not result in achieving the same results obtained by the hybrid genetic algorithm.

Finally, it was shown that the hybrid genetic algorithm performs slightly better

than the iterative greedy search algorithm of Ruiz et al. It is noteworthy to mention that

Ruiz et al. compared their iterative greedy search algorithm against other existing

algorithms and concluded that their algorithm outperforms them.

83

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

Future work for this research could be a parallel implementation of the genetic

algorithm and the iterative greedy search algorithm. In a parallel implementation, the

genetic algorithm and the iterative greedy search algorithm can be run on two separate

processing units, where both algorithms have their own evolution but they exchange their

best solutions in different intervals during the time that the algorithms are being run on

two computers.

Applications of the proposed hybrid GA on the Traveling Salesman Problem is

another application domain that has been drawing attention recently.

84

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

Future work for this research could be a parallel implementation of the genetic

algorithm and the iterative greedy search algorithm. In a parallel implementation, the

genetic algorithm and the iterative greedy search algorithm can be run on two separate

processing units, where both algorithms have their own evolution but they exchange their

best solutions in different intervals during the time that the algorithms are being run on

two computers.

Applications o f the proposed hybrid GA on the Traveling Salesman Problem is

another application domain that has been drawing attention recently.

84

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

REFERENCES

[1] Allahverdi A., Two-machine proportionate flowshop scheduling with breakdowns to minimize maximum lateness, Computers and Operations Research 1996, 23(10):909-916,.

[2] Baker K.R., Introduction to Sequencing and Scheduling, Wiley & Sons, 1974.

[3] Blazewicz J., Ecker K., Pesch E., Schmidt G., and Weglarz J., Scheduling Computer and Manufacturing Processes, 2nd editions, Springer-Verlag, 2001.

[4] Campbell H.G., Dudek R.A., Smith M.L., A heuristic algorithm for the n-job, m-machine sequencing problem. Management Science 1970; 16(B):630-637.

[5] Chen C.L., Vempati, V.S., Aljaber, N., An application of genetic algorithms for flow shop problems. European Journal of Operational Research 1995; 80:389-396.

[6] Coley D.A., An Introduction to Genetic Algorithms for Scientists and Engineers, World Scientific Publishing Company, 1997.

[7] Conway R.W., Maxwell W.L., Miller, L.W., Theory of Scheduling, Addison-Wellesley, 1967.

[8] Dannenbring D.G., An evaluation of flow shop sequencing heuristics. Management Science 1977; 23(11):1174-1182.

[9] Davis L., Applying adaptative algorithms to epistatic domains, in: Proceedings of the International joint conference on artificial intelligence 1985, 162-164.

[10] Davoud Pour H., A new heuristic for the n-job, m-machine flow-shop problem. Production Planning and Control 2001, 12(7):648-653.

[11] Eiben A.E., and Smith J.E., Introduction to Evolutionary Computing, Springer-Verlag, 2003.

[12] Framinan J.M., Leisten R, Ruiz-Usano R., Efficient heuristics for flow shop sequencing with the objectives of makespan and flowtime minimization, European Journal of Operational Research 2002, 141:559-569.

[13] French S., Sequencing and Scheduling: An Introduction to the Mathematics of Job-Shop, John Wiley, New York, 1982.

[14] Garey M.R., Johnson D.S., Sethi R., The complexity of flow shop and job shop scheduling, Mathematics of Operations Research 1976:117-129.

85

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

R e f e r e n c e s

[1] Allahverdi A., Two-machine proportionate flowshop scheduling with breakdowns to minimize maximum lateness, Computers and Operations Research 1996, 23(10):909-916„

[2] Baker K.R., Introduction to Sequencing and Scheduling, Wiley & Sons, 1974.

[3] Blazewicz J., Ecker K., Pesch E., Schmidt G., and Weglarz J., Scheduling Computer and Manufacturing Processes,2nd editions, Springer-Verlag, 2001.

[4] Campbell H.G., Dudek R.A., Smith M.L., A heuristic algorithm for the n-job, m-machine sequencing problem. Management Science 1970; 16(B):630-637.

[5] Chen C.L., Vempati, V.S., Aljaber, N., An application o f genetic algorithms for flow shop problems. European Journal o f Operational Research 1995; 80:389-396.

[6] Coley D.A., An Introduction to Genetic Algorithms for Scientists and Engineers, World Scientific Publishing Company, 1997.

[7] Conway R.W., Maxwell W.L., Miller, L.W., Theory o f Scheduling, Addison- Wellesley, 1967.

[8] Dannenbring D.G., An evaluation o f flow shop sequencing heuristics. Management Science 1977; 23(11): 1174-1182.

[9] Davis L., Applying adaptative algorithms to epistatic domains, in: Proceedings of the International joint conference on artificial intelligence 1985, 162-164.

[10] Davoud Pour H., A new heuristic for the «-job, m-machine flow-shop problem. Production Planning and Control 2001, 12(7):648-653.

[11] Eiben A.E., and Smith J.E., Introduction to Evolutionary Computing, Springer- Verlag, 2003.

[12] Framinan J.M., Leisten R, Ruiz-Usano R., Efficient heuristics for flow shop sequencing with the objectives o f makespan and flowtime minimization, European Journal o f Operational Research 2002, 141:559-569.

[13] French S., Sequencing and Scheduling: An Introduction to the Mathematics of Job-Shop, John Wiley, New York, 1982.

[14] Garey M.R., Johnson D.S., Sethi R., The complexity o f flow shop and job shop scheduling, Mathematics o f Operations Research 1976:117-129.

85

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

[15] Gen M., Cheng R., Genetic Algorithms and Engineering Design, New York: Wiley, 1997.

[16] Goldberg D.E., Genetic Algorithms in Search, Optimization, and Machine Learning. Addison Wesley, 1989.

[17] Gupta J.N.D., A functional heuristic algorithm for the flow shop scheduling problem. Operational Research Quarterly 1971; 22(1):39-47.

[18] Gupta J.N.D., Heuristic algorithms for multistage flowshop scheduling problem, AIIE Transactions 4 (1972) 11-18.

[19] Haupt R.L. and Haupt S.E., Practical Genetic Algorithms, Second Edition, John Wiley & Sons, 2004.

[20] Holland J.H., Adaptation in Natural and Artificial Systems, University of Michigan Press, Ann Arbor, 1975.

[21] Dileepan P., Sen T., Job lateness in a two-machine flowshop with setup times separated, Computers and Operations Research, v.18 n.6, p.549-556, 1991.

[22] Hundal T.S., Rajgopal J. "An extension of Palmer heuristic for the flow-shop scheduling problem", International Journal of Production Research, 26 (1988), 1119-1124.

[23] Iyer S.K., Saxena B., Improved genetic algorithm for the permutation flowshop scheduling problem, Computers & Operations Research 31 (2004) 593-606.

[24] Jessup L.M., Valacich J.S., Information Systems Today, Prentice Hall; 1st edition 2002.

[25] Johnson S.M., Optimal two- and three-stage production schedules with setup times included, Naval Research Logistics Quarterly, 1954, Vol. 1, pp. 61-68.

[26] Kim Y., Minimizing total tardiness in permutation flowshops. European Journal of Operational Research 1993; 20:391-401.

[27] Koulamas C., 1998. A new constructive heuristic for the flowshop scheduling problem. European Journal of Operational Research Society 105,66-71.

[28] Ladhari T., Haouar M., A computational study of the permutation flow shop problem based on a tight lower bound; Computers & Operations Research 32 (2005) 1831-1847.

86

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

[15] Gen M., Cheng R., Genetic Algorithms and Engineering Design, New York: Wiley, 1997.

[16] Goldberg D.E., Genetic Algorithms in Search, Optimization, and Machine Learning. Addison Wesley, 1989.

[17] Gupta J.N.D., A functional heuristic algorithm for the flow shop scheduling problem. Operational Research Quarterly 1971; 22(l):39-47.

[18] Gupta J.N.D., Heuristic algorithms for multistage flowshop scheduling problem, AIIE Transactions 4 (1972) 11-18.

[19] Haupt R.L. and Haupt S.E., Practical Genetic Algorithms, Second Edition, John Wiley & Sons, 2004.

[20] Holland J.H., Adaptation in Natural and Artificial Systems, University of Michigan Press, Ann Arbor, 1975.

[21] Dileepan P., Sen T., Job lateness in a two-machine flowshop with setup times separated, Computers and Operations Research, v.18 n.6, p.549-556,1991.

[22] Hundal T.S., Rajgopal J. “An extension of Palmer heuristic for the flow-shop scheduling problem”, International Journal o f Production Research, 26 (1988), 1119- 1124.

[23] Iyer S.K., Saxena B., Improved genetic algorithm for the permutation flowshop scheduling problem, Computers & Operations Research 31 (2004) 593-606.

[24] Jessup L.M., Valacich J.S., Information Systems Today, Prentice Hall; 1st edition 2002.

[25] Johnson S.M., Optimal two- and three-stage production schedules with setup times included, Naval Research Logistics Quarterly, 1954, Vol. 1, pp. 61-68.

[26] Kim Y., Minimizing total tardiness in permutation flowshops. European Journal o f Operational Research 1993; 20:391-401.

[27] Koulamas C., 1998. A new constructive heuristic for the flowshop scheduling problem. European Journal o f Operational Research Society 105, 66-71.

[28] Ladhari T., Haouar M., A computational study o f the permutation flow shop problem based on a tight lower bound; Computers & Operations Research 32 (2005) 1831-1847.

86

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

[29] Stasko J.T, Longest Common Subsequence Pseudo Code, http://www.cc.gatech.edu/classes/cs3158 98_fall/lcs.html, last accessed February 5, 2006.

[30] Lourenco H.R., Martin 0.C., Stiitzle T., 2000. "Iterated Local Search," Economics Working Papers 513, Department of Economics and Business, Universitat Pompeu Fabra.

[31] Michalewicz Z., Genetic Algorithms + Data Structures = Evolution Programs, 3rd Revised Eedition, New York: Springer-Verlag, 1998.

[32] Miyazaki S., Nishiyama N., Hashimoto F., An adjacent pairwise approach to the mean flowtime scheduling problem, Journal of the Operations Research Society of Japan 21 (1978) 287-299.

[33] Murata T., Ishibuchi H., Takana H., Genetic algorithm for flow shop scheduling problems. Computers and Industrial Engineering 1996; 30 (4): 1061-1071.

[34] NIST/SEMATECH e-Handbook of Statistical Methods, http://www.itl.nist.gov/div898/handbook/, last visited: February 24,2006.

[35] Oliver I.M., Smith D.J., Holland J.R.C., A study of permutation crossover operators on the traveling salesman problem, Proceedings of the Second International Conference on Genetic Algorithms on and their application, p.224-230, October 1987, Cambridge, Massachusetts, United States.

[36] Osman LH., Potts C.N., Simulated annealing for permutation flow-shop scheduling. OMEGA, The International Journal of Management Science 1989; 17(6): 551-557.

[37] Palmer D.S., Sequencing jobs through a multistage process in the minimum total time: A quick method of obtaining a near-optimum, Operational Research Quarterly 16 (1965) 101-107.

[38] Pan J.C.H., Fan E.T., Two-machine flow-shop scheduling to minimize total tardiness. International Journal of Systems Science 1997; 28:405-14.

[39] Pinedo M., Scheduling: Theory, Algorithms, and Systems, 2nd Edition, Prentice Hall; 2001.

[40] Ponnambalam S.G., Aravindan P., Chandrasekaran S., 2001. Constructive and improvement flow shop scheduling heuristics: An extensive evaluation, Production Planning and Control 12 (4), 335-344.

[41] Reeves C.R., Improving the efficiency of tabu search in machine sequencing problems, Journal of Operations research society, 1993, 44: 375-382.

87

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

[29] Stasko J.T, Longest Common Subsequence Pseudo Code, http://www.cc.gatech.edu/classes/cs3158 98 fall/lcs.html. last accessed February 5, 2006.

[30] Lourenpo H.R., Martin O.C., Stutzle T., 2000. "Iterated Local Search," Economics Working Papers 513, Department o f Economics and Business, Universitat Pompeu Fabra.

[31] Michalewicz Z., Genetic Algorithms + Data Structures = Evolution Programs, 3rd Revised Eedition, New York: Springer-Verlag, 1998.

[32] Miyazaki S., Nishiyama N., Hashimoto F., An adjacent pairwise approach to the mean flowtime scheduling problem, Journal o f the Operations Research Society of Japan 21 (1978) 287-299.

[33] Murata T., Ishibuchi H., Takana H., Genetic algorithm for flow shop scheduling problems. Computers and Industrial Engineering 1996; 30 (4): 1061-1071.

[34] NIST/SEMATECH e-Handbook o f Statistical Methods, http://www.itl.nist.gov/div898/handbook/, last visited: February 24,2006.

[35] Oliver I.M., Smith D.J., Holland J.R.C., A study o f permutation crossover operators on the traveling salesman problem, Proceedings o f the Second International Conference on Genetic Algorithms on and their application, p.224-230, October 1987, Cambridge, Massachusetts, United States.

[36] Osman I.H., Potts C.N., Simulated annealing for permutation flow-shop scheduling. OMEGA, The International Journal o f Management Science 1989; 17(6): 551-557.

[37] Palmer D.S., Sequencing jobs through a multistage process in the minimum total time: A quick method of obtaining a near-optimum, Operational Research Quarterly 16(1965) 101-107.

[38] Pan J.C.H., Fan E.T., Two-machine flow-shop scheduling to minimize total tardiness. International Journal o f Systems Science 1997; 28:405-14.

[39] Pinedo M., Scheduling: Theory, Algorithms, and Systems, 2nd Edition, Prentice Hall; 2001.

[40] Ponnambalam S.G., Aravindan P., Chandrasekaran S., 2001. Constructive and improvement flow shop scheduling heuristics: An extensive evaluation, Production Planning and Control 12 (4), 335-344.

[41] Reeves C.R., Improving the efficiency o f tabu search in machine sequencing problems, Journal o f Operations research society, 1993, 44: 375-382.

87

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

[42] Reeves C.R., A genetic algorithm for flowshop sequencing. Computers & Operations Research 1995, 22, pp. 5-13.

[43] Reeves C.R., Yamada T., Genetic Algorithms, Path Relinking and the Flowshop Sequencing Problem; Evolutionary Computation journal (MIT press), Vol.6 No.1, pp. 230-234 Spring 1998.

[44] Rinnooy Kan A.H.G., Machine Scheduling Problems: Classification, Complexity, and Computations, Nijhoff, The Hague, 1976.

[45] Ruiz R., Maroto C., A comprehensive review and evaluation of permutation flowshop heuristics, European Journal of Operational Research 2005; 165: 479-94.

[46] Ruiz R., Maroto C., Alcaraz J., Two new robust genetic algorithms for the flowshop scheduling problem OMEGA: International Journal of Management Science, In Press, Corrected Proof, Available online 9 April 2005,

[47] Ruiz R., Stiitzle T., A Simple and Effective Iterated Greedy Algorithm for the Flowshop Scheduling Problem. European Journal of Operational Research 2005, (accepted for publication).

[48] Sakawa M., Genetic Algorithms and Fuzzy Multiobjective Optimization, Kluwer Academic Publishers, 2002.

[49] Sem T., Dileepan P., Jatinder N. D., The two-machine flowshop scheduling problem with total tardiness, Computers and Operations Research, v.16 n.4, p.333-340, July 1989.

[50] Stilzle T., 1998. Applying Iterated Local Search to the permutation flow shop problem. Technical Report, AIDA-98-04, FG Intellektik,TU Darmstadt

[51] Syswerda G., Schedule Optimisation Using Genetic Algorithms. In Davis L. editor. Handbook of Genetic Algorithms, London: International Thomson Computer Press, 1991: 335-349.

[52] Taillard E. Some efficient heuristic methods for the flow shop sequencing problem. European Journal of Operational Research 1990;47:65-74.

[53] Taillard E., Benchmark for basic scheduling problems, European Journal of Operational Research 64 (1993) 278-285.

[54] Taillard E, http ://ina. eivd. ch/collaborateurs/etd/probl ernes . dir/ordonnancement. dir/ordonnanceme nt.html, last accessed February 7, 2005.

88

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

[42] Reeves C.R., A genetic algorithm for flowshop sequencing. Computers & Operations Research 1995, 22, pp. 5-13.

[43] Reeves C.R., Yamada T., Genetic Algorithms, Path Relinking and the Flowshop Sequencing Problem; Evolutionary Computation journal (MIT press), Vol.6 N o.l, pp. 230-234 Spring 1998.

[44] Rinnooy Kan A.H.G., Machine Scheduling Problems: Classification, Complexity, and Computations, Nijhoff, The Hague, 1976.

[45] Ruiz R., Maroto C., A comprehensive review and evaluation o f permutation flowshop heuristics, European Journal o f Operational Research 2005; 165: 479-94.

[46] Ruiz R., Maroto C., Alcaraz J., Two new robust genetic algorithms for the flowshop scheduling problem OMEGA: International Journal o f Management Science, In Press, Corrected Proof, Available online 9 April 2005,

[47] Ruiz R., Stutzle T., A Simple and Effective Iterated Greedy Algorithm for the Flowshop Scheduling Problem. European Journal o f Operational Research 2005, (accepted for publication).

[48] Sakawa M., Genetic Algorithms and Fuzzy Multiobjective Optimization,Kluwer Academic Publishers, 2002.

[49] Sem T., Dileepan P., Jatinder N. D., The two-machine flowshop scheduling problem with total tardiness, Computers and Operations Research, v.16 n.4, p.333- 340, July 1989.

[50] Stiizle T., 1998. Applying Iterated Local Search to the permutation flow shop problem. Technical Report, AIDA-98-04, FG Intellektik,TU Darmstadt

[51] Syswerda G., Schedule Optimisation Using Genetic Algorithms. In Davis L. editor. Handbook of Genetic Algorithms, London: International Thomson Computer Press, 1991: 335-349.

[52] Taillard E. Some efficient heuristic methods for the flow shop sequencing problem. European Journal o f Operational Research 1990;47:65-74.

[53] Taillard E., Benchmark for basic scheduling problems, European Journal of Operational Research 64 (1993) 278-285.

[54] Taillard E,http://ina.eivd.ch/collaborateurs/etd/problemes.dir/ordonnancement.dir/ordonnanceme nt.html, last accessed February 7, 2005.

88

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

[55] Turner S., Booth D., Comparison of heuristics for flowshop sequencing, OMEGA: International Journal of Management Science, 15 (1987) 75-85.

[56] Whitley D., The GENITOR Algorithm and Selection Pressure: Why Rank-Based Allocation of Reproductive Trials is Best, Proceedings of the Third International Conference on Genetic Algorithms, 1989.

[57] Widmer M., Hertz A., A new heuristic for the flow shop sequencing problem, European Journal of Operational Research 1989; 41:186-93. Winston ML., The Biology of the Honey Bee, Harvard University Press 1987.

[58] Nawaz M., Enscore E.E.J., Ham I., A heuristic algorithm for the m-machine, n-job flow shop sequencing problem. OMEGA: International Journal of Management Science, 1983;11 (1):91-5.

[59] Bierwirth C., Mattfeld D.C., Kopfer H., On Permutation Representations for Scheduling Problems, Proceedings of the 4th International Conference on Parallel Problem Solving from Nature, p.310-318, September 22-26,1996

[60] Ogbu F.A., Smith D.K., The application of the simulated annealing algorithms to the solution of the n/m/Cmax flowshop problem. Computers & Operations Research 1990;17(3):243-53.

[61] Montgomery D.C., Design and analysis of experiments, 5th Ed., New York: Wiley; 2000.

[62] Baker J.E., Adaptive Selection Methods for genetic Algorithms, in Proceedings of the 1st International Conference on Genetic Algorithms, Lawrence Erlbaum Associates, Inc. Hillsdale, NJ, 1985, pp. 101-111.

[63] Weisstein E.W., "NP-Hard Problem." From Math World-- A Wolfram Web Resource. http://mathworld.wolfram.com/NP-HardProblem.html, last accessed March 31,2006.

89

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

[55] Turner S., Booth D., Comparison of heuristics for flowshop sequencing, OMEGA: International Journal o f Management Science, 15 (1987) 75-85.

[56] Whitley D., The GENITOR Algorithm and Selection Pressure: Why Rank- Based Allocation o f Reproductive Trials is Best, Proceedings o f the Third International Conference on Genetic Algorithms, 1989.

[57] Widmer M., Hertz A., A new heuristic for the flow shop sequencing problem, European Journal o f Operational Research 1989; 41:186-93.Winston ML., The Biology of the Honey Bee, Harvard University Press 1987.

[58] Nawaz M., Enscore E.E.J., Ham I., A heuristic algorithm for the m-machine, n- job flow shop sequencing problem. OMEGA: International Journal o f Management Science, 1983;11 (l):91-5.

[59] Bierwirth C., Mattfeld D.C., Kopfer H., On Permutation Representations for Scheduling Problems, Proceedings of the 4th International Conference on Parallel Problem Solving from Nature, p.310-318, September 22-26,1996

[60] Ogbu F.A., Smith D.K., The application o f the simulated annealing algorithms to the solution o f the n/m/Cmax flowshop problem. Computers & Operations Research 1990; 17(3):243-53.

[61] Montgomery D.C., Design and analysis o f experiments, 5th Ed., New York: Wiley; 2000.

[62] Baker J.E., Adaptive Selection Methods for genetic Algorithms, in Proceedings o f the 1st International Conference on Genetic Algorithms, Lawrence Erlbaum Associates, Inc. Hillsdale, NJ, 1985, pp. 101-111.

[63] Weisstein E.W., "NP-Hard Problem.” From MathWorld- A Wolfram Web Resource. http://mathworld.wolfram.com/NP-HardProblem.html. last accessed March 31,2006.

89

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

APPENDIX

Appendix A: Residuals Plots for the Hybrid GA

Appendix B: ANOVA Table for the Non-Hybrid GA

Appendix C: Residuals Plots for the Non-Hybrid GA

Appendix D: Best-known makespan for Taillard's standard benchmark problems

Appendix E: Java Code

90

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

A p pe n d ix

Appendix A: Residuals Plots for the Hybrid GA

Appendix B: ANOVA Table for the Non-Hybrid GA

Appendix C: Residuals Plots for the Non-Hybrid GA

Appendix D: Best-known makespan for Taillard's standard benchmark problems

Appendix E: Java Code

90

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

APPENDIX A: RESIDUALS PLOTS FOR THE HYBRID GA

Residuals Versus m (response is RPD)

1.5

1.0

-0.5

-1.0

1.5

1.0

-0.5

-1.0

10 12 14 m

16 18

Plot of residuals versus m for the hybrid GA.

Residuals Versus Mrate (response is RPD)

20

t

$ t

0.10 0.12 0.14 0.16 Mrate

0.18 0.20

Plot of residuals versus mutation probability for the hybrid GA.

91

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

A p pe n d ix A: R e sid u a l s Plo t s f o r th e H y b r id GA

1 .5 -

1.0 -

_ 0 .5 -(0 3

■o'B

s 0.0-

-0 .5 -

- 1.0 -

10 12 14 16 18 20m

Plot o f residuals versus m for the hybrid GA.

1.5

1.0

_ 0 ,5(0 3■o*5S. o.o

-0 .5

- 1,0

Plot o f residuals versus mutation probability for the hybrid GA.

91

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

Residuals Versus Mrate(resp o n se is RPD)

0.10 0.12 0 .14 0.16 0.18 0.20Mrate

Residuals Versus m(re sp o n se is RPD)

Residuals Versus Popsize (response is RPD)

1.5

1.0

-0.5

-1.0

1.5

1.0

-0.5

-1.0

• : •

20 30 40 Popsize

50

Plot of residuals versus population size for the hybrid algorithm.

Residuals Versus SelecType (response is RPD)

60

• •

1.0 1.2 1.4 1.6 SelecType

1.8

Plot of residuals versus selection type for the hybrid algorithm.

92

2.0

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

Residuals Versus Popsize(response is RPD)

1.5 -{

1.0 -

_ 0.5-<o3■o‘3& o.o-

-0.5-

- 1.0 -

30 40 50 6020Popsize

Plot o f residuals versus population size for the hybrid algorithm.

Residuals Versus SelecType(re s p o n se is RPD)

1.5-1-------------------------------------------------------------------

1.0 -

0.5-TS3■o'3£ o.o-

-0.5-

- 1.0 -

1.0 1.2 1.4 1.6 1.8 2.0SelecType

Plot o f residuals versus selection type for the hybrid algorithm.

92

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

Residuals Versus XoverType (response is RPD)

1.5

! 1.0

-0.5

-1.0

1,5

1.0

0.5

-0.5

-1.0

I 1.0 1.2 1.4 1.6

XoverType 1,8

Plot of residuals versus crossover type for the hybrid algorithm.

Residuals Versus Xrate (response is RPD)

2.0

• • • •

I •

0.4 0.5 0.6 Xrate

0.7 0.

Plot of residuals versus crossover probability for the hybrid algorithm.

93

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

1.0 -

_ 0.5-<0 s ■o ■«« 0 .0 -

-0.5-

- 1.0 -

1.0 1.2 1.4 1.6 1.8 2.0XoverType

Plot o f residuals versus crossover type for the hybrid algorithm.

Residuals Versus Xrate( r e s p o n s e is RPD)

1.5-

1.0 -

0.5-133 ■D'Si2 o.o-

-0.5-

- 1.0 -

Plot o f residuals versus crossover probability for the hybrid algorithm.

0.4 0.5 0.6X rate

0.7 0.8

Residuals Versus XoverType(response is RPD)

I

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

APPENDIX B: ANOVA TABLE FOR THE NON-HYBRID GA

ANOVA Table for the non-hybrid GA.

Factor Degrees

of Freedom

Sum of Squares

Mean Square

F-Value P-value

n 2 12813.2 6406.6 3628.78 0.000

m 1 26721.5 26721.5 15135.4 0.000

Crossover Type 1 5264.1 5264.1 2981.65 0.000

Selection Type 1 39286.6 39286.6 22252.45 0.000

PopulationSize 2 240.7 120.3 68.16 0.000

Crossover Prob. 2 148.1 74 41.93 0.000

Mutation Prob. 2 32.8 16.4 9.28 0.000

n*m 2 5681.9 2840.9 1609.14 0.000

n*Crossover Type 2 169.8 84.9 48.1 0.000

n*Selection Type 2 448.5 224.2 127 0.000

n*PopulationSize 4 30.6 7.7 4.34 0.002 n*Crossover Prob. 4 23.3 5.8 3.29 0.011

n*Mutation Prob. 4 4.8 1.2 0.68 0.606

m*Crossover Type 1 130.5 130.5 73.94 0.000

m*Selection Type 1 2915.9 2915.9 1651.62 0.000

m*Po ulationSize 2 27 13.5 7.65 0.000

m*Crossover Prob. 2 24.3 12.1 6.87 0.001 m*Mutation Prob. 2 16.4 8.2 4.64 0.010

Crossover Type*Selection Type 1 5112.8 5112.8 2895.96 0.000 Crossover Type*PopulationSize 2 72.7 36.3 20.58 0.000 Crossover Type*Crossover Prob. 2 2.5 1.2 0.7 0.497

Crossover Type*Mutation Prob. 2 4.8 2.4 1.36 0.258

Selection Type*PopulationSize 2 6.1 3.1 1.74 0.176

Selection T e*Crossover Prob. 2 258 129 73.07 0.000

Selection Type*Mutation Prob. 2 34.9 17.4 9.88 0.000

PopulationSize*Crossover Prob. 4 11.7 2.9 1.66 0.157 PopulationSize*Mutation Prob. 4 9.5 2.4 1.35 0.250

Crossover Prob.*Mutation Prob. 4 4.4 1.1 0.63 0.643 Error 9657 17049.4 1.8 Total 9719

94

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

A p pe n d ix B: ANOVA Ta ble f o r th e N o n -H y b r id G A

ANOVA Table for the non-hybrid GA.

FactorDegrees

o fFreedom

Sum of Squares

MeanSquare F-Value P-value

n 2 12813.2 6406.6 3628.78 0.000m 1 26721.5 26721.5 15135.4 0.000Crossover Type 1 5264.1 5264.1 2981.65 0.000Selection Type 1 39286.6 39286.6 22252.45 0.000PopulationSize 2 240.7 120.3 68.16 0.000Crossover Prob. 2 148.1 74 41.93 0.000Mutation Prob. 2 32.8 16.4 9.28 0.000n*m 2 5681.9 2840.9 1609.14 0.000n*Crossover Type 2 169.8 84.9 48.1 0.000n*Selection Type 2 448.5 224.2 127 0.000n*PopulationSize 4 30.6 7.7 4.34 0.002n*Crossover Prob. 4 23.3 5.8 3.29 0.011n*Mutation Prob. 4 4.8 1.2 0.68 0.606m*Crossover Type 1 130.5 130.5 73.94 0.000m*Selection Type 1 2915.9 2915.9 1651.62 0.000m*PopulationSize 2 27 13.5 7.65 0.000m*Crossover Prob. 2 24.3 12.1 6.87 0.001m*Mutation Prob. 2 16.4 8.2 4.64 0.010Crossover Type*Selection Type 1 5112.8 5112.8 2895.96 0.000Crossover Type*PopulationSize 2 72.7 36.3 20.58 0.000Crossover Type*Crossover Prob. 2 2.5 1.2 0.7 0.497Crossover Type*Mutation Prob. 2 4.8 2.4 1.36 0.258Selection Type*PopulationSize 2 6.1 3.1 1.74 0.176Selection Type*Crossover Prob. 2 258 129 73.07 0.000Selection Type*Mutation Prob. 2 34.9 17.4 9.88 0.000PopulationSize*Crossover Prob. 4 11.7 2.9 1.66 0.157PopulationSize*Mutation Prob. 4 9.5 2.4 1.35 0.250Crossover Prob.*Mutation Prob. 4 4.4 1.1 0.63 0.643Error 9657 17049.4 1.8Total 9719

94

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

APPENDIX C: RESIDUALS PLOTS FOR THE NON-HYBRID

GA

Residual Plots for RPD

Normal Probability Plot of the Residuals 99.99

99

90

50

0. • 10

0.01

10 a O

72 o

-10 0 Residual

10

Histogram of the Residuals

2000 -

'6" ▪ 1500 •

0 er ▪ 1000 - IL

500 -

a 0

72

at

-7.0 -3.5 0.0 3.5 7.0 10.5 14.0 Residual

-10 0

Residuals Versus the Fitted Values

5 10 Fitted Value

15

Residuals Versus the Order of the Data

10

0

-10 1 1020 2000 MOO 4030 5000 6073 7033 e000 9000

Observation Order

Residuals Plot for the non-hybrid GA.

95

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

A p pe n d ix C: Re sid u a l s Pl o t s f o r th e N o n -H y b r id

GA

Normal Probability Plot of the Residuals39.99

Residual P lo ts for RPDResiduals Versus the Fitted Values

99

c 90S 50

a 10l

0.01

2000

1500

1000

500

0

-10 0 10Residual

Histogram of the Residuals

—«-rlf-7.0 -3.5 0.0 3.5 7.0 10.5 14.0

Residual

10

•/

t i

0 5 10 15Fitted Value

Residuals Versus the Order of the Data

1 1QM 2000 XOQ 4QQQ 5GQQ «UQ 7000 9XU 9000 Observation O rder

Residuals Plot for the non-hybrid GA.

95

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

APPENDIX D: BEST-KNOWN MAKESPAN FOR TAILLARD'S

STANDARD BENCHMARK PROBLEMS

Table of the best-known makespan for Taillard's standard benchmark problems (reproduced from [54]).

Benchmark Size Best-known Makespan Benchmark Size Best-known

Makespan ta001 20x5 1278 ta037 50x5 2725 ta002 20x5 1359 ta038 50x5 2683 ta003 20x5 1081 ta039 50x5 2552 ta004 20x5 1293 ta040 50x5 2782 ta005 20x5 1235 ta041 50x10 2991 ta006 20x5 1195 ta042 50 x 10 2867 ta007 20x5 1234 ta043 50x10 2839 ta008 20x5 1206 ta044 50x10 3063 ta009 20x5 1230 ta045 50x10 2976 ta010 20x5 1108 ta046 50x10 3006 ta011 20x10 1582 ta047 50x10 3093 ta012 20x10 1659 ta048 50x10 3037 ta013 20x10 1496 ta049 50 x 10 2897 ta014 20x10 1377 ta050 50x10 3065 ta015 20x10 1419 ta051 50x20 3850 ta016 20x10 1397 ta052 50x20 3704 ta017 20x10 1484 ta053 50x20 3641 ta018 20x10 1538 ta054 50x20 3724 ta019 20x10 1593 ta055 50x20 3611 ta020 20x10 1591 ta056 50x20 3685 ta021 20x20 2297 ta057 50x20 3705 ta022 20x20 2099 ta058 50x20 3691 ta023 20x20 2326 ta059 50x20 3743 ta024 20x20 2223 ta060 50x20 3767 ta025 20x20 2291 ta061 100)(5 5493 ta026 20x20 2226 ta062 100 x 5 5268 ta027 20x20 2273 ta063 100)(5 5175 ta028 20x20 2200 ta064 100 x 5 5014 ta029 20x20 2237 ta065 100x5 5250 ta030 20x20 2178 ta066 100x5 5135 ta031 50x5 2724 ta067 100 x 5 5246 ta032 50x5 2834 ta068 100 x 5 5094 ta033 50x5 2621 ta069 100x5 5448 ta034 50x5 2751 ta070 100 x 5 5322 ta035 50x5 2863 ta071 100x10 5770 ta036 50x5 2829 ta072 100x10 5349

96

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

A p pe n d ix D: best-k n o w n m a k espa n f o r Ta il l a r d ’s

STANDARD BENCHMARK PROBLEMS

Table o f the best-known makespan for Taillard's standard benchmark problems (reproduced from [54]).

Benchmark Size Best-knownMakespan Benchmark Size Best-known

MakespantaOOl 20x5 1278 ta037 50x5 2725ta002 20x5 1359 ta038 50x5 2683ta003 20x5 1081 ta039 50x5 2552ta004 20x5 1293 ta040 50x5 2782ta005 20x5 1235 ta041 50x10 2991ta006 20x5 1195 ta042 50x10 2867ta007 20x5 1234 ta043 50x10 2839ta008 20x5 1206 ta044 50x10 3063ta009 20x5 1230 ta045 50x10 2976taOlO 20x5 1108 ta046 50x10 3006taOll 20x10 1582 ta047 50x10 3093ta012 20x10 1659 ta048 50x10 3037ta013 20x10 1496 ta049 50x10 2897ta014 20x10 1377 ta050 50x10 3065ta015 20x10 1419 ta051 50x20 3850ta016 20x10 1397 ta052 50x20 3704ta017 20x10 1484 ta053 50x20 3641ta018 20x10 1538 ta054 50x20 3724ta019 20x10 1593 ta055 50x20 3611ta020 20x10 1591 ta056 50x20 3685ta021 20x20 2297 ta057 50x20 3705ta022 20x20 2099 ta058 50x20 3691ta023 20x20 2326 ta059 50x20 3743ta024 20x20 2223 ta060 50x20 3767ta025 20x20 2291 ta061 100x5 5493ta026 20x20 2226 ta062 100x5 5268ta027 20x20 2273 ta063 100x5 5175ta028 20x20 2200 ta064 100x5 5014ta029 20x20 2237 ta065 100x5 5250ta030 20x20 2178 ta066 100x5 5135ta031 50x5 2724 ta067 100x5 5246ta032 50x5 2834 ta068 100x5 5094ta033 50x5 2621 ta069 100x5 5448ta034 50x5 2751 ta070 100x5 5322ta035 50x5 2863 ta071 100x10 5770ta036 50x5 2829 ta072 100x10 5349

96

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

Table of the best-known makespan for Taillard's standard benchmark problems (continued).

Benchmark Size Best-known Makespan

ta073 100x10 5676 ta074 100x10 5781 ta075 100x10 5467 ta076 100x10 5303 ta077 100x10 5595 ta078 100x10 5617 ta079 100x10 5871 ta080 100x10 5845 ta081 100x20 6202 ta082 100x20 6183 ta083 100x20 6271 ta084 100x20 6269 ta085 100x20 6314 ta086 100x20 6364 ta087 100x20 6268 ta088 100x20 6401 ta089 100x20 6275 ta090 100x20 6434 ta091 200x10 10862 ta092 200x10 10480 ta093 200x10 10922 ta094 200x10 10889 ta095 200x10 10524 ta096 200x10 10329 ta097 200x10 10854 ta098 200x10 10730 ta099 200x10 10438 ta100 200x10 10675 ta101 200x20 11195 ta102 200x20 11203 ta103 200x20 11281 ta104 200x20 11275 ta105 200x20 11259 ta106 200x20 11189 ta107 200x20 11360 ta108 200x20 11334 ta109 200x20 11192 tall0 200x20 11288

97

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

Table o f the best-known makespan for Taillard's standard benchmark problems (continued).

Benchmark Size Best-knownMakespan

ta073 100x10 5676ta074 100x10 5781ta075 100x10 5467ta076 100x10 5303ta077 100x10 5595ta078 100x10 5617ta079 100x10 5871ta080 100x10 5845ta081 100x20 6202ta082 100x20 6183ta083 100x20 6271ta084 100x20 6269ta085 100x20 6314ta086 100x20 6364ta087 100x20 6268ta088 100x20 6401ta089 100x20 6275ta090 100x20 6434ta091 200x10 10862ta092 200x10 10480ta093 200x10 10922ta094 200x10 10889ta095 200x10 10524ta096 200x10 10329ta097 200x10 10854ta098 200x10 10730ta099 200x10 10438talOO 200x10 10675talOl 200x20 11195tal02 200x20 11203tal03 200x20 11281tal04 200x20 11275tal05 200x20 11259tal06 200x20 11189tal07 200x20 11360tal08 200x20 11334tal09 200x20 11192tallO 200x20 11288

97

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

APPENDIX E: JAVA CODE

/** * The source coude for the proposed hybrid GA */

package populationAgent; import java.util.Random; import java.io.*;

public class proposedGAExec

/** Creates a new instance of proposedGAExec */ public proposedGAExec() } public static void main(String[] args) {

Random r = new Random(); int seed = 65432;//Math.abs((int)System.currentTimeMillis()); int ExecutionTime[]= {

9000, 18000, 36000, 22500, 45000, 90000, 45000, 90000, 180000, 360000, 900000, 900000

1; try { BufferedWriter bf = new BufferedWriter(new

FileWriter("/export/home/shaahin/node"+args[0]+".log")); BufferedWriter bf2 = new BufferedWriter(new

FileWriter("/export/home/shaahin/permutations"+args[0]+".log"));

bfwrite("result\tCrossover\tSelection\tinstance\tPopulationSize\tCrossoverRate\tMutatio nRate\tElitismRate\tIGSRate\tExecutionTime\tActualTime\n");

bfflush(); for(int i=0; i<8; i++) bf2.write("Seed"+i+"\t");

bf2.write("Permutation\n"); bf2.flush();

double IGSRate=0.000; for(int Crossover=2; Crossover<=2; Crossover++)

// for(int Selection=(Crossover==1?2:1); Selection<=2; Selection++) for(int Selection=2; Selection<=2; Selection++)

98

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

A p pe n d ix E: Java C o de

/* *

* The source coude for the proposed hybrid GA*/package populationAgent; import j ava.util .Random; import java.io.*;

public class proposedGAExec {

/** Creates a new instance o f proposedGAExec */ public proposedGAExec() {}public static void main(String[] args){

Random r = new Random();int seed = 65432;//Math.abs((int)System.currentTimeMillis()); int ExecutionTime[]={

9000, 18000, 36000,22500,45000, 90000,45000, 90000,180000,360000, 900000, 900000

};try{BufferedWriter b f = new BufferedWriter(new

FileWriter("/export/home/shaahin/node"+args[0]+".log"));BufferedWriter bf2 = new BufferedWriter(new

FileWriter("/export/home/shaahin/permutations"+args[0]+".log"));

bf.write("result\tCrossover\tSelection\tinstance\tPopulationSize\tCrossoverRate\tMutationRate\tElitismRate\tIGSRate\tExecutionTime\tActualTime\n");

bf.flush();for(int i=0; i<8; i++)

bf2. write(" Seed"+i+"\t"); bf2.write("Permutation\n"); bf2.flush();

double IGSRate=0.000;for(int Crossover=2; Crossover<=2; Crossover++)

// for(int Selection=(Crossover=l?2:l); Selection<=2; Selection++) for(int Selection=2; Selection<=2; Selection++)

98

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

for(int instance=1; instance<=110; instance+=10)//instance=instance!=59?instance+2:instance+12)

for(int PopulationSize=60; PopulationSize<=60; PopulationSize+=20) for(double CrossoverRate=0.4; CrossoverRate<=0.4; CrossoverRate+=0.2) for(double MutationRate=0.20; MutationRate<=0.20; MutationRate+=0.05) for(double ElitismRate=0.1; ElitismRate<=0.1; ElitismRate+=0.05)

// for(double IGSRate=0.000; IGSRate<=0.000; IGSRate*=2) {

int seeds[]={ r.nextInt(),// //initSeed, r.nextInt(),//234512,//tournomentSeed, r.nextInt(),//18793, //crossoverSeed, r.nextInt(),//96412563,//mutationSeed, r.nextInt(),//62846236,//mutationRateSeed, r.nextInt(),//978236523,HIGSRateSeed, r.nextInt(),//12768127,//IGSDestructSeed, r.nextInt(),//123768761,//IGSAcceptanceSeed, 1,

proposedGA ga = new proposedGA( seeds[0],seeds[1],seeds[2],seeds[3],seeds[4],seeds[5],seeds[6], seeds[7], instance, Crossover, //LCSX Selection, //Tournoment PopulationSize, CrossoverRate, //CrossOver Rate MutationRate, //Mutation Rate ElitismRate, //Elitism Rate IGSRate, //IGS Rate 20*ExecutionTime[(int)((instance) / 10)], System.out);

long startTime = System.currentTimeMillis(); ga.execute(); long duration = System.currentTimeMillis()-startTime; bf.write(

ga.ind[ga.sortedInd[0]].fitness+"\t"+ Crossover+"\t"+ //LCSX Selection+"\t"+ //Tournoment instance+"\t"+ PopulationSize+"\t"+ CrossoverRate+"\t"+ //CrossOver Rate MutationRate+"\t"+ //Mutation Rate ElitismRate+"\t"+ //Elitism Rate IGSRate+"\t"+ //IGS Rate ExecutionTime[(int)((instance) / 10)]+"\t"+ duration+"\n"

99

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

for(int instance=l; instance<=l 10; instance+= 10)//instance=instance! =59?instance+2: instance+12)

for(int PopulationSize=60; PopulationSize<=60; PopulationSize+=20) for(double CrossoverRate=0.4; CrossoverRate<=0.4; CrossoverRate+=0.2) for(double MutationRate=0.20; MutationRate<=0.20; MutationRate+=0.05) for(double ElitismRate=0.1; ElitismRate<=0.1; ElitismRate+=0.05)

// for(double IGSRate=0.000; IGSRate<=0.000; IGSRate*=2){

int seeds[]={r.nextlnt(),// //initSeed, r.nextInt(),//234512,//toumomentSeed, r.nextlnt(),//l 8793, //crossoverSeed, r.nextInt(),//96412563,//mutationSeed, r.nextInt(),//62846236,//mutationRateSeed, r.nextInt(),//978236523,//IGSRateSeed, r.nextInt(),//12768127,//IGSDestructSeed, r.nextlnt(),//123768761 ,//IGSAcceptanceSeed,};

proposedGA ga = new proposedGA(seeds[0],seeds[l],seeds[2],seeds[3],seeds[4],seeds[5],seeds[6], seeds[7], instance,Crossover, //LCSX Selection, //Toumoment PopulationSize,CrossoverRate, //CrossOver Rate MutationRate, //Mutation Rate ElitismRate, //Elitism Rate IGSRate, //IGS Rate20*ExecutionTime[(int)((instance) /10)],System.out);

long startTime = System.currentTimeMillis(); ga.execute();long duration = System.currentTimeMillis()-startTime; bf.write(

ga.ind[ga.sortedInd[0]].fitness+"\t"+Crossover+"\t"+ //LCSX Selection+"\t"+ //Toumoment instance+"\t"+PopulationSize+"\t"+CrossoverRate+"\t"+ //CrossOver Rate MutationRate+"\t"+ //Mutation Rate ElitismRate+"\t"+ //Elitism Rate IGSRate+"\t"+ //IGS Rate ExecutionTime[(int)((instance) / 10)]+"\t"+ duration+"\n"

99

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

); bf.flush(); for(int i=0; i<8; i++) bf2.write(seeds[i]+"\t");

for(int i=0; i<ga.jobCount; i++) bf2.write(gaind[ga.sortedInd[0]].gene[i]+",");

bf2.newLine(); } bf2.flush();

} catch(IOException e) { }

} }

/* * proposedGAExec.java *

*1

package populationAgent; import j ava. io.PrintStream; import java.util.Random; 1**

* * @author Mandi Eskenasi/Shahin Rushan *1

public class proposedGA {

/** Creates a new instance of proposedGA */ int randSeed; int benchmark; int crossoverType; //1:LCSX 2:SBOX int selectionType; //1:Tournoment 2:Ranking public int tournomentSize = 2; int populationSize; double crossoverRate; double mutationRate; double elitismRate; double igsRate; long runDuration; public individual ind[]; public int sortedInd[]; public individual candidate[]; public int candidatelndex[]; public evaluator ev;

100

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

);bf.flush();for(int i=0; i<8; i++)

bf2.write(seeds[i]+"\t"); for(int i=0; i<ga.jobCount; i++)

bf2.write(ga.ind[ga.sortedlnd[0]].gene[i]+","); bf2.newLine();}bf2.flush();

}catch(IOException e){}

}}

/** proposedGAExec.java*

*/package populationAgent;import j ava.io.PrintStream;import java.util.Random;/**** @author Mahdi Eskenasi/Shahin Rushan */

public class proposedGA {

/** Creates a new instance of proposedGA */ int randSeed; int benchmark;int crossoverType; //1:LCSX 2:SBOXint selectionType; //l:Toumoment 2:Rankingpublic int toumomentSize = 2;int populationSize;double crossoverRate;double mutationRate;double elitismRate;double igsRate;long runDuration;public individual ind[];public int sortedInd[];public individual candidate[];public int candidatelndex[];public evaluator ev;

100

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

public int jobCount; public int machineCount; public Random rinit,

rTournoment, rCrossover, rMutation, rMutationRate, rIGSRate, rIGSDestructSeed, rIGSAcceptanceSeed;

public PrintStream printStr; int generation = 0; public proposedGA(

int initSeed, int tournomentSeed, int crossoverSeed, int mutationSeed, int mutationRateSeed, int IGSRateSeed, int IGSDestructSeed, int IGSAcceptanceSeed, int aBenchmark, int aCrossoverType, //1:LCSX 2:SBOX int aSelectionType, //1:Tournoment 2:Ranking int aPopulationSize, double aCrossoverRate, double aMutationRate, double anElitismRate, double anIGSRate, long aRunDuration, PrintStream aPrintStr ) {

benchmark = aBenchmark; crossoverType = aCrossoverType; selectionType = aSelectionType; populationSize = aPopulationSize; crossoverRate = aCrossoverRate; mutationRate = aMutationRate; elitismRate = anElitismRate; runDuration = aRunDuration; igsRate = anIGSRate; ind = new individual[populationSize]; sortedlnd = new int[populationSize]; candidate = new individual[populationSize]; candidatelndex = new int[populationSize]; ev = new evaluator(benchmark);

101

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

public int jobCount; public int machineCount; public Random rlnit,

rToumoment, rCrossover, rMutation, rMutationRate, rIGSRate, rIGSDestructSeed, rIGSAcceptanceSeed;

public PrintStream printStr; int generation = 0; public proposedGA(

int initSeed, int toumomentSeed, int crossoverSeed, int mutationSeed, int mutationRateSeed, int IGSRateSeed, int IGSDestructSeed, int IGSAcceptanceSeed, int aBenchmark,int aCrossoverType, //1:LCSX 2:SBOXint aSelectionType, //l:Toumoment 2:Rankingint aPopulationSize,double aCrossoverRate,double aMutationRate,double anElitismRate,double anIGSRate,long aRunDuration,PrintStream aPrintStr ){

benchmark = aBenchmark; crossoverType = aCrossoverType; selectionType = aSelectionType; populationSize = aPopulationSize; crossoverRate = aCrossoverRate; mutationRate = aMutationRate; elitismRate = anElitismRate; runDuration = aRunDuration; igsRate = anIGSRate; ind = new individual[populationSize]; sortedlnd = new int[populationSize]; candidate = new individual[populationSize]; candidatelndex = new int[populationSize]; ev = new evaluator(benchmark);

101

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

jobCount = ev.jobCount; machineCount = ev.machineCount;

// r = new Random(randSeed); rinit = new Random(initSeed); rTournoment = new Random(tournomentSeed); rCrossover = new Random(crossoverSeed); rMutation = new Random(mutationSeed); rMutationRate = new Random(mutationRateSeed); rIGSRate = new Random(IGSRateSeed); rIGSDestructSeed = new Random(IGSDestructSeed); rIGSAcceptanceSeed = new Random(IGSAcceptanceSeed);

printStr = aPrintStr; }

public void init() {

for(int i=1; i<populationSize; i++) {

ind[i] = new individual(jobCount, rInit); candidate[i] = new individual(jobCount); NEH neh = new NEH(ev, ind[i]); neh.CalculateReduced(); ind[i].copy(neh.getInd()); sortedlnd[i] = i;

} sortedlnd[0] = 0; NEH neh = new NEH(ev); neh.CalculateReduced(); ind[0] = new individual(jobCount); ind[0].copy(neh.getInd()); candidate[0] = new individual(jobCount);

}

public void sort() {

int itj, temp; for(i=0; i<populationSize; i++)

for(j=i+1 j<populationSize; j++) if(ind[sortedlnd[i]].fitness > ind[sortedInd[j]].fitness) {

temp = sortedlnd[i]; sortedInd[i]=sortedInd[j]; sortedlnd[j ]=temp;

} }

102

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

jobCount = ev.jobCount; machineCount = ev.machineCount;

// r = new Random(randSeed); rlnit = new Random(initSeed); rToumoment - new Random(toumomentSeed); rCrossover = new Random(crossoverSeed); rMutation = new Random(mutationSeed); rMutationRate = new Random(mutationRateSeed); rIGSRate = new Random(IGSRateSeed); rIGSDestructSeed = new Random(IGSDestructSeed); rIGSAcceptanceSeed = new Random(IGSAcceptanceSeed);

printStr = aPrintStr;}

public void init(){

for(int i= l; i<populationSize; i++){

ind[i] = new individual^obCount, rlnit); candidate[i] = new individual(jobCount);NEH neh = new NEH(ev, ind[i]); neh.CalculateReduced(); ind[i].copy(neh.getInd()); sortedInd[i] = i;

}sortedlnd[0] = 0;NEH neh = new NEH(ev);neh.CalculateReduced();ind[0] = new individual^ obCount);ind[0].eopy(neh.getlnd());candidate[0] = new individual^obCount);

}

public void sort(){

int i j , temp;for(i=0; i<populationSize; i++)

for(j=i+l y<populationSize; j++)if(ind[sortedInd[i]].fitness > ind[sortedInd[j]]. fitness){

temp = sortedlndfi]; sortedInd[i]=sortedInd[j ]; sortedInd[j ]=temp;

}}

102

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

public void evaluate() {

for(int i=0; i<populationSize; i++) {

ev.evaluate(ind[i]); } sort();

}

public void tournomentSelection() {

for(int i=0; i< (int)(populationSize*(1-elitismRate)); i++) {

int bestIndex = rTournoment.nextInt(populationSize); int randlndex=0; for(int j=1; j<tournomentSize; j++) {

randlndex = rTournoment.nextlnt(populationSize); if(ind[bestIndex].fitness>ind[randIndex].fitness)

bestIndex = randlndex; } candidatelndex[i]=randlndex;

} } public void rankingSelection() {

candidatelndex = new int[populationSize]; // Random r = new Random();

int j; float tempSum, totalSum=0.0f, k;

for(int i=0; i<populationSize; i++) {

ind[sortedInd[i]].rank = 2*(populationSize - i+1)/(population Size-1); totalSum +=ind[sortedInd[i]].rank;

}

for(int i=0; i<populationSize; i++) {

k = rTournoment.nextFloat(rtotalSum; j=0; tempSum = 0; whilea<populationSize) {

tempSum += 1/(ind[j].rank);

103

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

public void evaluate(){

for(int i=0; i<populationSize; i++){

ev.evaluate(ind[i]);}sort();

}

public void toumomentSelection(){

for(int i=0; i< (int)(populationSize*(l-elitismRate)); i++){

int bestlndex = rToumoment.nextlnt(populationSize); int randlndex=0;for(int j= 1; j<toumomentSize; j++){

randlndex = rToumoment.nextInt(populationSize); if(ind[bestlndex] .fitness>ind[randlndex] .fitness)

bestlndex = randlndex;}candidatelndex[i]=randlndex;

}}public void rankingSelection(){

candidatelndex = new int[populationSize];// Random r - new Random();

int j;float tempSum, totalSum=0.0f, k;

for(int i=0; i<populationSize; i++){

ind[sortedInd[i]].rank = 2*(populationSize - i+l)/(populationSize-l); totalSum +=ind[sortedInd[i]].rank;

}

for(int i=0; i<populationSize; i++){

k = rToumoment.nextFloat()*totalSum; j=0;tempSum = 0; while(j<populationSize){

tempSum += l/(ind[j].rank);

103

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

if(k>tempSum) j++;

else break;

} candidateIndex[i] = j;

} return;

}

public individual[] LCSXCrossover(int indexl, int index2)

{ boolean indl []= new boolean[jobCount]; boolean ind2[]= new boolean[jobCount]; int opt[][]=new int[jobCount+1][jobCount+1];

individual offspring[] = new individual[2]; offspring[0] = new individual(jobCount); offspring[1] = new individual(jobCount); int j,k; for(j=0;j<jobCount; j++)

{ indl[j]=false; ind2[j]=false;

} for(j=jobCount - 1; j>=0; j--)

for(k=jobCount - 1; k>=0; k--) { if(ind[indexl].gene[j]==ind[index2].gene[k])

opt[j][k]=opt[j+1][k+1]+1; else

opt[j][k]= Math.max(opt[j+1][k],opt[j][k+1]); }

j=0; k=0; while(j<jobCount & k<jobCount)

{ if(ind[indexl].gene[j]==ind[index2].gene[k])

{ indl[j]=true; ind2 [k]=true, j++; k++;

} else

if(opt[j+1][k]>=opt[j][k+1]) j++;

104

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

if(k>tempSum)j++;

elsebreak;

}candidatelndex[i] = j;

}return;

public individual [] LCSXCrossover(int index 1, int index2){

boolean indl []= new boolean[jobCount]; boolean ind2[]= new boolean[jobCount]; int opt[][]=new int[jobCount+l][jobCount+l];

individual offspring[] = new individual[2]; offspring[0] = new individual^obCount); offspring[l] = new individual(jobCount); int j,k;for(j=0;j<jobCount; j++){

indl[j]=false;ind2[j]=false;

}for(j=jobCount -1 ; j>=0; j - )

for(k=jobCount -1 ; k>=0; k—){if(ind[indexl].gene[j]==ind[index2].gene[k])

opt □ ] [k]=opt □+1 ] [k+1 ]+1; else

opt[j ] [k]= Math.max(opt[j+1 ] [k] ,opt [j ] [k+1 ]);}

j=0;k=0;while(j<jobCount & kcjobCount){

if(ind[index 1 ] .gene[j ]==ind[index2] .gene[k]){

indl[j]=true;ind2[k]=true;j++;k++;

}else

if(opt[j+1 ] [k]>=opt[j][k+l ]) j++;

104

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

else k++; I k=0; int 1=0; for(j=0ij<jobCount; j++) {

if(indl [j]) offspring[0].geneW=ind[index1].gene[j];

else {

while(ind2[k]) k++; offspring[0].gene[Thind[index2].gene[k++];

} if(ind2W)

offspring[1].geneW=ind[index2].gene[j]; else

{ while(indl[1]) I++;

offspring[1].gene[j]=ind[indexl].gene [1+-1];

I I

return offspring;

I

public individual[] SBOXCrossover(int indexl, int index2)

{ boolean[J block = new boolean[obCount]; boolean[J blockl --- new boolean[jobCount]; Boolean[] block2 = new boolean[jobCount];

for(int i=0; i< jobCount; i++) {

block[i]—(ind[candidateIndex[indexl]].gene[i]==ind[candidateindex[index2]].gene[i]);

I

block[0] = block[0] & block[1]; for(int i=1; i< jobCount-1; i++) { block[i]=(block[i-1] & block[i])1(block[i] & block[i+1]);

}

block[jobCount-1] = block[jobCount-2] & block[jobCount-1]; individual[] offspring = new individual[2];

offspring[0]= new individual(jobCount);

105

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

else k++;}k=0; int 1=0;for(j=0y<jobCount; j++){

if(indl[j])offspring[0] .gene[j ]=ind[index 1 ] .gene[j ];

else {

while(ind2[k]) k++;offspring[O].gene0]=ind[index2].gene[k++];

}if(ind2[j])

offspring[l].gene{j]=ind[index2].gene(j];else{

while(indl[lj) 1++; offspring[ 1 ].gene[j]=ind[index 1 ].gene[l++];

}}

return offspring;

public individual^ SBOXCrossover(int index 1, int index2){

booleanf] block = new boolean[jobCount]; boolean[] blockl = new boolean[jobCount]; boolean[] block2 = new boolean[jobCount];

for(int i=0; i< jobCount; i++){

block[i]=(ind[candidateIndex[indexl]].gene[i]==ind[candidateIndex[index2]].gene[i]);}

block[0] = block[0] & block[lj; for(int i= l; i< jobCount-1; i++){block[i]-(block[i-l] & block[i])|(block[i] & block[i+lJ);

}

block{jobCount-l] = bIock[jobCount-2] & block[jobCount-l]; individual[] offspring = new individual[2];

offspring[0]= new individual(jobCount);

105

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

offspring[11= new individual(jobCount);

for(int i=0; i<jobCount; i++)

{ blockl [i]=block[i]; block2 [i]=block[i] ; if(block[i])

{ offspring[0].gene[i]=ind[candidateIndex[index1]].gene[i]; offspring[1].gene[i]=ind[candidateIndex[index2]].gene[i];

} }

int cPoint = rCrossover.nextInt(jobCount); for(int i=0; i<=cPoint; i++)

{ if(!block[i])

{ offspring[0].gene[i]=ind[candidateIndex[index1]].gene[i]; for(int j=0; j<jobCount; j++)

{ if( !block2 [j ] &&

(offspring[0].gene[i]==ind[candidateIndex[index2]].gene[j])) {

block2[j] = true; break;

}

} } if(!block[i])

{ offspring[1].gene[i]=ind[candidateIndex[index2]].gene[i]; for(int j=0; j<jobCount; j++)

{ if(!b1ock 1 [j] &&

(offspring[ l ] . gene [i] ==ind[candidateIndex [indexl] ] . gene [j ]))

{ blockl [j] = true; break;

}

} }

}

106

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

offspring[l]= new individual(jobCount);

for(int i=0; i<j obCount; i++){

block 1 [i]=block[i]; block2 [i]=block[i]; if(block[i]){

ofTspring[0].gene[i]=ind[candidateIndex[indexl]].gene[i];offspring[l].gene[i]=ind[candidateIndex[index2]].gene[i];

}}

int cPoint = rCrossover.nextInt(jobCount); for(int i=0; i<=cPoint; i++){

if(!block[i]){

offspring[0] .gene[i]=ind[candidatelndex[index 1 ]] .gene[i]; for(int j=0; j<jobCount; j++){

if(!block2[j] && (offspring[0].gene[i]==ind[candidatelndex[index2]].gene[j]))

{block2[j] = true; break;

}

}}if(!block[i]){

offspring[l].gene[i]=ind[candidateIndex[index2]].gene[i]; for(int j=0; j<jobCount; j++){

if(!blockl[j] && (offspring[l].gene[i]==ind[candidateIndex[indexl]].gene[j]))

{blockl [j] = true; break;

}

}}

}

106

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

int i = cPoint+1; int j =0; while(true) {

if(i>=jobCount II j >= jobCount) break;

while(block[i] && i< (jobCount-1)) i-F-F;

while(block2[j] && j< (jobCount-1)) jam;

if(i< jobCount && j< jobCount) offspring[0].gene[i]=ind[candidateIndex[index2]].gene[j];

else break;

i++; j++;

} i = cPoint+1; j =0; while(true) {

if(i>=johCount II j >= jobCount) break;

while(block[i] && i< (jobCount-1)) i-H-;

while(blockl[j] && j< (jobCount-1)) j++;

if(i< jobCount && j< jobCount) offspring[1].gene[i]=ind[candidateIndex[indexl]].gene[j];

else break;

i++; j++;

}

return offspring; }

public void doCrossover() {

individual offspring[] = new individual[2]; offspring[0] = new individual(jobCount); offspring[1] = new individual(jobCount);

for(int i=0; i< (int)(populationSize*(1-elitismRate)); i+=2) {

107

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

int i = cPoint+1; int j =0; while(true){

if(i>=jobCount || j >= jobCount) break;

while(block[i] && i< (jobCount-1)) i++;

while(block2[j] && j< (jobCount-1))j++;

if(i< jobCount && j< jobCount) offspring[0].gene[i]=ind[candidatelndex[index2]].gene[j];

else break;

i++;j++;

}i = cPoint+1;j =0;while(true){

if(i>=jobCount || j >= jobCount) break;

while(block[i] && i< (jobCount-1)) i++;

while(blockl [j] && j< (jobCount-1))j++;

if(i< jobCount & & j< jobCount)offspring[ 1 ] ,gene[i]=ind[candidatelndex[index 1 ]] .gene[j];

else break;

i++;j++;

return offspring;

public void doCrossover(){

individual offspring[] = new individual[2]; offspring[0] = new individual^obCount); offspring[l] = new individual(jobCount);

for(int i=0; i< (int)(populationSize*(l-elitismRate)); i+=2) {

107

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

if(rCrossover.nextFloat()<=crossoverRate) {

if(crossoverType==2) offspring = SBOXCrossover(candidateIndex[i], candidateIndex[i+1]);

else offspring = LC SXCrossover(candidateIndex [i] , candidateIndex[i+1]);

} else {

offspring[0].copy(ind[candidateIndex[i]]); offspring[1].copy(ind[candidateIndex[i+1]]);

} candidate[i].copy(offspring[0]); candidate [i+1].copy(offspring[1]);

} }

public void doMutation() {

int pl, p2, temp; evaluator ev = new evaluator(benchmark); IGS igs = new IGS(ind[0], ev, rMutation, runDuration, printStr); for(int i=0; i<populationSize*(1-elitismRate); i++) {

if(rMutationRate.nextFloat()<=mutationRate) candidate[i].copy(igs.CalculateReduced(candidate[i]));

} }

public void doElitism() {

int elitSize = (int)(populationSize*elitismRate); int j = populationSize -elitSize; int i=0; while(j < populationSize) {

candidate[j].copy(ind[sortedInd[i++]]); j++;

} evaluator ev= new evaluator(benchmark);

/* i = 0; while(ind[sortedInd[i]].igsDone & i<elitSize)

i-H-;

if(i==elitSize) i = r.nextlnt(populationSize - elitSize);

else

108

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

if(rCrossover.nextFloat()<=crossoverRate){

if(crossoverType==2) offspring = SBOXCrossover(candidateIndex[i], candidatelndex[i+l]);

elseoffspring = LCSXCrossover(candidateIndex[i], candidatelndex[i+l]);

}else{

offspring[0].copy(ind[candidateIndex[i]]); offspring[ 1 ] .copy(ind[candidateIndex[i+1 ]]);

}candidate[i].copy(offspring[0]); candidate [i+1 ] .copy(offspring[ 1 ]);

}

public void doMutation(){

int p i, p2, temp;evaluator ev = new evaluator(benchmark);IGS igs = new IGS(ind[0], ev, rMutation, runDuration, printStr); for(int i=0; i<populationSize*(l-elitismRate); i++){

if(rMutationRate.nextFloat()<=mutationRate)candidate[i].copy(igs.CalculateReduced(candidate[i]));

}}

public void doElitism(){

int elitSize = (int)(populationSize*elitismRate); int j = populationSize -elitSize; int i=0;while(j < populationSize){

candidate[j].copy(ind[sortedInd[i++]]);j++;

}evaluator ev= new evaluator(benchmark);

/* i = 0;while(ind[sortedInd[i]].igsDone & i<elitSize)

i++; if(i==elitSize)

i = r.nextInt(populationSize - elitSize); else

108

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

i = populationSize - elitSize + i; *1

i = populationSize - elitSize; IGS igs = new IGS(ind[sortedInd[0]],ev , rIGSDestructSeed,

rIGSAcceptanceSeed, runDuration/3, System.out); if(rIGSRate.nextDouble()< igsRate) {

candidate[i].copy(igs.AlgIGS(candidate[i],2)); // candidate[i].copy(igs.AlgIGS(ind[sortedInd[0]],2));

candidate[i].igsDone = true; // runDuration += runDuration/2;

} }

public void evolve() {

if(selectionType=2) rankingSelection();

else tournomentSelection();

doCrossover(); doMutation(); doElitism(); for(int i=0; i<populationSize; i++)

ind[i]=candidate[i]; generation++; evaluate();

} public void execute() {

init(); evaluate(); float best = ind[sortedlnd[0]].fitness; int bestgen=0;

long startTime = System.currentTimeMillis(); while (System.currentTimeMillis() <= (startTime + runDuration)) {

evolve(); if (best > ind[sortedlnd[0]].fitness) {

best = ind[sortedlnd[0]].fitness; bestgen = generation;

} if(best<=ev.optimal[benchmark-1]) {

109

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

i = populationSize - elitSize + i;*/

i = populationSize - elitSize;IGS igs = new IGS(ind[sortedInd[0]],ev , rIGSDestructSeed,

rIGSAcceptanceSeed, runDuration/3, System.out); if(rIGSRate.nextDouble()< igsRate){

candidate [i] .copy(igs. AlgIGS(candidate[i] ,2));// candidate[i].copy(igs.AlgIGS(ind[sortedInd[0]],2));

candidate [ij.igsDone = true;// runDuration += runDuration/2;

}}

public void evolve(){

if(selectionType=2)rankingSelection();

elsetoumomentSelection();

doCrossover();doMutation();doElitism();for(int i=0; i<populationSize; i++)

ind[i]=candidate[i]; generation++; evaluate();

}public void execute(){

init();evaluate();float best = ind[sortedlnd[0]].fitness; int bestgen=0;

long startTime = System.currentTimeMillis(); while (System.currentTimeMillis() <= (startTime + runDuration)) {

evolve();if (best > ind[sortedlnd[0]]. fitness){

best = ind[sortedlnd[0]].fitness; bestgen = generation;

}if(best<=ev.optimal[benchmark-1 ]){

109

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

long total_time=System.currentTimeMillis()-startTime; printStr.println("Time: "+ total_time); break;

} printStr.println(generation+":"+best);

} for(int i=0; i<jobCount; i++)

printStr.print(ind[sortedInd[0]].gene[i]+"/"); printStr.println(); printStr.println("best fitness:" +best +" Total generation:"+generation+" Best

Generation: "+bestgen); long total_time=System.currentTimeMillisO-startTime; printStr.println("Total Time: "+ total_time);

}

}

/* * IGS.java

*/

package populationAgent; import j ava. io.PrintStream ; import java.util.Random;

import populationAgent.*; 1** *

* @author Mandi Eskenasi/Shahin Rushan */

public class IGS {

individual Ind; evaluator Eval; int aux_formin; float Mneh[]; float[][] Eneh,Qneh,Fneh; /** Creates a new instance of IGS */ int partialPermutation[]; int finalPermutation[];

int number_ of_ swaps=2; int removed_job_count = 4; int p; int[] removed; int[] partial; long Duration;

110

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

long total_time=System.currentTimeMillis()-startTime;printStr.println("Time: "+ total time);break;

}printStr.println(generation+": "+best);

}for(int i=0; i<jobCount; i++)

printStr.print(ind[sortedInd[0]].gene[i]+"/");printStr.printlnO;printStr.println("best fitness:" +best +" Total generation:"+generation+" Best

Generation: "+bestgen);long total_time=System.currentTimeMillis()-startTime; printStr.println("Total Time: "+ total time);

}

}

/** IGS.java

*/package populationAgent; import java.io.PrintStream; import java.util.Random;

import populationAgent.*;/**** @author Mahdi Eskenasi/Shahin Rushan */

public class IGS {

individual Ind; evaluator Eval; int auxform in; float Mneh[]; float[][] Eneh,Qneh,Fneh;/** Creates a new instance o f IGS */ int partialPermutation[]; int finalPermutation[];

int number_of_swaps=2; int removed j o b count = 4; int p;int[] removed; int[] partial; long Duration;

110

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

Random r; Random rAcc; PrintStream printStr;

public IGS(individual anlnd, evaluator anEval, Random rand, long aDuration, PrintStream aPrintStr) {

Ind = anlnd; Eval = anEval; aux_formin=0; Eneh = new float[Eval.jobCount+1][Eval.machineCount+1]; Qneh = new float[Eval.jobCount+1] [Eval.machineCount+2]; Fneh = new float[Eval.jobCount+1] [Eval.machineCount+1]; Mneh = new float [Eval.jobCount+1]; removed = new int[removed_job_count]; partial = new int[Eval.jobCount];

partialPermutation = new int[Eval.jobCount]; finalPermutation = new int[Eval.jobCount]; r = rand; Duration = aDuration; printStr = aPrintStr;

} public IGS(individual anlnd, evaluator anEval, Random randDestruct,

Random randAccept, long aDuration, PrintStream aPrintStr)

Ind = anlnd; Eval = anEval; aux_formin=0; Eneh = new float[Eval.jobCount+1] [Eval.machineCount+1]; Qneh = new float[Eval.jobCount+1][Eval.machineCount+2] ; Fneh = new float[Eval.jobCount+1][Eval.machineCount+1]; Mneh = new float [Eval.jobCount+1]; removed = new int[removed_job_count]; partial = new int[Eval.jobCount];

partialPermutation = new int[Eval.jobCount]; finalPermutation = new int[Eval.jobCount]; r = randDestruct; rAcc = randAccept; Duration = aDuration; printStr = aPrintStr;

} private void Zero(float M[], float E[][], float Q[][], float F[][]) {

111

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

Random r;Random rAcc;PrintStream printStr;

public IGS(individual anlnd, evaluator anEval, Random rand, long aDuration, PrintStream aPrintStr) {

Ind = anlnd;Eval = anEval; aux_formin=0;Eneh = new float[Eval.jobCount+l][Eval.machineCount+l];Qneh = new float[Eval.jobCount+l][Eval.machineCount+2];Fneh = new float[Eval.j obCount+1 ] [Eval.machineCount+1 ];Mneh = new float [Eval.jobCount+1]; removed = new int[removed_job_count]; partial = new int[Eval.j obCount];

partialPermutation = new int[Eval .jobCount]; fmalPermutation = new int[Eval.jobCount]; r = rand;Duration = aDuration; printStr = aPrintStr;

}public IGS(individual anlnd, evaluator anEval, Random randDestruct,

Random randAccept, long aDuration, PrintStream aPrintStr) {

Ind - anlnd;Eval = anEval; aux_formin=0;Eneh = new float[Eval.jobCount+l][Eval.machineCount+l];Qneh = new float[Eval.jobCount+l][Eval.machineCount+2];Fneh = new float[Eval.jobCount+l][Eval.machineCount+l];Mneh = new float [Eval.jobCount+1]; removed = new int[removedJob_count]; partial = new int[Eval.jobCount];

partialPermutation = new int[Eval.jobCount]; fmalPermutation = new int[Eval.jobCount]; r - randDestruct; rAcc = randAccept;Duration = aDuration; printStr = aPrintStr;

}private void Zero(float M[], float E[][], float Q[][], float F[][]){

111

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

for(int i=0; i< Eval.jobCount+1; i++) {

M[i] = 0.0f; for(int j=0; j< Eval.machineCount+1; j++) {

E[i][j]=0.0f; Q[i][j]=0.0f; F[i][j]=0.0f;

} Q[i] [Eval.machineCount+1]=0.0f;

} }

public individual A1gIGS(individual Ord, int LocalType) {

int i, j; individual best, OrdAux; float T, makespans,makespanaux,delta,bestmakespan; int ite; int JobCount, MachineCount; JobCount = Eval.jobCount; MachineCount = Eval.machineCount;

OrdAux = new individual(JobCount); best = new individual(JobCount); best.copy(Ord); ite = 0; //inicializamos la temperatura //vamos a calcular los tiempos totales de todos los trabajos y todas las maquinas // we initialized the temperature // we are going to calculate the total times of all the works and all the machines T=O; for(i=0; i< JobCount; i++) for(j=0;j<MachineCount;j++)

T += Eval.p[j][i]; T = 0.66P(T/(JobCount*MachineCount*10.00);

//ILS //LOCALSEARCH if(LocalType-1) Ord.copy(ILSLocal(Ord));

else Ord.copy(ILSLocalComplete(Ord));

makespans=Makespan(Ord); bestmakespan=makespans;

112

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

for(int i=0; i< Eval.jobCount+1; i++){

M[i] = O.Of;for(int j=0; j< Eval.machineCount+1; j++){

E[i][j]=O.Of;Q[i]U]=O.Of;F[i][j]=O.Of;

}Q[i][Eval.machineCount+l]=O.Of;

}}

public individual AlgIGS(individual Ord, int LocalType){

int i, j;individual best, OrdAux;float T, makespans,makespanaux,delta,bestmakespan; int ite;int JobCount, MachineCount;JobCount = Eval.jobCount;MachineCount = Eval.machineCount;

OrdAux = new individual(JobCount); best = new individual(JobCount); best.copy(Ord); ite - 0;//inicializamos la temperatura//vamos a calcular los tiempos totales de todos los trabajos y todas las maquinas // we initialized the temperature// we are going to calculate the total times o f all the works and all the machines T=0;for(i=0; i< JobCount; i++)

for(j=0;j<MachineCount;i++)T += Eval.p[j][i];

T = 0.66fl‘(T/(JobCount*MachineCount*10.0f));

//ILS//LOCALSEARCH if(LocalType== 1)

Ord.copy(ILSLocal(Ord));else

Ord.copy(ILSLocalComplete(Ord));

makespans=Makespan(Ord); bestmakespan=makespans;

112

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

OrdAux.copy(Ord); long EndTime = System.currentTimeMillis()+Duration;

while(System.currentTimeMillis()<=EndTime) {

OrdAux.copy(CalculateReduced(OrdAux)); Ord.evaluated = false;

11*****************************************/

//LOCALSEARCH if(LocalType=1) OrdAux.copy(ILSLocal(OrdAux));

else OrdAux.copy(ILSLocalComplete(OrdAux));

++ite; //ACCEPTANCECRITERION

makespanaux = Makespan(OrdAux); delta = makespans-makespanaux; if (delta>=0) //nueva mejor solucion // new better solution { makespans = makespanaux; if (makespans<bestmakespan) {

bestmakespan = makespans; best.copy(OrdAux); Eval.evaluate(best); printStr.println("best:"+bestmakespan+" cycle: "

+ite+" steps: "+ite); for(i=0; i<Ord.size; i++)

printStr.print(best.gene[i]+"/"); printStr.println(); if(best.fitness<=Eval.optimal[Eval.instance-1]) {

break; }

Ord.copy(OrdAux); }

} else //no es mejor solucion, hay que ver si se acepta // it is not better solution, is

necessary to see if it is accepted { if(rAcc.nextFloat()<=Math.exp((delta/T))) { makespans = makespanaux; Ord.copy(OrdAux);

113

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

OrdAux.copy(Ord);long EndTime = System.currentTimeMillis()+Duration;

while(System.currentTimeMillis()<=EndTime){

OrdAux.copy(CalculateReduced(OrdAux));Ord.evaluated = false;

//LOCALSEARCH if(LocalT y p e = 1)

OrdAux.copy(ILSLocal(OrdAux));else

OrdAux.copy(ILSLocalComplete(OrdAux));-H-ite;//ACCEPT ANCECRITERION

makespanaux = Makespan(OrdAux); delta = makespans-makespanaux;if (delta>=0) //nueva mejor solucion // new better solution{makespans - makespanaux; if (makespans<bestmakespan){

bestmakespan = makespans; best.copy(OrdAux);Eval.evaluate(best);printstr.println("best:"+bestmakespan+" cycle: "

+ite+" steps: "+ite); for(i=0; i<Ord.size; i++)

printStr.print(best.gene[i]+"/");printStr.println();if(best.fitness<=Eval.optimal[Eval.instance-1 ]){

break;}

Ord.copy(OrdAux);}

}else //no es mejor solucion, hay que ver si se acepta // it is not better solution,

necessary to see if it is accepted{if(rAcc.nextFloat()<=Math.exp((delta/T))){makespans = makespanaux;Ord.copy(OrdAux);

113

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

} else { OrdAux.copy(Ord);

} I if(ite%1000==0)

printStr.println(ite); } // del while return best;

} private float MinArray(float[] Mneh,int start,int end) {

float MinPoint= 10000000;; for(int i=start; i<=end; i++)

if(Mneh[i]<MinPoint) {

aux_formin = i; MinPoint = Mneh[i];

} return MinPoint;

1 public individual ILSLocalComplete(individual Ord) {

int point1j jobaux; float makel; int JobCount = Eval.jobCount; individual Ordaux;

Ordaux = new individual(JobCount); individual OrdBest = new individual(JobCount); OrdBest.copy(Ord); Eval.evaluate(OrdBest); float bestMakeSpan = OrdBest.fitness;

// Random r = new Random(); int lastpoint = -1;

// do { // pointl = r.nextInt(Ord. size); // while(pointl=lastpoint) // pointl = r.nextInt(Ord. size);

for(point1=0; pointl<Ord. size ; pointl++) {

lastpoint = pointl; jobaux = Ord.gene[pointl];

114

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

}else{OrdAux.copy(Ord);

}}if(ite% 1000= 0)

printStr.println(ite);} // del while return best;

}private float MinArray(float[] Mneh,int start,int end) {

float MinPoint= 10000000;; for(int i=start; i<=end; i++)

if(Mneh[i]<MinPoint){

aux formin -- i;MinPoint = Mneh[i];

}return MinPoint;

}public individual ILSLocalComplete(individual Ord){

int pointl j jobaux; float makel;int JobCount = Eval.jobCount; individual Ordaux;

Ordaux = new individual JobCount); individual OrdBest = new individual(JobCount); OrdBest.copy(Ord);Eval.evaluate(OrdBest);float bestMakeSpan = OrdBest.fitness;

// Random r - new Random(); int lastpoint = -1;

// do{// pointl = r.nextlnt(Ord.size);// w hile(pointl=lastpoint)// pointl = r.nextlnt(Ord.size);

for(pointl=0; pointl<Ord.size; pointl-H-){

lastpoint = pointl; jobaux = Ord.gene[pointl];

114

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

Zero(Mneh, Eneh, Qneh, Fneh); fora =0;j<=point1-1;j++) Ordaux.gene[j] = Ord.gene[j];

for(j=point1+1; j<Ord. size; j++) Ordaux.gene[j-1] = Ord.gene[j];

NEHMakespans(Eneh,Qneh,Fneh,Ordaux,jobaux); makel = MinAmay(Mneh,l,JobCount);

for(j=1; j<=aux_formin-1; j++) Ord.gene[j-1] = Ordaux.gene[j-1];

Ord.gene[aux_formin-l] = jobaux;

j=(aux_formin+1); while(j <= JobCount) { Ord.gene[j-1] = Ordaux.gene[j-2]; j++;

} Eval.evaluate(Ord); make1=Ord. fitness; if(makel<bestMakeSpan) {

OrdBest.copy(Ord); bestMakeSpan = makel;

} // else // break;

}//while(true); /* if(makel<makeini)

{ Ord. copy(Ordaux); return Ord;

} else*/

return OrdBest; } public individual ILSLocal(individual Ord) {

int pointl,j ijobaux; //float[][] Eneh,Qneh,Fneh; //float[] Mneh; float makel; int JobCount = Eval.jobCount;

115

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

Zero(Mneh, Eneh, Qneh, Fneh); for(j=0;j<=pointl-1 ;j++)

Ordaux.gene[j] = Ord.gene[j]; for(j=pointl+l; j<Ord.size; j++)

Ordaux.gene[j-l] = Ord.gene[j];

NEFIMakespans(Eneh,Qneh,Fneh,Ordauxjobaux); makel = MinArray(Mneh,l,JobCount);

for(j= l; j<=aux_formin-1; j++)Ord.gene[j-l] = Ordaux.gene[j-l];

Ord.gene[aux_formin-1 ] = jobaux;

j=(aux_formin+1); while(j <= JobCount){Ord.gene[j-l] = Ordaux.gene[j-2];j++;

}Eval.evaluate(Ord); make 1 =Ord. fitness; if(make 1 <bestMakeSpan){

OrdBest.copy(Ord); bestMakeSpan = makel;

}// else // break;

}//while(true);/* if(makel<makeini)

{Ord. copy (Ordaux); return Ord;

}else*/

return OrdBest;}public individual ILSLocal(individual Ord){

int pointl jjobaux;//float[][] Eneh,Qneh,Fneh;//float[] Mneh; float makel;int JobCount = Eval JobCount;

115

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

individual Ordaux; Ordaux = new individual(JobCount); individual OrdBest = new individual(JobCount); OrdBest.copy(Ord); Eval.evaluate(OrdBest); float bestMakeSpan = OrdBest.fitness;

// Random r = new Random(); int lastpoint = -1;

do { pointl = r.nextlnt(Ord.size); while(point1==lastpoint)

pointl = r.nextlnt(Ord.size); lastpoint = pointl; jobaux = Ord.gene[pointl];

Zero(Mneh, Eneh, Qneh, Fneh); for(j=0;j<=point1-1;j++) Ordaux.gene[j] = Ord.gene[j];

for(j=pointl+1; j<Ord.size; j++) Ordaux.gene[j-1] = Ord.gene[j];

NEHMakespans(Eneh,Qneh,Fneh,Ordaux,j obaux); makel = MinArray(Mneh,l,JobCount);

for(j=1; j<=aux_formin-1; j++) Ord.gene[j-1] = Ordaux.gene[j-1];

Ord.gene[aux_formin-l] = jobaux;

j=(aux_formin+1); while(j <= JobCount) { Ord.gene[j-1] = Ordaux.gene[j-2]; j++;

} Eval.evaluate(Ord); make1=Ord.fitness; if(makel<bestMake Span) {

OrdBest.copy(Ord); bestMakeSpan = makel;

} else

break; } while(true);

/* if(make 1 <makeini)

116

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

individual Ordaux;Ordaux = new individual JobCount); individual OrdBest = new individual(JobCount); OrdBest.copy(Ord);Eval .evaluate(OrdBest);float bestMakeSpan = OrdBest.fitness;

// Random r - new Random(); int lastpoint = -1;

do{pointl = r.nextlnt(Ord.size); while(point 1 ==lastpoint)

pointl = r.nextlnt(Ord.size); lastpoint = pointl; jobaux = Ord.gene[pointl];

Zero(Mneh, Eneh, Qneh, Fneh); for(j=0;j<=pointl-l;j++)

Ordaux.gene[j] = Ord.gene[j]; for(j=pointl+l; j<Ord.size; j++)

Ordaux.gene[j-l] - Ord.gene[j];

NEHMakespans(Eneh,Qneh,Fneh,Ordauxjobaux); makel = MinArray(Mneh,l, JobCount);

for(j=1; j<=aux_formin-1; j++)Ord.gene[j-l] = Ordaux.gene[j-l];

Ord.gene[aux_formin-l] = jobaux;

j=(aux_formin+1); while(j <= JobCount){Ord.gene[j-l] = Ordaux.gene[j-2];j++;

}E val. evaluate(Ord); make 1 =Ord.fitness; if(make 1 <bestMakeSpan){

OrdBest.copy(Ord); bestMakeSpan = makel;

}else

break;}while(true);

/* if(makel<makeini)

116

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

{ Ord. copy(Ordaux); return Ord;

} else*/

return OrdBest; }

public void NEHMakespans( float Eneh[][], float Qneh[][], float Fneh[][],

individual Orden, int job) { int 1, j; float makel, aux; float eidle[][]; int JobCount = Eval.jobCount; int MachineCount= Eval.machineCount; int i=JobCount;

eidle = new float[JobCount][JobCount]; //MEJORAS DE TAILLARD //Tipo 0 (flowshop estandar) // TAILLARD IMPROVEMENTS// Type 0 (flowshop standard)

//Calculamos E for(1=1; l<=i-1;1++)

for(j=1; j<=MachineCount; j++) Eneh[l][j]=Math.max(Eneh[l][j-1],Eneh[1-1][j]) + Eval.p[j-1][Orden.gene[1-11-1];

//Calculamos Q for(1=i-1;1>=1;1--) for(j=MachineCount; j>= 1; j--)

Qneh[l][j]=Math.max(Qneh[l][j+1],Qneh[1+1][j])+Eval.p[j-1][Orden.gene[1-1]-1]; //Calculamos F for(1=1;1<=i; l++) for(j=1;j<=MachineCount;j++)

Fneh[1] [j]=Math.max(Fneh[1] [j-1] ,Eneh[1-1] [j])+Eval.p [j -1] [j ob-1];

//calulamos los partial makespans for(1=1;1<=i;1++) { make1=-10000; for(j=1;j<=MachineCount;j++)

{

117

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

{Ord.copy(Ordaux); return Ord;

}else*/

return OrdBest;

public void NEHMakespans( float Eneh[][], float Qneh[][], float Fneh[][],

individual Orden, int job){int 1, j;float m akel, aux; float eidle[][];int JobCount = Eval.jobCount;int MachineCount= Eval.machineCount;int i=JobCount;

eidle = new float[JobCount] [JobCount];//MEJORAS DE TAILLARD //Tipo 0 (flowshop estandar)// TAILLARD IMPROVEMENTS// Type 0 (flowshop standard)

//Calculamos E for(l= 1; l<=i-1 ;1++)

for(j=l; j<=MachineCount; j++)Eneh[l][j]=Math.max(Eneh[l][j-1 ],Eneh[l-1 ][j]) + Eval.p[j-1 ][Orden.gene[l-1 ]-l ];

//Calculamos Q for(l=i-l;l>=l;l--)

for(j=MachineCoimt; j>= 1; j —)Qneh[l][j]=Math.max(Qneh[l][j+l],Qneh[l+l ][j])+Eval.p[j - 1 ][Orden.gene[l-1 ]-l ];

//Calculamos F for(l=l;l<=i; 1++)

for(j=l ;j<=MachineCount;j++)Fneh[l][j]=Math.max(Fneh[l][j-1 ],Eneh[l- l][j])+Eval.p[j-1 ] [j ob-1 ];

//calulamos los partial makespans for(l=l;l<=i;l++){makel =-10000;for(j=1 ;j<=MachineCount;j++){

117

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

aux = Fneh[l][j]+Qneh[l][j]; if (aux>make 1)

make 1=aux; } Mneh[1]=make1;

} }

public float Makespan(individual Ord) { Ord.evaluated = false; Eval.evaluate(Ord); return Ord.fitness;

}

public float PartialMakeSpan(int partialSize) {

float C[][]= new float[Eval.machineCount][partialSize]; C[0][0] = Eval.p[0][partialPermutation[0]-1]; int i,j; for(i=1;i<partialSize;i++)

C[0][i] = C[0][i-1]+ Eval.p[0][partialPermutation[i]-1]; for(j=1;j<Eval.machineCount;j++)

C [j] [0] = CU-1] [0] + Eval.p[j] [partialPermutation [0]-1] ; for(i=1;i<partialSize;i++)

for(j=1;j<Eval.machineCount;j++) C[j][i] =

Math.max(C[j ] [i-1],C[j -1] [i]) + Eval.p[j][partialPermutation[i]-1];

return C[Eval.machineCount-1][partialSize-1]; }

public individual CalculateReduced(individual Ord) {

int i, j , k, 1; int tempBestPermutation[] = new int[Eval.jobCount]; int JobCount, MachineCount; JobCount = Eval.jobCount; MachineCount = Eval.machineCount; Random r = new Random(); p = r.nextlnt(JobCount); removed[0]=p; boolean flag=true,

for(i=1;i<removed_job_count; i++) {

while(flag)

118

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

aux = Fneh[l][j]+Qneh[l][j]; if (aux>makel)

makel=aux;}Mneh[l]=makel;

}

public float Makespan(individual Ord) {Ord.evaluated = false;Eval. e valuate(Ord); return Ord.fitness;

}

public float PartialMakeSpan(int partialSize){

float C[][]= new float[Eval.machineCount] [partialSize]; C[0][0] = Eval.p[0][partialPermutation[0]-l]; int i j ;for(i= 1 ;i<partialSize;i-H-)

C[0][i] = C[0][i-1]+ Eval.p[0][partialPermutation[i]-l]; for(j=l ;j<Eval.machineCount;j-H-)

C[j][0] = C[j-1][0] + Eval.p[j][partialPermutation[0]-l]; for(i=l ;i<partialSize;i-H-)

for(j=1 ;j<Eval.machineCount;j++)CD][i] =

Math.max(C[j][i-l],C[j-l][i])+ Eval .p[j ] [partialPermutation[i] -1 ];

return C[Eval.machineCount-1 ] [partialSize-1 ];

public individual CalculateReduced(individual Ord){

int i, j , k, 1;int tempBestPermutation[] = new int[Eval.jobCount]; int JobCount, MachineCount;JobCount = Eval.jobCount;MachineCount = Eval.machineCount;

// Random r = new Random();p = r.nextlnt( JobCount); removed[0]=p; boolean flag=true;

for(i= 1 ;i<removed_job_count; i++){

while(flag)

118

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

flag = false; p = r.nextInt(JobCount); fora =0;j<i ;j ++)

flag = flag I (p==removed[j]); } removed[i]=p; flag = true;

} k=0; for(i=0; i<JobCount; i++) {

flag = true; for(j=0; j< removed.length; j++)

if(i==removed[j])

I flag = false; break;

} if(flag)

partial[k++]=i; }

float E[][]= new float[JobCount+1][MachineCount+1]; float Q[][]= new float[JobCount+1][MachineCount+2]; float F[][]= new float[JobCount+1][MachineCount+1]; float M[]=new float[JobCount+1];

II

counter++)

int j, k; float tempMakeSpan, tempSum; float MinPoint=0;

for(i = 0; i<(Eval.jobCount-removed job_count); i++) tempBestPermutation[i]=Ord.gene[partial[i]];

for(int counter=JobCount-removed job_count; counter<JobCount;

{ Zero(M, E, Q, F); for(1=1; l<=counter;1++)

for(j=1; j<=MachineCount; j++) E[1][j]=Math.max(E[1] [j -1], E [1- 1] [j ])

+ Eval .p [j -1] [tempB estPermutation[1-1]-1] ;

for(1=counter;1>=1;1--) for(j=MachineCount; j>= 1; j--)

119

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

//

counter-H-)

{flag = false;p = r.nextlnt(JobCount); for(j=0;j<i;j++)

flag = flag | (p==removed[j]);}removed[i]=p; flag = true;

}k=0;for(i=0; i<JobCount; i++){

flag = true;for(j=0; j< removed.length; j++)

if(i==removed[j]){

flag = false; break;

}if(flag)

partial[k++]=i;}

float E[][]= new float[JobCount+l][MachineCount+l]; float Q[][]= new float[JobCount+l][MachineCount+2]; float F[][]= new float[JobCount+l][MachineCount+l]; float M[]=new float[JobCount+l];

int j, k;float tempMakeSpan, tempSum; float MinPoint=0;

for(i = 0; i<(Eval.jobCount-removedJob_count); i++) tempBestPermutation[i]=Ord.gene[partial[i]];

for(int counter=JobCount-removed_job_count; counter<JobCount;

{Zero(M, E, Q, F); for(l=l; l<=counter;l++)

for(j= l; j<=MachineCount; j++)E[l][j]=Math.max(E[l] [j - 1 ],E[l-l][j])

+ Eval.p[j-1 ] [tempBestPermutation[l-1 ]-1 ];

for(l=counter;l>= 1 ;1—)for(j=MachineCount; j>= 1; j —)

119

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

Q[1][j]=Math.max(Q[1][j+1],Q[1+1][j]) +Eval.p[j-1][tempBestPermutation[1-1]-1];

for(1=1;1<=counter+1; 1++) for(j=1 <=MachineCount;j++)

F[1][j]=Math.max(F[1][0],E[1-1][j]) +Eval.p[j-l][Ord.gene[removed[counter-

JobCount+removed job_count]]-1];

for(1=1;1<=counter+1;1++) {

tempMakeSpan=-10000; for(j =1 ;j <=MachineCount ;j ++) {

tempSum = F[1][j]+Q[1][j]; if (tempSum>tempMakeSpan)

tempMakeSpan=tempSum; } M[1]=tempMakeSpan;

}

MinPoint= 10000000; int index=-1; for(i=1; i<=counter+1; i++)

if(M[i]<MinPoint) {

index = i; MinPoint = M[i];

}

partialPermutation [index-1]=Ord. gene [removed [counter-JobCount+removed job_count]];

1=0; for(k=0; k<=counter ; k++) {

if (k!= (index-1)) {

partialPermutation[k]=tempBestPermutation[1]; 1++;

} } for(k=0; k<=counter; k++)

tempBestPermutation[k]=partialPermutation[k]; } for(int counter=0; counter<JobCount; counter++)

finalPermutation[counter]=partialPermutation[counter];

120

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

Q[l]D]=Math.max(Q[l][j+l],Q[l+l][j])+Eval.p[j-1 ] [tempBestPermutation[l-1 ]-1 ];

for(l= 1 ;l<=counter+1; 1++)for(j=l ;j<=MachineCount;j++)

F[l][j]=Math.max(F[l]D-l],E[l-l]D])+Eval.p[j-1 ] [Ord.gene[removed[counter-

JobCount+removedJ ob_count] ]-1 ];

for(l= 1; l<=counter+1; 1++){

tempMakeSpan=-10000; for(j=l ;j<=MachineCount;j++){

tempSum = F[l][j]+Q[l][j]; if (tempSum>tempMakeSpan)

tempMakeSpan=tempSum;}M[l]=tempMakeSpan;

}

MinPoint= 10000000; int index—1;for(i=l; i<=counter+l; i++)

if(M[i]<MinPoint){

index = i;MinPoint = M[i];

}

partialPermutation[index-1 ]=Ord.gene[removed[counter- JobCount+removedjob_count]];

1=0 ;for(k=0; k<=counter; k++){

if (k!= (index-1)){

partialPermutation[k]=tempBestPermutation[l];1++;

}}for(k=0; k<=counter; k++)

tempBestPermutation[k]=partialPermutation[k];}for(int counter=0; counter<JobCount; counter++)

finalPermutation[counter]=partialPermutation[counter];

120

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

// System.out.println(bestMakeSpan); for(i=0;i<JobCount; i++)

Ord.gene[i]=finalPermutation[i]; return Ord;

}

public individual Calculate(individual Ord) {

int i, j , k, 1; int tempBestPermutation[] = new int[Eval.jobCount]; float bestMakeSpan, MakeSpan; int JobCount, MachineCount; JobCount = Eval.jobCount; MachineCount = Eval.machineCount;

// Random r = new Random();

p = r.nextInt(JobCount); removed[0]=p; boolean flag=true,

for(i=1;i<removed job_count; i++)

{ while(flag)

{ flag = false; p = r.nextInt(JobCount); for(j =0;j <i ;j ++)

flag = flag I (p==removed[j]); } removed[i]=p; flag = true;

} k=0; for(i=0; i<JobCount; i++)

{ flag = true; for(j=0; j< removed.length; j++)

if(i==removed[j]) {

flag = false; break;

} if(flag)

partial[k++]=i; }

121

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

// System.out.println(bestMakeSpan);for(i=0;i<JobCount; i++)

Ord.gene[i]=fmalPermutation[i]; return Ord;

}

public individual Calculate(individual Ord){

int i, j , k, 1;int tempBestPermutation[] = new int[Eval.jobCount]; float bestMakeSpan, MakeSpan; int JobCount, MachineCount;JobCount = Eval.jobCount;MachineCount = Eval.machineCount;

// Random r = new Random();

p = r.nextlnt(JobCount); removed[0]=p; boolean flag=true;

for(i=l ;i<removed_job_count; i++){

while(flag){flag = false;p = r.nextlnt(JobCount); for(j=0;j<i;j++)

flag = flag | (p=rem oved[j]);}removed[i]=p; flag = true;

}k=0;for(i=0; i<JobCount; i++){

flag = true;for(j=0; j< removed, length; j++)

if(i==removed[j ]){

flag = false; break;

}if(flag)

partial[k++]=i;}

121

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

for(i = 0; i<(Eval.jobCount-removed job_count); i++) tempBestPermutation[i]=Ord.gene[partial[i]];

bestMakeSpan = 1000000000.0f; for(i=0; i<removed job_count; i++) {

bestMakeSpan = 1000000000.0f; for(j = 0; j<=(Eval.jobCount-removed job_count+i); j++)

partialPermutation[j]=Ord.gene[removed[i]]; 1=0; for(k=0; k<=(Eval.jobCount-removed job_count+i) ; k++) {

if (k!= j)

partialPermutation[k]=tempBestPermutation[1]; 1++;

} } MakeSpan = PartialMakeSpan(Eval.jobCount-removed job_count+i+1); if(MakeSpan<bestMakeSpan) {

for(int counter=0; counter<=Eval.jobCount-removed job_count+i; counter++)

finalPermutation[counter]=partialPermutation[counter]; bestMakeSpan = MakeSpan;

}

} for(int counter=0; counter<=Eval.jobCount-removed job_count+i; counter++)

tempBestPermutation[counter]=finalPermutation[counter]; }

// System.out.println(bestMakeSpan); for(i=0;i<JobCount; i++)

Ord.gene[i]=finalPermutation[i]; Ord.evaluated = true; Ord.fitness = bestMakeSpan; return Ord;

}

}

122

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

for(i = 0; i<(Eval.jobCount-removedJob_count); i++) tempBestPermutation[i]=Ord.gene[partial[i]];

bestMakeSpan = lOOOOOOOOO.Of; for(i=0; i<removedJob_count; i++){

bestMakeSpan = lOOOOOOOOO.Of;for(j = 0; j<=(Eval.jobCount-removed_job_count+i); j++){

partialPermutation[j ]=Ord.gene [removed[i] ];1=0 ;for(k=0; k<=(Eval.jobCount-removedJob_count+i); k++){

if (k!= j){

partialPermutation[k]=tempBestPermutation[l];1++;

}}MakeSpan = PartialMakeSpan(Eval.jobCount-removedjob_count+i+l); if(MakeSpan<bestMakeSpan){

for(int counter=0; counter<=Eval.jobCount-removedJob_count+i;counter++)

finalPermutation[counter]=partialPermutation[counter]; bestMakeSpan = MakeSpan;

}

}for(int counter=0; counteK=Eval.jobCount-removedJob_count+i; counter++)

tempBestPermutation[counter]=flnalPermutation[counter];}

// System.out.println(bestMakeSpan); for(i=0;i<JobCount; i++)

Ord.gene[i]=finalPermutation[i];Ord.evaluated = true;Ord.fitness = bestMakeSpan; return Ord;

}

}

122

Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.