Upload
others
View
0
Download
0
Embed Size (px)
Citation preview
New data generation and
solution techniques for the
Sequential Ordering Problem
with Time Windows
Emily Jane Eleftheria Duane
Submitted in total fulfilment of the requirements
of the degree of Doctor of Philosophy
November 2014
Department of Mathematics and Statistics
The University of Melbourne
Produced on archival quality paper
ii
Abstract
The motivation for this thesis resulted from a study of semi-automated rail
mounted gantry cranes at an Australian seaport container terminal. The
Sequential Ordering Problem with Time Windows (SOP-TW) can arise as
a subproblem of these crane operations.
The SOP-TW corresponds to the task of scheduling a single crane to move
a set of containers, where each container has: a fixed pick-up location; a
fixed drop-off location; a time window during which the container must be
picked up and moved to its destination; and some container movements
must be performed before other container movements. A crane schedule is
a list showing the pick-up time of each container. If time permits, a crane
is allowed to sit idle between moving containers; however, once a container
is collected from its pick-up location it must be delivered to its drop-off
location. Consequently, the order of the container movements and a path
for the crane can be determined from the schedule.
For this application the aim is to minimise the total time the crane spends
moving while not carrying a container, that is, the total time moving from
the drop-off location of one container movement to the pick-up location of
the next container movement.
The SOP-TW can be viewed in more general terms as the problem of
scheduling n jobs on a single machine with sequence-dependent setup times,
generalised precedence constraints between some pairs of jobs and start time
windows, where the objective is to minimise the sum of all setup times; the
jobs are container moves and the setup time is the time needed for a crane
to move from the drop-off location for one job to the pick-up location for
the next.
iii
iv Abstract
A detailed critique of existing SOP-TW data generators and their resulting
data sets is undertaken and reveals a lack of available, feasible, difficult SOP-
TW problem instances for testing methods for solving the SOP-TW. This
motivates the development of a comprehensive port-specific data generator
for creating feasible SOP-TW problem instances, and a variety of interesting
SOP-TW instances are constructed. Importantly, the underlying method-
ology of this new generator is sufficiently general to be easily adapted for
non-port settings.
Three existing formulations for the Asymmetric Travelling Salesman Prob-
lem with Time Windows (ATSP-TW) are extended to model the SOP-TW.
An efficient preprocessing routine that simultaneously addresses both time
windows and precedence relations is given that ultimately reduces the size
of the mixed integer programming (MIP) models implemented. A compu-
tational study of the two compact MIPs is performed to provide a baseline
for comparison.
Three techniques for solving the SOP-TW are identified and investigated:
• a construction heuristic for generating feasible solutions;
• an IP-based heuristic for generating feasible solutions; and
• a scheduling approach embedded within a branch-and-bound frame-
work.
A series of comprehensive computational studies are performed to investigate
the effectiveness of these techniques against each other and the baseline
MIPs.
While a crane scheduling application provided the initial motivation and the
foundation of the data generator, it is important to note that the techniques
presented in this thesis are applicable to other contexts where the SOP-TW
arises.
Declaration
This is to certify that:
(i) the thesis comprises only my original work towards the PhD except
where indicated in the Preface,
(ii) due acknowledgement has been made in the text to all other material
used,
(iii) the thesis is less than 100,000 words in length, exclusive of tables,
maps, bibliographies and appendices.
Emily Jane Eleftheria Duane
v
vi Declaration
Preface
The initial motivation for this research was a real world problem considered
for an industrial project. While the application is mentioned in Chapters 1–
3, the research and findings of that study exclusively appear in Froyland et
al. [1].
A manuscript based on some of the work in Chapters 7–8 is in preparation,
with the thesis supervisors Professor Natashia Boland and Dr Heng-Soon
Gan as co-authors.
vii
viii Preface
Acknowledgments
I gratefully acknowledge that the research in this thesis was primarily sup-
ported by an Australian Postgraduate Award from the Australian Govern-
ment. I was also very fortunate to be supported by a PhD top-up scholarship
from the Defence Science and Technology Organisation (DSTO) of Australia.
A very special thanks to Tim Surendonk from DSTO for his patience!
The initial motivation for this thesis arose from an Australian-German in-
dustry collaboration between the ARC Centre of Excellence for Mathematics
and Statistics of Complex Systems (MASCOS), the DFG Research Center
MATHEON and Patrick Corporation. I gratefully acknowledge the support of
a PhD top-up scholarship provided by MASCOS for that initial work.
I have also had indirect financial support to complete this research. Thanks
to Professor Peter Hall and the ARC Centre of Excellence for Mathematical
and Statistical Frontiers (ACEMS) who have kept me employed (and sane)
for the last five years while I slowly finished my thesis on a part-time basis.
Many thanks to my supervisors Natashia Boland and Heng-Soon Gan for
their support and guidance. Heng-Soon, thanks so much for taking over my
primary supervision when Natashia left the University of Melbourne – I’m
sure it wasn’t easy taking on a student that had only partially implemented
so many different ideas! Thanks also to Peter Taylor, Moshe Sniedovich,
Andrew Wirth and Matthew Simpson for their advice over the years.
Very special thanks to Vicky Mak who gave me the branch-and-Lagrangian
code she developed during her PhD [2]. As a novice programmer, seeing
working branch-and-Lagrangian code provided a great starting point for
the branch-and-bound code I developed for the work in Chapters 7 and 8.
Thanks also to Andre Costa; our discussions about the random elements of
the data generator were very helpful in the early stages of its development.
ix
x Acknowledgments
An especially big thank you to Sophie Dickson, Alex Feigin and Jason Looker
who provided feedback on the first draft of this thesis – you definitely went
above and beyond the call of friendship duties!
As an extreme extrovert, one of the biggest challenges has been the social
isolation that seems necessary to complete a significant piece of independent
research in a silent office for 40+ hours a week. Consequently I would like
to thank my fellow Maths and Stats PhD Pilgrims: Jason, Loretta, Paul,
Maya, Ana, Alana, Ruth, Tim, Allan, Chris, Liam, Caley, Natalie, Liv and
Soph – thanks for making the journey more enjoyable.
Many thanks to Liv and Soph who were always so happy to help with my C
programming queries in the early days of learning to code in C. Of course,
being scientists, your help never stopped there: thank you for your useful
suggestions regarding aspects of the C implementation of the procedures
proposed in this thesis – they are peppered throughout my code.
And I really need to thank Soph, yet again. Sophie Dickson, you’ve been a
fantastic friend as we’ve tackled our theses together. More than program-
ming and proof-reading assistance, you’ve provided more essential support:
chocolate, humour, kindness, compassion, humility, as well as an outstand-
ing model for hard work and determination. Our friendship has definitely
been the highlight of the whole journey.
For their companionship on the home-stretch of the journey, a very big
thanks to my Thesis Bootcamp buddies, Alice and Natalie. I have no idea
what your theses are about, but it hasn’t mattered; our PhD struggles have
been the same, as will our joy when we are all finished!
I am also indebted to the fantastic team of administrators and technicians
that support the Department of Mathematics and Statistics: Janet, Kirsten,
Lynne, Charlotte and Dean in the General Office; Darla and Yolanda in Fi-
nance; and Tracy, Jeff, Theo, Ling and Jim in IT. Your invaluable assistance
ensures academics and students can focus on their research and teaching.
Finally, I could not have completed this PhD without the love and support of
my husband Jason Looker. Words cannot express the depth of my gratitude.
For my father and mother,
and all those who have suffered dementia and its consequences.
Publications
Froyland, G., Koch, T., Megow, N., Duane, E. and Wren, H. (2008). “Op-
timizing the landside operation of a container terminal”. OR Spectrum,
30(1): 53-75.
Boland, N., Duane, E. and Gan, H.-S. “A branch-and-bound algorithm for
solving the Sequential Ordering Problem with Time Windows”. In prepa-
ration.
xi
xii Publications
Contents
Abstract iii
Declaration v
Preface vii
Acknowledgments ix
Publications xi
1 INTRODUCTION 1
1.1 Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.1.1 A high-level crane scheduling problem . . . . . . . . . 4
1.1.2 Motivating a low-level crane scheduling problem . . . 6
1.1.3 A single crane scheduling problem: the SOP-TW . . . 7
1.1.4 Summary of motivation . . . . . . . . . . . . . . . . . 11
1.2 Thesis outline . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.3 Contributions of this thesis . . . . . . . . . . . . . . . . . . . 12
2 SOP-TW: DEFINITION, LITERATURE AND DATA 17
2.1 Definition of the SOP-TW . . . . . . . . . . . . . . . . . . . . 17
2.2 Relaxations of the SOP-TW . . . . . . . . . . . . . . . . . . . 20
2.3 Complexity of the SOP-TW . . . . . . . . . . . . . . . . . . . 25
2.4 Literature review . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.5 Existing SOP-TW data sets . . . . . . . . . . . . . . . . . . . 34
2.5.1 Special case: the SOP-TW without release dates . . . 34
2.5.2 Data sets used by Escudero and Sciomachen . . . . . . 35
2.5.3 Motivation for a new SOP-TW data generator . . . . 40
xiii
xiv CONTENTS
2.6 Chapter summary . . . . . . . . . . . . . . . . . . . . . . . . 43
3 A NEW SOP-TW DATA GENERATOR 45
3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
3.2 Procedure RandomPortDataGen . . . . . . . . . . . . . . . . 46
3.2.1 Generating the container storage yard’s spatial layout 49
3.2.2 Properties of ISA and ISA container locations . . . . . 52
3.2.3 Generating sets of container movements . . . . . . . . 54
3.2.4 Allocating an origin and destination for each movement 54
3.2.5 Generating natural precedence relations . . . . . . . . 59
3.2.6 Generating time windows for each container move . . 61
3.2.7 Summary of input parameters and data generated . . 63
3.3 Procedure MapCraneDataToSOPTW . . . . . . . . . . . . 63
3.3.1 The single crane scheduling problem . . . . . . . . . . 65
3.3.2 Relationship between the single crane scheduling prob-
lem and the SOP-TW . . . . . . . . . . . . . . . . . . 66
3.4 Parameter settings . . . . . . . . . . . . . . . . . . . . . . . . 69
3.4.1 Parameters to fix . . . . . . . . . . . . . . . . . . . . . 69
3.4.2 Parameters to vary . . . . . . . . . . . . . . . . . . . . 69
3.5 Data sets generated . . . . . . . . . . . . . . . . . . . . . . . 72
3.6 Summary of SOP-TW data set parameters . . . . . . . . . . 74
3.6.1 Time windows: a, b and w . . . . . . . . . . . . . . . . 76
3.6.2 Processing times, setup times and minimum delays:
p, s and δ . . . . . . . . . . . . . . . . . . . . . . . . . 78
3.6.3 Precedence delays: α and α . . . . . . . . . . . . . . . 80
3.7 Chapter summary . . . . . . . . . . . . . . . . . . . . . . . . 81
4 FORMULATIONS OF THE SOP-TW 83
4.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
4.2 Compact formulations of the SOP-TW . . . . . . . . . . . . . 84
4.2.1 Model MIP1 . . . . . . . . . . . . . . . . . . . . . . . 85
4.2.2 Model MIP2 . . . . . . . . . . . . . . . . . . . . . . . 86
4.2.3 Comparison of the compact MIP models . . . . . . . . 87
4.3 A cutting plane formulation . . . . . . . . . . . . . . . . . . . 89
4.3.1 Model MIP3 . . . . . . . . . . . . . . . . . . . . . . . 90
4.3.2 Valid inequalities for the SOP-TW . . . . . . . . . . . 91
4.4 Alternative MIP models for the SOP-TW . . . . . . . . . . . 91
CONTENTS xv
4.5 Data preprocessing . . . . . . . . . . . . . . . . . . . . . . . . 92
4.5.1 Precedence preprocessing . . . . . . . . . . . . . . . . 92
4.5.2 Time window preprocessing . . . . . . . . . . . . . . . 93
4.5.3 Creating variables and eliminating arcs . . . . . . . . 95
4.5.4 Computational study of preprocessing . . . . . . . . . 98
4.6 Computational study of the compact formulations . . . . . . 102
4.6.1 Machine and optimiser specifications . . . . . . . . . . 104
4.6.2 Summary of compact MIP methods tested . . . . . . . 104
4.6.3 LP relaxation results, discussion and conclusions . . . 104
4.6.4 MIP results, discussion and conclusions . . . . . . . . 110
4.7 Chapter summary and an overview of solving the SOP-TW . 118
5 HEURISTICS 121
5.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
5.2 Partial schedules . . . . . . . . . . . . . . . . . . . . . . . . . 123
5.3 Construction heuristics . . . . . . . . . . . . . . . . . . . . . . 124
5.3.1 Two rank ordering construction heuristics for the SOP 125
5.3.2 An insertion order heuristic for the SOP-TW . . . . . 128
5.4 Symmetry-breaking heuristics . . . . . . . . . . . . . . . . . . 138
5.4.1 Related work . . . . . . . . . . . . . . . . . . . . . . . 142
5.4.2 An IP-based perturbation heuristic . . . . . . . . . . . 145
5.4.3 Notes on implementing the catalyst heuristic . . . . . 147
5.5 Chapter summary . . . . . . . . . . . . . . . . . . . . . . . . 149
6 COMPUTATIONAL STUDY OF THE HEURISTICS 151
6.1 Machine and optimiser specifications . . . . . . . . . . . . . . 152
6.2 Summary of heuristic methods tested . . . . . . . . . . . . . . 152
6.3 Guide to results of the heuristics experiments . . . . . . . . . 155
6.3.1 Time to find first solution . . . . . . . . . . . . . . . . 158
6.3.2 Number of unique solutions . . . . . . . . . . . . . . . 163
6.3.3 Time at which best true-cost solution is found . . . . 166
6.3.4 Cost and cost gap of first solution and best solution . 168
6.4 Construction heuristic results . . . . . . . . . . . . . . . . . . 172
6.4.1 BKA instances vs. n25/n50/n100 instances . . . . . . 173
6.4.2 Number of jobs, n . . . . . . . . . . . . . . . . . . . . 175
6.4.3 Number of precedences, |P | . . . . . . . . . . . . . . . 175
6.4.4 Variability of maximum time window widths, γ . . . . 175
xvi CONTENTS
6.4.5 Key results for BKA data group . . . . . . . . . . . . 177
6.4.6 Key results for n25 data group . . . . . . . . . . . . . 177
6.4.7 Key results for n50 data group . . . . . . . . . . . . . 178
6.4.8 Key results for n100 data group . . . . . . . . . . . . 179
6.4.9 Conclusions . . . . . . . . . . . . . . . . . . . . . . . . 180
6.5 IP-based catalyst heuristic results . . . . . . . . . . . . . . . . 180
6.5.1 Key results for BKA data group . . . . . . . . . . . . 181
6.5.2 Key results for n25 data group . . . . . . . . . . . . . 182
6.5.3 Key results for n50 data group . . . . . . . . . . . . . 182
6.5.4 Key results for n100 data group . . . . . . . . . . . . 183
6.5.5 Conclusions . . . . . . . . . . . . . . . . . . . . . . . . 185
6.6 Heuristics in a branch-and-bound scheme . . . . . . . . . . . 185
6.6.1 At the root node . . . . . . . . . . . . . . . . . . . . . 185
6.6.2 At nodes within the tree . . . . . . . . . . . . . . . . . 186
6.7 Other heuristic techniques . . . . . . . . . . . . . . . . . . . . 187
6.7.1 Lagrangian relaxation heuristics . . . . . . . . . . . . 188
6.7.2 Improvement heuristics . . . . . . . . . . . . . . . . . 190
6.8 Key findings and further work . . . . . . . . . . . . . . . . . . 191
6.9 Chapter summary . . . . . . . . . . . . . . . . . . . . . . . . 193
7 A SCHEDULING BRANCH-AND-BOUND SCHEME 195
7.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195
7.2 A scheduling-based B&B algorithm . . . . . . . . . . . . . . . 196
7.3 Notation and mappings for BB . . . . . . . . . . . . . . . . . 199
7.3.1 A forward partial schedule in BB . . . . . . . . . . . . 202
7.4 Criteria for pruning nodes of BB . . . . . . . . . . . . . . . . 204
7.4.1 Criterion 1: arc exists . . . . . . . . . . . . . . . . . . 204
7.4.2 Criterion 2: job availability . . . . . . . . . . . . . . . 206
7.4.3 Criterion 3: effect on unscheduled jobs . . . . . . . . . 206
7.4.4 Criterion 4: LP feasibility . . . . . . . . . . . . . . . . 214
7.4.5 Criterion 5: dominance by bound . . . . . . . . . . . . 214
7.4.6 Criterion 6: heuristics for obtaining feasible solutions . 215
7.4.7 Criterion 7: identifying dominance . . . . . . . . . . . 215
7.4.8 General CheckCriteria procedure . . . . . . . . . . . . 216
7.5 Implementation notes for Criteria 3 and 7 . . . . . . . . . . . 216
7.5.1 Implementation of Criterion 3 . . . . . . . . . . . . . . 216
CONTENTS xvii
7.5.2 Implementation of Criterion 7 . . . . . . . . . . . . . . 221
7.6 Using heuristics within the B&B tree . . . . . . . . . . . . . . 221
7.6.1 Using the construction heuristic at Criterion 6 . . . . 222
7.6.2 Using the catalyst heuristic at Criterion 6 . . . . . . . 224
7.6.3 Using the construction heuristic at the root node . . . 226
7.6.4 Using the catalyst heuristic at the root node . . . . . 227
7.7 Chapter summary . . . . . . . . . . . . . . . . . . . . . . . . 228
8 COMPUTATIONAL STUDY OF THE B&B SCHEME 229
8.1 Chapter outline . . . . . . . . . . . . . . . . . . . . . . . . . . 229
8.2 Machine and optimiser specifications . . . . . . . . . . . . . . 231
8.3 Baseline B&B methods . . . . . . . . . . . . . . . . . . . . . . 231
8.3.1 Key results for BKA data group . . . . . . . . . . . . 234
8.3.2 Key results for n25 data group . . . . . . . . . . . . . 236
8.3.3 Key results for n50 data group . . . . . . . . . . . . . 239
8.3.4 Key results for n100 data group . . . . . . . . . . . . 241
8.3.5 Conclusions on the baseline B&B methods . . . . . . . 243
8.4 Incorporating heuristics within the B&B tree . . . . . . . . . 244
8.4.1 Key results for BKA data group . . . . . . . . . . . . 244
8.4.2 Key results for n25 data group . . . . . . . . . . . . . 247
8.4.3 Key results for n50 data group . . . . . . . . . . . . . 249
8.4.4 Key results for n100 data group . . . . . . . . . . . . 262
8.4.5 Conclusions on the B&B methods with heuristics . . . 268
8.5 Effectiveness of each criterion . . . . . . . . . . . . . . . . . . 270
8.5.1 General comments . . . . . . . . . . . . . . . . . . . . 270
8.5.2 Specific comments on each criterion . . . . . . . . . . 275
8.5.3 Conclusions on the effectiveness of each criterion . . . 282
8.6 Further work . . . . . . . . . . . . . . . . . . . . . . . . . . . 283
8.7 Chapter summary . . . . . . . . . . . . . . . . . . . . . . . . 285
9 CONCLUSION 287
Bibliography 295
A Acronyms and notation 307
B Key interface assumptions 311
xviii CONTENTS
C Ordinary versus generalised precedence relations 315
D Formulae for the coordinates of the ISA and ISA locations 317
E Fixed parameter values for the data generator 321
F SOP-TW data set parameter summary statistics 325
G Preprocessing results tables 331
H LP relaxation results tables 343
I Additional results of the heuristics experiments 355
I.1 Construction heuristic results . . . . . . . . . . . . . . . . . . 366
I.1.1 Individual data set results . . . . . . . . . . . . . . . . 366
I.1.2 Aggregated data group and data class results . . . . . 371
J Modified construction heuristic and related algorithms 381
List of Tables
2.1 Reference summary for the SOP-TW. . . . . . . . . . . . . . 29
3.1 Summary of the input parameters required to generate a
crane problem instance using RandomPortDataGen . . . . . 64
3.2 Summary of the “crane scheduling instance” output produced
by RandomPortDataGen. . . . . . . . . . . . . . . . . . . . . 65
3.3 Mapping of a crane scheduling instance to a SOP-TW instance. 68
3.4 Summary of the parameters varied to generate the data classes. 70
3.5 Summary of the data classes created by our port data generator. 73
3.6 Summary of data groups. . . . . . . . . . . . . . . . . . . . . 74
3.7 Summary of the key SOP-TW data set parameters. . . . . . . 75
3.8 Total number of elements per parameter by class. . . . . . . . 76
4.1 Summary of arc elimination results by data group. . . . . . . 100
4.2 Ratio of mean arcs created to the complete arc set, |A|m . . . . 101
4.3 Notation for preprocessing times. . . . . . . . . . . . . . . . . 102
4.4 Breakdown of preprocessing times by procedure. . . . . . . . 103
4.5 Summary of compact MIP methods. . . . . . . . . . . . . . . 104
4.6 Notation for LP results tables. . . . . . . . . . . . . . . . . . 105
4.7 Relative improvement gained by using PALL (as in M2 and
M4) rather than P (as in M1 and M3) . . . . . . . . . . . . . 106
4.8 Total number of nonzero LP relaxation times . . . . . . . . . 109
4.9 Total LP relaxation times. . . . . . . . . . . . . . . . . . . . . 109
4.10 Time limit for each method tested (per instance) . . . . . . . 111
4.11 MIP solve times that exceed 1,800 seconds for n25 instances. 115
4.12 Solution status summary for the n50 data sets . . . . . . . . 115
5.1 Rank and backward rank orderings of the vertices in Fig. 5.1 126
xix
xx LIST OF TABLES
5.2 Some time feasible solutions for the symmetry examples. . . . 139
6.1 Summary of heuristic methods . . . . . . . . . . . . . . . . . 153
6.2 Weights to modify objective function via catalyst penalty βk 153
6.3 Heuristic time limits. . . . . . . . . . . . . . . . . . . . . . . . 153
6.4 MIP solve time statistics for the n25 group . . . . . . . . . . 153
6.5 Figure and table references to main results of the heuristics
experiments . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
6.6 Percentage of instances where at least one solution was found,
evaluated at key times for each heuristic. . . . . . . . . . . . . 159
6.7 Distribution of setup times for data set (BKA, 6). . . . . . . 174
6.8 Total number of insertion orders tried for each of the four
n100 instances which had a single feasible solution constructed,
and the time the solution was produced. . . . . . . . . . . . . 179
6.9 Catalyst weights for the extended n100 experiments. . . . . . 184
6.10 Number and percentage of n100 problem instances that did
not finish solving for each extended-run heuristic . . . . . . . 184
7.1 Summary of notation related to the scheduling-based B&B
scheme. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201
7.2 Summary of criteria to check when evaluating node j . . . . . 218
7.3 H0 time limit at Criterion 6, for each instance by group. . . . 224
7.4 H1 4 time limit at Criterion 6, for each instance by group. . . 226
7.5 H0 time limit at root node, for each instance by group. . . . . 227
7.6 H1 4 time limit at root node, for each instance by group. . . 228
8.1 Maximum solve time for each method tested . . . . . . . . . . 231
8.2 Summary of MIP and baseline B&B methods. . . . . . . . . . 233
8.3 Time ratios for the BKA group at key percentiles: M1, M3,
M5 and M7. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235
8.4 Time ratios for the n25 group at key percentiles: M1–M8. . . 237
8.5 Unrestricted solve times for the n25 instances that had at
least one MIP exceed 1,800 seconds. . . . . . . . . . . . . . . 238
8.6 Summary of B&B methods incorporating heuristics. . . . . . 245
8.7 Time ratios for the BKA group at key percentiles: M3, M5,
M9 and M10. . . . . . . . . . . . . . . . . . . . . . . . . . . . 247
LIST OF TABLES xxi
8.8 Time ratios for the n25 group at key percentiles: M1, M5,
M9 and M10. . . . . . . . . . . . . . . . . . . . . . . . . . . . 248
8.9 Summary of B&B methods with heuristics for the n50 instances.250
8.10 Summary of ‘solution status at termination’ comparisons for
the n50 instances. . . . . . . . . . . . . . . . . . . . . . . . . 257
8.11 Summary of B&B methods with heuristics for the n100 in-
stances. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263
8.12 Percentage of n100 instances where a feasible solution was
found prior to termination, split into two groups based on γ. 267
8.13 Summary of the conclusions on the B&B methods with heuris-
tics. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269
8.14 B&B node information for key methods by data group. . . . . 271
8.15 Mean percentage of B&B nodes pruned (i.e. not created) due
to each criterion, for key methods by data group. . . . . . . . 273
8.16 Mean percentage of B&B nodes pruned by Criteria 1, 2 & 3 . 274
8.17 Mean percentage of problem instances where at least one LP
solution was integer. . . . . . . . . . . . . . . . . . . . . . . . 277
8.18 Criterion 7 pruning results . . . . . . . . . . . . . . . . . . . . 281
A.1 Key acronyms. . . . . . . . . . . . . . . . . . . . . . . . . . . 308
A.2 Key notation for the SOP-TW. . . . . . . . . . . . . . . . . . 309
E.1 Summary of fixed input parameters for RandomPortDataGen322
F.1 Notation for parameter summary tables. . . . . . . . . . . . . 325
F.2 Summary statistics for parameter a. . . . . . . . . . . . . . . 327
F.3 Summary statistics for parameter b. . . . . . . . . . . . . . . 327
F.4 Summary statistics for parameter w. . . . . . . . . . . . . . . 328
F.5 Summary statistics for parameter p. . . . . . . . . . . . . . . 328
F.6 Summary statistics for parameter s. . . . . . . . . . . . . . . 329
F.7 Summary statistics for parameter δ. . . . . . . . . . . . . . . 329
F.8 Summary statistics for parameter α. . . . . . . . . . . . . . . 330
F.9 Summary statistics for parameter α. . . . . . . . . . . . . . . 330
G.1 Notation for preprocessing tables. . . . . . . . . . . . . . . . . 331
G.2 Preprocessing results for Classes 1–9 (n25). . . . . . . . . . . 332
G.3 Preprocessing results for Classes 10–15 (n50). . . . . . . . . . 334
G.4 Preprocessing results for Classes 16–21 (n100). . . . . . . . . 335
xxii LIST OF TABLES
G.5 Preprocessing results for BKA instances. . . . . . . . . . . . 336
G.6 Notation for preprocessing times. . . . . . . . . . . . . . . . . 336
G.7 Preprocessing times (seconds) for Classes 1–9 (n25). . . . . . 337
G.8 Preprocessing times (seconds) for Classes 10–15 (n50). . . . . 339
G.9 Preprocessing times (seconds) for Classes 16–21 (n100). . . . 340
G.10 Preprocessing times (seconds) for BKA instances. . . . . . . 341
H.1 Notation for tables showing lower bounds from LP relaxations.343
H.2 Lower bounds from LP relaxations for Classes 1–9 (n25). . . 344
H.3 Lower bounds from LP relaxations for Classes 10–15 (n50). . 346
H.4 Lower bounds from LP relaxations for Classes 16–21 (n100). . 347
H.5 Lower bounds from LP relaxations for BKA instances. . . . . 348
H.6 Notation for LP relaxation times. . . . . . . . . . . . . . . . . 348
H.7 LP relaxation times (seconds) for Classes 1–9 (n25). . . . . . 349
H.8 LP relaxation times (seconds) for Classes 10–15 (n50). . . . . 351
H.9 LP relaxation times (seconds) for Classes 16–21 (n100). . . . 352
H.10 LP relaxation times (seconds) for BKA instances. . . . . . . 353
I.1 Notation for heuristic results summary tables. . . . . . . . . . 356
I.2 Summary statistics for measure NUMSOLN (i) and (iii). . . . 359
I.3 Summary statistics for measure NUMSOLN (ii) and (iv). . . 360
I.4 Summary statistics for measure FIRSTTIME. . . . . . . . . . 361
I.5 Summary statistics for measure BESTTIME. . . . . . . . . . 362
I.6 Summary statistics for measure FIRSTCOST. . . . . . . . . . 363
I.7 Summary statistics for measure BESTCOST. . . . . . . . . . 364
I.8 Summary statistics for measure FIRSTCOSTGAP. . . . . . . 365
I.9 Summary statistics for measure BESTCOSTGAP. . . . . . . 365
I.10 Notation for construction heuristic ratio results tables. . . . . 366
I.11 Construction heuristic ratio results for BKA instances. . . . 367
I.12 Construction heuristic ratio results for n25 instances. . . . . . 367
I.13 Construction heuristic ratio results for n50 instances. . . . . . 369
I.14 Construction heuristic ratio results for n100 instances. . . . . 370
I.15 Notation for construction heuristic results summary tables. . 371
I.16 Summary statistics for the number of insertion orders tried . 377
I.17 Summary statistics for the number of feasible solutions found 378
I.18 Summary statistics for the number of unique feasible solutions 378
I.19 Summary statistics for ratio Rsuccess . . . . . . . . . . . . . . 379
LIST OF TABLES xxiii
I.20 Summary statistics for ratio Runique . . . . . . . . . . . . . . 379
xxiv LIST OF TABLES
List of Figures
1.1 Simplified schematic of Patrick Corporation’s redeveloped Port
Botany container terminal. . . . . . . . . . . . . . . . . . . . 2
1.2 Elevation view of the RMG container exchange area. . . . . . 3
1.3 Ground plan view of the RMG container exchange area. . . . 3
1.4 The four possible container movement types. . . . . . . . . . . . . 9
1.5 Simplified RMG container exchange area. . . . . . . . . . . . . . 9
2.1 (a) SOP-TW general case: release dates and waiting per-
mitted. (b) SOP-TW special case: no release dates and\or
waiting is not permitted. . . . . . . . . . . . . . . . . . . . . . 35
3.1 Flowchart of the main components of RandomPortDataGen
with corresponding section references. . . . . . . . . . . . . . 48
3.2 Parametrised layout of a container yard. . . . . . . . . . . . . 50
3.3 Representing a crane scheduling instance as a SOP-TW in-
stance. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
3.4 Box plot of parameter a values by data class. . . . . . . . . . 77
3.5 Box plot of parameter b values by data class. . . . . . . . . . 77
3.6 Box plot of parameter w values by data class. . . . . . . . . . 77
3.7 Box plot of parameter p values by data class. . . . . . . . . . 79
3.8 Box plot of parameter s values by data class. . . . . . . . . . 79
3.9 Box plot of parameter δ values by data class. . . . . . . . . . 79
3.10 Box plot of parameter α values by data class. . . . . . . . . . 81
3.11 Box plot of parameter α values by data class. . . . . . . . . . 81
4.1 Relative strength of MIP1 and MIP2 LP lower bounds. . . . 107
4.2 Performance profile for the BKA instances, Methods 1 and 3. 113
4.3 Performance profile for the n25 instances, Methods 1–4. . . . 114
xxv
xxvi LIST OF FIGURES
4.4 Comparison of lower bound quality for all n50 instances. . . . 116
4.5 Comparison of lower bound quality for all n100 instances. . . 117
5.1 A precedence graph for a SOP problem instance, with ranks. 126
5.2 Graphs and data for the symmetry examples. . . . . . . . . . 140
5.3 Solution schedules. . . . . . . . . . . . . . . . . . . . . . . . . 140
5.4 Box plot of catalyst ratio ρ values by data class. . . . . . . . 149
6.1 Box plots of “time first solution is found” for each heuristic. . 161
6.2 Box plots of “number of solutions found” (iii) for each heuristic.164
6.3 Box plots of “number of solutions found” (iv) for each heuristic.165
6.4 Box plots of “time best solution is found” for each heuristic. . 167
6.5 Box plots of “true cost of first solution” for each heuristic. . . 169
6.6 Box plots of “cost of best true-cost solution” for each heuristic.170
6.7 Box plots of “true cost gap of first solution” for each heuristic.171
6.8 Box plots of “true cost gap of best solution” for each heuristic.171
7.1 An example of BB with four jobs. . . . . . . . . . . . . . . . . 199
7.2 Elements of a scheduling branch-and-bound tree, BB. . . . . 203
7.3 Flowchart of pruning criteria with section references. . . . . . 205
7.4 Graphical representation of a schedule with related times
when (a) k = 0, (b) k = 1 and (c) k = 2. . . . . . . . . . . . . 208
7.5 Graphical representation of the components that contribute
to the second part of the lower bound . . . . . . . . . . . . . 213
8.1 Summary of main methods investigated in this thesis, includ-
ing those to come in this chapter, with corresponding results
section references. . . . . . . . . . . . . . . . . . . . . . . . . 232
8.2 Performance profile for the BKA instances. . . . . . . . . . . 234
8.3 Performance profile for n25 instances. . . . . . . . . . . . . . 236
8.4 Solution status summary for the n50 data sets . . . . . . . . 240
8.5 Performance profile for the n50 instances where at least one
method proved optimality (18 instances). . . . . . . . . . . . 240
8.6 Comparison of lower bound quality for all n50 instances. . . . 242
8.7 Lower bound quality where optimality not proved (42 in-
stances). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242
8.8 Comparison of lower bound quality for all n100 instances. . . 243
8.9 Performance profile for the BKA instances. . . . . . . . . . . 246
LIST OF FIGURES xxvii
8.10 Performance profile for the n25 instances. . . . . . . . . . . . 248
8.11 Solution status summary for the n50 data sets . . . . . . . . 252
8.12 Performance profile for the n50 instances where at least one
method proved optimality (21 instances). . . . . . . . . . . . 256
8.13 Comparison of lower bound quality for all n50 instances. . . . 259
8.14 Lower bound quality where optimality not proved (39 in-
stances). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259
8.15 Box plot of the relative gaps for each exact method for the
n50 instances (60 instances). . . . . . . . . . . . . . . . . . . 261
8.16 Solution status summary for the n100 data sets . . . . . . . . 264
8.17 Comparison of lower bound quality for all n100 instances. . . 265
8.18 Box plot of the relative gaps for each exact method for the
n100 instances (60 instances). . . . . . . . . . . . . . . . . . . 266
D.1 Parametrised layout of a container yard . . . . . . . . . . . . 320
E.1 Elevation view of the RMG container exchange area . . . . . 323
E.2 Ground plan view of the RMG container exchange area . . . 323
F.1 Box plots of a, b, w, p, s, δ, α and α values for BKA group. . 326
I.1 Box plot of catalyst ratio ρ values by data class. . . . . . . . 355
I.2 Box plots of “number of solutions found” (i) for each heuristic.357
I.3 Box plots of “number of solutions found” (ii) for each heuristic.358
I.4 Box plots of number of insertion orders tried, by data group. 372
I.5 Box plots of number of insertion orders tried, by data class. . 372
I.6 Box plots of number of feasible solutions found, by data group.373
I.7 Box plots of number of feasible solutions found, by data class. 373
I.8 Box plots of number of unique feasible solutions, by data group.374
I.9 Box plots of number of unique feasible solutions, by data class.374
I.10 Box plots of H0 ratio Rsuccess, by data group. . . . . . . . . . 375
I.11 Box plots of H0 ratio Rsuccess, by data class. . . . . . . . . . 375
I.12 Box plots of H0 ratio Runique, by data group. . . . . . . . . . 376
I.13 Box plots of H0 ratio Runique, by data class. . . . . . . . . . . 376
xxviii LIST OF FIGURES
List of Algorithms
1 Procedure AssignOriginsInISA . . . . . . . . . . . . . . . . . 55
2 Procedure AssignOriginsInISA . . . . . . . . . . . . . . . . . 57
3 Procedure AssignDestinationsInISA . . . . . . . . . . . . . . 58
4 Procedure AssignDestinationsInISA . . . . . . . . . . . . . . 60
5 Procedure UpdateReleaseDates . . . . . . . . . . . . . . . . . 94
6 Procedure UpdateDueDates . . . . . . . . . . . . . . . . . . . 94
7 Procedure Preprocessing . . . . . . . . . . . . . . . . . . . . . 97
8 Procedure InsertionAlgorithm . . . . . . . . . . . . . . . . . . 129
9 Procedure InsertNextJob . . . . . . . . . . . . . . . . . . . . 130
10 Procedure RepeatInsAlg . . . . . . . . . . . . . . . . . . . . . 135
11 Procedure ConstructionHeuristic . . . . . . . . . . . . . . . . 137
12 An algorithm for LP-based branch-and-bound . . . . . . . . . 197
13 A scheduling-based branch-and-bound algorithm . . . . . . . . 200
14 Procedure Criterion7 . . . . . . . . . . . . . . . . . . . . . . . 217
15 Procedure CheckCriteria . . . . . . . . . . . . . . . . . . . . . 219
16 Procedure ModifiedInsertionAlgorithm . . . . . . . . . . . . 382
17 Procedure ModifiedInsertNextJob . . . . . . . . . . . . . . . 383
18 Procedure ModifiedRepeatInsAlg . . . . . . . . . . . . . . . 384
19 Procedure ModifiedConstructionHeuristic . . . . . . . . . . 385
xxix
xxx LIST OF ALGORITHMS
Chapter 1
INTRODUCTION
The initial motivation for this dissertation—a complex high-level crane scheduling
problem at a seaport container terminal—is described in this chapter. A subproblem
is detailed, which is the focus of the remainder of this thesis. The contributions of
this work are summarised and a thesis outline concludes the chapter.
1.1 Motivation
Sea freight containers are used to transport goods from one location to an-
other. At a container terminal, containers are usually transshipped from
one transportation vehicle to another via various types of handling equip-
ment. With increasing competition between seaport container terminals and
greater containerisation of cargo, there is great demand to better handle
these important units.
Patrick Corporation’s seaport container terminal at Port Botany in Sydney,
Australia, was recently redeveloped; a simplified schematic of the site is
shown in Figure 1.1. The layout of the new container exchange area is
illustrated in Figures 1.2 and 1.3. Containers move into and across the
exchange area by five rail mounted gantry cranes (RMGs). Since the cranes
share the bi-directional travelling rail, they cannot pass each other.
On the landside, the Gantry Road Interface (GRI) and the Gantry Rail
Interface (GRAI)—collectively called the GRA—are the areas for trucks
1
2 INTRODUCTION
QU
AYSIDE
LAN
DSID
E
EXPORT
IMPORT
MA
IN C
ON
TAIN
ER STOR
AG
E YARD
Berth
s
Stradd
lecarrier
Truck b
ays
Railw
ay tracks
RMG
rail
RMG
rail
Qu
ay crane
GRI
GR
AIISA
GSI
Truck
RMG
Fig
ure
1.1:S
imp
lified
schem
atic
ofP
atrickC
orporation
’sred
eveloped
Port
Botan
ycon
tainer
termin
al.
1.1 Motivation 3
GRI GRAI ISA GSI
LANDSIDE QUAYSIDE
Figure 1.2: Elevation view of the RMG container exchange area.
GRI
GRAI
ISA
GSI
Figure 1.3: Ground plan view of the RMG container exchange area.
and trains to deliver export containers and collect import containers.
On the quayside, straddle carriers transport containers between the Gantry
Straddle Interface (GSI) and the main container storage yard. In addition to
these movements, the straddle fleet perform container shuffling movements
within the main yard, and transport containers between the main yard and
the quay where ship (un)loading operations are performed by quay cranes.
The Intermediate Stacking Area (ISA) acts as a buffer between the landside
and quayside operations. Almost all containers passing through the port will
transit each of GRA, ISA and GSI, collectively known as the RMG container
exchange area. By using the ISA as a buffer, truck and rail exchanges are
decoupled from straddle operations; this will increase the efficiency of the
straddle fleet by allowing better scheduling of container movements.
As a point of reference while reading this thesis, tables of key acronyms and
notation for the SOP-TW are presented in Appendix A.
4 INTRODUCTION
1.1.1 A high-level crane scheduling problem
The initial motivation for this thesis was a high-level crane scheduling prob-
lem at the Port Botany seaport container terminal where the RMG container
exchange area includes an intermediate buffer with a large capacity. The
problem under consideration was to schedule and locate the pick-up and
drop-off of shipping containers at the RMG container exchange area; the
schedule would be determined over a rolling planning horizon.
When export containers leave Australia, each container arrives at the port
on a truck or train, gets transferred from a location in the GRA to a location
in the ISA by RMG, is moved again by RMG from its position in the ISA
to a location in the GSI, then moved from the GSI into the main container
storage yard by straddle carrier, and eventually delivered to the quay to be
loaded on to a ship. Import containers enter Australia so the transit/transfer
process through the port is reversed: ship, main yard, GSI, ISA, GRA.
For each container it is necessary to determine the locations where the con-
tainer should enter the area, exit the area, and where the container should
be stored within the buffer. These three locations define the two RMG
movements that the container will make through the exchange area.
The arrival and departure times of a container at the exchange area are
determined by the (ship/truck/train) transport schedules that carry the
container to and from the port. Naturally, a container cannot be moved by
an RMG if it has not yet arrived at the exchange area. Importantly, each
container has a deadline, namely that it is moved through the exchange
area by the time it will be collected at either the GRA or the GSI. Since
each container is moved twice to cross the exchange area, an intermediate
deadline is introduced; the second move must meet the original deadline,
thus the first move (always to move the container into the ISA) must satisfy
an earlier deadline. The operations of the gantry cranes must be scheduled
such that all containers are moved and all deadlines are met.
To complicate the scheduling component, the truck arrival times are only
known at a coarse level (only the hour of arrival is known, booked 24 hours
in advance); the exact times are only known upon each truck arrival at the
terminal. Moreover, no truck is allowed to wait more than 15 minutes for
its corresponding container(s) to be collected/delivered. As a result, this
1.1 Motivation 5
high-level crane scheduling problem is an online problem.
In this setting, several different objectives are of interest to the terminal
operators, including minimising total crane utilisation and the difference in
workload between the cranes. Other measures such as total ISA utilisation
and the dwell time of containers in the ISA are also important. Addition-
ally, RMG scheduling decisions at the container exchange area have work-
load implications for the straddle fleet, so the flow-on effects must also be
considered.
This high-level crane scheduling problem—where container locations are not
fixed, container movements are performed by multiple cranes operating on a
shared rail, and some arrival times are not known a priori—is very complex.
During 2005, a pilot study within the context of the high-level crane schedul-
ing problem was undertaken by a team of mathematicians. A brief descrip-
tion of that work is given here; for additional details and published results
of the study, see Froyland et al. [1].
Data for a busy one-month period was provided, which required the move-
ment of over 30,000 containers through the ISA. Since all containers must
be moved twice (once in to the ISA, and once out of the ISA), a total of
more than 60,000 container moves must be scheduled within this period.
A decomposition approach that solves the crane scheduling problem over a
number of shorter periods was devised. To ensure feasibility over all of the
shorter periods, the higher-level problem can be solved (heuristically) to fix
the origin and destination locations of each container move, and to refine
the period over which it is possible for this move to occur, that is, fix a time
window during which the move must take place.
Specifically, the work performed for the pilot study was a practical blend of
optimisation and heuristics. The solution approach was divided into three
sequential parts: strategic, tactical and operational. The approach moti-
vates partitioning the ISA—and thus the whole RMG container exchange
area—into five equal-sized portions, where one RMG exclusively operates
in each portion. These portions are further divided into four equal-sized
corridors. An RMG operates mainly within one corridor per hour, cycling
through and re-visiting each corridor every four hours; for more details, see
Froyland et al. [1].
6 INTRODUCTION
At the strategic stage, an integer program (IP) is solved to assign each
quayside container move (from GSI to ISA, or ISA to GSI) to a particular
hour in the planning horizon (the busy one-month period). With the time
of each quayside move fixed to a one hour period, subsequent decisions
about locations and the order in which each crane will perform container
movements can be solved independently for each hour.
At the tactical stage, a number of IPs are solved to assign container locations
in the GSI (one IP for each hour). Due to the space-time partitioning
strategy of the RMG container exchange area, the location decisions also
determine which of the five RMGs will move each container, and reduces
the candidate ISA and GRA locations to within the same corridor.
In the final operational stage, an online algorithm is used to make ISA and
GRA location decisions, and decide the order and time the RMGs perform
each container move.
This time-scale decomposing, space-time partitioning, three-stage solution
approach was very effective in tackling the high-level crane scheduling prob-
lem; a solution within 8% of the theoretical optimum was obtained. An
analysis of how the RMGs spent their time revealed that the majority of
operations were very efficient; approximately 92% of total RMG moving
time was unavoidable.
1.1.2 Motivating a low-level crane scheduling problem
Of the potentially avoidable RMG moving time, at least 90% is time the
RMGs travel while empty, that is, moving between two loaded container
movements. Consequently, reducing empty crane travel time by re-ordering
the container movements in the final operational stage is worthy of further
investigation, since it has the greatest potential for improving the solution
obtained. This motivates the decision to explore a closely related subprob-
lem, where the pick-up and drop-off locations have been determined a priori,
and the aim is to minimise the total time each crane travels while empty.
The partitioning strategy of the RMG container exchange area motivates a
single crane subproblem. With this strategy in place, the high-level crane
scheduling problem has been reduced from one very large and complex multi-
1.1 Motivation 7
crane scheduling problem to a collection of simpler single crane scheduling
problems. There were several benefits to such an approach: complex inter-
crane constraints to ensure cranes do not collide were not required, the
solution space was significantly reduced, and each single crane scheduling
problem could be solved independently of the other crane scheduling prob-
lems.
At the final operational stage, an online algorithm was required to make
scheduling decisions due to uncertainty in the exact truck arrival times, as
there was no control over when a truck would arrive within the hour. A
different approach is taken in this thesis: what if these arrival times could
be controlled? In such a scenario, once the truck slot has been booked, the
terminal operator then instructs the truck to arrive at the port at time t to
drop-off/pick-up their container. This crane scheduling problem is an offline
problem, and would enable further reductions in the total time the cranes
move while empty.
In summary, by fixing container locations a priori, taking advantage of an
area partitioning strategy and removing the online component, the high-level
(multi-location, multi-crane, online) crane scheduling problem is reduced to
a low-level (fixed-location, single-crane, offline) crane scheduling problem,
where the objective is to minimise the total time the crane moves while
empty. This subproblem of the original high-level crane scheduling problem
is the focus of the remainder of this thesis.
1.1.3 A single crane scheduling problem: the Sequential Or-
dering Problem with Time Windows
The single crane scheduling problem is formally defined in general terms in
Chapter 2; it can be described as a single machine scheduling problem as
well as a TSP-variant, namely an Asymmetric Travelling Salesman Problem
with Time Windows and additional Precedence Constraints (ATSP-TW-
PC). Since the ATSP-PC is also known as the Sequential Ordering Problem
(SOP), the ATSP-TW-PC is also known as the Sequential Ordering Problem
with Time Windows (SOP-TW).
The SOP-TW can arise as a subproblem of various real-life scheduling and
routing problems, including within manufacturing planning [3, 4], a job-
8 INTRODUCTION
shop environment [5, 6], ship scheduling [7] and crane scheduling at seaport
container terminals [1].
In the port setting described earlier, the SOP-TW corresponds to the task
of scheduling a single crane to perform a set of container movements, where
each container movement has a fixed pick-up location, a fixed drop-off lo-
cation, a time window during which the container must be picked up (and
consequently moved to its destination), and some container movements must
be performed before other container movements.
A solution to a SOP-TW problem instance, a crane schedule, is a list show-
ing the pick-up time of each container. If the times permit, a crane is allowed
to sit idle between moving containers (either at the end of one movement or
the beginning of the next movement). However, once a container is collected
from its pick-up location it must be delivered to its drop-off location. Con-
sequently, the order of the container movements and a path for the crane
can be determined from a crane schedule.
For this application the aim is to minimise the total time the crane spends
moving while not carrying a container, that is, the total time moving from
the drop-off location of one container movement to the pick-up location of
the next container movement.
1.1.3.1 Container movements through the exchange area
Since each container must traverse the full length of the RMG container
exchange area (i.e. from landside to quayside, or vice versa) with a stopover
in an allocated ISA location, each container is moved twice by an RMG.
Consequently, there are two time windows associated with each container.
For an export (import) container, the first time window is the period of time
during which the crane must pick-up the container from its allocated GRA
(GSI) location and deliver it to its allocated location in the ISA. Similarly,
the second time window is the period of time during which the crane must
pick-up the export (import) container from its ISA location and deliver it
to its GSI (GRA) location. The four possible container movement types are
shown in Figure 1.4.
To simplify the RMG container exchange area setup, the movement types at
1.1 Motivation 9
the GRA and GSI interfaces can be regarded as symmetric. As such, these
two interfaces can be grouped and called ISA for “not ISA”. Then there are
only two movement types—in to the ISA (I) or out of the ISA (O), as shown
in Figure 1.5.
EI: Export container moved in to the ISA;
EO: Export container moved out of the ISA;
II: Import container moved in to the ISA;
IO: Import container moved out of the ISA.
Figure 1.4: The four possible container movement types.
I: container moved in to the ISA;
O: container moved out of the ISA.
Figure 1.5: Simplified RMG container exchange area.
Within any planning horizon of interest, it is possible that only one of a
container’s two moves needs to be scheduled. However, if both time windows
are within the planning horizon both container moves must be scheduled.
In such cases, a natural precedence relation arises; a container must be
delivered into its ISA location before it can be collected from that ISA
location for its next movement.
Since the number of locations in ISA, GRA and GSI are limited, some loca-
tions are used for more than one container pick-up and/or drop-off. Since
these locations are allocated a priori, as are the container time windows,
precedence relations between pairs of containers may arise to ensure that
10 INTRODUCTION
a schedule is feasible. For example, if an ISA location is used to store two
different containers, the container already in the location must be picked up
and moved before the next container can be dropped off. Again, this results
in a natural precedence relation between the two container moves.
If the time windows of two containers that use the same location do not over-
lap there is no need for explicit precedence relations; these implicit prece-
dences are still useful and will be used throughout this thesis. Conversely,
if the two time windows do overlap, the container already residing in the
location must be moved out before the other container can be moved in.
This generates the need for explicit precedence relations between some pairs
of containers.
1.1.3.2 Assumptions
For the data generator presented in Chapter 3, it is assumed that each
planning horizon is short enough that each ISA location is used at most twice
(a container out followed by a container in). Since the partitioning strategy
devised in [1] forced each RMG to operate across the ISA with a cycling
corridor approach, this assumption is realistic. Additional justification of
this assumption is given in the explanation of Assumption 8 in Appendix B.
As a result of the previous assumption, to ensure basic feasibility of all
problem instances generated, it must be assumed that the number of storage
locations in the ISA is at least the number of containers to be moved in to the
ISA during the planning horizon. Similarly, it is assumed that the number
of storage locations in the ISA is at least the number of containers to be
moved in to the ISA (thus out of the ISA) during the planning horizon.
In the original high-level problem, packing operations to rearrange contain-
ers within the ISA comprised only 0.4% of the total RMG moving time;
see [1]. Since the low-level single crane problem now has fixed container
locations, it is likely that the locations would be selected to avoid the need
for any packing. Consequently, in this thesis it is assumed that no packing
operations are required within each planning horizon.
Additional assumptions that influence the design of the data generator are
detailed in Appendix B for the interested reader.
1.2 Thesis outline 11
1.1.4 Summary of motivation
The proposed redevelopment of a seaport container terminal provided the
initial motivation for this thesis. A complex high-level crane scheduling
problem that would arise as a result of the redevelopment was investigated
in a pilot study. The study delivered a practical blend of optimisation and
heuristics with a three-stage solution approach that proved to be very effec-
tive; a solution within 8% of the theoretical optimum was obtained.
The success of the pilot solution approach—which included time-scale de-
composition and space-time partitioning—along with a new focus on the
areas of greatest potential improvement in solution quality, motivated the
shift from the high-level problem to a related general subproblem, the Se-
quential Ordering Problem with Time Windows.
The SOP-TW arises as a subproblem of several other scheduling and routing
applications. As a result, most of this thesis will discuss the SOP-TW in
terms of a generic machine scheduling problem, rather than concentrating on
the specific crane application that provided the initial motivation. The key
exception is a comprehensive port-specific data generator for constructing
feasible SOP-TW problem instances. However, as will be noted, even this
generator can be modified to model more general settings and to construct
instances for closely related problems.
This thesis focuses on techniques for solving the SOP-TW. Consequently, a
series of computational studies are performed and their results are compared.
While the original crane scheduling problem provided the initial motivation
and the foundation of the data generator, it is important to note that the
techniques presented in this thesis are applicable to other contexts where
the SOP-TW arises.
1.2 Thesis outline
The remainder of this thesis is organised as follows.
The SOP-TW is formally defined in Chapter 2. The main literature review
of the SOP-TW and related problems is also discussed in Chapter 2, followed
by a detailed critique of existing SOP-TW data generators. This critique
12 INTRODUCTION
motivates a new, comprehensive, port-specific data generator for creating
feasible SOP-TW problem instances, which is described in Chapter 3.
Three mixed integer programming formulations of the SOP-TW are pre-
sented in Chapter 4. An efficient preprocessing routine is developed to
tighten time windows, find additional valid precedence relations and ulti-
mately reduce the size of the MIP models implemented. A computational
study of the two compact formulations is performed.
Two heuristic approaches for solving the SOP-TW are proposed in Chap-
ter 5; a construction heuristic and an IP-based heuristic. An extensive
computational study of both methods is performed in Chapter 6.
A scheduling-based branch-and-bound algorithm with problem-specific prun-
ing criteria is described in Chapter 7. Several variations of the algorithm are
investigated via a computational study in Chapter 8; the performance of the
B&B algorithm is compared with that of the two compact MIP formulations.
Finally, the thesis is concluded in Chapter 9. Directions for future research
are suggested, including refinements to the techniques proposed in this the-
sis, as well as several ideas for alternative approaches.
1.3 Contributions of this thesis
This thesis makes several contributions to the body of SOP-TW research.
A detailed critique of existing SOP-TW data generators (and their result-
ing data sets) reveals a lack of available, feasible, difficult SOP-TW problem
instances for testing methods for solving the SOP-TW. Therefore, a compre-
hensive port-specific data generator for creating feasible SOP-TW problem
instances is developed, and a variety of interesting SOP-TW instances are
constructed. Important design features of the data generator include:
• All data sets produced are feasible. This guarantees no computational
effort (generating or solving) is expended on infeasible problems.
• The data generator is capable of producing a wide variety of problem
instances that have characteristics relevant to the original port setting.
1.3 Contributions of this thesis 13
• A wide variety of hard data sets are easy to generate by changing a
range of application-specific parameters.
• The underlying methodology of the new generator is sufficiently gen-
eral to allow easy adaptation for non-port settings.
• Data sets for related problems can be constructed after only minor
modifications to the current generator.
Importantly, the port-inspired problem instances are converted into gen-
eral SOP-TW instances so that application-specific information (such as
the underlying locations in the seaport container yard) cannot be deduced
or exploited. While exploiting application-specific information would en-
able bespoke solution methods for these instances, the focus of this thesis is
solving the general SOP-TW. Consequently, this thesis focuses on solution
techniques that do not use any application-specific information.
Three formulations for the Asymmetric Travelling Salesman Problem with
Time Windows (ATSP-TW) presented by Ascheuer et al. [8] are extended
to model the SOP-TW. Since the ATSP-TW is a special case of the SOP-
TW (where there are no explicit precedences) the preprocessing techniques
described by Ascheuer et al. [8] can be directly applied to the SOP-TW.
However, additional preprocessing based on precedences is possible and thus
implemented. Consequently, an efficient preprocessing routine that simulta-
neously addresses both time windows and precedence relations is given that
ultimately reduces the size of the MIP models implemented. A comprehen-
sive computational study of two of these MIPs provide the benchmark by
which the other solution techniques in this thesis are compared.
Three techniques for solving the SOP-TW are identified and investigated
via a series of extensive computational studies:
• a construction heuristic for generating feasible solutions;
• an IP-based heuristic for generating feasible solutions; and
• a scheduling approach embedded within a branch-and-bound frame-
work.
The computational studies compare the effectiveness of these techniques
with each other and the benchmark MIPs.
14 INTRODUCTION
The construction heuristic attempts to build a feasible solution by inserting
new jobs into a partial schedule, and is adapted from a heuristic for the
ATSP-TW by Nikolakopoulos and Sarimveis [9]. Importantly, our version
of the heuristic explicitly allows for precedence relations and the associated
precedence delays that arise in the SOP-TW. Testing shows that the heuris-
tic is successful on small and medium problem instances but, unsurprisingly,
falters as the number of jobs increases.
The IP-based heuristic attempts to differentiate solutions by reducing the
symmetry of the solution space. This is done by introducing a new penalty
term in the objective function. This penalty acts like a tie-breaker: solu-
tions that are essentially equivalent in terms of the original objective func-
tion may now appear significantly different, thus reducing the symmetry
of those solutions. Moreover, a well-chosen penalty can act as a catalyst
for finding feasible solutions faster than solving the original MIP. Margot
[10] reviews the main mathematical programming techniques that address
symmetry during the solution of an integer linear program, including per-
turbation approaches like the objective penalty described above. Margot
observes that this type of approach “in general, does not help much and
can even be counter-productive” though “is sometimes helpful when trying
to find a good solution”. The IP-based perturbation heuristic we propose
and the penalty scheme we test outperform the benchmark MIPs and con-
struction heuristic on the hardest problem instances, but does not reliably
produce feasible solutions within a reasonable time limit.
The branch-and-bound (B&B) scheme is an exact solution method that
takes a scheduling approach: each node in the B&B tree represents a dif-
ferent partial schedule. To test if a new node should be created, a set of
problem-specific criteria have been developed, which the algorithm sequen-
tially evaluates. This scheduling-based B&B scheme with this set of seven
criteria is a novel solution approach for the SOP-TW. However, three crite-
ria (Criteria 2, 3 and 7) closely resemble tests used in dynamic programming
(DP) solution approaches for related problems (e.g. see [7], [11] and [12]) that
reduce the size of a DP state space graph by detecting and eliminating states
that cannot lead to an optimal solution or are clearly infeasible. Nonethe-
less, our implementations of these tests are modified for the SOP-TW and
to work within this scheduling-based B&B scheme, thus are fundamentally
1.3 Contributions of this thesis 15
different. In another novel criterion (Criterion 6), either the construction
heuristic or the IP-based heuristic are executed; this criterion is optional in
that it is only called at select nodes in the B&B tree. Notably, the inclusion
of a heuristic in the B&B scheme is found to be particularly important when
solving relatively difficult problem instances.
Overall, this scheduling approach embedded within a B&B framework out-
performs solving the pure MIPs directly with state-of-the-art optimisation
software. The extra precedence information derived by the preprocessing
routine is utilised in several criteria, thus is vital to the success of the algo-
rithm. Two important design features of the scheduling-based B&B scheme
are:
• The B&B framework is extensible; new criteria for the SOP-TW can
be easily incorporated.
• Existing criteria can be modified to solve other TSP variants and
scheduling problems.
Finally, many recommendations for further research into the SOP-TW are
suggested throughout this thesis.
16 INTRODUCTION
Chapter 2
SOP-TW: DEFINITION,
LITERATURE AND DATA
In this chapter the Sequential Ordering Problem with Time Windows (SOP-TW) is
formally defined. The SOP-TW is compared with several well-known problems and
a review of the literature on the SOP-TW and closely related problems is presented.
This leads to a discussion about the availability of SOP-TW data sets, which moti-
vates the need for problem-specific data and thus the creation of a data generator.
2.1 Definition of the SOP-TW
The single crane scheduling problem with pre-assigned container locations,
the SOP-TW, can be described in machine scheduling terms as follows,
where a crane is a machine and container moves are jobs. Consider a single
machine problem with n non-preemptable jobs. For each job i, let pi be its
processing time and [ai, bi] be the time window1 in which job i can start its
processing (pi, ai, bi ≥ 0 and ai ≤ bi). At least one time window must be ac-
tive, that is, there is at least one i ∈ {1, . . . , n} where ai > 0 and/or bi <∞.
(The time window of job i is called inactive if there are no restrictions on
the start time, that is, any nonnegative start time is allowed.) Moreover,
1The earliest start time of job i, ai, is also known as the release date of job i. Similarly,
bi is the latest start time of job i or, alternatively, the due date of job i. In some appli-
cations the due date is defined as the latest completion time, bi+pi, but not in this thesis.
17
18 SOP-TW: DEFINITION, LITERATURE AND DATA
waiting is permitted: the machine is allowed to be idle between jobs. Let
P be the set of generalised precedence arcs, where P 6= ∅. For each pair
of jobs i and j, where (i, j) ∈ P , there exists a minimum time gap αij ≥ 0
between the start of job i and the start of job j. Setup is also required before
a job starts processing. The setup duration is sequence-dependent, defined
by the parameter sij ≥ 0 if job j is processed immediately after job i. The
objective is to minimise the total setup time required to process all jobs.
The motivation for this choice of objective is discussed in Section 1.1.2.
Alternative objectives are briefly considered in Sections 2.4.4 and 4.2.3. In
particular, minimising the completion time of the final job—also known as
the makespan and calculated as the sum of all setup, processing and waiting
times—is a common scheduling objective. Since waiting is permitted in the
SOP-TW, a schedule that minimises the total setup time does not necessarily
minimise the makespan. However, as discussed in Section 2.5.1, these two
objectives are equivalent in the special case without release dates.
Using the three-field classification α|β|γ commonly used in scheduling liter-
ature (see Graham et al. [13], Lawler et al. [14] or Pinedo [15]) the SOP-TW
can be classified as 1|prec, sij , TWi|∑sij , that is, the problem of minimis-
ing the sum of the setup times on a single machine subject to generalised
precedence relations, sequence-dependent setup times, and time windows on
the start time of each job.
The SOP-TW can also be defined over a directed graph, D := (V ∪ {0}, A)
on n + 1 vertices, where V = {1, . . . , n} is the set of n jobs, and vertex 0
is a fictitious (dummy) start job. Arc (i, j) ∈ A denotes job j is processed
immediately after job i and the cost of the arc is given by sij . Each vertex
i ∈ V is associated with a processing time pi and a start time window
[ai, bi]. A precedence relation between vertices i and j exists if (i, j) ∈ P ,
where αij is the minimum time gap between the start of job i and the
start of job j. On this directed graph D, the aim is to find a tour (i.e. all
jobs “visited”) which minimises the total setup time (i.e. the total “travel”
time). The minimum time delay between starting job i and starting job
j is defined as δij := pi + sij . In our application, the δ values satisfy the
triangle inequality (δik ≤ δij+δjk), thus the s values satisfy the weak triangle
inequality sik ≤ sij +pj +sjk. This inequality means that the setup between
jobs i and k cannot be performed faster by setting up via a third job j.
2.1 Definition of the SOP-TW 19
2.1.1 The SOP-TW as a TSP variant
While the SOP-TW can be viewed as a single machine scheduling problem, it
can also be viewed as a Travelling Salesman Problem (TSP) variant where a
TSP city is equivalent to a job to be processed on a machine. Then vertices
1 to n represent cities in set V , vertex 0 is the salesperson’s depot, and
arcs connect pairs of cities. Each city i ∈ V has an associated arrival time
window given by [ai, bi] and the minimum length of visit required at city i
is pi. For each pair of cities in precedence set P , say (i, j) ∈ P , αij is the
associated minimum time gap between the arrival times at cities i and j.
In the TSP, the cost of travelling from city i to city j is cij and the aim
is to minimise the total cost of travelling between cities. In the SOP-TW
version, the aim is to minimise the total time spent travelling between cities,
so cij = sij for all (i, j) ∈ A.
A tour in D is a sequence of cities, starting and ending at the depot, which
visits each city in V exactly once such that there exists an arc in A between
each pair of successive cities in the sequence. In addition to visiting all
cities, a feasible tour for the SOP-TW requires the salesperson to arrive at
each city within the city’s time window, stay at the city for some minimum
amount of time, and respect all precedence relations requiring particular
cities to be visited before other cities. The aim is to find a feasible tour
with minimal cost (in our case, minimal total time spent travelling between
cities).
The SOP-TW extends the TSP via the addition of precedence constraints
and active time windows: the SOP-TW reduces to the ATSP-TW in the
absence of precedence constraints (as shown in §2.2), and reduces to the
SOP if all time windows are inactive. Furthermore, waiting is permitted: if
the salesperson arrives at city i before the start of its time window, ai, the
salesperson waits at city i with the visit officially beginning at ai.
Herein, a tour in D is formally defined as a permutation of the n cities in
V , given by π = (π1, . . . , πn), which implicitly starts and ends at the depot
(π0 = πn+1 = 0), such that (πi, πi+1) ∈ A for all i = 0, . . . , n. The cost of a
tour given by permutation π is the sum of the individual costs of transition
between each pair of successive cities in the permutation,∑n
i=0 sπi,πi+1 .
For the SOP-TW, a tour given by π is a time feasible permutation if
20 SOP-TW: DEFINITION, LITERATURE AND DATA
(a) all precedence relations given by the set P are satisfied; and
(b) the arrival time at each city is within the city’s time window.
Given a permutation π, precedence (i, j) ∈ P is satisfied if city i is visited
before city j, that is, k < l, where city i is the k-th city in permutation π
(πk = i) and city j is the l-th city in permutation π (πl = j). The (earliest)
arrival time at the l-th city of permutation π is defined as
tπl = max {aπl , tπl−1+ pπl−1
+ sπl−1,πl , max s.t. (πk,πl)∈P,k<l{tπk + απk,πl}}(2.1)
for l = 1, . . . , n. These times are calculated sequentially, initialised with
tπ0 = t0 = 0 for the depot. The time window for city πl = j ∈ V is satisfied
if tj ∈ [aj , bj ]. Consequently, the tour given by permutation π = (π1, . . . , πn)
is a time feasible permutation if
(a) k < l for all (i, j) ∈ P , where πk = i and πl = j; and
(b) ti ∈ [ai, bi] for all i ∈ V .
The aim in solving the SOP-TW is to find a time feasible permutation of
the cities with the smallest cost.
The relationship between the SOP-TW and several well-known problems is
demonstrated in the next section.
2.2 Relaxations of the SOP-TW
It is well-known in integer programming that any inequality valid for a re-
laxation of an integer program is valid for the integer program itself. Since
generating valid inequalities for a relaxation is often easier than generating
valid inequalities for the original integer program, and many valid inequal-
ities are known for the key relaxations of the SOP-TW, it is important to
identify the relationships between the SOP-TW and related problems.
The following abbreviations are for a series of related problems:
2.2 Relaxations of the SOP-TW 21
Abbreviation Problem name
AP Assignment Problem
ATSP Asymmetric Travelling Salesman Problem
ATSP-PC1 ATSP with additional Precedence Constraints, set PC1
ATSP-PC2 ATSP with additional Precedence Constraints, set PC2
ATSP-TW ATSP with Time Windows
ATSP-TW-PC2 ATSP-TW with additional Precedence Constraints, PC2
(where PC2 is not induced by the TWs) i.e. the SOP-TW
In this section the relationship between the problems named above will be
shown. In particular, when PC1 and PC2 are appropriately defined (as will
be done later in this section):
AP ⊇ ATSP ⊇ ATSP-PC1 ⊇ ATSP-TW ⊇ ATSP-TW-PC2, and
AP ⊇ ATSP ⊇ ATSP-PC2 ⊇ ATSP-TW-PC2,
where F1 ⊇ F2 means that the problem denoted by F1 includes at least
all solutions in the feasible region of problem F2; in other words, F1 is a
relaxation of F2.
Show 1. AP ⊇ ATSP ⊇ ATSP-TW.
Ascheuer et al. [16] present a cutting plane formulation for the ATSP-TW
that extends the Dantzig, Fulkerson and Johnson [17] TSP formulation by
including a class of inequalities that forbid paths that violate the time win-
dows, known as infeasible path elimination constraints (IPECs):
Z(ATSP-TW) = min∑
(i,j)∈A
sijxij
s.t.∑
j∈V ∪{0}s.t.(i,j)∈A
xij = 1 ∀i ∈ V ∪ {0} (2.2)
∑i∈V ∪{0}
s.t.(i,j)∈A
xij = 1 ∀j ∈ V ∪ {0} (2.3)
x(A(W )) ≤ |W | − 1 ∀W ⊂ V ∪ {0}, 2 ≤ |W | ≤ n (2.4)
x(Q) ≤ |Q| − 1 ∀ infeasible pathsQ = (v1, v2, . . . , vk)
(2.5)
xij ∈ {0, 1} ∀(i, j) ∈ A, (2.6)
22 SOP-TW: DEFINITION, LITERATURE AND DATA
where xij is 1 if arc (i, j) ∈ A is used in the tour. For infeasible path
Q = (v1, v2, . . . , vk) with length k − 1, x(Q) :=∑k−1
i=1 xvivi+1 . For a set of
cities W ⊂ V ∪ {0}, A(W ) := {(i, j) ∈ A : i, j ∈ W} is the set of arcs
connecting cities in W , hence x(A(W )) is the sum of the arcs connecting
cities in W .
The IPECs, constraints (2.5), ensure the time windows are satisfied by pro-
hibiting subpaths that lead to time window violations. By removing the
IPECs, the ATSP-TW relaxes to the ATSP:
Z(ATSP) = min∑
(i,j)∈A
sijxij
s.t. (2.2), (2.3), (2.4) and (2.6).
Removing the subtour elimination constraints (SECs), constraints (2.4), the
relaxation of the ATSP formulation gives the AP:
Z(AP) = min∑
(i,j)∈A
sijxij
s.t. (2.2), (2.3) and (2.6).
�
Show 2. ATSP-PC 1 ⊇ ATSP-TW.
So far AP ⊇ ATSP ⊇ ATSP-TW has been shown. To show ATSP-PC1 ⊇ATSP-TW, a connection must be established between PC1 and the time
windows of the ATSP-TW.
The time window parameters (a,b) and minimum time delays (δ) of the
ATSP-TW induce a precedence set of pairs of cities, PTW (a, b, δ). This set
contains all pairs of cities with non-overlapping time windows. For example,
consider cities i and j with time windows [ai, bi] and [aj , bj ], respectively.
If bi < aj + δji, the time windows of i and j are non-overlapping such
that city i must precede city j (but not necessarily immediately before) in
any feasible tour. Consequently, all pairs of cities can be checked to see
if one must precede the other, in which case they are added to the prece-
dence set PTW (a, b, δ). However, this set only records precedences between
pairs of cities, and not specific information about time windows. Hence, if
PC1 ⊆ PTW (a, b, δ) then ATSP-PC1 ⊇ ATSP-TW, that is, ATSP-PC1 is a
relaxation of the ATSP-TW.
2.2 Relaxations of the SOP-TW 23
More formally, if city i must precede city j—denoted by i ≺ j—then every
path from j to i is infeasible, hence IPECs of the form in (2.7) are satisfied
by all feasible tours:
Z(ATSP-PC1) = min∑
(i,j)∈A
sijxij
s.t. (2.2), (2.3), (2.4) and (2.6)
x(Q(j, i)) ≤ |Q(j, i)| − 1, ∀(i, j) ∈ PC1, ∀Q(j, i), (2.7)
where Q(j, i) denotes a path from j to i (thus |Q(j, i)| denotes the length of
path Q(j, i)), and PC1 ⊆ PTW (a, b, δ). Consequently, constraints (2.7) are a
subset of constraints (2.5), so ATSP-PC1 is a relaxation of the ATSP-TW.
�
Show 3. ATSP-TW ⊇ ATSP-TW-PC 2.
To establish ATSP-TW ⊇ ATSP-TW-PC2, precedence set PC2 is defined as
containing at least one precedence that is not implied by the time windows of
the ATSP-TW, that is, PC2 * PTW (a, b, δ). In other words, the ATSP-TW-
PC2 is defined as per the ATSP-TW with additional precedence constraints
between pairs of cities not already given by the time windows. Consequently,
if the time windows are the same for both problems (or the time windows of
the ATSP-TW are a relaxation of the time windows of the ATSP-TW-PC2)
then ATSP-TW ⊇ ATSP-TW-PC2.
More formally, for a pair of cities, say i and j where i ≺ j, every path from j
to i is infeasible, hence IPECs of the form in (2.8) are satisfied by all feasible
tours:
Z(ATSP-TW-PC2) = min∑
(i,j)∈A
sijxij
s.t. (2.2), (2.3), (2.4), (2.5) and (2.6)
x(Q(j, i)) ≤ |Q(j, i)| − 1, ∀(i, j) ∈ PC2, ∀Q(j, i), (2.8)
where PC2 * PTW (a, b, δ). Consequently, constraints (2.8) are a superset of
constraints (2.5), so ATSP-TW is a relaxation of ATSP-TW-PC2.
�
24 SOP-TW: DEFINITION, LITERATURE AND DATA
Show 4. ATSP-PC 2 ⊇ ATSP-TW-PC 2.
Removing the time window IPECs, constraints (2.5), the relaxation of the
ATSP-TW-PC2 formulation gives the ATSP-PC2:
Z(ATSP-PC2) = min∑
(i,j)∈A
sijxij
s.t. (2.2), (2.3), (2.4), (2.6) and (2.8).
�
Show 5. ATSP ⊇ ATSP-PC 1 and ATSP ⊇ ATSP-PC 2.
Since the ATSP-PC1 is the ATSP with IPECs (2.7), the ATSP is a relaxation
of ATSP-PC1. Similarly, the ATSP-PC2 is the ATSP with IPECs (2.8), thus
the ATSP is a relaxation of ATSP-PC2.
�
In summary, it has been shown that the problems outlined above have the
following orderings when PC1 ⊆ PTW (a, b, δ) and PC2 * PTW (a, b, δ):
AP ⊇ ATSP ⊇ ATSP-PC1 ⊇ ATSP-TW ⊇ ATSP-TW-PC2,
and AP ⊇ ATSP ⊇ ATSP-PC2 ⊇ ATSP-TW-PC2.
The ATSP-PC is also known as the Sequential Ordering Problem (SOP).
For brevity and clarity, we call the ATSP-TW-PC the Sequential Ordering
Problem with Time Windows (SOP-TW). However, it is a subtle but very
important point to recognise the origin of the precedence constraints in the
naming of the SOP-TW. Consequently, let us denote ATSP-PC1 as SOP1
and ATSP-PC2 as SOP2. Then the problem orderings can be renamed as:
AP ⊇ ATSP ⊇ SOP1 ⊇ ATSP-TW ⊇ SOP2-TW,
and AP ⊇ ATSP ⊇ SOP2 ⊇ SOP2-TW.
Finally, recall from the start of this section that any inequality valid for a
relaxation of an integer program is valid for the integer program itself. Since
the AP, ATSP, ATSP-PC1, ATSP-PC2 and ATSP-TW are relaxations of the
ATSP-TW-PC2 (SOP2-TW), all valid inequalities for these relaxations also
hold for the ATSP-TW-PC2 (SOP2-TW).
2.3 Complexity of the SOP-TW 25
2.3 Complexity of the SOP-TW
It is well-known that the TSP is an NP-hard optimisation problem [18]. As
shown in Section 2.2, the SOP-TW reduces to the ATSP-TW if P = ∅,and reduces to the ATSP if the time windows are also relaxed. Since the
ATSP is NP-hard, so is the SOP-TW. Furthermore, since the problem of
finding a feasible solution to the ATSP-TW is NP-complete in the strong
sense [19], the problem of finding a feasible solution to the SOP-TW is also
NP-complete in the strong sense.
In the next section the literature on container terminals and related work
in both the TSP and machine scheduling fields is reviewed.
2.4 Literature review
In this section, key references are reviewed. Relevant survey papers on
container terminal operations are highlighted for the interested reader, as
well as general references on machine scheduling problems and the TSP.
A review of the two most closely related TSP variants—the SOP and the
ATSP-TW—follows, with a review of the state-of-the-art for the ATSP-TW.
Finally, literature on the SOP-TW and closely related problems is discussed.
2.4.1 General references
Three recent survey papers expansively describe and categorise the main
logistic operations—and subsequent decision problems—of container termi-
nals. Vis and de Koster [20] provide a detailed overview of the literature
for a selection of decision problems common at container terminals (with
55 references up to 2001). Steenken, Voß and Stahlbock [21] comprehen-
sively categorise a wide variety of container terminal operations, presenting
a review and discussion of relevant literature (with over 200 references).
The broad categories considered include the ship planning process, stor-
age and stacking logistics, simulation systems, and transport optimisation.
Stahlbock and Voß [22] update and extend the previous review (also with
over 200 references). The interested reader is directed to these three surveys
for insight on the types of problems that arise at seaport container terminals.
26 SOP-TW: DEFINITION, LITERATURE AND DATA
Both machine scheduling problems and the TSP with its many variants have
been studied for decades and continue to be an area of extensive investiga-
tion: for example, see the books [14, 15, 23] on scheduling; for the TSP, see
the books [24, 25, 26, 27]. Indeed, since sequencing and routing problems are
present in many industrial applications—and often modelled as TSP and/or
scheduling problems—these areas will continue to be of interest.
2.4.2 The SOP and ATSP-TW
Two TSP variants are closely related to the SOP-TW: the SOP (ATSP-PC)
and the ATSP-TW. Many papers have considered these NP-hard problems,
with both exact and heuristic methods developed.
The SOP was introduced by Escudero [28] where he presents a heuristic for
finding feasible solutions. Early mathematical formulations for the SOP are
presented by Ascheuer, Escudero, Grotschel and Stoer in [29, 30] along with
a cutting plane procedure used to find lower bounds on the optimal value.
Escudero, Guignard and Malik [31] present another formulation and use a
Lagrangian relax-and-cut approach to find even stronger lower bounds. A
polyhedral study is conducted by Balas, Fischetti and Pullyblank [32].
Both the SOP and ATSP-TW are considered by Ascheuer [33] where he
describes new classes of valid inequalities which are used within branch-
and-cut (B&C) schemes. This work results in a cutting plane model for the
ATSP-TW, as in [16], which extends the formulation for the TSP by Dantzig,
Fulkerson and Johnson [17] by including a class of inequalities that forbid
paths that violate the time windows (known as infeasible paths, as described
in Section 2.2). Ascheuer, Fischetti and Grotschel [8] test this cutting plane
model and two compact MIP formulations via B&C algorithms.
The first compact model is based on a TSP formulation proposed by Miller,
Tucker and Zemlin [34] that remodels the Dantzig, Fulkerson and Johnson
(DFJ) subtour elimination constraints by using additional t variables. As
demonstrated by Desrochers and Laporte [35], these t variables can be used
to include side constraints, such as time windows via a big-M constraint.
The second compact model used in [8] is an arc-based model that avoids the
big-M constraints, which was introduced by van Eijl [36] and Maffioli and
2.4 Literature review 27
Sciomachen [37]. We modify both compact formulations for the SOP-TW
and present them in Section 4.2.
Nikolakopoulos and Sarimveis [9] present a general heuristic algorithm to
solve the ATSP, SOP and ATSP-TW. The main algorithm incorporates an
insertion construction heuristic and improvement heuristics within a thresh-
old accepting algorithm (a variation of simulated annealing). Their method
does not require parameter tuning for the different variations, and produces
feasible solutions in reasonable time on their test bed of instances. However,
it is important to note that their threshold accepting algorithm requires a
feasible initial solution to begin. In Section 5.3.2 we modify their inser-
tion construction heuristic for the SOP-TW, but as we demonstrate in §6.4,
generating feasible solutions for our larger SOP-TW instances is extremely
difficult (this is unsurprising; see the notes on complexity in §2.3).
Dumas, Desrosiers, Gelinas and Solomon [11] present an exact dynamic pro-
gramming (DP) algorithm for solving the TSP-TW. The effectiveness of the
approach lies in three new elimination tests which significantly reduce the
state space and the number of state transitions. The most effective test
uses precedence information induced from the time windows to eliminate
transitions: transition from city i to city j can only be feasible if all pre-
decessors of j have been visited prior to arriving at i. The other two tests
eliminate states that ultimately cause time window violations. While we
incorporate tests that evaluate similar conditions (compare with Criteria 2
and 3 in Section 7.4), our implementation is fundamentally different.
Focacci, Lodi and Milano [38] propose a hybrid framework that merges Con-
straint Programming (CP) and Operations Research techniques to solve
both the symmetric and asymmetric TSP-TW. Constraint propagation is
used to direct feasibility, while Lagrangian techniques drive the optimisa-
tion.
2.4.3 State-of-the-art for the ATSP-TW
Dash et al. [39] propose a new formulation for the ATSP-TW where time
windows are further subdivided into subwindows called buckets. Valid in-
equalities for this time bucket formulation are derived as well as correspond-
ing efficient separation algorithms. The valid inequalities are embedded in a
28 SOP-TW: DEFINITION, LITERATURE AND DATA
B&C algorithm; the computational results indicate this is one of the current
state-of-the-art techniques for the ATSP-TW. Like the B&C algorithm of
Ascheuer et al. [8], this algorithm could be extended and used to solve the
SOP-TW but is beyond the scope of this thesis (see §4.7 for details).
Li [40] proposes a bi-directional dynamic programming approach for solving
the ATSP-TW. By performing forward and backward DP simultaneously
significantly fewer non-dominated labels are created, producing an efficient
DP algorithm. An extensive computational study using six benchmark data
sets shows this method is among the state-of-the-art solution techniques for
the ATSP-TW, solving a number of open instances for the first time.
Roberti [41] proposes several exact algorithms to solve a variety of Vehicle
Routing Problem (VRP) variants. For the ATSP-TW, Roberti proposes two
new tour relaxations which he uses to compute valid lower bounds. An exact
DP algorithm based on the relaxations is used to obtain an optimal integer
solution. Like Li [40], an extensive computational study demonstrates this
method is the current best, including solving many previously open bench-
mark problems. In general, Roberti’s methods outperform those of Li [40]
and Dash et al. [39], as well as the B&C methods of Ascheuer et al. [8] and
the CP-based method of Focacci et al. [38].
2.4.4 The SOP-TW
When compared with other problems in the TSP and machine scheduling
literature, relatively few papers have considered the SOP-TW. Of those
papers, the definition of the SOP-TW may vary from our description in two
ways: the form of the objective function and the form of the precedence
constraints.
Some versions of the SOP-TW (such as in [4, 37, 42, 43, 7, 5, 6]) consider
minimising the makespan—the sum of all travelling, processing and waiting
times and denoted Cmax—rather than minimising the sum of all travelling
times,∑n
i=0 sπi,πi+1 (such as in this thesis, as well as in [12]). Except for
a special case (such as in [44, 45, 46]; see Section 2.5.1), these two objec-
tive functions are significantly different. Since the form of the objective
function often influences the solution approach (e.g. dynamic programming,
greedy heuristics), an approach may be rendered unsuitable if the form of
2.4 Literature review 29
the objective function differs.
Another point of difference is whether the precedence constraints involve
a minimum time-lag, such as our αij . In the presence of such a time-lag,
as in [5, 6], the precedences are called generalised precedence constraints;
otherwise they are termed ordinary precedence relations, as in [4, 37, 42,
43, 7, 12, 44, 45, 46]. With ordinary precedences, only the order of the jobs
are important. In contrast, the introduction of time-lags force additional
checks on the timing of each job. As a result, a schedule that is infeasible
for a SOP-TW instance with generalised precedence constraints may be
feasible for the equivalent problem with ordinary precedences, as proved
in Appendix C.2 Thus the presence of minimum time-lags may also affect
the solution approach. More on the relationship between generalised and
ordinary precedences is presented in Appendix C.
As shown in Table 2.1, to the best of our knowledge, we are the first to
consider the SOP-TW with generalised precedence constraints with the aim
of minimising the sum of all travelling times, that is, the SOP-TW as stated
in Section 2.1. Consequently, we cannot directly compare our results with
existing results in the literature.
Objective function
Cmax∑n
i=0 sπi,πi+1
Pre
c. ordinary [4, 37, 42, 43, 7, 44, 45, 46] [12]
generalised [5, 6] our work
Table 2.1: Reference summary for the SOP-TW.
Both Hurink and Knust [5] and Brucker and Knust [6] consider the SOP-
TW as a machine scheduling variant with makespan objective; Hurink and
Knust [5] present a tabu search algorithm for finding upper bounds while
Brucker and Knust [6] present a method to find lower bounds.
Also minimising makespan, Escudero and Sciomachen present a MIP model
for the SOP-TW [4], a heuristic for improving feasible solutions [42] and a
2A feasible solution to the SOP-TW with generalised precedences (gen-SOP-TW) is
always feasible for the SOP-TW with ordinary precedences (ord-SOP-TW); the reverse is
not true. An infeasible solution to the ord-SOP-TW is always infeasible for the gen-SOP-
TW; the reverse is not true. A proof of these propositions is given in Appendix C.
30 SOP-TW: DEFINITION, LITERATURE AND DATA
heuristic for finding feasible solutions [43]. Maffioli and Sciomachen [37] (as
well as van Eijl [36] for the Delivery Man Problem with Time Windows)
introduce an arc-based linear MIP model that avoids big-M constraints; we
present a modified version of the arc-based model in Section 4.2.2.
The SOP-TW without release dates is a special case of the SOP-TW, where
minimising∑n
i=0 sπi,πi+1 is equivalent to minimising makespan; this will be
discussed in more detail in Section 2.5.1. For this special case, Ortuno [44]
outlines a Lagrangian approach and an algorithmic framework to identify
and strengthen violated valid inequalities based on due dates and prece-
dences. Escudero and Ortuno [45] present the valid cuts based on due dates
and the corresponding heuristic separation algorithm; Alonso-Ayuso, Detti,
Escudero and Ortuno [46] present this again, but also give some compu-
tational results of their implementation of this Lagrangian relax-and-cut
scheme for finding lower bounds.
Several papers have considered the SOP-TW as a TSP variant. Mingozzi,
Bianco and Ricciardelli [12] present an exact algorithm based on a dynamic
programming formulation, where the aim is to minimise∑n
i=0 sπi,πi+1 (note
that this method cannot be used when the objective is Cmax). To reduce
the size of the state space graph they introduce new bounding functions.
Fagerholt and Christiansen [7] consider the SOP-TW with additional allo-
cation constraints, where the objective is Cmax. They also present a forward
dynamic programming algorithm, where the problem is solved as a shortest
path problem. Like in [11], both [7] and [12] reduce the size of the state
space graph by detecting and eliminating states that cannot lead to an op-
timal solution or are clearly infeasible. We apply similar but fundamentally
different tests in Section 7.4 to prune branch-and-bound nodes.
2.4.5 Other closely related problems
The SOP-TW is closely related to a number of classical optimisation prob-
lems, including Pickup and Delivery Problems (PDPs), Dial-a-Ride Prob-
lems (DARPs) and Vehicle Routing Problems (VRPs). In this section, a
brief description of these problems and their most pertinent variants is given,
and similarities and differences to the SOP-TW are noted. Seminal refer-
ences and more recent contributions are provided for the interested reader.
2.4 Literature review 31
In a complementary vein, Laporte and Martin [47] classify and review nu-
merous cycle location problems that arise in transportation and telecommu-
nication applications. In particular, they consider several problems with ad-
ditional sequencing constraints relevant to the SOP-TW, such as the ATSP-
PC, ATSP-TW, PDPs, DARPs, TSP with Pickup and Delivery (TSP-PD)
and the Pickup and Delivery Problem with Time Windows (PDP-TW).
Pickup and Delivery Problems are a large family of routing problems involv-
ing the distribution of one or more commodities between various locations.
Parragh, Doerner and Hartl [48, 49] provide a two-part comprehensive sur-
vey that reviews and classifies vehicle routing problems that involve pickup
and delivery operations. The surveys are restricted to problems and solution
approaches where routing—rather than scheduling—is most important. As
a result, approaches that focus on full-truck-load problems (problems where
there is unit vehicle capacity, unit demand and unit supply) are excluded.
In the first part [48], the focus is transportation routing problems where
all goods to be delivered are transported from the depot(s) to linehaul
customers and all goods to be picked up are transported from backhaul
customers to the depot(s). The second part [49] focuses on PDPs where
goods are transported between pickup and delivery locations; these vari-
ants are most closely related to the SOP-TW. Of particular interest are the
dial-a-ride problems—which we address in §2.4.5.1—and the vehicle routing
problems—which we address in §2.4.5.2.
2.4.5.1 Dial-a-Ride Problems
Dial-a-Ride Problems are closely related to the ATSP-PC. A typical DARP
involves scheduling a fleet of vehicles to pickup and deliver passengers be-
tween various locations, subject to additional side constraints. Since each
passenger must be picked up before they can be delivered to their desti-
nation, a precedence relation arises between passenger pickup and delivery
locations. In general, the transport vehicles can carry multiple passengers,
so a vehicle route may visit other locations between each passenger’s origin
and destination.
Many DARP variations exist, and generalise several important vehicle rout-
ing problems, such as the VRP with Time Windows (VRP-TW) and the
32 SOP-TW: DEFINITION, LITERATURE AND DATA
VRP with Pickup and Delivery (VRP-PD) with and without time windows.
See Cordeau and Laporte [50] for a survey of various models and algorithms
for DARPs.
The TSP reappears in PDPs. An important single-vehicle variation of the
DARP is the TSP with Pickup and Delivery (TSP-PD). The TSP-PD is
a TSP where the set of 2n cities take the form of n pickup-delivery pairs
such that for each pair, called a request, the pickup city must be visited
before the delivery city. The aim is to find a least cost tour of the cities such
that all requests are met. In the ATSP-PC each city may have multiple
predecessors and/or successors, thus the TSP-PD is a special case. See
Ruland [51], Ruland and Rodin [52], and Dumitrescu, Ropke, Cordeau and
Laporte [53] for polyhedral results and branch-and-cut algorithms for the
TSP-PD.
2.4.5.2 Vehicle Routing Problems
The Vehicle Routing Problem is a well-known combinatorial optimisation
problem with many variants. While VRPs arise in a myriad of real-world
contexts, they are often described in terms of the distribution of commodities
between depots and customers (nodes), where the distribution is performed
by a fleet of vehicles. In this setting, the VRP consists of determining a set
of vehicle routes that satisfy customer demand—and any side constraints—
while minimising the sum of the distribution costs of all vehicle routes.
Common side constraints include vehicle capacities, time/distance limits
on route length, precedence relations between pairs of customers, and time
windows on customers visits. Other variations include: fleet type (heteroge-
neous/homogeneous); number and size of commodities; stochastic demand;
number and size of depots; symmetric/asymmetric distribution costs; and
input that changes over time.
Numerous books, guides and surveys on the VRP have been developed.
Moreover, the vast VRP literature includes many recent contributions, high-
lighting the ongoing interest in this area of research. For more details on
the VRP, common variants, applications, models and a variety of exact and
heuristic solution methodologies, see: Toth and Vigo [54]; Golden, Raghavan
and Wasil [55]; Laporte [56, 57, 58]; Cordeau, Gendreau, Laporte, Potvin
2.4 Literature review 33
and Semet [59]; Baldacci, Toth and Vigo [60]; Cordeau, Laporte, Savelsbergh
and Vigo [61]; Potvin [62]; and Pillac, Gendreau, Gueret and Medaglia [63].
Recent PhD theses address a number of VRP variants and review the state-
of-the-art: for example, see Tramontani [64], Jepsen [65], Roberti [41] and
Subramanian [66].
The TSP is a special case of the VRP—thus the VRP is NP-hard—where
there is only one uncapacitated vehicle in the fleet. As a result, TSP sub-
problems arise when VRP solution techniques take a two-stage cluster-first
route-second approach. Consequently, the SOP-TW can be viewed as a
special case of the VRP with Time Windows and additional Precedence
Constraints (VRP-TW-PC) where there is only one vehicle.
Several VRP variants are closely related to the SOP-TW. The two most rel-
evant generalisations are the VRP with Time Windows (VRP-TW) and the
VRP with Pickup and Delivery (VRP-PD) with and without time windows.
In the VRP-TW, each customer must be visited within a specified time win-
dow. Consequently, the VRP-TW is a generalisation of the ATSP-TW (a
relaxation of the SOP-TW, discussed in §2.2) where multiple vehicles can
service the cities. For an overview of the VRP-TW and a variety of exact
and heuristic methods that was up-to-date as of 2002, see Cordeau, De-
saulniers, Desrosiers, Solomon and Soumis [67]. For a survey of the most
effective exact algorithms for solving the VRP-TW from 2002 to 2012, see
Baldacci, Mingozzi and Roberti [68]. For a comprehensive survey of impor-
tant heuristic solution techniques for solving the VRP-TW, see Braysy and
Gendreau [69, 70].
In a common version of the VRP-PD, n commodities are to be distributed
by the vehicle fleet, where each commodity is associated with a single pickup
node (origin) and a single delivery node (destination). The pickup node must
be visited before the corresponding delivery node, so precedence relations
exists between n node-pairs. Moreover, both nodes in the precedence node-
pair must be visited by the same vehicle. Consequently, the VRP-PD is a
generalisation of the TSP-PD, where there are multiple vehicles to perform
requests.
The VRP-PD with Time Windows (VRP-PD-TW) is a generalisation of the
VRP-TW; the VRP-TW is a special case of VRP-PD-TW when all origins
34 SOP-TW: DEFINITION, LITERATURE AND DATA
(or alternatively, all destinations) are at the depot. When people rather than
commodities are transported, the VRP-PD and VRP-PD-TW are usually
known as DARPs and often incorporate constraints and/or objective func-
tion terms to account for passenger inconvenience such as waiting time and
journey time. See Desaulniers, Desrosiers, Erdmann, Solomon and Soumis
[71], Cordeau, Laporte, Potvin and Savelsbergh [72] and Cordeau, Laporte
and Ropke [73] for reviews of key models, methods, results and applications
of the VRP-PD and VRP-PD-TW.
2.5 Existing SOP-TW data sets
To date, SOP-TW instances with up to 3,000 jobs have been considered in
the literature. Insight on why these large problems have been successfully
tackled via heuristic methods is given in this section.
The bulk of research on the SOP-TW has been performed by Laureano
Escudero and various collaborators. A special case of the SOP-TW they
have considered is discussed in Section 2.5.1, while the SOP-TW data sets
used to test their methods are described in Section 2.5.2. The motivation
for a new SOP-TW data generator is presented in Section 2.5.3.
2.5.1 Special case: the SOP-TW without release dates
As noted in Section 2.4, Ortuno [44], Escudero and Ortuno [45] and Alonso-
Ayuso, Detti, Escudero and Ortuno [46] consider the SOP-TW without
release dates, that is, where ai = 0 for all i ∈ V . In this special case,
and when waiting (idle time) is not permitted, minimising∑n
i=0 sπi,πi+1 is
equivalent to minimising makespan. The details follow: Firstly, recall that
the makespan of a schedule is the sum of all setup, processing and waiting
times, denoted Cmax. Without release dates (and indeed, with sufficiently
relaxed release dates) waiting is not required; as soon as the current job
has been processed, the setup and processing of the next job can begin
immediately. Consequently, the makespan is reduced to the sum of all setup
and processing times:∑n
i=0(sπi,πi+1 + pπi). Since the sum of processing
times is constant, minCmax is equivalent to min∑n
i=0 sπi,πi+1 in this special
2.5 Existing SOP-TW data sets 35
case. Figure 2.1 shows partial schedule (. . . → i → j → k → . . .) for the
general case and the special case with no release dates.
(a) . . .
Time
∆. . .
ai aj ak
pi sij pj sjk pk
(b) . . .
Time
. . .pi sij pj sjk pk
Figure 2.1: (a) General case: release dates and waiting permitted. (b) Special
case: no release dates and\or waiting is not permitted. Note that ∆ is the
machine idle time before starting job j due to release date aj .
2.5.2 Data sets used by Escudero and Sciomachen
In several publications, including a book chapter [4] and two journal articles
[42, 43], Laureano Escudero and Anna Sciomachen consider the SOP-TW
with the objective of minimising makespan. The research presented therein
appears to be based on work published in various research reports (especially
[74]) as the material and data sets of all of these publications significantly
overlap or are very closely related.
In [4], Escudero and Sciomachen consider a real-life application of the SOP-
TW where jobs are to be sequenced on a single machine in a card assembly
line. They present a MIP model for this problem and outline an algorithm
for finding feasible solutions. No results are reported for the MIP, while the
algorithm is tested on one real-life problem instance we call RL-1. This data
set is described in Section 2.5.2.1.
In [42], Escudero and Sciomachen outline an algorithm with local search
procedures for finding an initial feasible solution and give a local search
heuristic for improving feasible solutions. These algorithms are tested on
RL-1, another real-life instance we call RL-2 (see §2.5.2.2), and two sets
of randomly generated instances we call RG-1 (see §2.5.2.3) and RG-2 (see
§2.5.2.4).
36 SOP-TW: DEFINITION, LITERATURE AND DATA
In [43], Escudero and Sciomachen give a more detailed description of the
algorithm for finding an initial feasible solution originally presented in [42].
The algorithm is tested on RL-1, RL-2, and two sets of randomly generated
instances we call RG-3 (see §2.5.2.5) and RG-4 (see §2.5.2.6).
The two main contributions of the research in [4, 42, 43] are (1) a heuris-
tic for generating a feasible solution for the SOP-TW, and (2) a heuristic
for improving feasible solutions by reducing makespan. They test the effec-
tiveness of the algorithms on two real-life cases and a collection of random
problem instances they generate; the characteristics of these instances are
now described.
2.5.2.1 Real-life instance RL-1
This instance has n = 300 jobs and |P | = 2,142 precedences (≈ 7.14n).
Interestingly, only 14 unique jobs, called part numbers, make up the 300
jobs; there are 12 jobs with part number A, 27 jobs with part number B,
etc. All jobs with the same part number have identical processing times and
characteristics (precedence relations, family). Precedence relations between
different parts hold for all jobs with those part numbers: D parts (12 jobs)
must precede all A parts (also 12 jobs), so there are 144 precedences between
theD and A parts. The part numbers are divided into two families, such that
there is no setup time between two jobs in the same family, while the setup
time between jobs in different families is 300. It is important to note that
(1) the processing time of each job (in the range [4.3, 14.5]) is significantly
smaller than the inter-family setup time of 300, and (2) the setup times can
only take two values (0 or 300). Finally, only 27 of the 300 jobs have active
time windows (all with C or G part numbers), while the remaining 273 jobs
have no release date and the same large due date; 273 jobs are released on a
Monday and must be completed by Friday, while 27 jobs must be processed
within 16 hours of being release.
2.5.2.2 Real-life instance RL-2
The characteristics of RL-2 are similar to RL-1, except this instance has
n = 139 jobs and |P | = 479 precedences (≈ 3.45n).
2.5 Existing SOP-TW data sets 37
2.5.2.3 Random instances RG-1
This set contains 50 instances, generated as follows. For a given value of n,
3n precedence relationships are generated by drawing 3n pairs of integers
from the discrete uniform distribution over [1, n]; the j-th pair, say (πj , σj),
gives the (ordinary) precedence relation that job πj must precede job σj .
For each i ∈ V , integer processing times, release dates and due dates are
also generated from discrete uniform distributions such that pi ∈ [1, 100],
ai ∈ [1, 100], and bi ∈ [ai − 1 + 2pi, ai − 1 + 2npi].3 The values of n are 100,
500, 1,000, 2,000 and 3,000, with ten instances generated for each value of
n. For n = 100, the jobs are randomly allocated to 5 families: for each pair
of families, the inter-family setup times are drawn from a discrete uniform
distribution in [5, 500]; the intra-family setup times are zero. For n ≥ 500,
the jobs are randomly allocated to 10 families, with setup times allocated
as for n = 100.
2.5.2.4 Random instances RG-2
This set contains 102 instances, generated in a similar way as RG-1. For
a given value of n, 3n precedence relationships are generated as described
for RG-1. The values of n are 100, 200, 300, 400 and 500. The prob-
lem instances are split (unevenly) between nine classes, labelled E1 to E9.
Classes E1–E5 (a total of 80 instances) have 5 families where integer setup
times are generated from the discrete uniform distribution over [5, 500]. In-
teger processing times and release dates are generated from discrete uniform
distributions such that pi ∈ [1, 50] and ai ∈ [1, 1000]. Classes E6–E9 (22
instances) have one job per family (i.e. every pair of jobs will have a non-
zero setup time) where integer setup times are generated from the discrete
uniform distribution over [5, 500]. Integer processing times and release dates
are generated from discrete uniform distributions such that pi ∈ [1, 20] and
ai ∈ [1, 10000].4
3To match Escudero and Sciomachen, for all data sets discussed in §2.5, release dates
correspond to the time a job can be started, while due dates correspond to the time a job
must be completed.4Note that although [42] does not describe how due dates are generated, we assume
that they are the same as described for RG-1.
38 SOP-TW: DEFINITION, LITERATURE AND DATA
2.5.2.5 Random instances RG-3
This set contains 55 data sets generated as per RG-1, for n = 500.5
2.5.2.6 Random instances RG-4
As per RG-1, except due dates are generated from a discrete uniform distri-
bution in [ai− 1 + npi, ai− 1 + 5npi], and for n = 100, 300, 500, 800, 1,000,
1,500 and 3,000 (one instance per value of n).6
2.5.2.7 A note on the random instances RG-1 to RG-4
In [43], the last procedure of the preprocessing routine checks a list of 10
conditions for testing the infeasibility of a problem instance. However, this
list is not exhaustive, and so an infeasible instance may not be identified.
When discussing the generation of the random problem instances in [42]
and [43], Escudero and Sciomachen do not address the issue of producing
infeasible data sets. This appears to be a significant oversight, as all of the
data generators outlined above could easily generate an infeasible instance.
However, since all of their time windows are relatively wide (reducing the
likelihood of infeasibility), the most likely cause of an infeasible instance
is their method for generating precedence relations. In contrast, the data
generator described in Chapter 3 is designed to ensure all data sets produced
are feasible. This guarantees no computational effort (generating or solving)
is expended on infeasible problems.
2.5.2.8 Other data sets used with collaborators
Ortuno’s PhD thesis [44] (supervised by Escudero) considers the special case
of the SOP-TW described in Section 2.5.1. A Lagrangian approach and an
algorithmic framework to identify and strengthen violated valid inequalities
5Note that although [43] does not describe how setup times are generated, we assume
that they are the same as described in [42] for RG-1.6As with RG-3, although [43] does not describe how setup times are generated, we
assume that they are the same as described in [42] for RG-1.
2.5 Existing SOP-TW data sets 39
based on due dates and precedences are presented; no computational experi-
ments are reported. The valid cuts based on due dates and the corresponding
heuristic separation algorithm are also given in the closely related publica-
tion by Escudero and Ortuno [45]; again, no experiments are reported.
Alonso-Ayuso, Detti, Escudero and Ortuno [46] repeat most of the content
in [45], extend the preprocessing scheme given by Escudero, Guignard and
Malik [31] for the SOP, and present some computational results of their
implementation of this Lagrangian Relax-and-Cut scheme for finding lower
bounds.
Their data sets are constructed from 9 SOP instances (used in [28, 30, 31]);
each SOP instance is converted into a SOP-TW instance by adding deadlines
to some jobs (no release dates). Five sets of randomly generated deadlines7
are considered for each underlying SOP, giving a total of 45 instances; n
ranges from 8 to 99. The majority of instances have only a few active
deadlines; for example, the 99 job instances have at most 8 active deadlines,
leaving 91 time windows relaxed.
The main MIP presented by Maffioli and Sciomachen [37] is tested on ran-
domly generated instances created along the lines of RG-1, where n ranges
from 6 to 40 jobs and |P | ranges from zero to 2.45n. For each i ∈ V , in-
teger processing times, release dates and due dates are also generated from
discrete uniform distributions such that pi ∈ [1, 100], ai ∈ [1, 100], and
bi ∈ [ai + pi, ai + 2npi]. The instances are split into three classes based
on the type of setup times. The first class has setup times drawn from a
discrete uniform distribution in [5, 500]; the second class has jobs grouped
into families, such that there is no setup time between two jobs in the same
family, while the setup time between jobs in different families is 300; the
third class is similar to the second class, except the non-zero setup times are
random positive integers.
While Maffioli and Sciomachen’s results can not be directly extrapolated
(due to makespan objective) it is very interesting to note that their MIP
reached optimality faster on data sets where there was at least n precedences
and the time windows were tight (measured by the time window widths and
scaled for processing times). This supports the hypotheses that: (1) a rela-
7No details are given on how the deadlines are generated.
40 SOP-TW: DEFINITION, LITERATURE AND DATA
tively small number of precedence relationships makes an instance harder to
solve, and (2) relatively tight time windows makes an instance easier to solve
(noted in Section 3.4.2). Indeed, these points are interrelated: as average
time window widths reduce, the average number of precedences induced by
time windows will increase (see Section 4.5.4 for more on this). However,
it is also important to note that the observation that tightly constrained
problems are solved faster may not be true if the solution technique does
not have an efficient method for discarding infeasible solution candidates.
2.5.3 Motivation for a new SOP-TW data generator
Since the majority of data sets used by Alonso-Ayuso, Detti, Escudero and
Ortuno [46] have so few active deadlines and no release dates, these instances
reflect a special case of the SOP-TW problem quite different to the one we
are primarily interested in, as described in §2.5.1. As a result, we decided
against using these instances in this thesis.
We also chose not to replicate the data generation methods of Escudero and
Sciomachen, as described in RG-1 to RG-4. This is for four main reasons,
discussed in more detail below:
1. the properties of their underlying real-life application are substantially
different to our real-life application;
2. we want a port-specific data generator capable of generating a wide
variety of problem instances that have relevant characteristics;
3. a wide variety of hard data sets should be easy to generate by changing
a range of application-specific parameters; and
4. all problem instances generated should be guaranteed to be feasible.
(1) Differences in real-life applications
Like in Chapter 3, Escudero and Sciomachen generate random data sets with
their particular real-life application in mind, and thus their various data sets
reflect the characteristics of that production environment. Understandably,
they have also designed their algorithms (for generating feasible solutions
and also improving makespan) with that application in mind, and so they
effectively cater to—and exploit—the characteristics of those instances.
2.5 Existing SOP-TW data sets 41
In our real-life application of the SOP-TW (compare with the application
described in RL-1), there is no concept of families, part numbers, or “fixed”
setup times (e.g. setup is either 0 or 300). Each of these concepts signif-
icantly affect algorithmic design; they reduce the complexity of a problem
instance by inherently introducing significant symmetry, and thus enable
“interchangeability” (job i is identical (in some sense) to job j, so can be
treated as such) and “swapping” (job i is different (in some sense) to job j,
say based on family, so swap i for another job with the same family as job j).
Moreover, by having a relatively large non-zero setup time, schedules that
include many transitions between jobs in different families are automatically
highly penalised. In contrast, when processing and setup times are similar,
it is more difficult to distinguish good transitions from bad transitions.
Contrasting RL-1, the key characteristics of our real-life application are: all
jobs are unique; there is very little symmetry in the parameter values; there
is no concept of families; setup times may vary significantly; generally, setup
times are not symmetric (i.e. sij 6= sji); the range of processing times has
the same order of magnitude as the range of setup times; potentially, there
is quite a large range of setup times to/from a particular job; all of our time
windows are active; and all of our time windows are different.
Since our real-life application has fundamentally different characteristics,
it is unlikely that Escudero and Sciomachen’s algorithm for finding feasi-
ble solutions will work as effectively on our problem instances; we do not
test this hypothesis due to time constraints. Additionally, since minimising
makespan is different to minimising the sum of the setup times, Escudero
and Sciomachen’s algorithm for improving makespan needs to be modified to
improve our objective. However, we do not do this since any results obtained
by implementing this modified algorithm could not be directly compared.
(2) Comprehensive port-specific data generator
By construction, RG-1 to RG-4 could never satisfy (2); the random data
generation methods of Escudero and Sciomachen were not motivated by a
seaport container terminal application. Consequently, those problem in-
stances were not designed with that application in mind. In contrast, we
want to test our methods on relevant data, thus we are motivated to create
a comprehensive port-specific data generator that will generate interesting
42 SOP-TW: DEFINITION, LITERATURE AND DATA
and feasible SOP-TW instances.
(3) Easily generate a wide variety of hard problem instances
In general, it becomes harder to find a feasible solution for SOP-TW in-
stances as n increases (all other characteristics unchanged). However, the
relative ease with which feasible solutions are found for RL-1 and RL-2,
and most instances in RG-1, RG-3 and RG-4, indicates that these data sets
are not especially hard. This is unsurprising for the randomly generated in-
stances. For all of these instances, pi ∈ [1, 100] and ai ∈ [1, 100], both with
expected value of 50.5. For RG-1 and RG-3, bi ∈ [ai− 1 + 2pi, ai− 1 + 2npi]
with expected value ai−1+(n+1)pi; for RG-4, bi ∈ [ai−1+npi, ai−1+5npi]
with expected value ai − 1 + 3npi. Since n is in the limits of the interval
over which the due dates are drawn, the release dates become insignificant
as n increases, reducing the relative difficulty of finding a feasible solution.
For example, consider instances when n = 3,000. For RG-1 and RG-3, the
expected value of the due dates is 151,600; for RG-4, the expected value
of the due dates is 454,549.5. With all release dates drawn from [1, 100],
the relaxed problem with no release dates (§2.5.1) is almost equivalent. In
contrast, if the range of release dates was larger (possibly also dependent
on n, or another parameter), in general it would be harder to find feasible
solutions. Indeed this appears to be the case with the RG-2 data sets.
The most difficult instances considered by Escudero and Sciomachen are
RG-2; these have non-trivial release dates and more general setup times so
their properties more closely resemble those of our application. Interestingly,
the results presented in [42] show that in 9 out of 102 instances in RG-2 a
feasible solution was not found. It is possible that these instances were
infeasible. Alternatively, they may be difficult data sets for their algorithm;
unfortunately, no comment is made on this in [42]. For those that did
have a feasible solution, the average CPU time of the algorithm increased
significantly for all n when release dates were non-trivial and there was one
job per family (i.e. n families, as is the case with our problem instances)
rather than just 5 families. In other words, on average, the algorithm took
significantly longer to terminate on instances in E6–E9 compared with the
instances in E1–E5, indicating they were substantially harder instances.
The main advantages of the data generation schemes described in §2.5.2.3–
2.6 Chapter summary 43
2.5.2.6 are that they are relatively simple and easy to implement. Moreover,
it is easy to vary the input parameters to get a range of different data sets.
However, it appears that to generates data sets which are hard (in terms
of finding a feasible solution) also increases the risk of producing infeasible
problem instances (as may have been the case with the RG-2 instances).
Since we know what aspects make our real-life application hard, a tailor-
made data generator enables these parameters to be varied to achieve hard
data sets.
It is important to note that we convert all crane problem instances into
SOP-TW instances (see Section 3.3), so that application-specific information
(such as the underlying locations in the container yard) cannot be deduced
or exploited. While exploiting application-specific information would enable
bespoke solution methods for these instances, the focus of this thesis is
solving the general SOP-TW. Consequently, we develop general purpose
solution methods that do not use any application-specific information.
(4) Data generator must produce feasible SOP-TW instances
As noted in Section 2.5.2.7, the data generator described in Chapter 3 is
designed to ensure all data sets are feasible. In contrast, it is an oversight
that the risk of generating infeasible instances is not discussed in [42] or [43],
as this is possible under the schemes described therein.
To address these four issues, a detailed methodology for generating random,
feasible crane scheduling instances with time windows and natural prece-
dence relations—real-life inspired SOP-TW instances—is given in the next
chapter.
2.6 Chapter summary
Our initial interest in the SOP-TW was sparked by a real-world crane
scheduling problem that arises at seaport container terminals. In this chap-
ter the SOP-TW was formally defined, and its relationship to closely related
problems was discussed.
To the best of our knowledge, we are the first to consider the SOP-TW with
generalised precedence constraints with the aim of minimising the sum of all
44 SOP-TW: DEFINITION, LITERATURE AND DATA
travelling times, that is, the SOP-TW as stated in Section 2.1. Consequently,
we cannot directly compare our results with existing results in the literature.
This fact, along with the desire to have a diverse set of SOP-TW problem
instances, motivates the need for problem-specific data and thus the creation
of a data generator. A detailed method for creating port-specific container
data based on a real world terminal layout is developed in the next chapter.
Chapter 3
A NEW SOP-TW DATA
GENERATOR
In this chapter a detailed method for creating port-specific container data based on
a real world terminal layout is developed. By using this method, port-specific SOP-
TW data sets are generated with a number of characteristics that are used to test
our solution techniques.
3.1 Introduction
Our initial interest in the SOP-TW was sparked by a real-world scheduling
problem, where a series of gantry cranes were to be used to move shipping
containers at a quayside/landside exchange interface of a seaport container
terminal, and the interface has a temporary storage area with a large capac-
ity; schedules were to be generated over a rolling planning horizon. In the
remainder of this chapter we present a general methodology (split into two
procedures) for generating random data for this crane problem, and then
converting that crane scheduling data into data for the SOP-TW.
The first procedure, RandomPortDataGen, generates random, feasible test
data for a crane scheduling problem with time windows and natural prece-
dence relations. Via a number of parameters, the data generator can cre-
ate random problem instances with specific characteristics, including: num-
ber and layout of locations; number of containers; distribution of contain-
45
46 A NEW SOP-TW DATA GENERATOR
ers to locations for pick-up and drop-off; width of time windows; density
of multiple-use locations and precedence relations. The second procedure,
MapCraneDataToSOPTW , converts the crane scheduling data sets gener-
ated by RandomPortDataGen into SOP-TW data sets.
By enabling the automatic generation of feasible test data sets based on
the setup and dynamics of a realistic port system (given by a set of key
parameters), techniques for solving the crane scheduling problem can be
tested on a variety of interesting, feasible data sets. Furthermore, by con-
verting this crane data into data for a more general problem, namely the
SOP-TW, the performance of new techniques can be more readily compared
and contrasted with those already established in the vast TSP and machine
scheduling literature.
The outline for the rest of this chapter is as follows. In §3.2 the procedure
RandomPortDataGen is presented. The focus of §3.2.1 is how to generate
the physical storage locations within the container yard; the properties of
these locations are discussed in §3.2.2. In Sections 3.2.3–3.2.6 the focus is
on generating container movements with associated precedences and time
windows. In §3.3 the procedure MapCraneDataToSOPTW is presented.
The parameter settings used to generate all data sets are discussed in §3.4.
A summary of the data sets generated and their characteristics is given in
§3.5–3.6.
3.2 Procedure RandomPortDataGen: generating ran-
dom crane problem instances
Within seaport container terminals, cranes are often used to move containers
from one place to another. A loaded crane job consists of picking up a
container from one location and dropping it off at another location, taking
some amount of time, called the processing time. Once a loaded crane job is
performed, the crane moves unloaded to the pick-up location of the next job.
Associated with each container movement is a time window: a time interval
during which the container must be picked up from its current location.
Since a physical storage location within a container yard can only be oc-
cupied by at most one container at any time, precedence relations between
3.2 Procedure RandomPortDataGen 47
some pairs of container moves naturally arise. In particular, if container A is
to be dropped off at a location containing container B which is to be picked
up, then container B must be picked up before container A is dropped off.
This ensures that the location stores at most one container at any time.
Once the set of container movements, processing times, time windows and
precedence relations are known, the task is to schedule one or more cranes
to move all containers while satisfying the time windows and precedence
relations.
Within this context, crane problem data sets generally contain informa-
tion on the dimensions of the locations and containers, the distances (and
thus travel times) between all pairs of locations, and a number of unique
container movements with associated processing times, time windows and
precedence relations. The procedure RandomPortDataGen is composed
of several sequentially ordered sub-procedures to generate this information.
These sub-procedures are presented in this section, and summarised in Fig-
ure 3.1.
A method for generating the container storage yard’s spatial layout is pre-
sented in Section 3.2.1. Once the spatial layout is constructed, the set of all
storage locations is known, and is partitioned into two groups: ISA and ISA.
(Recall, these areas are named after the Intermediate Stacking Area; all stor-
age locations in ISA are locations not in the ISA.) The properties of these
two types of locations are discussed in Section 3.2.2. In Section 3.2.3, two
sets (types) of container movements are discussed: MISA→ISA andMISA→ISA.
Each container movement within the sets has a spatial aspect defined by an
origin location and a destination location. The method by which these lo-
cations are allocated is discussed in Section 3.2.4. After all container move-
ments are spatially defined, the two temporal aspects of container move-
ments are generated. Specifically, Section 3.2.5 shows how some pairs of
container movements may induce (natural) precedence relations, while Sec-
tion 3.2.6 outlines a technique for generating a time window for each con-
tainer movement. Importantly, by following the RandomPortDataGen pro-
cedure presented herein (that is, performing the constituent sub-procedures
in a sequential fashion) crane problem data sets that are guaranteed to have
a feasible solution are produced, as will be highlighted throughout the dis-
cussion.
48 A NEW SOP-TW DATA GENERATOR
INPUT
parametersTable 3.1
generate the container storage yard
spatial layout i.e. ISA and ISA locations
properties of ISA and ISA locations
§3.2.1
§3.2.2
generate the container movement sets
i.e. MISA→ISA and MISA→ISA
§3.2.3
spatially define container movements
i.e. assign origin and destination locations§3.2.4
origins for MISA→ISA containers §3.2.4.1
origins for MISA→ISA containers §3.2.4.2
destinations for MISA→ISA containers §3.2.4.3
destinations for MISA→ISA containers §3.2.4.4
define temporal aspects of container moves
generate precedence relations §3.2.5
generate time windows §3.2.6
OUTPUT
problem instanceTable 3.2
Figure 3.1: Flowchart of the main components of RandomPortDataGen with
corresponding section references.
3.2 Procedure RandomPortDataGen 49
3.2.1 Generating the container storage yard’s spatial layout
The first important feature to be constructed by the data generator is the
physical layout of the container yard, that is, the set of container storage
locations. Arbitrary layouts in R2 could be described by specifying (xi, yi)
for each container location i. However, we have opted for a simple layout
based on rectangular container locations that are constructed sequentially
in R2 from origin (0, 0).
While the ideas presented herein could be extended to generate a more
complex configuration, we construct two groups of storage locations, called
ISA and ISA. The aim of this section is to automatically generate (xi, yi)
for each container location i in the simple case where ISA and ISA are each
regular rectangular grids of container locations, defined by a small set of
parameters including grid spacing, group shape and distance between the
two groups.
The method for generating a physical layout of the container yard such
as that in Figure 3.2 is now described. Firstly, a number of parameters
are defined that will be used to calculate explicit location coordinates in
R2. The numerical (rectangular) dimensions of a single location within each
group is required where:
• dL(j) ∈ R+ is the length of a single location in group j, and
• dW (j) ∈ R+ is the width of a single location in group j,
for j ∈ {ISA, ISA}. This allows locations in different groups to have different
sizes, which is necessary to model locations in real container terminals.
The length and width of each group in terms of the number of container
locations is also required where:
• cL(j) ∈ Z+ is the number of locations in a row of group j, and
• cW (j) ∈ Z+ is the number of locations in a column of group j,
for j ∈ {ISA, ISA}. Consequently, the total number of container storage
locations in group j is given by nl(j) = cL(j)cW (j) for j ∈ {ISA, ISA}.
As shown in Figure 3.2, the intra-group spacing, bj = (bL(j), bW (j)) ∈ R2,
and inter-group spacing, f = (fL, fW ) ∈ R2, are defined such that:
50 A NEW SOP-TW DATA GENERATOR
. . . .l1
ISA
x(LENGTH
DIRECTION)
y(WIDTH
DIRECTION)
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
(0,0)
dL(ISA) bL(ISA)
dW (ISA)
bW (ISA) b ISA = (bL(ISA),bW (ISA))
l2ISA l
ISAcL(ISA)-1 l
ISAcL(ISA)
l ISAcL(ISA)+1
l ISA(cW (ISA)-2)cL(ISA)+1
l ISA(cW (ISA) -1)cL(ISA) +1 l
ISA(cW (ISA) -1)cL(ISA) +2 l
ISAcW (ISA) (cL(ISA) -1) l
ISAcW (ISA) cL(ISA)
l ISA(cW (ISA) -1)cL(ISA)
l ISA2cL(ISA)
ISA
ISA
fW
fL
dL(ISA)bL(ISA)
dW (ISA)
bW (ISA)b ISA = (bL(ISA),bW (ISA))
l1ISA l
ISAcL(ISA)l2
ISA
l ISA
cW (ISA) cL(ISA) l ISA
(cW (ISA) -1)cL(ISA) +1
f = ( fL , fW )~
Figure 3.2: Parametrised layout of a container yard.
3.2 Procedure RandomPortDataGen 51
• bL(j) is the length between adjacent locations in the same row in j,
• bW (j) is the width between adjacent locations in the same column in j,
for j ∈ {ISA, ISA}, and
• fL is the length between the left-most edges of the first columns of
each group, and
• fW is the width dividing the two groups.
The locations are constructed in an iterative fashion, starting with the co-
ordinates of the ISA group at location one (denoted by lISA1 ∈ R2, in Fig-
ure 3.2); the bottom left corner of this location is placed at (0,0). The
centre-point of the rectangle representing container storage location lISA1 is
recorded as the location coordinate, denoted by
lISA1 = (XISA
1 , Y ISA1 ) = (0.5dL(ISA), 0.5dW (ISA)).
(More generally, the coordinate of location i in group j, lji , will be denoted
by (Xji , Y
ji ) for i = 1, . . . , nl(j) where j ∈ {ISA, ISA}.)
The coordinate of lISA2 is constructed relative to lISA
1 based on the intra-group
spacing between them and the size of each location in ISA, thus
lISA2 = (XISA
2 , Y ISA2 ) = (XISA
1 + bL(ISA) + dL(ISA), Y ISA1 ).
The first location in the second row of ISA, lISAcL(ISA)+1, is also adjacent to
lISA1 with coordinate
lISAcL(ISA)+1 = (XISA
cL(ISA)+1, YISAcL(ISA)+1) = (XISA
1 , Y ISA1 + bW (ISA) + dW (ISA)).
In a similar way, all other ISA locations are constructed, consistent with the
number of locations in each row (given by cL(ISA)) and the number of rows
in ISA (given by cW (ISA)). The formulae for calculating the coordinate of
each location in ISA, lISAi = (XISA
i , Y ISAi ), is given in Appendix D.
Using the inter-group spacings between ISA and ISA, f = (fL, fW ), the
coordinate of the first location of ISA, lISA1 , is calculated relative to the first
position in the last row of ISA, lISA(cW (ISA)−1)cL(ISA)+1, as seen in Figure 3.2.
The process used for each location in ISA is repeated for each location within
ISA. The formulae for calculating the coordinate of each location in ISA,
lISAi = (XISA
i , Y ISAi ), is given in Appendix D.
52 A NEW SOP-TW DATA GENERATOR
The procedure outlined above generates a coordinate in R2 for each container
storage location in the container yard, from which the distance between any
pair of locations can be explicitly calculated. These distances can then be
used to calculate the crane travel times between any pair of locations.
Since a crane is likely to move faster when not carrying a container, two
crane velocities (one each for loaded and unloaded) are used to calculate
two crane travel times between each pair of locations. Indeed, if vunloaded is
the velocity of a crane when unloaded, and d(i, j) is the Euclidean distance
between locations i and j, then (assuming the crane travels at a constant
velocity over this distance) the travel time of an unloaded crane between i
and j is given by tunloaded(i, j) = d(i,j)vunloaded
. Similarly, if vloaded is the loaded
crane velocity, then the travel time of a loaded crane between i and j is
given by tloaded(i, j) = d(i,j)vloaded
. Then the values of tloaded can be used to
calculate the processing time of container moves, where the processing time
of container move k is pk = ∆+ + tloaded(Ok, Dk) + ∆−, where Ok ∈ R2 is
the pick-up location of container move k, Dk ∈ R2 is the drop-off location of
container move k, ∆+ is the crane hoist time, and ∆− is the crane lowering
time.
Once the physical layout and coordinates of locations are constructed for all
locations in ISA and ISA, and hence the distances and travel times for each
pair of locations has been explicitly calculated, a set of container moves and
their processing times can be constructed. However, to generate container
movements that have special properties, the scheme outlined in the sub-
procedures in Sections 3.2.3–3.2.6 is introduced. In the next section the
properties of ISA and ISA container locations are discussed.
3.2.2 Properties of ISA and ISA container locations
Recall from Section 1.1.3.2 (page 10) that the first group of locations, col-
lectively called the ISA (the Intermediate Stacking Area), has the property
that each container location l ∈ ISA can be used at most twice as part of
a container movement. This consists of at most one pick-up (i.e. at most
one container move has origin l) and at most one drop-off (i.e. at most one
container move has destination l). Moreover, if the location is used for a
pick-up and a drop-off, the pick-up container must be collected before the
3.2 Procedure RandomPortDataGen 53
drop-off container is delivered; two containers cannot be in the same physical
space simultaneously.
The properties of the ISA group of locations ensure that at most one con-
tainer resides in an ISA location at any time. Moreover, if a location in
this group is used twice, a natural precedence relation between the pick-up
move and drop-off move ensues. Consequently, by appropriately param-
eterising the allocation of containers to locations in ISA, the density of
such precedence relations can be controlled (as described in Sections 3.2.4.1
and 3.2.4.4).
The second group of locations, collectively called the ISA (not the Interme-
diate Stacking Area), has the property that each container location l ∈ ISA
can be used multiple times as an origin and/or destination of any number
of container movements. However, to ensure that at most one container
resides in an ISA location at any time, the time windows of each container
movement that utilises the location must not overlap (where time windows
are assigned in Section 3.2.6). Specifically, only once a container movement
with an earlier time window has been performed can the container move-
ment with the next time window use that location. Again, by appropriately
parameterising the allocation of containers to locations in ISA, the number
and the distribution of use of ISA locations that are used multiple times can
be controlled (as described in Sections 3.2.4.2 and 3.2.4.3).
Once the container storage yard (and thus the locations within the yard)
are divided into the two groups given by ISA and ISA, it is assumed that all
container movements fall into one of two categories. The first category is the
set of container movements where container i has Oi ∈ ISA and Di ∈ ISA,
that is, the container is picked up from a location in ISA and will be dropped
off at a location in ISA. This set of container movements is denoted by
MISA→ISA. The second category is the set of container movements where
container i has Oi ∈ ISA and Di ∈ ISA, that is, the container is picked up
from a location in ISA and will be dropped off at a location in ISA. This set
of container movements is denoted by MISA→ISA.
In the next section the number of container movements in the sets MISA→ISA
and MISA→ISA are specified.
54 A NEW SOP-TW DATA GENERATOR
3.2.3 Generating sets of container movements
Let n be the total number of containers to be moved, and hence the total
number of container movements to be created. Let p be the proportion of
the n containers that will start in an ISA location, where p ∈ [0, 1]. Since np
is not guaranteed to be integer, let nISA = bnpc be the number of containers
that have an ISA location as its origin, thus nISA = |MISA→ISA|. Then
nISA = n − nISA is the number of containers that have origin in ISA and
destination in ISA, thus nISA = |MISA→ISA|. Recall Figure 1.5 (page 9):
containers in set MISA→ISA move as per the “O” arrows, while containers in
set MISA→ISA move as per the “I” arrows.
Without loss of generality, container movements in the set MISA→ISA will be
indexed from 1 to nISA, and containers in the set MISA→ISA will be indexed
from nISA+1 to n. Furthermore, since there is a unique mapping between
containers and container movements, index i refers not only to container
movement i but also container i. Henceforth container move i, job i and
container i will be used interchangeably throughout this thesis.
3.2.4 Allocating an origin and destination for each move-
ment
This part of the scheme specifies a pick-up location (origin Oi) and a drop-
off location (destination Di) for each container move i ∈ {1, . . . , n}. This is
achieved systematically in four parts:
1. the origin of each container i ∈ MISA→ISA is randomly assigned to a
unused location in ISA, described in §3.2.4.1;
2. the origin of each container i ∈ MISA→ISA is randomly assigned to a
used or unused ISA location via a Bernoulli trial, described in §3.2.4.2;
3. the destination of each container i ∈ MISA→ISA is randomly assigned
to a used or unused ISA location via a Bernoulli trial, described in
§3.2.4.3; and
4. the destination of each container i ∈ MISA→ISA is randomly assigned
to a location in ISA that has been used or unused for a pick-up via a
Bernoulli trial, described in §3.2.4.4.
3.2 Procedure RandomPortDataGen 55
3.2.4.1 Assign origins for MISA→ISA containers
Firstly, recall from Section 1.1.3.2 (page 10) that ISA locations can be used
at most once as a pick-up location. Thus each container in MISA→ISA must
be allocated a unique origin in ISA; this requires at least nISA locations in
ISA (|ISA| ≥ nISA) otherwise the data set can not be feasible. Specifically,
for each i ∈ MISA→ISA an origin for i, Oi, is selected at random from ISA
while ensuring that Oi 6= Oj for all i, j ∈MISA→ISA. The pseudocode of this
procedure, AssignOriginsInISA, is shown in Algorithm 1.
Algorithm 1: Procedure AssignOriginsInISA(container set MISA→ISA)
Input: The set of containers to be moved from ISA to ISA, MISA→ISA = {1, . . . , nISA}Output: An origin for each container in MISA→ISA; the set of unused ISA locations,
Unused(ISA); and the set of ISA locations used for a pick-up only,
UsedP ickup(ISA)
initialise
Unused(ISA)← {lISA1 , lISA
2 , . . . , lISAnl(ISA)} // all ISA locations are unused
UsedP ickup(ISA)← ∅ // no origins assigned
foreach i ∈MISA→ISA do
// select an element of Unused(ISA) to be the origin of container i
j ← a random element of Unused(ISA) // random ≡ equal probability
Oi ← j // set the origin location of container i to ISA location j
Unused(ISA)← Unused(ISA)\{j} // remove j from Unused(ISA)
UsedP ickup(ISA)← UsedP ickup(ISA) ∪ {j} // add j to UsedP ickup(ISA)
return Oi ∀i ∈MISA→ISA, Unused(ISA), UsedP ickup(ISA)
3.2.4.2 Assign origins for MISA→ISA containers
Next, the containers in MISA→ISA are allocated origin locations in ISA. Since
locations in ISA can be used multiple times, the allocation of containers to
used and unused locations is controlled via a Bernoulli trial with probability
pOISA
of picking a location that has been allocated previously. The algorithm
is now described.
Firstly, container nISA+1 is randomly allocated any ISA location. Then
each container from nISA+2 to n is randomly allocated an ISA location
already used for the pick-up of another MISA→ISA container if the result of
a Bernoulli trial with probability pOISA
is a success. In other words, if the
56 A NEW SOP-TW DATA GENERATOR
Bernoulli trial is a success, the origin of the current container has equal
probability of being allocated any of the locations already used for a pick-
up. If the Bernoulli trial is a failure, the origin of the current container
is randomly allocated one of the locations not yet used for a pick-up (i.e.
each of the unused ISA locations have equal probability of being chosen).
If the set of ISA locations not yet used for a pick-up becomes empty, then
each remaining container is randomly allocated any ISA location (i.e. the
probability of selecting any particular ISA location is 1|ISA|). The pseudocode
of this procedure, AssignOriginsInISA, is shown in Algorithm 2.
3.2.4.3 Assign destinations for MISA→ISA containers
Once all origins are assigned, the destinations of containers in MISA→ISA are
allocated ISA locations in the same way as origins were assigned for con-
tainers in MISA→ISA, where pDISA
is the probability of success for a Bernoulli
trial, where success is “allocate the destination of the current container to
an ISA location already used for a pick-up or drop-off”. The pseudocode of
this procedure, AssignDestinationsInISA, is shown in Algorithm 3.
3.2.4.4 Assign destinations for MISA→ISA containers
Finally, the destinations of containers in MISA→ISA can be assigned to lo-
cations in ISA. As before, at most one container can be dropped off to
any one ISA location. However, an important feature of a data set is the
relative proportion of ISA locations that are used for both a pick-up and
a drop-off, as these locations generate natural precedence relations between
the containers that use them. Consequently, the proportion of locations that
generate these precedence relations is controlled in the following procedure
where MISA→ISA containers are assigned a destination in ISA.
Containers in MISA→ISA can be assigned a destination in ISA as follows.
(This requires at least nISA ISA locations, i.e. |ISA| ≥ nISA, otherwise the
data set can not be feasible.) Specifically, for each i ∈ {nISA + 1, . . . , n},container i is allocated an ISA location already used for the pick-up of
an MISA→ISA container (determined in Section 3.2.4.1) if the result of a
Bernoulli trial with probability pDISA is a success. Here success means “al-
3.2 Procedure RandomPortDataGen 57
Algorithm 2: Procedure AssignOriginsInISA(container set MISA→ISA,
probability pOISA
)
Input: The containers to be moved from ISA to ISA, MISA→ISA = {nISA + 1, . . . , n};the probability of success for Bernoulli trials, pO
ISA
Output: An origin for each container in MISA→ISA; the set of unused ISA locations,
Unused(ISA); and the set of ISA locations used for a pick-up, Used(ISA)
initialise
Unused(ISA)← {lISA1 , lISA
2 , . . . , lISAnl(ISA)
} // all ISA locations are unused
Used(ISA)← ∅ // no origins or destinations assigned
// select an element of Unused(ISA) to be the origin of container nISA + 1
j ← a random element of Unused(ISA) // random ≡ equal probability
Oi ← j // set the origin location of container i to ISA location j
Unused(ISA)← Unused(ISA)\{j} // remove j from Unused(ISA)
Used(ISA)← Used(ISA) ∪ {j} // add j to Used(ISA)
foreach i ∈MISA→ISA\{nISA + 1} doif Unused(ISA) 6= ∅ then
// Perform a Bernoulli trial to decide if the origin location of
container i will be from Used(ISA) or Unused(ISA)
k ← outcome of a Bernoulli trial with probability of success pOISA
if k = 1, i.e. the trial was a success then
// select an element of Used(ISA) to be the origin of i
j ← a random element of Used(ISA) // random ≡ equal probability
Oi ← j // set the origin location of i to ISA location j
else
// k = 0, i.e. the trial was a failure
// select an element of Unused(ISA) to be the origin of i
j ← a random element of Unused(ISA) // random ≡ equal probability
Oi ← j // set the origin location of i to ISA location j
Unused(ISA)← Unused(ISA)\{j} // remove j from Unused(ISA)
Used(ISA)← Used(ISA) ∪ {j} // add j to Used(ISA)
else
// all ISA locations have been used at least once
// select an element of Used(ISA) to be the origin of container i
j ← a random element of Used(ISA) // random ≡ equal probability
Oi ← j // set the origin location of container i to ISA location j
return Oi ∀i ∈MISA→ISA, Unused(ISA), Used(ISA)
58 A NEW SOP-TW DATA GENERATOR
Algorithm 3: Procedure AssignDestinationsInISA(set MISA→ISA,
location sets Used(ISA) and Unused(ISA), probability pDISA
)
Input: The set of containers to be moved from ISA to ISA, MISA→ISA; the set of unused
ISA locations, Unused(ISA); the set of ISA locations already used for a pick-up,
Used(ISA); the probability of success for Bernoulli trials, pDISA
Output: A destination location for each container in MISA→ISA
foreach i ∈MISA→ISA do
if Unused(ISA) 6= ∅ then// Perform a Bernoulli trial to decide if the destination location
of container i will be from Used(ISA) or Unused(ISA)
k ← outcome of a Bernoulli trial with probability of success pDISA
if k = 1, i.e. the trial was a success then
// select an element of Used(ISA) to be the destination of i
j ← a random element of Used(ISA) // random ≡ equal probability
Di ← j // set the destination location of i to ISA location j
else
// k = 0, i.e. the trial was a failure
// select an element of Unused(ISA) to be the destination of i
j ← a random element of Unused(ISA) // random ≡ equal probability
Di ← j // set the destination location of i to ISA location j
Unused(ISA)← Unused(ISA)\{j} // remove j from Unused(ISA)
Used(ISA)← Used(ISA) ∪ {j} // add j to Used(ISA)
else
// all ISA locations have been used at least once
// select an element of Used(ISA) to be the destination of i
j ← a random element of Used(ISA) // random ≡ equal probability
Di ← j // set the destination location of i to ISA location j
return Di ∀i ∈MISA→ISA
3.2 Procedure RandomPortDataGen 59
locate the destination of the current container to an ISA location already
used for a pick-up”. If the set of available used ISA locations (used for a
pick-up only) becomes empty, then all remaining containers are randomly
allocated any ISA location not yet used for a pick-up or drop-off. If the set
of ISA locations not yet used becomes empty, then each remaining container
is randomly allocated any ISA location already used for a pick-up (but not
a drop-off). The pseudocode of this procedure, AssignDestinationsInISA,
is shown in Algorithm 4.
3.2.5 Generating natural precedence relations
This sub-procedure explicitly calculates the natural time-lag that must occur
between container movements that use the same ISA location, and thus
generate a generalised precedence relation with a strictly positive time-lag.
The time-lag is said to be natural as it is the time-lag which must hold true,
given the dynamics of the underlying physical system.
For example, let ti be the time the crane picks up container i from its origin
at Oi. Then, if container i is an MISA→ISA container with origin at ISA lo-
cation l (Oi = l), and container j is an MISA→ISA container with destination
at ISA location l (Dj = l), then container i must be picked up from location
l before container j is dropped at location l. Furthermore, since there is only
one crane, container i must be picked up from l before container j is picked
up from location Oj in ISA, that is, ti ≤ tj . Moreover, once container i is
picked up, it must be moved to Di, taking processing time pi (where pi was
defined at the end of Section 3.2.1). Then the earliest time at which con-
tainer j can be picked up is ti+pi+tunloaded(Di, Oj), where tunloaded(Di, Oj)
is the travel time of an unloaded crane from location Di to location Oj .
Therefore tj ≥ ti + pi + tunloaded(Di, Oj). The minimum time-lag that natu-
rally occurs between containers i and j due to the use of the same ISA loca-
tion is the natural time-lag αij . We set αij = pi + tunloaded(Di, Oj). Thus,
for all pairs of containers that use the same ISA location, αij can be explic-
itly calculated. Consequently, ti+αij ≤ tj for all (i, j) container pairs where
container move i must precede container move j because Oi = Dj ∈ ISA.
60 A NEW SOP-TW DATA GENERATOR
Algorithm 4: Procedure AssignDestinationsInISA(set MISA→ISA,
location sets UsedP ickup(ISA) and Unused(ISA), probability pDISA)
Input: The containers to be moved from ISA to ISA, MISA→ISA; the set of unused ISA
locations, Unused(ISA); the set of ISA locations already used for a pick-up,
UsedP ickup(ISA); the probability of success for Bernoulli trials, pDISA
Output: A destination location for each container in MISA→ISA
initialise
UsedDropoff (ISA)← ∅ // set of destination-only locations
UsedP ickup&Dropoff (ISA)← ∅ // locs. used as an origin & destination
foreach i ∈MISA→ISA do
if Unused(ISA) 6= ∅ thenif UsedP ickup(ISA) 6= ∅ then
// Perform a Bernoulli trial to decide if the destination of
container i will be from UsedP ickup(ISA) or Unused(ISA)
k ← outcome of a Bernoulli trial with probability of success pDISA
if k = 1, i.e. the trial was a success then
// select destination of i from UsedP ickup(ISA)
j ← a random element of UsedP ickup(ISA)
Di ← j // set the destination of i to ISA location j
UsedP ickup(ISA)← UsedP ickup(ISA)\{j}UsedP ickup&Dropoff (ISA)← UsedP ickup&Dropoff (ISA) ∪ {j}
else
// k = 0, i.e. the trial was a failure
// select destination of i from Unused(ISA)
j ← a random element of Unused(ISA)
Di ← j // set destination location of i to ISA location j
Unused(ISA)← Unused(ISA)\{j} // remove j from Unused(ISA)
UsedDropoff (ISA)← UsedDropoff (ISA) ∪ {j}
else
// no more ‘‘pick-up only’’ ISA locations, UsedP ickup(ISA) = ∅// select an element of Unused(ISA) to be the destination of i
j ← a random element of Unused(ISA)
Di ← j // set the destination location of i to ISA location j
Unused(ISA)← Unused(ISA)\{j}UsedDropoff (ISA)← UsedDropoff (ISA) ∪ {j}
else
// all ISA locations have been used at least once
// select an element of UsedP ickup(ISA) to be the destination of i
j ← a random element of UsedP ickup(ISA)
Di ← j // set the destination location of i to ISA location j
UsedP ickup(ISA)← UsedP ickup(ISA)\{j}UsedP ickup&Dropoff (ISA)← UsedP ickup&Dropoff (ISA) ∪ {j}
return Di ∀i ∈MISA→ISA
3.2 Procedure RandomPortDataGen 61
3.2.6 Generating time windows for each container move
The final sub-procedure generates time windows for each container move.
Since the purpose of the RandomPortDataGen procedure is to generate
random test data sets for a crane scheduling problem with time windows
and precedence relations, data sets that are infeasible are not useful. Con-
sequently, the method to generate time windows must ensure that there is
at least one feasible solution for every instance constructed. To this end, we
adopt and extend the approach of Norbert Ascheuer, as discussed in Sec-
tion 6.7 of his PhD thesis [33]. The method presented here ensures that the
time windows are constructed around a feasible solution that is probably
not too far from the optimal solution, namely a feasible solution based on
the second-nearest-neighbour (SNN) algorithm.
The SNN algorithm works by selecting the second best (in some sense)
option of those available at each step, instead of the best. This algorithm
is applied to the set of container movements generated in Section 3.2.4 of
the scheme, where the second-nearest container move is selected as the next
crane job, where second-nearest equates to second-closest crane job based
on unloaded crane travel time.
Consider the following example where container move i has just been per-
formed (so the crane is at location Di). Set J is the set of crane movements
(jobs) yet to be done, so the nearest crane job yet to be done is given by
argminj∈J{tunloaded(Di, Oj)}, and the second-nearest is the crane job that
gives the next smallest crane travel time. However, as some container moves
must precede others due to natural time lags (as described in Section 3.2.5),
the choice of next crane job can only be selected from the set of moves that
have no predecessors, or those moves for which all preceding moves have
already been performed. Consequently, instead of using set J , the set JA
is used, where JA is the set of jobs yet to be done that are ready to be
performed immediately. Thus the second-nearest of the available jobs is
selected. If there are multiple second-nearest moves to choose from, one is
picked at random (that is, with equal probability of being selected).
To start the SNN algorithm, a dummy move is created with zero processing
time, and zero travel time to the origin of any other move. The first real
container move is chosen at random from JA as they are all equally good
62 A NEW SOP-TW DATA GENERATOR
at this stage. The SNN algorithm is then used to generate an ordering of
the crane movements which constitutes a solution. The reference solution
generated by the SNN algorithm is then used to construct time windows for
each container that will lead to a feasible data set.
The earliest start time for each container move in the SNN solution is cal-
culated sequentially from the processing times and unloaded crane travel
times already derived. Specifically,
tSNN(i+1) = tSNN(i) + pSNN(i) + tunloaded(DSNN(i), OSNN(i+1))
for i = 1, . . . , n − 1 where SNN(i) is the i-th container move in the SNN
solution, and tSNN(0) = 0 (where i = 0 is the dummy move used to initialise
the SNN algorithm). These earliest start times are then chosen to be the
mid-points of each container’s time window; if TWi = [ai, bi] is the time
window for container i, then tSNN(i) = ai + bi−ai2 = ai+bi
2 .
To construct an interval around each time window mid-point, two more pa-
rameters are required. Let wL be the minimum length of any time window
interval, and wU be the maximum length of any time window interval. Vary-
ing these parameters will ultimately lead to the construction of time windows
with different features, for example: wide time windows (wL and wU big);
short time windows (wL and wU small); a big range of time windows widths
(wU − wL large); and homogeneous time window lengths (wU − wL = 0).
Given wL and wU , a random time window width for each container i, ri, is
selected from a uniform distribution with range [wL, wU ]. Then ri and the
mid-point of the time window, tSNN(i) (generated by the times of the SNN
solution) are used to calculate the beginning and end of each container’s
time window. Thus the time window for container i is
TWi = [max{tSNN(i) −1
2ri, 0}, tSNN(i) +
1
2ri]
= [ai, bi]
where i = 1, . . . , n. Clearly, the SNN reference solution is time-feasible for
time windows generated this way, hence is a feasible solution to a data set.
In some instances, these time windows (that are randomly generated via
their random width) may overlap with other time windows, hence some pre-
processing to update these time windows may be possible. This is particu-
larly true for pairs of containers with a precedence relation. For example, if
3.3 Procedure MapCraneDataToSOPTW 63
container i must precede container j yet bj < bi, then bi can be updated such
that b∗i = bj − αij . Similarly, if aj < ai, then aj can be updated such that
a∗j = ai + αij . The full suite of preprocessing routines applied are described
in detail in Section 4.5.
3.2.7 Summary of input parameters and data generated
The procedure to generate data for the crane scheduling problem mentioned
in this chapter’s introduction—RandomPortDataGen—has been described
throughout Section 3.2. A summary of the main input parameters is given
in Table 3.1; these are discussed in more detail in Section 3.4. A summary
of the output data—a crane scheduling instance—generated by performing
RandomPortDataGen is shown in Table 3.2.
In the next section a procedure for converting crane problem data sets gen-
erated by RandomPortDataGen into SOP-TW instances is described.
3.3 Procedure MapCraneDataToSOPTW : convert-
ing crane instances into SOP-TW instances
Recall from Chapter 1 that this thesis is motivated by a crane scheduling
problem at a seaport container terminal. The focal problem is the task of
scheduling cranes to move shipping containers at a quayside/landside ex-
change interface of a port. In this section we show how the single crane
scheduling problem can be modelled as a TSP-variant, namely the Asym-
metric Travelling Salesman Problem with Time Windows and additional
Precedence Constraints, or alternately called the SOP-TW.
As described in §2.5, due to a lack of available, feasible, difficult SOP-
TW problem instances, we developed procedure RandomPortDataGen (de-
scribed in §3.2) to generate port-specific data for the single crane scheduling
problem. In this section a procedure for converting the crane problem in-
stances into SOP-TW instances is described.
By converting the port-inspired instances into general SOP-TW instances,
application-specific information (such as the underlying locations in the con-
tainer yard) cannot be deduced or exploited. While exploiting application-
64 A NEW SOP-TW DATA GENERATOR
Notation Description
CONTAINER YARD
ISA the first group of container storage locations in the port interface
ISA the second group of container storage locations in the port interface
fL length of space between the left-most edges of the first columns of ISA and ISA
fW width of space dividing ISA and ISA
L total length of the container yard
CONTAINER YARD LOCATIONS (for j ∈ {ISA, ISA})
dL(j) ∈ R+ length of a single location in group j
dW (j) ∈ R+ width of a single location in group j
cL(j) ∈ Z+ number of locations in a “row” of group j
cW (j) ∈ Z+ number of locations in a “column” of group j
nl(j) total number of container storage locations in group j, so nl(j) = cL(j)cW (j)
bL(j) length of space between adjacent locations in the same row in group j
bW (j) width of space between adjacent locations in the same column in group j
lji = (X
ji , Y
ji ) (X, Y ) coordinate of location i in group j for i ∈ {1, . . . , nl(j)}, where l
ji ∈ R2
+ ∪ {0}
d(a, b) Euclidean distance between the coordinates of location a and location b
CRANE PROPERTIES
vunloaded velocity of a crane when unloaded
vloaded velocity of a crane when loaded
tunloaded(a, b) travel time of an unloaded crane between locations a and b, so tunloaded(a, b) =d(a,b)
vunloaded
tloaded(a, b) travel time of a loaded crane between locations a and b, so tloaded(a, b) =d(a,b)
vloaded
∆+ crane hoist time
∆− crane lowering time
CONTAINERS (JOBS)
n total number of containers to be moved (integer)
V = {1, . . . , n} set of all containers
p proportion of the n containers that will start in an ISA location
nISA = bnpc number of containers that have an ISA location as its origin (integer)
nISA
= n− nISA number of containers that have an ISA location as its origin (integer)
pOISA
probability of success for a Bernoulli trial, where success is “allocate the origin
of the current container to an ISA location already used for a pick-up”
pDISA
probability of success for a Bernoulli trial, where success is “allocate the destination of
the current drop-off container to an ISA location already used for a pick-up or drop-off”
pDISA probability of success for a Bernoulli trial, where success is “allocate the destination
of the current container to an ISA location already used for a pick-up”
wL minimum length (duration) of any time window interval (integer)
wU maximum length of any time window interval (integer)
wW difference between the maximum and minimum length of any time window interval,
so wW = wU − wL (integer)
p the average processing time of the n container moves (n jobs)
ψ the average number of jobs that could be processed during the minimum time window
duration, i.e. ψ = bwLpc, so wL = dψpe (as wL is integer)
γ the average number of jobs that could be processed during the maximum time window
duration above the minimum time window duration, i.e. γ = bwWpc, so wW = dγpe
Table 3.1: Summary of the input parameters required to generate a crane problem
instance using data generator RandomPortDataGen.
3.3 Procedure MapCraneDataToSOPTW 65
Notation Description
MISA→ISA
= {1, . . . , nISA} the set of containers that have origin in ISA and destination in ISA
MISA→ISA
= {nISA + 1, . . . , n} the set of containers that have origin in ISA and destination in ISA
Oi ∈ R2 the pick-up location of container i
Di ∈ R2 the drop-off location of container i
pi the processing time of container i
(where pi = ∆+ + tloaded(Oi, Di) + ∆−)
αij the minimum (natural) time-lag that naturally occurs between
containers i and j due to the use of the same ISA location
(where αij = pi + tunloaded(Di, Oj))
tSNN(i) the earliest start time for container move i in the SNN solution
(i.e. SNN(i) is the i-th container move in the SNN solution)
ri ∈ [wL, wU ] the random time window width for container i
TWi = [ai, bi] time window of container i, where ai = max{tSNN(i) − 12ri, 0}
is the earliest pick-up time of i, and bi = tSNN(i) + 12ri is the
latest pick-up time of i
Table 3.2: Summary of the “crane scheduling instance” output produced by
RandomPortDataGen.
specific information would enable bespoke solution methods for these in-
stances, the focus of this thesis is solving the general SOP-TW. Conse-
quently, the remaining chapters of this thesis will focus on solution tech-
niques that do not use any application-specific information.
3.3.1 The single crane scheduling problem
The single crane scheduling problem has containers moving into and across
the quayside/landside exchange interface of a seaport by a single rail mounted
gantry crane (RMG). One crane must perform all container movements
across the interface, that is, the crane must move each container from ISA
to ISA or ISA to ISA. Moreover, the crane can only carry one container at
a time.
In this thesis, it is assumed that the container pick-up and drop-off locations
are predetermined, and thus the container movements are fixed. Addition-
ally, each container movement must be performed within a predetermined
time window. The operation of the gantry crane must be scheduled such
that all of the container movements are started within their associated time
window.
To minimise the crane operating costs, schedules that minimise the total
66 A NEW SOP-TW DATA GENERATOR
travel time of the crane are sought. Since the pick-up and drop-off locations
are fixed for each container move, it is assumed that the crane will take
the shortest path—and thus time—between the origin and destination lo-
cations. This implies that the time for the crane to perform a loaded move
(a movement while carrying a container) is fixed. Consequently, the real
objective is to minimise the sum of the empty travel times, that is, the total
time the crane spends moving from the end of one loaded move to the start
of another.
Procedure RandomPortDataGen—outlined in Section 3.2—generates data
for this single crane scheduling problem. The characteristics of the crane
problem data sets are controlled by a set of input parameters. These pa-
rameters are summarised in Table 3.1, while the crane scheduling instance
produced by procedure RandomPortDataGen is listed in Table 3.2. The
relationship between the single crane scheduling problem and the SOP-TW
is described in the next section and highlighted pictorially in Figure 3.3.
3.3.2 Relationship between the single crane scheduling prob-
lem and the SOP-TW
Recall the SOP-TW problem description given in Section 2.1. In the TSP
context, the cities represent loaded crane moves, so “visit city i for time
pi” means “crane performs container move i taking time pi”. Travelling
between cities represents empty crane moves, that is, moving the crane
from the end location of container move i to the start location of container
move j, incurring cost cij (travel time sij). The time window for each
container dictates when a container can begin its move. Hence ai is the
earliest pick-up time for container move i, bi is the latest pick-up time for
container move i, and ti is the scheduled pick-up time for container move i,
where ti ∈ [ai, bi]. The precedence relations between pairs of cities amounts
to precedence relations between pairs of container moves, implying some
containers must be moved before other containers. These relationships are
highlighted in Figure 3.3, with the comparison of the problem descriptions
shown in Table 3.3.
3.3 Procedure MapCraneDataToSOPTW 67
Fig
ure
3.3:
Rep
rese
nti
ng
acr
an
esc
hed
uli
ng
inst
ance
asa
SO
P-T
Win
stan
ce.
Th
ele
ftfi
gure
show
sa
sim
pli
fied
conta
iner
yard
layo
ut
wit
hth
ree
conta
iner
mov
es;
the
pat
hof
the
cran
eis
show
nfo
rw
hen
the
conta
iner
sar
em
oved
sequ
enti
ally
.T
he
yard
layo
ut
isre
mov
edin
the
mid
dle
figu
re,
and
hig
hli
ghts
that
each
mov
eb
ecom
esa
city
inth
eT
SP
vers
ion
.T
he
righ
tfi
gure
show
sth
eco
mp
lete
TS
Pre
pre
senta
tion
:th
eth
ree
conta
iner
mov
esar
en
owth
ree
citi
esan
dth
ep
ick-u
pan
dd
rop
-off
loca
tion
s
are
rem
oved
.S
ince
the
citi
es(c
onta
iner
s)m
ayn
otb
evis
ited
(mov
ed)
sequ
enti
ally
,al
lar
csb
etw
een
the
citi
esar
esh
own
.
68 A NEW SOP-TW DATA GENERATORN
otationC
rane
sched
ulin
gin
stance
SO
P-T
Win
stance
sij
crane
traveltim
efrom
end
ofm
ovei
to
start
of
move
j(sij
=tunloaded (D
i ,Oj ))
time
taken
totravel
betw
eencities
ian
dj
pi
pro
cessing
time
ofm
ovei
requ
iredvisit
time
incity
i
(pi
=∆
++tloaded (O
i ,Di )
+∆−
)
TWi
=[ai ,b
i ]tim
ew
ind
owof
contain
eri
time
win
dow
forarriv
ing
atcity
i
ti ∈[ai ,b
i ]sch
edu
ledp
ick-u
ptim
eof
contain
eri
sched
uled
arrivaltim
eat
cityi
δij
min
imu
mtim
e-lagb
etween
pick
ing
up
conta
ineri
and
pick
ing
up
contain
erj
min
imu
mtim
e-lagb
etween
visitin
gcity
i
and
visitin
gcity
j
(δij
=pi+tunloaded (D
i ,Oj ))
(δij
=pi+sij )
αij
imp
osedtim
e-lagb
etween
pick
ing
up
contain
eri
and
pick
ing
up
contain
erj
imp
osedtim
e-lagb
etween
visitin
gcity
i
and
visitin
gcity
j
(natu
ralαij
=pi+tunloaded (D
i ,Oj ))
Tab
le3.3:
Map
pin
gof
acran
esch
edu
ling
instan
ceto
aS
OP
-TW
instan
ce.
3.4 Parameter settings 69
3.4 Parameter settings
As we wish to investigate a variety of solution techniques on a diverse set
of SOP-TW problem instances, we have constructed a data generator that
takes a large number of parameters as input. Table 3.1 lists all of the param-
eters required to generate a crane problem instance using our data generator.
Some of these parameters are used as input to the generator, while others
may be calculated within the generator from the input parameters.
As it is impractical to investigate all possible combinations of parameters
over a range of settings, we have decided to permanently fix most parame-
ters, and vary only a few of the parameters that control the characteristics
we consider the most interesting. This is discussed in the current section and
in Appendix E; the final data classes generated are presented in Section 3.5.
3.4.1 Parameters to fix
The layout of the container yard (and thus the distances between container
storage locations within the container yard) and the properties of the crane
(namely the crane velocities and hoisting times) have been fixed. This im-
plies that the crane travel times are based purely on the distance travelled,
not on the specific locations of the origin and destination. Moreover, con-
tainers are physically identical with respect to the crane: moving a container
from location a to location b has processing time ∆+ + tloaded(a, b) + ∆−,
regardless of which container is being moved. We have also fixed some of
the container characteristics. All of these parameter settings are listed in
Appendix E along with the reasons why these settings were chosen.
3.4.2 Parameters to vary
While any of the container parameters could be varied to get an interesting
variety of data sets, the four parameters we consider to be the most inter-
esting are n, p, pDISA and γ (where γ is used to calculate wW ). For these
parameters the range of values used is shown in Table 3.4.
As is typical of TSP-type problems, problem difficulty generally increases
with n. Consequently, data classes with a range of n values are generated.
70 A NEW SOP-TW DATA GENERATOR
Parameter Range of values to be considered
n 25, 50, 100
p 0.25, 0.5, 0.75
pDISA 0, 0.25, 0.5, 0.75, 1
γ Low (2), Moderate (10), High (20)
Table 3.4: Summary of the parameters varied to generate the data classes.
Parameter p is predominately fixed to 0.5, that is, 50% of containers will
be moved from ISA to ISA, while the other 50% will be moved from ISA
to ISA. However, p is varied twice to see if there is an obvious effect on the
difficulty involved in solving these problems.
The parameter pDISA is of particular interest, as this controls the number of
precedences generated by the multiple use of a single ISA location. Note
that we believe that adding some precedences makes the problem harder,
but too many will make the problem easier by enabling the relatively easy
construction of large partial solutions; with many precedences it is easier to
construct a partial order (subsequence) of jobs, based purely on the prece-
dences.
The variety of time window widths (controlled by wW ) is controlled by
varying γ. This is discussed in more detail in the following section. Note
that we believe that if all of the time windows are relatively narrow, then
this leads to the creation of many time-window induced precedences, again
making the problem relatively easier. Maffioli and Sciomachen’s results—
noted in Section 2.5.2.8—support this hypothesis. Otherwise, little is known
about the affect of the structure of the time windows on problem difficulty.
3.4.2.1 Parameters ψ and γ: controlling time window variability
Let p be the average processing time of the jobs in a data set, and wL be
the minimum width of a job time window in the data set. The parameter ψ
is introduced to characterise wL in terms of p. In particular, ψ controls wL,
such that wL = dψpe. For all problem classes wL is fixed so that at least 10
3.4 Parameter settings 71
average jobs could be processed during the shortest time window, that is,
wL = d10pe (so ψ = 10).
Similarly, the parameter γ is introduced to characterise the variability in
the width of the job time windows in a data set, wW , in terms of p. In
particular, γ controls wW , such that wW = dγpe. Thus γ is the number of
average jobs that are able to be processed during the maximum time window
duration above the minimum time window duration. Thus γ = bwWp c, where
wW = wU − wL, though we always calculate wW using γ.
If γ is low (L) then the time window widths of the n jobs are very similar.
Indeed, γ = 0 implies that wW = 0 and so all time windows are the same
width (namely the minimum width wL). When γ is moderate (M) the time
window widths of the n jobs are moderately different; when γ is high (H)
the time window widths are very variable. For any γ, some time window
widths are wide enough to potentially allow an extra γ jobs to be performed
during that time window.
For our problem classes we have varied γ so that L = 2, M = 10 and H = 20.
Once the origin and destination locations of a job have been assigned by the
data generator, the processing time of that job is calculated. Once this has
been done for all jobs the average processing time of the n jobs in the data
set is calculated via p =∑i=ni=1 pin . Widths wL and wW are calculated using
ψ, γ and p, which are subsequently used to generate a random time window
width for each job in the data set (as described in Section 3.2.6).
It is worth noting that ψ is the minimum number of average jobs that can
be processed during any time window, while ψ+γ is an upper bound on the
maximum number of average jobs that can be processed during the longest
time window.
Finally, recall from Section 2.1 that the SOP-TW must have at least one
active time window, that is, there is at least one i ∈ {1, . . . , n} where ai > 0
and/or bi < ∞. Since we are particularly interested in SOP-TW instances
for which it is difficult to find feasible solutions, we only generate data sets
where every time window is active.
72 A NEW SOP-TW DATA GENERATOR
3.5 Data sets generated
As noted in Chapter 1, our initial motivation was a real world scheduling
problem at a seaport container terminal. To test our solution methodolo-
gies on a range of realistic problem instances, we created a data generator
to construct feasible data sets. The generator has a large range of input
parameters so that many aspects of containers, cranes and port container
yards are incorporated and easily varied.
To produce the data sets used in this thesis, almost all parameters were fixed,
including the container yard layout and crane specifications; see Appendix E.
Only four key parameters were varied:
• n, the number of containers (jobs);
• p, the proportion of n containers to be moved out of the container
storage yard (so 1 − p is the proportion of n containers to be moved
into the container storage yard);
• pDISA, a probability that controls the number of strict precedence rela-
tions between the jobs; and
• γ, a parameter that controls maximum time window widths.
Table 3.5 summarises the values used to construct 21 test data classes, where
each class contains 10 randomly generated data sets. All classes use the data
generator input parameters listed in Appendix E, and a combination of n,
p, pDISA and γ from the range of values shown in Table 3.4. A statistical
summary of the data set parameters generated is given in Section 3.6 to
highlight the characteristics of those new data classes.
As noted in Section 2.4, Brucker and Knust [6] and Hurink and Knust [5]
consider the problem most similar to our SOP-TW: their objective is to min-
imise the schedule makespan, and they investigate feasibility by modifying
deadlines. Brucker and Knust test their methods on modified job-shop prob-
lem instances, as well as 35 modified ATSP-TW data sets from Ascheuer
[33]. The modified ATSP-TW data sets, which we name BKA, have 17 jobs,
generalised precedence relations between certain jobs-pairs, and are scaled
by four factors applied to processing times, time windows, setup times and
precedence time lags.
3.5 Data sets generated 73
Data Class Class Data generator parameter
group number name n p pDISA γ
n25 1 n25 1 25 0.25 0.5 M
2 n25 2 25 0.50 0.5 M
3 n25 3 25 0.75 0.5 M
4 n25 4 25 0.5 0.00 M
5 n25 5 25 0.5 0.25 M
6 n25 6 25 0.5 0.75 M
7 n25 7 25 0.5 1.00 M
8 n25 8 25 0.5 0.5 L
9 n25 9 25 0.5 0.5 H
n50 10 n50 1 50 0.5 0.25 M
11 n50 2 50 0.5 0.50 M
12 n50 3 50 0.5 0.75 M
13 n50 4 50 0.5 0.25 H
14 n50 5 50 0.5 0.50 H
15 n50 6 50 0.5 0.75 H
n100 16 n100 1 100 0.5 0.25 M
17 n100 2 100 0.5 0.50 M
18 n100 3 100 0.5 0.75 M
19 n100 4 100 0.5 0.25 H
20 n100 5 100 0.5 0.50 H
21 n100 6 100 0.5 0.75 H
Table 3.5: Summary of the data classes created by our port data generator.
Each class contains 10 randomly generated data sets with these parameters.
74 A NEW SOP-TW DATA GENERATOR
In addition to our own 21 data classes, we test our methods on the 35 BKA
data sets as they most closely resemble our original problem. However, all
of the BKA data sets have intentionally1 infeasible deadlines. To convert
the BKA data sets into feasible instances we relax all deadlines to a large
constant, namely
bi = 2( max(i,j)∈P
{αij}+ maxi∈V{pi}+ max
i∈V{ai}), ∀i ∈ V ∪ {0}.
Since our objectives are different (minimising makespan versus minimising
the sum of the travelling times), no direct comparison of results will be
made.
Table 3.6 summarises the data groups which form our test problem instances.
These problem classes will be used throughout this thesis as the benchmark
data sets on which to test our SOP-TW solution techniques.
Data group names BKA n25 n50 n100
Classes per group 1 9 6 6
Instances per class 35 10 10 10
Total # of instances 35 90 60 60
Table 3.6: Summary of data groups.
3.6 Summary of SOP-TW data set parameters
New data classes of crane problem instances were generated using the pro-
cedure RandomPortDataGen (§3.2) and the input settings described in
the previous section. The crane problem instances were then converted
into SOP- TW instances as per the procedure MapCraneDataToSOPTW
(§3.3).
A SOP-TW problem instance is characterised by time windows, processing
times, setup times and precedence delays. Additionally, a larger set of prece-
dence delays, PALL, can be constructed during preprocessing; see Section
4.5 for details. A description of eight key parameters is given in Table 3.7.
1The methods of Brucker and Knust [6] include testing problem feasibility: they test
a lower bound on the makespan by modifying deadlines and then testing the feasibility of
the modified problem.
3.6 Summary of SOP-TW data set parameters 75
Name Parameter description
ai earliest start time of job i, i ∈ V ∪ {0}
bi latest start time of job i, i ∈ V ∪ {0}
wi width of time window i, wi = bi − ai, i ∈ V ∪ {0}
pi processing time of job i, i ∈ V ∪ {0}
sij setup time if job j is processed immediately after job i, (i, j) ∈ A
δij minimum time delay between start time of jobs i and j, δij = pi + sij , (i, j) ∈ A
αij minimum time gap between start time of jobs i and j, (i, j) ∈ P
αij minimum time gap between start time of jobs i and j, (i, j) ∈ PALL
Table 3.7: Summary of the key SOP-TW data set parameters.
Statistical summaries of these key parameter values are given for each of the
new data classes. In Section 4.5, data preprocessing routines are described
and applied to all problem instances. For brevity, only post-preprocessing
summaries of a, b, w, s and δ are included here; there is no change to p or
α with preprocessing, and α values only exist post-preprocessing.
For general preprocessing results, see §4.5.4; from these results the high-
level effect of preprocessing on the statistical summaries can be reverse-
engineered. The main changes due to preprocessing are: some a values have
increased; some b values and some w values have decreased; and, the number
of s values and δ values have decreased as the number of arcs decreased.
The box plots2 in Figures 3.4–3.11 summarise the values of each parameter
by data class; parameter values from all 10 randomly generated data sets
within each class are pooled to generated one box plot per class, per pa-
rameter. The total number of parameter elements in each class is given in
Table 3.8; the average number of elements in a single data set is approxi-
mately one-tenth of the class total. The statistics which underpin each box
plot are in Appendix F. Sections 3.6.1–3.6.3 summarise features of the data
sets. For completeness, box plots summarising the data set parameters for
the BKA instances, Class 0, are in Figure F.1 (page 326).
2These box plots were generated in R Version 2.15.2 [75] with default settings. The
edges of a box are the 25th and 75th percentiles (q1 and q3, respectively), and the line
within a box is the median. The default maximum whisker length is 1.5, thus data points
are marked as outliers if they are greater than q3+1.5(q3−q1) or less than q1−1.5(q3−q1).
The end point of each whisker is the most extreme data point not classified as an outlier.
76 A NEW SOP-TW DATA GENERATOR
Class a b w p s δ α α
0 630 630 630 630 6960 6960 2896 2896
1 260 260 260 260 5122 5122 58 892
2 260 260 260 260 4981 4981 64 955
3 260 260 260 260 5135 5135 38 907
4 260 260 260 260 5345 5345 0 833
5 260 260 260 260 5069 5069 31 951
6 260 260 260 260 4880 4880 96 981
7 260 260 260 260 4684 4684 120 1037
8 260 260 260 260 4215 4215 65 1407
9 260 260 260 260 5585 5585 71 542
10 510 510 510 510 14233 14233 60 6944
11 510 510 510 510 13664 13664 140 7043
12 510 510 510 510 13459 13459 182 7083
13 510 510 510 510 17239 17239 67 5319
14 510 510 510 510 16821 16821 134 5383
15 510 510 510 510 16583 16583 170 5451
16 1010 1010 1010 1010 31903 31903 167 38065
17 1010 1010 1010 1010 31570 31570 257 37992
18 1010 1010 1010 1010 31172 31172 374 38090
19 1010 1010 1010 1010 41199 41199 129 33858
20 1010 1010 1010 1010 39799 39799 252 34145
21 1010 1010 1010 1010 39693 39693 371 34135
Table 3.8: Total number of elements per parameter by class.
The box plots are coloured coded by n value; the data classes with 25 jobs
per instance are yellow, the data classes with 50 jobs per instance are orange,
and the data classes with 100 jobs per instance are red.
3.6.1 Time windows: a, b and w
As noted in §3.2.6, the initial midpoint of each time window is the earliest
start time for each container move in the second-nearest-neighbour solution.
As n increases, so must the average time window midpoint to ensure the
generated data set is feasible. As a result, the spread of the release dates
(Figure 3.4) and due dates (Figure 3.5) increases with the number of jobs
3.6 Summary of SOP-TW data set parameters 77
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
020
0040
0060
0080
0010
000
Figure 3.4: Releases dates: a values (seconds) by data class.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
2000
4000
6000
8000
1000
012
000
Figure 3.5: Due dates: b values (seconds) by data class.
●●●●
●
●●
●●
●●
●●●●●●●●
● ●●●●
●●●
●
●
● ●●
●
●●
●●●
●● ●
●●●●●●
●
●● ●●●●
●
●●●
●● ●●●●
●
●
●●
●●●
●●
●
●●●
●
●●●
●
●●
●
●●●
●
●●●
●
●●●
●
●●●
●
●●
●
●●●
●●●●●
●●●●
●●●●
●●●●
●● ●●
●
●
●●●●●● ●●●●●
●●●
●
●●●
●●
●
●
●●
●●
●●●●
●
●●●●●
●●●
●●
●●●●●
●●●●
●
●●●
●
●●●
●
●
●●●
●
●
●
●
●
●●
●
●
●●
●●●●
●
●●
●
●●●
●●● ●
●
●
●
●●●●
●
●
●●
●
●
●●●●●●
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
2000
4000
6000
8000
1000
012
000
γ = Hγ = Mγ = Hγ = Mγ=Hγ=Lγ = M
Figure 3.6: Time window widths: w values (seconds) by data class.
78 A NEW SOP-TW DATA GENERATOR
in a data set.
Recall from §3.4.2.1 that for all problem classes the minimum width of a
job time window in a data set, wL, is fixed so that at least 10 average jobs
could be processed during the shortest time window. Figure 3.7 shows that
the average processing time of the jobs in a data set is approximately the
same across all data classes, thus the first quartile values of w in Figure 3.6
are also similar.
Figure 3.6 shows that the parameter γ successfully controls the variability in
the width of job time windows, w, with the spread of values increasing with
γ. In particular, for Class 8 where γ is low (L), the time window widths of
the 25 jobs are very similar. When γ is moderate (M)—Classes 1–7, 10–12
and 16–18—the time window widths are considerably more variable, and
even more so where γ is high (H)—Classes 9, 13–15 and 19–21.
The 10 large w outliers in each class correspond to the time window width of
the dummy job (i=0) in each data set, which increases due to b0 increasing
with n (i.e. for each data set, a0 = 0 and b0 = maxi∈V {bi}, thus w0 = b0).
Excluding these outliers, the spread of time window widths are very similar
for given γ regardless of the number of jobs; once again, this is because
average processing time is approximately the same regardless of class.
3.6.2 Processing times, setups and minimum delays: p, s & δ
These three parameters are very closely related: the p and s values are crane
travel times between pairs of container yard locations, and the δ values
are combinations of the p and s values. Recall from Section 3.4.1 that
the parameters that control the underlying container yard layout and crane
specifications have been fixed. As a result, the spread of values for each of
these three parameters (Figures 3.7–3.9) are approximately the same across
the 21 classes.
While the p and s values are both travel times between pairs of locations,
the p values correspond to the time required for a crane to move a container
from its pick-up location to its drop-off location, and includes the crane
hoist and lowering times (70 seconds). The s values correspond to times
the crane travels between the drop-off location of one job and the pick-up
3.6 Summary of SOP-TW data set parameters 79
●●●●●●●●●● ●●●●●●●●●● ●●●●●●●●●● ●●●●●●●●●● ●●●●●●●●●● ●●●●●●●●●
●
●
●
●●●●●●●●●● ●●●●●●●●●● ●●●●●●●●●● ●
●●
●●●●●
●
●●●● ●●●●●●●●●● ●
●●
●●
●
●●
●
●
●
●
●
●
●●
●
● ●●●●●●●●
●
●
●
● ●●●●●●●
●
●●● ●●●
●
●●●●●●●
●
●●●●●●●●●● ●●●●●●●●●● ●●●●●●●●●● ●●●●●●●●●● ●●●●●●●●●● ●●●●●●●●●●
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
020
4060
8010
012
014
0
Figure 3.7: Processing times: p values (seconds) by data class.
●●●●●●●●●●●●●●●●●●●●
●●●●●●●●●●●●●●●●●●●●
●●●●
●
●●●●
●
●
●
●●
●●●●●●●●●
●
●●
●
●●
●
●
●
●●●
●
●●●●
●●●●●●●
●●
●●
●●●●
●●●●●●●●●●●●●●●
●●●●
●●●●●●●●●●●●
●
●●●●●●●●●
●●●●●●●●●●●●●●●●●●●●●●●●●●●●●
●●●●
●●●●●●●
●
●
●
●●●●●●●●●●
●
●●●●●●●●
●●
●
●●●●
●
●
●●●●●●
●●
●
●●●●
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
010
2030
4050
60
Figure 3.8: Setup times: s values (seconds) by data class.
●●●●●●●●●●●●
●●
●●●●●●●●●●●●●●●●●●●●●●●●
●●
●
●
●●
●●●●●●●●●●●
●
●
●●●●●●●●●●
●●●●●●
●●●●●●●●●●●●●●●●●●●●●●●●●
●●
●
●●●●●●●●●●●●●
●
●●●
●
●
●●●●●●●●●●●
●●
●●●●●●
●●●●
●●●●●●●●●●
●
●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●
●
●
●
●
●
●
●●
●●●●●●●●●●●●
●●●
●●●●●
●
●
●
●●●●●●●●●●
●●●
●
●
●●●●●●●●●●
●●●●●●●●●●
●
●
●
●
●
●●●●
●●●●●●●●●●●
●●●
●●●●
●●●●●●●●●●
●
●
●●
●●
●
●
●
●
●
●
●●●●●●
●●●●●●●●●●●
●
●●●●●●●●●● ●●●●●●●●●●●●●
●
●
●●●●●●●●●●●●●
●
●
●
●
●
●●●●●●●●●●●●
●
●
●●
●●
●●●
●
●●●
●●●●●●●●●●●
●
●
●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●
●●
●
●●
●
●●●●●●●●●●
●●●
●●
●●●●●●●●●●●●
●●●●●●
●●
●
●●●
●
●●
●
●
●
●
●●●●●●●●●●●●
●●●●●●●●●●●
●●●
●
●●●●●●●●●●●●●●
●
●●●●●●●●●●●●●
●●●
●●
●●●●●●●●●●●●●●
●
●●
●
●
●●
●●●
●
●●
●
●
●●●●●●●●●●●●●●●
●●●●●●●
●
●●●●●●●●●●●●●●
●●●●●●●●
●●●●●●●●●●●●
●●●
●
●
●●●●●●
●●●●●●●●●●●
●●
●●
●●●●●●●●●●●●
●●
●
●●●
●●●●●●●●●●●
●●●●●●
●●●●●●●●●●●●
●●
●●●●●●●●●●●
●
●
●
●
●
●●●
●
●●●●
●
●
●●●
●●●
●●●●●●●●●●●●●
●
●●●
●●●●●●●●●●●
●
●●●●●●●●●●●●●●●●●●●●●●●●
●●
●●●
●
●●
●
●
●
●
●
●
●●
●●●●●●●●●●●●
●
●●
●●
●●
●
●●
●●
●
●
●●●●
●●●●●●●●●●●●●●●●●●●●●
●
●
●●●
●
●
●
●●●
●●
●●●●●●●●●●●●
●●●●●●●●
●
●
●●●●●
●
●●
●●
●●●●●●●●●●
●
●●●●
●
●
●●
●●
●●●●●●●●●●●●●
●●
●
●●●
●●
●●●●
●
●●
●●●●
●●●●●●●●●●
●
●
●●●●●●●●●●●
●
●
●●
●
●●●●●●●●●●
●
●●
●
●●●●●●●●●●●●●●●●●●●●●
●●●●●
●
●●●●●●●
●●
●●
●●●●●●●●●●
●
●
●
●●
●●●●●●●●●
●
●●●●
●
●●
●●●●●●●
●●●●●
●●●●●●●●
●●
●●●
●●
●●●●●●●●●
●●●●
●●●
●●●●●●●●●
●●●●
●●●●●●●●●●●●●●●●●●
●
●●●
●
●●
●
●●
●●
●●
●●●
●
●
●●●●●●●
●●
●●●●●●●●
●
●●●●●●
●●●●●●●●
●●●●
●
●
●●●
●●●●●●●●●●
●
●●●●●●●●
●
●
●
●●
●
●●●
●●●●●●●●
●
●●●●●●●●●
●●●
●●●●●●●●●
●●●●●●
●●●
●●●
●
●●●●●●●●●
●
●●
●
●●●●●●●●●
●
●
●
●
●
●●●●●●●●●
●
●
●●
●●●●●●●●●
●●●
●●●●●
●
●
●
●●
●●●●●●●●
●●
●●●●●●●
●●●●
●●
●●●●●●●●●●●●
●●●●●●●●●●
●●●●●●●●●●●●●●●
●
●●●●●●●●●●●
●
●
●●●
●●●
●
●
●
●●
●
●
●●●●
●●●●●●●●●●●●●●
●●●●●●●●●●●●●
●
●●●●●●●●●●●●●●●●
●
●
●●●●●
●●●●●●●●●●●
●
●●●●●●●●●●●●●●
●●●
●●●●●●●●●●●●●
●●●●●
●●●
●
●
●●●●●●●●●●●●●●
●●●
●●●●●●●●●●●●●●
●
●●●●●●●●●●●●●
●
●●
●
●
●●
●
●●
●
●
●
●●●●
●
●●●●●
●●
●●
●●
●
●●
●
●
●●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●●●●●●●●●●●●●
●
●●●●●●●●●●●●●●
●
●●●●●●
●●●●●●●●●●●●
●●●
●●●●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●●●●
●
●
●
●
●
●●●
●●
●
●
●
●
●●
●
●●
●
●●●●
●
●●●●
●●●●●●●●●●●●
●
●●●
●
●
●
●
●
●
●●
●●●
●●●●●●●●●●●●●●
●●●●●●●
●
●
●
●
●●
●
●
●
●
●●
●
●
●
●
●
●●●●●●●●●●●●●●
●
●●
●
●
●
●
●
●
●
●●●●●●
●●●●
●●
●
●●●
●
●
●
●●●●●●●
●●
●●●●●
●●
●●●●●●●●●●●●
●●
●
●●●●●●●●●●●●●●
●
●●
●●
●●
●●
●●
●●
●
●●●
●●●●
●●●●●●●●●●●●●
●
●
●●
●
●●
●
●
●●
●
●
●
●●●
●●●●●
●
●
●
●
●●
●
●●
●●●●●●●●●●●●●●
●●●●●●●●
●●●
●
●●●●●●●●●●●●
●
●●●●
●●●●●●●
●
●
●
●
●●●
●
●●●
●●
●●●●●●●●●●●●●
●●●
●●
●
●
●●●
●
●
●●●●●●●●●
●●●●●●●●●●●●
●●●●●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●●
●●●●●
●
●
●
●●
●
●
●
●●
●●●●●●
●●
●●●●●●●●●●●●
●●●
●
●●
●
●
●●
●
●
●
●●
●●●●●●
●
●●
●●●
●●
●●●●●●●●●●●
●
●●●
●●●●
●●●●●●●●●●●●
●
●●
●
●●●●●●●●●●●●●●
●
●
●
●
●
●●●●●
●
●
●●●
●●
●●●●●●●●●●●●●
●●●●●●●
●●
●
●●●
●
●
●●●●●●●●●●●
●●●●●
●
●●●
●
●●
●
●●
●
●
●
●
●
●●●
●
●
●
●●
●●●●●●●●●●●●●
●●
●●
●
●
●
●●
●
●
●
●●●●
●
●
●●
●
●●
●●
●
●
●●●
●
●
●
●
●
●
●
●●●
●●●●●●●●●●●●●
●●
●●●●●
●●●●●●●●●●●
●
●
●
●
●●
●
●●●
●●●●●●●●●●●●●
●
●●●
●●
●●
●●
●●●
●
●
●
●●
●●
●●
●
●●
●
●
●●●●●●●●●●
●●●●
●
●●●●●
●●
●●
●●●●●●
●
●
●
●
●
●
●
●●●●
●
●●
●●●●●●●●●●
●●●●
●●
●
●
●
●
●●●●●
●
●
●●●
●●●
●●
●
●
●
●
●
●
●●
●
●●
●
●
●
●
●
●●●●●●●●●●●
●
●
●●
●●
●
●
●
●
●●●●
●
●
●
●
●●
●
●
●●
●●●●●
●●●●●●●●●●●●
●
●
●●
●
●
●●●●●●●●●●●●
●●●●
●
●
●
●●
●
●
●●●
●
●
●●●●●●●●
●●●●●●●●
●
●●
●
●
●●●
●●●
●●●●●●●●●●●●●
●●●
●
●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●
●●●
●
●
●
●●●●●●●●●●●●●●●
●●●●●●●
●●●●●●●●●●●●●●●●●
●●●●●●
●
●
●
●
●●●
●
●●
●●
●●
●●
●●
●●
●
●●●●●●●●●
●●●
●●●
●
●●
●
●
●
●
●●
●●●●●●●●●●●●
●
●
●●●●
●
●
●●
●●●
●●
●●●●●●●●●●●●●●●
●
●●●
●●
●●
●
●●●
●●
●
●
●●●●●●●●●●●●
●●●
●
●
●
●
●
●
●●
●
●
●
●●●
●●
●●
●
●●●
●●
●●●
●●
●
●●
●●●
●
●●●
●●
●●
●●●●●
●●
●
●
●
●●●●●●●●●●●●●●●●●●●
●●●●
●●
●
●●●
●●●●●●●●●●
●●●
●
●●●●
●●●
●
●●
●●●●●●●●●●●●●●●●●●●●
●●●●●
●●●●●●●●●●●●●●
●●●●●●●●●
●
●
●
●
●●
●●●
●
●
●
●
●
●●●
●●●●
●●
●
●
●
●
●●
●
●
●●●●●●
●●●●●
●●●●●●
●●●●●
●●●●●●●●●●●●●●●●●●
●
●
●
●
●
●
●●
●
●
●
●●●●●
●
●
●●
●●●●●●●●●●●●●●●
●●●
●●
●
●
●
●●●
●●●●●●●●●●●●●
●●●●●●●●●●
●●●●●●●●●●●●●●●●●
●●●
●●●●●
●●
●●●●●●●●●●●●●●
●●
●
●
●
●
●
●●
●
●
●
●
●●
●
●
●
●●●●●●●●●●●●●●●
●●●●●●●●●●●●●●
●
●●
●●
●
●
●
●●
●
●
●
●●●●●●●
●
●
●●●●
●
●
●●
●●●●
●
●●
●
●●●
●
●●
●
●●
●
●
●●●●●●●●●●●●●●●●●
●
●
●
●●●
●
●●●
●●
●
●
●
●
●
●●●●
●
●
●
●●●●
●
●
●
●
●
●
●●●●●●●●●●●●●●●
●
●
●
●●●●●●
●●●●●●●
●
●●●●●
●●●
●
●
●
●●●●●●●●●●●●●●●●●●
●●●●●●●●
●●●
●
●●●
●●●●●●
●●●●●
●●●●●
●●●●●●●●●●●●●●●●●
●●●
●
●
●
●
●
●●●
●
●
●●
●
●●●●
●●●
●
●●●
●●●●
●●●●●●●●●●●●●●
●●
●
●●●●●●
●
●●
●
●●●
●●●●●●●●●●●●●●●
●●
●●
●
●
●●
●
●
●
●
●●
●●
●●
●
●
●
●●●●●●●●●●●●●●●●
●
●
●●●●
●●●●●●
●●
●●●●
●
●
●
●●
●●●●●●●●●
●●●●●●●●●●●●
●●●
●
●
●
●●●
●
●●
●●
●
●●
●
●
●●●●
●
●
●
●
●
●●●●●●●●●●●●●●●
●●●●●●●
●●
●●●
●
●
●
●
●
●●
●
●
●●●●●●●●●●●●●
●●●●
●●●●
●●●●●●●●●●●
●●●
●
●●
●●
●
●
●●●●●
●
●
●
●
●●●●●
●●●
●●●●●●●●●●●●●
●
●●●●●
●
●●●
●●●●●●●●●●●●●●●●●
●●●●●●
●●●●
●
●●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●●●
●
●
●
●
●
●
●●●
●●●●●●●●●●●●●●
●●●●●●●●●●●●●●●
●●●
●
●
●●
●
●
●●●
●
●●●●
●●●●●●
●
●
●
●
●
●
●
●
●
●●●●
●
●●●●●●●●●●●●●●●
●
●●●
●●●●●
●
●
●
●
●●
●●●●●●
●
●
●
●●●●●●●●
●●●●●●●●●●●
●●
●●●●●●●●
●
●●
●●●●●●●●●●●●
●●
●●●
●●
●
●●●●●
●●
●
●
●
●●
●●
●
●●●●●●●●●
●●●●●●●●●●●●●●
●●●
●
●●
●●
●●●
●
●
●
●●
●●●
●●
●
●●●●●●●●
●●●
●
●●●●●●●●●●
●●
●●●●●●●●●●
●●●●
●●●
●
●●●
●●●●
●
●
●
●
●
●●●●●●●●●●●●●
●●●●
●●
●
●
●
●●●●●
●●●●●●●●●
●●●
●
●
●
●
●
●●
●●
●
●
●●
●●●
●
●●●●●●
●●●●●●●●●●●●●●
●
●
●●
●●●●●●
●
●●●●●
●●●
●
●
●
●
●
●●
●
●●●●●
●●
●
●●●●●●
●
●●●●●●●●●●●●●●
●●●●●●
●●
●●
●
●
●●●●●
●●●●●●●
●●●●●●●●●●●●
●
●
●●
●●●
●●●●●●●●
●
●●●●●●
●
●
●●●●●●●●●●●●●●●
●●●
●●●
●
●
●●●●●
●
●●●●●
●●
●●
●
●●●●
●
●●
●
●
●
●
●●
●
●
●●
●●●
●●●●●●●●
●
●
●
●●●●
●
●●
●●●
●●●●●●●●●●●●
●●●●●●●●●●
●●
●●●
●
●●●●
●●
●
●●●●●●●●●●●●●●
●
●
●
●●
●●●
●●
●●
●
●
●●
●●●
●
●
●●●●●●●●●●●●●●
●
●
●●●●●●●●●●●
●●
●●
●
●
●●
●
●●●
●
●●●●●●
●
●●●●●●●●●●●●●●
●●●●
●●●●
●
●●
●
●
●
●●●●●
●
●
●
●
●
●●●●●●●●
●●●●●●●●
●
●
●
●●●
●●
●
●
●
●
●●
●●●●●●●●
●●
●●●
●●●●●●●●●●●●
●
●●●●
●
●●
●●●●●●●●●
●●●●●●●●●●●●●●
●●●
●●
●
●
●●●●●
●●●●
●●●●●●●●●●●
●●●●●●
●●●●●●●●●●●●●●●●●
●
●●●●●●●●
●●
●
●●●
●●
●●●●
●●
●●●●
●
●●●
●●●●
●●
●
●
●
●
●
●●
●
●
●●●
●
●
●
●
●
●
●●●
●●
●●
●
●●●●●●●●●●●●●
●●●●
●●●●
●
●
●
●
●●●●●●●●●●●
●●●●
●●●●●●●●●
●
●
●●●
●●●●
●
●●
●
●
●
●
●
●
●
●
●
●
●●●●●
●●
●
●●
●
●●●
●
●●●
●●●●
●●●●●●●●●●●
●●●●●●●
●
●●●●●●●
●●●●●●●●●●●●●●
●●●
●
●
●
●
●
●
●●●●
●●●●●●●●●●●●●●●●
●●●●●●●
●●●
●●●●●
●
●
●
●●●●
●●
●●
●
●
●●
●
●
●
●●●
●●●●●●●●●●●●
●●●●●●
●●●
●●●●●
●
●
●●●●●●●●●●●●●
●
●
●
●
●●
●●
●
●
●
●
●
●●
●
●
●
●
●●●●●●●●●●●●●
●●●
●
●
●●●
●
●●●●●●●●●
●
●
●
●●●●●●●●
●●●
●
●●
●
●●
●
●●●●●
●
●
●●
●
●●●●●
●
●●●●●●●●●●●●●
●
●●●
●
●
●
●●
●
●●
●●
●●
●
●
●●
●
●
●●●●●●
●
●
●●●
●●●●●●●●●●
●●●●●●●●●●●
●●
●
●
●●●
●●
●●
●●●
●
●
●
●●●●
●●●●●
●●●●●
●●●●●●
●
●●
●●●
●●
●
●●●
●
●●●●●●●●●●●●
●●●●●●●●●●●●
●
●
●
●●●●●●●●●●●●●
●●
●●●
●
●
●
●
●
●
●
●
●●●●●●●●●
●●
●●
●●●●
●
●
●●●
●
●
●●●●●●●●●●●●●●
●●
●●●
●
●●
●●●
●●●●●●●●●●●
●●●●●●●
●●
●●●●●
●●●●●●●●
●
●●
●
●
●
●
●
●●
●
●
●●
●●●●●
●●●●●●●●●●
●
●●●●●
●
●●●●
●●
●●
●
●
●●
●
●●●●●●●●●●●●●
●
●●●
●
●
●●●
●●
●
●
●
●●●
●
●
●
●
●
●
●●
●
●
●
●●●●
●
●
●●●
●●
●●●●
●●
●
●●●●
●●
●●●●
●●
●
●●●●●
●
●
●●●●●●●●●●●●●●●●●
●
●●
●●●●●
●
●●●●●
●
●
●
●
●
●●
●
●●
●
●
●
●●●●
●
●
●
●●●●
●
●
●
●
●●●
●
●●
●
●●●●●
●●
●●●●●●●●●●●●●●●
●●●●●●●●●●
●●●
●
●
●
●
●
●●●
●●●●●
●
●
●
●●●
●
●●●●
●●●
●
●
●●●●●●●●
●●●●●●●●●●●●●●●●
●●●●
●
●●●●●●●●●●●●●
●●
●
●
●●●●
●●●●●
●
●●●●●●●●●●
●
●●●●●●●●●●●●●●●●
●
●
●
●●●●●●
●●●●●●
●●●●●●●
●●●●●●
●
●
●●
●●●●●
●●●●●
●
●●
●
●
●●●●●
●
●●●●●●●●
●●●●●●●●●●●●●●●●●
●●
●●●
●
●●●●●●●●
●●●●●●●●●●●●●●
●●●●
●
●●
●●
●
●●●
●●●
●●●●●●●
●●●●
●
●●
●●●
●●●●●●●●●●●●●●●●●●
●●
●●●●●
●●
●
●
●
●
●●
●
●
●
●●●●●●●●
●
●●●●●●●
●●
●●
●●●●●●●●●●●●●●●●●●
●
●●●
●●●●●
●●●
●
●
●●●●●●●●●●
●●
●●
●
●
●
●
●●
●●
●
●
●
●
●●
●
●●●
●●
●●●
●●
●●●●●●●
●●
●●
●●
●●●●●●●●●
●●●●●●●●●●●●●●●●●●●●
●●●●●●
●●●●
●
●●●
●●●
●
●
●
●
●●
●●●●
●●
●
●●●●●●
●●●●
●
●
●●
●
●●
●●
●●●●●●●●●●●●●●
●●●●
●
●
●
●
●
●●●●
●
●●
●
●
●●●●●
●
●●●
●●●
●
●
●
●●●●
●
●
●
●●
●
●
●
●
●
●●●
●
●●
●●●
●
●
●●●●●●
●
●
●
●
●●●●
●●
●●●
●
●
●
●
●●●
●
●●●
●●●
●●●●●●●●●●●●●●●●●●
●
●
●●
●●●●●●●●●●●●
●●
●●●●●
●
●
●●
●
●
●
●
●●●●●
●●●●●●●●●
●
●●●
●
●
●
●
●●
●
●●●●
●●
●●●●●●●●●●●●●●●●●
●●●●●
●●
●●●●●●●●●●●●●●
●●●●●●●
●
●●●
●
●
●●●●●●●●
●●●●
●●●●●●●●●●●●●●●●
●●●●
●●
●●
●●●●●
●
●●●●●●●●
●
●●●
●●●●●●●
●
●
●
●
●●
●●●
●●●●●
●●
●
●
●●
●●
●
●●●●●
●●
●●●●
●●●●●●●●●●●●●●●●●
●●●
●
●
●●
●
●●
●
●●●●●●●●
●
●●●●●●●●
●●●●●●●●●●●●●●●
●●●●●●
●●●●●
●●●●
●●
●●
●
●●
●●
●
●
●●
●
●
●●●●
●
●
●●
●
●●
●
●●
●
●
●●●
●●●●●●●●●●●●●●●●●
●
●●●●
●
●
●●●
●
●
●●
●●
●
●
●●
●
●●
●
●
●
●●●
●
●●
●●
●●●
●
●
●●●●●●●●●
●●●●
●●●●●●
●●●
●●●
●
●
●●●●●●●●●●●●●●●●●●●
●●
●
●●●●
●
●
●
●●●●●
●●●●●●●
●
●●
●
●
●●
●●●●●●●●●●●●●●
●
●●●●
●●●●●●●●●●●●●●●●●●●
●●●
●●
●
●●
●●
●
●
●●
●●
●
●
●
●●●●
●●
●●●●●●●●●●●●
●
●●●●●●●●●●●●●●
●●●●●●●●●●
●
●●●●
●●●●●
●●
●
●
●●●
●
●
●
●●
●●●●●●●●●●●●●●●●
●●●●●●●
●
●
●●●●●●●●●●●●●●●
●
●●●●
●
●●
●●●●●●●
●●●●●●●●●●●
●●●●
●
●●●●●●●●●●●●●●●
●●●
●●●
●
●
●●
●●
●●●●
●●●●●●●●●
●
●●●●●●●●●●
●●●●●●●●
●●●●●●●●●●●●●
●●
●●
●●
●
●
●
●●
●
●
●●
●
●
●
●
●●
●
●●●
●
●●●
●
●
●
●●
●
●●●●●●●●●●●●●●●●●●●●
●●
●●
●
●●
●●●●
●
●
●
●
●
●●●
●●●●●●●●●●●●●●●●●●
●●●
●●
●●
●●●
●●
●
●●
●●●●
●
●●
●●
●●
●
●
●●
●
●●
●●
●
●●
●●
●●●
●●●●●●●
●●●●
●●●
●●●●
●
●●
●●●●●
●
●
●●●●●●
●●●
●●●●
●
●●●●
●●●●
●
●●●●●●●●●●●●●●●●
●
●
●●●
●●●
●
●
●
●
●
●
●
●
●
●
●
●●●
●●
●
●●●
●●●●
●
●
●●●●●
●
●●
●●●
●
●●●●
●
●
●●●●●●●●●●●●
●
●●●
●
●●
●
●●●●
●
●
●●
●●●●
●
●●
●
●●
●●●●●●
●
●●●●●●●●
●●●●●●●●●●●●●
●●●●●●
●
●
●
●●
●
●●
●
●
●
●
●●●●●●●●●●●●●●
●●●●●●●●●●
●
●
●
●●
●●
●
●●●●
●
●●●●●●●●●●●●●●●●
●●●●●●●●●●●●●●
●●●●●●●●●●
●●●
●
●
●●
●●●●●
●
●●●
●
●
●
●
●●
●●●●●
●●●
●●
●
●●●●
●●●
●
●
●●
●
●●●
●●●●●●●●●●●
●●
●●●●●●
●●
●●●●●●●
●●
●
●●
●
●●●●●
●●●●●●●●●
●●●
●●●●●●●●●●●●●●●
●
●●●●●●●●●●●●●●●●●
●●
●
●
●
●
●●
●●●●
●●
●●
●●
●●
●
●●
●
●●
●●●●●
●●●
●●
●●●
●●
●●●●●●●
●
●●
●
●●●●●●
●
●●●
●●●
●
●
●
●
●●●
●
●●
●
●●●●
●●●●●●●●●●●●●●●●
●●●●
●
●
●●●
●
●●●●
●
●●●●●●●●
●●●
●●
●●●
●
●
●●●●
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
050
100
150
200
Figure 3.9: Minimum time delays: δ values (seconds) by data class.
80 A NEW SOP-TW DATA GENERATOR
location of the next job; since the crane can feasibly drop-off a container
and then pick-up a container from the same ISA location, the s values can
be zero.
Finally, note that the outliers at zero in each box plot of Figure 3.7—and
thus Figure 3.9—arise due to the dummy job of each data sets (i.e. p0 = 0).
3.6.3 Precedence delays: α and α
Varying p affects the number of precedence arcs generated, |P |. When p = 0,
|P | = 0, thus there will be no α values; as a result, there is no box plot for
Class 4 in Figure 3.10.
Just like the δ values, the α values depend on the pick-up and drop-off lo-
cations of job-pairs, as described in §3.2.5. Consequently, the α values have
the same range as δ values, excluding the outlier zero3. Indeed, the δ and
α values of each class can be viewed as samples from the set of all possi-
ble combinations that can arise from the underlying container yard layout.
However, since there are always many more normal arcs than precedence
arcs (|A| � |P |, as per Table 3.8), δ has a much larger sample for all classes.
As a result, the box plots of δ values in Figure 3.9 are very similar across
classes, whereas the box plots of α values in Figure 3.10 show greater vari-
ability.
The precedence set PALL arises during data preprocessing, where each arc
(i, j) ∈ PALL has precedence delay αij ; see Section 4.5 for details. The ma-
jority of arcs in PALL come from arcs in precedence set P TW with associated
precedence delay αij := max{δij , aj − bi} (§4.5.1 and §4.5.4). Figure 3.9
shows that the maximum value of δ is approximately 200 (200.23 according
to Table F.7). Consequently, Figure 3.11 shows that the vast majority of
αij values arise via αij = aj − bi, rather than αij = δij . As a result, the box
plots of α values—shown in Figure 3.11—are very similar to the box plots
of release dates (Figure 3.4) and due dates (Figure 3.5).
3A precedence relation (i, j) arises when containers i and j (corresponding to non-
dummy jobs i and j) share a location such that i must be moved out of the location
before j can be moved into the location. As a result, αij > 0 for all (i, j) ∈ P .
3.7 Chapter summary 81
●
●
●
●
●
●●
●
●
●
●
●●
●
●
●
●
●
●●
● ●
●
●
●●
●●
●
●
●
●
●
●
●
●
●
●
●●
●
●
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
8010
012
014
016
018
020
0
Figure 3.10: Original precedence delays: α values (seconds) by data class.
●●●●●●●●
●● ●
●●●
●●●●
●
●●●●●●●●
●●●●●●●●●●●●
●●●● ●
●●●●●●●●●●●● ●●
●●●●● ●●●●●●
●●●●●●●●●●
●●●●●
●
●●●●
●
●●●●●●●●●●
●●●●●
●●
●●●●●● ●●●
●●● ●●
●●●●●●●●●
●
●●
●●●●●
●●●●●
●●●●
●
●
●
●●●●●
●●●
●
●●
●●●●●●●●
●
●●
●●●
●●●●
●
●●
●●
●● ●●●
●●●●
●●●●●●●
●
●●●
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
020
0040
0060
0080
00
Figure 3.11: All precedence delays: α values (seconds) by data class.
3.7 Chapter summary
Procedure RandomPortDataGen is a significant contribution of this chap-
ter. It is a detailed method for creating port-specific container data based
on a real world terminal layout. By using this method, crane scheduling
data sets have been generated with a number of characteristics. Since each
crane scheduling instance output by RandomPortDataGen directly trans-
lates into a feasible SOP-TW problem instance, we focus on the more general
problem of the SOP-TW for the remainder of this thesis.
82 A NEW SOP-TW DATA GENERATOR
Chapter 4
FORMULATIONS OF THE
SOP-TW
Several integer programming formulations of the SOP-TW are presented in this
chapter; the pros and cons of each formulation are discussed. A data preprocessing
routine to aid efficient implementation is given, and computational studies of this
procedure and the compact formulations are performed.
4.1 Introduction
As noted in Section 2.2, the ATSP is a relaxation of the SOP-TW; indeed,
the ATSP is a relaxation of various interesting problems. Consequently,
many formulations of the ATSP exist. As new models have been developed,
the relationships between the different formulations have been analysed:
important works in this area include contributions by Wong [76], Langevin
et al. [77], Padberg and Sung [78], Gouveia and Voß [79], and Orman and
Williams [80]. Recently, Oncan et al. [81] classified and compared 24 existing
ATSP formulations. In addition to a review of the known relationships
between the various formulations, an important contribution of this survey
paper is the introduction of new relationships.
While many of these ATSP formulations could be used as the foundation of
a SOP-TW formulation, for brevity, only three integer programming (IP)
formulations of the SOP-TW are presented in this chapter.
83
84 FORMULATIONS OF THE SOP-TW
All three IPs extend well-known formulations of the closely related ATSP-
TW, which are ultimately extensions of ATSP formulations. The formula-
tions are:
1. a compact model called MIP1 based on a formulation originally pro-
posed by Miller, Tucker and Zemlin [34] and extended by Ascheuer,
Fischetti and Grotschel [8], described in §4.2.1;
2. a compact model called MIP2 based on a formulation originally pro-
posed by van Eijl [36] and Maffioli and Sciomachen [37] and adopted
by Ascheuer, Fischetti and Grotschel [8], described in §4.2.2; and
3. a cutting plane model called MIP3 based on a formulation originally
proposed by Dantzig, Fulkerson and Johnson [17] and extended by
Ascheuer, Fischetti and Grotschel [16, 8], described in §4.3.1.
The outline for the rest of this chapter is as follows. In §4.2 two SOP-TW
formulations—MIP1 and MIP2 —are presented that are both compact and
easy to implement; the pros and cons of these two models is discussed. A
cutting plane formulation, MIP3, is presented in §4.3. Alternate MIP models
for the SOP-TW are mentioned in §4.4. A data preprocessing routine to aid
efficient implementation of all techniques proposed in this thesis is given
in §4.5, along with a computational study of this preprocessing routine. A
comprehensive computational study of the two compact MIPs is performed
in §4.6 to provide a benchmark for the techniques subsequently proposed in
this thesis. Finally, §4.7 summarises the contributions of this chapter and
outlines the solution approaches proposed in the remainder of the thesis.
4.2 Compact formulations of the SOP-TW
In this section two mixed integer linear programming (MIP) formulations
of the SOP-TW are presented using the notation defined in Chapter 2 and
summarised in Table A.2 (page 309). Both MIPs are compact (i.e. have a
polynomial number of constraints in the number of jobs) and easy to im-
plement. These compact MIPs will provide a benchmark for the techniques
subsequently proposed in this thesis. Moreover, in Chapter 7 a scheduling-
based branch-and-bound method will be introduced that requires at least
4.2 Compact formulations of the SOP-TW 85
one MIP formulation of the SOP-TW; both of these MIPs will be tested in
that method.
4.2.1 Model MIP1
This model of the SOP-TW is based on a simple extension to an IP for-
mulation of the ATSP-TW presented by Ascheuer et al. [8], which they
name Model 1. Their formulation extends the TSP formulation proposed by
Miller, Tucker and Zemlin [34] that introduced additional t variables. The t
variables are used to formulate a significantly smaller set of inequalities that
replace the subtour elimination constraints, and can be used to incorporate
side constraints such as those arising from travel times and time windows.
Our extension of the model proposed by Ascheuer et al. is given by con-
straints (4.1)–(4.7), and named MIP1 ; the addition of inequality (4.5) ex-
tends Model 1 to include precedence constraints. Moreover, the times are
non-negative real values as given by constraint (4.6), rather than natural
numbers.1 The first SOP-TW formulation, MIP1, is as follows:
(MIP1 ) min∑
(i,j)∈A
sijxij
s.t.∑
j∈V ∪{0}s.t.(i,j)∈A
xij = 1 ∀i ∈ V ∪ {0}, (4.1)
∑i∈V ∪{0}
s.t.(i,j)∈A
xij = 1 ∀j ∈ V ∪ {0}, (4.2)
ti + δij −Mij(1− xij) ≤ tj ∀(i, j) ∈ A, j 6= 0, (4.3)
ai ≤ ti ≤ bi ∀i ∈ V, (4.4)
ti + αij ≤ tj ∀(i, j) ∈ P, (4.5)
ti ∈ R+ ∪ {0} ∀i ∈ V ∪ {0}, (4.6)
xij ∈ {0, 1} ∀(i, j) ∈ A (4.7)
1All times in the data sets created by our data generator in Chapter 3 are real val-
ues, rather than natural numbers; they are derived from the real-world port layout that
underpins the data generator. Thus the start times given by ti for all i ∈ V are real too.
86 FORMULATIONS OF THE SOP-TW
where
xij :=
1, if job j is processed immediately after job i,
0, otherwise,
and ti is the scheduled start time of job i, δij := pi+sij is the minimum time
delay between starting job i and starting job j, Mij := max{bi + δij − aj , 0}are big-M values used in big-M constraints (4.3) that are only active when
i immediately precedes j, αij is the minimum time lag between starting job
i and starting job j (where αij ≥ δij), P is a precedence set consisting of
pairs of jobs for which these minimum time lags apply, and A is the set of
all job-pair partial orderings (i.e. (i, j) ∈ A if job j can be started directly
after job i).
4.2.2 Model MIP2
As with MIP1, this formulation is also based on an extension to an IP formu-
lation of the ATSP-TW presented by Ascheuer et al. [8], which they name
Model 3. The formulation, originally proposed by van Eijl [36] and Maffioli
and Sciomachen [37], avoids the big-M constraints—which are known to be
weak—by introducing additional arc variables (y). Like the t-variables in
MIP1, these y variables are used to formulate a smaller set of inequalities
that replace the Dantzig, Fulkerson and Johnson subtour elimination con-
straints (constraints (2.4) in Section 2.2), as well as model additional side
constraints such as times.
Our extension of the model proposed by Ascheuer et al. is given by con-
straints (4.1), (4.2) and (4.7)–(4.11), and named MIP2. The addition of
inequality (4.10) extends Model 3 to include precedence constraints. As
with MIP1, the times are non-negative real values as given by constraints
(4.11), rather than natural numbers. The second SOP-TW formulation,
4.2 Compact formulations of the SOP-TW 87
MIP2, is as follows:
(MIP2 ) min∑
(i,j)∈A
sijxij
s.t. (4.1), (4.2), (4.7),∑i∈V
s.t.(i,j)∈A
yij +∑
i∈V ∪{0}s.t.(i,j)∈A
δijxij ≤∑
k∈V ∪{0}s.t.(j,k)∈A
yjk ∀j ∈ V, (4.8)
aixij ≤ yij ≤ bixij ∀(i, j) ∈ A, i 6= 0, (4.9)∑k∈V ∪{0}s.t.(i,k)∈A
yik + αij ≤∑
k∈V ∪{0}s.t.(j,k)∈A
yjk ∀(i, j) ∈ P, and (4.10)
yij ∈ R+ ∪ {0} ∀(i, j) ∈ A, i 6= 0. (4.11)
The y variables simultaneously capture two pieces of information when
yij > 0. Firstly, if yij > 0 then i immediately precedes j. Secondly, if
yij > 0 then yij is the start time of job i. Inequalities (4.9) force yij to zero
if xij = 0, while inequalities (4.8) and (4.9) ensure that if xij = 1 then yij
is the start time of job i—equivalent to ti in MIP1 —and job j is processed
immediately after job i. Indeed,
ti =∑
j∈V ∪{0}s.t.(i,j)∈A
yij , (4.12)
with at most one non-zero yij for each i ∈ V . If the release date of the first
job in the schedule is zero, the start time of that job may also be zero.
It is worth noting that for all j ∈ V , y0j are not required, thus are omitted
in (4.11). Consequently, they are also omitted from inequalities (4.9). In
contrast, for all i ∈ V such that (i, 0) ∈ A, yi0 are required. This is to ensure
that the final job is also assigned a start time.
Since the t variables in MIP1 are an aggregation of the y variables in MIP2 —
as per equation (4.12)—MIP2 is a stronger formulation than MIP1. Other
merits and differences of the two models are discussed in Section 4.2.3.
4.2.3 Comparison of the compact MIP models
Both MIP formulations will be used for benchmarking and within the branch-
and-bound scheme proposed in Chapter 7. The main differences and advan-
88 FORMULATIONS OF THE SOP-TW
tages of each model are now discussed.
The key difference between MIP1 and MIP2 is how they model time: the
first has node-based time variables, while the latter has arc-based time vari-
ables. In ATSP models these variables are used to break subtours by captur-
ing the order cities are visited; in the SOP-TW they model the time at which
each job is processed, implicitly break subtours and allow for time-related
objective functions.
Both MIP1 and MIP2 can be modified to accommodate time-based objec-
tives using the current time variables. For example, compared with the TSP
literature, the machine scheduling literature pays relatively little attention
to problems with the objective∑
(i,j)∈A sijxij (see Graham et al. [13], Lawler
et al. [14] or Pinedo [15]). Instead, prominence has been given to minimising
objectives such as: the latest completion time, Cmax (i.e. makespan); maxi-
mum lateness, Lmax (the largest difference between the completion time and
due date of a job); the sum of the completion times,∑
i∈V Ci; total tardi-
ness,∑
i∈V Ti (where Ti = max{0, Ci − di}); and the number of tardy jobs,∑i∈V Ui (where Ui = 0 if Ci ≤ di, otherwise 1). Similarly, objectives that
include weight coefficients, wi, on Ci, Ti and Ui have also been considered.
Since these objectives are unrelated to sequence-dependent setup times, the
heuristics and lower bounding techniques that focus on these objectives are
of limited use within this thesis. However, both MIP1 and MIP2 can be
modified to accommodate these objectives. Indeed, in Section 5.4 the ob-
jective of both IPs are modified by incorporating the sum of the weighted
time variables.
By observation, MIP2 is a stronger formulation than MIP1 ; the y arc vari-
ables are much more strongly linked to the x arc variables (constraints (4.8)
and (4.9)) than the t node variables (big-M constraints (4.3)). Indeed, within
the context of the ATSP, arc-based approaches generally provide stronger
lower bounds while node-based models based on the Miller, Tucker and Zem-
lin (MTZ) t variables are beneficial for the speed of their LP relaxation [81].
The computational experiments in Section 4.6.3 show the same behaviour.
There exist several well-known liftings for the MTZ time window constraints
in MIP1, such as those in Desrochers and Laporte [35] and Sherali and
Driscoll [82]. We do not include the liftings in [35] in our implementation
4.3 A cutting plane formulation 89
due to their limited effectiveness on asymmetric problems: on Desrochers
and Laporte’s “Asymmetric random” problem instances the average lower
bound improvements were 0.4%–0.7%. Although Sherali and Driscoll [82]
prove that their MTZ liftings are theoretically and computationally stronger
than those of Desrochers and Laporte (stronger lower bounds; fewer B&B
nodes explored), the computational effort required at each node is signifi-
cantly increased, usually resulting in longer total solve times than the weaker
formulations.
As noted at the start of Section 4.2, at least one MIP formulation of the
SOP-TW is required for node-pruning criteria of the B&B method proposed
in Chapter 7. In Criterion 4 (LP feasibility), the LP relaxation of a MIP is
solved. Since this is repeated at each node of the B&B tree, the LP relaxation
must be fast-solving; this is the primary reason MIP1 is included. The value
of the LP solved in Criterion 4 can be used for Criterion 5 (dominance by
bound), but Criterion 6 (heuristics for obtaining feasible solutions) requires
a modified MIP with time variables, so either MIP will suffice.
In this thesis, no liftings have been included in either MIP1 or MIP2 for
several reasons. Predominately, the MIPs will be used in a scheme where
each LP relaxation must solve as quickly as possible; since an LP is solved
at every node of a B&B tree, even a small increase in LP solve time can have
a big impact on total solve time. Given the significant additional computa-
tional effort required by a lifted model, this would negate the benefits of a
slightly better lower bound. As a proxy, all MIP results can be adjusted by
the best improvement gained by liftings. However, as will be shown later in
this thesis (for example, see Figure 8.3 in Chapter 7) our best cases would
still easily outperform a lifted model. Furthermore, the ease of implementing
the models as they stand is also beneficial.
4.3 A cutting plane formulation
The model presented in this section is an extension of the model presented
in Section 2.2 for the ATSP-TW. Since this formulation has exponentially
many constraints in the number of jobs it is not a compact formulation.
90 FORMULATIONS OF THE SOP-TW
4.3.1 Model MIP3
As with MIP1 and MIP2, this formulation is also based on a simple extension
to an IP formulation of the ATSP-TW presented by Ascheuer, Fischetti
and Grotschel in [8], as well as in [16]. Their formulation is extended here
to implicitly include generalised precedence constraints by broadening the
definition of an infeasible path used in inequalities (4.14). Thus a cutting
plane formulation for the SOP-TW follows:
(MIP3 ) min∑
(i,j)∈A
sijxij
s.t. (4.1), (4.2) and (4.7)∑(i,j)∈A(W )
xij ≤ |W | − 1 ∀W ⊂ V ∪ {0}, 2 ≤ |W | ≤ n (4.13)
k−1∑i=1
xvivi+1 ≤ |Q| − 1 ∀ infeasible pathsQ = (v1, . . . , vk)
(4.14)
where constraints (4.13) are subtour elimination constraints (SECs). Recall
that an infeasible path for the SOP-TW is a sequence of jobs that would
lead to a violation of at least one precedence relation and/or at least one
job’s time window. Let Q be an arbitrary infeasible path with k jobs, where
vi is the i-th job in the path Q. Since Q is a path—not a tour—the length
of Q is |Q| = k − 1 (the number of arcs traversed in the path).
MIP3 only contains binary arc variables, with the time constraints regard-
ing precedences and time windows incorporated via the inequalities (4.14),
which forbid paths that violate the time windows and/or precedence rela-
tions. To incorporate the precedence information, a new item is checked
when assessing if path Q is feasible: when calculating (by simulation) the
earliest start time of each job in Q, all times must also satisfy the precedence
relations (i.e. tj ≥ ti + αij for all (i, j) ∈ P ). If the resulting times violate a
time window (i.e. ti > bi for some i ∈ V ), the path is considered infeasible.
This cutting plane formulation has several advantages. Firstly, it is a
stronger formulation than both compact formulations. Secondly, it does not
require additional variables, and thus does not require linking constraints
to connect the x variables to new variables. However, this restricts the ob-
4.4 Alternative MIP models for the SOP-TW 91
jective function to depend on x only; in contrast, the two compact models
allow for many varied objective functions.
A major disadvantage of MIP3 is that there are exponentially many con-
straints in both (4.13) and (4.14). Consequently, these constraints are typ-
ically generated during the solution process and added to the model as
individual constraints are found. This is the major drawback which the
two compact formulations address: they can be solved directly, avoiding
the need to devise a sophisticated implementation that iteratively solves a
relaxed model and identifies violated constraints.
4.3.2 Valid inequalities for the SOP-TW
The AP, ATSP, SOP (ATSP-PC) and ATSP-TW were shown to be relax-
ations of the SOP-TW in Section 2.2; consequently, all valid inequalities for
these relaxations also hold for the SOP-TW.
As noted by Ascheuer, Fischetti and Grotschel [8], the inequalities given
by (4.14) can be very weak. As a result, they present a number of other
inequalities that are stronger than the current infeasible path inequalities.
Since a full investigation of MIP3 is beyond the scope of this thesis, these
inequalities are not presented here.
4.4 Alternative MIP models for the SOP-TW
As noted in Section 2.4, Escudero and Sciomachen [4] present a MIP model
for the SOP-TW; this same model is presented by Maffioli and Sciomachen
[37] (which they call Model 2.1). We do not present or investigate that
model in this thesis as it has two major disadvantages: it contains both
the exponential set of subtour elimination constraints (4.13) and also big-M
constraints. An alternative model that overcomes both disadvantages was
introduced by van Eijl [36] and Maffioli and Sciomachen [37] (which they
call Model 3.2); MIP2, which was presented in §4.2.2, is a modified version
of it. The performance of MIP2 is investigated in Section 4.6.
Escudero and Ortuno [45] and Alonso-Ayuso, Detti, Escudero and Ortuno
[46] present a formulation for the SOP-TW without release dates. As noted
92 FORMULATIONS OF THE SOP-TW
in Section 2.5, there is no concept of waiting time in this special case of
the SOP-TW, thus the start time of the j-th job in a given schedule (π) is
modelled as the sum of the processing and sequence-dependent setup times
of preceding jobs (i.e.∑j−1
i=0{sπi,πi+1 + pπi}). Moreover, this formulation
also contains the exponential set of subtour elimination constraints (4.13)
as well as an exponential set of precedence forcing constraints (discovered
independently and introduced in [30] and [32], and strengthened in [31] and
[44]); like MIP3, investigation of this model is beyond the scope of this
thesis.
4.5 Data preprocessing
A range of preprocessing techniques may be applied to a SOP-TW problem
instance to (a) identify additional valid precedence relations, and (b) reduce
the problem to a smaller equivalent problem by tightening time windows
and/or reducing the arc set A. Since the ATSP-TW is a special case of the
SOP-TW (where P = ∅) the preprocessing techniques described by Ascheuer
et al. [8] can be directly applied to the SOP-TW. Moreover, since we assume
that P 6= ∅, additional preprocessing based on precedences is possible and
thus implemented.
The preprocessing techniques applied in this thesis are presented herein.
The largest set of valid precedence relations, PALL, is of particular impor-
tance, since this set is used extensively in the solution techniques presented
throughout this thesis (for example, see Section 5.3.2.4 and 7.4.2). Addi-
tionally, PALL is used to tighten time windows and reduce the arc set A so
as to maximise the preprocessing that can be achieved.
4.5.1 Precedence preprocessing
Given the time windows of two jobs—[ai, bi] and [aj , bj ]—if bi < aj + δji, it
is implied that job i must be processed before job j in any feasible sched-
ule. Consequently, (i, j) is a precedence induced by the time windows of
jobs i and j, thus (i, j) ∈ P TW where P TW is the set of all implicit prece-
dences implied by the time windows. The associated precedence delay is
αij := max{δij , aj − bi}.
4.5 Data preprocessing 93
The set of all precedences, PALL, is constructed recursively using the original
precedence set P and the time-window-induced precedence set P TW . The
transitive closure of the directed graph G := (V ∪ {0}, P ∪ P TW ), denoted
C(G) := (V ∪ {0}, PALL), is a graph which contains an arc (i, j) whenever
there is a directed path from i to j in G. The precedence delay on arc
(i, j) ∈ PALL, αij , is the maximum accumulated delay along any directed
path from i to j:
αij := maxQ∈Zij
∑e∈E(Q)
max{αPe , αTWe }
where Zij is the set of all directed paths from i to j in G, E(Q) is the set of
arcs that define path Q ∈ Zij (thus E(Q) ⊆ P ∪ P TW ), and
αPe :=
αe, if e ∈ P ,
0, otherwise,
and
αTWe :=
αe, if e ∈ P TW ,
0, otherwise.
4.5.2 Time window preprocessing
Given the precedence relations in PALL, a rank ordering of the jobs in V
can be determined via a topological sort, where ri is the rank of job i and
ri < rj for all j ∈ V such that (i, j) ∈ PALL. For a detailed description
of rank ordering see Section 5.3.1, where this concept is described in the
context of a construction heuristic for the SOP.
In order of increasing rank, the release date of each job can be updated
according to the set of its strict predecessors. This procedure is shown in
Algorithm 5.
Similarly, in order of decreasing rank, the due date of each job can be up-
dated according to the set of its strict successors. This procedure is shown
in Algorithm 6.
If at least one time window update was made by UpdateReleaseDates(⇀R)
and/or UpdateDueDates(↼R), additional time window precedences may ex-
94 FORMULATIONS OF THE SOP-TW
ist, thus P TW and PALL may need to be updated. If P TW and PALL
are updated, then additional time window updates may be possible. Con-
sequently, several preprocessing iterations may be required. However, by
performing the time window updates according to a rank ordering and us-
ing the set of all strict predecessors/successors, the process of updating the
time windows is efficient, thus minimising the number of iterations required.
Algorithm 5: Procedure UpdateReleaseDates(rank ordering⇀R)
Input: An increasing rank ordering of the jobs in V based on PALL,⇀
R
Output: Updated release dates (if any)
initialiseai ← ai ∀i ∈ Vσ(i)← {j ∈ V : (i, j) ∈ PALL} ∀i ∈ V // set of successors of i
for i←⇀
R (1) to⇀
R (n) do
for j ∈ σ(i) do
if aj < ai + αij thenaj ← ai + αij
return ai ← ai ∀i ∈ V
Algorithm 6: Procedure UpdateDueDates(reverse rank ordering↼R)
Input: A decreasing rank ordering of the jobs in V based on PALL,↼
R
Output: Updated due dates (if any)
initialise
bi ← bi ∀i ∈ Vπ(j)← {i ∈ V : (i, j) ∈ PALL} ∀j ∈ V // predecessors of j
for j ←↼
R (1) to↼
R (n) do
for i ∈ π(j) do
if bi > bj − αij then
bi ← bj − αij
return bi ← bi ∀i ∈ V
4.5 Data preprocessing 95
4.5.3 Creating variables and eliminating arcs
To enable efficient implementation of the solution techniques discussed in
this thesis, the smallest number of variables that model the SOP-TW should
be created and used. All three MIP models presented in this chapter contain
the binary arc variables xij , which are created via the arc set A. Instead of
starting with m = n(n+1) arcs (i.e. the complete set of arcs), A is initialised
to a set of core arcs, C, then is iteratively updated via arc elimination. Once
the set A is finalised, xij is only created if (i, j) ∈ A.
The set of core arcs, C, consists of all job-pairs (i, j) such that job j can
immediately follow job i, and is defined as follows. For all i, j ∈ V ∪ {0}such that i 6= j, (i, j) ∈ C if
• (j, i) /∈ PALL and ai + δij ≤ bj ; or
• j = 0 and σ(i) = ∅ (i.e. job i has no strict successors); or
• i = 0 and π(j) = {0} (i.e. the only predecessor of j is the dummy job).
Thus arc set A is initialised to C.
At this stage, A is likely to be significantly smaller than the complete set
of arcs. However, this set is reduced further via a number of logical deduc-
tions using PALL. In particular, the arc elimination procedures of Ascheuer
et al. [8] are invoked, namely:
(E-i) for any (i, j) ∈ A, if there exist k ∈ V such that (i, k) ∈ PALL and
(k, j) ∈ PALL (i.e. (i, k, j) is a precedence chain), then (i, j) cannot be
in any feasible solution, thus remove (i, j) from A; and
(E-ii) for any (i, j) ∈ A, and any set of k jobs, Q := {v1, . . . , vk}, where
k ≤ n − 2 and i, j /∈ Q, if all concatenations of job set Q with (i, j)
give an infeasible subpath (by violating the due date of at least one
job in each subpath), then (i, j) cannot be in any feasible solution,
thus remove (i, j) from A.
Concatenations of sequence (i, j) and job set Q := {v1, . . . , vk} are formed
by enumerating all possible permutations of set Q and then inserting the
sequence (i, j) into all possible positions of each of those permutations. For
example, let the first permutation of set Q be sequence (v1, v2, . . . , vk−1, vk).
96 FORMULATIONS OF THE SOP-TW
The k + 1 concatenations of (i, j) with (v1, v2, . . . , vk−1, vk) are:
(i, j, v1, v2, . . . , vk−1, vk)
(v1, i, j, v2, . . . , vk−1, vk)
(v1, v2, i, j, . . . , vk−1, vk)
...
(v1, v2, . . . , i, j, vk−1, vk)
(v1, v2, . . . , vk−1, i, j, vk)
(v1, v2, . . . , vk−1, vk, i, j)
Since Q has k! permutations and (i, j) can be inserted into k+1 positions in
each of those permutations, there are a total of (k + 1)! subpaths produced
by all concatenations of sequence (i, j) with job set Q.
When |Q| = 1 (say Q = {u}) (E-ii) says that for any i, j ∈ V such that
ai + δij ≤ bj (that is, (i, j) is pair-wise time-feasible) if there exists any
u ∈ V \{i, j} such that both subpath P1 := (i, j, u) and subpath P2 := (u, i, j)
are infeasible (by violating the due date of u in P1, and violating the due
date(s) of i and/or j in P2), then (i, j) cannot be in any feasible solution,
thus remove (i, j) from A.
When |Q| = 2 (say Q = {u, v}) (E-ii) says that for any (i, j) ∈ A, if there
exists any u, v ∈ V \{i, j} (u 6= v) such that all the subpaths
P1 := (i, j, u, v), P2 := (u, i, j, v), P3 := (u, v, i, j),
P4 := (i, j, v, u), P5 := (v, i, j, u), and P6 := (v, u, i, j)
are infeasible (by violating the due date(s) of u and/or v in P1 and P4, and
violating the due date(s) of i and/or j and/or v in P2 and P3, and violating
the due date(s) of i and/or j and/or u in P5 and P6), then (i, j) cannot be
in any feasible solution, thus remove (i, j) from A.
Although the concatenation idea presented in (E-ii) can be extended for
|Q| > 2, the number of subpaths to check increases dramatically as Q in-
creases in size, which makes complete enumeration of these subpaths very
time consuming. Consequently, |Q| ≤ 2 in this thesis.
The complete preprocessing procedure is shown in Algorithm 7.
4.5 Data preprocessing 97
Algorithm 7: Procedure Preprocessing(problem instance η)
Input: Problem instance η // includes TWs and precedence set P
Output: Updated time windows, PTW , PALL and arc set A
repeat Precedence and time window preprocessing
Construct PTW
Construct PALL⇀
R← rank ordering of jobs in V based on PALL
UpdateReleaseDates(rank ordering⇀
R)↼
R← reverse rank ordering of⇀
R
UpdateDueDates(rank ordering↼
R)
until time windows have not changed
Construct core arc set, C, and set A← C
// arc eliminations based on (E-i)foreach (i, j) ∈ A do
if ∃u ∈ V \{i, j} s.t. (i, u) ∈ PALL and (u, j) ∈ PALL thenA← A\(i, j)
Calculate the earliest start time (EST) for every 2, 3 and 4 job sequence:
foreach i, j ∈ V , i 6= j do
// EST at j when i immediately precedes j
EST2(i, j) = max{aj , ai + max{δij , αij}}foreach k ∈ V , k 6= i, k 6= j do
// EST at k when (i, j) immediately precedes k
EST3(i, j, k) = max{ak, EST2(i, j) + max{δjk, αjk}}foreach l ∈ V , l 6= i, l 6= j, l 6= k do
// EST at l when (i, j, k) immediately precedes l
EST4(i, j, k, l) = max{al, EST3(i, j, k) + max{δkl, αkl}}
// arc eliminations based on (E-ii), |Q| = 1foreach (i, j) ∈ A doif ∃u ∈ V \{i, j} s.t. EST3(i, j, u) > bu and
(EST2(u, i) > bi or EST3(u, i, j) > bj) thenA← A\(i, j)
// arc eliminations based on (E-ii), |Q| = 2foreach (i, j) ∈ A doif ∃u, v ∈ V \{i, j} s.t.(EST3(i, j, u) > bu or EST4(i, j, u, v) > bv) and
(EST2(u, i) > bi or EST3(u, i, j) > bj or EST4(u, i, j, v) > bv) and
(EST2(u, v) > bv or EST3(u, v, i) > bi or EST4(u, v, i, j) > bj) and
(EST3(i, j, v) > bv or EST4(i, j, v, u) > bu) and
(EST2(v, i) > bi or EST3(v, i, j) > bj or EST4(v, i, j, u) > bu) and
(EST2(v, u) > bu or EST3(v, u, i) > bi or EST4(v, u, i, j) > bj) thenA← A\(i, j)
return Time windows [ai, bi] ∀i ∈ V ; PTW ; PALL; and arc set A
98 FORMULATIONS OF THE SOP-TW
4.5.4 Computational study of preprocessing
The preprocessing code was implemented in Xpress Mosel Version 2.4.1 and
run in Xpress-IVE Version 1.19.01, on a Dell Latitude D620 laptop with an
Intel(R) Core(TM)2 CPU T7600 @ 2.33 GHz and 2.00GB of RAM running
Windows XP Professional SP3 (32 bits).
The preprocessing results for each data group are given in Appendix G in
Tables G.2–G.5, while the notation describing the column headings is given
in Table G.1. A breakdown of the time spent in each procedure for all prob-
lem instances is shown in Tables G.7–G.10, while the notation describing the
column headings is given in Table G.6. A statistical summary of the eight
key SOP-TW data set parameters for each data class is given in Section 3.6.
General conclusions are presented here.
As noted at the start of this section, a range of preprocessing techniques
may be applied to a SOP-TW problem instance to identify additional valid
precedence relations, and reduce the problem to a smaller equivalent prob-
lem by tightening time windows and/or reducing the arc set A. Both goals
have been achieved by applying the preprocessing procedure shown in Al-
gorithm 7. A summary of the key observations and conclusions from the
preprocessing implementation is given below.
Precedence sets P , P TW and PALL
PALL is mostly composed of arcs from P TW . This is not surprising for two
reasons. Firstly, |P | was intentionally kept relatively small; too many prece-
dences generally make a SOP-TW problem instance significantly easier to
solve. Secondly, unless the time window intervals (bi−ai for job i) are com-
paratively long and each overlap with many other jobs—which would make
finding feasible solutions easier—many time window induced precedences are
to be expected. Indeed, to ensure the methods presented in this thesis were
tested on a variety of data sets, time window variability was controlled—and
thus so was |P TW | variability—as described in Section 3.4.2.1 and shown in
Table 3.5. Evidence of success in achieving that variability is in the summary
statistics described in §3.6.1 and Figure 3.6, as well as the |P TW | columns
of Tables G.2–G.5; as desired, |P TW | decreases as γ increases.
4.5 Data preprocessing 99
P TW = ∅ for all BKA instances
For all BKA instances, P TW = ∅ due to the large deadlines. Consequently,
P = PALL for these data sets. Moreover, |P | is relatively big for the BKA
data sets (n = 17, mean |A| = 199, mean |P | = 83, mean |P TW | = 0, mean
|PALL| = 83), when compared with our data sets2 (e.g. over all n25 data
sets: mean |A| = 500, mean |P | = 6, mean |P TW | = 89, mean |PALL| = 95).
However, this is somewhat counteracted by the large due dates in the BKA
data sets.
Time window updates
Very few time window updates were achieved for the n25, n50 and n100 data
sets; as seen in columns a∗ and b∗ in Tables G.2-G.4, the maximum number of
updates to release dates for any data set was six, while the maximum number
of updates to due dates was five. The BKA data sets (where n = 17) had
significantly more; as seen in Table G.5, the maximum number of updates
to release dates for any data set was 12, while the maximum number of
updates to due dates was 29, which was mostly due to the large deadlines.
Precedence and time window preprocessing
Preprocessing of the precedences and time windows was very efficient: the
Iter columns in Tables G.2–G.5 show that at most two iterations of the loop
was required for any data set. This is due to the time window updates
utilising a rank ordering of the jobs, which ensured the full flow-on effect
of time window updates were captured in one iteration. A second iteration
was only required if a time window update was made in the first iteration,
as a change to time windows may result in additional precedences for P TW
and PALL.
Arc elimination
E1 is the number of arcs eliminated due to a precedence chain (E-i), E2 is the
number of arcs eliminated due to concatenation (E-ii) when |Q| = 1, E3 is
2As noted earlier, |P | was intentionally kept relatively small; too many precedences
generally make the problem instances significantly easier to solve.
100 FORMULATIONS OF THE SOP-TW
the number of arcs eliminated due to concatenation (E-ii) when |Q| = 2, and
|A| is the number of remaining arcs/variables after preprocessing. Table 4.1
summarises the mean number of arcs eliminated by each arc elimination
procedure, by data group; the full tables are in Appendix G.
BKA n25 n50 n100
Mean # core arcs, |C| 218.7 525.3 1,854.2 6,321.0
Mean # arcs eliminated, |E| 19.9 25.2 320.9 2,732.1
(as a % of core arcs) (9.1%) (4.8%) (17.3%) (43.2%)
Mean E1 19.9 24.7 316.3 2,717.1
(as a % of all arcs eliminated) (100%) (98.2%) (98.6%) (99.4%)
(as a % of core arcs) (9.1%) (4.7%) (17.1%) (43.0%)
Mean E2 0 0 0 0
(as a % of all arcs eliminated) (0%) (0%) (0%) (0%)
(as a % of core arcs) (0%) (0%) (0%) (0%)
Mean E3 0 0.4 4.6 15.0
(as a % of all arcs eliminated) (0%) (1.8%) (1.4%) (0.6%)
(as a % of core arcs) (0%) (0.08%) (0.2%) (0.2%)
Mean # arcs created, |A| = |C| − |E| 198.9 500.2 1,533.3 3,588.9
Table 4.1: Summary of arc elimination results by data group.
Procedure (E-i) is the most effective elimination procedure, responsible for
over 98% of all arc eliminations. Moreover, this elimination procedure is
increasingly successful at eliminating core arcs as n increases (from 4.7%
for n25 to 43% for n100). While this reflects the nature of the underlying
problem—proportionally more precedences should exist as n increases if all
other problem characteristics are unchanged—it is particularly important
for the branch-and-bound scheme discussed in Chapter 7 that all infeasible
arcs are eliminated prior to solving a problem instance.
E2=0 for all problem instances
For all problem instances, E2=0, thus the E2 column is omitted from Tables
4.5 Data preprocessing 101
G.2–G.5 (Appendix G). This result is primarily due to earlier preprocessing
by elimination procedure (E-i), the success of which is captured in E1.
Total arc reductions
As shown in Table 4.2, significant arc reductions are made by preprocessing,
especially as n increases. In general, the ratio of {the mean number of arcs
created} to {the complete arc set}, |A|m , reduces as n increases. Ultimately,
this arc reduction results in both fewer variables and constraints in all MIP
models tested.
BKA n25 n50 n100
Mean # arcs created, |A| 199 500 1,533 3,589
m = n(n+ 1) 306 650 2,550 10,100
Ratio |A|m 0.65 0.77 0.60 0.36
Table 4.2: Ratio of mean arcs created to the complete arc set, |A|m .
In Chapter 7 a scheduling-based branch-and-bound method is proposed, and
is investigated via a comprehensive computational study in Chapter 8. As
will be evident in Chapter 7 and noted in Section 8.5.1, this arc reduction
also significantly reduces the ultimate size of a scheduling B&B tree. The
decreasing ratio implies that, on average, proportionally fewer branches will
exist between each level of the B&B tree as n increases, though it is expected
that the mean number of branches out of each node would still increase
with n.
Preprocessing by time consumption
Table 4.3 summarises the key preprocessing times recorded and Table 4.4
shows the breakdown of time spent in each component of the preprocess-
ing procedure. The majority of preprocessing time is in TE3 and TEST ,
that is, performing the concatenation arc elimination procedure (E-ii) when
|Q| = 2, and in the associated earliest start time calculations. Both TE3
and TEST increase dramatically as n increases; calculating EST4(i, j, k, l)
for all i, j, k, l ∈ V is an O(n4) procedure (recall n = |V |) as is procedure
(E-ii) when |Q| = 2. Since EST4(i, j, k, l) is required to perform the con-
102 FORMULATIONS OF THE SOP-TW
catenation arc elimination procedure (E-ii) when |Q| = 2, it would be very
time consuming to perform the (E-ii) procedures on larger data sets. Given
E2=0 for all data sets and E3 is relatively small compared with E1, it is
unlikely that performing these concatenation arc elimination procedures will
be worthwhile for larger problem instances.
Notation Description
TTW Time spent constructing PTW
TALL Time spent constructing PALL
T⇀R Time spent performing rank ordering
T a∗ Time spent updating release dates
T b∗ Time spent updating due dates
TE1 Time spent eliminating arcs due to a precedence chain (E-i)
TE2 Time spent eliminating arcs due to concatenation (E-ii) where |Q| = 1
TE3 Time spent eliminating arcs due to concatenation (E-ii) where |Q| = 2
TEST Time performing EST2, EST3 and EST4 calculations defined in Alg. 7
Table 4.3: Notation for preprocessing times (all times are in seconds).
Now that all test problem instances have been preprocessed, the solution
techniques presented in this thesis will be trialled on the preprocessed in-
stances. To start, a computational study of the two compact MIPs from
Section 4.2 is presented in the next section.
4.6 Computational study of the compact formula-
tions
In this section the two compact MIPs are investigated via a computational
study. The machine and optimiser specifications used for all experiments are
given in §4.6.1. Each of the two compact MIPs are tested with the two sets of
precedence constraints: the original precedence set P , and the extended set
of precedences constructed during preprocessing PALL. A summary of the
four MIPs studied is given in §4.6.2. An investigation of the LP relaxations
of the MIPs is reported in §4.6.3, while the performance of the MIPs are
tested and compared in §4.6.4.
4.6 Computational study of the compact formulations 103
BKA n25 n50 n100
Mean TTW 0 <0.01 <0.01 0.01
(as a % of mean total time) (0%) (0.02%) (0.02%) (0.01%)
Mean TALL <0.001 <0.01 0.02 0.35
(as a % of mean total time) (0.28%) (0.19%) (0.21%) (0.23%)
Mean T⇀R 0.012 0.03 0.08 0.64
(as a % of mean total time) (7.59%) (3.67%) (0.78%) (0.43%)
Mean T a∗ 0.002 0.01 0.02 0.40
(as a % of mean total time) (1.34%) (1.59%) (0.20%) (0.27%)
Mean T b∗ 0.001 <0.01 0.01 0.12
(as a % of mean total time) (0.80%) (0.21%) (0.12%) (0.08%)
Mean TE1 0.004 0.05 0.16 0.64
(as a % of mean total time) (2.40%) (5.57%) (1.56%) (0.43%)
Mean TE2 0.004 0.07 0.12 1.10
(as a % of mean total time) (2.21%) (7.78%) (1.18%) (0.73%)
Mean TE3 0.095 0.54 6.69 91.42
(as a % of mean total time) (57.71%) (59.00%) (64.05%) (60.96%)
Mean TEST 0.045 0.20 3.33 55.27
(as a % of mean total time) (27.67%) (21.97%) (31.89%) (36.86%)
Mean total time 0.164 0.91 10.45 149.95
Table 4.4: Breakdown of preprocessing times by procedure (seconds).
104 FORMULATIONS OF THE SOP-TW
4.6.1 Machine and optimiser specifications
All code was implemented in C and compiled with Microsoft Visual Studio
2005 Version 8.0. The LPs and MIPs were solved using IBM R©ILOG R©CPLEX R© Callable Library Version 12.1 [83] on a PC with an Intel R©Xeon R©CPU 2.33 GHz and 3.25GB of RAM running Windows XP Professional SP3
(32 bits), with parameter CPX PARAM NODEFILEIND set to 3 (node files are
transferred to disk and compressed) and parameter CPX PARAM THREADS set
to 1 (CPLEX uses a single thread). All other parameters are at default
settings unless otherwise noted.
4.6.2 Summary of compact MIP methods tested
Table 4.5 provides a summary of the compact MIP methods tested, along
with a description of each method as applied to a SOP-TW instance.
Name Method with description as applied to a SOP-TW instance
M1 MIP1 Ponly: Solve MIP1 with precedence set P only (αij)
M2 MIP1 PrecAll: Solve MIP1 with precedence set PALL (αij)
M3 MIP2 Ponly: Solve MIP2 with precedence set P only (αij)
M4 MIP2 PrecAll: Solve MIP2 with precedence set PALL (αij)
Table 4.5: Summary of compact MIP methods.
Throughout this thesis, M1 will refer to Method 1 (MIP1 with P ), M2 will
refer to Method 2 (MIP1 with PALL), M3 will refer to Method 3 (MIP2
with P ) and M4 will refer to Method 4 (MIP2 with PALL).
4.6.3 LP relaxation results, discussion and conclusions
In this section the quality and speed of the LP relaxation of the four MIP
methods are reported; the raw results tables are in Appendix H. The nota-
tion used in the tables throughout this section is summarised in Table 4.6.
4.6 Computational study of the compact formulations 105
Notation Description
Group Data group name
AP LP relaxation of the Assignment Problem
LP1 LP relaxation of the MIP in Method 1 (MIP1 Ponly)
LP2 LP relaxation of the MIP in Method 2 (MIP1 PrecAll)
LP3 LP relaxation of the MIP in Method 3 (MIP2 Ponly)
LP4 LP relaxation of the MIP in Method 4 (MIP2 PrecAll)
#Imp > 0 Number of instances where PALL version is stronger
max. %Imp Maximum percentage improvement of LP bound by PALL version
Presolve OFF Solution time when presolve is turned off
Presolve ON Solution time when presolve is turned on∑|NZ| Total number of nonzero LP relaxation times (by method)
TOTAL Total time spent performing LP relaxations (by method)
Table 4.6: Notation for LP results tables (all times are in seconds).
4.6.3.1 LP lower bounds
The relative strength of the various MIP formulations can be evaluated by
comparing the value of the corresponding LP relaxations; since the objective
function is being minimised, each LP value provides a lower bound (LB) on
the optimal value of the MIP. If formulation F1 always yields a larger LB
than formulation F2, then F1 is a stronger formulation than F2.
For the four MIP methods in Table 4.5, there are two factors that affect the
strength of the LB: the underlying MIP model (that is, MIP1 or MIP2 )
and the underlying precedence set (that is, P or PALL). As noted in Sec-
tion 4.2.3, MIP2 is expected to provide stronger lower bounds than MIP1.
Since P ⊆ PALL, a formulation with precedence set PALL is expected to be
stronger than the same formulation with precedence set P . The quality of
these two strengthenings on the four data groups is now discussed.
P vs. PALL
Table 4.7 shows the relative improvement gained by using PALL (as in M2
and M4) rather than P (as in M1 and M3). Since P = PALL for the BKA
data sets (noted in Section 4.5.4) this row of the table is not applicable
106 FORMULATIONS OF THE SOP-TW
(NA). For the other data groups (n ≥ 25), many problem instances were
strengthened by using PALL rather than P ; when MIP1 was the underlying
MIP, the percentage of instances that had a better LB due to PALL were
49%, 70% and 95% for n25, n50 and n100, respectively. Similarly, when
MIP2 was the underlying MIP, the percentage of instances that had a better
LB were 52%, 73% and 97% for n25, n50 and n100, respectively.
MIP1 : LP2−LP1 MIP2 : LP4−LP3
Data group #Imp > 0 max. %Imp #Imp > 0 max. %Imp
BKA (35 instances) NA NA NA NA
n25 (90 instances) 44 (49%) 0.274 47 (52%) 0.258
n50 (60 instances) 42 (70%) 0.118 44 (73%) 0.213
n100 (60 instances) 57 (95%) 0.064 58 (97%) 0.073
Table 4.7: Relative improvement gained by using PALL (as in M2 and M4)
rather than P (as in M1 and M3), by data group.
Even though the percentage of instances strengthened increases as n in-
creases, the size of the improvement decreases as n increases. Moreover,
since the maximum percentage improvement of any problem instance is
only 0.274%, expanding P to PALL (i.e. expanding the explicit set of prece-
dences to include all other implicit precedence relations) only offers a minor
strengthening of the underlying MIP.
Finally, it is also worth noting that the frequency and magnitude of the
strengthening on offer is approximately the same for both MIP formulations.
MIP1 vs. MIP2
The box plots3 in Figure 4.1 show the relative strength of MIP1 and MIP2
LP lower bounds. In each subplot, box plot 1 shows the percentage im-
provement of MIP2 over MIP1 when the precedence set is P , while box
3These box plots were generated in MATLAB Version 7.11.0.584 (R2010b) with default
settings. The edges of a box are the 25th and 75th percentiles (q1 and q3, respectively),
and the line within a box is the median. The default maximum whisker length is 1.5,
thus data points are marked as outliers if they are greater than q3 + 1.5(q3 − q1) or less
than q1− 1.5(q3− q1). The end point of each whisker is the most extreme data point not
classified as an outlier.
4.6 Computational study of the compact formulations 107
plot 2 shows the percentage improvement of MIP2 over MIP1 when the
precedence set is PALL. As seen in Table 4.7, the improvement gained by
using PALL rather than P is less than 0.3% for all problem instances, thus
there is very little difference between the two box plots in each subplot.
0
5
10
15
1 2
Perc
enta
geim
prov
emen
tM
IP1
vs M
IP2
(b) n25
0
2
4
6
8
1 2
Perc
enta
geim
prov
emen
tM
IP1
vs M
IP2
(c) n50
0
1
2
3
4
5
6
1 2
Perc
enta
geim
prov
emen
tM
IP1
vs M
IP2
(d) n100
0
200
400
600
800
1 2
(a) BKA
Perc
enta
geim
prov
emen
tM
IP1
vs M
IP2
Figure 4.1: Relative strength of MIP1 and MIP2 LP lower bounds. Sub-
plots are arranged by data group: (a) BKA, (b) n25, (c) n50, and (d) n100.
Entries in box plot 1 of each subplot are calculated as 100(LP3−LP1LP1 ), i.e. per-
centage improvement of MIP2 over MIP1 when precedence set is P ; entries
in box plot 2 of each subplot calculated as 100(LP4−LP2LP2 ), i.e. percentage
improvement of MIP2 over MIP1 when precedence set is PALL.
As noted in Section 4.2.3, MIP2 is expected to provide stronger lower bounds
than MIP1. As can be seen in Figure 4.1, the minimum percentage improve-
ment is greater than, but close to, zero for all four data groups, as expected.
The fact that the minimums are close to zero indicates that for some problem
instances within each data group, there is very little difference in the lower
108 FORMULATIONS OF THE SOP-TW
bounds of the two underlying MIPs. Interestingly, the maximum percentage
improvement decreases as n increases; this indicates that the difference in
the relative strength of the two MIPs diminishes as n increases.
For n ≥ 25, the median is close to 2%: 1.5%, 1.9% and 2.3% for n25,
n50 and n100, respectively. In other words, the LP relaxation of MIP2
is at most 2.3% stronger than the LP relaxation of MIP1 for 50% of the
problem instances. In contrast, the median for the BKA data group is
almost 18% and the range is almost 820%; this is unsurprising given the very
weak AP relaxations (evident in Table H.5) that underpin MIP1 and MIP2,
proportionally larger |P | compared to our data sets (noted in Section 4.5.4),
as well as the large deadlines in the BKA data sets.
4.6.3.2 LP solve times
For each method, the LP relaxation was solved twice: once with CPLEX
presolve turned off, and again with presolve turned on. The total number
of nonzero4 LP relaxation times are shown in Table 4.8, and the total time
spent performing the LP relaxations are shown in Table 4.9. As anticipated,
the solve times with presolve on are significantly faster than the solve times
with presolve off.
The number of nonzero LP relaxation times often increases when PALL is
used instead of P , regardless of presolve and the underlying MIP model.
Moreover, the number of nonzero LP relaxation times almost always in-
creases when MIP2 is used instead of MIP1, regardless of presolve and the
underlying precedence set. These observations are also true for the total LP
solve times; using PALL and\or MIP2 significantly increases the total solve
time of the LP relaxations.
4.6.3.3 Summary of the LP results
Throughout Section 4.6.3, the quality and speed of the LP relaxation of each
of the four compact MIP methods has been tested. In terms of LB quality,
expanding P to PALL only offered a minor strengthening of the underlying
MIP; even though the percentage of instances strengthened increased with
4Some LP relaxation times are so fast they are reported as zero seconds.
4.6 Computational study of the compact formulations 109
Presolve OFF Presolve ON
Data group AP LP1 LP2 LP3 M4 AP LP1 LP2 LP3 LP4
BKA (35 instances) 0 2 2 30 30 0 0 0 1 1
n25 (90 instances) 9 27 18 90 90 2 0 5 3 3
n50 (60 instances) 11 57 60 60 60 2 4 2 6 10
n100 (60 instances) 25 60 60 60 60 1 12 14 20 36∑|NZ| (out of 245) 45 146 140 240 240 5 16 21 30 50
Table 4.8: Total number of nonzero LP relaxation times by data group.
Presolve OFF Presolve ON
Group AP LP1 LP2 LP3 LP4 AP LP1 LP2 LP3 LP4
BKA 0 0.03 0.03 0.52 0.52 0 0 0 0.02 0.02
n25 0.14 0.42 0.28 4.09 5.53 0.03 0 0.08 0.05 0.05
n50 0.17 0.97 1.56 29.41 59.88 0.03 0.06 0.03 0.09 0.16
n100 0.39 3.89 8.72 170.55 820.41 0.02 0.19 0.22 0.31 0.58
TOTAL 0.70 5.31 10.59 204.57 886.34 0.08 0.25 0.33 0.47 0.81
Table 4.9: Total LP relaxation times (seconds) by data group.
n, the size of the improvement decreased as n increased. Indeed, since
the maximum percentage improvement of any problem instance was only
0.274%, PALL offered very little improvement for the extra time required.
This was especially true for MIP2 ; for example, with presolve off, the time
to solve all instances with MIP2 and precedence set PALL is 886.34 seconds,
compared with 204.57 seconds for MIP2 and precedence set P (presolve on:
0.81 seconds and 0.47 seconds, respectively).
As expected, MIP2 did provide stronger lower bounds than MIP1 for many
instances. This was particularly noticeable for the BKA data sets. For
each of the other data groups, the LP relaxation of MIP2 was at most 2.3%
stronger than the LP relaxation of MIP1 for 50% of the problem instances.
The maximum percentage improvement in the LB decreased as n increased,
so the difference in the relative strength of the two MIPs diminished as n
increased. Futhermore, since the time to solve MIP2 significantly increased
as n increased, the overall benefit (a trade-off between quality and speed)
of using MIP2 rather than MIP1 diminished as n increased.
As an example, consider the times and LBs of the n100 instances: the total
LP solve time of all 60 instances (presolve off) are 3.89 seconds (M1: MIP1
110 FORMULATIONS OF THE SOP-TW
with P ), 8.72 seconds (M2: MIP1 with PALL), 170.55 seconds (M3: MIP2
with P ) and 820.41 seconds (M4: MIP2 with PALL). Despite a significant
increase in solve time, the LBs provided by M2 are at most 0.064% stronger
than those provided by M1, while the LBs provided by M4 are at most
0.073% stronger than those provided by M3. Similarly, the LBs provided by
M3 and M4 are at most 6.5% stronger than those provided by M1 and M2
but take significantly longer to solve.
4.6.3.4 LP conclusions
As noted at the start of this chapter, at least one MIP formulation is re-
quired for use in the B&B method proposed in Chapter 7. In particular, an
LP relaxation of a MIP will be solved at every node of a B&B tree. Conse-
quently, the LP relaxation must be fast-solving. Based on the results of this
section, the LP relaxation of Method 1 (MIP1 with precedence set P ) is the
most likely candidate for this purpose. This is supported by the evidence in
Figures 8.2 and 8.3 where Methods 2, 3 and 4 are also trialled within the
B&B method.
As will be shown in Section 8.5, on average, more than 10,000 LPs are solved
for each n25 and BKA data set, and 100,000s of LPs are solved for each
n50 and n100 data set. Consequently, even a small increase in LP solve time
will have a massive impact on the total solve time of the B&B scheme. This
demonstrates why—in this context—the speed of the LP relaxation is more
important than the strength. Indeed, unless the LBs are very strong—which
would significantly increase the LP solve time—not many B&B nodes will
be pruned by these LBs (for example, see Table 8.15 on page 273).
Finally, since the LP solve times with presolve on are significantly faster,
presolve will remain on—for both LPs and MIPs—for the remainder of this
thesis.
4.6.4 MIP results, discussion and conclusions
In this section the performance of the MIP methods are tested and com-
pared.
4.6 Computational study of the compact formulations 111
4.6.4.1 Time limits for MIP runs
Since each MIP will take considerably longer to solve than the corresponding
LP relaxation, time limits that depend on problem size are imposed; these
time limits are summarised in Table 4.10. The maximum solve time is
set to 1,800 seconds for each method when applied to each BKA and n25
problem instance; this ensures that most of these instances can be solved to
optimality. As the difficulty of solving a problem instance generally increases
non-linearly in n, the limit is set to 22.368n ln(n) for n ≥ 25 (as opposed to
linear limit = 72 n; 22.368 is the constant that achieves limit = 1,800 for
n25). While most n50 and n100 instances could not be solved to optimality
within the limit, the limit was sufficient to ensure that the performance of
the methods tested could be compared and reasonable conclusions drawn.
Data group names BKA n25 n50 n100
Time limit (CPU seconds) 1,800 1,800 4,375 10,300
Table 4.10: Time limit for each method tested (per instance) by group.
4.6.4.2 Comparing solver performance using performance pro-
files
Throughout this thesis performance profiles [84] are used to compare the
relative performance of various methods (solvers) on the problem instances
described in Section 3.5. For each method being tested, a performance profile
graphically describes the proportion of problem instances (y-axis) that are
within a certain ratio (x-axis) of the best method; the definition of best may
vary, although it is usually in terms of solve time or solution quality.
Solve times. When performance is measured by solve time, the comput-
ing time required to solve problem p with solver s, given by tp,s, is com-
pared to the best time of any solver on problem p. Consequently, Dolan and
More [84] define the time-based performance ratio of solver s on problem p
as
rp,s =tp,s
min{tp,s : s ∈ S}(4.15)
112 FORMULATIONS OF THE SOP-TW
where S is the set of all solvers being compared. By definition, rp,s ≥ 1.
To evaluate the effectiveness of solver s ∈ S across a set of problem instances,
P, Dolan and More define the cumulative distribution function for the time-
based performance ratio, ρs, such that for solver s
ρs(τ) =1
|P|size{p ∈ P : rp,s ≤ τ} (4.16)
is the probability that performance ratio rp,s is within a factor of τ ∈ R of
the best ratio. In other words, it is the proportion of problems that s can
solve, if for each problem, solver s is given τ times the minimum solve time
required. The probability that solver s is the fastest solver is given by ρs(1).
When graphed (for example, see Figure 4.3 on page 114) the performance
of different solvers are easily compared; for small ratios, solvers with high
cumulative probabilities indicate relative success. Moreover, if the plot for
solver s1 is always strictly behind the plot for solver s2 (e.g. compare the
plot of Method 7 with the plot of Method 5 in Figure 8.2 on page 234) then
solver s1 is always outperformed by solver s2.
Lower bounds. For data sets where all solvers time out, the time-based
performance ratio as given in (4.15) is not useful. Consequently, we define
the value-based performance ratio of solver s on problem p as
rp,s = 100× LBp − LBp,s
LBp
where LBp,s is the lower bound at termination for solver s on problem p,
and LBp = max{LBp,s : s ∈ S} is the best lower bound at termination of
any solver in S for problem p. By definition, rp,s ≥ 0 as the lower bound gap
for the best solver will be zero. As per (4.16), the cumulative distribution
function of rp,s is defined as
ρs(τ) =1
|P|size{p ∈ P : rp,s ≤ τ}. (4.17)
The probability that solver s terminates with the largest lower bound is
given by ρs(0).
4.6 Computational study of the compact formulations 113
4.6.4.3 Results for BKA data group
Since P = PALL for the BKA data sets (noted in Section 4.5.4) Method 1
is equivalent to Method 2, and Method 3 is equivalent to Method 4. As a
result, only Methods 1 and 3 are referred to in this section. The time-based
performance profile comparing the two MIP methods is shown in Figure 4.2.
0 2 4 6 8 10 12 14 16 18 200
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
Time/BestTime
Pro
port
ion o
f in
sta
nces
Method 1
Method 3
Figure 4.2: Performance profile for the BKA instances, Methods 1 and 3.
All instances were solved to optimality within the time limit of 1,800 seconds,
except for one dataset (#15) on Method 1. For this problem instance, the
IP gap was 20.92%, however the best upper bound was the optimal value,
thus the gap was due to the lower bound.
Method 1 was the best solver on 29% of the problems (10 out of 35) while
Method 3 was the best solver on 71% of the problems (25 out of 35). Con-
sequently, Method 3 outperformed Method 1, as is evident in Figure 4.2.
This is in line with the LP results presented in Section 4.6.3, where the LP
relaxation of MIP2 was more than 18% stronger than the LP relaxation
of MIP1 for 50% of the problem instances, and was 820% stronger on one
problem instance. In contrast, the median was close to 2% for each of our
three data groups, indicating that the relative performance of MIP2 over
MIP1 may not be similar for our data sets; indeed, this is evident in the
next section.
114 FORMULATIONS OF THE SOP-TW
4.6.4.4 Results for n25 data group
Almost all instances were solved to optimality for most methods. However,
two of the 90 problem instances (n25 1, #1; n25 7, #2) were not solved to
optimality within the 1,800 second time limit by any of the four methods.
The relative performance of the four MIP methods on the remaining 88
instances are compared via a time-based performance profile as shown in
Figure 4.3.
0 2 4 6 8 10 12 14 16 18 200
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
Time/BestTime
Prop
ortio
n of
inst
ance
s
Method 1Method 2Method 3Method 4
Figure 4.3: Performance profile for the n25 instances, Methods 1–4.
Based on the performance profile, MIP1 (M1 and M2) outperforms MIP2
(M3 and M4); MIP1 delivers the best solve time for 90.9% of instances.
Comparing the effect of precedence set, MIP1 with precedence set P out-
performs MIP1 with precedence set PALL (47.7% for M1 compared with
43.2% for M2); similarly, MIP2 with precedence set P outperforms MIP2
with precedence set PALL (5.7% for M3 compared with 3.4% for M4).
Several problem instances were not solved to optimality within the 1,800
second time limit. In particular, of the 90 instances tested, Methods 1 and
2 both had four instances time out, while Method 3 and 4 both had five
instances time out. The unrestricted solve time of these instances are in
Table 4.11, where T Mi is the MIP solve time for method i; “NA” indicates
that the solve time for that (instance, method) combination are less than
1,800 seconds.
4.6 Computational study of the compact formulations 115
Class # & name Data set # M1 M2 M3 M4
1, n25 1 1 8,443.56 12,981.84 7,121.23 3,807.70
2, n25 2 4 NA NA 1,918.09 NA
2, n25 2 8 5,582.14 6,805.73 NA NA
6, n25 6 1 2,094.41 NA 12,395.56 8,172.75
6, n25 6 5 NA NA NA 1,834.84
7, n25 7 2 3,646.92 4,822.98 12,559.28 16,385.83
9, n25 9 5 NA 6,472.83 NA NA
9, n25 9 10 NA NA 1,953.95 2,623.19
Table 4.11: MIP solve times that exceed 1,800 seconds for n25 instances.
The results in Table 4.11 demonstrate that some instances are significantly
harder to solve than others. Moreover, these unrestricted solve times are
provided so that other methods presented later in this thesis can be com-
pared to the worst case MIP results; see Section 8.3.2 (page 236).
4.6.4.5 Results for n50 data group
Table 4.12 summarises the solution status of the 60 problem instances for
each of the four MIP methods at termination, where OPT is the number
of instances solved to optimality, FEAS is the number of instances that
terminate with at least one feasible solution found but optimality was not
proved, and NO SOL is the number of instances where no feasible solution
was found.
Status at termination
OPT FEAS NO SOL
Met
hod
M1 0 5 55
M2 2 12 46
M3 0 1 59
M4 0 1 59
Table 4.12: Solution status summary for the n50 data sets (60 instances).
116 FORMULATIONS OF THE SOP-TW
From Table 4.12 it is clear that none of the MIPs were successful at consis-
tently finding a feasible solution within the time limit, though MIP1 (M1
and M2) did outperform MIP2 (M3 and M4).
For instances where no feasible solution was found, the quality of the LB
at termination can be compared, as shown in Figure 4.4 for all 60 of the
n50 instances. For all instances, the method with the worst lower bound
is always within 6.5% of the best lower bound for that problem instance;
Figure 4.4 shows that M4 has the maximum LB gap. Overall, MIP1 (M1
and M2: 63.3%) outperforms MIP2 (M3 and M4: 36.7%) in LB quality
at termination. Individually, each method terminated with the best LB as
follows: M1, 25.0%; M2, 38.3%; M3, 28.3%; and M4, 8.3%.
0 1 2 3 4 5 6 70
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
Percentage LB gap from best LB, 100*(BestLB−LB)/(BestLB)
Prop
ortio
n of
inst
ance
s
Method 1Method 2Method 3Method 4
Figure 4.4: Comparison of lower bound quality for all n50 instances.
4.6.4.6 Results for n100 data group
None of the n100 problem instances solved to optimality within the time
limit for any method. Moreover, no feasible solutions were found for any
instance with any method prior to termination. Figure 4.5 illustrates the
quality of the lower bounds at termination for all 60 of the n100 instances.
For all n100 instances, the method with the worst lower bound is always
within 4.3% of the best lower bound for that problem instance. Overall,
MIP1 (M1 and M2: 81.7%) outperforms MIP2 (M3 and M4: 18.3%) in LB
4.6 Computational study of the compact formulations 117
quality at termination. Individually, each method terminated with the best
LB as follows: M1, 38.3%; M2, 43.3%; M3, 15.0%; and M4, 3.3%.
0 1 2 3 4 5 6 70
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
Percentage LB gap from best LB, 100*(BestLB−LB)/(BestLB)
Prop
ortio
n of
inst
ance
s
Method 1Method 2Method 3Method 4
Figure 4.5: Comparison of lower bound quality for all n100 instances.
CPLEX’s default working memory is 128MB; when the size of the tree ex-
ceeds 128MB, some nodes are transferred to node files which are compressed
and stored in memory (i.e. the default setting of CPX PARAM NODEFILEIND
is 1). To extend memory without increasing working memory, we set pa-
rameter CPX PARAM NODEFILEIND to 3 so that node files are transferred to
disk and compressed. Even then, CPLEX ran out of memory on the fourth
instance of class n100 3 with Method 3 after 3270.09 seconds, terminat-
ing with no feasible solutions. No doubt, many other 100 job (instance,
method) combinations would run out of memory if given unrestricted time
limits. As a result, methods which attempt to either run to optimality or
terminate with at least one feasible solution within a reasonable time limit
are sought in the remainder of this thesis. These MIP results will be used
as a benchmark for those new methods.
4.6.4.7 Summary of the MIP results
While the MIP results were promising for n25 and the BKA data sets,
the MIPs proved to be highly unsuccessful at finding a feasible solution
within the time limit for the 50 and 100 job problem instances. In the
original problem that motivated this thesis, many SOP-TWs will need to be
118 FORMULATIONS OF THE SOP-TW
solved so faster solution techniques are required. This motivates the need
for other solution techniques that can find feasible solutions quickly and
prove optimality within a reasonable amount of time. Several methods that
attempt to meet both of these goals are presented in the following chapters.
4.7 Chapter summary and an overview of
solving the SOP-TW
In this chapter, three integer programming formulations of the SOP-TW
were presented, and the merits and drawbacks of each formulation were
discussed. To aid efficient implementation of the compact formulations and
the other solution techniques to come, a data preprocessing routine was also
presented, along with a computational study that showed the efficacy of the
routine.
A computational study of the compact formulations evaluated four MIP
methods and their LP relaxations, where each of the two compact MIPs
was solved with each of the two sets of precedence relations, P and PALL.
As noted at the start of this chapter, at least one MIP formulation is re-
quired for use in the B&B method proposed in Chapter 7. In particular, an
LP relaxation of a MIP will be solved at every node of a B&B tree. Con-
sequently, the LP relaxation must be fast-solving. Based on the results of
this chapter, the LP relaxation of Method 1 (MIP1 with precedence set P )
is the most likely candidate for this purpose.
While the MIP results were initially promising for the n25 and BKA data
sets, the MIPs proved to be highly unsuccessful at finding a feasible solution
within the time limit for the 50 and 100 job problem instances. This moti-
vates the need for other solution techniques that can find feasible solutions
quickly and prove optimality within a reasonable amount of time.
There are many Operations Research techniques—both heuristic and exact—
worth applying to solve the SOP-TW. Several heuristics for finding feasible
solutions to the SOP-TW are presented in Chapter 5. In Chapter 6, these
heuristics will be shown to be much more effective than the pure MIPs,
though they still struggle to find feasible solutions for very large problem
4.7 Chapter summary and an overview of solving the SOP-TW 119
instances (when n is 100). Instead, a more promising B&B approach based
on scheduling is pursued in Chapter 7, and investigated via a comprehensive
computational study in Chapter 8.
Many other optimisation techniques are also worthy of investigation. No-
tably, branch-and-cut [85]—a hybrid of cutting plane methods and branch-
and-bound—is a technique that has been successfully applied to many prob-
lems, including the ATSP-TW [8, 39]. One advantage of a branch-and-cut
scheme is that it can be faster than a pure LP-based B&B scheme. How-
ever, we decided against implementing branch-and-cut for several reasons.
Predominantly, it can be very time-consuming to implement and requires
highly sophisticated programming skills. Instead, we believe that success
can be more readily—and simply—attained by exploring a more natural
scheduling-based B&B approach, which is discussed in Chapter 7.
120 FORMULATIONS OF THE SOP-TW
Chapter 5
HEURISTICS
A number of heuristics for finding feasible solutions to the SOP-TW are presented in
this chapter. Firstly, an insertion-based construction heuristic is given. A family of
IP-based heuristics for finding feasible solutions faster is also proposed. An extensive
computational study of the heuristics is presented in the next chapter.
5.1 Introduction
“Modern heuristic search methods” [86] defines a heuristic as follows:
A heuristic technique (or simply, a heuristic) is a method
which seeks good (i.e. near-optimal) solutions at a reasonable
computational cost without being able to guarantee optimality,
and possibly not feasibility. Unfortunately, it may not even be
possible to state how close to optimality a particular heuristic
solution is.
Despite the absence of quality and feasibility guarantees, heuristics can be
extremely important. For example, heuristics are often incorporated within
an exact method, such as branch-and-bound (B&B). At the root node, a
good feasible solution can be used for reduced-cost variable fixing; this re-
duces the size of the linear program at the root, which may ultimately lead
to considerable time savings. Similarly, a heuristic may be called at other
nodes within the B&B tree to seek a good feasible solution that can be
121
122 HEURISTICS
used to prune nodes; this will reduce the size of the tree and may signif-
icantly reduce total solve time. Naturally, a trade-off occurs between the
cost (usually time) of using a heuristic which has no guarantees, compared
with the potential benefit of finding a feasible solution. As will be shown
in Sections 6.4, 6.5 and 8, computational experiments may help to identify
circumstances where the inclusion of a particular heuristic is worthwhile.
A primal heuristic is a method that attempts to find integer feasible solu-
tions. While some primal heuristics are designed to find feasible solutions
for a specific problem, others are generic procedures that can be applied to
a variety of different problems. Examples of the latter type include the Fea-
sibility Pump [87], Relaxation Induced Neighborhood Search (RINS) [88],
and Local Branching [89]. For an overview of a variety of primal heuristics
for mixed integer programs see Berthold [90]. See the main literature review
in Section 2.4 for the most relevant heuristic references for the ATSP-TW,
SOP-TW and similarly difficult related problems.
It is worth noting that some primal heuristics—such as Local Branching and
RINS—try to improve an existing feasible solution. Since finding feasible
solutions is particularly difficult for large SOP-TW instances, we focus in-
stead on heuristic methods that attempt to find an initial feasible solution,
that is, heuristics which do not rely on a feasible solution as a starting point.
The remainder of this chapter is organised as follows. Firstly, in Section 5.2
two types of partial schedules are described; these will be used in the
construction heuristic (§5.3) and the scheduling-based branch-and-bound
scheme (Chapter 7). In Section 5.3 construction heuristics are discussed
and an insertion-based construction heuristic for the SOP-TW is presented.
In Section 5.4 an IP-based heuristic is given. This heuristic solves a modi-
fied MIP which acts as a surrogate of the equivalent true MIP. When tuned
appropriately, the modification acts like a catalyst, often enabling feasible
solutions to be found faster than solving the equivalent true MIP. The trade-
off is solution quality; the surrogate MIP has a modified objective function,
so any feasible solutions are likely to be suboptimal. An extensive compu-
tational study of these heuristics is performed in Chapter 6, along with a
discussion of key findings and suggestions for further work on heuristics for
the SOP-TW.
5.2 Partial schedules 123
5.2 Partial schedules
Recall that a solution to the SOP-TW is a permutation of the jobs in the
set V , also known as an ordering or schedule (these terms will be used
interchangeably). Not all permutations are feasible solutions to the SOP-
TW. However, as shown in Section 2.1, the earliest start time of each job in
a given permutation can be calculated sequentially. The permutation is a
feasible ordering of the jobs if the associated start time of each job is within
its time window while simultaneously satisfying all precedence relations.
Since an ordering of the jobs may be constructed in stages, an incomplete
ordering (an ordering that does not contain all of the jobs in V ) may be
constructed. An incomplete ordering can also be called a partial schedule.
As with a complete schedule, an earliest possible start time for each job in
a partial schedule can be calculated assuming that the jobs appear in that
order in the final schedule. In this thesis, a partial schedule is considered
feasible if the associated start time of each job in the partial schedule is
within its time window while simultaneously satisfying all precedence rela-
tions. In some cases it may be appropriate to only require the precedence
relations to be satisfied, where one or both jobs of a precedence-pair are in
the partial schedule, but this will be noted where appropriate (such as in
Section 5.3.2.1).
A forward partial schedule is an incomplete ordering of the jobs in V , where
it is assumed that these jobs will exactly form the beginning of a com-
plete schedule. Thus any additions to a forward partial schedule will al-
ways be added to the end of the incomplete schedule. For example, if⇀S= (v1, v2, . . . , vm−1, vm) is a forward partial schedule with m jobs, then the
first m jobs in the final (complete) schedule will be (v1, v2, . . . , vm−1, vm).
Thus the m-th job added to a forward partial schedule will always be placed
in the m-th position of the complete schedule. This type of partial sched-
ule is used extensively in the scheduling-based branch-and-bound scheme
presented in Chapter 7.
Consider partial schedule S = (v1, v2, . . . , vm−1, vm) where vi is the job in
the i-th position and m < n. If unscheduled job j may be inserted between
any two jobs already in the schedule (so not necessarily into position m+ 1),
then adjacent jobs in the original partial schedule are not assumed to stay
124 HEURISTICS
adjacent if the partial schedule is updated. In this thesis, this type of partial
schedule is called an insertion partial schedule, and is used extensively in
Section 5.3.
5.3 Construction heuristics
As noted in Section 2.3, the SOP-TW is an NP-hard problem; even finding a
feasible solution is NP-complete in the strong sense. Despite this, heuristics
can be devised that attempt to “construct” a feasible solution for a SOP-
TW problem instance. Such algorithms, which use a series of steps and
rules to guide the generation of a feasible solution, are called construction
heuristics. For a minimisation problem, the cost of such a solution provides
an upper bound on the optimal cost. This solution and the upper bound
it provides can then be used in a number of ways, including within other
solution techniques.
If feasibility rather than optimality is the goal, a construction heuristic en-
ables the generation of a feasible solution in a systematic way. If achieving
an optimal (or near optimal) solution is the goal, a feasible solution can
provide a valuable upper bound. This upper bound can then be used within
another solution technique, for example as a cutting plane applied at the
root node of a B&B tree. This extra cut may lead to a reduction in the size
of the B&B tree and/or a faster solution time. Alternatively, information
derived from a different solution method, such as a partial solution, may be
used as input to a construction heuristic.
To demonstrate how a partial solution could be used to generate an upper
bound on the SOP-TW, consider the following example. At a node of a
B&B tree, say node i, branching information that has led to the LP at node
i can be retrieved. In other words, at this node i, the decision variables that
have been fixed and the values these variables have been fixed to can be
determined. Not all variables will be fixed, so this is only a partial solution.
However, this partial solution may be used as input to an appropriate con-
struction heuristic. If a feasible schedule is successfully constructed based
on this partial solution, the cost of the schedule is an upper bound on the
integer problem at node i and all of its descendant nodes. As with a root
5.3 Construction heuristics 125
node cut, this may aid with pruning a B&B tree, and thus reducing the size
of the B&B tree, leading to integer solutions more quickly.
5.3.1 Two rank ordering construction heuristics for the SOP
The search for a SOP-TW construction heuristic starts by looking at con-
struction heuristics for related problems. As shown in Section 2.2, one re-
laxation of the SOP-TW is the SOP (ATSP-PC). A feasible solution for the
SOP is an ordering of the jobs that respects all precedence relations. The
precedence relations can be represented by a precedence graph: each vertex
represents a job, while an arc between two vertices, say (i, j), indicates job
i must precede job j. A non-zero value on the arc, say αij , indicates by
how much i must precede j. Clearly, for a SOP instance to have a feasible
solution, the precedence graph must be acyclic.
Perhaps not surprisingly, it is easy to find a feasible solution to the SOP, if
one exists. A simple construction heuristic for the SOP begins with a given
precedence graph of a SOP instance, followed by a topological sort of the
vertices. This produces a rank ordering of the vertices, where the rank of
vertex i, ri, is the maximum number of precedence arcs in a directed path
that ends at vertex i. By sequencing the vertices—which represent jobs—
in ascending rank order (i.e. all vertices of lesser rank must be sequenced
before vertices of higher rank) a feasible solution for the SOP instance is
constructed.
An alternative ordering—which we name backward rank ordering—is where
the backward rank of vertex i, ri, is the maximum number of precedence
arcs in a directed path that starts at vertex i. By sequencing the vertices
in descending backward rank order (i.e. all vertices of higher backward rank
must be sequenced before vertices of lesser backward rank) a feasible solution
for the SOP instance is constructed.
An example of a SOP precedence graph with both rank and backward rank
shown on each vertex is given in Figure 5.1. A table summarising the value
of the ranks and backward ranks is given in Table 5.1, where R(i) is the set
of jobs with rank i, and R(i) is the set of jobs with backward rank i.
126 HEURISTICS
2
3
7
4
6
9
10
1
5 8
0,3 1,2
0,2
0,1 1,0
1,0
2,1 3,0
0,1 1,0
i1,0
LEGEND
Rank of node i
Backward rankof node i
Figure 5.1: A precedence graph for a SOP problem instance, with ranks.
i R(i) R(i)
0 {1,3,4,5} {6,8,9,10}
1 {2,6,8,10} {3,5,7}
2 {7} {2,4}
3 {9} {1}
Table 5.1: Rank and backward rank orderings of the vertices in Figure 5.1.
5.3 Construction heuristics 127
Given the precedence graph in Figure 5.1, all solutions of the form
permutation
of the jobs
in R(0)
,
permutation
of the jobs
in R(1)
,
permutation
of the jobs
in R(2)
,
permutation
of the jobs
in R(3)
are feasible solutions to the SOP; for example, (1, 3, 4, 5, 2, 6, 8, 10, 7, 9) and
(3, 5, 4, 1, 6, 10, 8, 2, 7, 9). Some solutions not of this form are also feasible;
for example, S = (1, 2, 3, 4, 5, 6, 7, 8, 9, 10) also obeys all precedence relations,
even though the corresponding ranks are r(S) = (0, 1, 0, 0, 0, 1, 2, 1, 3, 1).
Similarly, all solutions of the form
permutation
of the jobs
in R(3)
,
permutation
of the jobs
in R(2)
,
permutation
of the jobs
in R(1)
,
permutation
of the jobs
in R(0)
are feasible solutions to the SOP; for example, (1, 2, 4, 3, 5, 7, 6, 8, 9, 10) and
(1, 4, 2, 5, 7, 3, 10, 8, 9, 6). As before, some solutions not of this form are
also feasible; for example, S = (1, 2, 3, 4, 5, 6, 7, 8, 9, 10) also obeys all prece-
dence relations, even though the corresponding backward ranks are r(S) =
(3, 2, 1, 2, 1, 0, 1, 0, 0, 0).
Although these two very simple construction heuristics are guaranteed to
generate a feasible solution for feasible SOP instances, it is non-trivial to
incorporate additional steps to allow for time windows on jobs, as neces-
sary for a construction heuristic for the SOP-TW. As noted by Ascheuer,
Fischetti and Grotschel [8, p. 477], the difficulty in solving the ATSP-TW,
another relaxation of the SOP-TW, is extremely dependent on the structure
of the time windows. Consequently, although these or other SOP heuristics
can be adapted so they try to respect time windows as well as precedence
relations, they cannot guarantee that the resulting solution is feasible with
respect to the time windows of general SOP-TW problem instances. This
highlights why finding a feasible solution to the SOP-TW is NP-complete
in the strong sense.
128 HEURISTICS
5.3.2 An insertion order heuristic for the SOP-TW
In this section a SOP-TW construction heuristic based on a construction
heuristic for the ATSP-TW by Nikolakopoulos and Sarimveis [9] is pre-
sented. The algorithm is built upon the idea of an insertion order, which is
a permutation of the jobs to be scheduled, denoted by ω = (ω1, ω2, . . . , ωn).
Given an insertion order ω, jobs are sequentially inserted into an incomplete
schedule, S′, with the aim of constructing a full, feasible schedule.
To insert the i-th job, ωi, into partial schedule S′ (where (i − 1) jobs have
been successfully inserted into S′) the range of precedence-feasible insertion
positions are identified, that is, positions in S′ such that inserting job ωi
would respect all precedence relations involving job ωi and jobs already in
S′. The heuristic is greedy by inserting job ωi into the best of these positions,
where best means the position that has the smallest impact on the cost of
the new partial schedule that includes ωi. If inserting job ωi in the best
position will lead to a time window violation,1 ωi is not inserted into that
position and the next best insertion position is considered for job ωi. If
job ωi cannot be inserted into any position in S′ without violating at least
one precedence relation or time window constraint, the insertion order ω
cannot lead to a feasible schedule. The pseudo code for this procedure,
InsertionAlgorithm, is described in Algorithm 8; the details for inserting
a job into a partial schedule, InsertNextJob, is given in Algorithm 9. A
detailed description of the procedure and notation is given in Section 5.3.2.1.
To ensure an infeasible insertion order is detected as early as possible in
the algorithm, and infeasible partial schedules are not generated unneces-
sarily, it is important to use the complete set of all explicit and implicit
precedences—PALL—when inserting the next job. This is discussed in de-
tail in Section 5.3.2.4.
5.3.2.1 A detailed description of the insertion order algorithm
In this section the main components of InsertionAlgorithm (Algorithm 8,
page 129) and InsertNextJob (Algorithm 9, page 130) are discussed.
1Since waiting is permitted for early arrivals, a time window violation is caused by a
job’s earliest start time exceeding the latest start time deadline.
5.3 Construction heuristics 129
Algorithm 8: Procedure InsertionAlgorithm(insertion order ω)
Input: Insertion order, ω = (ω1, . . . , ωn) // n jobs to be scheduled
Output: Status (success or fail), and—if success—one feasible schedule and its cost
initialise
S ← void, z(S)← +∞ // empty schedule
S′ ← (v0 = depot, v1 = ω1, vn+1 = depot) // initial partial schedule
Nsch ← 1 // number of jobs successfully inserted into S′
repeat insert next unscheduled job into partial schedule S′
w ← ωNsch+1 // next job to insert based on insertion order ω
if procedure InsertNextJob(S′, w) returns success then
// job w was successfully inserted into current partial schedule
Nsch ← Nsch + 1
else
status ← fail // insertion order ω was unsuccessful
until fail to insert a job or all jobs are successfully inserted (i.e. Nsch = n)
if Nsch = n then
// A full, feasible schedule was constructed
S ← S′, z(S)← cost of S
status ← success // insertion order ω was successful
return status, S, z(S)
130 HEURISTICS
Algorithm 9: Procedure InsertNextJob(partial schedule S′, next job w)
Input: Current partial schedule S′ = (v0, v1, . . . , vk−1, vn+1); next job to insert, w
Output: Status (success or fail), and—if success—the updated partial schedule
initialiselast predecessor of w in S′, π(w)← v0, with position index ι(π(w))← 0
first successor of w in S′, σ(w)← vn+1, with position index ι(σ(w))← n+ 1
BadPositions← ∅ // set of positions w cannot be inserted
foreach i ∈ {1, . . . , k − 1} do ESTvi ← earliest start time of job vi in S′
foreach i ∈ {1, . . . , k − 1} doif (vi, w) ∈ PALL then
π(w)← vi, ι(π(w))← i // job vi is a predecessor of w
else if (w, vk−i) ∈ PALL then
σ(w)← vk−i, ι(σ(w))← k − i // job vk−i is a successor of w
// initialise the range of positions for inserting job w into S′
Λ← {ι(π(w)), . . . , ι(σ(w))− 1} // Λ will always have at least one element
foreach i ∈ Λ do
∆i = svi,w + sw,vi+1 − svi,vi+1 // cost of inserting job w after job vi
repeat attempt to insert job w into S′
// set start times to the last values accepted, given by EST
foreach i ∈ {1, . . . , k − 1} do T (vi)← EST (vi)
// the best position available is m+ 1, i.e. after job vm
m = argmini∈Λ\BadPositions{svi,w + sw,vi+1 − svi,vi+1}// calculate T (w) and recalculate T (vi) for each i = m+ 1, . . . , k − 1
T (w)← earliest start time of job w if inserted in position m+ 1
foreach i ∈ {m+ 1, . . . , k − 1} doT (vi)← new earliest start time of job vi if w is inserted in position m+ 1
if inserting job w into position m+ 1 causes a time window violation then
// T (w) > bw and/or T (vi) > bvi for at least one i ≥ m+ 1
BadPositions← BadPositions ∪ {m} // disallow position after job vm
else
// inserting job w into position m+ 1 is feasible, so update S′
// move each job after position m+ 1 up one position
foreach i = k + 1, . . . ,m+ 2 do vi ← vi−1
vm+1 ← w // insert job w into position m+ 1
// update start time of each job in the partial schedule
foreach i ∈ {m+ 1, . . . , k} do EST (vi)← T (vi)
status ← success // job w was successfully inserted into S′
until successfully insert job w or |Λ| = |BadPositions|if |Λ| = |BadPositions| then
// could not insert job w so insertion order ω was unsuccessful
S′ ← void, status ← fail
return status, S′
5.3 Construction heuristics 131
Initialisation: insert first job so v1 = ω1.
To initialise the partial schedule S′, the first non-trivial job in the schedule
is set to the first job in the insertion order. That is, let
S′ = (v0 = depot, v1 = ω1, vn+1 = depot)
be the first partial schedule, where the depot is a dummy start and finish
job. The cost of this partial schedule is
sv0,v1 + pv1 + sv1,vn+1 = sdepot,ω1 + pω1 + sω1,depot,
where pvi is the processing time of job vi and svi,vi+1 is the sequence-
dependent setup time between job vi and job vi+1. Since the depot job
is a dummy job, sdepot,vi = svi,depot = 0 for all i ∈ {1, . . . , n}.
Insert second job from insertion order, ω2.
The next job to be inserted is ω2. If there is no precedence relation between
ω1 and ω2 (i.e. (ω1, ω2), (ω2, ω1) 6∈ PALL) there are two possible positions to
insert ω2 into S′, namely before ω1 or after ω1. Let Λ be the set of possible
insertion positions in S′ for the new job so that a given m ∈ Λ means the
new job will be inserted after job vm in the current incomplete schedule S′.
Thus for new job ω2, Λ = {0, 1}, as ω2 could be inserted after v0 or v1.
The cost of these two options are pω2 + sω2,ω1 + pω1 and pω1 + sω1,ω2 + pω2 ,
respectively. Since the aim is to minimise the cost of the final schedule,
the heuristic is greedy at each step by choosing the new schedule with the
smallest increase in cost. Consequently, the change in cost of each schedule
is evaluated, and the schedule with the smallest change is selected:
min{(pω2 + sω2,ω1 + pω1)− pv1 , (pω1 + sω1,ω2 + pω2)− pv1}
= min{(pω2 + sω2,ω1 + pω1)− pω1 , (pω1 + sω1,ω2 + pω2)− pω1}
= min{pω2 + sω2,ω1 , sω1,ω2 + pω2}.
Since pω2 is common to both values, this is equivalent to selecting the new
insertion position based on min{sω2,ω1 , sω1,ω2}.
Generalisation: determine insertion position for job k.
In general, there are many more possible insertion positions to choose from,
so the change in cost is more complicated. Recall from §2.1 (page 18) that
132 HEURISTICS
δij := pi+sij is the minimum time delay between starting job i and starting
job j. With δvi,vi+1 = pvi + svi,vi+1 and Λ as the set of possible insertion
positions in S′ for job ωk of the insertion order ω, the smallest change in
cost of inserting job ωk into S′ is given by:
mini∈Λ{δvi,ωk + δωk,vi+1 − δvi,vi+1}
= mini∈Λ{(pvi + svi,ωk) + (pωk + sωk,vi+1)− (pvi + svi,vi+1)}
= mini∈Λ{svi,ωk + pωk + sωk,vi+1 − svi,vi+1}.
Since pωk will be in all terms, this is equivalent to selecting the insertion
position based on the position that gives
mini∈Λ{svi,ωk + sωk,vi+1 − svi,vi+1}.
Thus, in general, node ωk is inserted after node vm in S′, where
m = argmini∈Λ{svi,ωk + sωk,vi+1 − svi,vi+1}.
Allowing for precedences: determine the range of precedence-
feasible insertion positions.
In the small example of trying to insert job ω2 into the initialised schedule
S′ = (v0 = depot, v1 = ω1, vn+1 = depot), it was assumed there was no
precedence between ω1 and ω2. If there is a precedence relation between ω1
and ω2, say (ω1, ω2) ∈ PALL, then there is only one position to insert ω2,
that is after ω1, so v2 = ω2. Conversely, if (ω2, ω1) ∈ PALL, then ω2 must
be inserted before job ω1, that is v1 = ω2 and ω1 is moved to position v2 in
the new partial schedule.
In general, to ensure each new job added to S′ satisfies all precedence re-
lations, the last predecessor and first successor of that job in S′ is deter-
mined. This gives the range of precedence-feasible insertion positions for
the new job. Specifically, when the k-th job ωk is to be inserted, sequen-
tially check if (vj , ωk) or (ωk, vj) is in PALL, from j = 1 to j = |S′| − 2. If
(vj , ωk) ∈ PALL, then update the last predecessor of ωk, π(ωk), to vj (with
position index ι(π(ωk)) = j, where ι(a) is the position index of job a in S′).
If (ωk, vj) ∈ PALL, then set the first successor of ωk, σ(ωk), to vj (with
position index ι(σ(ωk)) = j), and stop.2 Thus only positions in the range
2By checking precedences sequentially from j = 1 to j = |S′| − 2, as soon as the first
5.3 Construction heuristics 133
{ι(π(ωk)), . . . , ι(σ(ωk)) − 1} are considered when attempting to insert the
new job ωk. If ωk has no successors in S′, the first successor of ωk is set
to vn+1 (the depot), i.e. σ(ωk) = vn+1 and ι(σ(ωk)) = |S′|. Similarly, if ωk
has no predecessors in S′, the last predecessor of ωk is v0 (the depot), i.e.
π(ωk) = v0 and ι(π(ωk)) = 0.
Checking time feasibility of an insertion.
After the k-th job ωk has been inserted into position vm (where 1 ≤ m ≤ k),
the time feasibility of the new partial schedule S′ is checked (where |S′| =
k + 2 ≤ n+ 2, as S′ always includes the depot as the dummy start and end
jobs). Specifically, the earliest start time for each job vi, T (vi), is calculated
and checked for feasibility, sequentially from vm to vk. There is no need
to check jobs before vm as the earliest start times of those jobs must have
been feasible for the previous partial schedule to have been accepted. If the
current job, say job vi (m ≤ i ≤ k), is arrived at before its release date,
avi , the earliest start time at job vi is initially set to the release date, i.e.
T (vi) = avi and updated for any precedence delay, i.e. T (vi) ≥ T (vl) +αvlvifor all l < i such that (vl, vi) ∈ PALL. If the earliest start time is later
than the due date bvi , i.e. T (vi) > bvi , then the time window for job vi
is violated, and this partial schedule is infeasible. Thus job ωk cannot be
inserted into position vm, and so this position is now disallowed and ωk is
removed from position vm. If there were other possible insertion positions for
ωk, ωk is inserted into the next best position and this new partial schedule
is re-tested for time feasibility.
When a job cannot be feasibly inserted into a partial schedule.
If ωk cannot be inserted without violating a time window or precedence
relation, the current insertion order is infeasible and must be rejected. A
new insertion order must be generated, and the process is repeated until
a full, feasible schedule is constructed, or some other stopping criterion
terminates the process (e.g. the maximum number of attempts is reached,
or a time limit is exceeded).
successor is found, the range of precedence-feasible insertion positions for new job ωk is
known; using PALL ensures that if (ωi, ωj) ∈ P and (ωj , ωk) ∈ P then (ωi, ωk) ∈ PALL,
and so ωi cannot be inserted into partial schedule S′ after job ωk.
134 HEURISTICS
Generating insertion orders.
Although any permutation of the jobs {1, 2, . . . , n} is an insertion order,
there are several orderings of the jobs that may be more likely to lead to
the construction of a feasible schedule. For example, jobs can be sorted
according to (1) increasing release dates, (2) increasing due dates, or (3)
increasing time window midpoints (where the midpoint is ai+bi2 for each job
i)3. For all of our implementations we have used random insertion orders
(i.e. random permutations of the jobs {1, 2, . . . , n}) to ensure our results
are unbiased. The proportion of insertion orders that lead to a feasible
schedule is also recorded as this gives an indication of the abundance of
feasible solutions as a proportion of all permutations.
5.3.2.2 Key modifications to the insertion order algorithm
While our InsertionAlgorithm is similar to that of Nikolakopoulos and
Sarimveis [9], some aspects of the implementation are quite different.
Firstly, Nikolakopoulos and Sarimveis [9] do not allow waiting: for each job
i ∈ V , the start time of job i in the current schedule, ti, must be in [ai, bi],
where ti is calculated such that the machine is never idle (i.e. only processing
jobs or setting up between jobs). Consequently, a schedule where ti < ai for
some i ∈ V , is infeasible; since we permit waiting (i.e. allow the machine to
be idle) we would set ti = ai so such a schedule may be feasible.
Secondly, to allow for the differences between the ATSP-TW and the SOP-
TW, our insertion algorithm must explicitly allow for all precedence relations
and the associated precedence delays.
Finally, Nikolakopoulos and Sarimveis set the first two non-trivial jobs in
the schedule to the first two jobs in the insertion order. It is not clear why
this is done, as this will immediately make some insertion orders infeasible.
For example, if (i, j) ∈ PALL and ω1 = j and ω2 = i, this insertion order
can never generate a feasible schedule under this scheme. To avoid this, we
3Due to time window preprocessing (§4.5.2), the midpoints of the time windows may
no longer correspond to the midpoints of the time windows generated by the random data
generator in Section 3.2.6, that is, the basis from which a feasible solution does exist for
each data set generated. Thus, if no time window preprocessing has occurred, the schedule
given by jobs sorted by time window midpoints is guaranteed to be feasible.
5.3 Construction heuristics 135
only insert the first job into the first partial schedule, so we do not discard
insertion orders unnecessarily.
5.3.2.3 Using the insertion order algorithm
Unsurprisingly, for reasons noted in Section 5.3.1, the InsertionAlgorithm
cannot guarantee a feasible schedule will be constructed for all insertion
orders. However, the algorithm can be repeated with different insertion
orders until a feasible schedule is obtained or a predetermined number of
insertion orders each fail to produce a feasible schedule. This procedure,
named RepeatInsAlg, is shown in Algorithm 10.
Algorithm 10: Procedure RepeatInsAlg(AttemptLimit)
Input: Maximum number of insertion orders to try, AttemptLimit
Output: Status (success or fail), and—if success—one feasible schedule and its cost
initialise
S ← void, z(S)← +∞ // empty schedule
Nfail ← 0 // fail counter
repeat attempt to construct one feasible schedule using InsertionAlgorithm
Generate a new random insertion order, ω // a random permutation of the jobs
if InsertionAlgorithm(ω) returns success then
// a feasible schedule was constructed using ω
S ← feasible schedule, z(S)← cost of S
status ← successelse
// insertion order ω was unsuccessful
Nfail ← Nfail + 1
until a feasible schedule is constructed or Nfail = AttemptLimit
if Nfail = AttemptLimit then
// AttemptLimit insertion orders did not generate a feasible schedule
status ← fail
return status, S, z(S)
While the InsertionAlgorithm is locally greedy when inserting the next
job, if the algorithm yields a feasible schedule, the schedule is likely to be
suboptimal. This is due to the fact that the objective is the sum of the
sequence-dependent setup times; since jobs are successively inserted into lo-
cally optimal positions that satisfy precedence and time window constraints,
early decisions that appear to be good may actually restrict choices later.
136 HEURISTICS
Consequently, it may be desirable to generate a pool of feasible solutions,
from which the best found can be used, or traits of feasible solutions may be
examined. Thus, we propose that RepeatInsAlg be called repeatedly by the
ConstructionHeuristic until at least one stopping criterion is satisfied, as
shown in Algorithm 11. Potential stopping criteria include: iteration limit;
failed iteration limit; solution pool size; and, a time limit.
As the computational results in Section 6.4 show, a framework that allows
for repeated attempts is particularly important when trying to find feasible
schedules for difficult SOP-TW problem instances, but is still insufficient for
very difficult instances.
5.3.2.4 A note on using PALL in InsertNextJob
To appreciate the importance of using PALL—the set of all explicit and im-
plicit precedence relations—in InsertNextJob (thus InsertionAlgorithm),
an example where only explicit precedences are checked and enforced is pre-
sented. This example will demonstrate that using PALL avoids unnecessary
computational work, and insertion orders are not discarded unnecessarily.
Consider a SOP-TW instance with five jobs, V = {1, 2, 3, 4, 5}, and ex-
plicit precedence set P = {(1, 2), (2, 3)}; note the implicit precedence (1, 3).
Given insertion order ω = (3, 1, 4, 5, 2), the initial partial schedule is S′ =
(depot, 3,depot). By considering explicit precedences only, job 1 can be
inserted either before or after job 3, as P does not contain the implicit
precedence (1, 3). The insertion position that yields the smallest impact on
the cost of the new partial schedule is chosen. Thus if s31 ≤ s13, job 1 is
inserted after job 3: the new partial schedule is S′ = (depot, 3, 1,depot),
which respects the explicit precedences (1, 2) and (2, 3). However, since
these precedences imply that job 1 must precede job 3, S′ cannot lead to
a feasible complete schedule. Unfortunately, the infeasibility is only de-
tected when trying to insert job 2—the final job in the insertion order—as
job 2 cannot be inserted without violating one of the precedence relations.
Computational time has been wasted coming to this conclusion, and inser-
tion order ω is now discarded as it cannot deliver a feasible schedule using
InsertionAlgorithm. In contrast, by using PALL = {(1, 2), (1, 3), (2, 3)} in-
stead of P = {(1, 2), (2, 3)}, it is clear from the outset that job 1 can only
5.3 Construction heuristics 137
Algorithm 11: Heuristic procedure to construct feasible SOP-TW solu-
tions, ConstructionHeuristic(η,Runs,Fails,SolnTarget,Attempts,Time)
Input: A SOP-TW problem instance, η; maximum number of iterations to perform,
Runs; maximum number of iterations allowed to fail before stopping, Fails;
maximum number of unique feasible solutions to construct, SolnTarget;
maximum number of insertion orders to try at each iteration, Attempts;
maximum run time allowed , T ime (CPU seconds)
Output: Status (success or fail at finding at least one feasible schedule), and—if
success—all schedules found, including the best feasible schedule
initialise
S∗ ← void, z(S∗)← +∞ // incumbent best solution is an empty schedule
SolnPool← void // pool of unique feasible solutions is empty
// stopping criteria counters
Iter ← 0 // iterations counter
NumEpicFails← 0 // failed iterations counter
NumSolns← 0 // unique feasible solution counter
repeat attempt to construct feasible schedules using RepeatInsAlg
// repeat until Runs iterations have been performed or Fails iterations
have failed to produce a feasible solution or SolnTarget unique
feasible solutions have been found or T ime CPU seconds used
Iter ← Iter + 1
if RepeatInsAlg(Attempts) returns success then
// a feasible schedule was constructed, given by S with cost z(S)
status ← success
if the schedule S is new thenNumSolns← NumSolns+ 1
SolnPool← SolnPool + S // add S to the solution pool
if z(S) < z(S∗) then
S∗ ← S, z(S∗)← z(S) // update the incumbent as S is better
else
// Attempts insertion orders did not yield a feasible schedule
NumEpicFails← NumEpicFails+ 1
until Iter = Runs or NumEpicFails = Fails or NumSolns = SolnTarget or T ime
if NumSolns = 0 then
// a total of Fails×Attempts random insertion orders did not generate a
feasible schedule for SOP-TW problem instance η
status ← fail
return status, SolnPool, S∗, z(S∗)
138 HEURISTICS
be inserted before job 3. Consequently, an infeasible partial schedule is not
created from the outset, and ω might still lead to a feasible schedule using
InsertionAlgorithm.
This small example demonstrates the importance of using all implicit prece-
dences in the InsertionAlgorithm. The two main benefits are (1) compu-
tational time is not wasted creating partial schedules that will ultimately
be infeasible, and (2) an insertion order is not rejected that may otherwise
lead to a feasible schedule.
In the next section, an entirely different type of heuristic for finding feasible
solutions is presented. Unlike the construction heuristic—which was tailored
to the SOP-TW—a more general IP-based heuristic is described that can
be applied to a broad class of IP problems that includes the SOP-TW. A
computational study of both heuristics will be presented in the next chapter.
5.4 Symmetry-breaking heuristics
Symmetry is a type of invariance that arises in several areas of mathematics,
including mathematical programming. In general terms, a mathematical
object has symmetry if it does not change under certain transformations.
Symmetries are present in many combinatorial problems—including within
solutions and between solutions—and often contribute to the difficulty of
solving those problems. However, identifying and eliminating symmetries
can reduce the solution space to be searched, and thus help to solve large
problem instances more quickly.
Recall that the solution structure of the SOP-TW contains two key compo-
nents: a vehicle routing component and a scheduling component, together
denoted (π, T (π)). The routing component, permutation π = (π1, . . . , πn),
defines the order to perform jobs. The scheduling component, denoted here
by vector T (π) = (Tπ1 , . . . , Tπn), defines the start time of each job in the
permutation. The cost of permutation π, z(π) =∑n
i=0 sπi,πi+1 , is the sum
of the sequence-dependent setup cost between each pair of jobs in the per-
mutation.
Given a solution of the structural routing variables (e.g. the x variables in
5.4 Symmetry-breaking heuristics 139
the three MIPs of Chapter 4 that implicitly define π), the scheduling deci-
sions can be implied: we can “step through” permutation π to sequentially
calculate the times that constitute the scheduling decisions. Let EST (π)
denote the earliest start time vector for permutation π, where the earliest
start time calculation is given by Equation 2.1 (§2.1, page 20).
This equation explicitly calculates the earliest feasible start time for each
job. However, there may be some flexibility in the choice of times; for a given
π, increasing the values of some start times may not change the feasibility,
cost or fundamental structure of the solution. Since the time variables are
not part of the cost function, this can be viewed as a type of symmetry in
the solution space. This idea is demonstrated in the following examples.
Consider the problem instance shown in Figure 5.2: V = {1, 2, 3, 4}; pro-
cessing times p2 = 2 and pi = 1 for i ∈ {1, 3, 4}; precedence set P = {(1, 4)}with precedence delay α14 = 3; and time windows and setup times
TW =
2 8
0 10
5 10
4 12
and s =
− 1 1 1
2 − 1 1
1 1 − 1
− 1 1 −
.
For brevity, the depot is omitted as values associated with the depot are
zero.
Soln # Solution (π, T (π)) z(π)∑Tπi T (π) = EST (π)?
(i) ((1,2,3,4),(2,4,7,9)) 3 22 Yes
(ii) ((1,2,3,4),(4,6,9,11)) 3 30 No
(iii) ((1,3,2,4),(2,5,7,10)) 3 24 Yes
(iv) ((2,3,1,4),(0,5,7,10)) 3 22 Yes
(v) ((2,1,3,4),(0,4,6,8)) 4 18 Yes
Table 5.2: Some time feasible solutions for the symmetry examples.
Example 1. Symmetry within a solution.
Permutation π = (1, 2, 3, 4) has cost z(π) = 3; the earliest start time of
each job is given by EST (π) = (2, 4, 7, 9), and corresponds to solution (i)
in Table 5.2 and Figure 5.3. However, there are many other feasible start
140 HEURISTICS
3
41
2
1,2,8
2,0,10
1,4,12
1,5,10
Processing time
Time window}
12
1
11
11
11
Setup time
(a) Network graph.
41 3
Precedence delay
(b) Precedence graph.
Figure 5.2: Graphs and data for the symmetry examples.
Time
a2 a3a4a1 b4b2 ,b3b1
0 1 2 3 4 5 6 7 8 9 10 11 12
s12p1 p2 p3 p4s23 s34
s12p1 p2 p3 p4s23 s34
s13p1 p2p3 p4s24s32
s13p1p2 p3 p4s21 s34
s14p1p2 p3 p4s23 s31
(i)
(ii)
(iii)
(iv)
(v)
Figure 5.3: Solution schedules.
5.4 Symmetry-breaking heuristics 141
times for each job; solution (ii) is one alternative option. Since π allows many
feasible options for the time variables, this example demonstrates one type
of solution space symmetry which is formally described in Definition 1. �
Definition 1. Solutions (π,EST (π)) and (π, T (π)) are structurally sym-
metric feasible solutions if time feasible permutation π (defined on page 20)
with earliest start times EST (π) has alternative feasible start times T (π)
such that EST (πi) 6= T (πi) for at least one i ∈ V .
Another type of symmetry is highlighted in the next example.
Example 2. Symmetry between solutions.
Given two permutations, say π1 and π2, where π1 6= π2 but z(π1) = z(π2),
these permutations are “equally good”. However, the earliest start time of
each job in the two permutations may be different, so this demonstrates
another type of symmetry; while the cost of each permutation may be the
same, the two underlying solutions have differences. For example, com-
pare solutions (i) and (iii) in Table 5.2 and Figure 5.3: π1 = (1, 2, 3, 4),
π2 = (1, 3, 2, 4) and z(π1) = z(π2) = 3. However, EST (π1) 6= EST (π2) and∑Tπ1
i<∑Tπ2
i. This symmetry between solutions is formally described in
Definition 2. �
Definition 2. Solutions (π1, T (π1)) and (π2, T (π2)) are cost symmetric
feasible solutions if π1 and π2 are time feasible permutations, π1 6= π2 and
z(π1) = z(π2).
Another example of this type of symmetry is given in the next example.
Example 3. Symmetry between solutions, again.
Both solutions (i) and (iv) have the optimal cost (z = 3) and the same sum
of the start times (∑T = 22). However, the solution schedules have several
key differences which are visible in Figure 5.3: in solution (iv), the first job
starts earlier, the last job starts later, and there are two idle periods (the
first wait is for job 3 to be released, while the second wait is due to the
precedence delay between jobs 1 and 4). These differences—which may or
may not be considered desirable qualities in a solution—could be exploited
to break the solution symmetries in the cost and sum of the start times. �
The insertion order construction heuristic presented in §5.3.2 and the B&B
142 HEURISTICS
scheme described in Chapter 7 use the earliest start time calculation given
by Equation 2.1. In contrast, neither MIP1 or MIP2 (§4.2) require or
encourage jobs to start as early as possible.
To address the two types of symmetry, defined above, in MIP1 and MIP2,
we shift our attention to the time variables (t and y, respectively) that
are linked to the path-based x variables, as a means to distinguish feasible
solutions that initially appear to be the same (in terms of x in Example 1,
cost in Example 2, and cost and sum of the start times in Example 3), but
actually have implicit differences (in terms of the time variables). For both
types of symmetry, we attempt to distinguish otherwise equal solutions, via
a modified cost function with a preference for earlier start times. Before
this heuristic is described in Section 5.4.2, a brief review of recent work on
reducing symmetry is presented.
5.4.1 Related work
Symmetry is an active area of research in constraint programming. Smith
[91] identifies three key approaches for eliminating and/or reducing symme-
try and its effects:
1. remodelling to produce an inherently less symmetric model;
2. adding symmetry-breaking constraints to a model that ensure only one
solution in a set of equivalent symmetric solutions are satisfied; and
3. adding symmetry-breaking constraints during the search so that solu-
tions that are symmetric to those already considered are not investi-
gated.
For a review of constraint programming approaches to solving symmetric
problems see Gent et al. [92].
In mathematical programming, “an integer linear program (ILP) is symmet-
ric if its variables can be permuted without changing the structure of the
problem” [10]. An example of this type of symmetry is scheduling jobs on
identical machines; if S1 is the schedule for machine M1 and S2 is the sched-
ule for machine M2, processing schedule S1 on M2 and S2 on M1 will not
change the structure of the problem if M1 and M2 are identical machines.
5.4 Symmetry-breaking heuristics 143
Margot [10] reviews the main mathematical programming techniques that
address this type of symmetry during the solution of an ILP—perturbation,
variable fixing, symmetry breaking inequalities (SBIs), and pruning of the
enumeration tree—as well as related topics including symmetry detection.
Liberti [93, 94] proposes a method to solve symmetric mixed integer linear
programs (MILPs), nonlinear programs (NLPs) and mixed integer nonlin-
ear programs (MINLPs) faster by automatically detecting and adding static4
SBIs (SSBIs) to the original problem formulation. Given the original prob-
lem, the method automatically computes the SSBIs, which are designed
to exclude some symmetric solutions while ensuring at least one optimal
solution remains. Consequently, the reformulation can be solved via stan-
dard branch-and-bound solvers. In [93], computational results for many
MILPs and MINLPs from well known mathematical programming libraries
are given. However, Liberti notes that with only static SBIs (as opposed to
dynamic SBIs)
. . . it is not so clear that the proposed approach helps in solving
general MILPs, although we have interesting results for some
selected instances. The performance on NLPs/MINLPs, on the
other hand, is much better.
Ghoniem and Sherali [95] combine SSBIs with an objective perturbation
scheme that uses information derived from the SSBIs. Computational re-
sults for three highly symmetric applications show this combined approach
outperforms using either component on its own.
Recall that the SOP-TW is not usually5 structurally symmetric in terms
of the binary routing variables, though there may exist some symmetry
in the continuous time variables (see Example 1 and Definition 1, p.139).
Consequently, many of the techniques described in [10] are not generally
applicable to the SOP-TW. However, the simplest technique, perturbation,
is readily applicable to the SOP-TW and the two types of symmetry defined
4Static SBIs break symmetries at the modelling level, while dynamic SBIs break sym-
metries during the search process, for example, at the branching level of a B&B scheme.5It is possible to create problem instances with values of the setup times such that pairs
of jobs in a route could be exchanged with no change to the objective function. While this
is unlikely for our problem instances, the symmetry-breaking ideas described here would
still apply provided the release dates are slightly different.
144 HEURISTICS
in Definitions 1 and 2.
Perturbation involves changing the original problem slightly—for example,
by slightly changing the cost coefficients in the objective function—in an
attempt to break the symmetry outright or somehow account for the sym-
metry that may be present in the problem. Margot [10] makes two impor-
tant observations regarding a perturbation approach to tackling symmetry
in ILPs:
. . . adding a small random perturbation to the coefficients ci
for i = 1, . . . , n easily destroys the symmetry in the problem.
This, in general, does not help much and can even be counter-
productive.
and
Using perturbation is sometimes helpful when trying to find a
good solution, but using symmetry information is a superior ap-
proach when dealing with an infeasible problem or when proving
optimality of a solution.
Based on these observations, breaking time symmetries via perturbation may
help to find good solutions faster to feasible SOP-TW instances. However,
it will be especially important to design the perturbation so that it is not
counter-productive, that is, take even longer to find solutions than solving
the original problem directly.
Recall that a heuristic technique attempts to find good feasible solutions at
a reasonable computational cost, without guaranteeing optimality or even
feasibility. Moreover, recall that solving the compact MIPs of Chapter 4
(which are exact techniques, not heuristics) did not produce feasible solu-
tions for the vast majority of n50 and n100 instances which are known to
be feasible. Since unaddressed symmetry in the time variables may be con-
tributing to the difficulty of solving these harder instances, heuristics that
involve a perturbation to the objective function are proposed in the next
section.
Recall from Section 4.2 that the routing and time variables are only weakly
linked via constraints in both compact MIPs. Consequently, the time sym-
metry can be captured and destroyed by incorporating the time variables
5.4 Symmetry-breaking heuristics 145
directly in the objective function of both MIPs. The proposed perturbations
to the cost coefficients will not be random, rather they will be scaled to the
problem instance in an attempt to improve the likelihood of finding feasible
solutions. The modified MIPs—the perturbation heuristics—can be solved
with a commercial integer programming solver, just as for Methods 1 to 4.
For the perturbation heuristics to be considered useful, feasible solutions
will need to be found for a larger proportion of the hard problem instances,
within a reasonable computation time. Indeed, if there is any benefit from
a perturbation heuristic, it suggests that time symmetries do contribute to
the difficulty of solving the SOP-TW.
These perturbation heuristics are a much simpler approach compared with
other symmetry-breaking techniques. Moreover, they build on the results of
the previous chapter by modifying existing MIPs, and incorporate ideas used
in the other methods proposed in this thesis, such as the use of the earliest
start times, ESTs, used in the construction heuristic and the scheduling-
based branch-and-bound scheme which will be presented in Chapter 7. While
this perturbation approach does not reduce the solution space, it does shift
the objective function. Consequently, otherwise symmetric solutions will
be valued differently as a means to distinguish them, rather than explicitly
excluding symmetric solutions.
5.4.2 An IP-based perturbation heuristic for generating fea-
sible solutions
In Sections 4.6.4.5 and 4.6.4.6, the computational results showed that the
four MIP methods of Chapter 4 were highly unsuccessful at finding a feasible
solution within the time limit for the 50 and 100 job problem instances. Since
a solution approach that does not allow for symmetries may spend precious
computation time exploring essentially equivalent solutions, we devise an
IP-based heuristic that attempts to reduce the impact of these symmetries
on the MIPs, and thus act as a catalyst to obtain feasible solutions faster.
Recall MIP1 (§4.2.1). In this model, the x and t variables are weakly linked
via time-delay constraints (4.3):
ti + δij − (1− xij) ·Mij ≤ tj , ∀(i, j) ∈ A, j 6= 0.
146 HEURISTICS
The x and y variables are more strongly linked in MIP2 (§4.2.2) via con-
straints (4.8) and (4.9):∑i∈V
s.t.(i,j)∈A
yij +∑
i∈V ∪{0}s.t.(i,j)∈A
δij · xij ≤∑
k∈V ∪{0}s.t.(j,k)∈A
yjk, ∀j ∈ V, and
ai · xij ≤ yij ≤ bi · xij , ∀(i, j) ∈ A, i 6= 0.
Since the true objective function for both MIPs is to minimise the total
setup time between consecutive jobs, given by min∑
(i,j)∈A sijxij , this ob-
jective function does not explicitly drive the choice of the time variables.
In contrast, our IP-based heuristic involves an explicit time dependence in
the objective function: solve MIP1 and/or MIP2 with a modified objective
function that explicitly includes a time penalty. The new objective function
is called a surrogate cost function, as it is a substitute for the true cost.
While many penalty schemes are possible we investigate our IP-based heuris-
tic using the simple surrogate objective functions shown below:
COST MIP OBJECTIVE FUNCTION
true MIP1 & MIP2 z(x) =∑
(i,j)∈A sijxij
surrogate MIP1 only z1(x, t) = z(x) +∑
i∈V βti, where β ≥ 0
surrogate MIP2 only z2(x, y) = z(x) +∑
(i,j)∈A βyij , where β ≥ 0
The surrogate MIPs will explicitly preference earlier start times when β > 0,
and thus attempt to reduce both types of solution symmetry encountered
during the search for solutions. As a result, it is hoped that feasible solutions
will be found faster when solving the surrogate MIPs, when compared with
solving the true MIPs, MIP1 and MIP2 (equivalent to the surrogate MIPs
with β = 0).
This IP-based method can be described as a catalyst heuristic; for some
β > 0, feasible solutions may be found faster, though this is not guaranteed.
Moreover, optimal solutions of the surrogate MIPs may not be optimal solu-
tions of the true MIPs due to the modified objective function. Consequently,
the value of β should be chosen initially with the aim of finding feasible so-
lutions faster, and if successful, subsequently tuned to balance the trade-off
between speed to find feasible solutions, the number of feasible solutions
5.4 Symmetry-breaking heuristics 147
found, and the true-cost quality of those solutions. This is discussed in
more detail in Section 5.4.3.
For example, note that solution (v) in Table 5.2 (page 139) has the largest
cost but has the smallest sum of the start times. If the penalty used in the
catalyst heuristic is sufficiently large, this solution is more likely to be found
than solutions (i)–(iv); if β = 1, the surrogate cost of solution (v) is 22,
while the smallest surrogate cost of the other solutions is 25 for solutions (i)
and (iv).
5.4.3 Notes on implementing the catalyst heuristic
The selection of the catalyst penalty, β, is especially important as it will
influence (for better or worse):
• the speed to the first solution;
• the number of feasible solutions found; and
• the true-cost quality of those solutions.
For example, a very large penalty is unlikely to result in good quality solu-
tions; the surrogate component of the objective function will dwarf the true
cost component, such that the true cost of each solution found may be vastly
different and thus poor quality. Conversely, a very small penalty may be an
insufficient catalyst to re-direct the search of the feasible region while signif-
icantly increasing the computation time to the first solution found; however,
it may produce good quality solutions.
We test several penalties that are proportional to key data of the problem
instance being solved. In particular, the penalty β is defined as
β = ωρ
where ω is a weight from the set {0, 0.01, 0.1, 1, 5, 10} and ρ is a ratio defined
as
ρ =UB∑i∈V ai
where
UB = min
∑i∈V
maxj∈V{sij},
∑j∈V
maxi∈V{sij}
.
148 HEURISTICS
Note that ω = 0 corresponds to solving the corresponding true MIP, which
we include for comparison in the computational results.
The numerator of ratio ρ corresponds to a generous upper bound on the
optimal cost. The denominator of ρ is the sum of the job release dates,
which is a lower bound on the sum of the job start times. Note that all of
our data sets have multiple non-zero release dates (as evident in Figure 3.4,
page 77) so dividing by zero will not be an issue.
By including the ratio ρ in the penalty β, the weight ω is approximately
normalised; each ω will produce results that are less dependent on underlying
properties of the problem instance being solved as some of those properties
are accounted for by ρ. For example, consider the surrogate component of
the objective function for MIP1 :∑i∈V
βti =∑i∈V
ωρti = ωUB
∑i∈V ti∑i∈V ai
.
By definition ai ≤ ti for all i ∈ V , so∑
i∈V ai ≤∑
i∈V ti and∑i∈V ti∑i∈V ai
≥ 1.
Thus including the sum of the release dates in the denominator of ρ will
help scale down the influence of the start time variables in the surrogate
objective function that might otherwise overwhelm the true cost component.
How much the surrogate component influences the full surrogate objective
function can then be controlled via the weight ω. The same idea applies to
the surrogate objective function for MIP2.
The box plots in Figure 5.4 show the spread of ρ values for each of the data
classes described in Sections 3.5 and 3.6. All values are less than 0.1, and
clearly decrease as n increases. This is due to the magnitude of the release
dates in the ratio’s denominator, which clearly outweighs the upper bound
in the numerator; both the number and spread of the release dates increase
significantly as n increases, as shown in Table 3.8 (page 76) and Figure 3.4
(page 77). In contrast the values of the setup times are approximately the
same across the 21 data classes (Figure 3.8, page 79), so the value of UB
increases linearly with n.
The ρ values for the BKA data sets are in the range [0.05,0.72]; see Class 0
in Figure I.1 (page 355). These ρ values are generally larger and more
spread out as the release dates for the BKA instances are consistently much
smaller than for our problem instances (see Table F.2), while the setup times
5.5 Chapter summary 149
●
●
●
●
●●
●
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
0.02
0.04
0.06
0.08
Figure 5.4: Box plot of catalyst ratio ρ values by data class.
are generally smaller but much more variable than our setup times (see
Table F.6).
5.5 Chapter summary
In this chapter, several heuristics for finding an initial feasible solution were
presented. An insertion-based construction heuristic for the SOP-TW was
presented in Section 5.3. In Section 5.4 an IP-based heuristic was proposed,
which solves a modified MIP in an attempt to reduce the effect of symmetry
in the time variables. If successful, it will enable feasible solutions to be
found faster than solving the equivalent true MIP. A comprehensive compu-
tational study of both of these heuristic methods is performed in the next
chapter.
150 HEURISTICS
Chapter 6
COMPUTATIONAL
STUDY OF THE
HEURISTICS
In this chapter the performance of the construction heuristic and IP-based cata-
lyst heuristic are tested and compared via a comprehensive computational study.
Methods to incorporate these heuristics within a branch-and-bound scheme are con-
sidered. Finally, additional heuristics are discussed but not implemented.
In this chapter the construction heuristic and IP-based catalyst heuristic are
investigated via a computational study. The machine and optimiser speci-
fications used for all experiments are given in §6.1. A summary of the 25
heuristic variations studied is given in §6.2. A guide to the results of the
heuristic experiments, and the relative performance of all 25 heuristics across
seven key measures is reported in §6.3. Detailed results for the construction
heuristic are discussed in §6.4, while detailed results for the IP-based cata-
lyst heuristic are discussed in §6.5. A discussion of how these two heuristic
methods could be incorporated within a branch-and-bound scheme are dis-
cussed in §6.6 in anticipation of the scheduling-based B&B scheme proposed
in Chapter 7. Other heuristic techniques are briefly mentioned in §6.7. The
key findings of this chapter and suggestions for further work are given in
§6.8. A chapter summary is given in §6.9.
151
152 COMPUTATIONAL STUDY OF THE HEURISTICS
6.1 Machine and optimiser specifications
As in Section 4.6, the code for all heuristics were implemented in C and com-
piled with Microsoft Visual Studio 2005 Version 8.0. The modified MIPs in
the catalyst heuristic were solved using IBM R©ILOG R©CPLEX R© Callable
Library Version 12.1 on a PC with an Intel R©Xeon R© CPU 2.33 GHz and
3.25GB of RAM running Windows XP Professional SP3 (32 bits), with pa-
rameter CPX PARAM NODEFILEIND set to 3 (node files are transferred to disk
and compressed) and parameter CPX PARAM THREADS set to 1 (CPLEX uses
a single thread). All other parameters are at default settings unless oth-
erwise noted. This includes the parameter CPX PARAM MIPEMPHASIS which
was kept at default setting 0, that is, a balanced setting, as this “works
toward a rapid proof of an optimal solution, but balances that with effort
toward finding high quality feasible solutions early in the optimization” [96].
Consequently, the results from executing the modified MIPs in the catalyst
heuristic can be directly compared with the pure MIP results in Chapter 4.
6.2 Summary of heuristic methods tested
Table 6.1 provides a summary of the heuristic methods tested, along with
a description of each method as applied to a SOP-TW instance. H0 is the
construction heuristic as described in §5.3.2 (page 128). The IP-based cata-
lyst heuristic is investigated for the four MIP methods, M1–M4, studied in
§4.6 (page 102). Each MIP is tested with six different catalyst penalties that
are controlled via a weight; this results in one family of catalyst heuristics
for each MIP, where the six members of the same family differ by the weight
used to modify the MIPs objective function.
Table 6.2 shows the six weights used within the catalyst penalty βk. The first
weight, ω1 = 0, will apply no penalty; methods with this weight corresponds
to the original MIPs as per M1–M4. Recall from §3.6 that the magnitude
of the setup values (see Fig. 3.8, p.79) are significantly smaller than the
magnitude of the release dates (see Fig. 3.4, p.77). Since the catalyst penalty
is applied to the start times of the jobs in the modified objective function,
the other five weights provide a wide variety of penalties for investigation.
6.2 Summary of heuristic methods tested 153
Name Method with description as applied to a SOP-TW instance
H0 Construction: Run InsertionPrimalHeuristic with Runs,
Fails and SolnTarget unrestricted and Attempts=1
H1 k M1 with catalyst βk: Solve MIP1 with precedences P (αij)
and modified objective min∑
(i,j)∈A sijxij +∑
i∈V βkti
H2 k M2 with catalyst βk: Solve MIP1 with precedences PALL (αij)
and modified objective min∑
(i,j)∈A sijxij +∑
i∈V βkti
H3 k M3 with catalyst βk: Solve MIP2 with precedences P (αij)
and modified objective min∑
(i,j)∈A sijxij +∑
(i,j)∈A βkyij
H4 k M4 with catalyst βk: Solve MIP2 with precedences PALL (αij)
and modified objective min∑
(i,j)∈A sijxij +∑
(i,j)∈A βkyij
Table 6.1: Summary of heuristic methods, where k ∈ {1, . . . , 6}.
k 1 2 3 4 5 6
ωk 0 0.01 0.1 1 5 10
Table 6.2: Weights to modify objective function via catalyst penalty βk.
Data group names BKA n25 n50 n100
Run time per instance 60 60 180 300
Table 6.3: Heuristic time limits (CPU seconds) for each instance by group.
Method Minimum Median Mean Maximum # timed out
M1 1.4 38.4 195.9 1,800* 4
M2 3.2 40.2 190.0 1,800* 4
M3 7.9 119.8 360.3 1,800* 5
M4 6.8 159.9 387.3 1,800* 5
Table 6.4: MIP solve time statistics (in seconds) for the sixty n25 instances.
‘*’ indicates at least one instance timed out so was not solved to optimality.
‘# timed out’ gives the number of instances that timed out at 1,800 seconds.
154 COMPUTATIONAL STUDY OF THE HEURISTICS
Table 6.3 shows the run time allowed for each heuristic on each instance
within a data group. These times are significantly less than the times allowed
for the exact MIP methods (see §4.6.4.1, p.111) in recognition that these are
heuristic methods.
The time limit is set to 60 seconds for each BKA and n25 problem instance
even though exact solution methods may prove optimality for some of these
instances relatively quickly. For comparison, indicative summary statistics
on the solve times of the four MIP methods on the 90 n25 instances are
shown in Table 6.4; a maximum solve time of 1,800 seconds indicates that
at least one instance was not solved to optimality within the MIP time limit
of 1,800 seconds. For the instances not solved to optimality, the capped time
limit of 1,800 seconds was used in the calculation of the median and mean.
While most heuristic methods did not terminate with a feasible solution
within the time limit (as per Table 6.3) for many n50 instances and most
n100 instances, the limit was sufficient to ensure that the performance of
the heuristics tested could be compared and reasonable conclusions drawn.
However, for the 100-job problem instances the time limit is extended to
10,300 seconds (the same time allowed for MIPs M1–M4 as per Table 4.10,
p.111) for the construction heuristic and each catalyst heuristic with the
best weight as judged at the original n100 time limit of 300 seconds; this is
explained further in §6.5.4.
Note that catalyst penalty βk = ωkρ, where ρ ∈ R is calculated using data
from the problem instance being solved, as described in Section 5.4.3.
In total, 25 methods are tested: the construction heuristic; M1 with catalyst
βk, for k ∈ {1, . . . , 6}; M2 with catalyst βk, for k ∈ {1, . . . , 6}; M3 with
catalyst βk, for k ∈ {1, . . . , 6}; and M4 with catalyst βk, for k ∈ {1, . . . , 6}.When β is 0 (β1) there is no catalyst, thus the original (exact) MIPs are
solved as per M1–M4. Consequently, the β1 results are extensions of those
reported in Section 4.6.4 for Methods 1 to 4, and enable direct comparison
between the original MIPs and the modified MIPs.
6.3 Guide to results of the heuristics experiments 155
6.3 Guide to results of the heuristics experiments
As noted in Section 5.4.3, the value of the catalyst penalty influences the
speed to find solutions, as well as the quantity and true-cost quality of solu-
tions found. Consequently, the key measures of interest for each heuristic—
including the construction heuristic—are:
• number of solutions found;
• time to first solution;
• time to best true-cost solution;
• true cost of first solution;
• true cost gap of first solution (if optimal value is known);
• cost of best true-cost solution; and
• cost gap of best true-cost solution (if optimal value is known).
The results for each of these measures are summarised graphically in a series
of figures (and summarised numerically in a series of tables in Appendix I).
Each figure contains up to four subplots, where subplots are arranged by
data group such that:
• each subplot (a) contains results for the BKA problem instances;
• each subplot (b) contains results for the n25 problem instances;
• each subplot (c) contains results for the n50 problem instances; and
• each subplot (d) contains results for the n100 problem instances.
Each subplot contains up to 25 box plots, where each box plot1 corresponds
to the pooled results of the data group for a particular heuristic method;
the 25 heuristic methods and their names (used as labels) are summarised
in Table 6.1. Consequently, each subplot allows the relative performance of
the heuristic methods to be compared for each measure for each data group.
To evaluate the relative performance of the heuristics on a single measure
as the number of jobs varies, the subplots (a)–(d) within a single figure can
be compared.
1These box plots were generated in R Version 2.15.2 [75] with default settings.
156 COMPUTATIONAL STUDY OF THE HEURISTICS
For example, for any measure, the entries in the box plot labelled Hi k of
a subplot correspond to the results of using heuristic Hi k (the catalyst
method MIP Mi with catalyst penalty βk which has weight wk) on that par-
ticular data group, while the box plot labelled H0 contains the construction
heuristic results. Results for the catalyst heuristics are shown as a family of
up to six coloured box plots, with H1 k box plots coloured dark blue, H2 k
box plots coloured light blue, H3 k box plots coloured purple and H4 k box
plots coloured pink.
The number in the parentheses following a method name in a box plot label
is the number of elements used to construct the box plot; this corresponds to
the number of problem instances in the data group where at least one feasible
solution was found within the time limit (that is, “zeroes” as described
below are excluded). Consequently, the maximum number of elements is
the number of problem instances in each data group (Table 3.6, p.74).
Table 6.5 summarises the figure and table references of the main results
by data group. Additional results specific to the construction heuristic are
discussed in Section 6.4 and Section I.1 of Appendix I, while additional
results specific to the catalyst heuristics are discussed in Section 6.5.
Note that four variants of which results are reported for the “number of
solutions” measure are as follows:
(i) H0 box plot is included, and instances where no solutions were found—
“zeroes”—are excluded for all methods;
(ii) H0 box plot is included, and zeroes are included;
(iii) H0 box plot is excluded, and zeroes are excluded; and
(iv) H0 box plot is excluded, and zeroes are included.
As can be seen in Figures I.2a–I.2c (p.357) and Figures I.3a–I.3c (p.358),
including the H0 results overshadows the results for the other methods, so
variants which exclude H0—(iii) and (v)—allow the relative performance of
the catalyst methods to be evaluated. Similarly, including the zeroes can
distort the other results within a box plot. Consequently, variants which
exclude the zeroes—(i) and (iii)—allow the relative performance when at
least one feasible solution is found to be evaluated; for example, compare
Figure 6.2c (p.164) and Figure 6.3c (p.165), where the only difference is the
exclusion of the zeroes.
6.3 Guide to results of the heuristics experiments 157
BKA
n25
n50
n100
Mea
sure
sF
igu
reT
ab
leF
igu
reT
ab
leF
igu
reT
ab
leF
igu
reT
ab
le
%in
stan
ces
wit
h≥
1so
luti
on
fou
nd
,by
tim
eN
A6.6
a,
p.1
59
NA
6.6
b,
p.1
59
NA
6.6
c,p
.160
NA
6.6
d,
p.1
60
Nu
mb
erof
solu
tion
s(i
)I.
2a,
p.3
57
I.2,
p.3
59
I.2b
,p
.357
I.2,
p.3
59
I.2c,
p.3
57
I.2,
p.3
59
I.2d
,p
.357
I.2,
p.3
59
Nu
mb
erof
solu
tion
s(i
i)I.
3a,
p.3
58
I.3,
p.3
60
I.3b
,p
.358
I.3,
p.3
60
I.3c,
p.3
58
I.3,
p.3
60
I.3d
,p
.358
I.3,
p.3
60
Nu
mb
erof
solu
tion
s(i
ii)
6.2
a,
p.1
64
I.2,
p.3
59
6.2
b,
p.1
64
I.2,
p.3
59
6.2
c,p
.164
I.2,
p.3
59
6.2
d,
p.1
64
I.2,
p.3
59
Nu
mb
erof
solu
tion
s(i
v)
6.3
a,
p.1
65
I.3,
p.3
60
6.3
b,
p.1
65
I.3,
p.3
60
6.3
c,p
.165
I.3,
p.3
60
6.3
d,
p.1
65
I.3,
p.3
60
Tim
eto
firs
tso
luti
on
6.1
a,
p.1
61
I.4,
p.3
61
6.1
b,
p.1
61
I.4,
p.3
61
6.1
c,p
.161
I.4,
p.3
61
6.1
d,
p.1
61
I.4,
p.3
61
Tim
eto
bes
ttr
ue-
cost
solu
tion
6.4
a,
p.1
67
I.5,
p.3
62
6.4
b,
p.1
67
I.5,
p.3
62
6.4
c,p
.167
I.5,
p.3
62
6.4
d,
p.1
67
I.5,
p.3
62
Tru
eco
stof
firs
tso
luti
on
6.5
a,
p.1
69
I.6,
p.3
63
6.5
b,
p.1
69
I.6,
p.3
63
6.5
c,p
.169
I.6,
p.3
63
6.5
d,
p.1
69
I.6,
p.3
63
Tru
eco
stgap
of
firs
tso
luti
on
6.7
a,
p.1
71
I.8,
p.3
65
6.7
b,
p.1
71
I.8,
p.3
65
NA
NA
NA
NA
Cost
of
bes
ttr
ue-
cost
solu
tion
6.6
a,
p.1
70
I.7,
p.3
64
6.6
b,
p.1
70
I.7,
p.3
64
6.6
c,p
.170
I.7,
p.3
64
6.6
d,
p.1
70
I.7,
p.3
64
Cost
gap
of
bes
ttr
ue-
cost
solu
tion
6.8
a,
p.1
71
I.9,
p.3
65
6.8
b,
p.1
71
I.9,
p.3
65
NA
NA
NA
NA
Tab
le6.
5:
Fig
ure
and
tab
lere
fere
nce
sto
mai
nre
sult
sof
the
heu
rist
ics
exp
erim
ents
,by
dat
agr
oup
.
158 COMPUTATIONAL STUDY OF THE HEURISTICS
For a given feasible solution to a problem instance, the cost gap is defined
as 100(SOL−OPTOPT ), where SOL is the value of the feasible solution, and OPT
is the optimal value of the problem. The cost gaps of the first solutions and
best solutions are only evaluated for the BKA and n25 problem instances
since optimal solutions for the n50 and n100 problem instances are not
known; see Figures 6.7 and 6.8 (p.171).
Finally, recall that P = PALL for all BKA problem instances, thus M1=M2
and M3=M4 for this data group. It follows that H1 k=H2 k and H3 k=H4 k
for all k ∈ {1, . . . , 6} for the BKA data group, and so the H2 and H4 box
plots duplicate the H1 and H3 box plots; consequently they are omitted
from all BKA figures.
6.3.1 Time to find first solution: Figure 6.1 & Table 6.6
To compare each heuristic method on the speed to find feasible solutions,
results are presented as follows. The box plots in Figure 6.1 (p.161) show the
distribution of the exact time to find each first feasible solution. Table 6.6 is
arranged by data group, to show the percentage of instances where at least
one feasible solution was found, evaluated at key times for each heuristic.
Note that for the n100 instances, the original time limit for each heuristic is
300 seconds per instance; an extended limit of 10,300 seconds is allowed for
methods H0, H1 4, H2 4, H3 4 and H4 6 only, for reasons discussed in the
n100 results of Sections 6.4 (§6.4.8, p.179) and 6.5 (§6.5.4, p.183).
To highlight the success of finding feasible solutions, a table cell in Table 6.6
is shaded dark green if at least one feasible solution has been found for
100% of instances, light green if the percentage is in the range (0, 100), and
unshaded if the percentage of instances is zero (i.e. no feasible solutions have
been found for any instances with this method by this time).
To reference the results in Table 6.6, let Γ(g, h, t) denote the percentage of
instances of data group g with at least one feasible solution found by method
h after time t has elapsed. If the catalyst weight index is not stated for the
catalyst heuristics, the result being described is generally true for each of
the weights. The time limit is denoted T and corresponds to the termination
times in Table 6.3.
6.3 Guide to results of the heuristics experiments 159M
ETH
OD
KEY
TIM
ES
(seconds)
NA
ME
0.0
01
0.0
10.1
15
10
H0
100.0
100.0
100.0
100.0
100.0
100.0
H1
117.1
17.1
97.1
100.0
100.0
100.0
H1
211.4
11.4
97.1
100.0
100.0
100.0
H1
32.9
2.9
91.4
100.0
100.0
100.0
H1
414.3
14.3
97.1
100.0
100.0
100.0
H1
511.4
11.4
97.1
97.1
97.1
100.0
H1
611.4
11.4
97.1
100.0
100.0
100.0
H2
1N
AN
AN
AN
AN
AN
A
H2
2N
AN
AN
AN
AN
AN
A
H2
3N
AN
AN
AN
AN
AN
A
H2
4N
AN
AN
AN
AN
AN
A
H2
5N
AN
AN
AN
AN
AN
A
H2
6N
AN
AN
AN
AN
AN
A
H3
111.4
11.4
17.1
100.0
100.0
100.0
H3
25.7
5.7
11.4
94.3
97.1
100.0
H3
32.9
2.9
8.6
85.7
97.1
100.0
H3
40.0
0.0
5.7
97.1
100.0
100.0
H3
58.6
8.6
28.6
88.6
100.0
100.0
H3
62.9
2.9
25.7
94.3
97.1
100.0
H4
1N
AN
AN
AN
AN
AN
A
H4
2N
AN
AN
AN
AN
AN
A
H4
3N
AN
AN
AN
AN
AN
A
H4
4N
AN
AN
AN
AN
AN
A
H4
5N
AN
AN
AN
AN
AN
A
H4
6N
AN
AN
AN
AN
AN
A
(a)BKA
(35
inst
ance
s).
METH
OD
KEY
TIM
ES
(seconds)
NA
ME
0.0
01
0.0
10.1
15
10
30
60
H0
95.6
95.6
100.0
100.0
100.0
100.0
100.0
100.0
H1
14.4
4.4
10.0
64.4
87.8
96.7
98.9
100.0
H1
25.6
5.6
12.2
63.3
85.6
92.2
100.0
100.0
H1
37.8
7.8
15.6
78.9
94.4
98.9
100.0
100.0
H1
42.2
2.2
23.3
88.9
93.3
100.0
100.0
100.0
H1
51.1
1.1
12.2
86.7
93.3
98.9
100.0
100.0
H1
62.2
2.2
16.7
84.4
92.2
96.7
100.0
100.0
H2
14.4
4.4
8.9
61.1
77.8
88.9
98.9
100.0
H2
22.2
2.2
12.2
60.0
82.2
92.2
96.7
98.9
H2
313.3
13.3
22.2
82.2
92.2
98.9
100.0
100.0
H2
41.1
1.1
18.9
88.9
96.7
100.0
100.0
100.0
H2
52.2
2.2
16.7
88.9
93.3
97.8
100.0
100.0
H2
61.1
1.1
13.3
87.8
93.3
96.7
100.0
100.0
H3
12.2
2.2
2.2
8.9
36.7
45.6
60.0
77.8
H3
21.1
1.1
1.1
6.7
32.2
42.2
63.3
75.6
H3
310.0
10.0
10.0
16.7
47.8
61.1
85.6
93.3
H3
413.3
13.3
13.3
67.8
94.4
97.8
97.8
98.9
H3
52.2
2.2
2.2
76.7
88.9
98.9
100.0
100.0
H3
62.2
2.2
2.2
80.0
95.6
100.0
100.0
100.0
H4
16.7
6.7
6.7
8.9
44.4
53.3
67.8
75.6
H4
26.7
6.7
6.7
7.8
25.6
34.4
56.7
76.7
H4
311.1
11.1
11.1
17.8
54.4
70.0
85.6
94.4
H4
43.3
3.3
3.3
60.0
82.2
94.4
100.0
100.0
H4
53.3
3.3
3.3
77.8
88.9
94.4
100.0
100.0
H4
62.2
2.2
2.2
76.7
87.8
97.8
100.0
100.0
(b)n
25
(90
inst
an
ces)
.
Tab
le6.
6:
Per
centa
geof
inst
ance
sw
her
eat
leas
ton
eso
luti
onw
asfo
un
d,
eval
uat
edat
key
tim
esfo
rea
chh
euri
stic
.
160 COMPUTATIONAL STUDY OF THE HEURISTICSM
ETH
OD
KEY
TIM
ES
(seconds)
NA
ME
0.0
10.1
15
10
30
60
180
H0
25.0
73.3
100.0
100.0
100.0
100.0
100.0
100.0
H1
10.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
H1
20.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
H1
30.0
0.0
0.0
0.0
0.0
8.3
13.3
20.0
H1
41.7
1.7
5.0
10.0
10.0
45.0
58.3
73.3
H1
50.0
0.0
0.0
3.3
5.0
25.0
38.3
65.0
H1
60.0
0.0
0.0
1.7
3.3
10.0
30.0
40.0
H2
10.0
0.0
1.7
1.7
1.7
1.7
1.7
3.3
H2
20.0
0.0
0.0
0.0
0.0
0.0
0.0
1.7
H2
31.7
1.7
3.3
5.0
5.0
8.3
11.7
20.0
H2
40.0
0.0
3.3
8.3
8.3
36.7
56.7
71.7
H2
50.0
0.0
0.0
0.0
0.0
20.0
38.3
58.3
H2
60.0
0.0
0.0
0.0
0.0
13.3
21.7
36.7
H3
10.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
H3
20.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
H3
30.0
0.0
0.0
0.0
0.0
1.7
1.7
1.7
H3
41.7
1.7
3.3
6.7
11.7
15.0
16.7
26.7
H3
51.7
1.7
1.7
8.3
16.7
16.7
21.7
31.7
H3
61.7
1.7
1.7
1.7
1.7
8.3
11.7
23.3
H4
10.0
0.0
0.0
0.0
0.0
1.7
1.7
1.7
H4
20.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
H4
30.0
0.0
0.0
0.0
0.0
0.0
0.0
1.7
H4
40.0
0.0
0.0
6.7
6.7
10.0
11.7
18.3
H4
51.7
1.7
1.7
8.3
8.3
10.0
11.7
16.7
H4
63.3
3.3
3.3
8.3
8.3
13.3
15.0
23.3
(c)n
50
(60
instan
ces).
METH
OD
KEY
TIM
ES
(seconds)
NA
ME
10
30
60
180
300
600
3,6
00
10,3
00
H0
0.0
0.0
0.0
0.0
0.0
0.0
3.3
6.7
H1
10.0
0.0
0.0
0.0
0.0
NA
NA
NA
H1
20.0
0.0
0.0
0.0
0.0
NA
NA
NA
H1
30.0
0.0
0.0
0.0
0.0
NA
NA
NA
H1
41.7
1.7
5.0
6.7
8.3
8.3
8.3
8.3
H1
50.0
0.0
0.0
0.0
0.0
NA
NA
NA
H1
60.0
0.0
0.0
0.0
0.0
NA
NA
NA
H2
10.0
0.0
0.0
0.0
0.0
NA
NA
NA
H2
20.0
0.0
0.0
0.0
0.0
NA
NA
NA
H2
30.0
0.0
0.0
0.0
0.0
NA
NA
NA
H2
40.0
0.0
1.7
5.0
10.0
10.0
10.0
10.0
H2
50.0
0.0
0.0
0.0
0.0
NA
NA
NA
H2
60.0
0.0
0.0
0.0
1.7
NA
NA
NA
H3
10.0
0.0
0.0
0.0
0.0
NA
NA
NA
H3
20.0
0.0
0.0
0.0
0.0
NA
NA
NA
H3
30.0
0.0
0.0
0.0
0.0
NA
NA
NA
H3
40.0
0.0
0.0
0.0
1.7
1.7
1.7
1.7
H3
50.0
0.0
0.0
0.0
0.0
NA
NA
NA
H3
60.0
0.0
0.0
0.0
0.0
NA
NA
NA
H4
10.0
0.0
0.0
0.0
0.0
NA
NA
NA
H4
20.0
0.0
0.0
0.0
0.0
NA
NA
NA
H4
30.0
0.0
0.0
0.0
0.0
NA
NA
NA
H4
40.0
0.0
0.0
0.0
0.0
NA
NA
NA
H4
50.0
0.0
0.0
0.0
0.0
NA
NA
NA
H4
60.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
(d)n
100(60
instan
ces).
Tab
le6.6:
contin
ued
.
6.3 Guide to results of the heuristics experiments 161
●●
●● ● ●● ●
● ●
● ●●● ●● ●● ● ●●● ● ●
●●● ●● ●●● ● ●● ●
●● ●●●
● ●●● ● ●
●●
H0 ( 35 )
H1_1 ( 35 )
H1_2 ( 35 )
H1_3 ( 35 )
H1_4 ( 35 )
H1_5 ( 35 )
H1_6 ( 35 )
H2_1 ( 0 )
H2_2 ( 0 )
H2_3 ( 0 )
H2_4 ( 0 )
H2_5 ( 0 )
H2_6 ( 0 )
H3_1 ( 35 )
H3_2 ( 35 )
H3_3 ( 35 )
H3_4 ( 35 )
H3_5 ( 35 )
H3_6 ( 35 )
H4_1 ( 0 )
H4_2 ( 0 )
H4_3 ( 0 )
H4_4 ( 0 )
H4_5 ( 0 )
H4_6 ( 0 )
0 2 4 6 8
(a) BKA (35 instances).
●●●●
● ●● ● ●● ● ●
● ●●● ●●●●● ●
●● ●● ●● ●●● ●● ●● ● ●● ● ● ●
● ● ● ● ●●● ● ●●●●●● ●●● ● ●● ●
● ●● ● ●●● ●● ●
●●●● ● ● ● ● ● ●
●● ● ●● ●● ●● ●
● ●● ●● ● ● ●● ●● ● ●●● ●
●● ● ●● ●● ●●● ●● ● ●● ● ●● ●
● ● ● ●● ●●
●
●● ●● ●●
● ●● ●● ● ●● ●● ●● ●● ● ●● ●● ● ●●●●● ●● ●
● ●● ● ●● ●●● ●● ●● ●●
●● ●
● ● ● ●●● ● ●
●● ●●●● ●● ●●
● ● ●● ●● ●● ● ●●●● ●●● ●
●● ● ●● ● ●● ●●●● ●●●● ● ● ●
H0 ( 90 )
H1_1 ( 90 )
H1_2 ( 90 )
H1_3 ( 90 )
H1_4 ( 90 )
H1_5 ( 90 )
H1_6 ( 90 )
H2_1 ( 90 )
H2_2 ( 89 )
H2_3 ( 90 )
H2_4 ( 90 )
H2_5 ( 90 )
H2_6 ( 90 )
H3_1 ( 70 )
H3_2 ( 68 )
H3_3 ( 84 )
H3_4 ( 89 )
H3_5 ( 90 )
H3_6 ( 90 )
H4_1 ( 68 )
H4_2 ( 69 )
H4_3 ( 85 )
H4_4 ( 90 )
H4_5 ( 90 )
H4_6 ( 90 )
0 10 20 30 40 50 60
(b) n25 (90 instances).
●●
● ●● ● ●
●
● ●
● ●● ●
● ●
H0 ( 60 )
H1_1 ( 0 )
H1_2 ( 0 )
H1_3 ( 12 )
H1_4 ( 44 )
H1_5 ( 39 )
H1_6 ( 24 )
H2_1 ( 2 )
H2_2 ( 1 )
H2_3 ( 12 )
H2_4 ( 43 )
H2_5 ( 35 )
H2_6 ( 22 )
H3_1 ( 0 )
H3_2 ( 0 )
H3_3 ( 1 )
H3_4 ( 17 )
H3_5 ( 19 )
H3_6 ( 14 )
H4_1 ( 1 )
H4_2 ( 0 )
H4_3 ( 1 )
H4_4 ( 11 )
H4_5 ( 10 )
H4_6 ( 14 )
0 50 100 150
(c) n50 (60 instances).
●
H0 ( 0 )
H1_1 ( 0 )
H1_2 ( 0 )
H1_3 ( 0 )
H1_4 ( 5 )
H1_5 ( 0 )
H1_6 ( 0 )
H2_1 ( 0 )
H2_2 ( 0 )
H2_3 ( 0 )
H2_4 ( 6 )
H2_5 ( 0 )
H2_6 ( 1 )
H3_1 ( 0 )
H3_2 ( 0 )
H3_3 ( 0 )
H3_4 ( 1 )
H3_5 ( 0 )
H3_6 ( 0 )
H4_1 ( 0 )
H4_2 ( 0 )
H4_3 ( 0 )
H4_4 ( 0 )
H4_5 ( 0 )
H4_6 ( 0 )
0 50 100 150 200 250 300
(d) n100 (60 instances).
Figure 6.1: Box plots of “time first solution is found” for each heuristic. The
horizontal axes are time in seconds.
162 COMPUTATIONAL STUDY OF THE HEURISTICS
For example, Table 6.6b shows that 95.6% of n25 instances (86 out of 90) had
at least one feasible solution found by the construction heuristic after 0.001
seconds, and 100% after 0.1 seconds had elapsed; thus Γ(n25,H0, 0.001)=95.6
and Γ(n25,H0, 0.1)=100. In contrast, only 10% of the instances had at least
one feasible solution found by the catalyst heuristic H1 1 after 0.1 seconds,
but 100% of the instances did by 60 seconds; thus Γ(n25,H1 1, 0.1)=10 and
Γ(n25,H1 1, 60)=100. Table 6.6a shows that all BKA instances had at least
one feasible solution found by each of the catalyst methods by 10 seconds,
thus Γ(BKA,H1, 10)=100 and Γ(BKA,H3, 10)=100.
Across all heuristics, the percentage of instances that terminate at 60 seconds
with at least one feasible solution is 100% for BKA and is consistently high
(>75%) for n25.
The construction heuristic, H0, is very successful at finding feasible solutions
for all BKA, n25 and n50 instances within one second. For n50, the most
successful catalyst methods, H1 4 and H2 4, terminated at 180 seconds with
feasible solutions for 73% and 72% of instances, respectively. In contrast,
for n100, H0 does not find any feasible solutions within the 300 second time
limit. As will be discussed in §6.4.8, when the time limit is extended to
10,300 seconds, feasible solutions are found for 6.7% of n100 instances.
Recall from §6.2 that catalyst methods H1 and H2 are based on MIP1, while
H3 and H4 are based on MIP2. Comparing results for the underlying MIPs,
the percentage of instances that terminate with at least one feasible solution
is almost always2 higher for H1 and H2 compared with H3 and H4 across
all weights and data groups. That is, Γ(g,Hi k, T ) ≥ Γ(g,Hj k, T ) for data
groups g ∈ {BKA,n25, n50, n100}, heuristics i ∈ {1, 2} and j ∈ {3, 4},and all weights k ∈ {1, 2, 3, 4, 5, 6}). The compact box plots of the H1 and
H2 methods (relative to H3 and H4) in Figures 6.1a and 6.1b shows the
distribution of the first solution times, indicating the relative speed of H1
and H2 over the H3 and H4 catalyst methods. These results are in keeping
with comments made in Section 4.2.3.
For all data groups, the percentage of instances that terminate with at least
one feasible solution is higher for large catalyst weights (ω ≥ 1) compared
to low weights (ω < 1), regardless of the underlying MIP or precedence
2There is only one exception: Γ(n50,H1 1, 180) = 0 < Γ(n50,H4 1, 180) = 1.7).
6.3 Guide to results of the heuristics experiments 163
set. That is, for each data group g ∈ {BKA,n25, n50, n100} and each
heuristic i ∈ {1, 2, 3, 4}, Γ(g,Hi k, T ) ≥ Γ(g,Hi j, T ), where the low weights
are j ∈ {1, 2, 3} and the high weights are k ∈ {4, 5, 6}. This provides some
supporting evidence for the hypothesis that the IP-based catalyst with a
non-zero weight can be a method for finding feasible solutions faster than
solving the pure MIPs directly (which correspond to Hi 1) for the SOP-TW.
It is worth noting that it is difficult to see additional trends and make
conclusions for the n50 and n100 instances as, unlike the results for BKA
and n25 instances, the percentage of instances that terminate with at least
one feasible solution varies greatly for n50 and is very small for n100. This
is interesting in and of itself regarding the number of solutions, but presents
challenges to interpreting results for other measures; this is reflected in the
following discussion of the box plots results.
6.3.2 Number of unique solutions: Figures 6.2 and 6.3
The construction heuristic is extraordinarily good at finding many unique
feasible solutions for n ≤ 50, as can be seen in Figures I.2a–I.2c (page 357);
Table I.18 (page 378) shows the summary statistics for the number of unique
feasible solutions found by the construction heuristic for each data group and
class (note that the results for n100 are from the extended time of 10,300
seconds). However, that is the nature of the construction heuristic; it is
very fast at sampling the solution space, thus it is capable of generating a
large and diverse solution pool when the number of jobs is relatively small.
In contrast, the catalyst methods seek increasingly better (in terms of the
surrogate cost) feasible solutions, so its search of the solution space is neces-
sarily very limited. Consequently, the maximum number of solutions found
for any instance with any catalyst method was 41 solutions (method H1 4
on an n50 instance; Figure 6.2c), compared with 49,950 for the construction
heuristic on an n25 instance.
For each family of catalyst methods (H1 in blue and H3 in purple), a signifi-
cant proportion of the BKA instances are solved to optimality (with respect
to the surrogate cost function) well within the time limit; 30% for H1 and
28.6% for H3. This makes intrepreting the results in Figures 6.2a and 6.3a
difficult, as the faster the catalyst solves, generally fewer solutions are found.
164 COMPUTATIONAL STUDY OF THE HEURISTICS
●
● ●●
● ●●
●●
●
H1_1 ( 35 )
H1_2 ( 35 )
H1_3 ( 35 )
H1_4 ( 35 )
H1_5 ( 35 )
H1_6 ( 35 )
H2_1 ( 0 )
H2_2 ( 0 )
H2_3 ( 0 )
H2_4 ( 0 )
H2_5 ( 0 )
H2_6 ( 0 )
H3_1 ( 35 )
H3_2 ( 35 )
H3_3 ( 35 )
H3_4 ( 35 )
H3_5 ( 35 )
H3_6 ( 35 )
H4_1 ( 0 )
H4_2 ( 0 )
H4_3 ( 0 )
H4_4 ( 0 )
H4_5 ( 0 )
H4_6 ( 0 )
0 5 10 15 20 25
(a) BKA (35 instances).
●
●
●●
● ●●●
●
●●
●●●
● ●
●●●
●
●●
●●
●
●●● ●●●●
H1_1 ( 90 )
H1_2 ( 90 )
H1_3 ( 90 )
H1_4 ( 90 )
H1_5 ( 90 )
H1_6 ( 90 )
H2_1 ( 90 )
H2_2 ( 89 )
H2_3 ( 90 )
H2_4 ( 90 )
H2_5 ( 90 )
H2_6 ( 90 )
H3_1 ( 70 )
H3_2 ( 68 )
H3_3 ( 84 )
H3_4 ( 89 )
H3_5 ( 90 )
H3_6 ( 90 )
H4_1 ( 68 )
H4_2 ( 69 )
H4_3 ( 85 )
H4_4 ( 90 )
H4_5 ( 90 )
H4_6 ( 90 )
0 5 10 15 20 25 30
(b) n25 (90 instances).
●
●●
●
●
●●
H1_1 ( 0 )
H1_2 ( 0 )
H1_3 ( 12 )
H1_4 ( 44 )
H1_5 ( 39 )
H1_6 ( 24 )
H2_1 ( 2 )
H2_2 ( 1 )
H2_3 ( 12 )
H2_4 ( 43 )
H2_5 ( 35 )
H2_6 ( 22 )
H3_1 ( 0 )
H3_2 ( 0 )
H3_3 ( 1 )
H3_4 ( 17 )
H3_5 ( 19 )
H3_6 ( 14 )
H4_1 ( 1 )
H4_2 ( 0 )
H4_3 ( 1 )
H4_4 ( 11 )
H4_5 ( 10 )
H4_6 ( 14 )
0 10 20 30 40
(c) n50 (60 instances).
H1_1 ( 0 )
H1_2 ( 0 )
H1_3 ( 0 )
H1_4 ( 5 )
H1_5 ( 0 )
H1_6 ( 0 )
H2_1 ( 0 )
H2_2 ( 0 )
H2_3 ( 0 )
H2_4 ( 6 )
H2_5 ( 0 )
H2_6 ( 1 )
H3_1 ( 0 )
H3_2 ( 0 )
H3_3 ( 0 )
H3_4 ( 1 )
H3_5 ( 0 )
H3_6 ( 0 )
H4_1 ( 0 )
H4_2 ( 0 )
H4_3 ( 0 )
H4_4 ( 0 )
H4_5 ( 0 )
H4_6 ( 0 )
5 10 15 20 25
(d) n100 (60 instances).
Figure 6.2: Box plots of “number of solutions found” for each heuristic: H0
box plots are excluded, as are instances where no solutions were found.
6.3 Guide to results of the heuristics experiments 165
●
● ●●
● ●●
●●
●
H1_1 ( 35 )
H1_2 ( 35 )
H1_3 ( 35 )
H1_4 ( 35 )
H1_5 ( 35 )
H1_6 ( 35 )
H2_1 ( 0 )
H2_2 ( 0 )
H2_3 ( 0 )
H2_4 ( 0 )
H2_5 ( 0 )
H2_6 ( 0 )
H3_1 ( 35 )
H3_2 ( 35 )
H3_3 ( 35 )
H3_4 ( 35 )
H3_5 ( 35 )
H3_6 ( 35 )
H4_1 ( 0 )
H4_2 ( 0 )
H4_3 ( 0 )
H4_4 ( 0 )
H4_5 ( 0 )
H4_6 ( 0 )
0 5 10 15 20 25
(a) BKA (35 instances).
●
●
●●
● ●●●
●
●●
●●
● ●
●●●
● ●●● ●●●
●●
●
●●● ●●●●
H1_1 ( 90 )
H1_2 ( 90 )
H1_3 ( 90 )
H1_4 ( 90 )
H1_5 ( 90 )
H1_6 ( 90 )
H2_1 ( 90 )
H2_2 ( 90 )
H2_3 ( 90 )
H2_4 ( 90 )
H2_5 ( 90 )
H2_6 ( 90 )
H3_1 ( 90 )
H3_2 ( 90 )
H3_3 ( 90 )
H3_4 ( 90 )
H3_5 ( 90 )
H3_6 ( 90 )
H4_1 ( 90 )
H4_2 ( 90 )
H4_3 ( 90 )
H4_4 ( 90 )
H4_5 ( 90 )
H4_6 ( 90 )
0 5 10 15 20 25 30
(b) n25 (90 instances).
● ●● ●● ●●● ● ●●●
● ●
●
● ● ●●● ●● ● ●● ● ●
●
● ●●● ●●●● ●●●
●●●
●● ●● ●● ●●● ●●● ●●
●
●
●● ●● ●●● ●●● ●
●● ●● ●●● ●●●
●●●● ●● ●● ●●● ●●●
H1_1 ( 60 )
H1_2 ( 60 )
H1_3 ( 60 )
H1_4 ( 60 )
H1_5 ( 60 )
H1_6 ( 60 )
H2_1 ( 60 )
H2_2 ( 60 )
H2_3 ( 60 )
H2_4 ( 60 )
H2_5 ( 60 )
H2_6 ( 60 )
H3_1 ( 60 )
H3_2 ( 60 )
H3_3 ( 60 )
H3_4 ( 60 )
H3_5 ( 60 )
H3_6 ( 60 )
H4_1 ( 60 )
H4_2 ( 60 )
H4_3 ( 60 )
H4_4 ( 60 )
H4_5 ( 60 )
H4_6 ( 60 )
0 10 20 30 40
(c) n50 (60 instances).
●● ● ● ●
●●● ●●●
●●
H1_1 ( 60 )
H1_2 ( 60 )
H1_3 ( 60 )
H1_4 ( 60 )
H1_5 ( 60 )
H1_6 ( 60 )
H2_1 ( 60 )
H2_2 ( 60 )
H2_3 ( 60 )
H2_4 ( 60 )
H2_5 ( 60 )
H2_6 ( 60 )
H3_1 ( 60 )
H3_2 ( 60 )
H3_3 ( 60 )
H3_4 ( 60 )
H3_5 ( 60 )
H3_6 ( 60 )
H4_1 ( 60 )
H4_2 ( 60 )
H4_3 ( 60 )
H4_4 ( 60 )
H4_5 ( 60 )
H4_6 ( 60 )
0 5 10 15 20 25
(d) n100 (60 instances).
Figure 6.3: Box plots of “number of solutions found” for each heuristic: H0
box plots excluded; instances where no solutions were found are included.
166 COMPUTATIONAL STUDY OF THE HEURISTICS
The results for n25 are clearer; Figures 6.2b and 6.3b show that for each
family of catalyst heuristics, increasing the catalyst penalty via the catalyst
weight generally increases the number of feasible solutions found.
For n50 instances, the effect of including the “zeroes” is quite stark; com-
paring Figures 6.2c and 6.3c show how the distribution of the number of
solutions found by the catalyst heuristics are skewed towards zero due to
the relatively small percentage of n50 instances that terminate with at least
one feasible solution for most catalyst heuristics, as seen in Table 6.6c
6.3.3 Time at which best true-cost solution is found: Fig. 6.4
The BKA instances are noticeably easier to solve than problem instances in
the other data groups. For these instances, the construction heuristic (H0)
is clearly the fastest heuristic for reaching the best true-cost solution, with
a maximum time of 0.1 seconds for any BKA instance (maximum of H0
results is 0.1 in Table I.5, p.362). This is not surprising; as will be discussed
in more detail in Section 6.4, there is relatively more symmetry in the setup
times of the BKA instances, as indicated by a small number of unique setup
values and very high frequency for some of those values. When combined
with the greedy aspect of the construction heuristic, the cost gap of the
first solution is 0% for more than 50% of BKA instances (see H0 box plot
in Figure 6.7a; median of H0 results is 0 in Table I.8, p.365), and the cost
gap of the best solution is 0% for all BKA instances (see H0 box plot in
Figure 6.8a; maximum of H0 results is 0 in Table I.9 on p.365, that is, H0
finds the optimal solution for all BKA instances).
As noted earlier, for the catalyst methods, many BKA instances were solved
to optimality (with respect to the surrogate cost function) well within the
time limit. Consequently, those first and best time results are naturally
truncated. However, as can be seen in Figure 6.4a, as the catalyst weight
increases, the time the best solution is found generally increases too, and
also becomes more variable.
For n25, and even more so for n50, the best times for the construction heuris-
tic are spread more evenly across the execution time; see the H0 box plot in
Figures 6.4b and 6.4c. Since the insertion orders are randomly generated,
the best solution is equally likely to be found by any successful insertion
6.3 Guide to results of the heuristics experiments 167
●
●●● ●●●● ●●● ●
● ●
●● ●●
● ●● ●● ●
● ● ●
●● ●●●
● ●●
● ●● ● ●
●●● ● ●
● ●●● ●
H0 ( 35 )
H1_1 ( 35 )
H1_2 ( 35 )
H1_3 ( 35 )
H1_4 ( 35 )
H1_5 ( 35 )
H1_6 ( 35 )
H2_1 ( 0 )
H2_2 ( 0 )
H2_3 ( 0 )
H2_4 ( 0 )
H2_5 ( 0 )
H2_6 ( 0 )
H3_1 ( 35 )
H3_2 ( 35 )
H3_3 ( 35 )
H3_4 ( 35 )
H3_5 ( 35 )
H3_6 ( 35 )
H4_1 ( 0 )
H4_2 ( 0 )
H4_3 ( 0 )
H4_4 ( 0 )
H4_5 ( 0 )
H4_6 ( 0 )
0 10 20 30 40 50 60
(a) BKA (35 instances).
H0 ( 90 )
H1_1 ( 90 )
H1_2 ( 90 )
H1_3 ( 90 )
H1_4 ( 90 )
H1_5 ( 90 )
H1_6 ( 90 )
H2_1 ( 90 )
H2_2 ( 89 )
H2_3 ( 90 )
H2_4 ( 90 )
H2_5 ( 90 )
H2_6 ( 90 )
H3_1 ( 70 )
H3_2 ( 68 )
H3_3 ( 84 )
H3_4 ( 89 )
H3_5 ( 90 )
H3_6 ( 90 )
H4_1 ( 68 )
H4_2 ( 69 )
H4_3 ( 85 )
H4_4 ( 90 )
H4_5 ( 90 )
H4_6 ( 90 )
0 10 20 30 40 50 60
(b) n25 (90 instances).
● ●
●●
●●●
●●
●
● ●
●●●
●
●
H0 ( 60 )
H1_1 ( 0 )
H1_2 ( 0 )
H1_3 ( 12 )
H1_4 ( 44 )
H1_5 ( 39 )
H1_6 ( 24 )
H2_1 ( 2 )
H2_2 ( 1 )
H2_3 ( 12 )
H2_4 ( 43 )
H2_5 ( 35 )
H2_6 ( 22 )
H3_1 ( 0 )
H3_2 ( 0 )
H3_3 ( 1 )
H3_4 ( 17 )
H3_5 ( 19 )
H3_6 ( 14 )
H4_1 ( 1 )
H4_2 ( 0 )
H4_3 ( 1 )
H4_4 ( 11 )
H4_5 ( 10 )
H4_6 ( 14 )
0 50 100 150
(c) n50 (60 instances).
●
H0 ( 0 )
H1_1 ( 0 )
H1_2 ( 0 )
H1_3 ( 0 )
H1_4 ( 5 )
H1_5 ( 0 )
H1_6 ( 0 )
H2_1 ( 0 )
H2_2 ( 0 )
H2_3 ( 0 )
H2_4 ( 6 )
H2_5 ( 0 )
H2_6 ( 1 )
H3_1 ( 0 )
H3_2 ( 0 )
H3_3 ( 0 )
H3_4 ( 1 )
H3_5 ( 0 )
H3_6 ( 0 )
H4_1 ( 0 )
H4_2 ( 0 )
H4_3 ( 0 )
H4_4 ( 0 )
H4_5 ( 0 )
H4_6 ( 0 )
0 50 100 150 200 250 300
(d) n100 (60 instances).
Figure 6.4: Box plots of “time best solution is found” for each heuristic. The
horizontal axes are time in seconds.
168 COMPUTATIONAL STUDY OF THE HEURISTICS
order at any time within the limit. In contrast, the catalyst methods seek
increasingly better (in terms of the surrogate cost) feasible solutions, so the
best solutions are likely to be found later rather than earlier, hence these
box plots are skewed towards the time limit, as can be seen in all other box
plots of Figures 6.4b and 6.4c.
6.3.4 True cost and true cost gap of first solution (Figures 6.5
& 6.7) and best solution (Figures 6.6 & 6.8)
As noted earlier, for the construction heuristic, the cost gap of the first
solution found is 0% for more than 50% of BKA instances, and the cost gap
of the best solution is 0% for all BKA instances. In contrast, Figure 6.7a
(page 171) shows the cost gaps of the first solution found is generally much
larger for all of the catalyst heuristics. While the minimum cost gap of the
first solution is 0% for all catalyst methods, the smallest median of the cost
gap of the first solution is 42.9%, that is, at least 50% of first solutions for
any catalyst method had a cost gap of 42.9% or more. Moreover, the value
and spread of the best cost gap box plots in Figure 6.8a (page 171) generally
increase with increasing the catalyst weights.
Recall that including the catalyst penalty in the objective function affects
the true-cost quality of solutions found. The effect will be most notable
where the weight is 1 or greater, that is, for weight index j ∈ {4, 5, 6}.Consequently, this is reflected in the first and best true-cost results for the
BKA, n25 and n50 instances shown in Figures 6.5–6.8.
For n25 and n50, and for each family of catalyst heuristics, Hi, the dis-
tributions of the first solution cost box plots (Figures 6.5b–6.5c) and best
solution cost box plots (Figures 6.6b–6.6c) generally increase when the cata-
lyst weight is greater than or equal to one (i.e. Hi j for j ∈ {4, 5, 6}). Indeed,
the value and spread of the best cost gap box plots for n25 in Figure 6.8b
generally increase when the catalyst weights are above one. As noted above,
this is unsurprising; as the catalyst weight increases, the surrogate compo-
nent of the objective function grows, and thus the true-cost quality of the
solutions found generally decreases, and thus the true cost and true cost
gap is likely to increase and become more varied. Note that while we do
not have the optimal values for the n50 instances (so gap results cannot be
6.3 Guide to results of the heuristics experiments 169
●●
●●●●
●
●●
●
●
H0 ( 35 )
H1_1 ( 35 )
H1_2 ( 35 )
H1_3 ( 35 )
H1_4 ( 35 )
H1_5 ( 35 )
H1_6 ( 35 )
H2_1 ( 0 )
H2_2 ( 0 )
H2_3 ( 0 )
H2_4 ( 0 )
H2_5 ( 0 )
H2_6 ( 0 )
H3_1 ( 35 )
H3_2 ( 35 )
H3_3 ( 35 )
H3_4 ( 35 )
H3_5 ( 35 )
H3_6 ( 35 )
H4_1 ( 0 )
H4_2 ( 0 )
H4_3 ( 0 )
H4_4 ( 0 )
H4_5 ( 0 )
H4_6 ( 0 )
100 200 300 400
(a) BKA (35 instances).
●
●● ● ●●
●● ●● ●● ●
● ● ●● ●●●●
● ● ●
●
●● ● ● ●
● ● ●●● ●
● ●●● ●● ●
● ●●
●
●
●
●
●●
●
●
●
● ● ●●●
●●
●●
●
● ●● ●
H0 ( 90 )
H1_1 ( 90 )
H1_2 ( 90 )
H1_3 ( 90 )
H1_4 ( 90 )
H1_5 ( 90 )
H1_6 ( 90 )
H2_1 ( 90 )
H2_2 ( 89 )
H2_3 ( 90 )
H2_4 ( 90 )
H2_5 ( 90 )
H2_6 ( 90 )
H3_1 ( 70 )
H3_2 ( 68 )
H3_3 ( 84 )
H3_4 ( 89 )
H3_5 ( 90 )
H3_6 ( 90 )
H4_1 ( 68 )
H4_2 ( 69 )
H4_3 ( 85 )
H4_4 ( 90 )
H4_5 ( 90 )
H4_6 ( 90 )
200 300 400 500 600 700
(b) n25 (90 instances).
●
●
●
●●
●
● ●
●●
●
●
H0 ( 60 )
H1_1 ( 0 )
H1_2 ( 0 )
H1_3 ( 12 )
H1_4 ( 44 )
H1_5 ( 39 )
H1_6 ( 24 )
H2_1 ( 2 )
H2_2 ( 1 )
H2_3 ( 12 )
H2_4 ( 43 )
H2_5 ( 35 )
H2_6 ( 22 )
H3_1 ( 0 )
H3_2 ( 0 )
H3_3 ( 1 )
H3_4 ( 17 )
H3_5 ( 19 )
H3_6 ( 14 )
H4_1 ( 1 )
H4_2 ( 0 )
H4_3 ( 1 )
H4_4 ( 11 )
H4_5 ( 10 )
H4_6 ( 14 )
300 400 500 600 700 800
(c) n50 (60 instances).
●
●
H0 ( 0 )
H1_1 ( 0 )
H1_2 ( 0 )
H1_3 ( 0 )
H1_4 ( 5 )
H1_5 ( 0 )
H1_6 ( 0 )
H2_1 ( 0 )
H2_2 ( 0 )
H2_3 ( 0 )
H2_4 ( 6 )
H2_5 ( 0 )
H2_6 ( 1 )
H3_1 ( 0 )
H3_2 ( 0 )
H3_3 ( 0 )
H3_4 ( 1 )
H3_5 ( 0 )
H3_6 ( 0 )
H4_1 ( 0 )
H4_2 ( 0 )
H4_3 ( 0 )
H4_4 ( 0 )
H4_5 ( 0 )
H4_6 ( 0 )
550 600 650 700 750 800 850 900
(d) n100 (60 instances).
Figure 6.5: Box plots of “true cost of first solution” for each heuristic.
170 COMPUTATIONAL STUDY OF THE HEURISTICS
●●●●●
●
●●
H0 ( 35 )
H1_1 ( 35 )
H1_2 ( 35 )
H1_3 ( 35 )
H1_4 ( 35 )
H1_5 ( 35 )
H1_6 ( 35 )
H2_1 ( 0 )
H2_2 ( 0 )
H2_3 ( 0 )
H2_4 ( 0 )
H2_5 ( 0 )
H2_6 ( 0 )
H3_1 ( 35 )
H3_2 ( 35 )
H3_3 ( 35 )
H3_4 ( 35 )
H3_5 ( 35 )
H3_6 ( 35 )
H4_1 ( 0 )
H4_2 ( 0 )
H4_3 ( 0 )
H4_4 ( 0 )
H4_5 ( 0 )
H4_6 ( 0 )
50 100 150 200
(a) BKA (35 instances).
● ●● ● ●
●●
●●
●● ●
●●
●●●
●●●●
●●● ● ●
●●
●●
●●
●
● ●●● ●●
●
●●
●●
●● ●
● ●●
●
●●
●● ●
●
H0 ( 90 )
H1_1 ( 90 )
H1_2 ( 90 )
H1_3 ( 90 )
H1_4 ( 90 )
H1_5 ( 90 )
H1_6 ( 90 )
H2_1 ( 90 )
H2_2 ( 89 )
H2_3 ( 90 )
H2_4 ( 90 )
H2_5 ( 90 )
H2_6 ( 90 )
H3_1 ( 70 )
H3_2 ( 68 )
H3_3 ( 84 )
H3_4 ( 89 )
H3_5 ( 90 )
H3_6 ( 90 )
H4_1 ( 68 )
H4_2 ( 69 )
H4_3 ( 85 )
H4_4 ( 90 )
H4_5 ( 90 )
H4_6 ( 90 )
200 300 400 500
(b) n25 (90 instances).
●●
●
●
●
●
H0 ( 60 )
H1_1 ( 0 )
H1_2 ( 0 )
H1_3 ( 12 )
H1_4 ( 44 )
H1_5 ( 39 )
H1_6 ( 24 )
H2_1 ( 2 )
H2_2 ( 1 )
H2_3 ( 12 )
H2_4 ( 43 )
H2_5 ( 35 )
H2_6 ( 22 )
H3_1 ( 0 )
H3_2 ( 0 )
H3_3 ( 1 )
H3_4 ( 17 )
H3_5 ( 19 )
H3_6 ( 14 )
H4_1 ( 1 )
H4_2 ( 0 )
H4_3 ( 1 )
H4_4 ( 11 )
H4_5 ( 10 )
H4_6 ( 14 )
300 400 500 600 700
(c) n50 (60 instances).
●
H0 ( 0 )
H1_1 ( 0 )
H1_2 ( 0 )
H1_3 ( 0 )
H1_4 ( 5 )
H1_5 ( 0 )
H1_6 ( 0 )
H2_1 ( 0 )
H2_2 ( 0 )
H2_3 ( 0 )
H2_4 ( 6 )
H2_5 ( 0 )
H2_6 ( 1 )
H3_1 ( 0 )
H3_2 ( 0 )
H3_3 ( 0 )
H3_4 ( 1 )
H3_5 ( 0 )
H3_6 ( 0 )
H4_1 ( 0 )
H4_2 ( 0 )
H4_3 ( 0 )
H4_4 ( 0 )
H4_5 ( 0 )
H4_6 ( 0 )
500 600 700 800
(d) n100 (60 instances).
Figure 6.6: Box plots of “cost of best true-cost solution” for each heuristic.
6.3 Guide to results of the heuristics experiments 171
Figure 6.7: Box plots of “true cost gap of first solution” for each heuristic;
n50 and n100 are not shown because the optimal values are not known.
●
●● ●
● ●
●
●
●
●
●
●
H0 ( 35 )
H1_1 ( 35 )
H1_2 ( 35 )
H1_3 ( 35 )
H1_4 ( 35 )
H1_5 ( 35 )
H1_6 ( 35 )
H2_1 ( 0 )
H2_2 ( 0 )
H2_3 ( 0 )
H2_4 ( 0 )
H2_5 ( 0 )
H2_6 ( 0 )
H3_1 ( 35 )
H3_2 ( 35 )
H3_3 ( 35 )
H3_4 ( 35 )
H3_5 ( 35 )
H3_6 ( 35 )
H4_1 ( 0 )
H4_2 ( 0 )
H4_3 ( 0 )
H4_4 ( 0 )
H4_5 ( 0 )
H4_6 ( 0 )
0 100 200 300 400
(a) BKA (35 instances).
●● ● ● ●
●●●● ●●●
●● ●●
● ●
●● ●● ●
●●
●●● ●●● ●
●● ●●●
● ● ●
● ● ● ● ●
●
●● ●●
●● ● ●
●●
● ● ●●
●●● ●
●
●●●● ●
●●●●
●● ●●
● ● ●●
● ●●●
●●
H0 ( 90 )
H1_1 ( 90 )
H1_2 ( 90 )
H1_3 ( 90 )
H1_4 ( 90 )
H1_5 ( 90 )
H1_6 ( 90 )
H2_1 ( 90 )
H2_2 ( 89 )
H2_3 ( 90 )
H2_4 ( 90 )
H2_5 ( 90 )
H2_6 ( 90 )
H3_1 ( 70 )
H3_2 ( 68 )
H3_3 ( 84 )
H3_4 ( 89 )
H3_5 ( 90 )
H3_6 ( 90 )
H4_1 ( 68 )
H4_2 ( 69 )
H4_3 ( 85 )
H4_4 ( 90 )
H4_5 ( 90 )
H4_6 ( 90 )
0 50 100 150 200 250 300 350
(b) n25 (90 instances).
Figure 6.8: Box plots of “true cost gap of best solution” for each heuristic;
n50 and n100 are not shown because the optimal values are not known.
●●● ●●
● ●●
●● ●●
●●●● ●
●●
● ●
● ●
●● ●●
●
H0 ( 35 )
H1_1 ( 35 )
H1_2 ( 35 )
H1_3 ( 35 )
H1_4 ( 35 )
H1_5 ( 35 )
H1_6 ( 35 )
H2_1 ( 0 )
H2_2 ( 0 )
H2_3 ( 0 )
H2_4 ( 0 )
H2_5 ( 0 )
H2_6 ( 0 )
H3_1 ( 35 )
H3_2 ( 35 )
H3_3 ( 35 )
H3_4 ( 35 )
H3_5 ( 35 )
H3_6 ( 35 )
H4_1 ( 0 )
H4_2 ( 0 )
H4_3 ( 0 )
H4_4 ( 0 )
H4_5 ( 0 )
H4_6 ( 0 )
0 20 40 60 80
(a) BKA (35 instances).
●●
● ●●●● ●●● ●● ●●● ●● ●● ●●●●● ●● ● ●● ● ●● ●●● ●●● ●●
● ● ●●
● ●
●
●● ●● ●● ●● ●●● ●●
●●● ●● ● ●● ●●●● ●● ● ●
●● ●● ●● ● ●
●● ●●
● ●● ●
● ●●
● ● ●● ●● ●
●●● ● ●●● ●● ● ●●● ● ●
●●●
● ●
●
●● ● ● ●● ●
● ●● ●●● ●● ● ● ●
● ● ●● ●
●● ●
●
●
H0 ( 90 )
H1_1 ( 90 )
H1_2 ( 90 )
H1_3 ( 90 )
H1_4 ( 90 )
H1_5 ( 90 )
H1_6 ( 90 )
H2_1 ( 90 )
H2_2 ( 89 )
H2_3 ( 90 )
H2_4 ( 90 )
H2_5 ( 90 )
H2_6 ( 90 )
H3_1 ( 70 )
H3_2 ( 68 )
H3_3 ( 84 )
H3_4 ( 89 )
H3_5 ( 90 )
H3_6 ( 90 )
H4_1 ( 68 )
H4_2 ( 69 )
H4_3 ( 85 )
H4_4 ( 90 )
H4_5 ( 90 )
H4_6 ( 90 )
0 20 40 60 80 100 120 140
(b) n25 (90 instances).
172 COMPUTATIONAL STUDY OF THE HEURISTICS
calculated for these instances) the same trend is seen in the first cost and
best cost box plots in Figures 6.5c and 6.6c, respectively.
This ends the discussion of the results of all 25 heuristic methods. Additional
results specific to the construction heuristic are discussed in the following
section (with reference to more results in Section I.1 of Appendix I), while
results specific to the catalyst heuristics are discussed in Section 6.5.
6.4 Construction heuristic results
The computational results presented in Section 6.3 evaluated and compared
the performance of all 25 heuristic methods across a range of common mea-
sures. In this section, results specific to the construction heuristic, H0, are
discussed. Problem instance characteristics that influence the relative suc-
cess of H0 are given particular attention, including the data group type
(BKA versus the data generated in Chapter 3, discussed in §6.4.1), the
number of jobs (§6.4.2), the number of precedences (§6.4.3), and the vari-
ability of maximum time window widths (§6.4.4). Key results for each data
group are also reported in Sections 6.4.5–6.4.8.
Since the construction heuristic did not produce any feasible solutions for
any n100 problem instance within the original 300 second time limit (see
Table 6.6d, p.160), all of the n100 (Data Classes 16–21) results reported in
this section are from the extended experiments with a time limit of 10,300
seconds.3
Recall that the construction heuristic is not guaranteed to produce a feasible
solution for every insertion order. Moreover, the likelihood of successfully
producing a feasible solution with a random insertion order for any SOP-TW
data set is dependent on the characteristics of that data set; it is inherently
easier to find feasible solutions for some problem instances (for example,
those with very wide time windows). Consequently, the results that follow
are discussed at up to three resolutions; for individual data sets, at the
data class level (where all instances within a class have the same input
310,300 seconds is the time limit for all exact methods for the n100 instances. Con-
sequently, these construction heuristic results can be compared with the MIP results in
§4.6.4.6 and the scheduling-based B&B scheme results in Chapter 8.
6.4 Construction heuristic results 173
parameters to the data generator), and at the data group level (where all
instances within a group have the same number of jobs).
The complete set of tables and figures from which the following comments
are based are located in Section I.1 of Appendix I. For individual data
sets, Section I.1.1 contains results on: the number of insertion orders tried,
|IO|; the number of insertion orders that produced a feasible solution, |FS|;the number of unique feasible solutions constructed, |UFS|; the ratio of
successful insertion orders, Rsuccess = |FS|/|IO|; and the ratio of unique
feasible solutions, Runique = |UFS|/|FS|. In Section I.1.2, the results from
Section I.1.1 are aggregated at the data class and data group levels and
summarised via box plots and their summary statistics to describe the dis-
tribution of the values.
It is worth noting that a feasible solution is considered unique the first
time the corresponding job permutation is constructed. Consequently, cost
symmetric solutions—feasible solutions with the same total setup cost but
with different job permutations—are considered unique.
In the discussion of results that follows, superscripts on |IO|, |FS|, |UFS|,Rsuccess or Runique will be used to indicate particular sets of problem in-
stances, that is, RBKAsuccess refers to the Rsuccess values for the BKA instances.
6.4.1 BKA instances vs. n25/n50/n100 instances
Let χ denote the set of all n25, n50 and n100 problem instances, that is,
all data sets generated by the methodology described in Chapter 3. The
construction heuristic results highlight key differences between the charac-
teristics of the BKA problem instances and the problem instances in χ. In
particular, they demonstrate how, aside from fewer jobs, the BKA instances
appear to be significantly easier to solve on two fronts.
Firstly, the symmetry in the BKA data set values is highlighted by sig-
nificantly smaller uniqueness ratios, that is, RBKAunique � Rχunique (see Fig-
ures I.12a and I.13a) as the range for |UFS|BKA is fully contained in the
range for |UFS|χ (see Figures I.8 and I.9) despite |FS|BKA � |FS|χ (see
Figures I.6a and I.7a).
The most extreme example is data set (BKA, 6) which had the maximum
174 COMPUTATIONAL STUDY OF THE HEURISTICS
|FS| (624,058) and minimum |UFS| (14,879) of all BKA instances, resulting
in the minimum Runique of 0.024; just 2.4% of the 624,058 feasible solutions
found were unique. This seems unsurprising when the distribution and value
of the setup times (costs) for this instance are considered, as shown in Ta-
ble 6.7; of the 114 arcs that remain after preprocessing, 81 arcs had non-zero
setup times, with only 7 unique values. Consequently, many unique feasible
solutions for this instance had the same total cost (sum of the solution setup
times) due to the combined effect of the small number of preprocessed arcs,
the distribution of the setup times on those arcs, and the greedy nature of
the construction heuristic. However, this combined effect also led to dispro-
portionately many insertion orders producing the same feasible solutions,
resulting in such a low value of Runique.
Setup time Frequency
0 33
6 21
10 18
12 9
16 19
24 11
30 2
35 1
114
Table 6.7: Distribution of setup times for data set (BKA, 6).
Secondly, the wider time windows throughout the BKA data sets (discussed
in §4.5.4, and indicated by |P TW | = 0 for all instances in Table G.5) con-
tributes to the significantly higher success ratios, that is, RBKAsuccess � Rχsuccess
(see Figures I.10a and I.11a) as |FS|BKA � |FS|χ (see Figures I.6a and I.7a)
despite
q3(|IO|BKA) < mean(|IO|n25)� min{|IO|n50} � min{|IO|n100},
that is 75% of BKA instances had an |IO| less than the mean |IO| of the n25
instances (see Figure I.4b and Table I.16), both of which are much smaller
than the minimum number of insertion orders tried for the n50 and n100
instances (see Figure I.5a).
6.4 Construction heuristic results 175
6.4.2 Number of jobs, n
As n increases, the number of feasible solutions found, |FS|, decreases sig-
nificantly (see Figure I.6) even though the number of insertion orders tried,
|IO|, increases (see Figure I.4). As a result, Rsuccess decreases dramatically
as n increases (Figure I.10). This demonstrates how complexity increases
with increasing n, thus we do expect the construction heuristic to fail, which
is seen for the n100 instances.
Moreover, Runique increases with n (Figure I.12). |FS| is large for n25 but
still Runique is very high (over 92% for all n25 instances, and over 99.3%
for 75% of n25 instances; min(Rn25unique) = 0.920 and q1(Rn25
unique) = 0.993 in
Table I.20) so it is not surprising that as |FS| decreases for n50 and n100
that Runique increases too.
6.4.3 Number of precedences, |P |
Class 7 has the biggest range and interquartile range for |IO|, |FS| (and
therefore Rsuccess) and |UFS| of any of the nine n25 classes. Recall Table 3.8
(p.76): of the n25 classes, instances in Class 7 have the largest precedence
sets P (as pDISA = 1 in Table 3.5 on p.73) which can be seen in column α.
Moreover, Class 7 has the second largest precedence set PALL even though
γ = M (compare values in column α for Classes 1–6 that also have γ = M).
Despite this, the distribution of values for each data set parameter of Class 7
are not significantly different to Classes 1–6 (see §3.6.1–3.6.3, especially the
precedence delays in Figures 3.10 and 3.11 on p.81). Consequently, the very
large variation in construction heuristic measures |IO|, |FS|, Rsuccess and
|UFS| for Class 7 is likely due to a combination of (1) relatively larger |P |and |PALL|, and (2) a greater variability in the structure of the precedence
graphs P and PALL due to the additional precedences.
6.4.4 Variability of maximum time window widths, γ
Recall from Section 3.4.2.1 (p.70) that parameter γ controls the variability
in the width of the job time windows in a data set, and is the number of
176 COMPUTATIONAL STUDY OF THE HEURISTICS
average jobs that are able to be processed during the maximum time window
duration above the minimum time window duration.
Comparing high variability (γ = H) of the maximum time window widths
with low and moderate variability (γ = L and γ = M) delivers one of the
most clear results for the construction heuristic: Rsuccess increases with data
parameter γ.
For n25, compare the box plots for Class 8 which has γ = L, and the box
plots for Class 9 which has γ = H: RHsuccess > RLsuccess (Fig. I.11, p.375) as
|IO|H < |IO|L (Fig. I.5, p.372) and |FS|H > |FS|L (Fig. I.7, p.373).
For n50, compare the box plots for Classes 10-12 which have γ = M , and the
box plots for Classes 13-15 which have γ = H: RHsuccess > RMsuccess (Fig. I.11,
p.375) as |IO|H < |IO|M (Fig. I.5, p.372) and |FS|H > |FS|M (Fig. I.7,
p.373).
Consequently, Rsuccess increases with data parameter γ. This is unsurpris-
ing; holding all other attributes constant, increasing the average length of
time windows will increase the number of feasible solutions for that problem
instance. If the total number of feasible solutions is larger due to wider time
windows, the construction heuristic has a better chance of constructing a
feasible solution as, on average, there will be fewer time window violations.
If γ = H, the number of all precedence relations, given by |PALL|, decreases.
If |PALL| is small, then the probability that there will be either (1) a time
window violation or (2) a precedence violation (either of which will result in
the the insertion order not producing a feasible solution) will also decrease.
This is reflected in the Runique values; in Figure I.13b, compare the box plots
for Class 8 and Class 9 for the most striking difference. Class 8 is the only
n25 class with γ = L, and has the maximum |PALL| of 1,407. In contrast,
Class 9 is the only n25 class with γ = H, and has the minimum |PALL|of 542. Since the Class 9 problem instances have fewer precedences and
generally have wider time windows, a random insertion order is less likely to
produce an infeasible solution (as the probability of a time window violation
or precedence violation will decrease) thus each feasible solution generated
is more likely to be unique.
6.4 Construction heuristic results 177
6.4.5 Key results for BKA data group
Overall, the construction heuristic was the fastest heuristic to find feasible
solutions for the BKA instances, with at least one feasible solution found by
0.001 seconds for each of the 35 instances, as shown in Table 6.6a (compare
with 1 second for the fastest catalyst heuristics).
In addition to being fast, the construction heuristic consistently produced
feasible solutions; 75% of BKA instances had Rsuccess of 0.999 or more,
meaning at least 99.9% of the random insertion orders tried produced fea-
sible solutions for 75% of BKA instances. This indicates the inherent “eas-
iness” of the BKA data sets; almost all random permutations of the set
of jobs can produce a feasible solution via the construction heuristic for
75% of the instances. However, since the BKA problem instances contain
significant symmetries and have very wide time windows, many insertion
orders produce the same feasible solutions. Consequently, the ratio Runique
varies greatly for BKA with a minimum of 0.024, an interquartile range of
0.451, and range of 0.808 (compare the box plots in Figure I.12a, and see
Table I.20).
6.4.6 Key results for n25 data group
As with the BKA problem instances, the construction heuristic was the
fastest heuristic to find feasible solutions for the n25 instances, with at
least one feasible solution found by 0.1 seconds for each of the 90 instances,
as shown in Table 6.6b (compare with 10 seconds for the fastest catalyst
heuristics: H1 4, H2 4 and H3 6).
The quality of the feasible solutions found by the construction heuristic are
close to those of the best quality catalyst heuristics (Figures 6.5b and 6.6b).
The best cost gap was 0% as 11 of 90 instances had the optimal solution
found within the 60 second time limit; the worst cost gap at 60 seconds was
14.8%.
With respect to Rsuccess, the hardest instance is (7,2) with only 13.3% of
insertion orders tried producing feasible solutions (Table I.12). The easiest
instance is (9,4) with 64.6% of insertion orders producing feasible solutions.
178 COMPUTATIONAL STUDY OF THE HEURISTICS
As noted in §6.4.4, Rsuccess increases with data parameter γ; this effect was
very clear for the n25 data group (see the box plots for Classes 8 and 9 in
Figure I.11b).
Unlike the BKA problem instances, almost all insertion orders that pro-
duced feasible solutions, produced unique feasible solutions; see Figures I.12a
and I.13a.
6.4.7 Key results for n50 data group
Overall, the construction heuristic performed well within the 180 second
time limit for each data set. As shown in Table 6.6c, all 60 instances had at
least one feasible solution found by 1 second. In contrast, the best catalyst
heuristic (H1 1) had at least one feasible solution found by 1 second for
only 5% of instances, and only 73.3% of the instances (44 out of 60) by 180
seconds.
Of the 21 instances where the optimal solution is known4, the construction
heuristic never found the optimal solution; the best gap for any of those
instances after 180 seconds was 11.6%.
Even though the construction heuristic found feasible solutions very quickly
for all n50 instances, Rsuccess decreased very significantly when compared
to results for n25 and BKA; see Figures I.10–I.11 which shows the clear
trend that Rsuccess decreases with increasing n. This demonstrates that
these problem instances are substantially harder to solve due to the higher
number of jobs to schedule, which is in line with the complexity results (see
§2.3, p.25).
The construction heuristic found more feasible solutions when γ = H (Classes
13–15), rather than when γ = M (Classes 10–12); see Figure I.7b. This
makes sense; when γ = H, there exists a greater proportion of wider time
windows, thus the proportion of feasible solutions when compared with the
(fixed) number of insertion orders (n!) is also greater. As a result, the
construction heuristic has a greater chance of generating a feasible solution
from any random insertion order, which is reflected by higher Rsuccess val-
ues (compare Classes 13–15 with 10–12 in Figure I.11b), and a significant
4As determined by any exact method in this thesis.
6.4 Construction heuristic results 179
increase in the number of feasible solutions found.
With respect to Rsuccess, the hardest instance is (11,10) with only 0.152% of
insertion orders tried producing feasible solutions (only 439 feasible solutions
found, Table I.13). The easiest instance is (13,2) with 6.3% of insertion
orders producing feasible solutions (15,157 feasible solutions found).
While Runique increased dramatically from BKA to n25, Runique increased
again for n50 such that all insertion orders that produced feasible solutions,
produced unique feasible solutions; Runique = 1 for all n50 instances (see
Table I.20 and Figures I.12–I.13).
6.4.8 Key results for n100 data group
The effectiveness of the construction heuristic disappeared for the 100 job
problem instances; no feasible solution was found for any instance within the
300 second time limit. This is unsurprising; these data sets are substantially
harder to solve due the larger number of jobs to schedule, which is supported
by the complexity results (see §2.3, p.25).
When given the extended time limit of 10,300 seconds, only 4 of 60 n100
instances (6.7%) had a feasible solution constructed, and all had high γ
(Classes 19–21, n100 4–n100 6). Table 6.8 shows the total number of in-
sertion orders tried during the time limit, and the time at which the sole
solution was found.
Class # & name # |IO| Time (secs)
19, n100 4 4 3,157,071 5,753.8
20, n100 5 10 3,226,303 8,790.9
21, n100 6 4 3,261,751 1,414.3
21, n100 6 8 3,439,096 3,251.4
Table 6.8: Total number of insertion orders tried for each of the four n100
instances which had a single feasible solution constructed, and the time the
solution was produced.
Since the insertion orders are generated randomly, the insertion order that
produced the feasible solution could have been generated at any time. How-
180 COMPUTATIONAL STUDY OF THE HEURISTICS
ever, the probability of generating a feasible solution from a random insertion
order is approximated by the ratio of success, Rsuccess, which is 3 × 10−7
for these four instances. Since we intentionally generated feasible problem
instances via the data generator described in Chapter 3, all of the n100
instances do have feasible solutions even though no feasible solutions are
found by the construction heuristic for the majority of instances.
6.4.9 Conclusions
The complexity results which show that, in general, finding feasible solutions
to the SOP-TW is NP-complete in the strong sense, indicates that heuristics
like the construction heuristic are unlikely to be successful on non-trivial
problem instances. Consequently, the results obtained in this chapter are not
surprising, namely that the construction heuristic would work fast and with
great success on the BKA and n25 instances (17 and 25 jobs, respectively),
but would start to slow for the n50 instances, and then be highly unsuccessful
for the n100 instances. Indeed, this is precisely the behaviour observed.
However, as will be discussed later, the construction heuristic may be very
useful when incorporated into another solution technique.
6.5 IP-based catalyst heuristic results
In the IP-based catalyst investigations, a surrogate problem is solved: MIP1
or MIP2 with a surrogate objective function (see §5.4.2, p.145). For each fea-
sible solution found by a catalyst method, the time it was found is recorded
and the true cost of that solution is calculated to evaluate its quality. The
times are compared with the time it takes to find feasible solutions for the
MIPs with the true objective function (that is, the pure MIPs where the
catalyst weight is zero). Some general observations for the SOP-TW are:
• The quality of the results are heavily dependent on the choice of the
catalyst penalty (βi) in the surrogate cost function, which was varied
via a weight (ωi).
• The surrogate component of the cost function should depend on the
size and attributes of the problem instance (such as ρ) if a single
6.5 IP-based catalyst heuristic results 181
catalyst weight is to be used across a range of instances.
• It was relatively easy to find a range of penalties that produced feasible
solutions faster than the pure MIPs. Indeed, with good values for the
weight, the first feasible solution to the surrogate problem was often
found much faster than the first feasible solution to the true problem
(see Figures 6.1b and 6.1c on page 161, where Hi 1 corresponds to the
pure MIPs for i ∈ {1, 2, 3, 4}).
• With good values for the weight and fixed solution time, more feasible
solutions were found for the surrogate problem than the true problem
(see Figures 6.2 and 6.3, on p.164 and p.165 respectively).
• The true-cost quality of the feasible solutions was very good for low
weights (0.01 and 0.1); see Figures 6.7 and 6.8 on page 171, where
results with these weights correspond to box plots Hi 2 and Hi 3 for
i ∈ {1, 2, 3, 4}.
• Many BKA instances and some n25 instances were solved to optimal-
ity (in terms of the surrogate cost function) in much less than the 60
second time limit, thus the results for best time and the number of
solutions found are naturally truncated.
6.5.1 Key results for BKA data group
Both H1 and H3 performed well for the BKA problem instances, but H1
(MIP1 ) generally outperformed H3 (MIP2 ). This is demonstrated in Fig-
ure 6.1a (p.161); method H1 j consistently finds the first feasible solution as
fast (if not faster) than H3 j, for all catalyst weights ωj where j ∈ {1, . . . , 6}.Moreover, the best true-cost solutions are generally found faster by the H1
methods compared to the H3 methods; see Figure 6.4a (p.167).
There is not much difference between H1 and H3 in terms of the quality of
the first and best solutions found (Figures 6.5a and 6.6a, p.169 and p.170
respectively), though the cost gap of the best solution found does increase
with increasing weight (see Figure 6.8a, p.171) as anticipated.
182 COMPUTATIONAL STUDY OF THE HEURISTICS
6.5.2 Key results for n25 data group
The results for catalyst methods H1, H2, H3 and H4 show very clear patterns
on the n25 problem instances. For each i ∈ {1, . . . , 4}, Figures 6.2b (p.164)
and 6.3b (p.165) show that the number of solutions found by method Hi j
increases as j increases (that is, the weight ωj increases), while Figure 6.1b
(p.161) shows that the time the first solution is found by method Hi j de-
creases as j increases. Both of these results provide supporting evidence for
the hypothesis that the IP-based catalyst method may be able to find more
feasible solutions faster than solving the pure MIPs (recall that M1=H1 1,
M2=H2 1, M3=H3 1 and M4=H4 1).
The trade-off of the catalyst methods (quantity and speed to find feasible
solutions at a cost to solution quality) is particularly evident for weights of
1 or more (Hi j for j ∈ {4, 5, 6}), as demonstrated by increasing cost gap of
the first solution found as seen in Figure 6.7b (p.171), and increasing cost
gap of the best solution found in Figure 6.8b (p.171).
6.5.3 Key results for n50 data group
The construction heuristic found at least one feasible solution by 1 second
for all 60 n50 problem instances. In contrast, none of the catalyst methods
found at least one feasible solution for all 60 instances within the 180 second
time limit; the best performing method is H1 4 with at least one feasible
solution for 73.3% of the instances, as per Table 6.6c (p.160). Catalyst
methods with low weights (Hi 2 and Hi 3) very clearly lagged behind the
methods with higher weights (Hi 4 to Hi 6) at all key times. Indeed, the
pure MIPs (Hi 1) were clearly outperformed on this measure by all catalyst
measures with higher weights (Hi 4 to Hi 6) at all key times.
For almost all key times and weights, the MIP1 catalyst methods (H1 and
H2) dominated the MIP2 catalyst methods (H3 and H4). This is seen in the
percentage of instances with at least one feasible solution found (Table 6.6c,
p.160) and the number of solutions found (Figures 6.2c and 6.3c, pages 164
and 165). Given so many of the n50 instances did not have feasible solutions
found within the 180 second time limit, it is much harder to draw meaningful
conclusions on the cost of the first and best solutions found, though they do
6.5 IP-based catalyst heuristic results 183
appear to increase with increasing weight.
6.5.4 Key results for n100 data group
Four of the 24 catalyst methods—three with a catalyst weight of 1—produced
feasible solutions for up to 10% of n100 instances within the original heuristic
time limit of 300 seconds; see Table 6.6d (p.160). Since no feasible solutions
were found for any n100 instance with the pure MIPs (see Section 4.6.4.6,
p.116) with a time limit of 10,300 seconds, these results support the hypoth-
esis that the IP-based catalyst with a non-zero weight can be a method for
finding feasible solutions faster than solving the pure MIPs directly for the
SOP-TW.
For the best weight of H1, H2, H3 and H4, the time limit was extended
to 10,300 seconds to determine if additional instances had feasible solutions
produced. The reasoning for the selection of weights is given in Table 6.9.
However, extending the time limit for those catalyst methods did not pro-
duce feasible solutions for any other n100 instances, indicating how hard it is
to find feasible solutions for these larger instances with these heuristic meth-
ods. Indeed, computational limits were encountered for the extended-runs
as follows.
Recall from §6.1 that CPLEX parameter CPX PARAM NODEFILEIND was set
to 3. CPLEX’s default working memory is 128MB; when the size of the
tree exceeds 128MB, some nodes are transferred to node files which are
compressed and stored in memory (that is, CPX PARAM NODEFILEIND=1 is the
default setting). To extend memory without increasing working memory, we
set parameter CPX PARAM NODEFILEIND to 3 so that node files are transferred
to disk and compressed. Even then, for three of the four MIP-based heuristic
methods allowed the extended time limit of 10,300 seconds, CPLEX ran out
of memory trying to solve numerous instances as summarised in Table 6.10.
Consequently, while the results reported in this chapter do provide some ev-
idence to support the hypothesis that the catalyst methods can sometimes
find feasible solutions faster than solving the pure MIPs directly, computa-
tional limits may be encountered with these IP-based heuristics. In contrast,
the construction heuristic does not use a large amount of computational ef-
fort, memory or special software.
184 COMPUTATIONAL STUDY OF THE HEURISTICS
Method Weight Reason
H1 4 ω4 = 1 This was the only weight for an H1 method where solutions
were found by 300 seconds (8.33%, 5 of 60 instances).
H2 4 ω4 = 1 This weight had the largest number of instances with at
least one solution by 300 seconds (10%, 6 of 60 instances
for ω4 = 1; compare with 1.67% for ω6 = 10, and none for
the other weights).
H3 4 ω4 = 1 This was the only weight for an H3 method where solutions
were found by 300 seconds (1.67%, 1 of 60 instances).
H4 6 ω6 = 10 No solutions found for any H4 method by 300 seconds.
Looking at the n50 results, weight ω6 = 10 produced the
most data sets with at least one solution found (14 com-
pared with 1, 0, 1, 11 and 10 for the first five weights respec-
tively). The number of solutions found by an H4 method
is also generally higher for this weight for each of the other
data groups.
Table 6.9: Catalyst weights for the extended n100 experiments.
Method Count Percentage
H1 4 22 36.7%
H2 4 23 38.3%
H3 4 4 6.7%
H4 6 0 0.0%
Table 6.10: Number and percentage of n100 problem instances that did not
finish solving for each extended-run heuristic due to lack of memory.
6.6 Heuristics in a branch-and-bound scheme 185
6.5.5 Conclusions
The catalyst methods were relatively quick to find feasible solutions for the
BKA and n25 instances, but slowed considerably for the n50 instances.
Despite that, the best catalyst methods still found feasible solutions faster
than the pure MIPs for these instances. For example, method H1 4 found
feasible solutions for 73.3% of the n50 instances by 180 seconds; in contrast,
the corresponding pure MIP method M1 (H1 1) found no feasible solutions
for any of the n50 instances in the same time. Similarly, none of the pure
MIPs found solutions for the n100 instances, but the best catalyst methods
found solutions for up to 10% of those instances.
Despite outperforming the pure MIPs and construction heuristic on the
hardest problem instances, these heuristics cannot reliably produce feasible
solutions within a reasonable time limit. Consequently, alternative solution
techniques will be investigated in the next chapter. However, as will be
discussed in the next section, the best catalyst methods (and the construc-
tion heuristic) may be very useful when incorporated into another solution
technique.
6.6 Heuristics in a branch-and-bound scheme
The construction heuristic and the IP-based catalyst heuristics studied in
this chapter can be incorporated into a branch-and-bound scheme, such as
the one proposed in the next chapter, in an attempt to generate feasible
solutions—heuristic upper bounds—at key points of the solution process.
6.6.1 At the root node
Regardless of whether the B&B tree is LP-based or scheduling-based, any or
all of the heuristics could be executed at the root node of a B&B tree. This
would correspond to solving the original (unrestricted) problem, as solved
in this chapter.
The heuristic results showed that the relative effectiveness of each method
at finding feasible solutions varied with the number of jobs and time limit
186 COMPUTATIONAL STUDY OF THE HEURISTICS
allowed. Consequently, the time limit provided for each heuristic at the root
node should depend on the method and the size of the problem instance.
For example, the construction heuristic is very fast to find feasible solutions
for smaller problem instances; it needs less than 5 seconds to find many
feasible solutions for instances with 50 or fewer jobs. In contrast, execut-
ing the construction heuristic at the root node for 100 job problems is not
worthwhile; the time required to find at least one feasible solution may be
prohibitive. Instead, computation time may be better spent solving the
problem with an exact method that embeds the heuristic at key points of
the solution process. For example, the construction heuristic could be exe-
cuted at select nodes within the scheduling-based B&B scheme proposed in
the next chapter; for n100 instances, this may mean running the construc-
tion heuristic at nodes where 50–75 jobs have already been scheduled, and
thus only 25–50 jobs remain to be scheduled.
The catalyst methods with weights greater than or equal to unity find feasi-
ble solutions faster than the corresponding pure MIPs (that is, the catalyst
methods with zero weight) for both the n25 and n50 instances (Figure 6.1).
This gives some insight on which catalyst weights to use, the problem sizes
the catalyst may be useful for, and also the minimum time required to have
a good chance at finding at least one feasible solution. Consequently, the
results from this chapter provide a guide to determining where, when, and
the duration of including the catalyst within other methods, such as the
scheduling-based B&B scheme in the next chapter.
6.6.2 At nodes within the tree
When executing a heuristic at a node within a B&B tree, information avail-
able at the B&B node may be useful. In the case of a scheduling-based B&B
tree, a node represents a feasible forward partial schedule, thus this infor-
mation could be used as input to the heuristic. As a result, it may actually
speed up the time required to obtain an outcome from the heuristic, as some
decisions have already been made.
In the next chapter, we propose using the construction heuristic and the
best catalyst method within our scheduling-based B&B tree in an attempt
to find upper bounds (feasible solutions). For any heuristic inclusion, there
6.7 Other heuristic techniques 187
is a trade-off between the benefit of finding an upper bound, and using the
time limit to investigate as many nodes as possible to raise the lower bound
(and thus say something about the optimality gap if the branch-and-bound
process terminates prior to optimality). Since it would be time consuming
to run the heuristics at all nodes, careful consideration must be given as
to when, where and for how long each heuristic should be executed. That
balance is investigated via a computational study that considers a range of
scenarios.
The construction heuristic results described earlier suggest that it could
be very effective to execute the construction heuristic at select nodes of a
scheduling-based B&B scheme: briefly (<5 secs) at nodes at level 25 for n50
problem instances (that is, where only 25 jobs remain to be scheduled), and
at levels 50 and 75 for n100 problem instances (where only 50 jobs and 25
jobs remain, respectively).
The catalyst results suggest that it may be effective to use method H1 4
(MIP1 with original precedence set P and a catalyst weight of 1) for 10
seconds on SOP-TW subproblems with only 25 jobs remaining. This cor-
responds to nodes at level 25 of n50 B&B trees, and level 75 of n100 B&B
trees. Since there are many B&B nodes at each of these levels, 10 seconds
is a significant amount of time to dedicate to a heuristic method. Conse-
quently, 5 seconds may provide a better balance between success at finding
a feasible solution for the time investment spent trying to find those feasible
solutions.
6.7 Other heuristic techniques
There are many other heuristics that could be adapted and applied to solve
the SOP-TW. In this section, Lagrangian relaxation heuristics and improve-
ment heuristics are briefly discussed. In particular, a Lagrangian-based
heuristic we implemented and trialled is outlined. However, a further in-
vestigation of these types of heuristics is beyond the scope of this thesis for
reasons that will be noted.
188 COMPUTATIONAL STUDY OF THE HEURISTICS
6.7.1 Lagrangian relaxation heuristics
Lagrangian relaxation is a method for finding lower bounds on the optimal
value of a problem. The “difficult” constraints of the problem are relaxed
into the objective function via penalties called Lagrange multipliers. The
remaining constraints are “easy”, so solving the relaxed problem is also
easy. The optimal value of this relaxed problem gives a lower bound on the
optimal value of the original problem.
A Lagrangian heuristic is a method that endeavours to convert the solution
of a Lagrangian relaxation subproblem (which gives a lower bound) into
a feasible solution of the original problem (which gives an upper bound).
Given we are trying to find the optimal solution to the original problem, we
seek the maximum lower bound that can be achieved by a Lagrangian relax-
ation subproblem. While many different methods can be used to do this, the
iterative method of subgradient optimisation was used in our implementa-
tion (discussed in §6.7.1.1–6.7.1.2) to determine the value of the Lagrangian
multipliers. For more details on Lagrangian relaxation, Lagrangian heuris-
tics and subgradient optimisation, the interested reader is referred to [97],
[98], [99] and [100]. See [61] for a brief review of Lagrangian relaxation
approaches applied to the VRP-TW.
If a Lagrangian heuristic is successful at producing a feasible solution, the
value of this solution is an upper bound on the optimal value of the origi-
nal problem. This solution, along with the best lower bound, can be used
in a number of ways. One important use is within a branch-and-bound
framework and is discussed in the next section.
6.7.1.1 Lagrangian heuristics within a B&B framework
When a Lagrangian heuristic is used within a branch-and-bound framework,
this becomes an exact solution technique. Nevertheless, in practice, it can
be difficult to solve large problems to optimality in a reasonable amount of
time. In general, performing many subgradient iterations will reduce the
gap between the lower and upper bounds, and thus should reduce the size
of the B&B tree. However, this may come at a significant computational
cost. In spite of this, if insufficient subgradient iterations are performed,
6.7 Other heuristic techniques 189
the bounds may be weak, resulting in a larger B&B tree. Thus a trade-
off exists between the size of the tree and the total number of iterations.
Consequently, an efficient scheme requires careful implementation: it relies
upon generating good quality bounds in reasonable time, via an effective
subgradient search procedure.
Schemes that combine branch-and-bound with Lagrangian heuristics are
regularly used to solve NP-hard problems. For example, a branch-and-
Lagrangian solution approach has been successfully applied to another TSP
variant: the Asymmetric Travelling Salesman Problem with Replenishment
Arcs [2]. Focacci, Lodi and Milano [38] also use a Lagrangian approach to
improve the quality of the bounds they use in their overall approach. They
found their overall approach to be effective when compared with the state-
of-the-art methods in the literature. Consequently, if good lower bounds are
obtained, it appears that this scheme can be applied very successfully.
Our implementation of a Lagrangian heuristic for the SOP-TW involves
solving the Assignment Problem relaxation given by
(AP) min∑
(i,j)∈A
sijxij
s.t. (4.1)− (4.2)
xij ∈ [0, 1] ∀(i, j) ∈ A.
The major benefit of the Assignment Problem relaxation is that the solu-
tion is naturally integral (that is, the linear relaxation of the Assignment
Problem always gives binary solutions when solved with a simplex-type
method). Consequently, each subproblem is a simple linear program that
is easy to solve. We Lagrangian-relax the subtour elimination constraints,
SECs, (4.13) and infeasible path elimination constraints, IPECs, (4.14) of
MIP3 (see §4.3). Given there are exponentially many constraints in these
sets it is not feasible to relax all constraints into the objective. Instead,
violated constraints are added into the objective as they are found during
subgradient optimisation.
The subgradient optimisation procedure requires an upper bound to ini-
tialise a step size that is used to update the Lagrange multipliers. If this
upper bound is weak, this directly impacts the choice of the Lagrange mul-
tipliers. Given our construction heuristic and most of the catalyst methods
190 COMPUTATIONAL STUDY OF THE HEURISTICS
failed to produce feasible solutions for the vast majority of n100 problem in-
stances, we could not use these heuristics to reliably produce upper bounds.
6.7.1.2 Preliminary implementation, results and further work
Details of the implementation we trialled are omitted, as this line of research
was not investigated beyond a very basic scheme, which entailed solving the
Assignment Problem relaxation with minimal SECs and minimal IPECs
added to the objective as they were found during subgradient optimisation.
While additional constraints and liftings could be included, the scheme was
not extended. The initial results for the n25 instances were not particularly
promising (weak lower bounds; long time to converge; tuning to find suitable
parameters was onerous; no feasible solutions were found), so we decided not
to investigate this method any further, especially since both the construction
heuristic and catalyst methods were producing excellent heuristic results
for small to medium sized problems. For larger problems, we decided to
pursue exact B&B methods which incorporate the construction heuristic
and catalyst methods to attempt to find upper bounds during the solution
process.
However, there are many options for extending the Lagrangian scheme men-
tioned here. Firstly, strengthenings to the minimal subtour elimination con-
straints and minimal infeasible path elimination constraints may be found.
Additionally, other constraints could be trialled; all valid inequalities for
SOP-TW relaxations (for example, the ATSP-TW and SOP; see §2.2, p.20)
are also valid for the SOP-TW, so any or all of these valid inequalities could
be included in the scheme.
Once the scheme is competitive with other heuristics both in terms of time
and strength of the lower and upper bounds generated, it may be worth
inserting the Lagrangian heuristic into a B&B framework.
6.7.2 Improvement heuristics
Many heuristics—such as Simulated Annealing [101], Tabu Search [102],
Local Branching [89] and Relaxation Induced Neighborhood Search [88]—
require a feasible solution to initialise, and subsequently attempt to find
6.8 Key findings and further work 191
better feasible solutions. Since our construction heuristic and most of the
catalyst methods failed to produce feasible solutions for the vast majority
of n100 problem instances, we can not reliably produce feasible solutions to
seed these types of improvement heuristics.
In contrast, some heuristics—such as Evolutionary Algorithms like Genetic
Algorithms [103]—do not require initial feasible solutions, but can per-
form better if feasible solutions are in the initial population (for example,
see [104]). However, since these techniques are still heuristics, there is no
guarantee of obtaining an optimal solution, let alone a feasible solution. As
a result, investigation of additional heuristics are beyond the scope of this
thesis. Instead, exact methods which may have better success at finding
feasible solutions for the n100 instances are considered in the next chapter.
6.8 Key findings and further work
At least one catalyst heuristic outperforms the pure MIPs5 at all key time
points for the n25, n50 and n100 data groups (see Table 6.6). This supports
the hypothesis that the IP-based catalyst with a non-zero weight can be a
method for finding feasible solutions faster than by solving the pure MIPs
directly for the SOP-TW.
The construction heuristic clearly dominates the catalyst methods for BKA,
n25 and n50 problem instances, both in terms of producing feasible solutions
quickly, and producing many feasible solutions. In terms of true cost quality
of the best solutions found, the best catalyst methods mostly perform at
least as well as the construction heuristic. However, neither the construction
heuristic or the catalyst methods (for any weight) are satisfactory at reliably
producing feasible solutions for the n100 problem instances, let alone quickly.
This is unsurprising given the complexity results (§2.3, p.25).
As noted earlier, these results suggest that these heuristic methods are only
suitable for use on smaller problem instances (50 or fewer jobs). Conse-
quently, we will investigate how they could be incorporated into an exact
B&B scheme for tackling larger problems in the next chapter.
5Recall that the pure MIPs correspond to Hi 1 for i ∈ {1, 2, 3, 4} as weight ω1 = 0.
192 COMPUTATIONAL STUDY OF THE HEURISTICS
The heuristic investigations presented in this chapter give rise to many in-
teresting questions. These include:
• Can insertion orders be generated in a non-random way that increases
the probability of producing a feasible solution? If so, this could im-
prove the success of the construction heuristic on n100 instances.
• Can a “symmetry indicator” be devised that evaluates the level of
symmetry a priori? That is, can examining a data set ahead of solving
it indicate the level of symmetry anticipated? This idea arose due
to (BKA,6): all insertion orders produced a feasible solution thus
Rsuccess = 1. However, less than half the number of unique feasible
solutions of any other BKA instance were produced for (BKA,6), and
thus it had the smallest Runique of any BKA instance. We believe this
is due to the significant amount of symmetry in the data set, which
means that the same solutions are repeatedly sampled. Knowing the
relative level of symmetry ahead of running a heuristic may be useful
as it may inform the time limit provided to the heuristic.
• Could analysing optimal solutions (or suboptimal feasible solutions)
provide greater insight on good catalyst weights? A computational
study analysing the optimal solution(s) of each problem might suggest
a different perturbation scheme that may allow a closer relationship
between the surrogate cost function and true cost function. Indeed, it
would be very interesting to see if general conclusions could be made.
• What other schemes could be used to determine and/or apply weights
in the catalyst heuristic? For example, weights may vary for each job
(in MIP1 ) or job-pair (in MIP2 ) and may be a function of problem
attributes such as time windows or set-up times, or vary dynamically
with run time; determining the best weights to use is a complex opti-
misation problem in its own right.
• What other surrogate cost functions could be used? Instead of per-
turbing the true objective function by adding the βt (βy) component
to MIP1 (MIP2 ) perhaps there is another option; this may include re-
moving cx from both surrogate cost functions. Alternatively, entirely
new variables could be added; since this could change the underlying
MIP, in the first instance it may be worth incorporating new variables
6.9 Chapter summary 193
and constraints that are redundant.
Unfortunately, answers to these questions are beyond the scope of this thesis
but are recommended for future research. Additionally, it would be interest-
ing to investigate various improvement heuristics but they are also beyond
the scope of this thesis.
6.9 Chapter summary
In Chapter 5, several heuristics for finding an initial feasible solution were
presented. In this chapter, a comprehensive computational study of those
heuristics was performed. The key measures of interest for each heuristic
were:
• number of solutions found;
• time to first solution;
• time to best true-cost solution;
• true cost of first solution;
• true cost gap of first solution (if optimal value is known);
• cost of best true-cost solution; and
• cost gap of best true-cost solution (if optimal value is known).
The results for each of these measures were discussed, and summarised
graphically and numerically in a series of figures and tables.
An insertion-based construction heuristic for the SOP-TW was described
in Section 5.3; the results of experiments on this heuristic were discussed
in Sections 6.3 and 6.4. The construction heuristic was very successful at
finding good quality feasible solutions quickly for smaller problem instances,
but was unable to find any for the n100 data sets with the original heuristic
time limit of 300 seconds. With the extended time limit of 10,300 seconds
(that is, the same time limit given to the pure MIPs in Section 4.6.4.6) a
single feasible solution was found for only four of the 60 data sets. However,
since none of the pure MIPs produced feasible solutions for these instances
within 10,300 seconds, this is some progress in tackling these hard problems.
194 COMPUTATIONAL STUDY OF THE HEURISTICS
In Section 5.4, an IP-based perturbation heuristic that solves a modified MIP
was proposed; the results of experiments on this heuristic were discussed
in Sections 6.3 and 6.5. When tuned appropriately, the modification to
the objective function acts like a catalyst, enabling feasible solutions to
be found faster than solving the equivalent true MIP. The trade-off was
solution quality; the surrogate MIP has a modified objective function, so the
feasible solutions found were suboptimal. Like the construction heuristic,
this catalyst heuristic was also very successful at finding feasible solutions
quickly for small problem instances.
Most importantly, four of the 24 catalyst methods—three with a catalyst
weight of 1—produced feasible solutions for up to 10% of n100 instances
within the original heuristic time limit of 300 seconds. This provides sup-
porting evidence for the hypothesis that the IP-based catalyst with a non-
zero weight can be a method for finding feasible solutions faster than solving
the pure MIPs directly for the SOP-TW. However, extending the time limit
to 10,300 seconds for those methods did not produce feasible solutions for
any other n100 instances, indicating how hard it is to find feasible solutions
for these larger instances.
Although various improvement heuristics could have been proposed and in-
vestigated, these were not implemented as finding feasible solutions to hard
problems is still a challenge. Consequently, the focus of the remainder of
this thesis is devising exact schemes that may generate feasible solutions
throughout the solution process. As mentioned in Section 6.6, this will
include incorporating the heuristics studied here into a branch-and-bound
scheme, both at the root node and at nodes within the B&B tree.
Chapter 7
A SCHEDULING
BRANCH-AND-BOUND
SCHEME
A branch-and-bound scheme based on a scheduling approach is presented in this
chapter. In this method, each node of a branch-and-bound tree represents a unique
partial schedule. The pruning criteria applied to identify partial schedules that lead
to infeasibility is a critical component of the scheme. This criteria is a list of
logical conditions that can be checked sequentially. Implementation notes for the
most complicated criteria are given, and the options for including heuristics at the
root node and within the branch-and-bound tree are discussed.
7.1 Introduction
Since finding feasible solutions to hard SOP-TW problems remains a chal-
lenge, the focus of this chapter is devising exact schemes that may generate
feasible solutions throughout the solution process. This includes incorpo-
rating the heuristics studied in the previous two chapters into a scheduling-
based branch-and-bound (B&B) scheme, both at the root node and at nodes
within the B&B tree. The B&B algorithm will be presented and the key
components will be discussed in detail. For additional details of branch-and-
bound and related topics for solving integer programs see [105, 106].
195
196 A SCHEDULING BRANCH-AND-BOUND SCHEME
The outline for the remainder of this chapter is as follows. In §7.2 a high-level
overview of the scheduling-based B&B algorithm is presented. The notation
and mappings used to describe and connect information in the B&B tree,
including forward partial schedules, is given in §7.3. The seven criteria used
to prune nodes in the B&B tree are described throughout §7.4, while ad-
ditional implementation details that are not immediately obvious are given
in §7.5. Section 7.6 describes how the best heuristics from Chapters 5 and
6 will be implemented within the scheduling-based B&B tree, both at the
root node and at nodes deeper in the tree.
7.2 A scheduling-based B&B algorithm
When constructing a B&B tree, each new node is labelled by a unique
identifier—usually the next unassigned integer—which is called its node
number. The root node is given the special node number of 0. Henceforth,
the node with node number i, will be referred to as node i. Consequently,
N is defined to be the set of all node numbers in a B&B tree, and each
element of N represents a node in the tree.
The problem at the root node of a branch-and-bound tree represents the full
problem, that is, when no decisions have been made. Every branch in a B&B
tree represents a decision, where this decision is in the form of restricting a
decision variable. Each new node (generated by a new branch) represents a
subproblem of the problem at its parent node.
In Section 4.2 two compact mixed integer linear programs (MIPs) for the
SOP-TW were presented. Commercial MIP solvers at their default settings
will use an LP-based B&B scheme to solve such formulations; this was the
case in Section 4.6.4. A generic algorithm for LP-based B&B is given in
Algorithm 12.
There is an important distinction between the standard LP-based B&B al-
gorithm and the scheduling-based B&B algorithm described in this chapter:
the former algorithm branches on fractional variables at a node, and the
latter algorithm branches on the assignment of a job to the next position
in the schedule, that is, it considers appending a job to the current partial
schedule dictated by the current B&B node. Such a B&B scheme, coupled
7.2 A scheduling-based B&B algorithm 197
Algorithm 12: An algorithm for LP-based branch-and-bound
Input: A mixed integer linear program with formulation F
Output: Problem status (optimal or infeasible) and solution
initialise
root node ← node 0
root node problem F 0 ← F
list of unexplored nodes ← {0} (i.e. root node only)
incumbent x∗ ← void
if minimising then z∗ ← +∞ else z∗ ← −∞
while list of unexplored nodes 6= ∅ dochoose node from list to explore: node i, representing problem F i
solve LP relaxation of F i: zi ← LP value, xi ← LP solution
if LP relaxation is infeasible thenprune node i due to infeasibility
else
// LP relaxation is feasible
if zi is worse than z∗ thenprune node i due to bound
else if LP relaxation is integer then
update incumbent: z∗ ← zi, x∗ ← xi
// no further branching required for this node
else
// zi is better than z∗, but xi is not integer
choose a variable that is fractional in xi for branching: xij /∈ Zcreate two child nodes by branching on xij : subproblems F i1 , F
i2
add nodes representing F i1 and F i2 to list of unexplored nodes
if incumbent = ∅ thenstatus ← infeasible
elsestatus ← optimal
return status, z∗, x∗
198 A SCHEDULING BRANCH-AND-BOUND SCHEME
with strong dominance rules, has been shown to be very effective for many
single machine scheduling problems such as 1|rj |Lmax and 1| |∑wjTj ; see
Pinedo [15] for details.
The effectiveness of the scheduling B&B scheme for the SOP-TW can be
justified intuitively. Recall that finding a feasible solution for the SOP-TW
is NP-complete in the strong sense. Hence any strong deductions that can be
carried out to prune infeasible or dominated solutions efficiently will stand
a good chance of performing well (compare with effective dynamic program-
ming approaches that also rely on the elimination of states via domination
or feasibility tests, such as in [7] and [12]). With the partial schedule ob-
tained at every node in the B&B scheme, many more deductions or tests
can be carried out at the node, in contrast to those possible for an LP-based
fractional solution. Furthermore, the deductions or tests can be specified in
“algorithmic” syntax that is easy to implement, as opposed to inequalities
or cuts in an LP-based B&B scheme, such as in branch-and-cut.
Recall the definition of the integer variables from Section 4.2.1, namely
xuv :=
1, if job v is processed immediately after job u,
0, otherwise,
where u, v ∈ V ∪ {0} and xuv exists if and only if (u, v) ∈ A where A is the
preprocessed arc set. In a scheduling branch-and-bound tree—BB—the root
node represents an empty schedule: the position of each job in the schedule
is unknown, and the value of each xuv has not yet been assigned.
Recall the definition of a forward partial schedule from Section 5.2. On each
branch of BB a decision will take the form xuv = 1 where the decision is
really “what is v?”, initialised with u=depot (a dummy job) on the branches
out of the root node. Thus each node in BB represents a forward partial
schedule, and each decision (branch) adds a new job to the forward partial
schedule of the parent node. The result of this approach is that each node
in BB represents a unique forward partial schedule. An example of BB with
four jobs is shown in Figure 7.1; note that BB is only partially expanded.
A generic algorithm for this approach is given in Algorithm 13, where the
input is a SOP-TW problem instance and a MIP formulation (which may be
one of the formulations given in §4.2), and the procedure CheckCriteria (de-
7.3 Notation and mappings for BB 199
*,*,*,*
1 ,*,*,* 2 ,*,*,* 3 ,*,*,* 4 ,*,*,*
1 ,2 ,*,* 1 ,3 ,*,* 1 ,4 ,*,*
1 ,3 ,2 ,* 1 ,3 ,4 ,*
Leve l 0
Leve l 1
Leve l 2
Leve l 3
x01 = 1 x02 = 1 x03 = 1 x04 = 1
x14 = 1x13 = 1x12 = 1
x34 = 1x32 = 1
Figure 7.1: An example of BB with four jobs. Each node at level l has the
first l jobs scheduled, with the job in the l-th position the latest job to be
scheduled. * denotes that a job has not been scheduled in that position.
scribed in Section 7.4) evaluates if the new child node under consideration—a
temporary node—should be pruned or added to the set of unexplored nodes.
7.3 Notation and mappings for BB
In this section notation and mappings to describe and connect information
at each node of the scheduling B&B tree, BB, are introduced; these are sum-
marised in Table 7.1 (p.201), along with other notation used in this chapter.
The relationship between nodes at adjacent levels of BB are demonstrated
in Figure 7.2 (p.203).
The level of a node describes the number of decisions that have been made
to reach that node. Thus the level of node i ∈ N of a B&B tree is given by
the depth of the branches leading from the root node to node i. In BB, the
level of a node also corresponds to the number of jobs in the partial schedule
at that node. Thus the maximum depth of the tree is the total number of
jobs to be scheduled, n = |V |.
200 A SCHEDULING BRANCH-AND-BOUND SCHEME
Algorithm 13: A scheduling-based branch-and-bound algorithm
Input: V , n, pu, au, bu, suv, P (with α’s), PALL (with α’s)
Output: An optimal schedule, or problem is infeasible.
initialise
list of unexplored nodes sorted by best LP value, heap← ∅incumbent x∗ ← void, z∗ ← +∞
solve LP at node 0 (root node)
z0 ← value of LP relaxation of node 0
x0 ← solution of the LP relaxation of node 0
UnscheduledJobs(0) = V // all jobs are unscheduled at root node 0
if LP at node 0 is infeasible thenstatus ← infeasible; goto return
else if x0 is integer then
update incumbent: z∗ ← z0, x∗ ← x0
status ← optimal; goto return
else
// LP is feasible but x0 is not integer
add node 0 to heap
while heap 6= ∅ dochoose node at head of heap: node i
if zi ≥ z∗ then// incumbent better than remaining nodes in heap
status ← optimal; goto return
else
forall the k ∈ UnscheduledJobs(i) do
// let the index of the new node be j
if procedure CheckCriteria(i,k) returns success then
zj ← value of the LP relaxation of node j
xj ← solution of the LP relaxation of node j
UnscheduledJobs(j)← UnscheduledJobs(i)\{k}if xj is integer then
if zj < z∗ then
update incumbent: z∗ ← zj , x∗ ← xj
// no further branching required for node j
elseadd node j to the heap, and sort such that the head of the heap
has best LP value
elseprune node j (as infeasible or dominated)
if z∗ = +∞ thenstatus ← infeasible
elsestatus ← optimal
return status, z∗, x∗
7.3 Notation and mappings for BB 201
Notation Description
n total number of jobs to be scheduled
V set of all jobs to be scheduled, where V = {1, . . . , n}A set of job-pairs such that (i, j) ∈ A if j can start directly after i
ai earliest start time of job i ∈ Vbi latest start time of job i ∈ Vpi processing time of job i ∈ Vsij setup time if job i is immediately followed by job j
αij minimum time delay required between starting jobs i and j
BB scheduling-based B&B tree
N set of all nodes in a B&B tree
N (l) set of all nodes at level l in a B&B tree
λ(i) level in BB of node i ∈ N
κ(i) new job added to the partial schedule at node i ∈ N
ψ(i) parent node of node i ∈ N
γ(i) set of child nodes of node i ∈ N
Si forward partial schedule at node i ∈ N , where Si = (v1i , . . . , v
λ(i)i )
and vmi is the job in the m-th position of SiSi set of jobs in the forward partial schedule Si at node i ∈ N ,
where Si = {v1i , . . . , v
λ(i)i }
β(w) job immediately before job w ∈ V in a schedule
I(w) set of all jobs processed before job w ∈ V in a schedule
tw actual start time of job w in a partial schedule
Ew earliest start time of job w based on strict predecessors of w,
where Ew = maxr∈I(w):(r,w)∈P {tr + αrw}Tw earliest start time of job w in a partial schedule,
where Tw = max{aw, Ew, Tβ(w) + pβ(w) + sβ(w),w}π(w) set of predecessors of w, where π(w) = {v ∈ V : (v, w) ∈ PALL}Πwj set of unscheduled jobs that are predecessors of unscheduled job w at
node j, where w ∈ (V \Sj) and Πwj = {m ∈ (V \Sj) : (m,w) ∈ PALL}Lkv set of unscheduled jobs that have exactly k unscheduled predecessors
(that is, |Πwj | = k) that would have their latest start time violated
as a result of scheduling job v in position l at node j
Pwj set of all permutation sequences formed from the set Πwj
T pw start time of job w given permutation sequence p ∈ Pwj precedes job w
TMINwj lower bound on minp∈Pwj{T pw}, that is, TMIN
wj ≤ minp∈Pwj{T pw}LBj the value of the LP relaxation of the problem at node j ∈ N
UBj the value of the best upper bound of the problem at node j ∈ N
Zj sum of partial schedule setup times at node j, Zj =∑m=l−1m=1 s
vmj vm+1j
Cj earliest completion time of partial schedule at node j, Cj = Tj + pv
Table 7.1: Summary of notation related to the scheduling-based B&B scheme.
202 A SCHEDULING BRANCH-AND-BOUND SCHEME
Let λ be a mapping such that
Nλ−→ {1, . . . , n}
maps a node number to the level of that node in the tree. That is, λ(i) is
the level of node i in the tree, and thus corresponds to the number of jobs
in the partial schedule at that node.
Let κ be a mapping such that
Nκ−→ {1, . . . , n}
maps a node number to the new job being scheduled at that node. That is,
κ(i) is the new job added to the partial schedule at node i. Since one job is
added to a partial schedule at each level in the tree, and node i is at level
λ(i), κ(i) is the job in the λ(i)-th position of the forward partial schedule.
Let ψ be a mapping such that
Nψ−→ N
maps a node number to the node number of its parent node, that is, ψ(i) is
the parent node of node i. Furthermore, let γ(i) be the set of child nodes of
node i (where γ(i) = ∅ if node i has no child nodes). Thus λ(ψ(i)) = λ(i)−1,
and λ(j) = λ(i) + 1 for all j ∈ γ(i).
The decisions on the branches of a path from the root node (node 0) to some
other node, say node i, define that path and a corresponding partial schedule.
As each decision adds a new job to the partial schedule at the parent node,
each node in a scheduling B&B tree defines a unique partial schedule. Thus
at node i, which is located at level λ(i) of a tree, λ(i) positions of the partial
schedule have been fixed by the sequence of decisions on the λ(i) branches
to node i.
7.3.1 A forward partial schedule in BB
Each node within the tree BB represents a forward partial schedule. The
root node at level 0 represents an empty schedule where no jobs are fixed.
From level 0 to level 1, we branch on arcs (the x variables) leaving the depot
such that x0v = 1 if job v is scheduled in the first position. From level l to
7.3 Notation and mappings for BB 203
root nodenode 0
LEVEL 0
node ψ(i)LEVEL λ(ψ(i)) = λ(i)−1
LEVEL λ(i) = the level of node i in the B&B tree
(empty partialschedule)
ψ(i) = the parent nodeof node i
node i
γ(i) = the set of the child nodes of node i
κ(i) = the job scheduled in position λ(i) of the partial schedule at node i
LEVEL λ(j) = λ(i) + 1 for all j γ(i)
Figure 7.2: Elements of a scheduling branch-and-bound tree, BB.
level l + 1 we branch on arcs leaving the job scheduled in position l. For
example, let job u be scheduled in position l at node i in BB (so κ(i) = u
and λ(i) = l). If the decision on one of the branches leaving node i is
xuv = 1, then job v is scheduled immediately after job u; one child node of
i, say node j, has job v scheduled in position l + 1: ψ(j) = i, κ(j) = v and
λ(j) = λ(i) + 1 = l + 1.
Let Si = (v1i , v
2i , . . . , v
λ(i)i ) denote the forward partial schedule at node i of
tree BB, where vmi is the job in the m-th position of the partial schedule at
node i. The decision variable on the branch connecting node i to its parent
node ψ(i) is xκ(ψ(i)),κ(i), as κ(ψ(i)) was the job added to the partial schedule
at the parent node ψ(i) and κ(i) is the job added to the partial schedule at
node i. Equivalently,
xκ(ψ(i)),κ(i) = xvλ(i)−1i ,v
λ(i)i
as κ(ψ(i)) = vλ(i)−1i and κ(i) = v
λ(i)i . Let Si = {v1
i , v2i , . . . , v
λ(i)i } be the set
of jobs in the forward partial schedule Si at node i. Consequently, vmi = vmψ(i)
for m = 1, . . . , λ(i)− 1 thus Si = Sψ(i) ∪ {vλ(i)i }.
204 A SCHEDULING BRANCH-AND-BOUND SCHEME
7.4 Criteria for pruning nodes of BB
A range of criteria can be checked to evaluate if a node of BB is worth
branching on. In particular, consider node j of BB: job κ(j) = v is to be
placed in position λ(j) = l of the forward partial schedule at node j. Let
job κ(ψ(j)) = u be the job in position l − 1, that is, let u be the job added
at the parent node of j, node ψ(j).
In the following subsections a list of logical conditions are outlined that can
be applied to identify if the partial schedule at node j will be infeasible
in BB, or is inferior to an existing node. A flowchart of the criteria with
corresponding section references is given in Figure 7.3.
Recall the earliest start time for a job is calculated by Equation 2.1 (page 20);
it is restated here in notation to be used within our criteria. First consider
some job w ∈ V in a schedule, the job immediately before it, β(w), and the
set of all jobs processed before w, I(w). The earliest time job w ∈ V can
start is given by
Tw = max{aw, Ew, Tβ(w) + pβ(w) + sβ(w),w} (7.1)
where aw is the earliest start time of job w (as [aw, bw] is the time window
associated with job w),
Ew = maxr∈I(w):(r,w)∈P
{tr + αrw} (7.2)
is the earliest start time based on strict predecessors of job w, and tr is the
start time of some job r in the schedule.
7.4.1 Criterion 1: check if arc (u, v) exists
This criterion checks if arc (u, v) is in arc set A, where u is the job scheduled
at parent node ψ(j). In other words, this checks if it is feasible for job v to
immediately follow job u. If the arc does not exist, node j can be pruned
as the problem represented by node j is infeasible.
7.4 Criteria for pruning nodes of BB 205
Criterion 1
check if arc exists§7.4.1
Criterion 2
check job availability§7.4.2
Criterion 3
check effect on unscheduled jobs§7.4.3
additional implementation notes §7.5.1
Criterion 4
check LP feasibility§7.4.4
Criterion 5
check dominance by bound§7.4.5
Criterion 6
execute heuristics§7.4.6
additional implementation notes §7.6
Criterion 7
check dominance between nodes§7.4.7
additional implementation notes §7.5.2
Figure 7.3: Flowchart of pruning criteria with section references.
206 A SCHEDULING BRANCH-AND-BOUND SCHEME
7.4.2 Criterion 2: check if job v is available to begin
This criterion checks if all jobs that must precede job v have already been
scheduled. Let π(v) = {w ∈ V : (w, v) ∈ PALL} be the set of all jobs that
must precede job v. If π(v) ⊆ Sψ(j), job v is available to begin; otherwise
node j is pruned.
7.4.3 Criterion 3: check if scheduling job v in position l
causes a time window violation for an unscheduled job
The aim of this criterion is to evaluate if scheduling job v in position l
(at node j) causes a time window violation for another unscheduled job; if
so, node j can be pruned. For the case where unscheduled job w has no
predecessors, this is as simple as checking that scheduling job w directly
after job v does not violate w’s deadline. For cases where w has one or
more predecessors, we look ahead and check that the shortest path from v
to w via its predecessors does not violate w’s deadline. To achieve this, the
following strategy is employed:
1. The earliest possible time that a job can start depends on the number
of its predecessors that have not yet been scheduled. Consequently,
for each unscheduled job w ∈ (V \Sj) at node j, calculate the set of
unscheduled jobs that are predecessors of job w, denoted Πwj .
2. For k ∈ {0, 1, 2}, calculate Lkv , the set of unscheduled jobs that have
exactly k unscheduled predecessors (that is, |Πwj | = k) that would
have their latest start time violated as a result of scheduling job v in
position l.
3. Extending the results derived for k = 2, the set of k jobs in Πwj
can form a set of permutation sequences, Pwj , which can be used to
calculate Lkv for k ≥ 3.
4. Since there are up to k! permutation sequences in Pwj , evaluating all
sequences is likely to be computationally prohibitive. Consequently,
we derive a lower bound to be used in the calculation of Lkv for k ≥ 3,
and thus calculate a subset of L(k≥3)v which is denoted by L
(k≥3)v .
7.4 Criteria for pruning nodes of BB 207
5. Finally, a set of jobs that will violate their latest start time is given by
Lj = L0v ∪ L1
v ∪ L2v ∪ L(≥3)
v .
If |Lj | 6= 0 then the partial schedule represented by node j is infeasible:
each job in Lj will violate its time window, thus node j can be pruned.
However, if L0v, L
1v, L
2v and L
(≥3)v are evaluated sequentially, node j
can be pruned as soon as the currently evaluated set is non-empty.
The details of this strategy are now discussed.
By definition, the earliest start time of job v, the job considered to be
scheduled at the current node, is given by Tv = max {av, Ev, Tu + pu + suv}where Ev = maxw∈Sψ(j):(w,v)∈P {tw + αwv}.
To quantify the effect of scheduling job v in position l on other unscheduled
jobs, we wish to know if there are unscheduled jobs that will violate their
latest start time, even if the job is scheduled to start at its earliest possible
time. The earliest possible time that a job can start depends on the number
of its predecessors that have not yet been scheduled. For some unscheduled
job w ∈ (V \Sj) at node j, let
Πwj = {m ∈ (V \Sj) : (m,w) ∈ PALL}
be the set of unscheduled jobs that are predecessors of job w. We seek to
calculate Lkv , the set of unscheduled jobs that have exactly k unscheduled
predecessors (that is, |Πwj | = k) that would have their latest start time
violated as a result of scheduling job v in position l.
For k = 0,
L0v = {w ∈ (V \Sj) : Tw > bw, |Πwj | = 0}.
Since Tw = max{aw, Ew, Tv + pv + svw} and aw ≤ bw,
L0v = {w ∈ (V \Sj) : max{Ew, Tv + pv + svw} > bw, |Πwj | = 0}.
Figure 7.4a shows a graphical representation of the schedule for k = 0.
For k = 1,
L1v = {w ∈ (V \Sj) : max{Ew, Tβ(w) + pβ(w) + sβ(w),w} > bw, |Πwj | = 1}
208 A SCHEDULING BRANCH-AND-BOUND SCHEME
u pu
pv
Tu
Tv = m
ax{av ,E
v ,Tu +
pu +
suv }
suv
vj 2
vj 1
. . .T
w = max{a
w ,E
w ,T
v +p
v +s
vw }s
vw
u pu
pv
Tu
Tv = m
ax{av ,E
v ,Tu +
pu +
suv }
suv
vj 2
vj 1
. . .β(w
)
pβ(w
)
Tβ(w
) = max{a
β(w) ,E
β(w) ,T
v +p
v +s
vβ(w) }
svβ(w
)w
Tw = m
ax{aw
,Ew
,Tβ(w
) +p
β(w) +
sβ(w
)w }s
β(w)w
(a)
(b)
u pu
pv
Tu
Tv = m
ax{av ,E
v ,Tu +
pu +
suv }
suv
vj 2
vj 1
. . .
pπ
1
svπ
1
sπ
1 π2
(c)w
π1
π2
pπ
2s
π2 π
1
pπ
1
π2
π1
svπ
2
sπ
2 w
sπ
1 w
Tw = m
in{Tw
, Tw
}Α
Β
Tπ
1 = max{a
π1 ,E
π1 ,T
v +p
v +s
vπ1 }
Α
pπ
2
Tπ
2 = max{a
π2 ,E
π2 ,T
π1 +
pπ
1 +s
π1 π
2 }Α
Α
Tπ
2 = max{a
π2 ,E
π2 ,T
v +p
v +s
vπ2 }
ΒT
π1 = m
ax{aπ
1 ,Eπ
1 ,Tπ
2 +p
π2 +
sπ
2 π1 }
ΒΒ
Tw
= max{a
w ,E
w ,T
π1 +
pπ
1 +s
π1 w }
ΒΒ
Tw
= max{a
w ,E
w ,T
π2 +
pπ
2 +s
π2 w }
ΑΑ
wvvv
0
1
l -1
l
l +1
l +2
l +3
LEVEL
PER
MU
TATIO
N A
PER
MU
TATIO
N B
Fig
ure
7.4:G
raph
ical
represen
tationof
asch
edu
lew
ithrelated
times
forsom
eu
nsch
edu
ledjob
w∈
(V\
Sj )
atnod
ej
wh
en
(a)k
=0,
(b)k
=1
an
d(c)
k=
2.
Each
nod
eis
ajob
and
anarc
betw
eentw
on
od
essh
ows
the
setup
time.
Ineach
case,
Lkv6=∅
ifth
ereex
istsat
least
on
ew∈
(V\
Sj )
such
thatTw>bw
.
7.4 Criteria for pruning nodes of BB 209
where Tβ(w) = max{aβ(w), Eβ(w), Tv + pv + sv,β(w)} since Πwj = {β(w)} for
some w ∈ (V \Sj). Figure 7.4b shows a graphical representation of the
schedule for k = 1.
Now consider k = 2. Let Πwj = {π1, π2} for some job w ∈ (V \Sj). If there
are no precedence relations between jobs π1 and π2, job π1 can be scheduled
before job π2, or vice versa. For the sequence with job π1 scheduled before
job π2, let the earliest start time for job w be TAw ; for the schedule with job
π2 scheduled before job π1, let TBw be the earliest start time for job w. Then
TAw = max{aw, Ew, TAπ2+ pπ2 + sπ2,w}
where
TAπ2= max{aπ2 , Eπ2 , T
Aπ1
+ pπ1 + sπ1,π2}
and
TAπ1= max{aπ1 , Eπ1 , Tv + pv + sv,π1}.
A similar expression can be obtained for TBw . Consequently,
L2v = {w ∈ (V \Sj) : min{TAw , TBw } > bw, |Πwj | = 2}.
Figure 7.4c shows a graphical representation of the schedule for k = 2. If
(π1, π2) ∈ PALL or (π2, π1) ∈ PALL, then only one of the sequences needs
to be considered.
For k ≥ 3, the set of jobs in Πwj for some job w ∈ (V \Sj) can form a set
of permutation sequences. Let Pwj be the set of all permutation sequences
formed from the set Πwj . Using previously described notation, T pw is the
start time of job w ∈ (V \Sj) given permutation sequence p ∈ Pwj before
job w. The set of jobs that will violate their latest start time, given k ≥ 3,
is
L(≥3)v = {w ∈ (V \Sj) : min
p∈Pwj{T pw} > bw, |Πwj | ≥ 3}.
Since there are up to k! permutation sequences in Pwj , evaluating all se-
quences is likely to be computationally prohibitive, so instead we seek a
lower bound TMINwj on minp∈Pwj{T
pw}, that is, minp∈Pwj{T
pw} ≥ TMIN
wj so
that a job w ∈ (V \Sj) will belong to the set L(≥3)v if TMIN
wj > bw. The
lower bound on minp∈Pwj{Tpw} is established as follows.
210 A SCHEDULING BRANCH-AND-BOUND SCHEME
Firstly, recall from §2.1 that the minimum time delay between starting job
u and starting job v is defined as δuv := pu + suv, and that all δ values
satisfy the triangle inequality, and thus the s values satisfy the weak triangle
inequality suv ≤ sur + pr + srv. This means that setting up two jobs (u and
v) by going via a third job (r) is never faster.
Let m = |Πwj | ≥ 3, J(h) be the job in position h of the schedule and TJ(h) be
the earliest start time of job J(h). At node j, J(l−1) = u and J(l) = v, and
we wish to test the effect of setting J(l+m+ 1) = w for some unscheduled
job w ∈ (V \Sj); the m jobs between v and w will be the unscheduled
predecessors of w from the set Πwj as this is the smallest set of jobs that
must be scheduled before w. Due to the triangle inequality, the earliest start
time of w cannot be reduced by scheduling more than the m jobs in set Πwj
between v and w. Consequently, the earliest start time for job J(l + 1) is:
TJ(l+1) = max{aJ(l+1), EJ(l+1), Tv + pv + sv,J(l+1)}
≥ max
{mini∈Πwj
{ai}, mini∈Πwj
{Ei}, Tv + pv + mini∈Πwj
{sv,i}}
:= B
since
aJ(l+1) ≥ mini∈Πwj
{ai}, EJ(l+1) ≥ mini∈Πwj
{Ei} and sv,J(l+1) ≥ mini∈Πwj
{sv,i}
as the values for aJ(l+1), EJ(l+1) and sv,J(l+1) cannot be smaller than the
smallest value given by a predecessor of w from the set Πwj .
The earliest start time expressions for jobs J(l+2), . . . , J(l+m), J(l+m+1)
and their lower bounds are:
TJ(l+2) = max{aJ(l+2), EJ(l+2), TJ(l+1) + pJ(l+1) + sJ(l+1),J(l+2)}
≥ TJ(l+1) + pJ(l+1) + sJ(l+1),J(l+2)
≥ B + pJ(l+1) + sJ(l+1),J(l+2)
7.4 Criteria for pruning nodes of BB 211
TJ(l+3) = max{aJ(l+3), EJ(l+3), TJ(l+2) + pJ(l+2) + sJ(l+2),J(l+3)}
≥ TJ(l+2) + pJ(l+2) + sJ(l+2),J(l+3)
≥ B + pJ(l+1) + sJ(l+1),J(l+2) + pJ(l+2) + sJ(l+2),J(l+3)
= B +l+2∑
h=l+1
pJ(h) +l+2∑
h=l+1
sJ(h),J(h+1)
...
TJ(l+m) ≥ B +l+m−1∑h=l+1
pJ(h) +l+m−1∑h=l+1
sJ(h),J(h+1)
TJ(l+m+1) = max{aJ(l+m+1), EJ(l+m+1), TJ(l+m) + pJ(l+m) + sJ(l+m),J(l+m+1)}
≥ max
{aJ(l+m+1), EJ(l+m+1), B +
l+m∑h=l+1
pJ(h) +
l+m∑h=l+1
sJ(h),J(h+1)
}.
Since we are testing the effect of setting J(l+m+ 1) = w for some unsched-
uled job w ∈ (V \Sj),
TJ(l+m+1) ≥ max
{aw, Ew, B +
l+m∑h=l+1
pJ(h) +
l+m∑h=l+1
sJ(h),J(h+1)
},
and so
minp∈Pwj
{T pw} = TJ(l+m+1)
≥ max
{aw, Ew, B +
l+m∑h=l+1
pJ(h) +
l+m∑h=l+1
sJ(h),J(h+1)
}
≥ max
aw, Ew, B +∑i∈Πwj
pi +∑i∈Πwj
(min
k∈(Πwj∪{w}){sik}
):= TMIN
wj .
Note thatl+m∑h=l+1
pJ(h) =∑i∈Πwj
pi
as the m jobs in positions l + 1 to l +m will be the jobs in w’s predecessor
set Πwj , and
l+m∑h=l+1
sJ(h),J(h+1) ≥∑i∈Πwj
(min
k∈(Πwj∪{w}){sik}
)
212 A SCHEDULING BRANCH-AND-BOUND SCHEME
as the sum of the m setup times cannot be smaller than the sum of the
smallest setup times from each predecessor in Πwj into another predecessor
or job w.
Since we have derived a lower bound on minp∈Pwj{Tpw}, rather than evaluate
L(≥3)v by evaluating T pw for each permutation in Pwj , it is easier to evaluate
L(≥3)v using the lower bound TMIN
wj :
L(≥3)v = {w ∈ (V \Sj) : TMIN
wj > bw, |Πwj | ≥ 3}
where L(≥3)v ⊆ L
(≥3)v . Thus, a set of jobs that will violate their latest start
time is given by
Lj = L0v ∪ L1
v ∪ L2v ∪ L(≥3)
v .
If |Lj | ≥ 1 then the partial schedule represented by node j is infeasible: each
job in Lj will violate its time window, thus node j can be pruned from BB.
Also note that if L0v, L
1v, L
2v and L
(≥3)v are evaluated sequentially, node j
can be pruned as soon as the currently evaluated set is non-empty.
Alternate version of Criterion 3 A simpler version of this criterion fol-
lows. Let L(>0)v be the set of unscheduled jobs with at least one unscheduled
predecessor that would have their latest start time violated as a result of
scheduling job v in position l, that is,
L(>0)v = L1
v ∪ L2v ∪ L(≥3)
v
where L(>0)v ⊇ L1
v ∪ L2v ∪ L
(≥3)v . Rather than evaluate L1
v, L2v and L
(≥3)v
separately which may be impractical, we propose using another lower bound,
LBwj , to determine elements of L(>0)v . In particular, let
LBwj = max
Ew, Tv + pv +∑i∈Πwj
(pi + min
k∈(V \Sψ(j)){ski}
)+ mink∈(V \Sj)
{skw}
,
so that a job w ∈ (V \Sj) will belong to the set L(>0)v if LBwj > bw; Fig-
ure 7.5 shows a graphical representation of the components that contribute
to the second part of the lower bound. Thus
L(>0)v = {w ∈ (V \Sj) : LBwj > bw, |Πwj | > 0}
is a set of unscheduled jobs with at least one unscheduled predecessor that
would violate their latest start time. Combined with L0v, Lj = L0
v ∪ L(>0)v
7.4 Criteria for pruning nodes of BB 213
up up v
T uT v
= m
ax{a
v ,E
v ,T
u+p u
+s u
v}
s uv
v j2v j1
. . .
p π1
p π2
wT w
≥ L
B wj
π 1 π 2v
0
1
l
-1
l
.
. .
l +
m+1
L
EVEL
p πm
π m. . .
min
{s
kπ1 }
k∈(V
\ S ψ
(j))
min
{s
kπ2 }
k∈(V
\ S ψ
(j))
min
{s
kπm}
k∈(V
\ S ψ
(j))
min
{s kw
} k∈
(V\ S
j)
Uns
ched
uled
pre
dece
ssor
s of w
: Πw
j = {
π 1, π 2,
... ,
π m}
Fig
ure
7.5:
Gra
ph
ical
rep
rese
nta
tion
ofth
eco
mp
onen
tsth
atco
ntr
ibu
teto
the
seco
nd
par
tof
the
low
erb
oun
dLBwj,
wh
ere
LBwj
=m
ax{ E
w,T
v+pv
+∑ i∈
Πwj
( pi+
mink∈
(V\S
ψ(j
)){s ki}) +
mink∈
(V\S
j){s kw}} .
L(>
0)
v6=∅
ifth
ere
exis
tsat
leas
ton
e
w∈
(V\
Sj)
such
thatLBwj>b w
.
214 A SCHEDULING BRANCH-AND-BOUND SCHEME
is also a set of jobs that will violate their latest start time, where Lj ⊆ Lj .
Since the lower bound used in L(>0)v is simpler (hence easier and faster to
calculate) than the bounds used in L1v, L
2v and L
(≥3)v , this alternative version
of Criterion 3 may be more useful in BB, particularly if L1v, L
2v and L
(≥3)v
are likely to be empty. However, since LBwj may not be a strong as the
bounds used in L1v, L
2v and L
(≥3)v , it is possible that an unscheduled job that
would be in sets L1v, L
2v or L
(≥3)v is not in L
(>0)v .
7.4.4 Criterion 4: LP feasibility
The SOP-TW can be modelled as a MIP; two compact formulations are
given in Section 4.2. Given a valid MIP formulation of the SOP-TW, this
criterion checks if the LP relaxation of the problem at node j is feasible. If
the LP is not feasible, then the partial schedule at node j cannot lead to a
feasible complete schedule, thus we can prune node j. If the LP is feasible,
the LP value gives a lower bound, LBj , which is a lower bound on the total
setup cost of a complete schedule based on the partial schedule at j. Also
if the LP solution is integer, the LP value gives an upper bound, UBj , and
this node can be pruned. Moreover, if UBj is less than the current best
upper bound, UB, of BB then UBj becomes the new global upper bound.
If node j passes all seven criteria, LBj is used to determine where in the
heap node j is placed (see Alg. 13, p. 200). It is also worth noting that the
earliest start times calculated in Criterion 3 are used to update the lower
bounds on the release dates; this results in tighter LPs for Criterion 4.
7.4.5 Criterion 5: dominance by bound
Given a valid MIP formulation of the SOP-TW, this criterion checks if the
value of the LP relaxation of the problem at node j, LBj , is worse than UB,
the current best upper bound of BB. If LBj > UB, node j is dominated
by a known upper bound (possibly from an existing node) so we can prune
node j.
7.4 Criteria for pruning nodes of BB 215
7.4.6 Criterion 6: heuristics for obtaining feasible solutions
This criterion attempts to generate at least one feasible solution, via a heuris-
tic, to confirm that the problem at node j is feasible; we propose using both
the construction heuristic (§5.3.2, page 128) and the best catalyst heuristic
(§5.4.2, page 145) from the two previous chapters. If an integer solution is
found it gives an upper bound, UBj , and shows that the forward partial
schedule at this node can lead to a feasible complete schedule. If UBj is
better than the current best upper bound, UB, of BB then UBj becomes
the new global upper bound.
To use the construction heuristic for this criterion some modifications are
required; the construction heuristic needs to take the forward partial sched-
ule as a starting point, and new jobs can only be inserted after the final job
of the initial forward partial schedule. This will be discussed in more detail
in Section 7.6.1.
The surrogate MIP used in the catalyst heuristic solves the MIP at node j
with a surrogate objective function. While the construction heuristic can
only succeed or fail at generating feasible solutions, the MIP solver (CPLEX)
may also prove that the surrogate MIP is infeasible; if so, then the true MIP
is also infeasible (as the surrogate MIP has the same feasible set as the orig-
inal MIP) and thus node j can be pruned. However, if the catalyst method
does not find an integer solution or prove the surrogate MIP is infeasible,
this node will not be pruned by Criterion 6. The implementation of the
catalyst heuristic for Criterion 6 is discussed in more detail in Section 7.6.2.
7.4.7 Criterion 7: identifying dominance
In addition to pruning nodes that will prove to be infeasible (such as with
Criteria 1–4 and 6) a feasible node can be pruned if it is dominated by
another feasible node. That is, if the result of a valid comparison of two
nodes is that one node is clearly stronger than the other, the stronger node
is kept while the dominated node is pruned, such as with Criterion 5.
This criterion evaluates if an existing node dominates node j (and if so, do
not create node j), or if node j dominates existing nodes (and if so, prune
these nodes from the list of active nodes that have already been created). A
216 A SCHEDULING BRANCH-AND-BOUND SCHEME
valid comparison is one between two nodes that have exactly the same set
of potential “ends” to the schedule, both in terms of the jobs remaining to
be scheduled and the cost of scheduling those remaining jobs. Here, node j
is compared to existing nodes (for example, node k) that have:
1. the same set of remaining jobs, V \Sj (so Sk = Sj); and
2. the same job in position l (vlk = vlj) thus the same setup time to the
next job.
The details of procedure Criterion7 is shown in Algorithm 14, with some
notes on its implementation in Section 7.5.2.
A summary of each criterion is shown in Table 7.2.
7.4.8 General CheckCriteria procedure
While each criterion is valid in its own right, the order in which we check each
criterion is arranged according to computational effort and sophistication.
For example, Criterion 7 is computationally more time-consuming than, say
Criteria 1 and 2. As such, it is sensible to perform the fast tests that
evaluate basic feasibility properties before proceeding to the more time-
consuming criteria. Consequently, as shown in Algorithm 15, the structure of
the procedure CheckCriteria is a sequence of tests: only when a node passes
a simpler/faster test do we proceed to a more complex/time-consuming test.
7.5 Implementation notes for Criteria 3 and 7
Criteria 3, 6 and 7 require implementation details that are not immediately
obvious. Consequently, additional implementation notes on these criteria are
provided. The discussion of using heuristics in the B&B tree at Criterion 6
and the root node is presented later in Section 7.6.
7.5.1 Implementation of Criterion 3
Criterion 3 checks if scheduling the current job in the current position will
cause any other unscheduled job to violate its due date. As described in
§7.4.3, there are several ways to evaluate and thus implement this criterion.
7.5 Implementation notes for Criteria 3 and 7 217
Algorithm 14: Procedure Criterion7 (parent node i, unscheduled job v)
// Checks if an existing node dominates (or is dominated by) new node j: if
j dominates an existing node, prune dominated node and continue checking
if j is dominated. If j is not dominated, return success, else return
fail.
Input: Partial schedule at node j, Sj = (v1i , v
2i , . . . , v
λ(i)i , v), consisting of the partial
schedule at parent node i (level λ(i)), and an unscheduled job v (so κ(j) = v)
Output: Status (success or fail) of the partial schedule Sj
initialise
level l← λ(i) + 1 (level of node j in the B&B tree)
schedule(j) ← schedule(i) + v // Sj = (v1i , v
2i , . . . , v
λ(i)i , vlj = v)
jobs in schedule(j), Sj ← Si ∪ v where Si = {v1i , v
2i , . . . , v
λ(i)i }
set of active B&B nodes at level l, N (l) // schedules with l jobs
Zj ←∑m=l−1m=1 s
vmj vm+1j
, the sum of the setup times of the partial schedule at node j
Cj ← Tj + pv, the earliest completion time of the partial schedule at node j
status ← success
foreach node k ∈ N (l) such that Sk = Sj and vlk = vlj do
// both partial schedules have the same set of jobs (thus same set of
remaining jobs) and job v in position l
// calculate Zk and Ck
Zk ←∑m=l−1m=1 s
vmkvm+1k
Ck ← Tk + pv
if Zk ≤ Zj and Ck ≤ Cj then
// k dominates j so prune node j
status ← fail; goto return
else if Zj ≤ Zk and Cj ≤ Ck then
// j dominates k so prune node k, then keep checking j against other
nodes in N (l)
prune node k from N (l) and any descendants of k (if they exist)
else
// neither dominates so keep checking nodes in N (l)
return status
218 A SCHEDULING BRANCH-AND-BOUND SCHEME
Criterion Description of criterion and its consequence
1 Check if arc (κ(i), v) exists:
→ If no, prune j.
2 Check if all predecessors of job v have already been scheduled:
→ If no, prune j.
3 Check if Lj = ∅:
→ If no, prune j.
4 Solve LP relaxation of P j to check if LPj is feasible (LBj = zj):
→ If no, prune j. If feasible AND xj integer then do not check
Criteria 5, 6 and 7. If feasible AND xj integer AND zj < UB,
update UB (where UB is the best upper bound found so far).
5 Check if LBj > UB:
→ If yes, prune j.
6 Execute (a) construction heuristic, or (b) catalyst heuristic:
→ If heuristic was (a):
→ If a feasible solution was found:
→ If UBj < UB, update UB = UBj .
→ Else heuristic was (b):
→ If the surrogate MIP was infeasible, prune j
→ Else-if a feasible solution was found:
→ If UBj < UB, update UB = UBj .
7 For each node at level l, check if node j is dominated by node k:
→ If yes, prune j, else check if j dominates k:
→ If yes, prune k (and if they exist, descendants of k).
→ If no existing node at level l dominates j, keep node j.
Table 7.2: Summary of criteria to check when evaluating node j (κ(j) = v, ψ(j) = i,
λ(j) = l).
7.5 Implementation notes for Criteria 3 and 7 219
Algorithm 15: Procedure CheckCriteria(node i, unscheduled job v)
Input: The partial schedule at parent node i and an unscheduled job v
Output: Status of the partial schedule at child node j (success or fail)
initialise
schedule(j) ← schedule(i) + v // Sj = (s1i , s
2i , . . . , s
λ(i)i , v)
status ← success
if pass Criterion1(i, v) then
if pass Criterion2(i, v) then
if pass Criterion3(i, v) then
if pass Criterion4(i, v) then
if pass Criterion5(i, v) then
if executing Criterion 6 for this (i, v) then
if pass Criterion6(i, v) then
if pass Criterion7(i, v) thengoto return
else
// did not pass Criterion 7
status ← fail
else
// did not pass Criterion 6
status ← fail
else
if pass Criterion7(i, v) thengoto return
else
// did not pass Criterion 7
status ← fail
else
// did not pass Criterion 5
status ← fail
else
// did not pass Criterion 4
status ← fail
else
// did not pass Criterion 3
status ← fail
else
// did not pass Criterion 2
status ← fail
else
// did not pass Criterion 1
status ← fail
return status
220 A SCHEDULING BRANCH-AND-BOUND SCHEME
While we did implement both the main version that uses the lower bound
TMINwj in L
(≥3)v , and the alternate version that uses the lower bound LBwj in
L(>0)v , for speed and tractability we only evaluate the alternate version in all
methods reported in Chapter 8 as the sets L1v, L
2v and L
(≥3)v are empty for
the majority of our problem instances. This is because |P | was intentionally
kept relatively small—too many precedences generally make a SOP-TW
problem instance significantly easier to solve—as discussed in §4.5.4.
In the alternate version of Criterion 3, recall that
L0v = {w ∈ (V \Sj) : max{Ew, Tv + pv + svw} > bw, |Πwj | = 0},
L(>0)v = {w ∈ (V \Sj) : LBwj > bw, |Πwj | > 0},
and
LBwj = max
Ew, Tv + pv +∑i∈Πwj
(pi + min
k∈(V \Sψ(j)){ski}
)+ mink∈(V \Sj)
{skw}
.
Thus Lj = L0v ∪ L
(>0)v is a set of unscheduled jobs that will violate their
latest start time if job v is scheduled in the current position. Consequently,
if Lj 6= ∅ then node j can be pruned.
To implement the alternate version of this criterion, all earliest start time
calculations (as defined by Equations 7.1 and 7.2) are calculated to deter-
mine the maximum value, and are stored for use in the conditions of sets L0v
and L(>0)v (that is, the lower bound LBwj). Evaluating L0
v is then straight-
forward.
The most time-intensive components of evaluating LBwj is in (1) deter-
mining Πwj for each unscheduled job w ∈ (V \Sj), and (2) determining
the minimum setup time into each job i ∈ Πwj from another unscheduled
job or v. However, both of these operations are easily implemented and
relatively fast. As a result, the implementation of the alternate version of
Criterion 3 is faster to execute and easier to comprehend when compared
with the implementation of the main version which evaluates L2v and L
(≥3)v .
Finally, as noted in §7.4.4, the earliest start times calculated in Criterion 3
are also used to update the lower bounds on the release dates at that node;
this results in tighter LPs for Criterion 4.
7.6 Using heuristics within the B&B tree 221
7.5.2 Implementation of Criterion 7
Criterion 7 checks to see if the current node under consideration is dominated
by an existing node, or if an existing node is dominated by the current
node. To do this, at every level of the B&B tree a list of “active” nodes is
maintained, where an existing node is classified as active if it (a) passed all
criteria, and (b) is yet to be dominated. If an active node is subsequently
dominated by another node it will be reclassified as “inactive” and removed
from the list at that level.
Within this scheme, as soon as a node is created (that is, it passes all criteria,
including Criterion 7) it is added to the end of the list of active nodes at that
level, and the size of that list is increased by one. When checking Criterion
7 for a new node, if an existing node is found to be dominated by the new
node, the last active node in the list is moved into the list position of the
now dominated node—thus overwriting it—and the size of that list is then
reduced by one. Consequently, our implementation of Criterion 7 maintains
a list of all currently active nodes at each level of the B&B tree.
Note that if an active node has been explored, it may have descendants.
Thus when a node is dominated and it has descendants, both the node and
its active descendants can be removed via a recursive algorithm.
7.6 Using heuristics within the B&B tree
This section describes how the best heuristics from Chapters 5 and 6 will be
implemented within the scheduling-based B&B tree, both at the root node
and at Criterion 6. Where appropriate, results from the heuristic methods
from Chapter 6 are discussed to motivate the parameter settings that inform
which heuristic to include, when to include it, and for how long it should be
executed.
Firstly, recall that the scheduling-based B&B scheme is an exact solution
method; at the conclusion of the algorithm, an optimal solution will be
reached if one exists. Given the general framework of the B&B scheme de-
scribed in Sections 7.2–7.5, additional new criterion can easily be inserted
within the CheckCriteria procedure. In Chapter 5, two heuristic techniques
222 A SCHEDULING BRANCH-AND-BOUND SCHEME
were described—an insert-based construction heuristic and an IP-based per-
turbation heuristic—that showed varying degrees of success in the compu-
tational study in Chapter 6. Both of these heuristics can be used within our
current B&B framework, at Criterion 6 and/or the root node. However, as
noted earlier, each node of the scheduling-based B&B tree corresponds to a
forward partial schedule. Consequently, to use this partial schedule as input
to either of the heuristics at any node other than the root node, the heuris-
tics must be modified. This is discussed in more detail in Sections 7.6.1 and
7.6.2. At the root node the partial schedule is empty, thus the heuristics
can be used unmodified as per Chapter 6; this is discussed in more detail in
Sections 7.6.3 and 7.6.4.
As will be demonstrated in Section 8.3.3, the inclusion of either heuristic
method in our B&B method is very useful for problem instances for which
finding feasible solutions is particularly difficult. However, the heuristics at
Criterion 6 should not be applied at all B&B nodes due to time restrictions:
a trade-off for time occurs between (i) exploring as many nodes as possible,
resulting in a stronger lower bound, and (ii) investing time at strategic points
to find a useful upper bound. A good upper bound will help to reduce the
size of the B&B tree (by pruning new nodes that have a worse lower bound,
as in Criterion 5) and provides a feasible solution at termination. To address
this trade-off, either heuristic can be executed in Criterion 6 but should only
be run at select nodes. The particular settings for each heuristic at Criterion
6 will be discussed in Sections 7.6.1 and 7.6.2.
Since the scheduling-based B&B scheme is an exact solution method, the
same trade-off for time occurs when either heuristic is executed at the root
node. Consequently, appropriate time limits for the heuristics at the root
node are discussed in Sections 7.6.3 and 7.6.4.
7.6.1 Using the construction heuristic at Criterion 6
By executing the construction heuristic at Criterion 6, feasible solutions
may be produced. Consequently, a better upper bound may be found that
can be used to strengthen Criterion 5. Moreover, if optimality is not proved
prior to termination, the best feasible solution at termination may have been
generated earlier in the solution process by the construction heuristic.
7.6 Using heuristics within the B&B tree 223
To use the construction heuristic within the tree, it makes sense to take
advantage of the feasible forward partial schedule already constructed at
a B&B node. However, to use the construction heuristic and related al-
gorithms as described in Algorithms 8–11 (in Chapter 5) will destroy the
feasible forward partial schedule, as it will try to insert jobs within the ex-
isting partial schedule. Consequently, the construction heuristic must be
modified to accept a forward partial schedule—with corresponding earliest
start times—as a fixed starting point. The modified construction heuristic
will then try to construct the tail to the partial schedule, that is, try to con-
struct a feasible full schedule respecting the input forward partial schedule,
by only applying the insertion algorithm over the unscheduled jobs. The
modified construction heuristic and related procedures are given in Algo-
rithms 16–19 of Appendix J.
There are two potential outcomes from running the modified construction
heuristic at a node within the B&B tree: at least one feasible solution is
constructed within the time limit, or a feasible solution is not constructed.
If a feasible solution is generated, it is a valid upper bound on the value of
the problem at that node, and indeed, may be the best upper bound found
so far (in which case, Criterion 5 will be strengthened). However, since there
are no optimality guarantees with the construction heuristic, it cannot be
known if the best feasible schedule for the problem at that node has been
found. As a result, the node cannot be pruned.
If a feasible solution is not generated by the construction heuristic, the node
should not be pruned. Since there are no feasibility or optimality guarantees
with the construction heuristic, whether the partial schedule at this node is
capable of producing a feasible solution is still inconclusive.
The construction heuristic (H0) is not included at Criterion 6 for the BKA
and n25 data groups. As will be discussed in more detail in Section 7.6.2,
when solving easier, smaller problem instances like those in the BKA and
n25 data groups, time is better spent proving optimality by continuing with
the remainder of the B&B algorithm, rather than including Criterion 6.
For the n50 and n100 instances, the modified construction heuristic is exe-
cuted at Criterion 6, though only at select nodes and for a short period. As
discussed in Section 6.3.2, the unmodified construction heuristic is extraor-
224 A SCHEDULING BRANCH-AND-BOUND SCHEME
dinarily good at finding many unique feasible solutions for the BKA, n25
and n50 data groups, as seen in Figures I.2a–I.2c (p. 357). Consequently,
the modified construction heuristic is executed at Criterion 6 at B&B nodes
that correspond to problems of similar sizes, that is, at nodes at levels bn2 cand b3n
4 c. For n50 instances, this corresponds to subproblems with 13 and
25 jobs remaining to be scheduled; for n100 instances, this corresponds to
subproblems with 25 and 50 jobs remaining to be scheduled.
Two time limits for H0 at levels bn2 c and b3n4 c will be tested for the n50 and
n100 instances: (a) 5 seconds and (b) 1 second. While 1 second was sufficient
for the unmodified construction heuristic to find at least one feasible solution
for every problem instance with 50 or fewer jobs (Table 6.6, pp. 159–160),
we will also test executing the modified construction heuristic for 5 seconds
at nodes at levels bn2 c and b3n4 c with the intention of producing a larger pool
of feasible solutions, and thus potentially better upper bounds.
Finally, it is worth noting that these levels and time limits will also be
used for the catalyst heuristic at Criterion 6, which is discussed in the next
section; this allows for a direct comparison of the construction heuristic and
the catalyst heuristic at Criterion 6.
BKA n25 n50 n100
(a) H0 time limit (CPU seconds) NA NA 5 5
(b) H0 time limit (CPU seconds) NA NA 1 1
Table 7.3: H0 time limit at Criterion 6, for each instance by group.
7.6.2 Using the catalyst heuristic at Criterion 6
Recall the IP-based perturbation heuristic from Chapters 5 and 6, which we
refer to as a catalyst heuristic. This method attempts to find feasible solu-
tions more quickly than solving the original MIPs of Chapter 4 by implicitly
breaking symmetries through a modified objective function. However, find-
ing feasible solutions faster comes at the expense of the true-cost quality of
the solutions obtained.
Recall that there are four compact MIP methods, summarised in Table 4.5
(page 104). As shown by the pure MIP solve time summary statistics in
7.6 Using heuristics within the B&B tree 225
Table 6.4 (page 153) the majority of the n25 data sets are solved to opti-
mality reasonably quickly by Methods 1 and 2. However, as will be shown
in Section 8.3.2 (page 236), two of the scheduling-based B&B schemes that
exclude Criterion 6, Methods 5 and 6, outperform Methods 1 and 2. Con-
sequently, when solving easier, smaller problem instances like those in the
BKA and n25 groups, time is better spent proving optimality by continu-
ing with the rest of the B&B algorithm, rather than including Criterion 6.
This was confirmed by including the catalyst at various nodes for various
amounts of time; those results are excluded for brevity.
Based on the results of Chapter 6, the following parameters for the inclusion
of the catalyst at Criterion 6 are used for the n50 and n100 instances:
• use H1 4: MIP1 with precedences P (delay αij) and weight ω4 = 1;
• execute the catalyst at nodes at levels bn2 c and b3n4 c; and
• until 5 integer solutions are found or for a maximum of 5 seconds.
A rationale for these choices is provided below.
Overall, heuristic method H1 4 was the best of the 24 catalyst methods when
the key measures of time to first solution, the number of feasible solutions
found and the true-cost quality of those solutions are considered. Conse-
quently, H1 4 is the only catalyst heuristic we include in the scheduling-
based B&B scheme.
For H1 4, feasible solutions were found for 93.3% of n25 instances within
5 seconds (Table 6.6, page 159). Less promising results were obtained for
the n50 and n100 data sets (feasible solutions were found for only 10% of
n50 instances within 5 seconds) indicating that the catalyst is most useful
on smaller problems. Moreover, when results for the B&B scheme without
the catalyst (for example, Method 5) were analysed, most integer solutions
were found at levels ≥ bn2 c in the tree, so using the catalyst higher in the
tree is unlikely to be as useful as deeper in the tree. Consequently, the
catalyst will be executed at levels bn2 c and b3n4 c for both the n50 and n100
instances. For n50 instances, this corresponds to subproblems with 13 and
25 jobs remaining to be scheduled; for n100 instances, this corresponds to
subproblems with 25 and 50 jobs remaining to be scheduled.
While the aim of executing the catalyst at Criterion 6 is to find at least
226 A SCHEDULING BRANCH-AND-BOUND SCHEME
one feasible solution to the subproblem at that node, it is possible that the
catalyst may find multiple feasible solutions within the 5 second time limit.
If so, five solutions of progressively improved surrogate-cost value are likely
to provide a variety of true-cost values. Consequently, catalyst computation
time can be saved if the catalyst is terminated if it has already found 5
integer solutions. Thus the catalyst will be terminated as soon as it finds 5
integer solutions or 5 seconds have elapsed.
Finally, while 5 seconds seems like the best time limit for Criterion 6 based
on the results of the previous chapter, it is possible that feasible solutions
could be found with even less time; nodes at levels bn2 c and b3n4 c have 50%
and 75% of the jobs already fixed, so some of the MIP subproblems at these
nodes may be especially easy to solve. As a result, we will also test executing
the catalyst heuristic for only 1 second at each node at these levels of the
B&B tree.
BKA n25 n50 n100
(a) H1 4 time limit (CPU seconds) NA NA 5 5
(b) H1 4 time limit (CPU seconds) NA NA 1 1
Table 7.4: Catalyst H1 4 time limit at Criterion 6, for each instance by group.
7.6.3 Using the construction heuristic at the root node
As per Table 6.6d (page 160), the construction heuristic (H0) did not find
any feasible solutions for the n100 instances within 300 seconds, and only
one feasible solution for four of the sixty instances within 10,300 seconds.
Consequently it is not worth executing the construction heuristic at the root
node for the n100 instances.
In contrast, the construction heuristic was very successful for the three other
data groups, finding many feasible solutions very quickly. As a result, it is
worth running the construction heuristic at the root node for these instances.
For the n50 instance we test two time limits; 10 seconds and 180 seconds.
While many feasible solutions can be found in 10 seconds, by running the
heuristic for much longer we attempt to obtain an even stronger upper
7.6 Using heuristics within the B&B tree 227
bound, so as to see how the speed to optimality or the optimality gap at
termination varies for these two times.
For the BKA and n25 groups, all instances had multiple feasible solutions
found within 1 second, so these instances will have the construction heuristic
executed for 1 second at the root node.
BKA n25 n50 n100
(a) H0 time limit (CPU seconds) 1 1 10 NA
(b) H0 time limit (CPU seconds) NA NA 180 NA
Table 7.5: H0 time limit at root node, for each instance by group.
7.6.4 Using the catalyst heuristic at the root node
While including the catalyst heuristic H1 4 at Criterion 6 at select levels of
the B&B tree is only worthwhile for the more difficult n50 and n100 instances
(when finding feasible solutions is very hard), executing the catalyst heuristic
at the root node is only worthwhile for the easier BKA and n25 instances
(when finding feasible solutions is easy and fast and only done once). Even
then, since some of these instances are already solved very quickly by exact
methods (for example, Methods 1 and 2), not too much time should be
allowed by a heuristic at the root node, as it will take time away from the
exact solution process.
Table 6.6 (page 159) shows that executing the catalyst for 1 second at the
root node will be sufficient time to find at least one feasible solution for all
BKA instances and 88.9% of n25 instances, providing the scheduling-based
B&B scheme with an initial global upper bound for Criterion 5.
In contrast, the same table shows that at best, 73.3% of n50 instances will
have a feasible solution found in 180 seconds, and only 8.3% of n100 instances
in 300 seconds. With such large times required to achieve relatively low
success, this time is possibly better spent executing the catalyst at Criterion
6 deep in the B&B tree. However, we test executing the B&B scheme
with the catalyst executed at the root node for these times too, to see how
advantageous it is to get an upper bound early.
228 A SCHEDULING BRANCH-AND-BOUND SCHEME
BKA n25 n50 n100
H1 4 time limit (CPU seconds) 1 1 180 300
Table 7.6: Catalyst H1 4 time limit at root node, for each instance by group.
7.7 Chapter summary
A scheduling-based branch-and-bound algorithm for solving the SOP-TW
exactly has been presented. Seven criteria for pruning nodes of the B&B
tree were presented in Section 7.4; implementation notes for the three most
complicated criteria are given in Sections 7.5 and 7.6. A comprehensive
computational study of the B&B algorithm is performed in the next chapter.
Chapter 8
COMPUTATIONAL
STUDY OF THE
BRANCH-AND-BOUND
SCHEME
In this chapter the performance of the scheduling-based branch-and-bound scheme is
tested via a comprehensive computational study. The success of this scheduling ap-
proach is compared with the other methodologies investigated throughout this thesis,
and the effectiveness of each criteria within the greater scheme is evaluated.
8.1 Chapter outline
In Chapter 4, a computational study of four MIP methods was performed.
While the MIP results were promising for the n25 and the BKA data sets,
the MIPs proved to be highly unsuccessful at finding a feasible solution
within the time limit for the n50 and n100 data groups. This motivated the
development of additional solution techniques that can find feasible solutions
quickly and prove optimality within a reasonable amount of time.
Chapters 5 and 6 investigated heuristic methods for finding feasible solutions
more quickly than the exact MIP methods; these methods had considerable
229
230 COMPUTATIONAL STUDY OF THE B&B SCHEME
success. In Chapter 7, an exact B&B scheme based on a scheduling approach
was presented; this scheme is a general framework that can have many
variations. Consequently, the current chapter investigates several variations
of the B&B scheme that build on the MIP and heuristic results presented
in earlier chapters.
Firstly, baseline B&B schemes that do not include any heuristics are evalu-
ated to determine the best LP relaxation to use when checking LP feasibility
at Criterion 4 (see §7.4.4); this determines the best baseline B&B scheme.
Once this is established, the best baseline B&B scheme will have the two
best heuristics from Chapter 6 incorporated in three ways, resulting in six
scheduling-based B&B methods that incorporate heuristics. Throughout
this chapter, the B&B variants are compared with the best MIP methods
for each data group.
To assess the performance of the different methods on the four data groups,
several criteria may be considered, including:
• Solution status at termination. For each method, an instance will
either (1) be solved to optimality within the time limit, (2) terminate
at the time limit with at least one feasible solution, or (3) terminate at
the time limit without a feasible solution. Solution status results for
instances within a data group can be aggregated, and the percentage
of instances within each of the three categories can be compared.
• Solution time. For instances that are solved to optimality by
at least one method, the solution times can be compared via time-
based performance profiles (as described in §4.6.4.2, page 111). The
proportion of instances where the time ratio is 1 gives the proportion
of instances for which a method was the best (that is, fastest) solver.
• LB quality at termination. For instances that are not solved to
optimality by at least one method, the lower bounds at termination
can be compared via value-based performance profiles (as described in
§4.6.4.2, page 111). The proportion of instances where the percentage
lower bound gap is 0 gives the proportion of instances for which a
method terminated with the best (that is, largest) lower bound.
• Relative gap at termination. For instances that terminate with
at least one feasible solution, the relative gap at termination is given
8.2 Machine and optimiser specifications 231
by 100(UB−LBLB
), where LB is the best lower bound and UB is the best
upper bound at termination. If LB = UB, then the optimal solution
was found and proved to be optimal by termination and the relative
gap is zero. If a feasible solution is not found prior to termination there
is no upper bound, and thus the gap for that instance is undefined and
not calculated. For each method, the distribution of the relative gaps
at termination can be compared via box plots.
Finally, the effectiveness of each individual criterion is considered for the
best scheduling-based B&B variants. A summary of the main methods in-
vestigated in this thesis—including those to come in this chapter—is given in
Figure 8.1; references to the corresponding results sections are also provided.
8.2 Machine and optimiser specifications
Like Section 4.6 and Chapter 6, all code was implemented in C and com-
piled with Microsoft Visual Studio 2005 Version 8.0, on a PC with an
Intel R© Xeon R© CPU 2.33 GHz and 3.25GB of RAM running Windows
XP Professional SP3 (32 bits). The LPs and MIPs were solved using
IBM R© ILOG R© CPLEX R© Callable Library Version 12.1 with parameter
CPX PARAM NODEFILEIND set to 3 (node files are transferred to disk and com-
pressed) and parameter CPX PARAM THREADS set to 1 (CPLEX uses a single
thread). All other parameters are at default settings.
8.3 Baseline B&B methods
The same time limits given to the MIP methods in §4.6.4.1 are given to the
scheduling-based B&B methods tested in this chapter, as shown in Table 8.1.
Data group names BKA n25 n50 n100
Time limit (CPU seconds) 1,800 1,800 4,375 10,300
Table 8.1: Maximum solve time for each method, for each instance by group.
232 COMPUTATIONAL STUDY OF THE B&B SCHEME
MIP methods §4.6
M1: MIP1 with precedence set P
M2: MIP1 with precedence set PALL
M3: MIP2 with precedence set P
M4: MIP2 with precedence set PALL
Heuristic methods §6.3–6.5
H0: Construction heuristic
H1 4: Catalyst heuristic (M1 with weight 1)
Baseline scheduling B&B methods (no heuristics) §8.3
M5: B&B where Criterion 4 solves LP relaxation of M1
M6: B&B where Criterion 4 solves LP relaxation of M2
M7: B&B where Criterion 4 solves LP relaxation of M3
M8: B&B where Criterion 4 solves LP relaxation of M4
Best baseline B&B (M5) incorporating heuristics §8.4
M9: M5 with H0 executed at root node only
M10: M5 with H1 4 executed at root node only
M11: M5 with H0 executed at Criterion 6 only
M12: M5 with H1 4 executed at Criterion 6 only
M13: M5 with H0 executed at root node and Criterion 6
M14: M5 with H1 4 executed at root node and Criterion 6
Effectiveness of each criterion (M5 & M9–M14) §8.5
Performance of Criteria 1–7 evaluated
Figure 8.1: Summary of main methods investigated in this thesis, including
those to come in this chapter, with corresponding results section references.
8.3 Baseline B&B methods 233
Table 8.2 provides a summary of the baseline methods tested (where Mi
refers to Method i, and both terms will be used interchangeably), along with
a description of each method as applied to a SOP-TW instance; recall that
the results for the MIP methods M1–M4 were discussed in Section 4.6.4. The
computational study of B&B methods M5–M8 will provide baseline results
that will determine the best LP relaxation (of M1–M4) to use at Criterion
4, and the performance of the basic B&B methods will be compared with
that of the MIP methods (using performance profiles as per Section 4.6.4.2).
Once the best method of M5–M8 is known, various schemes for incorporating
the heuristics at the root node and/or at Criterion 6 will be investigated in
Section 8.4.
Name Method with description as applied to a SOP-TW instance
M1 MIP1 Ponly: Solve MIP1 with precedence set P only (αij)
M2 MIP1 PrecAll: Solve MIP1 with precedence set PALL (αij)
M3 MIP2 Ponly: Solve MIP2 with precedence set P only (αij)
M4 MIP2 PrecAll: Solve MIP2 with precedence set PALL (αij)
M5 BB (C4: LP=M1) (No C6): Solve B&B algorithm as in
Algorithm 13 with CheckCriteria as in Algorithm 15 and §7.4,
where Criterion 4 solves the LP relaxation of M1, and Criterion 6
is not checked
M6 BB (C4: LP=M2) (No C6): As per M5 except Criterion 4
solves the LP relaxation of M2
M7 BB (C4: LP=M3) (No C6): As per M5 except Criterion 4
solves the LP relaxation of M3
M8 BB (C4: LP=M4) (No C6): As per M5 except Criterion 4
solves the LP relaxation of M4
Table 8.2: Summary of MIP and baseline B&B methods.
234 COMPUTATIONAL STUDY OF THE B&B SCHEME
8.3.1 Key results for BKA data group
As mentioned in the preprocessing results (§4.5.4) P = PALL for the modi-
fied BKA data sets; P TW = ∅ as there were no precedences induced by the
time windows due to the large deadlines. Consequently, for all of the BKA
instances, M1 is equivalent to M2, M3 is equivalent to M4, M5 is equivalent
to M6, and M7 is equivalent to M8. Hence results are only reported for
Methods 1, 3, 5 and 7, as shown in the performance profile in Figure 8.2.
0 2 4 6 8 10 12 14 16 18 200
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
Time/BestTime
Pro
port
ion o
f in
sta
nces
Method 1
Method 3
Method 5
Method 7
Figure 8.2: Performance profile for the BKA instances.
Optimality. All instances were solved to optimality within the time limit
of 1,800 seconds, except for one instance (#15) on Method 1. As noted
in Section 4.6.4.3, for this instance the IP gap was 20.92%, however, the
best upper bound was the optimal value thus the gap was due to the lower
bound.
Solution time. Recall that the proportion of instances where the time
ratio is 1 gives the proportion of instances for which a method was the best
solver. Consequently, M5 was the best solver on 80% of the problems (28
out of 35), M3 was the best solver on 14% of the problems (5 out of 35),
M1 was the best solver on 9% of the problems (3 out of 35), and M7 was
never the best solver. (Note that M1 and M5 were equal best solvers for one
instance.) The curve for M5 is equal to or in front of all other performance
profile curves so M5 is the best solution method overall.
Comparing the time ratio (r = T imeBestT ime) at which at least 90% of the
8.3 Baseline B&B methods 235
Percentiles
0 50 90 100
Met
hod
M1 1 16.0 88.3 121.3∗
M3 1 9.2 53.7 201.5
M5 1 1 3.3 14.8
M7 3.2 4.6 13.2 51.4
Table 8.3: Time ratios, r = TimeBestT ime , for the BKA group at key percentiles.
The 0-th percentile gives the smallest r for that method on any instance. ‘∗’
indicates r is truncated by an instance with a solve time capped at 1,800s.
instances were solved for each method (that is, where each curve hits a
proportion of 0.9 in Figure 8.2; see Table 8.3), M5 is still the best method
(r = 3.3), followed by M7 (r = 13.2), then M3 (r = 53.7) and M1 (r = 88.3).
This means that 90% of the BKA instances were solved by M5 within 3.3
times the best solve time for those instances. Since M5 had the best solve
time for 80% of instances, this means another 10% of instances were solved
within 3.3 times the best solve time of the other methods. In contrast, M1
was the best solver for only 9% of instances, and another 81% of instances
were solved within 88.3 times the best solve time of the other methods; the
remaining 10% of instances took even longer to solve when compared to the
best methods. As a result, the B&B methods M5 and M7 clearly outperform
the MIP methods M1 and M3 on this measure. Moreover, M5, the B&B
method with the LP relaxation of MIP1 clearly outperforms M7, the B&B
method with the LP relaxation of MIP2 ; this is due to the speed of the LP
relaxation of MIP1, as was discussed in §4.2.3 and §4.6.3.
Feasibility. Finally, as described in Section 3.5, all of the original BKA
data sets were intentionally infeasible as the methods of Brucker and Knust
[6] include testing problem feasibility: they test a lower bound on the
makespan by modifying deadlines and then testing the feasibility of the
modified problem. It is worth noting that all of the scheduling-based B&B
schemes proposed in this chapter, including M5–M8, were able to prove all
35 original BKA data sets were infeasible at the root node in less than 1
second.
236 COMPUTATIONAL STUDY OF THE B&B SCHEME
8.3.2 Key results for n25 data group
Optimality. All n25 problem instances were solved to optimality by meth-
ods M5 and M6 within the time limit, while 3 of 90 instances timed out for
M7 and M8. The relative performance of the eight methods in Table 8.2 are
compared with a performance profile as shown in Figure 8.3, which builds
on the performance profile for M1–M4 shown in Figure 4.3 (page 114).
0 2 4 6 8 10 12 14 16 18 200
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
Time/BestTime
Pro
port
ion o
f in
sta
nces
Method 1
Method 2
Method 3
Method 4
Method 5
Method 6
Method 7
Method 8
Figure 8.3: Performance profile for n25 instances.
Solution time. Based on this performance profile, the B&B methods with
MIP1 LPs (M5 & M6) outperform the two MIP1 methods (M1 & M2),
which outperform all methods using MIP2 (M3, M4, M7 and M8). The
curve for M5 is equal to or better than all other performance profile curves
so M5 is the best solution method overall. While the curve for M6 is very
close to that of M5, M5 is always in front; M5 is faster than M6 to solve
every n25 instance, however the solve time of M6 is at most 1.4 times that
of M5.
M5 was the best solver on 57.8% of the problems (52 out of 90), M1 was
the best solver on 22.2% of the problems (20 out of 90), M2 was the best
solver on 17.8% of the problems (16 out of 90), M4 was the best solver on
2.2% of the problems (2 out of 90), and methods M3, M6, M7 and M8 were
never the best solvers. Note that even though M6 was never the best solver,
if M5 was excluded, M6 would be the best solver on 54.4% of the instances
(49 out of 90).
8.3 Baseline B&B methods 237
Percentiles
0 50 90 100
Met
hod
M1 1 1.9 7.7 71.7∗
M2 1 2.5 9.6 76.7∗
M3 1.0 8.3 24.0 93.9∗
M4 1 9.5 31.5 92.5∗
M5 1 1 3.5 6.8
M6 1.1 1.2 3.9 7.9
M7 2.1 8.3 20.0 40.8∗
M8 2.1 10.8 25.7 53.1∗
Table 8.4: Time ratios, r = T imeBestT ime , for the n25 group at key percentiles.
The 0-th percentile gives the smallest r for that method on any instance. ‘∗’
indicates r is truncated by instances with solve times capped at 1,800s.
Comparing the time ratio at which at least 90% of the instances were solved
for each method (Table 8.4), both M5 and M6 have ratios below 4, while
M1 and M2 have ratios of 7.7 and 9.6 respectively. Comparing the ratio
for 100% of instances, M5 and M6 have ratios of 6.8 and 7.9 respectively;
this means the worst M5 (M6) solution time is 6.8 (7.9) times the best solve
time. In contrast, M1 and M2 have ratios of 71.7 and 76.7 respectively;
the worst M1 (M2) solution time is 71.7 (76.7) times the best solve time.
However, recall that four instances were not solved to optimality by M1 and
M2 within the 1,800 second time limit, as well as 5 instances for M3 and
M4, and 3 instances for M7 and M8. Consequently, the 100th percentile
ratios marked with a ‘∗’ in Table 8.4 are truncated as the solve times for
those instances were capped at 1,800 seconds. As a result, the true ratios
for the worst solve times are actually much larger.
As noted in §4.6.4.4, some n25 instances are significantly harder to solve
than others; recall the worst case MIP results for the eight n25 instances
presented in Table 4.11 (page 115). Table 8.5 shows the unrestricted solve
times for methods M1–M8 for the same instances, with the slowest method
highlighted in red and the fastest method highlighted in green.
For these eight hardest n25 instances, Method 5 was the fastest method for
238 COMPUTATIONAL STUDY OF THE B&B SCHEME
Com
pact
MIP
meth
od
sS
ched
ulin
g-based
B&
Bm
ethod
s
Cla
ss#
&n
am
eD
ataset
#M
1M
2M
3M
4M
5M
6M
7M
8
1,n
251
18,4
43.5
612,9
81.8
47,1
21.2
33,8
07.7
0117.25
140.66978.52
1,250.98
2,n
252
4137.2
2219.0
21,9
18.0
91,4
58.7
048.05
57.61358.56
442.59
2,n
252
85,5
82.1
46,8
05.7
31,3
05.0
01,0
80.3
857.45
67.33173.11
226.86
6,n
256
12,0
94.4
1375.4
412,3
95.5
68,1
72.7
596.88
112.75793.33
1,001.70
6,n
256
51,1
23.8
6531.8
31,0
07.4
21,8
34.8
4194.02
222.661,131.61
1,436.84
7,n
257
23,6
46.9
24,8
22.9
812,5
59.2
816,3
85.8
330.39
38.11239.48
308.81
9,n
259
51,3
83.1
96,4
72.8
31,7
99.4
8854.1
91,021.73
1,066.735,264.38
5,915.33
9,n
259
10
120.8
0894.6
91,9
53.9
52,6
23.1
9246.38
260.641,851.61
1,992.41
Tab
le8.5:
Un
restrictedso
lvetim
esfor
then
25in
stances
that
had
atleast
one
MIP
exceed
1,800secon
ds.
For
eachin
stance,
the
slowest
meth
od
ish
ighligh
tedin
redan
dth
efastest
meth
od
ish
ighligh
tedin
green.
8.3 Baseline B&B methods 239
75% of these instances, and the second fastest method for the remaining 25%
(with time ratios of 1.2 and 2.0). This indicates that M5 is a consistently
fast method, especially for hard problems like these instances.
The greatest difference between the best and worst methods was on instance
(7,2); the time ratio for M4 was 539.2, that is, the solve time for M4 was 539.2
times longer than M5 (16385.83 seconds versus 30.39 seconds). Compare this
ratio to the 100th percentile for M4 in Table 8.4; the truncated ratio is 92.5
whereas the true ratio is 539.2.
For the two instances where all four MIPs exceeded 1,800 seconds, (1,1) and
(7,2), the time ratio of the best MIP to the best B&B method was 32.5 and
120.0 respectively.
8.3.3 Key results for n50 data group
Solution status at termination. Extending Table 4.12 for the n50 in-
stances, Figure 8.4 summarises the solution status of methods M1–M8 at
termination, where NO SOL is the percentage of instances where no feasible
solution was found, FEAS is the percentage of instances that terminate with
at least one feasible solution found but optimality is not proved, and OPT
is the percentage of instances solved to optimality.
From Figure 8.4 it is clear that M1, M3, M4, M7 and M8 were highly un-
successful at finding a feasible solution within the time limit; 91.7% or more
instances terminated without a feasible solution for each of these methods.
M5 was the most successful method, solving 30% of instances (18 out of
60) to optimality, with a further 8.3% of instances (5 out of 60) terminating
with at least one feasible solution. The most successful MIP method was
M2, solving 3.3% of instances (2 out of 60) to optimality and a further 20%
of instances (12 out of 60) terminating with at least one feasible solution.
The remaining results for n50 are not as clear as for n25: all eight methods
could not prove optimality for the majority of data sets. Due to this variabil-
ity, we cannot use a single time-based performance profile to compare the
relative performance of each method across all instances. Instead, the per-
formance profile for data sets where at least one method solved to optimality
within the time limit (18 out of 60 instances) is given in Figure 8.5.
240 COMPUTATIONAL STUDY OF THE B&B SCHEME
OPT FEAS NO SOL
M1 0 8.3 91.7
M2 3.3 20.0 76.7
M3 0 1.7 98.3
M4 0 1.7 98.3
M5 30 8.3 61.7
M6 16.7 11.7 71.6
M7 1.7 0 98.3
M8 0 0 100
STATUS AT TERMINATION
0%# 20%# 40%# 60%# 80%# 100%#
M8#
M7#
M6#
M5#
M4#
M3#
M2#
M1#
Figure 8.4: Solution status summary for the n50 data sets (60 instances).
Entries correspond to the percentage of instances that terminate with sta-
tus: solved to optimality (OPT); at least one feasible solution found but
optimality is not proved (FEAS); and no feasible solution found (NO SOL).
0 1 2 3 4 5 6 7 8 9 100
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
Time/BestTime
Pro
port
ion o
f in
sta
nces
Method 1
Method 2
Method 3
Method 4
Method 5
Method 6
Method 7
Method 8
Figure 8.5: Performance profile for the n50 instances where at least one
method proved optimality (18 instances).
8.3 Baseline B&B methods 241
Solution time. Like with the BKA and n25 instances, it is important to
note that the solve time of instances not solved to optimality are capped in
this case at 4,375 seconds due to the time limit. As a result, this performance
profile does not fully penalise methods that do not reach optimality within
the time limit: for example, Methods 1, 3, 4 and 8 did not successfully prove
optimality for any of the 18 data sets shown (hence all of these results record
Time = 4,375 seconds and have identical curves, only seen as the yellow
curve in Figure 8.5 as they overlap), yet all problems have a Time/BestT ime
ratio of less than 10 (that is, appear at most 10 times worse than the best
solve time). In reality, the true (uncapped) solve times could be much
worse: compare with Time/BestT ime ratios of more than 500 for some n25
instances and more than 200 for some BKA instances.
As anticipated, Figure 8.5 shows that M5 is the superior method for these 18
instances, but gives no insight on which method performs best on the other
42 instances. As in §4.6.4.5, the quality of the lower bounds at termination
can be compared for instances where no feasible solution was found.
LB quality at termination. Figure 8.6 illustrates the quality of the
lower bounds at termination for all 60 of the n50 instances, while Figure 8.7
illustrates the quality of the lower bounds for the 42 instances where no
method proved optimality. As seen in both figures, M5 gives the best lower
bounds for at least 86.7% of all instances (and 81.0% of the 42 instances
where optimality was not proven within the time limit), and is within 3.4%
of the best lower bound on the rest of the instances.
Conclusion. By combining the n50 group results in Figures 8.4–8.7 it
is clear than M5 dominates the other seven methods in terms of proving
optimality and/or finding feasible solutions within the time limit, as well as
lower bound quality at termination.
8.3.4 Key results for n100 data group
Solution status at termination. None of the n100 problem instances
solved to optimality within the time limit for any method, thus a time-
based performance profile of the results is not appropriate. Similarly, no
method found any feasible solutions prior to termination. Consequently,
242 COMPUTATIONAL STUDY OF THE B&B SCHEME
0 1 2 3 4 5 6 7 8 90
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
Percentage LB gap from best LB, 100*(BestLB−LB)/(BestLB)
Pro
port
ion o
f in
sta
nces
Method 1
Method 2
Method 3
Method 4
Method 5
Method 6
Method 7
Method 8
Figure 8.6: Comparison of lower bound quality for all n50 instances.
0 1 2 3 4 5 6 7 8 90
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
Percentage LB gap from best LB, 100*(BestLB−LB)/(BestLB)
Pro
port
ion o
f in
sta
nces
Method 1
Method 2
Method 3
Method 4
Method 5
Method 6
Method 7
Method 8
Figure 8.7: Lower bound quality where optimality not proved (42 instances).
8.3 Baseline B&B methods 243
the only measure to be compared is lower bound quality at termination as
shown in Figure 8.8.
0 1 2 3 4 5 6 70
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
Percentage LB gap from best LB, 100*(BestLB−LB)/(BestLB)
Pro
port
ion o
f in
sta
nces
Method 1
Method 2
Method 3
Method 4
Method 5
Method 6
Method 7
Method 8
Figure 8.8: Comparison of lower bound quality for all n100 instances.
LB quality at termination. Methods 1, 2 and 5 each had the best lower
bound at termination for 30% of the instances, while Method 3 and 4 had
the best lower bound at termination for 8.3% and 1.7% of the instances,
respectively. Methods 6, 7 and 8 never had the best lower bound at termi-
nation.
Overall, M1 and M2 had the best lower bound gaps with a ratio of at most
2.6%, followed by M3 at 3.5%, M5 at 3.8%, M4 at 4.3%, M6 and M7 at
5.0% and M8 at 6.6%.
8.3.5 Conclusions on the baseline B&B methods
Based on the BKA, n25, n50 and n100 results presented in this section,
Method 5 is the superior scheduling-based B&B method. This method uses
the LP relaxation of MIP1 with precedence set P when checking LP fea-
sibility at Criterion 4. This result is consistent with the LP results shown
in §4.6.3.2 (page 108) and discussed in §4.6.3.4 (page 110). Consequently,
the next section investigates using M5 as the baseline method and then in-
corporating heuristics within the B&B tree—at Criterion 6 and/or the root
node—with the aim of finding feasible solutions for more of the difficult n50
and n100 instances.
244 COMPUTATIONAL STUDY OF THE B&B SCHEME
8.4 Incorporating heuristics within the B&B tree
The same time limits given to the MIP methods in §4.6.4.1 and the baseline
scheduling-based B&B methods in §8.3 are given to the scheduling-based
B&B methods that incorporate heuristics; these time limits are shown in
Table 8.1 on page 231.
As discussed in Section 7.6, the construction and catalyst heuristics can
be incorporated within the B&B tree at Criterion 6 and/or the root node.
With Method 5 (as per Table 8.2, page 233) as the baseline scheduling-based
B&B method, a variety of schemes which include the heuristics are tested; a
high-level summary of the methods is given in Table 8.6. The combinations
for including each heuristic into M5 are:
• execute the heuristic at the root node only (M9 and M10);
• execute the heuristic at Criterion 6 only (M11 and M12); and
• execute the heuristic at the root node and Criterion 6 (M13 and M14).
The particular methods tested for each data group is summarised in the
relevant results section, with heuristic time limits as discussed in §7.6.
8.4.1 Key results for BKA data group
Recall from §7.6.3 (page 226) and §7.6.4 (page 227) that for the BKA data
group only two additional methods are tested:
• M9: M5 with the construction heuristic H0 executed at the root node
for 1 second only; and
• M10: M5 with the catalyst heuristic H1 4 executed at the root node
for 1 second only.
The performance of these two new methods are compared with M5 and the
best MIP method for the BKA instances, M3. None of Methods 11, 12,
13 or 14 are tested as the time trade-off is not favourable, as discussed in
§7.6.2.
8.4 Incorporating heuristics within the B&B tree 245
Name Method with description as applied to a SOP-TW instance
M9 M5 (root: H0, t): As per M5 with the construction heuristic,
H0, executed at the root node for t seconds.
M10 M5 (root: H1 4, t): As per M5 with surrogate MIP H1 4
executed at the root node for a maximum of t seconds (terminate
earlier if 5 integer solutions found).
M11 M5 (C6: H0, t, n2 & 3n
4 ): As per M5 with the construction
heuristic, H0, executed at Criterion 6 at B&B levels bn2 c and
b3n4 c for t seconds.
M12 M5 (C6: H1 4, t, n2 & 3n
4 ): As per M11 except Criterion 6
solves surrogate MIP H1 4 at B&B levels bn2 c and b3n4 c for a
maximum of t seconds (earlier if 5 integer solutions found).
M13 M5 (root: H0, t1) (C6: H0, t2,n2 & 3n
4 ): As per M11 except
H0 is executed at the root node for t1 seconds, and at levels bn2 cand b3n
4 c for t2 seconds.
M14 M5 (root: H1 4, t1) (C6: H1 4, t2,n2 & 3n
4 ): As per M12
except H1 4 is executed at the root node for a maximum of t1
seconds, and at levels bn2 c and b3n4 c for a maximum of t2 seconds
(terminate earlier than t1 and t2 if 5 integer solutions found).
Table 8.6: Summary of B&B methods incorporating heuristics.
246 COMPUTATIONAL STUDY OF THE B&B SCHEME
Solution time. All instances solved to optimality for all methods within the
1,800 second time limit. Figure 8.9 shows the performance profile comparing
M3, M5, M9 and M10. M5 was the best solver on 71.4% of the problems (25
out of 35), M3 was the best solver on 14.3% of the problems (5 out of 35),
M9 was the best solver on 11.4% of the problems (4 out of 35), and M10 was
the best solver on 2.9% of the problems (1 out of 35). These results indicate
that briefly executing the heuristics at the root node was worthwhile for
only one seventh of the BKA group.
0 2 4 6 8 10 12 14 16 18 200
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
Time/BestTime
Pro
port
ion o
f in
sta
nces
Method 3
Method 5
Method 9
Method 10
Figure 8.9: Performance profile for the BKA instances.
The curve for M5 is equal to or in front of all other performance profile
curves so M5 is the best solution method overall. This suggests that in
general it is not worth incorporating the heuristics into M5, as in M9 and
M10, for small SOP-TW problem instances like the BKA data sets; the time
spent solving a heuristic at the root node is generally better spent exploring
nodes in the B&B tree to prove optimality sooner.
Comparing the time ratio (r = T imeBestT ime) at which at least 90% of the
instances were solved for each method (that is, where each curve hits a pro-
portion of 0.9 in Figure 8.9; see Table 8.7), M5 is the best method (r = 3.3),
followed by M9 (r = 9.4), then M10 (r = 9.5) and M1 (r = 53.7). This
means that 90% of the BKA instances were solved by M5 within 3.3 times
the best solve time for those instances. Since M5 had the best solve time for
71.4% of instances, this means another 18.6% of instances were solved within
3.3 times the best solve time of the other methods. In contrast, M3 was the
8.4 Incorporating heuristics within the B&B tree 247
best solver for only 14.3% of instances, and another 75.7% of instances were
solved within 53.7 times the best solve time of the other methods; the re-
maining 10% of instances took even longer to solve when compared to the
best methods. As a result, the scheduling-based B&B methods M5, M9 and
M10 clearly outperform the MIP method M3 on this measure for the BKA
instances.
Percentiles
0 50 90 100
Met
hod
M3 1 9.2 53.7 201.5
M5 1 1 3.3 14.8
M9 1 2.1 9.4 19.2
M10 1 1.9 9.5 15.4
Table 8.7: Time ratios, r = TimeBestT ime , for the BKA group at key percentiles.
The 0-th percentile gives the smallest r for that method on any instance.
8.4.2 Key results for n25 data group
As with the BKA instances, for the n25 data group only two additional
methods are tested: M9 (M5 with the construction heuristic executed at
the root node for 1 second only) and M10 (M5 with the catalyst heuristic
H1 4 executed at the root node for 1 second only). The performance of
these two methods are compared with M5 and the best MIP method for the
n25 instances, M1. None of Methods 11, 12, 13 or 14 are tested as the time
trade-off is not favourable, as discussed in §7.6.2.
Solution time. As noted in §4.6.4.4, M1 timed out on four instances.
However, all instances solved to optimality for M5, M9 and M10 within
the 1,800 second time limit. Figure 8.10 shows the performance profile
comparing M1, M5, M9 and M10. M5 was the best solver on 48.9% of the
problems (44 out of 90), M1 was the best solver on 34.4% of the problems
(31 out of 90), M10 was the best solver on 13.3% of the problems (12 out
of 90), and M9 was the best solver on 3.3% of the problems (3 out of 90).
These results indicate that briefly executing the heuristics at the root node
was worthwhile for only one sixth of the n25 group.
248 COMPUTATIONAL STUDY OF THE B&B SCHEME
0 1 2 3 4 5 6 7 80
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
Time/BestTime
Pro
port
ion o
f in
sta
nces
Method 1
Method 5
Method 9
Method 10
Figure 8.10: Performance profile for the n25 instances.
Since M5 is the best solver for nearly half of the n25 instances, and the
curve for M5 is mostly equal to or in front of all other curves, M5 is the best
solution method overall. However, it is worth noting that the curve for M5
is very close to that of M10 and M9 throughout Figure 8.10, indicating that
these methods are generally only slightly slower than M5. This conclusion is
supported by the percentiles for M5, M9 and M10 in Table 8.8. As a result,
executing the heuristics at the root node of the scheduling-based B&B tree
for the n25 instances is becoming competitive with M5.
Percentiles
0 50 90 100
Met
hod
M1 1 1.9 7.7 71.9∗
M5 1 1 2.4 6.8
M9 1 1.1 2.7 7.1
M10 1 1.1 2.6 7.1
Table 8.8: Time ratios, r = T imeBestT ime , for the n25 group at key percentiles.
The 0-th percentile gives the smallest r for that method on any instance. ‘∗’
indicates r is truncated by instances with solve times capped at 1,800s.
8.4 Incorporating heuristics within the B&B tree 249
8.4.3 Key results for n50 data group
For the n50 data group all six additional methods are tested. For four
methods (M9, M11, M12 and M14), two sets of parameters are tested; for
one method (M13), four sets of parameters are tested; and for one method
(M10), only a single parameter setting is tested. The parameter variations
are as per the heuristic time limits discussed in §7.6. They are:
• M9: M5 with the construction heuristic H0 executed at the root node
for (a) 180 seconds, and (b) 10 seconds.
• M10: M5 with the catalyst heuristic H1 4 executed at the root node
for a maximum of 180 seconds (terminate H1 4 earlier if 5 integer
solutions found).
• M11: M5 with the construction heuristic H0 executed at Criterion 6
for (a) 5 seconds, and (b) 1 second.
• M12: M5 with the catalyst heuristic H1 4 executed at Criterion 6 for
a maximum of (a) 5 seconds, and (b) 1 second (terminate H1 4 earlier
if 5 integer solutions found).
• M13: M5 with the construction heuristic H0 executed at the root node
for (i) 180 seconds, and (ii) 10 seconds, and Criterion 6 for (i) 5 seconds
and (ii) 1 second.
• M14: M5 with the catalyst heuristic H1 4 executed at the root node
for a maximum of 180 seconds and at Criterion 6 for a maximum of
(a) 5 seconds, and (b) 1 second (terminate H1 4 earlier if 5 integer
solutions found).
These combinations are summarised in Table 8.9. The performance of these
new methods are compared with M5 and the best MIP method for the n50
instances, M2.
In §8.4.3.1, results based on the solution status at termination are discussed.
This includes a high-level comparison of all methods, as well as three pair-
wise comparisons: the two methods with a heuristic at the root node only
(M9 and M10); the two methods with a heuristic at Criterion 6 only (M11
and M12); and the two methods with a heuristic at the root node and Cri-
terion 6 (M13 and M14). In §8.4.3.2, results based on performance profiles
250 COMPUTATIONAL STUDY OF THE B&B SCHEME
Method Heuristic Root node time (s) Criterion 6 time (s)
M9a H0 180 —
M9b H0 10 —
M10 H1 4 180 —
M11a H0 — 5
M11b H0 — 1
M12a H1 4 — 5
M12b H1 4 — 1
M13a H0 180 5
M13b H0 180 1
M13c H0 10 5
M13d H0 10 1
M14a H1 4 180 5
M14b H1 4 180 1
Table 8.9: Summary of B&B methods with heuristics for the n50 instances.
8.4 Incorporating heuristics within the B&B tree 251
and lower bound quality are discussed, while §8.4.3.3 considers relative gap
quality at termination for instances terminating with at least one feasible
solution. Overall conclusions for the n50 problem instances are summarised
in §8.4.3.4.
8.4.3.1 Results based on solution status at termination
The solution status summary for the n50 instances for each of the new meth-
ods is given in Figure 8.11; the solution status summary for M1–M8 (from
Figure 8.4) are also included for comparison. Various ‘solution status at ter-
mination’ comparisons for the n50 instances are discussed throughout this
section; a summary of those comparisons is given in Table 8.10 (page 257).
As seen in Figure 8.11, NO SOL is 0% for M9a and M9b (H0 at the root
node), M11a (H0 at Criterion 6), and all four variants of M13 (H0 at the root
and Criterion 6); optimality was proved or at least one feasible solution was
found for all n50 instances. In contrast, the best baseline method M5 could
do this for only 38.3% of instances. Consequently, the benefits of including
the construction heuristic at strategic points of the scheduling-based B&B
scheme are very clear for these difficult instances.
While the results are not as strong for the methods incorporating the catalyst
(M10, M12 and M14), they also demonstrate a significant improvement over
M5. M10 (H1 4 at the root node) was able to produce optimal and feasible
solutions for 78.3% of instances (more than double that for M5, 38.3%),
while for M12a and M12b (H1 4 at Criterion 6) these results were 88.3%
and 85%, and for M14a and M14b (H1 4 at the root and Criterion 6) these
results were 96.7% and 95%.
The methods that were most successful at proving optimality are: M9b
(35%), M9a (33.3%), M10 (31.7%) and M5 (30%). Since only three of
the B&B methods that execute the heuristics proved optimality slightly
more often than M5—and all three methods executed the heuristics at the
root node only—this indicates that time spent in the tree to investigate as
many nodes as possible is exceptionally important (compare the number of
nodes explored to optimality/termination for M5, M9b and M10 with M11–
M14: 57,262–64,114 nodes compared with 28,412–54,325 nodes, shown in
Table 8.14 on page 271). However, since these three methods were able to
252 COMPUTATIONAL STUDY OF THE B&B SCHEME
OPT FEAS NO SOL
M1 0 8.3 91.7
M2 3.3 20.0 76.7
M3 0 1.7 98.3
M4 0 1.7 98.3
M5 30 8.3 61.7
M6 16.7 11.7 71.6
M7 1.7 0 98.3
M8 0 0 100
M9a 33.3 66.7 0
M9b 35.0 65.0 0
M10 31.7 46.7 21.6
M11a 5.0 95.0 0
M11b 15.0 83.3 1.7
M12a 3.3 85.0 11.7
M12b 11.7 73.3 15
M13a 5.0 95.0 0
M13b 15.0 85.0 0
M13c 6.7 93.3 0
M13d 15.0 85.0 0
M14a 5.0 91.7 3.3
M14b 11.7 83.3 5.0
STATUS AT TERMINATION
0%# 20%# 40%# 60%# 80%# 100%#
M14b#
M14a#
M13d#
M13c#
M13b#
M13a#
M12b#
M12a#
M11b#
M11a#
M10#
M9b#
M9a#
M8#
M7#
M6#
M5#
M4#
M3#
M2#
M1#
Figure 8.11: Solution status summary for the n50 data sets (60 instances).
Entries correspond to the percentage of instances that terminate with sta-
tus: solved to optimality (OPT); at least one feasible solution found but
optimality is not proved (FEAS); and no feasible solution found (NO SOL).
8.4 Incorporating heuristics within the B&B tree 253
find feasible solutions for an additional 38.4–58.4% of instances compared
with M5, the upper bounds generated by executing the heuristics at the
root node were also valuable in pruning nodes throughout the B&B tree
(compare the number of nodes pruned by criteria for M9b and M10 with
M5: 2,076,854–2,088,151 nodes compared with 1,866,601 nodes, shown in
Table 8.14 on page 271).
As mentioned at the start of §8.4, there are three combinations for including
the two heuristics into M5:
• execute the heuristic at the root node only (M9 and M10);
• execute the heuristic at Criterion 6 only (M11 and M12); and
• execute the heuristic at the root node and Criterion 6 (M13 and M14).
In the next few sections, the n50 results for each combination are discussed.
M9 & M10. Table 6.6c (page 160) shows that the construction heuristic
H0 found feasible solutions for all n50 instances within 1 second (and thus
180 seconds and 10 seconds as used in M9a and M9b, respectively), while
catalyst H1 4 found feasible solutions for 73.3% of instances within 180
seconds (as used in M10). By comparing these figures with those of M5,
M9a/b and M10, the benefit from including H0 and H1 4 at the root node
before executing M5 can be inferred.
Recall that M9a (M9b) executes H0 for 180 (10) seconds at the root node
before executing M5 for 4,195 (4,365) seconds (the total time limit less 180
(10) seconds). Consequently, OPT+FEAS for M9a (M9b) should be 100% to
be consistent with the H0 results at 180 (10) seconds; indeed, OPT+FEAS
is 100%. Moreover, OPT went from 30.0% for M5 to 33.3% for M9a (35.0%
for M9b) as optimality was proved for two (three) additional instances, while
FEAS went from 8.3% for M5 to 66.7% for M9a (65% for M9b), and thus
the number of instances terminating without a feasible solution (NO SOL)
dropped from 61.7% to 0% for both M9a and M9b. As a result, both M9a
and M9b outperform M5 for the n50 group.
Similarly, recall that M10 executes H1 4 for 180 seconds at the root node
before executing M5 for 4,195 seconds (the total time limit less 180 seconds).
Consequently, OPT+FEAS for M10 should be at least 73.3% to be consistent
254 COMPUTATIONAL STUDY OF THE B&B SCHEME
with the H1 4 results at 180 seconds; indeed, OPT+FEAS is 78.3% (note
that OPT+FEAS is only 38.3% for M5). Moreover, OPT went from 30.0%
(M5) to 31.7% (M10), while FEAS went from 8.3% (M5) to 46.7% (M10),
and thus the number of instances terminating without a feasible solution
dropped from 61.7% to 21.7%. Thus M10 also outperforms M5.
M11 & M12. In M11 (M12), the construction heuristic H0 (catalyst
heuristic H1 4) is executed in Criterion 6 for either (a) 5 seconds or (b)
1 second at select nodes in the B&B tree. By comparing M11 and M12, the
benefit of using H0 over H1 4 at Criterion 6 can be established, while com-
paring the (a) and (b) versions evaluates the effect of the amount of time
spent at Criterion 6. The benefit of including the heuristics at Criterion
6 only can be established by comparing the results for M5 with those for
M11a/b and M12a/b.
While the percentage of instances that terminate with the optimal solu-
tion reduces (from 30% for M5 down to 3.3–15% for M11 and M12), the
percentage of instances that terminate without a feasible solution decreases
dramatically (from 61.7% down to 0–15%). These results demonstrate the
trade-off between time spent in a heuristic at Criterion 6 compared with
time spent in the rest of the algorithm: additional feasible solutions can be
found (as seen in the M11/M12 results) when time is spent at Criterion 6.
However, this reduces the proportion of the time limit dedicated to the rest
of the algorithm. Since more time spent in the rest of the algorithm enables
additional nodes to be explored, optimality can be proved sooner for some
instances, as seen in the M5 results.
For the same reason, a similar result is seen when comparing M11a/M12a
(5 seconds at Criterion 6) and M11b/M12b (1 second at Criterion 6). Both
M11b and M12b are more successful than M11a and M12a at proving op-
timality (OPT is 15%/11.7% for M11b/M12b compared with 5%/3.3% for
M11a/M12a), and worse at finding feasible solutions (NO SOL is 1.7%/15%
for M11b/M12b compared with 0%/11.7% for M11a/M12a).
Overall, H0 in M11b (M11a) is better than the catalyst H1 4 in M12b (M12a)
at (i) proving optimality with 15% (5%) compared with 11.7% (3.3%), as
well as (ii) finding feasible solutions with NO SOL of 1.7% (0%) compared
8.4 Incorporating heuristics within the B&B tree 255
with 15% (11.7%). Consequently, M11 outperforms M12 at both finding
feasible solutions and proving optimality.
M13 & M14. A similar analysis of relative performance can be done
for M13/M14 as was done for M11/M12. In M13 (M14), the construction
heuristic H0 (catalyst heuristic H1 4) is executed in Criterion 6 for either (a)
5 seconds or (b) 1 second at select nodes in the B&B tree, as well as at the
root node for 180 seconds or 10 seconds (M13c/d only). By comparing M13
and M14, the benefit of using H0 over H1 4 at the root node and Criterion
6 can be established, while comparing the (a) and (b) versions evaluates the
effect of the amount of time spent at Criterion 6. The benefit of including
the heuristics at both the root node and Criterion 6 can be established by
comparing the results for M5 with those for M13 and M14. The benefit of
including the heuristics at both the root node and Criterion 6 rather than
just Criterion 6 can be established by comparing the results for M13 and
M14 with those for M11 and M12.
An important additional comparison is M13/M14 (heuristic at root and
Criterion 6) with M9/M10 (heuristic at root only). When the heuristic is
H0, M9a/b is compared with M13a/b/c/d. M9b is the overall winner; M9a/b
outperforms all of M13a/b/c/d on OPT (33.3–35% compared with 5–15%),
and NO SOL is 0% for all six methods. This suggests that if terminating
with the optimal solution is the highest priority, M9b is the best choice of
these six methods.
When the heuristic is H1 4, M10 is compared with M14a/b. While M10
outperforms M14a/b on OPT (31.7% compared with 5–11.7%), M14a/b is
better at terminating with feasible solutions; NO SOL is 21.7% for M10
compared with only 3.3–5% for M14a/b. This suggests that if terminating
with the optimal solution is the highest priority, M10 is the best choice
of these three methods. However, if terminating with at least one feasible
solution is a higher priority, M14a/b are better methods.
Another important comparison is M13/M14 (heuristic at root and Criterion
6) with M11/M12 (heuristic at Criterion 6 only). When the heuristic is
H0, M11a/b is compared with M13a/b/c/d. Overall M13b/d are the best of
M11a/b and M13a/b/c/d; M13b/d and M11b are equal on OPT (15%, which
is better than 5–6.7% for M11a and M13a/c) however, M13b/d outperforms
256 COMPUTATIONAL STUDY OF THE B&B SCHEME
M11b on FEAS (85% compared with 83.3%). These results indicate that
executing H0 at both the root node (for 10 or 180 seconds) and Criterion 6
(for 1 second only) is better than including H0 at Criterion 6 only.
When the heuristic is H1 4, M12a/b is compared with M14a/b. M14a/b
outperforms M12a/b (as OPTM14i ≥ OPTM12i and FEASM14i ≥ FEASM12i
for i ∈ {a,b}) indicating that executing the catalyst H1 4 at both the root
node and Criterion 6 (for 1 second only) is better than including the catalyst
at Criterion 6 only.
Finally, it is worth noting that overall M13b/d are the best of M13a/b/c/d
and M14a/b, as OPT and NO SOL are best for M13b/d (15% and 0%,
respectively).
A summary of the results of the above comparisons is given in Table 8.10.
8.4.3.2 Results based on performance profile and LB quality
As seen in §8.3.3, all methods investigated in this section could not prove
optimality for the majority of data sets. Due to this variability, we cannot
use a single time-based performance profile to compare the relative perfor-
mance of each method across all instances. Instead, the performance profile
for data sets where at least one method solved to optimality within the time
limit (21 out of 60 data sets) is given in Figure 8.12.
0.5 1 1.5 2 2.5 3 3.5 4 4.50
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
Time/BestTime
Pro
port
ion o
f in
sta
nces
Method 2
Method 5
Method 9a
Method 9b
Method 10
Method 11a
Method 11b
Method 12a
Method 12b
Method 13a
Method 13b
Method 13c
Method 13d
Method 14a
Method 14b
Figure 8.12: Performance profile for the n50 instances where at least one
method proved optimality (21 instances).
8.4 Incorporating heuristics within the B&B tree 257M
ethods
com
pare
dC
om
pari
son
Bes
tfo
ropti
mality
Bes
tfo
rfe
asi
bilit
yB
oth
M5
vs.
M9a/b
M5
vs.
M5
wit
hheu
rist
icH
0at
root
M9b
M9a/b
M9b
M5
vs.
M10
M5
vs.
M5
wit
hheu
rist
icH
14
at
root
M10
M10
M10
M9a/b
vs.
M10
Heu
rist
icat
root
node:
H0
vs.
H1
4M
9b
M9a/b
M9b
M5
vs.
M11a/b
M5
vs.
M5
wit
hheu
rist
icH
0at
Cri
teri
on
6M
5M
11a
–
M5
vs.
M12a/b
M5
vs.
M5
wit
hheu
rist
icH
14
at
Cri
teri
on
6M
5M
12a
–
M11a/b
vs.
M12a/b
Heu
rist
icat
Cri
teri
on
6:
H0
vs.
H1
4M
11b
M11a
–
M5
vs.
M13a/b/c/
dM
5vs.
M5
wit
hheu
rist
icH
0at
root
and
Cri
teri
on
6M
5M
13a/b/c/
d–
M5
vs.
M14a/b
M5
vs.
M5
wit
hheu
rist
icH
14
at
root
and
Cri
teri
on
6M
5M
14a
–
M13a/b/c/
dvs.
M14a/b
Heu
rist
icat
root
node
and
Cri
teri
on
6:
H0
vs.
H1
4M
13b/d
M13a/b/c/
dM
13b/d
M9a/b
vs.
M13a/b/c/
dH
0:
at
root
only
vs.
at
root
and
Cri
teri
on
6M
9b
M9a/b
&M
13a/b/c/
dM
9b
M10
vs.
M14a/b
H1
4:
at
root
only
vs.
at
root
and
Cri
teri
on
6M
10
M14a
–
M11a/b
vs.
M13a/b/c/
dH
0:
at
Cri
teri
on
6only
vs.
at
root
and
Cri
teri
on
6M
11b
&M
13b/d
M11a
&M
13a/b/c/
dM
13b/d
M12a/b
vs.
M14a/b
H1
4:
at
Cri
teri
on
6only
vs.
at
root
and
Cri
teri
on
6M
12b
&M
14b
M14a
–
M9a
vs.
M9b
Tim
efo
rH
0at
root:t
=180
vs.t
=10
M9b
M9a/b
M9b
M11a
vs.
M11b
Tim
efo
rH
0at
Cri
teri
on
6:t
=5
vs.t
=1
M11b
M11a
–
M12a
vs.
M12b
Tim
efo
rH
14
at
Cri
teri
on
6:t
=5
vs.t
=1
M12b
M12a
–
M13a
vs.
M13b
Tim
efo
rH
0at
Cri
teri
on
6(r
oot:t
=180):t
=5
vs.t
=1
M13b
M13a/b
–
M13c
vs.
M13d
Tim
efo
rH
0at
Cri
teri
on
6(r
oot:t
=10):t
=5
vs.t
=1
M13d
M13c/
d–
M14a
vs.
M14b
Tim
efo
rH
14
at
Cri
teri
on
6(r
oot:t
=180):t
=5
vs.t
=1
M14b
M14a
–
M13a
vs.
M13c
Tim
efo
rH
0at
root
(Cri
teri
on
6:t
=5):t
=180
vs.t
=10
M13c
M13a/c
M13c
M13b
vs.
M13d
Tim
efo
rH
0at
root
(Cri
teri
on
6:t
=1):t
=180
vs.t
=10
M13b/d
M13b/d
M13b/d
Tab
le8.
10:
Su
mm
ary
of‘s
olu
tion
statu
sat
term
inat
ion
’co
mp
aris
ons
for
then
50in
stan
ces.
‘Bes
tfo
rop
tim
alit
y’
give
sth
e
bes
tm
eth
od
(s)
ofth
eco
mp
aris
onb
ase
don
the
per
centa
geof
inst
ance
sth
atte
rmin
ate
wit
hth
eop
tim
also
luti
on.
‘Bes
tfo
r
feas
ibil
ity’
give
sth
eb
est
met
hod
(s)
of
the
com
par
ison
bas
edon
the
per
centa
geof
inst
ance
sth
atte
rmin
ate
wit
hat
leas
ton
e
feas
ible
solu
tion
,in
clu
din
gth
eop
tim
al
solu
tion
.‘B
oth
’gi
ves
the
met
hod
(s)
bes
tfo
rb
oth
opti
mal
ity
and
feas
ibil
ity.
258 COMPUTATIONAL STUDY OF THE B&B SCHEME
Again, it is important to note that the solve time of instances not solved
to optimality are capped at 4,375 seconds due to the time limit. As a
result, this performance profile does not fully penalise methods that do not
reach optimality within the time limit: for example, Methods 2 and 12a did
not successfully prove optimality for 19 of the 21 data sets shown (hence
all of these results record Time = 4,375 seconds), yet all problems have
a Time/BestT ime ratio of less than 11 (that is, appear at most 11 times
worse than the best solve time). In reality, the true (uncapped) solve times
could be much worse: compare with Time/BestT ime ratios of more than
500 for some n25 instances and more than 200 for some BKA instances in
§8.3.1–8.3.2.
Since M9b is the best solver for 81.0% of these instances (17 out of 21),
and the curve for M9b is equal to or in front of all other curves, M9b is
the best solution method for these 21 instances. M13d was the best solver
on 9.5% of the problems (2 out of 21), and M5 and M10 were each the
best solvers for 4.8% of the problems (1 out of 21 each); methods M2, M9a,
M11a/b, M12a/b, M13a/b/c and M14a/b were never the best solvers. Note
that even though M9a was never the best solver, all 21 instances had a
Time/BestT ime ratio of less than 1.45 compared with 1.31 for M9b, 1.40
for M10, and 1.43 for M5. This indicates that the solve times produced by
M9a for these instances is very close to the times produced by each of the
best solvers.
Recall from §8.4.3.1 and Figure 8.11 that the most successful methods at
proving optimality are M9b (35%), M9a (33.3%), M10 (31.7%) and M5
(30%). Consequently, it is unsurprising that Figure 8.12 shows that M9b,
M10, M9a and M5 are the best methods for these 21 instances; their four
curves are within a Time/BestT ime ratio of 1.5, compared with over 3 for
all other methods. However, this performance profile gives no insight on
which method performs best on the other 39 instances. As in §4.6.4.5 and
§8.3.3, the quality of the lower bounds at termination can be compared for
instances where no feasible solution was found.
Figure 8.13 illustrates the quality of the lower bounds at termination for all
60 of the n50 instances, while Figure 8.14 illustrates the quality of the lower
bounds for the 39 instances where no method proved optimality. As seen
in both figures, M9a, M9b and M10 give the best lower bounds overall (LB
8.4 Incorporating heuristics within the B&B tree 259
0 1 2 3 4 5 6 70
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
Percentage LB gap from best LB, 100*(BestLB−LB)/(BestLB)
Pro
port
ion o
f in
sta
nces
Method 2
Method 5
Method 9a
Method 9b
Method 10
Method 11a
Method 11b
Method 12a
Method 12b
Method 13a
Method 13b
Method 13c
Method 13d
Method 14a
Method 14b
Figure 8.13: Comparison of lower bound quality for all n50 instances.
0 1 2 3 4 5 6 70
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
Percentage LB gap from best LB, 100*(BestLB−LB)/(BestLB)
Pro
port
ion o
f in
sta
nces
Method 2
Method 5
Method 9a
Method 9b
Method 10
Method 11a
Method 11b
Method 12a
Method 12b
Method 13a
Method 13b
Method 13c
Method 13d
Method 14a
Method 14b
Figure 8.14: Lower bound quality where optimality not proved (39 instances).
260 COMPUTATIONAL STUDY OF THE B&B SCHEME
gaps are within 2.9% for all instances), with M5 not far behind (LB gaps are
within 3.4% for all instances). In contrast, M2 consistently has the weakest
lower bounds, with all LB gaps within 7.9%.
Interestingly, the (b) versions of M11, M12, M13 and M14 generally produce
better lower bounds than the (a) versions of the same methods; this effect
is most clearly seen in Figure 8.13 where the dashed lines that comprise the
second wedge of overlapping curves are M11b/M12b/M13b/M13d/M14b,
while the solid lines that comprise the third wedge of overlapping curves are
M11a/M12a/M13a/M13c/M14a. As seen in Figure 8.14, for the 39 instances
without any optimal solutions, M11b/M12b/M13b/M14b (and M13d) pro-
duce LBs at termination that are all within 4.9% of the best LB, compared
with 6.7% for M11a/M12a/M13a/M14a (and M13c). This means that the
methods that execute a heuristic at Criterion 6 for only 1 second generally
produce better LB gaps at termination than the methods that allow 5 sec-
onds at Criterion 6. This is due to the additional instances where optimal
solutions are produced by these methods, as discussed in Section 8.4.3.1.
8.4.3.3 Results based on relative gaps at termination
For a problem instance that terminates with at least one feasible solution,
the relative gap at termination is given by 100(UB−LBLB
), where LB is the
best lower bound and UB is the best upper bound at termination. If
LB = UB, then the optimal solution was found and proved to be optimal
by termination and the relative gap is zero. If a feasible solution is not
found prior to termination there is no upper bound, and thus the gap for
that instance is undefined and not calculated.
For each method, the distribution of the relative gaps at termination for the
n50 instances is given in Figure 8.15. The number in parentheses next to
the method name is the number of instances (out of 60) that terminate with
an upper bound and thus a gap is included in the box plot.
For each method that has multiple variations, the box plots are in the same
colour; this highlights that the box plot ranges of methods in the same group
have a similar spread. Likewise, M11a is closely related to M13a/c and thus
these box plots have very similar spreads. This pattern is also seen for:
M11b with M13b/d; M12a and M14a; and M12b and M14b.
8.4 Incorporating heuristics within the B&B tree 261
●
●
●
●
●
●●● ●
●●
●
●
●
●
●
●●●
●
●
●
●●●
●
●
●
●
●
●
●
●
M2
( 1
4 )
M5
( 2
3 )
M9a
( 6
0 )
M9b
( 6
0 )
M10
( 4
7 )
M11
a (
60
)
M11
b (
59
)
M12
a (
53
)
M12
b (
51
)
M13
a (
60
)
M13
b (
60
)
M13
c (
60
)
M13
d (
60
)
M14
a (
58
)
M14
b (
57
)
020
4060
8010
0
Figure 8.15: Box plot of the relative gaps for each exact method for the n50
instances (60 instances).
262 COMPUTATIONAL STUDY OF THE B&B SCHEME
As seen in Figure 8.11, M5 has the best ratio of OPT to FEAS (30% to
8.3%). Moreover, those 8.3% of instances terminated with relative gaps of
less than 4.8%, thus M5 produces the most compact box plot.
Since M9a, M9b and M10 all terminate with the optimal solution for over
30% of instances, the first quartile of each of these box plots is zero. However,
M10 has the largest range (with the maximum relative gap of 98.2%) and
M9a and M9b produce the largest medians. All three of these methods only
execute a heuristic at the root node. In contrast, M11–M14 which all execute
a heuristic at Criterion 6 within the B&B tree produce more compact box
plots of the relative gaps. This indicates that finding feasible solutions later
in the solution process is likely to provide a better upper bound (and thus
relative gap at termination) than those found at the root node only.
Finally, the spread of the relative gaps produced by the methods executing
the construction heuristic H0 (M9, M11 and M13) are generally better than
those using the catalyst H1 4 (M10, M12 and M14). This is not surprising;
as discussed in §6.3.2 and §6.3.4, the construction heuristic produces many
good-quality unique feasible solutions and thus has a distinct advantage over
the catalyst heuristic H1 4.
8.4.3.4 n50 conclusions
By combining the n50 group results in Figures 8.11–8.15, the results for the
methods including the heuristics are very promising, though not as clear cut
as for the baseline B&B methods.
For producing optimal solutions and thus the best solve times, methods M5,
M9a/b and M10 are most successful. For consistently producing feasible
solutions M9a/b, M11a and M13a/b/c/d are most successful. Finally, for
good-quality lower bounds at termination, methods M5, M9a/b and M10
are most successful, followed by all methods that execute a heuristic at
Criterion 6 for 1 second only (M11b/M12b/M13b/M13d/M14b).
8.4.4 Key results for n100 data group
Despite the success of M9 and M13 for the n50 group, these methods are
not worth testing for the n100 group as the construction heuristic did not
8.4 Incorporating heuristics within the B&B tree 263
find any feasible solutions for any of the n100 instances with a time limit
of 300 seconds. Consequently, for the n100 data group only four of the
six additional methods are tested, with two variations for three of those
methods. They are:
• M10: M5 with the catalyst heuristic H1 4 executed at the root node
for a maximum of 300 seconds (terminate H1 4 earlier if 5 integer
solutions found).
• M11: M5 with the construction heuristic H0 executed at Criterion 6
for (a) 5 seconds, and (b) 1 second.
• M12: M5 with the catalyst heuristic H1 4 executed at Criterion 6 for
a maximum of (a) 5 seconds, and (b) 1 second (terminate H1 4 earlier
if 5 integer solutions found).
• M14: M5 with the catalyst heuristic H1 4 executed at the root node
for a maximum of 300 seconds and at Criterion 6 for a maximum of
(a) 5 seconds, and (b) 1 second (terminate H1 4 earlier if 5 integer
solutions found).
These combinations are summarised in Table 8.11. The performance of these
new methods is compared with M5 and the best MIP methods for the n100
instances, M1 and M2.
Method Heuristic Root node time (s) Criterion 6 time (s)
M10 H1 4 300 —
M11a H0 — 5
M11b H0 — 1
M12a H1 4 — 5
M12b H1 4 — 1
M14a H1 4 300 5
M14b H1 4 300 1
Table 8.11: Summary of B&B methods with heuristics for the n100 instances.
The solution status summary for the n100 instances for each of the new
methods is given in Figure 8.16; the solution status summary for M1–M8 is
included for comparison.
264 COMPUTATIONAL STUDY OF THE B&B SCHEME
OPT FEAS NO SOL
M1-M8 0 0 100
M10 0 8.3 91.7
M11a 0 68.3 31.7
M11b 0 70.0 30.0
M12a 0 11.7 88.3
M12b 0 3.3 96.7
M14a 0 25.0 75.0
M14b 0 15.0 85.0
STATUS AT TERMINATION
0%# 20%# 40%# 60%# 80%# 100%#
M14b#
M14a#
M12b#
M12a#
M11b#
M11a#
M10#
M1,M8#
Figure 8.16: Solution status summary for the n100 data sets (60 instances).
Entries correspond to the percentage of instances that terminate with sta-
tus: solved to optimality (OPT); at least one feasible solution found but
optimality is not proved (FEAS); and no feasible solution found (NO SOL).
Solution status and LB quality at termination. Figure 8.16 shows
that none of the n100 instances are solved to optimality within the time
limit by any of these methods, and none of M1–M8 produced a feasible
solution. In contrast, all of the B&B methods that included a heuristic at
the root and/or Criterion 6 produced some feasible solutions; for at least
two of the 60 instances (3.3% for M12b), and up to 42 of the 60 instances
(70.0% for M11b).
M5 & M10. Comparing the results for M5 and M10 quantifies the benefit
of using 300 seconds of the time limit to execute the catalyst H1 4 at the
root node. As seen in Table 6.6d (p.160), heuristic method H1 4 found a
feasible solution for 8.3% of the n100 instances (5 out of 60) within 300
seconds. Table 8.11 notes that M10 executes H1 4 for 300 seconds at the
root node; the rest of the time limit (10,000 seconds) is used for M5. Since
executing M5 for the full time limit of 10,300 seconds produced no feasible
solutions for any of the n100 instances, it is unsurprising that no further
feasible solutions were found by M10. However, for the 5 instances that
H1 4 finds an upper bound, all of these instances terminate with a larger
lower bound in M10 compared to M5, indicating that the upper bound found
by the heuristic at the root was useful for pruning nodes in the B&B tree
(at Criterion 5).
8.4 Incorporating heuristics within the B&B tree 265
M10 & M14. Comparing the results for M10 and M14 quantifies the
benefit of including catalyst H1 4 at Criterion 6. For the n100 instances,
M14a executes H1 4 at Criterion 6 for 5 seconds at all nodes at level 50
(50 jobs remaining to be scheduled) and level 75 (25 jobs remaining to be
scheduled); M14b is the same as M14a except H1 4 is executed for only 1
second at Criterion 6. For M10, 8.3% of instances terminate with an upper
bound, while this is 25% for M14a and 15% for M14b. This indicates that it
is worthwhile including H1 4 at Criterion 6 for either 1 second or 5 seconds,
though better results are achieved for 5 seconds. However, there will be
a reduction in lower bound quality at termination of up to 1%, as seen in
Figure 8.17, where the curve for M10 is consistently in front or equal to the
curves for M14a and M14b.
0 0.5 1 1.5 2 2.5 3 3.50
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
Percentage LB gap from best LB, 100*(BestLB−LB)/(BestLB)
Pro
port
ion o
f in
sta
nces
Method 1
Method 2
Method 5
Method 10
Method 11a
Method 11b
Method 12a
Method 12b
Method 14a
Method 14b
Figure 8.17: Comparison of lower bound quality for all n100 instances.
M12 & M14. Comparing the results for M12a and M14a (and M12b and
M14b) quantifies the benefit of including catalyst H1 4 at the root node for
300 seconds, when H1 4 is already executed at Criterion 6 for 5 seconds
(and 1 second, respectively). For M12a, 11.7% of instances terminate with
an upper bound; this increases to 25% for M14a (3.3% for M12b and 15% for
M14b). These results show that M14 outperforms M12 in terms of finding
feasible solutions, thus executing H1 4 at the root node is worthwhile when
H1 4 is already executed at Criterion 6, with the best results when H1 4 is
executed at Criterion 6 for 5 seconds as in M14b. Interestingly, there is no
reduction in lower bound quality at termination; the curve for M14a (M14b)
266 COMPUTATIONAL STUDY OF THE B&B SCHEME
is consistently in front of the curve for M12a (M12b) in Figure 8.17. Indeed,
there is actually an improvement in the lower bound at termination for
M14a (M14b) compared to M12a (M12b) which indicates that the additional
feasible solutions that have been found have been used to prune more nodes
throughout the B&B tree (at Criterion 5).
Other results. For each method, the percentage of instances with the best
lower bound at termination corresponds to the proportion of instances where
the percentage LB gap from the best LB is zero (as seen in Figure 8.17):
Method M1 M2 M5 M10 M11a M11b M12a M12b M14a M14b
% best 30 25 0 23.3 1.7 20 0 0 0 0
M1 and M2 regularly produce the best lower bound, as seen in the above
table and in Figure 8.17. However, neither of these methods produce up-
per bounds (see Figure 8.16) and thus do not generate a relative gap (see
Figure 8.18).
●
●
M1
( 0
)
M2
( 0
)
M5
( 0
)
M10
( 5
)
M11
a (
41
)
M11
b (
42
)
M12
a (
7 )
M12
b (
2 )
M14
a (
15
)
M14
b (
9 )
1020
3040
5060
70
Figure 8.18: Box plot of the relative gaps for each exact method for the n100
instances (60 instances).
8.4 Incorporating heuristics within the B&B tree 267
In contrast, M11a and M11b produced feasible solutions prior to termination
for over two-thirds of the n100 instances (68.3% for M11a and 70.0% for
M11b). To a lesser extent, M14a and M14b were also successful at finding
feasible solutions; 25.0% for M14a and 15.0% for M14b. For all instances
that terminated with an upper bound, the relative gap can be calculated.
For each method, the distribution of the relative gaps at termination for
the n100 instances is given in Figure 8.18. The interquartile ranges of these
box plots significantly overlap, indicating that the majority of gaps are of
similar magnitude. Across all methods, the maximum gap is 72.8% and the
minimum gap is 7.9%, both for M14b.
Finally, Table 8.12 shows the relative difficulty of finding feasible solutions
for the n100 instances when split into two groups based on the value of γ
(30 instances in each γ group). Recall from §3.4.2.1 that γ controls the time
window widths; problem instances where γ = M have moderately variable
time window widths, with some time window widths being wide enough to
potentially allow an extra 10 jobs of average length to be performed. In
contrast, instances where γ = H have very variable time window widths,
with some time window widths being wide enough to potentially allow an
extra 20 jobs of average length to be performed. Table 3.5 showed that
Classes 16–19 had γ = M , while Classes 20–22 had γ = H.
Method M10 M11a M11b M12a M12b M14a M14b
γ = M 16.7 90.0 93.3 16.7 6.7 40.0 30.0
γ = H 0 46.7 46.7 6.7 0 10.0 0
Table 8.12: Percentage of n100 instances where a feasible solution was found
prior to termination, split into two groups based on γ.
As discussed in §6.4.4, holding all other instance attributes constant while
increasing the average length of time windows will increase the number of
feasible solutions that exist for that problem instance. If the total number
of feasible solutions was larger due to wider time windows, the construction
heuristic H0 had a better chance of constructing a feasible solution as, on
average, there were fewer time window violations.
In contrast, Table 8.12 shows that finding feasible solutions for instances
268 COMPUTATIONAL STUDY OF THE B&B SCHEME
where γ = M is easier than when γ = H for all B&B methods. This is be-
cause the increase in the feasible region for the γ = H instances significantly
increased the size of the B&B tree to be explored, and thus increased the
time required to find the first feasible solution. This suggests that a heuris-
tic that artificially reduces time windows at the root node may be helpful
in reducing the size of the B&B tree to be explored, and thus may allow
additional feasible solutions to be found sooner, but this suggestion is left
as an idea for future research.
8.4.4.1 n100 conclusions
By combining the n100 group results in Table 8.12 and Figures 8.16–8.18,
the B&B methods including the heuristics are a significant improvement
over Methods 1–8 which did not produce any feasible solutions for any n100
instance.
Methods 11a and 11b, which executed the construction heuristic at Cri-
terion 6, produced feasible solutions for 68.3–70% of the n100 instances;
Methods 10, 12a/b and M14a/b, which executed the catalyst H1 4 at the
root node and/or Criterion 6, produce feasible solutions for 3.3–25% of in-
stances. Methods 1, 2, 10 and 11b each produced the best lower bounds
at termination for 20–30% of instances. Overall, M11b produced the most
feasible solutions and is one of the best methods for terminating with the
best lower bound, so is the best method across the n100 data group.
8.4.5 Conclusions on the B&B methods with heuristics
Recall from Table 8.2 (page 233) that Method 5 is the baseline B&B method
that uses the LP relaxation of MIP1 with precedence set P at Criterion 4.
The BKA results presented in §8.4.1 show that Method 5 is the superior
scheduling-based B&B method for this data group, indicating that the small-
est and easiest SOP-TW problem instances are best solved via M5 without
any heuristics; computation time is best invested in solving a pure exact
algorithm to prove optimality sooner, not in executing heuristics. How-
ever, the results in §8.4.2 for the n25 data group show a clear transition;
as problem instances become larger and more complex, M5 begins to lose
8.4 Incorporating heuristics within the B&B tree 269
its competitiveness and methods that incorporate heuristics become increas-
ingly worthwhile.
Indeed, §8.4.3 for the n50 data group shows that while M5 was almost as
good as the best B&B methods with heuristics—M9a, M9b and M10—for
producing optimal solutions, all 13 B&B methods with heuristics (as per
Table 8.9) were more successful than M5 at consistently producing feasible
solutions for the n50 data group. This success continues for the most difficult
problem instances, the n100 data group.
None of Methods 1–8 produced feasible solutions for any n100 problem in-
stance. In contrast, §8.4.4 showed that all seven B&B methods with heuris-
tics (as per Table 8.11) produced feasible solutions for at least 3.3% of in-
stances, and up to 70% of instances. In particular, the best B&B method
incorporating a heuristic, M11b, produced feasible solutions for 70% of the
n100 instances prior to termination.
Based on the results throughout Section 8.4, it is clear that the inclusion of
heuristics within the best baseline scheduling-based B&B algorithm, M5, is
essential for producing feasible solutions prior to termination for increasingly
difficult problem instances. While the inclusion of the catalyst heuristic
H1 4 produced promising results for both the n50 and n100 data groups,
the superior effectiveness of the construction heuristic in M9a/b, M11a/b
and M13a/b/c/d makes it the heuristic of choice for both data groups.
A summary of the above conclusions is given in Table 8.13.
Data group Best for Best for Best for LB qualityoptimality feasibility at termination
BKA M5 NA NA
n25 M5, M10, M9 NA NA
n50 M9b/a, M10, M5 M9a/b, M11a/b, M9a/b, M10, M5
M13a/b/c/d
n100 – M11b/a M2, M1, M10, M11b
Table 8.13: Summary of the conclusions on the B&B methods with heuristics.
270 COMPUTATIONAL STUDY OF THE B&B SCHEME
8.5 Effectiveness of each criterion
In this section, the effectiveness of each criterion within the scheduling-
based B&B scheme is evaluated for the best variation of each method (that
is, the best of versions a/b/c/d where multiple variations were tested; see
Table 8.9 on page 250 for n50 variations, and Table 8.11 on page 263 for
n100 variations). For each data group, these are:
• BKA: M5, M9 and M10;
• n25: M5, M9 and M10;
• n50: M5, M9b, M10, M11b, M12a, M13d and M14a; and
• n100: M5, M10, M11b, M12a and M14a.
When considering the results discussed in this section, it is important to
recall that—due to the time limits given in Table 8.1—most of the n50
results and all of the n100 results are truncated. For example, 70% of n50
instances timed out for M5 and 96.7% of n50 instances timed out for M12a;
for all methods, all n100 instances timed out. In contrast, every BKA and
n25 instance was solved to optimality by each of the three methods within
the 1,800 second time limit.
8.5.1 General comments
This section contains general results and comments that give an overview
of the performances of the various B&B methods for each data group. In
particular, high-level information such as the mean number of B&B nodes
created, pruned and explored is presented, along with a breakdown of the
mean percentage of nodes pruned by each criterion. More specific comments
on the performance of each criterion are discussed in Section 8.5.2.
Table 8.14 contains B&B node information by data group for each method.
In general, the number of nodes pruned, created and explored increase as
n increases, though not linearly with the time limit. While the time limit
increases with n, on average, more time is required to explore each node as
n increases. From Table 4.2 (page 101) recall that, in general, the ratio of
the mean number of arcs created to the size of the complete arc set ( |A|m )
8.5 Effectiveness of each criterion 271
Data group BKA n25
Method M5 M9 M10 M5 M9 M10
Mean # of nodes not created
(pruned by criteria)21,927 27,266 24,421 79,969 82,827 80,066
Mean # of nodes created
(not pruned by criteria)10,663 5,312 8,277 12,169 9,317 12,073
Mean # of nodes explored to
optimality/termination3,005 2,994 3,014 5,625 5,626 5,625
Mean % of nodes explored
(compared with created)28.2% 56.4% 36.4% 46.2% 60.4% 46.6%
Mean ratio of nodes created
to pruned0.49 0.19 0.34 0.15 0.11 0.15
Data group n50
Method M5 M9b M10 M11b M12a M13d M14a
Mean # of nodes not created
(pruned by criteria)1,866,601 2,076,854 2,088,151 1,747,057 977,176 1,845,039 1,099,604
Mean # of nodes created
(not pruned by criteria)225,766 253,545 254,486 197,300 135,432 207,546 151,897
Mean # of nodes explored to
optimality/termination57,262 63,788 64,114 51,429 28,412 54,325 32,015
Mean % of nodes explored
(compared with created)25.4% 25.2% 25.2% 26.1% 21.0% 26.2% 21.1%
Mean ratio of nodes created
to pruned0.12 0.12 0.12 0.11 0.14 0.11 0.14
Data group n100
Method M5 M10 M11b M12a M14a
Mean # of nodes not created
(pruned by criteria)3,036,035 4,529,338 4,622,570 2,494,209 3,455,899
Mean # of nodes created
(not pruned by criteria)202,453 292,700 299,449 172,849 235,208
Mean # of nodes explored to
optimality/termination40,610 61,147 61,366 32,263 44,820
Mean % of nodes explored
(compared with created)20.1% 20.9% 20.5% 18.7% 19.1%
Mean ratio of nodes created
to pruned0.07 0.06 0.06 0.07 0.07
Table 8.14: B&B node information for key methods by data group.
272 COMPUTATIONAL STUDY OF THE B&B SCHEME
reduces as n increases. This implies that—on average—proportionally fewer
branches exist between each level as n increases, that is, these branches will
be pruned by Criterion 1; note that this drives the general trend that the
ratio of the mean number of nodes created to the mean number of nodes
pruned decreases as n increases. Despite this, the mean number of branches
out of each node does increase with n, thus the mean time required to explore
each node also increases with n.
Comparing M5, M9 and M10 for the BKA data sets, fewer nodes are created
and more nodes are pruned in M9 and M10 than M5; this is also true for the
n25 group. As shown in Table 8.15, a larger percentage of nodes are pruned
by Criterion 5—which checks dominance by the best upper bound—with
M9 and M10. This is due to the success of the heuristics at the root node,
especially for the BKA data sets; they are substantially easier to solve than
the other problem instances, which is demonstrated by both heuristics (H0
and H1 4) finding an optimal (or a near-optimal) solution for many BKA
instances (see Figures 6.4a and 6.8a). Consequently, the optimal value is
often the upper bound for Criterion 5, hence nodes that would be created
in M5 are now pruned in M9 and M10. Since approximately the same
number of nodes are investigated to prove optimality (2,994–3,014 nodes),
the percentage of created nodes investigated rises from 28.2% (M5) to 36.4%
(M10) and 56.4% (M9). Despite this, the solve time generally increases for
M9 and M10 (as shown in Figure 8.9) thus M5 remains the best method for
the BKA instances.
As will be noted in the comments for Criterion 5, for the BKA instances,
the percentage of nodes pruned by this criterion with M5 (6.4%) is much
higher with M9 (34.3%) and M10 (20.7%) due to the heuristics regularly
finding the optimal (or a near-optimal) solution. A side-effect of improved
performance by Criterion 5 for these instances is the consequent reduction
in the percentage of nodes pruned by Criterion 7 (from 14.5% for M5 to
2.0% for M9 and 7.9% for M10); Criterion 5 is now pruning more nodes via
upper bound dominance, thus reducing the opportunities for Criterion 7 to
prune nodes due to dominance between feasible nodes.
Comparing M9b with M11b and M13d, as well as comparing M10 with
M12a and M14a for the n50 group (and comparing M10 with M12a and
M14a for the n100 group) fewer nodes are created and fewer nodes are
8.5 Effectiveness of each criterion 273
Data group BKA n25
Method M5 M9 M10 M5 M9 M10
Criterion 1 8.2% 6.7% 7.4% 7.4% 7.1% 7.3%
Criterion 2 70.9% 57.0% 64.0% 50.1% 48.3% 50.0%
Criterion 3 0.001% 0.001% 0.001% 20.4% 19.7% 20.4%
Criterion 4 0.007% 0.006% 0.006% 0.000% 0.000% 0.000%
Criterion 5 6.4% 34.3% 20.7% 16.5% 20.4% 16.6%
Criterion 6 NA NA NA NA NA NA
Criterion 7 14.5% 2.0% 7.9% 5.7% 4.4% 5.6%
Total 100 100 100 100 100 100
Data group n50
Method M5 M9b M10 M11b M12a M13d M14a
Criterion 1 33.4% 32.8% 32.7% 33.1% 34.8% 32.8% 34.2%
Criterion 2 48.0% 48.3% 48.3% 47.5% 48.1% 47.6% 48.3%
Criterion 3 11.4% 11.6% 11.6% 11.0% 10.6% 11.1% 10.7%
Criterion 4 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0%
Criterion 5 1.4% 1.5% 1.5% 3.4% 1.2% 3.5% 1.3%
Criterion 6 NA NA NA NA 0.00001% NA 0.00002%
Criterion 7 5.8% 5.8% 5.8% 4.9% 5.4% 5.0% 5.4%
Total 100 100 100 100 100 100 100
Data group n100
Method M5 M10 M11b M12a M14a
Criterion 1 69.0% 68.3% 68.5% 69.6% 69.0%
Criterion 2 23.7% 24.0% 23.9% 23.5% 23.7%
Criterion 3 4.7% 5.0% 4.9% 4.6% 4.7%
Criterion 4 0.0% 0.0% 0.0% 0.0% 0.0%
Criterion 5 0.0000% 0.0009% 0.0015% 0.0003% 0.0005%
Criterion 6 NA NA NA 0.0000% 0.0000%
Criterion 7 2.5% 2.7% 2.7% 2.4% 2.5%
Total 100 100 100 100 100
Table 8.15: Mean percentage of B&B nodes pruned (i.e. not created) due to
each criterion, for key methods by data group.
274 COMPUTATIONAL STUDY OF THE B&B SCHEME
pruned and fewer nodes are explored to optimality/termination. This is
primarily due to the inclusion of a heuristic at Criterion 6 (as is the case for
M11b/M12a/M13d/M14a where a heuristic is executed for 1 or 5 seconds for
each node created at levels bn2 c and b3n4 c). As a result, a smaller proportion
of the time limit is available for exploring nodes, so overall, fewer nodes are
created or pruned.
The truncated mean percentage of B&B nodes explored (as a proportion
of the mean number of nodes created) is similar across methods for the
n50 and n100 data sets; 21.0–26.2% and 18.7–20.9%, respectively. When
compared with the percentages of 46.2–60.4% for the n25 group (which are
not truncated) it can be inferred that on average, a much longer time limit
will be required for the n50 and n100 problem instances to reach optimality.
Moreover, M12a and M14a, which include the catalyst heuristic H1 4 for 5
seconds at Criterion 6, produced the lowest percentages (21.0–21.1% for n50
and 18.7–19.1% for n100) as these methods consume the greatest proportion
of the time limit at Criterion 6. Consequently, M12a and M14a are likely to
take longer than M9, M10, M11 and M13 to reach optimality.
Data group BKA n25
Method M5 M9 M10 M5 M9 M10
% pruned by Criteria 1, 2 & 3 79.1 63.7 71.3 77.8 75.1 77.7
Data group n50
Method M5 M9b M10 M11b M12a M13d M14a
% pruned by Criteria 1, 2 & 3 92.8 92.7 92.6 91.6 93.5 91.5 93.2
Data group n100
Method M5 M10 M11b M12a M14a
% pruned by Criteria 1, 2 & 3 97.5 97.3 97.3 97.6 97.5
Table 8.16: Mean percentage of B&B nodes pruned by Criteria 1, 2 and 3
Table 8.16 shows that the majority of pruned nodes are pruned by Crite-
ria 1, 2 and 3, that is, quickly (via fast checks) and early (that is, before
spending time on slower checks). Consequently, computation time is not un-
necessarily wasted on nodes that will be pruned; these three criteria check
basic feasibility, thus if they were not evaluated first, some of the nodes
would be pruned by the LP at Criterion 4, or the MIP at Criterion 6 (if
8.5 Effectiveness of each criterion 275
using Methods 12 or 14), or eventually pruned at descendant nodes a few
levels deeper in the B&B tree.
8.5.2 Specific comments on each criterion
The following comments address each criterion individually, and apply to
all methods, unless stated otherwise. The majority of figures cited are from
Tables 8.14–8.16 (pages 271–274). It is important to note that the figures
reported in Table 8.15 (page 273) are percentages relating to nodes not
created, that is, temporary nodes that will not be created due to at least
one criterion. To derive the mean number of nodes not created by each
criterion, use the figures in Table 8.15 and the first rows of Table 8.14 as
follows:Mean # of nodes
not created by
Criterion X
with Method M
=
Mean # of nodes
not created by
Method M
(Table 8.14)
×
Mean % of nodes
pruned by Criterion X
with Method M
(Table 8.15)
.
8.5.2.1 Criterion 1: check if the arc exists
As n increases, the mean percentage of nodes pruned by Criterion 1 in-
creases. This is expected, as the ratio of the mean number of arcs created
to the complete arc set ( |A|m ) reduces as n increases, as shown in Table 4.2
(page 101). Consequently, on average, proportionally fewer branches will
exist between each level as n increases, thus proportionally more nodes are
pruned by this criterion. A consequence of this is that the “percentage
pruned” results must reduce for other criteria (for example, Criteria 2 and
3) to compensate.
8.5.2.2 Criterion 2: check job availability
As n increases, the mean percentage of nodes pruned by Criterion 2 de-
creases. We expect this for both Criteria 2 and 3 due to the increase recorded
by Criterion 1 (that is, proportionally, these must fall to compensate for the
increase in pruned nodes by Criterion 1). Despite this, Criterion 2 is the
276 COMPUTATIONAL STUDY OF THE B&B SCHEME
most successful criterion for pruning nodes for all data groups except n100.
This highlights the importance of having an effective preprocessing routine
that captures as many precedence relations as possible.
8.5.2.3 Criterion 3: check effect on unscheduled jobs
Very few nodes are pruned by this criterion for the BKA instances as their
time windows are too wide (that is, because of the large deadlines discussed
in §3.5). For the other instances, as n increases, the mean percentage of
nodes pruned by Criterion 3 decreases. We expect this as per Criterion 2
reasonings. Regardless, it is clear that this is a very effective criterion.
Recall from §7.5.1 that the final implementation of this criterion was the
alternate version. However, the very first version of Criterion 3 we imple-
mented only pruned a node if set L0v was not empty; recall from §7.4.3 that
L0v = {w ∈ (V \Sj) : max{Ew, Tv + pv + svw} > bw, |Πwj | = 0}.
Since this does not exploit the fact that all jobs that precede job w have
to be completed before w can start, we strengthened Criterion 3 to prune a
node if set Lj was not empty, where
Lj = L0v ∪ L1
v ∪ L2v ∪ L(≥3)
v .
The results of the strengthened Criterion 3—which we call the main version—
were not promising for the additional computation time: L1v, L
2v and L
(≥3)v
were empty for all instances in our data groups (n25, n50 and n100), thus
made no difference to the number of nodes pruned by Criterion 3. Addi-
tional nodes were pruned by Criterion 3 for four out of 35 BKA data sets,
however the best result showed an extra 8 nodes were pruned by the newly
strengthened Criterion 3 (from a total of 22,134 pruned nodes).
This is not surprising: |P | would need to be relatively high for a strengthened
version of Criterion 3 to find a significant number of violations. Since our
data sets do not exhibit this property (large |P | would make them much
easier to solve, which we did not want as discussed in §3.4.2), we do not
find any violations. Interestingly, the BKA data sets—which do have a
relatively larger proportion of precedence relations—only have a few extra
violations found by the main version. As a result, the final implementation of
8.5 Effectiveness of each criterion 277
Criterion 3—which we call the alternate version—evaluates Lj = L0v ∪ L
(>0)v
where
L(>0)v = {w ∈ (V \Sj) : LBwj > bw, |Πwj | > 0}
contains the lower bound LBwj ; this version was a good compromise, deliv-
ering a strengthened Criterion 3 that was fast to calculate.
Due to the disappointing results of the main version mentioned above, we
did not investigate further strengthenings of Criterion 3. While a stronger
version may find a few more violations (mainly for the BKA data sets), the
increase in computation time for the “best” strengthening would be highly
unlikely to pay off. However, we note this as an area for further work in
Section 8.6.
8.5.2.4 Criterion 4: check LP feasibility
Unsurprisingly, almost no nodes were pruned by this criterion. However,
the main purpose for including this criterion is to obtain a fast lower bound
from the LP relaxation of MIP1 ; this LB is used to determine where in the
heap the node is placed if it passes all seven criteria. Moreover, if an LP
solution is integer, this provides a valuable upper bound. Table 8.17 shows
the percentage of data sets where at least one LP solution was integer.
Data group BKA n25
Method M5 M9 M10 M5 M9 M10
% instances where ≥ 1 LP integer 100 80.0 88.6 100 100 100
Data group n50
Method M5 M9b M10 M11b M12a M13d M14a
% instances where ≥ 1 LP integer 38.3 38.3 40.0 21.7 11.7 21.7 11.7
Data group n100
Method M5 M10 M11b M12a M14a
% instances where ≥ 1 LP integer 0 0 0 0 0
Table 8.17: Mean percentage of problem instances where at least one LP
solution was integer.
278 COMPUTATIONAL STUDY OF THE B&B SCHEME
All n25 instances for all methods had at least one integral LP solution prior
to termination. For the BKA instances, this decreased from 100% for M5
down to to 88.6% for M10 and 80% for M9. This is due to the upper bound
generated at the root node by the heuristics; nodes whose descendants would
eventually provide an integer LP solution are pruned earlier in the tree by the
upper bound at Criterion 5. The drop for the n50 instances from 38.3–40%
(for M5/M9/M10) to 11.7–21.7% (for M11/M12/M13/M14) is partly due to
this, but also due to the reduction in the total number of nodes created and
explored prior to termination (as per Table 8.14) due to computation time
spent executing Criterion 6 in M11, M12, M13 and M14. As the n100 data
sets are significantly harder, no LP solutions were integer for any method.
8.5.2.5 Criterion 5: check dominance by bound
As noted earlier in §8.5.1, for the BKA data sets, a larger percentage of
nodes are pruned by Criterion 5 in Methods 9 and 10 (34.3% for M9 and
20.7% for M10, compared with 6.4% for M5). This is due to the success
of both heuristics at the root node on the BKA data sets; these instances
are substantially easier to solve than the other problem instances, which is
demonstrated by both heuristics regularly finding the optimal solution for
the BKA instances. Consequently, at some point the optimal value be-
comes the upper bound for Criterion 5, hence nodes that would be created
in Method 5 are now pruned in Methods 9 and 10. This also affects the per-
centage of nodes pruned by Criterion 7; many nodes (or their descendants)
that would be pruned by Criterion 7 are now pruned earlier by Criterion 5.
With the exception of the BKA instances, as n increases, the mean per-
centage of nodes pruned by Criterion 5 decreases; from 16.5–20.4% for n25,
to 1.2–3.5% for n50, to 0–0.0015% for n100. This is expected; as the data
sets get bigger they get more complex, thus the ability to find an upper
bound (let alone a good upper bound) decreases, thus the effectiveness of
this criterion must also decrease. Indeed, no upper bound is found for any
n100 instance with M5, thus no nodes were pruned by this criterion for this
method.
8.5 Effectiveness of each criterion 279
8.5.2.6 Criterion 6: execute heuristics (Methods 11–14 only)
This criterion only applies to Methods 11, 12, 13 and 14, and thus data
groups n50 and n100. Moreover, recall that when the construction heuristic
H0 is executed at Criterion 6 in M11 and M13, the node cannot be pruned
regardless of whether a feasible solution was constructed. If a feasible solu-
tion is not constructed, this does not mean one does not exist; if a feasible
solution is constructed, it is not guaranteed to be optimal but may be an
improved upper bound. In contrast, one possible outcome of executing the
catalyst heuristic H1 4 at Criterion 6 in M12 and M14 is that the surrogate
MIP is found to be infeasible; if so, the node can be pruned as the surrogate
MIP has the same feasible region as the true MIP at that node.
Unsurprisingly, very few nodes were pruned by this criterion. Firstly, this
criterion is only checked at nodes on levels bn2 c and b3n4 c of the B&B tree.
Secondly, the main purpose for including this criterion is to try to quickly
obtain a feasible solution at select nodes, and thus an upper bound for
Criterion 5. As shown in Figure 8.11, this was achieved for the n50 data
group with feasible solutions found for all instances by M11a and all four
M13 variations. Similarly, Figure 8.16 shows promising results for n100,
with 3.3–70% of instances terminating with at least one feasible solution for
M11–M14.
While pruning a node based on this criterion rarely occurs (0.00001–0.00002%
for n50 and never for the n100 instances), it is worth noting that every infea-
sible surrogate MIP is unlikely to be recognised within the Criterion 6 time
limit of 1 or 5 seconds. Increasing this time limit may result in additional
pruned nodes, but it will also reduce the total number of nodes that can be
explored within the total time limit. However, such a trade-off is worthy of
further investigation, as noted in Section 8.6.
8.5.2.7 Criterion 7: check dominance between nodes
The last row of Table 8.15 shows the mean percentage of temporary nodes
(that is, potential child nodes), that were pruned due to domination by
an existing node, as part of Criterion 7. The corresponding mean number
of pruned temporary nodes is given in the first row of Table 8.18. These
280 COMPUTATIONAL STUDY OF THE B&B SCHEME
numbers indicate the number of nodes that would have been created—thus
added to the heap—if not for Criterion 7.
In addition to pruning nodes before they are created (that is, temporary
nodes), Criterion 7 also checks to see if the current temporary node domi-
nates nodes that have already been created (that is, existing nodes). The
mean number of pruned existing nodes indicates the number of nodes that
have been created but were found to be dominated by a temporary node.
These nodes may or may not have been explored. Of those that have been
explored, their descendants (if any exist) are also pruned (which may or may
not have been explored).
Rather than remove a dominated existing node from the heap, we mark
it as pruned by Criterion 7; if it becomes the head of the heap—the next
node to be explored—we discard it and move to the next node at the head
of the heap. The mean number of pruned existing nodes that become head
nodes (called pruned head nodes) is a subset of the number of existing nodes
pruned, and gives an indication of how many existing nodes would definitely
have been explored if not for Criterion 7. Table 8.18 reports the number of
nodes pruned by Criterion 7 which fall into each of these categories, as well
as corresponding percentages.
As n increases, the mean percentage of pruned head nodes decreases when
calculated as either a percentage of existing nodes pruned (from 39.9–79.6%
for BKA to 9.5–11.8% for n100) or as a percentage of nodes created (from
21.9–43.3% for BKA to 1.1–1.5% for n100). This makes sense: as n in-
creases, the average heap size also grows, thus (on average) these pruned
head nodes are spaced further apart. Additionally, as proportionately fewer
nodes are explored as n increases (as shown in Table 8.14, 28,412–64,114
nodes explored for n50 instances in 4,375 seconds, compared with 32,263–
61,366 nodes in 10,300 seconds for the n100 instances) this demonstrates
that the time to explore each node also increases with n.
It is exceptionally important to note the large contribution Criterion 7 makes
to the overall size of the B&B tree, even though the percentages of the
nodes pruned by this criterion are relatively small. The mean percentage of
pruned head nodes when calculated as a percentage of nodes explored (the
bottom row of Table 8.18) gives a lower bound on “direct effort saved” due
8.5 Effectiveness of each criterion 281
Data group BKA n25
Method M5 M9 M10 M5 M9 M10
Mean # of temporary nodes pruned by C7 3,171 551 1,935 4,519 3,653 4,502
- as a % of all temporary nodes pruned 14.5% 2.0% 7.9% 5.7% 4.4% 5.6%
Mean # of existing nodes pruned by C7 5,852 2,885 4,647 1,722 1,143 1,708
Mean # of pruned existing nodes that
become head nodes2,338 2,298 2,353 520 521 520
- as a % of existing nodes pruned 39.9% 79.6% 50.6% 30.2% 45.5% 30.4%
- as a % of nodes created 21.9% 43.3% 28.4% 4.3% 5.6% 4.3%
- as a % of nodes explored 77.8% 76.7% 78.1% 9.2% 9.3% 9.2%
Data group n50
Method M5 M9b M10 M11b M12a M13d M14a
Mean # of temporary nodes pruned by C7 107,659 121,393 121,902 86,239 52,443 91,993 59,823
- as a % of all temporary nodes pruned 5.8% 5.8% 5.8% 4.9% 5.4% 5.0% 5.4%
Mean # of existing nodes pruned by C7 35,913 40,594 40,804 30,490 19,511 32,490 22,223
Mean # of pruned existing nodes that
become head nodes6,017 6,710 6,725 4,927 2,369 5,229 2,703
- as a % of existing nodes pruned 16.8% 16.5% 16.5% 16.2% 12.1% 16.1% 12.2%
- as a % of nodes created 2.7% 2.6% 2.6% 2.5% 1.7% 2.5% 1.8%
- as a % of nodes explored 10.5% 10.5% 10.5% 9.6% 8.3% 9.6% 8.4%
Data group n100
Method M5 M10 M11b M12a M14a
Mean # of temporary nodes pruned by C7 77,211 122,945 123,911 59,906 87,556
- as a % of all temporary nodes pruned 2.5% 2.7% 2.7% 2.4% 2.5%
Mean # of existing nodes pruned by C7 24,498 37,973 38,530 19,729 28,330
Mean # of pruned existing nodes that
become head nodes2,648 4,468 4,388 1,873 2,829
- as a % of existing nodes pruned 10.8% 11.8% 11.4% 9.5% 10.0%
- as a % of nodes created 1.3% 1.5% 1.5% 1.1% 1.2%
- as a % of nodes explored 6.5% 7.3% 7.2% 5.8% 6.3%
Table 8.18: Criterion 7 (C7) pruning results.
282 COMPUTATIONAL STUDY OF THE B&B SCHEME
to Criterion 7. However, additional “non-direct effort saved” is embedded
in the descendants of nodes that would have been created were it not for
Criterion 7.
The mean percentage of pruned head nodes when calculated as a percentage
of nodes created, gives an indication of how much “domination” is present.
Given these numbers are quite low for our data sets (4.3–5.6% for n25,
1.7–2.7% for n50 and 1.1–1.5% for n100) this is another indication that our
data sets are quite hard. In contrast, these percentages are 21.9–43.3% for
the BKA instances, with many nodes (both temporary and existing) pruned
by domination found by Criterion 7; this indicates that the BKA instances
contain significant symmetries and are generally less hard, regardless of the
smaller number of jobs (only 17 jobs compared with 25–100 jobs for our
instances).
As noted in the comments on Criterion 5 in §8.5.2.5, for the BKA data sets,
a larger percentage of nodes are pruned by Criterion 5 in M9 and M10 than
M5 due to the inclusion of the heuristics at the root node. Hence nodes that
would be created in M5 are now pruned in M9 and M10. This ultimately
affects the percentage of temporary and existing nodes pruned by Criterion
7; many nodes (or their descendants) that would be pruned by Criterion 7 in
M5 are now pruned earlier by Criterion 5 in M9 and M10. However, inter-
estingly, the mean number of pruned head nodes is approximately the same
across the three methods (2,298–2,353 nodes) indicating that the “front” of
the heap does not change much between M5, M9 and M10 for the BKA
instances.
8.5.3 Conclusions on the effectiveness of each criterion
While the effectiveness of each criterion varies for each method and each
data group, general conclusions can be drawn.
As shown in Table 8.16, the vast majority of temporary nodes—the nodes
that are tested and not created as they failed at least one criterion—are
pruned by Criteria 1, 2 or 3 which assessed basic feasibility tests. How-
ever, each of the subsequent criteria are also crucial to the success of the
scheduling-based B&B methods evaluated in this chapter.
8.6 Further work 283
While Criterion 4 pruned almost no nodes, the LP solved at this criterion
provides a very fast lower bound on the value of that node; if the node passes
Criteria 5, 6 and 7, this lower bound determines where in the heap the node
will be placed, and thus affects when the node is likely to be explored.
Unsurprisingly, the proportion of nodes pruned by Criterion 5 decreases as
the number of jobs in a problem instance increases; as n increases, it is
generally significantly harder to find a feasible solution, and fewer nodes
can be pruned by Criterion 5 without a good upper bound given by a good
feasible solution. However, if progress is made in finding more good feasible
solutions, proportionally more nodes are likely to be pruned by Criterion 5.
The inclusion of Criterion 6 for the challenging n50 and n100 problem in-
stances showed that incorporating heuristics at select levels of the B&B tree
was a valuable use of computation time; Criterion 6 ensured 100% of n50
instances and 70% of n100 instances terminated with at least one feasible
solution for the best B&B methods (compared with 23.3% and 0%, respec-
tively, for the best MIP methods). While very few nodes are pruned by this
criterion, clearly that was not its primary purpose.
Like Criteria 1–6, Criterion 7 may prune a temporary node. Unlike the
other criteria, Criterion 7 may also prune existing nodes—nodes that have
previously passed Criteria 1–7 (see §7.4.7, page 215). Indeed, Criterion
7 prunes both temporary and existing nodes that may lead to a feasible
solution but can not be superior (in terms of total setup cost or completion
time) to one generated elsewhere in the B&B tree. Combined, the total
number of temporary and existing nodes pruned by Criterion 7 are very
significant, and thus crucial to the overall success of the scheme.
8.6 Further work
There are many opportunities to extend or strengthen the B&B framework
presented in Chapters 7 and 8. In particular, the following list highlights
items worthy of investigation:
• a trial of other MIPs for the LP relaxation at Criterion 4 (mindful that
they need to be fast to compute to be useful);
284 COMPUTATIONAL STUDY OF THE B&B SCHEME
• a trial of strengthenings of the LP bound at Criterion 4 (again, mindful
that they would need to be fast to compute);
• a trial of other strengthenings to Criterion 3 (again, mindful that they
would need to be fast to compute);
• an exploration of other node selection strategies;
• the identification and trial of additional dominance criteria;
• the identification and trial of additional heuristics for use at the root
node and/or Criterion 6; and
• additional experiments to better tune the parameter settings for in-
corporating heuristics, questioning:
– when should they be executed (that is, at what levels in the B&B
tree?), and should this be dependent on the number of jobs or
other problem instance characteristics;
– for how long should they be executed, and should this time vary
(perhaps dependent on current progress such as the number of
feasible solutions found so far, the location of the current node
in the B&B tree, and the proportion of the time limit that has
already elapsed);
– the trade-off between increasing time spent executing a heuristic
at particular nodes (which may result in additional pruned nodes)
which reduces the total number of nodes that can be explored
within the total time limit; and
– for the catalyst, additional values of the weight (which possibly
depends on current progress).
Better results for the n100 group may be obtained just by experi-
menting with these settings for M11a and M11b, perhaps by running
the construction heuristic for much longer when deeper in the tree;
this may increase the likelihood that a feasible solution is obtained
prior to termination for the remaining 30% of instances that currently
terminate without a feasible solution.
8.7 Chapter summary 285
Additionally, it would be very interesting to develop a method that could
a priori identify “easy” problems (such as the BKA group and some of the
n25 instances), “intermediate” problems (such as some of the n25 and n50
instances), and “challenging” problems (such as most of the n50 and n100
instances). This would help to determine the best solution method to use a
priori; for example, it is better to use M5 for easy problems only. In con-
trast, methods that incorporate a heuristic (M9–M14) are required for the
intermediate and challenging problem instances. However, the best method
to use will vary depending on problem characteristics and the parameter
settings.
8.7 Chapter summary
In Chapter 7, a scheduling-based B&B scheme for solving the SOP-TW
exactly (as opposed to heuristically like in Chapters 5 and 6) was proposed.
In this chapter, a comprehensive computational study of many variations of
that B&B scheme was performed.
In Section 8.3, four baseline methods—M5, M6, M7 and M8—were tested to
determine the best version that would form the underlying method for future
variations. The result of that investigation showed that M5 was the best
baseline method, that is, Criterion 4 should solve the LP relaxation of MIP1
with precedence set P . Moreover, M5 was shown to clearly outperform MIP
methods M1–M4 (tested in Chapter 4) for data groups BKA, n25 and n50,
and equal to M1 and M2 for the n100 data group.
In Section 8.4, heuristics were incorporated into M5 at the root node and/or
Criterion 6. Since the two best heuristics from Chapters 5–6 were the con-
struction heuristic H0 and the catalyst heuristic H1 4, variations for both of
these were evaluated as appropriate, resulting in six additional methods—
M9, M10, M11, M12, M13 and M14—with up to four different parameter
settings (for example, four versions of M13 were tested for the n50 group).
Extensive testing showed that including the heuristics was unnecessary for
the easiest problem instances—the BKA data group—but was almost com-
petitive with M5 for the n25 data group. However, incorporating heuristics
was crucial for the challenging n50 and n100 instances; they ensured 100%
286 COMPUTATIONAL STUDY OF THE B&B SCHEME
of n50 instances and 70% of n100 instances terminated with at least one
feasible solution for the best B&B methods (compared with 23.3% and 0%,
respectively, for the best MIP methods).
In Section 8.5 the effectiveness of each criterion was evaluated. Clearly,
each criterion played an important role in the overall success of the scheme:
pruning nodes using basic feasibility tests (Criteria 1–3); determining a lower
bound quickly for positioning the node in the heap (Criterion 4); checking
if that lower bound was sufficiently poor (Criterion 5); attempting to find a
feasible solution quickly (Criterion 6); and checking if nodes are dominated
by other nodes (Criterion 7).
While the schemes tested in this chapter made excellent progress in solving
the challenging n50 and n100 instances exactly, Section 8.6 outlined further
work for strengthening and extending a scheduling-based B&B approach for
the SOP-TW. Additional ideas for solving the SOP-TW are outlined in the
thesis conclusion in the next chapter.
Chapter 9
CONCLUSION
The motivation for this thesis resulted from a study of semi-automated rail
mounted gantry cranes (RMGs) at an Australian seaport container terminal.
The Sequential Ordering Problem with Time Windows (SOP-TW) can arise
as a subproblem of these crane operations. The SOP-TW became the focus
of this thesis as it describes a low-level crane scheduling problem that—when
coupled with the techniques to solve the related high-level crane scheduling
problem—minimises the time each crane must travel while empty.
The SOP-TW also arises as a subproblem of several other scheduling and
routing applications. As a result, most of this thesis discusses the SOP-TW
in terms of a generic machine scheduling problem, rather than concentrating
on the specific crane application that provided the initial motivation. The
key exception is a comprehensive port-specific data generator for construct-
ing feasible SOP-TW problem instances. However, even this generator can
be modified to model more general settings and to construct instances for
closely related problems.
This thesis makes several contributions to the body of SOP-TW research.
A detailed critique of existing SOP-TW data generators (and their result-
ing data sets) reveals a lack of available, feasible, difficult SOP-TW problem
instances for testing methods for solving the SOP-TW. Therefore, a compre-
hensive port-specific data generator for creating feasible SOP-TW problem
instances is developed, and a variety of interesting SOP-TW instances are
constructed. Important design features of the data generator include:
287
288 CONCLUSION
• All data sets produced are feasible. This guarantees no computational
effort (generating or solving) is expended on infeasible problems.
• The data generator is capable of producing a wide variety of problem
instances that have characteristics relevant to the original port setting.
• A wide variety of hard data sets are easy to generate by changing a
range of application-specific parameters.
• The underlying methodology of the new generator is sufficiently gen-
eral to allow easy adaptation for non-port settings.
• Data sets for related problems can be constructed after only minor
modifications to the current generator.
Additional contributions of this thesis are the techniques that are developed
to solve the SOP-TW, along with the extensive computational studies of
those techniques.
First, three existing formulations for the Asymmetric Travelling Salesman
Problem with Time Windows (ATSP-TW) presented by Ascheuer et al. [8]
are extended to model the SOP-TW. Since the ATSP-TW is a special case
of the SOP-TW (where there are no explicit precedences) the preprocessing
techniques described by Ascheuer et al. [8] can be directly applied to the
SOP-TW. However, additional preprocessing based on precedences is pos-
sible. Consequently, an efficient preprocessing routine that simultaneously
addresses both time windows and precedence relations is given that ulti-
mately reduces the size of the MIP models implemented. A comprehensive
computational study of two of these MIPs provide the benchmark by which
the other solution techniques in this thesis are compared.
Three additional techniques for solving the SOP-TW are identified and in-
vestigated:
• a construction heuristic for generating feasible solutions;
• an IP-based heuristic for generating feasible solutions; and
• a scheduling approach embedded within a branch-and-bound frame-
work.
A comprehensive series of computational studies is performed to investi-
289
gate the effectiveness of these techniques against the benchmark MIPs. A
summary of the key findings follows.
The construction heuristic attempts to build a feasible solution by inserting
new jobs into a partial schedule, and is adapted from a heuristic for the
ATSP-TW by Nikolakopoulos and Sarimveis [9]. Importantly, our version
of the heuristic explicitly allows for precedence relations and the associated
precedence delays that arise in the SOP-TW. The study of the construction
heuristic shows that the heuristic is successful at constructing feasible solu-
tions for small and medium problem instances (those with 17–50 jobs) but,
unsurprisingly, falters for larger problem instances with 100 jobs.
The IP-based heuristic attempts to differentiate solutions by reducing the
symmetry of the solution space. This is done by introducing a new penalty
term in the objective function. This penalty acts like a tie-breaker: solutions
that are essentially equivalent in terms of the original objective function may
now appear significantly different, thus reducing the symmetry of those so-
lutions. Testing a variety of IP-based heuristics shows that a well-chosen
penalty in the objective function of a MIP can act as a catalyst for finding
feasible solutions faster than solving the original MIP by reducing the per-
ceived symmetry of the solution space. Indeed, at least one of these IP-based
heuristics outperforms (in terms of the speed to find the first feasible solu-
tion) the pure MIPs at all key time points for all data groups tested. This
provides supporting evidence for the hypothesis that the IP-based catalyst
with an appropriate penalty can find feasible solutions faster than solving
the pure MIPs directly for the SOP-TW. This is particularly important since
finding feasible solutions is hard for large problem instances.
Comparing the results of both types of heuristics shows that the construction
heuristic clearly dominates the IP-based catalyst heuristics for all small to
medium problem instances tested (17–50 jobs), both in terms of producing
feasible solutions quickly, and the number of feasible solutions produced.
In contrast, the best IP-based heuristics are slightly better than the con-
struction heuristic for the 100-job problem instances. However, neither the
construction heuristic or the catalyst methods (for any penalty) are satisfac-
tory at reliably producing feasible solutions for all problem instances with
100 jobs, let alone quickly. This is unsurprising given the complexity results
for the SOP-TW.
290 CONCLUSION
The branch-and-bound (B&B) scheme is an exact solution method that
takes a scheduling approach: each node in the B&B tree represents a dif-
ferent partial schedule. To test if a new node should be created, a set of
problem-specific criteria have been developed, which the algorithm sequen-
tially evaluates. This scheduling-based B&B scheme with this set of seven
criteria is a novel solution approach for the SOP-TW. However, three crite-
ria (Criteria 2, 3 and 7) closely resemble tests used in dynamic programming
(DP) solution approaches for related problems (e.g. see [7], [11] and [12]) that
reduce the size of a DP state space graph by detecting and eliminating states
that cannot lead to an optimal solution or are clearly infeasible. Nonethe-
less, our implementations of these tests are modified for the SOP-TW and
to work within this scheduling-based B&B scheme, thus are fundamentally
different. In another novel criterion (Criterion 6), either the construction
heuristic or the IP-based heuristic are executed; this criterion is optional in
that it is only called at select nodes in the B&B tree. Ten variations of this
scheduling-based B&B scheme are evaluated to explore a variety of config-
urations and parameter settings, including the use of heuristics. Notably,
the inclusion of a heuristic in the B&B scheme is found to be particularly
important when solving relatively difficult problem instances.
Overall, this scheduling approach embedded within a B&B framework out-
performs solving the pure MIPs directly with state-of-the-art optimisation
software. The extra precedence information derived by the preprocessing
routine is utilised in several criteria, thus is vital to the success of the algo-
rithm.
Importantly, the scheduling-based B&B framework is extensible: new com-
ponents for the SOP-TW can be easily incorporated and existing compo-
nents can be modified to solve other TSP variants and scheduling problems.
While ideas for further work on each of these techniques is provided and dis-
cussed in the relevant chapters, additional high-level suggestions for future
research directions are given here.
I A computational study to investigate what makes a SOP-TW
instance difficult to solve.
As noted in Section 3.4.2, little is known about the effect of the struc-
291
ture of the time windows on problem difficulty. However, we hypothesised
(in Section 2.5.2.8) that: (1) a relatively small number of precedence rela-
tionships makes an instance harder to solve, and (2) relatively tight time
windows makes an instance easier to solve (noted in Section 3.4.2). Indeed,
these points are interrelated: as average time window widths reduce, the
average number of precedences induced by time windows will increase (see
Section 4.5.4 for more on this). Maffioli and Sciomachen’s results—noted in
Section 2.5.2.8—support these hypotheses, but more work needs to be done
to understand this phenomena.
The data generator described in Chapter 3 enables a full computational
study to better understand the underlying structures of the problem in-
stances—and thus the real-world port interface—to be performed, and would
be a very interesting area of further research. Some of the problem instance
characteristics worth investigating include:
• the number of active time windows and the overall structure of those
active time windows, such as how they overlap and whether “critical”
time periods can be identified;
• the number of precedence relations and the structure of the precedence
graph;
• the values of precedence delay αij , looking at aspects such as magni-
tude, symmetry, uniqueness, and the range of values across the prece-
dence set; and
• the values of setup times sij , looking at aspects such as magnitude,
symmetry, uniqueness, and the range of values.
I Further study of the penalty scheme for the IP-based heuristic.
While several parameter settings for the penalties used in the IP-based cat-
alyst heuristic were investigated, more research is required to determine the
optimal settings.
It is quite possible that penalties that somehow depend on jobs (for MIP1 )
or job-pairs (for MIP2 ) could produce even better results. This is because
some jobs and/or job-pairs have greater freedom (in terms of when they
need to be scheduled) and thus introduce greater symmetry. Consequently,
292 CONCLUSION
focusing on where is best to reduce symmetry via better penalties could
lead to finding feasible solutions sooner, and reduce the gap between the
surrogate cost function and the true cost function.
A computational study analysing optimal solutions of each problem instance
may also reveal the types of penalties that would close the gap between the
values of the surrogate cost function and true cost function. Indeed, it would
be very interesting to see if general conclusions could be drawn.
Finally, an investigation of other surrogate cost functions (not just changing
the existing penalty scheme) is another area worth exploring.
I An extension of preprocessing to nodes within the B&B tree.
Some preprocessing is already done within Criterion 3 to update time win-
dows, but additional local preprocessing could be implemented as another
criterion within the scheduling B&B tree. For example, new local prece-
dences derived from the current partial schedule could be extracted and
used to fix extra variables. However, the additional computational effort of
executing this criterion may outweigh the benefit gained by pruning any ad-
ditional nodes, whose descendant nodes would probably be pruned shortly
thereafter anyhow; without implementing and testing these ideas, the ben-
efit of extra local preprocessing is unknown.
IUsing the construction heuristic to create a tabu list of infeasible
partial schedules.
Results show that the construction heuristic is very successful on small to
medium problems, but falters as the number of jobs increases; the heuristic
fails to find any feasible solutions for most 100-job problem instances. While
this is not surprising given the complexity results, the effort is not completely
wasted. This heuristic can be used as a method to generate a tabu list of
infeasible partial schedules. This list could be used in a number of ways,
including as a method of directing the search of the scheduling-based B&B
tree. By analysing the infeasible partial schedules in the tabu list, some
areas of the B&B tree could be regarded as a low priority for exploration.
293
I A priority branch scheme for the B&B algorithm.
Recall that just one node heap is maintained in the B&B algorithm, where
the order of the nodes within the heap determine the order in which the
nodes will be explored. An alternative idea is to maintain two or more
heaps. For example, one heap for high priority nodes, and one heap for low
priority nodes; nodes in the low priority heap are only explored when the
high priority heap is empty. The aim of changing the search strategy is to
find feasible solutions sooner and/or complete the entire search sooner.
An example of how nodes could be assigned to the two heaps follows. If a
feasible solution is generated at any node (possibly via one of the heuristics
at Criterion 6) we may view that node as sufficiently well investigated for
now, and thus place all child nodes into a low priority heap. Conversely,
since successfully finding a feasible solution tells us that at least one feasible
solution lies deeper below this node, we may want to investigate child nodes
of the current node sooner to get the best solution that lies below the current
node. As a result, these child nodes would go into a high priority heap.
I A backwards B&B tree.
The algorithm for the scheduling-based B&B tree is based on progressively
adding jobs to a forward partial schedule, resulting in a forward B&B tree.
However, this idea could be reversed; in a backwards B&B tree, each job
that is added to a partial schedule is placed before the previous job, resulting
in a backwards partial schedule.
If a forward B&B tree and a backward B&B tree are generated simultaneously
(that is, generated in parallel), information on feasible and infeasible partial
schedules in each tree could be used to prune additional nodes in the alter-
nate tree. This could be easily incorporated into the current B&B framework
by adding extra dominance/feasibility criteria relating to the alternate tree.
This idea could be further extended by including the use of heuristics. For
example, in an attempt to obtain feasible solutions for a 100-job problem
instance, the forward B&B tree could be solved to level 25 and the backward
B&B tree could be solved to level 25. To connect compatible 25-job partial
schedules in each tree, a modified construction heuristic could be executed
to schedule the remaining 50 jobs.
294 CONCLUSION
Bibliography
[1] G. Froyland, T. Koch, N. Megow, E. Duane, and H. Wren. Optimizing
the landside operation of a container terminal. OR Spectrum, 30:53–
75, 2008.
[2] V.H. Mak. On the Asymmetric Travelling Salesman Problem with
Replenishment Arcs. PhD thesis, The University of Melbourne, 2001.
[3] L.F. Escudero. A production planning problem in FMS. Annals of
Operations Research, 17:69–104, 1989.
[4] L. Escudero and A. Sciomachen. The job sequencing ordering problem
on a card assembly line. In T.A. Ciriani and R.C. Leachman, editors,
Optimization in Industry, chapter 16, pages 251–262. John Wiley &
Sons, 1993.
[5] J. Hurink and S. Knust. A tabu search algorithm for scheduling a
single robot in a job-shop environment. Discrete Applied Mathematics,
119:181–203, 2002.
[6] P. Brucker and S. Knust. Lower bounds for scheduling a single robot in
a job-shop environment. Annals of Operations Research, 115:147–172,
2002.
[7] K. Fagerholt and M. Christiansen. A travelling salesman problem with
allocation, time window and precedence constraints - an application to
ship scheduling. International Transactions in Operations Research,
7:231–244, 2000.
[8] N. Ascheuer, M. Fischetti, and M. Grotschel. Solving the asymmetric
travelling salesman problem with time windows by branch-and-cut.
Mathematical Programming, Series A, 90:475–506, 2001.
295
296 BIBLIOGRAPHY
[9] A. Nikolakopoulos and H. Sarimveis. A threshold accepting heuristic
with intense local search for the solution of special instance of the trav-
eling salesman problem. European Journal of Operational Research,
177:1911–1929, 2007.
[10] F. Margot. Symmetry in integer linear programming. In M. Junger,
editor, 50 Years of Integer Programming 1958-2008, pages 647–686.
Springer-Verlag Berlin Heidelberg, 2010.
[11] Y. Dumas, J. Desrosiers, E. Gelinas, and M.M. Solomon. An opti-
mal algorithm for the traveling salesman problem with time windows.
Operations Research, 43:367–371, 1995.
[12] A. Mingozzi, L. Bianco, and S. Ricciardelli. Dynamic programming
strategies for the travelling salesman problem with time window and
precedence constraints. Operations Research, 45(3):365–377, 1997.
[13] R.L. Graham, E.L. Lawler, J.K. Lenstra, and A.H.G. Rinnooy Kan.
Optimization and approximation in deterministic sequencing and
scheduling: A survey. Annals of Discrete Mathematics, 5:287–326,
1979.
[14] E.L. Lawler, J.K. Lenstra, A.H.G. Rinnooy Kan, and D.B. Shmoys. Se-
quencing and scheduling: algorithms and complexity. In S.C. Graves,
A.H.G. Rinnooy Kan, and P.H. Zipkin, editors, Logistics of produc-
tion and inventory, volume 4 of Handbooks in Operations Research
and Management Science, chapter 9, pages 445–522. Elsevier Science
Publishers, 1993.
[15] M.L. Pinedo. Scheduling: Theory, Algorithms, and Systems. Springer,
New York, third edition, 2008.
[16] N. Ascheuer, M. Fischetti, and M. Grotschel. A polyhedral study
of the asymmetric travelling salesman problem with time windows.
Networks, 36(2):69–79, 2000.
[17] G. Dantzig, R. Fulkerson, and S. Johnson. Solution of a large-scale
traveling-salesman problem. Operations Research, 2:393–410, 1954.
BIBLIOGRAPHY 297
[18] M.R. Garey and D.S. Johnson. Computers and Intractability: A guide
to the theory of NP-Completeness. WH Freeman and Company, San
Francisco, 1979.
[19] M.W.P. Savelsbergh. Local search in routing problems with time win-
dows. Annals of Operations Research, 4:285–305, 1985.
[20] I.F.A. Vis and R. de Koster. Transshipment of containers at a con-
tainer terminal: an overview. European Journal of Operational Re-
search, 147:1–16, 2003.
[21] D. Steenken, S. Voß, and R. Stahlbock. Container terminal operation
and operations research - a classification and literature review. OR
Spectrum, 26:171–192, 2004.
[22] R. Stahlbock and S. Voß. Operations research at container terminals:
a literature update. OR Spectrum, 30:1–52, 2008.
[23] P. Brucker. Scheduling algorithms. Springer-Verlag, Berlin, 4th edi-
tion, 2004.
[24] E.L. Lawler, J.K. Lenstra, A.H.G. Rinnooy Kan, and D.B. Shmoys,
editors. The traveling salesman problem: a guided tour of combinato-
rial optimization. John Wiley & Sons, Chichester, 1985.
[25] G. Reinelt. The traveling salesman: computational solutions for
TSP applications, volume 840 of Lecture Notes in Computer Science.
Springer-Verlag, Berlin, 1994.
[26] G. Gutin and A.P. Punnen, editors. The traveling salesman problem
and its variations. Kluwer Academic Publishers, Dordrecht, 2002.
[27] D.L. Applegate, R.E. Bixby, V. Chvatal, and W.J. Cook. The traveling
salesman problem: a computational study, volume 840 of Princeton
Series in Applied Mathematics. Princeton University Press, Princeton,
2006.
[28] L.F. Escudero. An inexact algorithm for the sequential ordering prob-
lem. European Journal of Operational Research, 37:236–249, 1988.
[29] N. Ascheuer, L.F. Escudero, M. Grotschel, and M. Stoer. On identify-
ing in polynominal time violated subtour elimination and precedence
298 BIBLIOGRAPHY
forcing constraints for the sequential ordering problem. In R. Kannan
and W.R. Pullyblank, editors, Proceedings of the 1st Integer Program-
ming and Combinatorial Optimization Conference, Waterloo, Ontario,
Canada, pages 19–28. University of Waterloo Press, 1990.
[30] N. Ascheuer, L.F. Escudero, M. Grotschel, and M. Stoer. A cutting
plane approach to the sequential ordering problem (with applications
to job scheduling in manufacturing). SIAM Journal on Optimization,
3(1):25–42, 1993.
[31] L.F. Escudero, M. Guignard, and K. Malik. A Lagrangian relax-and-
cut approach for the sequential ordering problem with precedence re-
lationships. Annals of Operations Research, 50:219–237, 1994.
[32] E. Balas, M. Fischetti, and W.R. Pullyblank. The precedence-
constrained asymmetric traveling salesman polytope. Mathematical
Programming, 68(3):241–265, 1995.
[33] N. Ascheuer. Hamiltonian Path Problems in the On-line Optimization
of Flexible Manufacturing Systems. PhD thesis, Technische Universitat
Berlin, 1995.
[34] C.E. Miller, A.W. Tucker, and R.A. Zemlin. Integer programming for-
mulations and traveling salesman problems. J. Assoc. Comput. Mach.,
7:326–329, 1960.
[35] M. Desrochers and G. Laporte. Improvements and extensions to the
Miller-Tucker-Zemlin subtour elimination constraints. Operations Re-
search Letters, 10:27–36, 1991.
[36] C.A. van Eijl. A polyhedral approach to the delivery man problem.
Technical Report 95-19, Department of Mathematics and Computer
Science, Eindhoven University of Technology, 1995.
[37] F. Maffioli and A. Sciomachen. A mixed-integer model for solving or-
dering problems with side constraints. Annals of Operations Research,
69:277–297, 1997.
[38] F. Focacci, A. Lodi, and M. Milano. A hybrid exact algorithm for the
TSPTW. INFORMS Jornal on Computing, 14(4):403–417, 2002.
BIBLIOGRAPHY 299
[39] S. Dash, O. Gunluk, A. Lodi, and A. Tramontani. A time bucket
formulation for the traveling salesman problem with time windows.
INFORMS Journal on Computing, 24:132–147, 2012.
[40] J.-Q. Li. A computational study of bi-directional dynamic program-
ming for the traveling salesman problem with time windows. Working
paper, University of California, Berkeley, 2009.
[41] R. Roberti. Exact Algorithms for Different Classes of Vehicle Rout-
ing Problems. PhD thesis, University of Bologna, 2012. http://
amsdottorato.cib.unibo.it/4350/2/Roberti_Roberto_tesi.pdf.
[42] L.F. Escudero and A. Sciomachen. Local search procedures for im-
proving feasible solutions to the sequential ordering problem. Annals
of Operations Research, 43:397–416, 1993.
[43] L.F. Escudero and A. Sciomachen. An O(n3) algorithm for finding
feasible solutions for the sequential ordering problem. Journal of Com-
binatorics, Information & System Sciences, 24:1–23, 1999.
[44] M.T. Ortuno. Sobre Cortes Lagranianos Fuertes en la Resolucion
del Problema del Ordenamiento Secuencial. PhD thesis, Universidad
Complutense de Madrid, Spain, 1995.
[45] L.F. Escudero and M.T. Ortuno. On due-date based valid cuts for the
sequential ordering problem. Top, 5:159–166, 1997.
[46] A. Alonso-Ayuso, P. Detti, L.F. Escudero, and M.T. Ortuno. On dual
based lower bounds for the sequential ordering problem with prece-
dences and due dates. Annals of Operations Research, 124:111–131,
2003.
[47] G. Laporte and I.R. Martın. Locating a cycle in a transportation or
a telecommunications network. Networks, 50:92–108, 2007.
[48] S.N. Parragh, K.F. Doerner, and R.F. Hartl. A survey on pickup
and delivery problems. part i: Transportation between customers and
depot. Journal fur Betriebswirtschaft, 58:21–51, 2008.
[49] S.N. Parragh, K.F. Doerner, and R.F. Hartl. A survey on pickup
and delivery problems. part ii: Transportation between pickup and
delivery locations. Journal fur Betriebswirtschaft, 58:81–117, 2008.
300 BIBLIOGRAPHY
[50] J.-F. Cordeau and G. Laporte. The dial-a-ride problem: models and
algorithms. Annals of Operations Research, 153:29–46, 2007.
[51] K.S. Ruland. Polyhedral solution to the pickup and delivery problem.
PhD thesis, Washington University, 1995.
[52] K.S. Ruland and E.Y. Rodin. The pickup and delivery problem: Faces
and branch-and-cut algorithm. Computers & Mathematics with Ap-
plications, 33:1–13, 1997.
[53] I. Dumitrescu, S. Ropke, J.-F. Cordeau, and G. Laporte. The traveling
salesman problem with pickup and delivery: polyhedral results and
a branch-and-cut algorithm. Mathematical Programming, Series A,
121:269–305, 2010.
[54] P. Toth and D. Vigo, editors. The Vehicle Routing Problem. SIAM,
Philadelphia, 2002.
[55] B.L. Golden, S. Raghavan, and E.A. Wasil, editors. The vehicle routing
problem: latest advances and new challenges, volume 43 of Operations
Research/Computer Science Interfaces. Springer, Dordrecht, 2008.
[56] G. Laporte. The Vehicle Routing Problem: An overview of exact and
approximate algorithms. European Journal of Operational Research,
59:345–358, 1992.
[57] G. Laporte. What you should know about the vehicle routing problem.
Naval Research Logistics, 54:811–819, 2007.
[58] G. Laporte. Fifty years of vehicle routing. Transportation Science,
43:408–416, 2009.
[59] J.-F. Cordeau, M. Gendreau, G. Laporte, J.-Y. Potvin, and F. Semet.
A guide to vehicle routing heuristics. Journal of the Operational Re-
search Society, 53:512–522, 2002.
[60] R. Baldacci, P. Toth, and D. Vigo. Recent advances in vehicle routing
exact algorithms. 4OR, 5:269–298, 2007.
[61] J.-F. Cordeau, G. Laporte, M.W.P. Savelsbergh, and D. Vigo. Vehi-
cle routing. In C. Barnhart and G. Laporte, editors, Tranportation,
BIBLIOGRAPHY 301
volume 14 of Handbooks in Operations Research and Management Sci-
ence, chapter 6, pages 367–428. Elsevier, 2007.
[62] J.-Y. Potvin. Evolutionary algorithm for vehicle routing. INFORMS
Journal on Computing, 21:518–548, 2009.
[63] V. Pillac, M. Gendreau, C. Gueret, and A.L. Medaglia. A review of
dynamic vehicle routing problems. European Journal of Operational
Research, 225:1–11, 2013.
[64] A. Tramontani. Enhanced Mixed Integer Programming Tech-
niques and Routing Problems. PhD thesis, University of Bologna,
2009. http://amsdottorato.cib.unibo.it/1754/1/tramontani_
andrea_tesi.pdf.
[65] M. K. Jepsen. Branch-and-cut and Branch-and-Cut-and-Price Algo-
rithms for Solving Vehicle Routing Problems. PhD thesis, Techni-
cal University of Denmark, 2011. http://orbit.dtu.dk/fedora/
objects/orbit:89357/datastreams/file_6317942/content.
[66] A. Subramanian. Heuristic, Exact and Hybrid Algorithms for Vehi-
cle Routing Problems. PhD thesis, Universidade Federal Fluminense,
2012. http://www.ic.uff.br/PosGraduacao/Teses/532.pdf.
[67] J.-F. Cordeau, G. Desaulniers, J. Desrosiers, M. M. Solomon, and
F. Soumis. VRP with Time Windows. In P. Toth and D. Vigo, ed-
itors, The Vehicle Routing Problem, volume 9 of SIAM monographs
on discrete mathematics and applications, chapter 7, pages 157–193.
SIAM, Philadelphia, 2002.
[68] R. Baldacci, A. Mingozzi, and R. Roberti. Recent exact algorithms for
solving the vehicle routing problem under capacity and time window
constraints. European Journal of Operational Research, 218(1):1–6,
2012.
[69] O. Braysy and M. Gendreau. Vehicle Routing Problem with Time
Windows, Part I: Route Construction and Local Search Algorithms.
Transportation Science, 39:104–118, 2005.
302 BIBLIOGRAPHY
[70] O. Braysy and M. Gendreau. Vehicle Routing Problem with Time
Windows, Part II: Metaheuristics. Transportation Science, 39:119–
139, 2005.
[71] G. Desaulniers, J. Desrosiers, A. Erdmann, M. M. Solomon, and
F. Soumis. VRP with Pickup and Delivery. In P. Toth and D. Vigo,
editors, The Vehicle Routing Problem, volume 9 of SIAM monographs
on discrete mathematics and applications, chapter 9, pages 225–242.
SIAM, Philadelphia, 2002.
[72] J.-F. Cordeau, G. Laporte, J.-Y. Potvin, and M.W.P. Savelsbergh.
Tranportation on demand. In C. Barnhart and G. Laporte, editors,
Tranportation, volume 14 of Handbooks in Operations Research and
Management Science, chapter 7, pages 429–466. Elsevier, 2007.
[73] J.-F. Cordeau, G. Laporte, and S. Ropke. Recent models and algo-
rithms for one-to-one pickup and delivery problems. In B.L. Golden,
S. Raghavan, and E.A. Wasil, editors, The vehicle routing problem:
latest advances and new challenges, volume 43 of Operations Re-
search/Computer Science Interfaces, pages 327–357. Springer, Dor-
drecht, 2008.
[74] L.F. Escudero and A. Sciomachen. An approximate algorithm for the
sequential ordering problem with time windows and precedence rela-
tionships. Technical Report RC-16820, IBM Research, T.J. Watson
Research Center, Yorktown Heights, NY, 1990.
[75] R Core Team. R: A Language and Environment for Statistical Com-
puting. R Foundation for Statistical Computing, Vienna, Austria,
2012. ISBN 3-900051-07-0.
[76] R.T. Wong. Integer programming formulations of the traveling sales-
man problem. In Proceedings of the IEEE International Conference
on Circuits and Computers, pages 149–152, 1980.
[77] A. Langevin, F. Soumis, and J. Desrosiers. Classification of travelling
salesman problem formulations. Operations Research Letters, 9:127–
132, 1990.
BIBLIOGRAPHY 303
[78] M. Padberg and T.-Y. Sung. An analytical comparison of different
formulations of the travelling salesman problem. Mathematical Pro-
gramming, 52:315–357, 1991.
[79] L. Gouveia and S. Voß. A classification of formulations for the (time-
dependent) traveling salesman problem. European Journal of Opera-
tional Research, 83:69–82, 1995.
[80] A.J. Orman and H.P. Williams. A survey of different integer pro-
gramming formulations of the travelling salesman problem. In E.J.
Kontoghiorghes and C. Gatu, editors, Optimisation, Econometric and
Financial Analysis, volume 9 of Advances in Computational Manage-
ment Science, chapter 9, pages 91–104. Springer, Berlin, 2007.
[81] T. Oncan, I.K. Altınel, and G. Laporte. A comparative analysis of sev-
eral asymmetric traveling salesman problem formulations. Computers
& Operations Research, 36:637–654, 2009.
[82] H.D. Sherali and P.J. Driscoll. On tightening the relaxations of Miller-
Tucker-Zemlin formulations for asymmetric traveling salesman prob-
lems. Operations Research, 50(4):656–669, 2002.
[83] IBM R©ILOG R©CPLEX R©. Callable Library Version 12.1, 2009.
[84] E.D. Dolan and J.J. More. Benchmarking optimization software with
performance profiles. Mathematical Programming, Series A, 91:201–
213, 2002.
[85] J.E. Mitchell. Branch-and-cut algorithms for combinatorial optimiza-
tion problems. In P.M. Pardalos and M.G.C. Resende, editors, Hand-
book of Applied Optimization, pages 65–78. Oxford University Press,
2002.
[86] V.J. Rayward-Smith, I.H. Osman, C.R. Reeves, and G.D. Smith, edi-
tors. Modern heuristic search methods. John Wiley & Sons, Chichester,
1996.
[87] M. Fischetti, F. Glover, and A. Lodi. The feasibility pump. Mathe-
matical Programming, Series A, 104:91–104, 2005.
304 BIBLIOGRAPHY
[88] E. Danna, E. Rothberg, and C. Le Pape. Exploring relaxation induced
neighborhoods to improve MIP solutions. Mathematical Programming,
Series A, 102:71–90, 2005.
[89] M. Fischetti and A. Lodi. Local branching. Mathematical Program-
ming, Series B, 98:23–47, 2003.
[90] T. Berthold. Primal Heuristics for Mixed Integer Programs. Master’s
thesis, Technische Universitat Berlin, 2006. http://opus.kobv.de/
zib/volltexte/2007/1054/.
[91] B.M. Smith. Reducing symmetry in a combinatorial design problem.
Report 2001.01, University of Leeds, 2001.
[92] I.P. Gent, K.E. Petrie, and J.-F. Puget. Symmetry in constraint pro-
gramming. In F. Rossi, P. van Beek, and T. Walsh, editors, Handbook
of Constraint Programming, pages 329–376. Elsevier, 2006.
[93] L. Liberti. Reformulations in mathematical programming: Automatic
symmetry detection and exploitation. Mathematical Programming,
Series A, 131:273–304, 2012.
[94] L. Liberti. Symmetry in mathematical programming. In J. Lee and
S. Leffyer, editors, Mixed Integer Nonlinear Programming, volume 154
of The IMA Volumes in Mathematics and its Applications, pages 263–
283. Springer, New York, 2012.
[95] A. Ghoniem and H.D. Sherali. Defeating symmetry in combinatorial
optimization via objective perturbations and hierarchical constraints.
IIE Transactions, 43:575–588, 2011.
[96] IBM R©ILOG R©CPLEX R©. IBM ILOG CPLEX V12.1 Parameters Ref-
erence Manual, 2009.
[97] M.L. Fisher. The Lagrangian relaxation method for solving integer
programming problems. Management Science, 27:1–18, 1981.
[98] M.L. Fisher. An applications oriented guide to Lagrangian relaxation.
Interfaces, 15:10–21, 1985.
BIBLIOGRAPHY 305
[99] J.E. Beasley. Lagrangean relaxation. In C.R. Reeves, editor, Modern
Heuristic Techniques for Combinatorial Problems, chapter 6, pages
243–303. John Wiley & Sons, New York, 1993.
[100] G.L. Nemhauser and L.A. Wolsey. Integer and Combinatorial Opti-
mization. Wiley-Interscience, New York, 1988.
[101] E.H.L. Aarts, J.H.M. Korst, and P.J.M. van Laarhoven. Simulated
annealing. In E.H.L. Aarts and J.K. Lenstra, editors, Local search in
combinatorial optimization, chapter 4, pages 91–120. Princeton Uni-
versity Press, Princeton NJ, 2003.
[102] F. Glover and M. Laguna. Tabu search. Kluwer Academic Publishers,
Boston, 1997.
[103] M. Mitchell. An introduction to genetic algorithms. MIT Press, Cam-
bridge MA, 1996.
[104] S.M. Elsayed, R.A. Sarker, and D.L. Essam. The influence of the
number of initial feasible solutions on the performance of an evolu-
tionary optimization algorithm. In L.T. Bui, Y.S. Ong, N.X. Hoai,
H. Ishibuchi, and P.N. Suganthan, editors, Simulated Evolution and
Learning, volume 7673 of Lecture Notes in Computer Science, pages
1–11. Springer Berlin Heidelberg, 2012.
[105] L.A. Wolsey. Integer Programming. Wiley-Interscience, New York,
1998.
[106] G.L. Nemhauser and L.A. Wolsey. Integer and Combinatorial Opti-
mization. Wiley-Interscience, New York, 1999.
306 BIBLIOGRAPHY
Appendix A
Acronyms and notation
Table A.1 contains key acronyms used throughout this thesis; they are pro-
vided here as a point of reference.
Table A.2 contains key notation for the SOP-TW used throughout this the-
sis; they are provided here as a point of reference.
307
308 Acronyms and notation
Notation Description
RMG Rail mounted gantry crane
GRI Gantry road interface
GRAI Gantry rail interface
GRA Combined gantry road and rail interfaces
GSI Gantry straddle interface
ISA Intermediate stacking area
ISA Not the intermediate stacking area (GRA plus GSI)
IP Integer program
MIP Mixed integer program
B&B Branch-and-bound
B&C Branch-and-cut
B&L Branch-and-Lagrangian
DP Dynamic programming
CP Constraint programming
DFJ Dantzig, Fulkerson and Johnson
MTZ Miller, Tucker and Zemlin
IPEC Infeasible path elimination constraint
SEC Subtour elimination constraint
AP Assignment problem
TSP Travelling salesman problem
ATSP Asymmetric travelling salesman problem
ATSP-PC ATSP with precedence constraints
ATSP-TW ATSP with time windows
ATSP-TW-PC ATSP with time windows and additional precedence constraints
SOP Sequential ordering problem (also known as the ATSP-PC)
SOP-TW SOP with time windows (also known as the ATSP-TW-PC)
PDP Pickup and delivery problem
DARP Dial-a-ride problem
TSP-PD TSP with pickup and delivery
PDP-TW Pickup and delivery problem with time windows
VRP Vehicle routing problem
VRP-TW VRP with time windows
VRP-PD VRP with pickup and delivery
VRP-TW-PC VRP-TW with additional precedence constraints
VRP-PD-TW VRP-PD with time windows
Table A.1: Key acronyms.
309N
otat
ion
Des
crip
tion
nto
tal
nu
mb
erof
job
sto
be
sch
edu
led
Vse
tof
all
job
sto
be
sch
edu
led
,w
her
eV
={1,...,n}
Ase
tof
job
-pai
rssu
chth
at(i,j
)∈A
ifj
can
start
dir
ectl
yaft
eri
Pse
tof
pre
ced
ence
arcs
ai
earl
iest
star
tti
me
ofjo
bi∈V
b ila
test
star
tti
me
ofjo
bi∈V
pi
pro
cess
ing
tim
eof
jobi∈V
s ij
setu
pti
me
ifjo
bi
isim
med
iate
lyfo
llow
edby
jobj,
wh
ere
(i,j
)∈A
δ ij
min
imu
mti
me
gap
bet
wee
nst
arti
ng
job
si
an
dj
wh
ere
(i,j
)∈A
(δij
=pi+s i
j)
αij
min
imu
mti
me
del
ayre
qu
ired
bet
wee
nst
art
ing
job
si
an
dj,
wh
ere
(i,j
)∈P
αij
min
imu
mti
me
del
ayre
qu
ired
bet
wee
nst
art
ing
job
si
an
dj,
wh
ere
(i,j
)∈P
ALL
xij
dec
isio
nva
riab
lesu
chth
atxij
=1
ifjo
bi
imm
edia
tely
pre
ced
esjo
bj
an
d0
oth
erw
ise
t id
ecis
ion
vari
able
such
thatt i
isth
esc
hed
ule
dst
art
tim
eof
jobi,
wh
eret i∈
[ai,b i
]
Qin
feas
ible
pat
hw
ithk
job
s,Q
=(v
1,...,v
k),
wh
ere
len
gth
ofQ
is|Q|=
k−
1
Cm
ax
solu
tion
mak
esp
an,
give
nby
the
sum
of
all
trav
elli
ng,
pro
cess
ing
an
dw
ait
ing
tim
es
UB
anu
pp
erb
oun
dsu
chth
atUB
=m
in{UB
1,UB
2}
wh
ereUB
1=∑ i∈
Vm
axj∈V{s
ij}
an
dUB
2=∑ j∈V
maxi∈
V{s
ij}
ωca
taly
stw
eigh
tw
her
eω∈{0,0.0
1,0.
1,1,
5,10}
ρca
taly
stra
tio
wh
ereρ
=UB
∑ i∈V
ai
βca
taly
stp
enal
tyw
her
eβ≥
0an
dβ
=ωρ
Tab
leA
.2:
Key
not
atio
nfo
rth
eS
OP
-TW
.
310 Acronyms and notation
Appendix B
Key interface assumptions
To ensure the SOP-TW instances generated in Chapter 3 reflect the un-
derlying crane scheduling problem and proposed interface setup, the key
features of the problem are incorporated into the design of the data gener-
ator. However, a trade-off exists between including all aspects of the real
world problem and the complexity of the proposed generator. As a result,
several port-specific assumptions about the containers, cranes, locations and
the interface are made, including:
1. All containers are standard 20 ft containers (dimensions 2.4384 metres
x 6.096 metres). In reality, 40 ft containers (dimensions 2.4384 metres
x 12.192 metres) will also be handled by the cranes.
2. All containers are identical. This means that reefers (refrigerated con-
tainers), dangerous goods containers, and special needs containers are
not explicitly modelled.
3. No train arrivals/departures are included, so effectively there is no
GRAI. (This assumption was also in the pilot study; see [1].)
4. The distance between any two locations will be calculated as the Eu-
clidian distance. Moreover, the crane is assumed to always travel along
the line segment between the two locations.
5. All container pick-up and drop-off locations are predetermined; only
the timing of each container move is required.
6. GSI has the same properties as GRI.
311
312 Key interface assumptions
7. All containers transported by the RMG must transit the ISA.
8. No data is generated that requires container stacking.
The consequences of these assumptions are now briefly discussed.
Assumptions 1 & 2. To incorporate 40 ft, reefer and special container
types requires only a minor extension of the data generator, but would not
significantly change the types of SOP-TW data sets generated. As a result,
these are not included in the current data generator.
Assumption 3. The GRAI aspect of the interface could easily be included
in the generator, but would affect the types of data sets generated. Consider
the arrival of a train loaded with export containers; these containers have
the same release date and must be unloaded as fast as possible, so the due
date is effectively irrelevant. As a result, the problem of unloading the train
more closely resembles an ATSP rather than the SOP-TW. If the train is
simultaneously reloaded with import containers from the ISA, the problem
more closely resembles a SOP rather than the SOP-TW; an export container
must be removed from a train location before being replaced with an import
container, thus gives rise to a precedence pair between these two container
movements.
Assumption 4. The Euclidean travel/distance assumption simplifies the
calculation of travel times and distances. In reality, the crane has several
moving parts, and each part can move simultaneously with different speeds.
The gantry crane moves along the rails in the x direction, the crane trolley
moves perpendicular to the rails in the y direction, and the crane hoist
(attached to the spreader on the trolley) lifts a container up and down in the
z direction. As a result, the length of the actual path a container traverses
while being moved may not correspond to the Euclidean distance. While
this could be built into the data generator, it was not a priority for this
research as it would not significantly change the types of SOP-TW data sets
generated. (Note, the RMGs in the pilot study can move simultaneously in
the x and y directions with approximately the same speed, so this is not a
completely unrealistic assumption.)
313
Assumption 5. If container pick-up and drop-off locations are not pre-
determined, the problem ceases to be a SOP-TW. Instead, if each location
must be chosen from a set of potential locations, the problem begins to
resemble a generalised-ATSP with additional side constraints. Since prece-
dence relationships arise when multiple containers use the same location,
these relationships would now be derived according to decisions regarding
the locations. Investigating this extension to the SOP-TW would be very
interesting further work, but is beyond the scope of this thesis.
Assumption 6. It is convenient to assume that GSI has the same prop-
erties as GRI, so they can be treated the same when combined to make ISA
(§3.2.2). In reality these locations do have some different properties. How-
ever, including the differences in the data generator would not significantly
change the types of SOP-TW data sets generated so they were omitted for
simplicity.
Assumption 7. All containers transported by the RMG are assumed to
transit the ISA. This means all import (export) containers must be trans-
ported by RMG from the GSI (GRI) into the ISA, then from the ISA into
the GRI (GSI). In theory it is almost always possible to do direct transfers
from GSI to GRI, and vice versa (i.e. not use the ISA). In practice it is
sometimes optimal to do direct transfers (e.g. if an export container is de-
livered late to the port and is immediately required for loading on a ship, a
direct transfer is required). However, the purpose of the port redevelopment
was to include and use the ISA buffer area which has a large capacity. As
such, it was assumed that the ISA is always used, thus all problem instances
reflect this assumption.
Assumption 8. Although each ISA ground location can be stacked up
to three containers high, the solution approach taken in [1] was to never
use more than one “layer” of an ISA stack in a one hour planning interval,
unless it is to drop a container off after a container has been retrieved from
that location. After one hour the crane moves into the next corridor, where
a corridor is one quarter of a moving area; a moving area is the total area
one crane services, thus the crane returns to a corridor every four hours.
314 Key interface assumptions
Since this approach does not require container stacking within the same
planning interval, no data is generated that requires stacking. In other
words, each ISA location can be used at most twice, and if it is used twice
the only scenario is that the container currently in the ISA location must
be collected before a container is dropped off to that location.
Appendix C
Ordinary versus generalised
precedence relations
A key difference in the variations of the SOP-TW is whether the precedence
constraints involve a minimum time-lag, such as our αij . In the presence
of a minimum time-lag, the precedences are called generalised precedence
constraints (αij ≥ 0, for all (i, j) ∈ P ); otherwise they are termed ordinary
precedence relations (αij = 0, for all (i, j) ∈ P ). With ordinary prece-
dences, only the order of the jobs are important. In contrast, the introduc-
tion of time-lags force additional checks on the timing of each job. As a
result, a schedule that is infeasible for a SOP-TW instance with generalised
precedence constraints (gen-SOP-TW) may be feasible for the equivalent1
problem with ordinary precedences (ord-SOP-TW).
The following propositions were stated in Section 2.4; the proofs to support
the claims are provided here.
1Within the context of these propositions, the problems gen-SOP-TW and ord-SOP-
TW are equivalent if and only if the sole difference between the two problems is the value
of the minimum time-lag, αij . Specifically, αij = 0 for all (i, j) ∈ P for the ord-SOP-TW,
whereas αij > 0 for at least one (i, j) ∈ P for the gen-SOP-TW (otherwise the problem
reduces to the ord-SOP-TW).
315
316 Ordinary versus generalised precedence relations
Proposition 1. A feasible solution to the gen-SOP-TW is always feasible
for the equivalent ord-SOP-TW.
It is sufficient to note that the ord-SOP-TW is a relaxation of the gen-SOP-
TW (i.e. ord-SOP-TW is a special case of gen-SOP-TW, where αij = 0, for
all (i, j) ∈ P ), thus a feasible solution to the gen-SOP-TW is always feasible
for the ord-SOP-TW. �
Proposition 2. An infeasible solution to the ord-SOP-TW is always infea-
sible for the equivalent gen-SOP-TW.
As with Proposition 1, it is sufficient to note that the ord-SOP-TW is a
relaxation of the gen-SOP-TW, thus an infeasible solution to the ord-SOP-
TW is always infeasible for the gen-SOP-TW. �
Proposition 3. Infeasible solutions may exist for the gen-SOP-TW that
are feasible for the equivalent ord-SOP-TW. (In other words, the reverse of
Proposition 1 and the reverse of Proposition 2 is not true.)
Consider the simplest two-job SOP-TW problem; without loss of generality,
we assume that the precedence relation is (1, 2), processing times are p1 and
p2, time windows are [a1, b1] and [a2, b2], and the inter-job setup time is s12
(by definition, all times are non-negative). For the gen-SOP-TW version of
the problem, α12 > 0; α12 = 0 in the equivalent ord-SOP-TW version.
Since job 1 must precede job 2, the earliest start time of job 1 is a1, and the
earliest start time of job 2 is max{a2, a1 +p1 + s12, a1 +α12}. Consequently,
t1 = a1 and t2 = max{a2, a1 + p1 + s12} ≤ b2
is a feasible solution to the ord-SOP-TW version. Similarly,
t1 = a1 and t2 = max{a2, a1 + p1 + s12, a1 + α12} ≤ b2
is a feasible solution to the gen-SOP-TW version provided α12 ≤ b2 − a1.
However, if α12 > b2 − a1 there exists no feasible solution to the gen-SOP-
TW version, even though a feasible solution does exists for the equivalent
ord-SOP-TW version. �
Appendix D
Formulae for the coordinates
of the ISA and ISA locations
The formulae for coordinate (X,Y ) for each location in ISA and ISA is given
in this appendix. From Section 3.2.1, recall the following definitions:
• dL(j) ∈ R+ is the length of a single location in group j,
• dW (j) ∈ R+ is the width of a single location in group j,
• cL(j) ∈ Z+ is the number of locations in a “row” of group j,
• cW (j) ∈ Z+ is the number of locations in a “column” of group j,
• nl(j) = cL(j)cW (j) is the total number of container storage locations
in group j,
• bL(j) is the length of space between adjacent locations in the same
row in group j, and
• bW (j) is the width of space between adjacent locations in the same
column in group j,
for j ∈ {ISA, ISA}, and
• fL is the length of space between the left-most edges of the first
columns of ISA and ISA, and
• fW is the width of space dividing ISA and ISA.
317
318 Formulae for the coordinates of the ISA and ISA locations
Using these parameters, the container yard locations are systematically con-
structed, or built out from the origin (0, 0), into R2, starting with the first
ISA location. The coordinate for each ISA location i ∈ {1, . . . , nl(ISA)}depends on the column number, αISA
i ∈ {1, . . . , cL(ISA)}, and row number,
βISAi ∈ {1, . . . , cW (ISA)}, of location i in ISA; see Figure D.1 on page 320 for
an example of the row and column labels. In other words, the coordinate of
location i is based on its relative position in the group of all ISA locations.
Specifically, the formulae is given below:
lISAi = (XISA
i , Y ISAi )
=
(1
2dL(ISA) + (αISA
i − 1)(dL(ISA) + bL(ISA)) ,
1
2dW (ISA) + (βISA
i − 1)(dW (ISA) + bW (ISA))
),
where αISAi = 1 + (i− 1) mod cL(ISA) and βISA
i = 1 + b i−1cL(ISA)c.
Similarly, the coordinate for each ISA location i ∈ {1, . . . , nl(ISA)} de-
pends on the column number, αISAi ∈ {1, . . . , cL(ISA)}, and row number,
βISAi ∈ {1, . . . , cW (ISA)}, of location i in ISA. In other words, the coordi-
nate of location i is based on its relative position in the group of all ISA
locations. Specifically, the formulae is given below:
lISAi = (XISA
i , Y ISAi )
= (fL, HISA + fW )
+
(1
2dL(ISA) + (αISA
i − 1)(dL(ISA) + bL(ISA)) ,
1
2dW (ISA) + (βISA
i − 1)(dW (ISA) + bW (ISA))
),
where
HISA = cW (ISA)dW (ISA) + (cW (ISA)− 1)bW (ISA)
is the full width of the ISA, and αISAi = 1 + (i − 1) mod cL(ISA) and
βISAi = 1 + b i−1
cL(ISA)c.
319
Generalising these coordinate formulae for location i in group j ∈ {ISA, ISA}:
lji = (Xji , Y
ji )
= I(j = ISA)(fL, HISA + fW )
+
(1
2dL(j) + (αji − 1)(dL(j) + bL(j)) ,
1
2dW (j) + (βji − 1)(dW (j) + bW (j))
),
where
I(j = ISA) :=
1, if j = ISA,
0, otherwise,
and αji = 1 + (i− 1) mod cL(j) and βji = 1 + b i−1cL(j)c.
320 Formulae for the coordinates of the ISA and ISA locations
. . . .l1
ISA
x(LENGTH
DIRECTION)
y(WIDTH
DIRECTION)
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
(0,0)
dL(ISA) bL(ISA)
dW (ISA)
bW (ISA) b ISA = (bL(ISA),bW (ISA))
l2ISA l
ISAcL(ISA)-1 l
ISAcL(ISA)
l ISAcL(ISA)+1
l ISA(cW (ISA)-2)cL(ISA)+1
l ISA(cW (ISA) -1)cL(ISA) +1 l
ISA(cW (ISA) -1)cL(ISA) +2 l
ISAcW (ISA) (cL(ISA) -1) l
ISAcW (ISA) cL(ISA)
l ISA(cW (ISA) -1)cL(ISA)
l ISA2cL(ISA)
ISA
ISA
fW
fL
dL(ISA)bL(ISA)
dW (ISA)
bW (ISA)b ISA = (bL(ISA),bW (ISA))
l1ISA l
ISAcL(ISA)l2
ISA
l ISA
cW (ISA) cL(ISA) l ISA
(cW (ISA) -1)cL(ISA) +1
f = ( fL , fW )~
ISAcolm
1
ISAcolm
2
ISAcolm
cL(ISA)-1
ISAcolm
cL(ISA). . . .
ISA row 1
ISA row 2
ISA row cW(ISA)-1
ISA row cW(ISA)
. . . .
ISA row 1
ISA row 2
ISA row cW(ISA)-1
ISA row cW(ISA)
. . . .
ISAcolm
1
ISAcolm
2
ISAcolm
cL(ISA)-1
ISAcolm
cL(ISA). . . .
Figure D.1: Parametrised layout of a container yard, with row/column labels.
Appendix E
Fixed parameter values for
the data generator
The values of the fixed input parameters for the data generator, procedure
RandomPortDataGen, are listed in Table E.1. The reasons behind the
values follow.
The container yard layout used as the foundation of our data sets is based
on the original plan for a container exchange area at the redeveloped Port
Botany container terminal in Sydney, Australia. This container exchange
area was to be serviced by five rail mounted gantry cranes (RMGs). The
container exchange area comprises three zones called the Gantry Straddle In-
terface (GSI), Intermediate Stacking Area (ISA) and Gantry Road Interface
(GRI) (as noted in the list of assumptions, we do not consider the Gantry
Rail Interface (GRAI) in this work). All containers that pass through the
port must transit each zone. A sketch of the proposed RMG container ex-
change area is shown in Figures E.1 and E.2.
All import containers must be transported by RMG from the GSI into the
ISA, then from the ISA into the GRI. Similarly, all export containers must
be transported by RMG from the GRI into the ISA, then from the ISA into
the GSI. Consequently the two main types of crane movements are to take
containers across the exchange area from GSI or GRA and move them into
the ISA, or to take containers from the ISA and move them into either the
GSI or GRI. Thus we divide the three zones into two groups: ISA and ISA
321
322 Fixed parameter values for the data generator
Parameter Value (fixed across all data sets generated by RandomPortDataGen)
CONTAINER YARD
ISA Zone 2
ISA Zone 1 ∪ Zone 3 (Zone 1 = GSI, Zone 3 = GRI)
fL 0 metres between Zone 1 and Zone 2, and 0 metres between Zone 2 and Zone 3
fW 1 metre between Zone 1 and Zone 2, and 1 metre between Zone 2 and Zone 3
L 132 metres
CONTAINER YARD LOCATIONS (for Zone j ∈ {1, 2, 3})
dL [2.4384 metres, 6.096 metres, 11.00 metres]
dW [6.096 metres, 2.4384 metres, 0.00 metres]
cL [26 locations, 20 locations, 12 locations]
cW [2 locations, 7 locations, 1 locations]
bW [0.3 metres, 0.3 metres, 0.0 metres]
Calculated from the container yard location input parameters
nl(1) 26 x 2 = 52 container storage locations in Zone 1
nl(2) 20 x 7 = 140 container storage locations in Zone 2
nl(3) 12 x 1 = 12 container storage locations in Zone 3
bL(1) 132−26(2.4384)26−1
= 2.744 metres (calculated from L, cL(1) and dL(1))
bL(2) 132−20(6.096)20−1
= 0.531 metres (calculated from L, cL(2) and dL(2))
bL(3) 132−12(11.00)12−1
= 0 metres (calculated from L, cL(3) and dL(3))
CRANE PROPERTIES
vunloaded 2 m/s
vloaded 2 m/s
∆+ 35 seconds
∆− 35 seconds
CONTAINERS (JOBS)
pOISA
0.2
pDISA
0.2
ψ 10
Table E.1: Summary of the fixed input parameters for RandomPortDataGen.
323
GRI GRAI ISA GSI
LANDSIDE QUAYSIDE
Figure E.1: Elevation view of the RMG container exchange area
GRI
GRAI
ISA
GSI
Figure E.2: Ground plan view of the RMG container exchange area
(not ISA). This way we can think of each loaded crane movement to be
moving a container into, or out of, the ISA.
Since we only consider the movements of a single RMG in this thesis, we have
partitioned the container yard serviced by the five RMGs into five “moving
areas” (one for each RMG), and base the sizings of our container exchange
area on a single moving area. The total length of the full landside container
exchange area is 660 metres, so a single RMG moving area is 132 metres
long. The full ISA has seven rows of 100 20ft container storage locations
that can be stacked up to three containers high. The full GSI has two rows
of 132 20ft container locations, while the full GRI has one row of 60 truck
bays. A single RMG moving area (one fifth of the full area) gives an ISA
partition of seven rows of 20 container storage locations, a GSI of two rows
of 26 locations, and a GRI of 12 truck bays.
The crane values assigned are based on realistic timings given by subject
matter experts at the outset of the project.
The parameter ψ is set to 10 so that, on average, at any time in sequencing
the container jobs there are at least several jobs available to be the next
324 Fixed parameter values for the data generator
move (i.e. multiple feasible solutions should exist for every data set).
The remaining container properties pOISA
and pDISA
influence how often ISA
locations are used multiple times. If these values are high, they lead to many
precedence relations being generated between container movements. As the
number of precedence relations increases, the number of feasible solutions is
reduced, and the order in which containers can be moved is increasingly pre-
scriptive. As such, we believe that after a certain (small) number/proportion
of precedences is introduced, adding any more precedences actually makes
the problem easier to solve. Thus while we wish some precedences to be
present at the ISA locations, we wish this number to be relatively small so
that “large” partial solutions are not easily derived from the data.
Appendix F
SOP-TW data set parameter
summary statistics
A summary of the key SOP-TW data set parameters was presented in Sec-
tion 3.6; the box plots in Figures 3.4–3.11 summarise the values of each
parameter by data class. The raw summary statistics which underpin each
box plot is given in Tables F.2–F.9, while the notation describing the column
headings is given in Table F.1.
Notation Description
Class Problem class number
# Number of elements of this parameter in the whole class
min Minimum parameter value in class
q1 First quartile (value in position 1 + 0.25(#− 1))
median Median of the parameter values (value in position 1 + 0.5(#− 1))
mean Mean of the parameter values (sum of the values divided by #)
q3 Third quartile (value in position 1 + 0.75(#− 1))
max Maximum parameter value in class
sd Standard deviation of the parameter values
Table F.1: Notation for parameter summary tables.
For completeness, the data set parameters for the BKA instances are also
summarised here in Figure F.1, and the raw summary statistics which un-
derpin each box plot is given in Tables F.2–F.9 under the name Class 0.
325
326 SOP-TW data set parameter summary statistics
●
●
●
●
●
●
●
●
●
●
●
●
●●
●●
●
●●●
●●●
●●●
●
●●
●●
●●
●
050
010
0015
00
(a) a
●●●
●
●●
●
●
●
●
●
●
●
●
●
●●
●
1000
2000
3000
4000
5000
(b) b
●●●
●
●
●
●
●●●●
●
●●●●●●
1000
2000
3000
4000
(c) w
●●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●●●●●●●●
020
4060
8010
012
014
0(d) p
●
●
●
●
●●
●●
●
●
●
●●
●
●●●●
●
●●
●●
●●
●
●
●
●●
●●●●●
●●
●●
●●
●●
●
●●
●●
●●
●
●●
●●
●●
●
●
●
●●
●●●●●
●●
●●
●●
●●
●
●●
●●
●●
●
●●●●●●●●●●●
●●
●●●●●●
●
●
●
●
●
●
●
●
●
●
●●
●●●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●●●
●
●
●
●●
●
●
●
●●
●
●●
●●
●●
●
●●
●●
●●●●●
●●
●●
●●
●●
●
●●
●●
●
●
●
●
●●
●●
●
●
●
●●
●
●●●●●●
●●●
●●
●●
●
●●●●
●
●●●●●●●●
●
●●●●
●●
●●
●
●●●●
●
●●
●
●●●●●●●
●●
●●●●
●●
●●
●
●●●●
●
●●
●
●●●●●●●
●●●●●●●●●●●●●
●●
●
●●
●
●
●●●●
●
●●●
●
●
●
●●●●
●●
●●●●●●●
●
●●●●
●●●●●
●●
●●●●●
●
●●●●
●
●●
●
●●●●●●●●●●●
●●
●●●●●●
●●●●
●●
●●
●●●
●●
●
●●●●
●
●●
●
●●●●
●●●
●●●●●●●
●●
●●●
●●●●
●●
●●●
●●
●
●●●
●●
●
●●●●
●
●●●●●
●●
●●●●●●
●
●●●
●●●●
●
●●●
●
●●●
●
●●●●
●
●●●●●●●●●●●
●
●●●●
●●
●
●●
●●
●
●●
●
●
●
●●
●
●
●
●
●●
●
●●●
●
●
●●
●
●●
●●
●
●●
●
●
●
●●
●
●
●
●
●●
●
●●●
●
●
●●●
●
●
●●●
●●
●
●●●●
●
●●●●●
●●
●●●●●●
●
●●●
●●●●
●●
●●●
●
●
●●●
●●
●
●●●●
●
●●●●●
●●
●●●●●●
●
●●●
●●●●
●●●●●●●
●●●
●
●●
●
●●●●
●
●
●
●●●●●●
●
●●●
●
●
●●
●
●●●●
●
●
●
●●●●
●●●●●●
●
●●●●●
●●●
●
●●●
●●
●
●●●
●
●
●
●●●●
●●
●●●●●●
●
●●●
●●●●
●
●●●
●
●
●●●
●●
●
●●●
●
●
●
●●●●
●●●
●●●●●●
●
●●●
●●●●
●●●●●●●●●●
●●●●
●●
●●
●
●●●●
●●
●●
●
●●●●●●●
●●
●●●●
●●
●●●●●●
●
●●●●
●●
●●
●
●●●●●●●●●●●
●●
●●●●●
●●●●
●●
●●
●●
●●
●
●●
●
●●●●
●●
●●
●
●●●●
●●
●●●●●●●
●
●●●
●●●●
●●
020
4060
8010
012
014
0
(e) s
●●●●●●●●●●●●
●●●●●●
●●
●
●
●●●●
●
●
●●
●●
●
●●
●●
●
●●●
●●
●
●
●
●●●
●
●●
●●
●●
●●
●●
●●●●
●●
●●
●●●●●●●●
●
●
●
●
●●●
●●
●
●●
●●
●●
●●
●●
●●
●
●
●●
●●
●●
●●●●●
●
●●●●
●
●
●●●
●●
●●
●●●●●
●●●●
●●
●
●●●
●●
●●●●●●
●
●●●●
●
●●
●
●●
●●●●
●●
●●●
●
●
●●●●
●
●
●●
●
●
●
●●●
●●
●●●
●
●
●●
●●
●
●●
●
●
●●●
●●
●●
●
●●●●●
●●●●
●●
●●
●●
●●
●
●●
●
●●●●
●●
●●
●
●●
●●●●●
●●●●●
050
100
150
200
250
(f) δ
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●●
●
●
●
●●
●
●
●●●
●
●
●●●
●●●
●
●●
●
●
●
●●●●●●●●●●●●●●●●●
●●
●●
●●●●●●
●●
●
●●
●
●
●●
●
●
●
●
●
050
010
0015
00
(g) α
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●●
●
●
●
●●
●
●
●●●
●
●
●●●
●●●
●
●●
●
●
●
●●●●●●●●●●●●●●●●●
●●
●●
●●●●●●
●●
●
●●
●
●
●●
●
●
●
●
●
050
010
0015
00
(h) α
Figure F.1: Box plots of a, b, w, p, s, δ, α and α values for BKA group.
327
Class # min q1 median mean q3 max sd
0 630 0 11 58 126.20 175 1746 187.76
1 260 0.00 0.00 436.70 627.19 1134.81 2133.98 639.66
2 260 0.00 0.00 506.15 654.43 1196.20 2182.64 659.17
3 260 0.00 0.00 430.71 654.17 1214.05 2222.64 667.06
4 260 0.00 0.00 449.47 627.96 1102.05 2157.09 652.06
5 260 0.00 0.00 478.46 642.79 1176.53 2058.58 646.06
6 260 0.00 0.00 464.20 651.62 1189.21 2130.52 653.87
7 260 0.00 0.00 518.14 671.37 1240.94 2358.76 678.09
8 260 0.00 4.86 621.52 767.32 1358.81 2309.75 710.02
9 260 0.00 0.00 301.00 531.62 973.00 2235.07 604.01
10 510 0.00 385.42 1681.33 1763.46 2959.65 4742.02 1412.12
11 510 0.00 425.06 1645.47 1772.72 2901.42 4669.56 1410.90
12 510 0.00 352.67 1679.61 1760.12 3000.06 4568.99 1405.93
13 510 0.00 84.68 1375.00 1578.70 2733.67 4550.70 1360.04
14 510 0.00 186.31 1379.99 1568.29 2628.51 4628.47 1354.18
15 510 0.00 109.24 1462.94 1590.90 2651.31 4797.93 1363.78
16 1010 0.00 1580.91 4219.05 4224.75 6708.97 9720.96 2899.57
17 1010 0.00 1654.91 4075.48 4204.56 6683.19 9801.13 2908.51
18 1010 0.00 1681.87 4109.03 4214.64 6673.15 9791.19 2905.26
19 1010 0.00 1385.55 3897.38 3991.79 6403.35 9664.92 2866.46
20 1010 0.00 1358.55 3877.79 4033.55 6476.76 9802.64 2885.41
21 1010 0.00 1404.53 3872.11 3988.35 6416.03 9698.50 2844.88
Table F.2: Summary statistics for parameter a.
Class # min q1 median mean q3 max sd
0 630 247 589.25 820 1013.18 1203.75 5722 775.34
1 260 549.50 1255.05 1976.73 2002.61 2680.38 3752.39 813.40
2 260 513.00 1317.07 1967.77 2003.80 2695.38 3578.64 814.36
3 260 472.50 1304.32 2026.25 2012.53 2673.75 3574.88 810.31
4 260 546.50 1339.06 2025.31 2038.50 2758.96 3690.82 840.41
5 260 493.50 1245.87 1884.10 1968.60 2613.26 3660.87 825.54
6 260 512.00 1257.41 1976.02 2000.53 2687.68 3522.96 828.60
7 260 507.00 1304.66 1993.48 2036.82 2744.79 3766.53 855.57
8 260 474.50 1128.62 1821.89 1829.09 2508.56 3276.75 819.17
9 260 668.39 1532.53 2145.38 2250.89 2963.89 4121.42 882.52
10 510 544.00 1892.52 3175.62 3215.84 4456.90 6115.11 1507.42
11 510 488.50 1937.21 3245.34 3215.70 4485.90 6332.42 1511.89
12 510 544.00 1909.86 3203.74 3184.05 4422.31 5838.93 1496.26
13 510 479.50 2154.09 3505.33 3473.95 4726.07 6522.65 1529.33
14 510 483.00 2049.53 3362.29 3456.09 4731.96 6521.53 1523.25
15 510 469.50 2171.66 3481.76 3494.28 4852.00 6651.26 1565.97
16 1010 492.00 3206.09 5662.14 5715.25 8218.87 11204.00 2954.37
17 1010 462.50 3103.24 5675.44 5710.17 8154.30 11458.50 2964.54
18 1010 562.50 3176.13 5681.96 5709.27 8180.47 11191.70 2963.48
19 1010 546.50 3367.78 5921.47 5954.63 8501.58 11722.50 2960.09
20 1010 492.00 3399.27 5991.86 5992.39 8500.84 11623.20 2989.96
21 1010 484.50 3410.28 5898.04 5936.59 8454.04 11773.70 2968.00
Table F.3: Summary statistics for parameter b.
328 SOP-TW data set parameter summary statistics
Class # min q1 median mean q3 max sd
0 630 247 530 729 886.99 1069.75 4408 649.81
1 260 549.50 1040.58 1321.50 1375.42 1602.52 3752.39 509.05
2 260 513.00 1079.05 1255.00 1349.37 1516.45 3578.64 499.79
3 260 472.50 1074.50 1282.73 1358.36 1559.50 3574.88 503.84
4 260 546.50 1062.00 1331.00 1410.54 1692.05 3690.82 526.10
5 260 493.50 1021.75 1217.50 1325.80 1536.07 3660.87 516.58
6 260 512.00 1043.75 1260.22 1348.91 1535.86 3522.96 510.21
7 260 507.00 1058.25 1284.50 1365.44 1583.00 3766.53 528.21
8 260 474.50 949.00 1018.00 1061.77 1089.25 3276.75 448.23
9 260 668.39 1169.52 1564.50 1719.27 2085.57 4121.42 684.68
10 510 544.00 1133.75 1371.00 1452.39 1620.75 6115.11 686.46
11 510 488.50 1121.00 1353.02 1442.97 1633.00 6332.42 695.40
12 510 544.00 1083.25 1358.50 1423.94 1622.50 5838.93 679.94
13 510 479.50 1302.38 1819.12 1895.25 2322.75 6522.65 829.45
14 510 483.00 1351.25 1805.74 1887.80 2286.13 6521.53 817.35
15 510 469.50 1354.00 1797.00 1903.37 2325.00 6651.26 843.75
16 1010 492.00 1162.99 1409.50 1490.50 1627.00 11204.00 982.51
17 1010 462.50 1192.00 1445.00 1505.60 1646.00 11458.50 988.37
18 1010 562.50 1158.28 1430.00 1494.63 1632.75 11191.70 988.01
19 1010 546.50 1424.00 1933.00 1962.84 2288.75 11722.50 1073.80
20 1010 492.00 1408.00 1920.61 1958.84 2298.00 11623.20 1081.27
21 1010 484.50 1423.63 1910.99 1948.24 2255.00 11773.70 1068.56
Table F.4: Summary statistics for parameter w.
Class # min q1 median mean q3 max sd
0 630 0 16 30 32.63 40 142 23.56
1 260 0.00 81.39 89.33 90.29 105.51 131.87 23.05
2 260 0.00 82.09 90.57 90.58 102.12 131.87 22.65
3 260 0.00 81.90 89.91 91.37 104.56 135.11 23.48
4 260 0.00 83.68 92.50 93.09 106.89 134.57 23.88
5 260 0.00 81.12 87.59 90.42 103.47 134.78 23.62
6 260 0.00 82.18 89.51 90.27 101.10 131.78 22.68
7 260 0.00 82.69 91.78 91.39 103.35 132.00 23.07
8 260 0.00 81.08 90.38 91.04 104.41 134.09 23.32
9 260 0.00 82.45 90.52 90.95 102.77 127.13 22.67
10 510 0.00 82.25 90.03 92.12 102.85 135.39 19.22
11 510 0.00 82.12 90.02 91.87 102.17 132.00 18.75
12 510 0.00 82.21 89.21 90.63 99.89 134.22 18.07
13 510 0.00 81.58 89.48 91.38 102.32 134.38 18.79
14 510 0.00 81.61 89.80 91.45 102.10 134.78 18.82
15 510 0.00 82.69 91.04 92.46 102.49 132.87 18.75
16 1010 0.00 82.81 91.10 93.87 104.58 134.64 17.25
17 1010 0.00 83.16 92.14 94.05 105.13 134.86 17.05
18 1010 0.00 82.43 91.19 94.07 105.31 134.86 17.56
19 1010 0.00 82.86 91.26 94.45 105.78 134.78 17.62
20 1010 0.00 82.71 92.30 94.79 106.90 134.78 17.81
21 1010 0.00 82.53 91.06 93.85 104.92 134.64 17.54
Table F.5: Summary statistics for parameter p.
329
Class # min q1 median mean q3 max sd
0 6960 0 3 10 14.50 16 144 17.21
1 5122 0.00 11.08 20.14 23.21 33.68 65.39 15.32
2 4981 0.00 11.33 20.30 23.55 33.84 65.39 15.57
3 5135 0.00 11.81 20.34 23.45 33.25 65.39 15.24
4 5345 0.00 11.35 20.53 23.84 35.48 65.39 15.91
5 5069 0.00 11.43 20.62 23.44 33.69 65.39 15.30
6 4880 0.00 11.00 20.30 23.13 33.44 65.11 15.17
7 4684 0.00 11.47 20.30 23.44 34.14 65.11 15.10
8 4215 0.00 10.82 19.94 23.01 33.39 64.78 15.33
9 5585 0.00 10.85 20.26 23.40 34.93 65.11 15.57
10 14233 0.00 11.00 19.66 22.52 32.20 65.39 14.42
11 13664 0.00 11.00 19.86 22.49 31.93 64.86 14.24
12 13459 0.00 11.00 19.22 22.06 31.10 64.78 13.90
13 17239 0.00 11.72 20.07 22.90 32.29 65.39 14.37
14 16821 0.00 11.46 20.03 22.76 32.17 65.39 14.21
15 16583 0.00 11.14 19.63 22.18 31.26 64.86 13.90
16 31903 0.00 11.45 20.46 23.59 33.69 65.39 14.94
17 31570 0.00 11.09 19.97 23.12 33.16 65.39 14.80
18 31172 0.00 11.35 20.32 23.60 33.84 65.39 15.01
19 41199 0.00 11.41 20.39 23.69 33.80 65.39 15.06
20 39799 0.00 11.35 20.62 23.78 33.84 65.39 15.14
21 39693 0.00 11.35 20.54 23.84 34.14 65.39 15.25
Table F.6: Summary statistics for parameter s.
Class # min q1 median mean q3 max sd
0 6960 0 28 42 47.82 63 274 30.17
1 5122 0.00 99.69 114.20 114.88 130.40 193.16 27.74
2 4981 0.00 100.89 114.29 115.48 130.57 197.13 27.25
3 5135 0.00 100.63 114.84 115.95 132.38 200.23 28.45
4 5345 0.00 103.17 117.54 118.05 133.74 197.65 28.90
5 5069 0.00 99.63 112.95 114.56 129.58 198.05 28.31
6 4880 0.00 100.55 113.53 114.67 129.05 193.71 26.61
7 4684 0.00 101.93 115.37 116.41 131.09 194.01 26.27
8 4215 0.00 100.17 114.44 115.47 130.18 197.28 27.76
9 5585 0.00 101.46 115.55 115.76 130.45 186.78 27.90
10 14233 0.00 99.55 112.92 115.10 128.25 198.88 23.92
11 13664 0.00 99.66 112.58 114.70 127.95 196.31 23.38
12 13459 0.00 99.13 111.47 113.46 125.87 197.32 22.40
13 17239 0.00 99.84 113.27 115.32 129.32 199.24 23.81
14 16821 0.00 100.20 112.75 114.73 127.59 197.65 23.14
15 16583 0.00 100.78 113.45 115.30 128.07 195.44 22.83
16 31903 0.00 101.01 115.25 117.83 131.33 197.91 23.43
17 31570 0.00 101.01 114.89 117.37 131.08 198.66 23.05
18 31172 0.00 100.87 115.18 117.77 131.26 198.77 23.56
19 41199 0.00 101.68 115.98 118.50 132.24 199.56 23.66
20 39799 0.00 101.88 116.44 118.87 132.72 199.64 23.89
21 39693 0.00 101.19 115.15 117.84 131.34 199.83 23.43
Table F.7: Summary statistics for parameter δ.
330 SOP-TW data set parameter summary statistics
Class # min q1 median mean q3 max sd
0 2896 1 57 116 166.90 212 1746 187.52
1 58 73.28 103.04 121.25 121.24 131.74 179.55 24.75
2 64 81.76 103.92 113.97 118.11 125.64 179.55 20.98
3 38 86.33 111.32 124.24 126.57 141.44 176.05 21.47
4 0 NA NA NA NA NA NA NA
5 31 90.97 105.32 115.68 121.55 132.49 197.05 25.13
6 96 79.86 101.93 117.07 118.58 130.14 193.00 21.76
7 120 78.34 101.28 114.35 118.79 134.70 179.17 23.06
8 65 82.37 100.64 113.34 119.64 131.85 188.53 24.69
9 71 82.72 101.46 115.26 116.67 127.82 172.91 18.76
10 60 78.30 108.06 115.95 121.22 134.99 177.18 20.17
11 140 79.53 101.68 113.43 116.98 127.86 185.83 20.14
12 182 79.73 99.65 110.51 113.61 125.69 182.45 19.30
13 67 81.20 100.81 111.71 115.30 129.89 163.34 19.82
14 134 78.36 104.91 112.87 117.32 130.27 178.85 20.11
15 170 82.22 102.04 115.37 117.59 127.15 189.96 20.67
16 167 73.59 105.95 119.93 123.81 139.03 195.85 25.62
17 257 71.61 101.36 114.49 117.73 130.90 181.53 20.81
18 374 76.50 100.25 116.39 118.39 130.84 191.76 22.57
19 129 78.69 105.45 119.77 122.47 135.73 193.73 21.69
20 252 76.61 104.39 117.92 120.62 134.37 187.74 22.10
21 371 76.55 101.76 115.46 118.75 131.06 194.28 22.69
Table F.8: Summary statistics for parameter α.
Class # min q1 median mean q3 max sd
0 2896 1 57 116 166.90 212 1746 187.52
1 892 73.28 130.00 268.55 382.03 568.92 1497.98 304.21
2 955 79.84 129.76 270.62 390.63 573.52 1580.16 318.37
3 907 82.59 136.98 305.86 418.08 612.68 1642.71 335.31
4 833 77.20 133.37 302.37 407.67 598.61 1534.59 323.48
5 951 81.63 130.15 284.31 400.29 605.80 1537.69 315.23
6 981 78.60 129.80 268.79 394.04 613.84 1432.15 311.02
7 1037 78.34 135.74 279.96 419.47 611.53 1654.76 346.79
8 1407 77.86 147.32 387.46 505.50 772.66 1739.25 395.04
9 542 80.16 121.45 222.97 332.86 468.08 1565.57 278.15
10 6944 76.98 393.62 991.01 1169.00 1781.49 4153.02 892.47
11 7043 76.03 366.90 970.36 1161.72 1769.50 4029.06 902.25
12 7083 75.88 361.91 981.37 1162.87 1784.73 4006.99 903.29
13 5319 77.56 318.01 868.86 1027.94 1569.21 3846.08 803.69
14 5383 78.15 305.78 818.90 1011.89 1546.64 4145.47 807.61
15 5451 75.71 307.10 836.45 1026.27 1560.14 3920.91 817.24
16 38065 77.38 1048.01 2446.33 2815.81 4263.65 9078.25 2080.11
17 37992 71.61 1043.37 2448.41 2819.80 4276.93 9067.72 2088.29
18 38090 76.50 1049.76 2441.46 2822.33 4281.21 9158.20 2091.22
19 33858 77.31 978.65 2314.28 2658.95 4038.15 9031.92 1963.34
20 34145 76.61 992.97 2326.46 2677.30 4058.54 8855.64 1981.78
21 34135 78.08 972.04 2278.73 2639.82 4012.38 9012.61 1963.62
Table F.9: Summary statistics for parameter α.
Appendix G
Preprocessing results tables
The preprocessing results for each data group are given in Tables G.2–G.5,
while the notation describing the column headings is given in Table G.1. As
mentioned in Section 4.5.4, E2=0 for all problem instances, thus we have
omitted the E2 column from all tables.
A breakdown of the time spent in each procedure for all problem instances is
shown in Tables G.7–G.10, while the notation describing the column head-
ings is given in Table G.6.
Notation Description
Class Problem class
# Problem instance number
n Number of jobs
m Size of the complete arc set (default m = n(n+ 1))
|P | Number of explicit precedence constraints
|PTW | Number of precedences induced by time windows
|PALL| Number of precedences in the transitive closure of P ∪ PTW
a∗ Number of updates to release dates
b∗ Number of updates to due dates
Iter Number of iterations of precedence/TW loop
E1 Number of arcs eliminated due to a precedence chain
E2 Number of arcs eliminated due to concatenation when |Q| = 1
E3 Number of arcs eliminated due to concatenation when |Q| = 2
|A| Number of remaining arcs/variables after preprocessing
Time (s) Total time spent preprocessing (in seconds)
Table G.1: Notation for preprocessing tables.
331
332 Preprocessing results tables
Table G.2: Preprocessing results for Classes 1–9 (n25).
Class # n m |P | |PTW | |PALL| a∗ b∗ Iter E1 E3 |A| Time (s)
n25 1 1 25 650 6 83 88 1 1 2 14 2 519 0.84
n25 1 2 25 650 6 82 88 1 0 2 25 1 506 0.66
n25 1 3 25 650 6 79 84 0 0 1 9 1 528 0.75
n25 1 4 25 650 6 87 93 0 2 2 29 0 498 1.00
n25 1 5 25 650 6 84 89 0 1 2 14 0 516 0.78
n25 1 6 25 650 6 89 92 0 0 1 12 1 516 0.66
n25 1 7 25 650 6 88 92 2 0 2 23 0 506 0.97
n25 1 8 25 650 4 75 78 1 2 2 8 0 539 1.09
n25 1 9 25 650 6 74 80 2 0 2 23 0 518 0.64
n25 1 10 25 650 6 103 108 1 0 2 33 0 476 0.63
n25 2 1 25 650 6 81 86 0 0 1 23 0 509 0.91
n25 2 2 25 650 7 92 99 0 1 2 29 2 486 1.08
n25 2 3 25 650 7 89 96 2 0 2 21 1 501 0.95
n25 2 4 25 650 7 84 89 2 0 2 22 0 508 1.08
n25 2 5 25 650 5 98 101 1 0 2 19 0 498 0.74
n25 2 6 25 650 6 85 90 1 1 2 19 0 512 0.70
n25 2 7 25 650 6 84 89 1 0 2 22 0 509 1.10
n25 2 8 25 650 8 100 106 1 1 2 36 0 476 1.06
n25 2 9 25 650 4 101 105 0 0 1 32 0 482 0.69
n25 2 10 25 650 8 88 94 1 0 2 25 0 500 1.20
n25 3 1 25 650 2 84 86 0 0 1 8 2 529 0.69
n25 3 2 25 650 6 81 85 0 0 1 13 0 523 1.80
n25 3 3 25 650 5 90 95 1 0 2 26 0 497 0.67
n25 3 4 25 650 3 87 90 1 1 2 16 0 514 0.63
n25 3 5 25 650 2 88 90 0 0 1 15 0 516 0.66
n25 3 6 25 650 3 86 89 1 0 2 21 0 510 0.86
n25 3 7 25 650 4 94 97 0 2 2 20 0 506 0.78
n25 3 8 25 650 6 81 84 0 1 2 12 0 526 1.16
n25 3 9 25 650 4 100 103 0 2 2 29 0 486 1.00
n25 3 10 25 650 3 85 88 0 0 1 8 0 528 1.00
n25 4 1 25 650 0 89 89 0 0 1 9 0 523 0.66
n25 4 2 25 650 0 84 84 0 0 1 6 2 533 1.28
n25 4 3 25 650 0 78 78 0 0 1 4 1 540 1.05
n25 4 4 25 650 0 89 89 0 0 1 0 0 538 0.72
n25 4 5 25 650 0 80 80 0 0 1 6 0 541 0.80
n25 4 6 25 650 0 77 77 0 0 1 4 0 542 0.69
n25 4 7 25 650 0 80 80 0 0 1 6 2 536 0.69
n25 4 8 25 650 0 88 88 0 0 1 5 0 531 0.73
n25 4 9 25 650 0 82 82 0 0 1 3 0 538 0.88
n25 4 10 25 650 0 86 86 0 0 1 12 0 523 1.00
n25 5 1 25 650 3 85 87 1 1 2 11 0 524 1.16
n25 5 2 25 650 4 102 106 0 0 1 27 0 487 1.05
n25 5 3 25 650 2 82 84 1 0 2 15 0 525 1.11
n25 5 4 25 650 3 90 93 1 1 2 26 0 501 0.98
n25 5 5 25 650 2 103 104 1 0 2 20 3 493 0.77
n25 5 6 25 650 4 105 107 1 0 2 17 0 497 0.63
n25 5 7 25 650 2 101 103 1 0 2 17 0 503 0.70
n25 5 8 25 650 2 90 92 1 0 2 13 0 515 1.09
n25 5 9 25 650 5 81 84 2 0 2 19 0 520 0.73
n25 5 10 25 650 4 87 91 1 0 2 26 0 504 0.83
n25 6 1 25 650 11 102 110 1 3 2 37 0 470 1.16
n25 6 2 25 650 8 83 90 1 1 2 20 0 511 0.88
n25 6 3 25 650 6 85 91 2 1 2 25 1 501 0.64
n25 6 4 25 650 8 88 94 1 1 2 32 0 492 0.97
n25 6 5 25 650 10 85 94 2 0 2 24 0 500 1.24
n25 6 6 25 650 10 88 96 2 1 2 30 0 495 1.19
n25 6 7 25 650 9 95 103 2 1 2 39 0 476 1.09
n25 6 8 25 650 11 101 111 3 2 2 53 0 450 1.12
n25 6 9 25 650 11 89 97 2 2 2 24 0 497 0.83
n25 6 10 25 650 12 85 95 3 2 2 34 1 488 0.66
Continued on next page
333
Table G.2 – continued from previous pageClass # n m |P | |PTW | |PALL| a∗ b∗ Iter E1 E3 |A| Time (s)
n25 7 1 25 650 12 105 115 4 2 2 50 0 450 0.95
n25 7 2 25 650 12 91 102 6 1 2 43 0 471 0.75
n25 7 3 25 650 12 93 102 3 1 2 37 2 477 1.13
n25 7 4 25 650 12 75 86 4 3 2 36 3 491 0.72
n25 7 5 25 650 12 95 105 1 2 2 33 0 477 0.63
n25 7 6 25 650 12 88 100 3 1 2 36 1 478 0.77
n25 7 7 25 650 12 100 111 2 5 2 50 0 453 1.13
n25 7 8 25 650 12 83 95 5 1 2 38 1 479 1.05
n25 7 9 25 650 12 105 117 1 1 2 56 0 441 1.09
n25 7 10 25 650 12 94 104 3 3 2 44 1 467 0.77
n25 8 1 25 650 6 141 147 1 1 2 58 1 409 1.06
n25 8 2 25 650 4 138 141 2 0 2 54 0 419 0.61
n25 8 3 25 650 8 129 133 0 1 2 37 1 446 0.61
n25 8 4 25 650 4 135 138 2 0 2 45 1 433 0.66
n25 8 5 25 650 8 135 140 1 0 2 49 0 426 1.12
n25 8 6 25 650 7 133 139 1 0 2 57 1 419 0.95
n25 8 7 25 650 7 131 138 1 1 2 51 0 425 0.67
n25 8 8 25 650 7 142 148 3 0 2 66 4 396 0.80
n25 8 9 25 650 8 131 136 1 0 2 43 1 436 0.77
n25 8 10 25 650 6 142 147 2 0 2 61 0 406 0.61
n25 9 1 25 650 9 70 77 1 1 2 22 1 522 0.75
n25 9 2 25 650 5 62 67 2 1 2 16 0 542 1.25
n25 9 3 25 650 8 46 53 1 0 2 18 0 549 1.25
n25 9 4 25 650 7 60 65 1 0 2 14 0 545 0.97
n25 9 5 25 650 8 37 43 2 2 2 9 0 575 1.70
n25 9 6 25 650 6 52 58 4 1 2 16 1 547 0.97
n25 9 7 25 650 10 36 44 1 2 2 3 0 578 0.95
n25 9 8 25 650 8 47 55 1 0 2 6 1 562 1.08
n25 9 9 25 650 4 42 45 0 1 2 1 0 582 1.08
n25 9 10 25 650 6 29 35 0 2 2 5 0 583 0.84
334 Preprocessing results tables
Class # n m |P | |PTW | |PALL| a∗ b∗ Iter E1 E3 |A| Time (s)
n50 1 1 50 2550 8 689 693 1 0 2 341 2 1438 10.33
n50 1 2 50 2550 4 698 700 0 0 1 326 17 1430 9.97
n50 1 3 50 2550 9 686 693 0 0 1 361 12 1407 9.55
n50 1 4 50 2550 6 714 717 0 0 1 341 14 1398 9.83
n50 1 5 50 2550 5 670 673 0 0 1 301 4 1496 10.30
n50 1 6 50 2550 5 705 707 1 0 2 371 0 1396 10.73
n50 1 7 50 2550 9 682 688 1 0 2 350 13 1425 11.10
n50 1 8 50 2550 4 693 697 1 0 2 363 2 1407 10.23
n50 1 9 50 2550 2 675 677 1 1 2 317 15 1464 10.16
n50 1 10 50 2550 8 694 699 0 1 2 395 7 1372 10.11
n50 2 1 50 2550 14 697 706 1 0 2 415 0 1350 10.30
n50 2 2 50 2550 12 686 692 1 3 2 361 5 1414 10.45
n50 2 3 50 2550 13 710 720 0 0 1 410 9 1337 9.33
n50 2 4 50 2550 14 704 709 1 1 2 421 6 1336 9.64
n50 2 5 50 2550 14 689 695 1 1 2 371 6 1399 9.98
n50 2 6 50 2550 17 709 720 1 1 2 416 2 1332 9.97
n50 2 7 50 2550 17 690 700 1 2 2 404 5 1362 9.84
n50 2 8 50 2550 15 710 717 1 3 2 434 1 1320 10.20
n50 2 9 50 2550 11 679 686 0 0 1 360 2 1424 10.78
n50 2 10 50 2550 13 692 698 0 1 2 368 15 1390 10.85
n50 3 1 50 2550 16 725 736 3 1 2 454 12 1268 9.17
n50 3 2 50 2550 18 686 695 2 1 2 373 4 1400 10.09
n50 3 3 50 2550 15 688 699 2 1 2 390 6 1375 10.16
n50 3 4 50 2550 20 688 699 4 1 2 418 4 1349 10.34
n50 3 5 50 2550 18 707 717 1 1 2 411 12 1328 9.61
n50 3 6 50 2550 18 681 689 1 0 2 356 12 1413 10.30
n50 3 7 50 2550 20 705 716 1 4 2 440 7 1306 9.20
n50 3 8 50 2550 19 688 697 2 1 2 399 4 1370 9.64
n50 3 9 50 2550 20 702 714 0 1 2 420 2 1338 8.86
n50 3 10 50 2550 18 709 721 3 1 2 427 6 1312 9.11
n50 4 1 50 2550 4 524 526 0 0 1 172 10 1767 11.23
n50 4 2 50 2550 8 528 534 1 0 2 250 0 1697 10.61
n50 4 3 50 2550 8 606 611 0 1 2 318 1 1547 11.19
n50 4 4 50 2550 6 543 546 0 0 1 202 5 1725 11.09
n50 4 5 50 2550 4 498 501 1 0 2 196 3 1782 11.94
n50 4 6 50 2550 5 536 540 1 0 2 247 0 1691 10.99
n50 4 7 50 2550 6 482 486 1 0 2 171 2 1826 11.27
n50 4 8 50 2550 8 562 568 4 1 2 273 1 1633 10.66
n50 4 9 50 2550 9 490 496 0 0 1 173 2 1812 11.20
n50 4 10 50 2550 9 506 511 0 1 2 210 4 1759 10.86
n50 5 1 50 2550 17 498 511 0 2 2 254 0 1711 11.08
n50 5 2 50 2550 13 496 507 1 1 2 237 2 1731 11.36
n50 5 3 50 2550 11 510 520 1 2 2 233 4 1719 10.75
n50 5 4 50 2550 11 547 553 1 2 2 231 4 1689 10.73
n50 5 5 50 2550 14 560 571 1 2 2 309 0 1595 10.47
n50 5 6 50 2550 12 530 538 1 3 2 238 1 1698 10.89
n50 5 7 50 2550 14 561 571 4 1 2 298 2 1602 10.25
n50 5 8 50 2550 14 543 551 4 2 2 277 0 1652 10.86
n50 5 9 50 2550 12 502 510 1 1 2 206 2 1760 10.66
n50 5 10 50 2550 16 540 551 2 1 2 260 4 1664 10.94
n50 6 1 50 2550 18 556 568 3 1 2 314 0 1594 10.52
n50 6 2 50 2550 18 544 555 3 0 2 265 4 1655 10.70
n50 6 3 50 2550 19 538 550 6 2 2 292 1 1632 10.77
n50 6 4 50 2550 16 520 533 2 0 2 274 0 1670 11.53
n50 6 5 50 2550 17 542 555 2 3 2 264 6 1646 10.59
n50 6 6 50 2550 14 507 519 1 2 2 264 3 1694 10.69
n50 6 7 50 2550 16 519 530 2 0 2 248 0 1700 10.56
n50 6 8 50 2550 17 510 523 1 2 2 228 2 1722 10.64
n50 6 9 50 2550 17 524 537 3 1 2 268 2 1669 10.91
n50 6 10 50 2550 18 567 581 2 2 2 291 4 1601 10.80
Table G.3: Preprocessing results for Classes 10–15 (n50).
335
Class # n m |P | |PTW | |PALL| a∗ b∗ Iter E1 E3 |A| Time (s)
n100 1 1 100 10100 17 3796 3807 1 1 2 2938 17 3162 136.89
n100 1 2 100 10100 20 3795 3799 0 0 1 2863 20 3245 139.53
n100 1 3 100 10100 18 3831 3838 1 3 2 2986 18 3081 137.59
n100 1 4 100 10100 16 3785 3795 1 2 2 2884 30 3212 138.44
n100 1 5 100 10100 17 3783 3788 1 0 2 2865 22 3245 138.11
n100 1 6 100 10100 20 3786 3793 0 0 1 2914 7 3210 135.64
n100 1 7 100 10100 16 3777 3781 0 1 2 2847 29 3271 141.70
n100 1 8 100 10100 12 3843 3850 0 0 1 2970 21 3082 134.20
n100 1 9 100 10100 20 3800 3807 1 1 2 2881 17 3219 138.19
n100 1 10 100 10100 11 3800 3807 1 0 2 2932 7 3176 137.22
n100 2 1 100 10100 26 3767 3781 2 1 2 2968 12 3160 142.87
n100 2 2 100 10100 24 3793 3805 3 2 2 2966 18 3133 138.11
n100 2 3 100 10100 26 3787 3799 1 2 2 2942 19 3164 139.61
n100 2 4 100 10100 29 3827 3842 2 1 2 3045 4 3029 134.94
n100 2 5 100 10100 24 3788 3797 2 1 2 2907 10 3211 138.94
n100 2 6 100 10100 24 3763 3777 2 1 2 2932 32 3182 139.92
n100 2 7 100 10100 29 3787 3798 0 0 1 2908 27 3191 138.39
n100 2 8 100 10100 30 3779 3794 2 2 2 2963 6 3157 140.14
n100 2 9 100 10100 22 3805 3814 0 1 2 2946 21 3141 139.77
n100 2 10 100 10100 23 3774 3785 3 2 2 2922 11 3202 140.13
n100 3 1 100 10100 38 3764 3779 0 3 2 2951 22 3174 139.31
n100 3 2 100 10100 31 3781 3792 2 3 2 2925 24 3180 139.06
n100 3 3 100 10100 40 3795 3811 4 3 2 3034 11 3068 138.61
n100 3 4 100 10100 38 3793 3809 0 1 2 2956 16 3140 139.80
n100 3 5 100 10100 40 3802 3821 2 0 2 3022 12 3065 136.77
n100 3 6 100 10100 31 3796 3810 4 1 2 2953 22 3137 138.30
n100 3 7 100 10100 42 3819 3833 5 1 2 3009 18 3064 135.70
n100 3 8 100 10100 39 3760 3774 4 1 2 2837 18 3291 139.94
n100 3 9 100 10100 40 3853 3869 1 1 2 3086 15 2948 135.19
n100 3 10 100 10100 35 3774 3792 2 1 2 3008 16 3105 136.53
n100 4 1 100 10100 15 3369 3377 1 2 2 2440 9 4101 162.48
n100 4 2 100 10100 8 3423 3427 1 0 2 2485 4 4012 159.13
n100 4 3 100 10100 8 3329 3331 1 0 2 2319 7 4273 163.59
n100 4 4 100 10100 11 3370 3374 1 2 2 2419 19 4119 161.41
n100 4 5 100 10100 16 3474 3481 1 1 2 2483 42 3924 158.05
n100 4 6 100 10100 17 3393 3400 3 1 2 2402 17 4110 175.83
n100 4 7 100 10100 17 3316 3323 1 0 2 2297 10 4305 163.97
n100 4 8 100 10100 16 3383 3389 0 0 1 2464 24 4054 166.44
n100 4 9 100 10100 12 3375 3379 0 0 1 2361 14 4184 169.47
n100 4 10 100 10100 9 3373 3377 0 2 2 2417 16 4117 169.20
n100 5 1 100 10100 20 3421 3427 2 1 2 2436 23 4048 158.91
n100 5 2 100 10100 24 3422 3434 1 1 2 2524 20 3950 158.36
n100 5 3 100 10100 28 3378 3391 1 0 2 2449 7 4083 162.17
n100 5 4 100 10100 24 3419 3433 2 2 2 2548 15 3933 156.91
n100 5 5 100 10100 33 3375 3393 3 0 2 2532 10 3995 157.30
n100 5 6 100 10100 27 3385 3396 1 1 2 2479 5 4048 159.19
n100 5 7 100 10100 23 3378 3390 0 3 2 2555 12 3973 156.19
n100 5 8 100 10100 21 3429 3440 1 4 2 2587 14 3889 154.84
n100 5 9 100 10100 23 3353 3363 1 0 2 2427 8 4133 160.33
n100 5 10 100 10100 29 3457 3478 1 3 2 2700 6 3747 149.95
n100 6 1 100 10100 36 3405 3420 0 3 2 2516 8 3985 163.72
n100 6 2 100 10100 39 3446 3466 4 4 2 2617 24 3818 153.19
n100 6 3 100 10100 37 3379 3396 1 3 2 2507 2 4023 158.20
n100 6 4 100 10100 34 3433 3450 3 2 2 2610 10 3860 153.86
n100 6 5 100 10100 38 3370 3393 3 3 2 2502 20 4008 162.74
n100 6 6 100 10100 35 3368 3383 0 2 2 2463 8 4071 158.83
n100 6 7 100 10100 38 3353 3370 3 2 2 2500 4 4056 198.75
n100 6 8 100 10100 39 3421 3443 5 2 2 2518 6 3954 158.85
n100 6 9 100 10100 39 3368 3389 2 2 2 2498 7 4033 158.50
n100 6 10 100 10100 36 3404 3425 3 2 2 2608 9 3885 157.30
Table G.4: Preprocessing results for Classes 16–21 (n100).
336 Preprocessing results tables
Class # n m |P | |PTW | |PALL| a∗ b∗ Iter E1 E3 |A| Time (s)
BKA 1 17 306 107 0 107 11 14 2 44 0 148 0.09
BKA 2 17 306 107 0 107 10 14 2 46 0 146 0.09
BKA 3 17 306 77 0 77 9 12 2 12 0 214 0.17
BKA 4 17 306 77 0 77 9 12 2 12 0 214 0.20
BKA 5 17 306 77 0 77 9 12 2 12 0 214 0.19
BKA 6 17 306 119 0 119 10 16 2 63 0 114 0.09
BKA 7 17 306 102 0 102 8 14 2 37 0 160 0.09
BKA 8 17 306 102 0 102 11 14 2 37 0 160 0.11
BKA 9 17 306 77 0 77 9 12 2 12 0 214 0.14
BKA 10 17 306 107 0 107 2 14 2 44 0 148 0.11
BKA 11 17 306 82 0 82 10 23 2 17 0 202 0.23
BKA 12 17 306 82 0 82 5 26 2 17 0 202 0.12
BKA 13 17 306 91 0 91 7 24 2 23 0 185 0.16
BKA 14 17 306 60 0 60 9 20 2 2 0 242 0.11
BKA 15 17 306 60 0 60 9 20 2 2 0 242 0.14
BKA 16 17 306 60 0 60 7 17 2 2 0 242 0.20
BKA 17 17 306 87 0 87 11 21 2 21 0 191 0.16
BKA 18 17 306 60 0 60 5 20 2 2 0 242 0.25
BKA 19 17 306 67 0 67 10 12 2 4 0 231 0.13
BKA 20 17 306 92 0 92 6 27 2 24 0 183 0.27
BKA 21 17 306 86 0 86 10 22 2 19 0 196 0.39
BKA 22 17 306 111 0 111 12 29 2 48 0 138 0.23
BKA 23 17 306 111 0 111 12 28 2 48 0 138 0.14
BKA 24 17 306 86 0 86 6 26 2 19 0 196 0.12
BKA 25 17 306 86 0 86 10 14 2 19 0 196 0.11
BKA 26 17 306 77 0 77 9 21 2 12 0 214 0.28
BKA 27 17 306 77 0 77 6 24 2 12 0 214 0.11
BKA 28 17 306 77 0 77 9 18 2 12 0 214 0.17
BKA 29 17 306 91 0 91 10 13 2 25 0 185 0.19
BKA 30 17 306 81 0 81 10 12 2 17 0 204 0.22
BKA 31 17 306 84 0 84 6 27 2 18 0 199 0.13
BKA 32 17 306 57 0 57 5 13 2 3 0 246 0.22
BKA 33 17 306 57 0 57 4 16 2 3 0 246 0.13
BKA 34 17 306 57 0 57 7 11 2 3 0 246 0.13
BKA 35 17 306 65 0 65 7 13 2 5 0 234 0.13
Table G.5: Preprocessing results for BKA instances.
Notation Description
Class Problem class
# Problem instance number
n Number of jobs
TTW Time spent constructing PTW
TALL Time spent constructing PALL
T⇀R Time spent performing rank ordering
T a∗ Time spent updating release dates
T b∗ Time spent updating due dates
TE1 Time spent eliminating arcs due to a precedence chain
TE2 Time spent eliminating arcs due to concatenation where |Q| = 1
TE3 Time spent eliminating arcs due to concatenation where |Q| = 2
TEST Time spent performing EST2, EST3 and EST4 calculations
Total Total time spent preprocessing the problem instance
Table G.6: Notation for preprocessing times (all times are in seconds).
337
Table G.7: Preprocessing times (seconds) for Classes 1–9 (n25).
Class # n TTW TALL T⇀R Ta∗ T b∗ TE1 TE2 TE3 TEST Total
n25 1 1 25 0.00 0.00 0.00 0.00 0.00 0.16 0.02 0.48 0.19 0.84
n25 1 2 25 0.00 0.00 0.00 0.00 0.00 0.02 0.00 0.45 0.19 0.66
n25 1 3 25 0.00 0.00 0.00 0.00 0.00 0.02 0.02 0.52 0.20 0.75
n25 1 4 25 0.00 0.02 0.00 0.00 0.00 0.03 0.22 0.53 0.20 1.00
n25 1 5 25 0.00 0.00 0.11 0.00 0.00 0.00 0.00 0.48 0.19 0.78
n25 1 6 25 0.00 0.00 0.00 0.00 0.02 0.00 0.00 0.45 0.19 0.66
n25 1 7 25 0.00 0.00 0.19 0.08 0.00 0.02 0.00 0.50 0.19 0.97
n25 1 8 25 0.00 0.00 0.00 0.00 0.00 0.02 0.05 0.83 0.20 1.09
n25 1 9 25 0.00 0.00 0.00 0.00 0.00 0.00 0.02 0.44 0.19 0.64
n25 1 10 25 0.00 0.00 0.00 0.00 0.00 0.02 0.00 0.42 0.19 0.63
n25 2 1 25 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.70 0.20 0.91
n25 2 2 25 0.00 0.00 0.11 0.30 0.00 0.00 0.02 0.45 0.20 1.08
n25 2 3 25 0.00 0.00 0.00 0.00 0.00 0.05 0.27 0.45 0.19 0.95
n25 2 4 25 0.00 0.00 0.00 0.00 0.00 0.33 0.02 0.53 0.20 1.08
n25 2 5 25 0.00 0.02 0.06 0.00 0.00 0.02 0.00 0.45 0.19 0.74
n25 2 6 25 0.00 0.00 0.00 0.00 0.00 0.00 0.02 0.50 0.19 0.70
n25 2 7 25 0.00 0.00 0.00 0.08 0.00 0.05 0.34 0.44 0.19 1.10
n25 2 8 25 0.00 0.00 0.00 0.00 0.00 0.05 0.28 0.53 0.20 1.06
n25 2 9 25 0.00 0.00 0.00 0.00 0.00 0.02 0.00 0.47 0.20 0.69
n25 2 10 25 0.00 0.00 0.30 0.09 0.00 0.00 0.14 0.48 0.19 1.20
n25 3 1 25 0.00 0.00 0.00 0.00 0.00 0.02 0.00 0.47 0.20 0.69
n25 3 2 25 0.00 0.00 0.56 0.11 0.00 0.03 0.24 0.66 0.20 1.80
n25 3 3 25 0.00 0.00 0.00 0.00 0.00 0.00 0.02 0.45 0.20 0.67
n25 3 4 25 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.44 0.19 0.63
n25 3 5 25 0.00 0.00 0.02 0.00 0.00 0.00 0.02 0.44 0.19 0.66
n25 3 6 25 0.00 0.00 0.00 0.00 0.00 0.02 0.00 0.64 0.20 0.86
n25 3 7 25 0.00 0.00 0.00 0.00 0.00 0.02 0.00 0.58 0.19 0.78
n25 3 8 25 0.00 0.00 0.00 0.00 0.00 0.17 0.03 0.77 0.19 1.16
n25 3 9 25 0.00 0.00 0.00 0.00 0.00 0.03 0.28 0.41 0.28 1.00
n25 3 10 25 0.00 0.00 0.00 0.00 0.00 0.28 0.05 0.47 0.20 1.00
n25 4 1 25 0.00 0.00 0.00 0.00 0.00 0.00 0.02 0.45 0.19 0.66
n25 4 2 25 0.00 0.00 0.00 0.00 0.00 0.33 0.05 0.70 0.20 1.28
n25 4 3 25 0.00 0.00 0.00 0.00 0.00 0.05 0.30 0.50 0.20 1.05
n25 4 4 25 0.00 0.00 0.00 0.00 0.00 0.00 0.02 0.52 0.19 0.72
n25 4 5 25 0.00 0.00 0.00 0.02 0.00 0.03 0.02 0.55 0.19 0.80
n25 4 6 25 0.00 0.00 0.00 0.00 0.00 0.02 0.00 0.47 0.20 0.69
n25 4 7 25 0.00 0.00 0.00 0.00 0.00 0.00 0.02 0.47 0.20 0.69
n25 4 8 25 0.00 0.00 0.00 0.00 0.00 0.00 0.02 0.52 0.20 0.73
n25 4 9 25 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.69 0.19 0.88
n25 4 10 25 0.00 0.00 0.00 0.00 0.00 0.00 0.09 0.70 0.20 1.00
n25 5 1 25 0.00 0.00 0.00 0.00 0.00 0.05 0.38 0.53 0.20 1.16
n25 5 2 25 0.00 0.00 0.00 0.00 0.00 0.22 0.03 0.59 0.20 1.05
n25 5 3 25 0.00 0.00 0.00 0.00 0.00 0.03 0.19 0.70 0.19 1.11
n25 5 4 25 0.00 0.00 0.00 0.00 0.00 0.28 0.05 0.45 0.20 0.98
n25 5 5 25 0.00 0.00 0.11 0.02 0.00 0.02 0.02 0.42 0.19 0.77
n25 5 6 25 0.00 0.00 0.00 0.00 0.00 0.00 0.02 0.41 0.20 0.63
n25 5 7 25 0.02 0.00 0.00 0.00 0.00 0.03 0.02 0.44 0.20 0.70
n25 5 8 25 0.00 0.00 0.00 0.00 0.00 0.00 0.06 0.83 0.20 1.09
n25 5 9 25 0.00 0.02 0.06 0.00 0.00 0.02 0.02 0.42 0.20 0.73
n25 5 10 25 0.00 0.02 0.17 0.00 0.00 0.00 0.02 0.42 0.20 0.83
n25 6 1 25 0.00 0.00 0.00 0.00 0.00 0.31 0.05 0.58 0.22 1.16
n25 6 2 25 0.00 0.00 0.00 0.00 0.00 0.00 0.02 0.66 0.20 0.88
n25 6 3 25 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.45 0.19 0.64
n25 6 4 25 0.00 0.02 0.00 0.00 0.00 0.03 0.28 0.44 0.20 0.97
n25 6 5 25 0.00 0.00 0.00 0.00 0.00 0.23 0.03 0.78 0.19 1.24
n25 6 6 25 0.00 0.00 0.00 0.00 0.00 0.05 0.33 0.61 0.20 1.19
n25 6 7 25 0.00 0.00 0.00 0.00 0.00 0.03 0.02 0.86 0.19 1.09
n25 6 8 25 0.00 0.00 0.00 0.00 0.00 0.03 0.20 0.69 0.20 1.12
n25 6 9 25 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.64 0.19 0.83
n25 6 10 25 0.00 0.00 0.00 0.00 0.00 0.00 0.02 0.44 0.20 0.66
Continued on next page
338 Preprocessing results tables
Table G.7 – continued from previous pageClass # n TTW TALL T
⇀R Ta∗ T b∗ TE1 TE2 TE3 TEST Total
n25 7 1 25 0.00 0.00 0.00 0.00 0.00 0.25 0.05 0.45 0.20 0.95
n25 7 2 25 0.00 0.00 0.00 0.00 0.02 0.03 0.00 0.50 0.20 0.75
n25 7 3 25 0.00 0.02 0.00 0.00 0.00 0.05 0.20 0.66 0.20 1.13
n25 7 4 25 0.00 0.00 0.00 0.00 0.00 0.02 0.00 0.52 0.19 0.72
n25 7 5 25 0.00 0.00 0.00 0.00 0.00 0.00 0.02 0.42 0.19 0.63
n25 7 6 25 0.00 0.00 0.00 0.00 0.00 0.00 0.02 0.55 0.20 0.77
n25 7 7 25 0.00 0.00 0.23 0.22 0.00 0.03 0.02 0.42 0.20 1.13
n25 7 8 25 0.00 0.02 0.00 0.00 0.00 0.00 0.08 0.75 0.20 1.05
n25 7 9 25 0.00 0.00 0.38 0.13 0.00 0.00 0.02 0.38 0.20 1.09
n25 7 10 25 0.00 0.00 0.00 0.00 0.00 0.03 0.02 0.52 0.20 0.77
n25 8 1 25 0.00 0.00 0.00 0.00 0.00 0.28 0.05 0.53 0.20 1.06
n25 8 2 25 0.00 0.00 0.00 0.00 0.00 0.00 0.02 0.39 0.20 0.61
n25 8 3 25 0.00 0.00 0.00 0.00 0.00 0.02 0.00 0.41 0.19 0.61
n25 8 4 25 0.00 0.00 0.00 0.00 0.00 0.02 0.02 0.44 0.19 0.66
n25 8 5 25 0.00 0.00 0.11 0.00 0.00 0.00 0.36 0.45 0.20 1.12
n25 8 6 25 0.00 0.02 0.00 0.00 0.00 0.00 0.02 0.66 0.27 0.95
n25 8 7 25 0.00 0.02 0.00 0.00 0.00 0.02 0.00 0.44 0.20 0.67
n25 8 8 25 0.00 0.00 0.00 0.00 0.00 0.03 0.23 0.34 0.19 0.80
n25 8 9 25 0.00 0.00 0.09 0.08 0.00 0.02 0.00 0.39 0.19 0.77
n25 8 10 25 0.00 0.00 0.00 0.00 0.00 0.03 0.00 0.39 0.19 0.61
n25 9 1 25 0.00 0.00 0.00 0.00 0.00 0.05 0.00 0.50 0.20 0.75
n25 9 2 25 0.00 0.00 0.00 0.00 0.00 0.05 0.34 0.66 0.20 1.25
n25 9 3 25 0.00 0.00 0.00 0.00 0.00 0.31 0.05 0.69 0.20 1.25
n25 9 4 25 0.00 0.00 0.00 0.00 0.00 0.00 0.02 0.77 0.19 0.97
n25 9 5 25 0.00 0.00 0.50 0.19 0.14 0.00 0.02 0.64 0.22 1.70
n25 9 6 25 0.00 0.00 0.00 0.00 0.00 0.02 0.08 0.67 0.20 0.97
n25 9 7 25 0.00 0.02 0.00 0.00 0.00 0.00 0.02 0.72 0.20 0.95
n25 9 8 25 0.00 0.00 0.00 0.00 0.00 0.05 0.25 0.53 0.25 1.08
n25 9 9 25 0.00 0.00 0.00 0.00 0.00 0.02 0.23 0.63 0.20 1.08
n25 9 10 25 0.00 0.00 0.00 0.00 0.00 0.17 0.02 0.47 0.19 0.84
339
Class # n TTW TALL T⇀R Ta∗ T b∗ TE1 TE2 TE3 TEST Total
n50 1 1 50 0.02 0.02 0.00 0.00 0.02 0.03 0.38 6.58 3.30 10.33
n50 1 2 50 0.00 0.02 0.00 0.00 0.00 0.06 0.39 6.09 3.41 9.97
n50 1 3 50 0.00 0.02 0.00 0.00 0.00 0.06 0.06 6.11 3.30 9.55
n50 1 4 50 0.00 0.00 0.00 0.00 0.00 0.38 0.14 6.00 3.31 9.83
n50 1 5 50 0.00 0.00 0.02 0.00 0.00 0.42 0.08 6.44 3.34 10.30
n50 1 6 50 0.00 0.05 0.44 0.47 0.00 0.33 0.13 5.92 3.41 10.73
n50 1 7 50 0.00 0.02 0.44 0.16 0.33 0.39 0.13 6.22 3.42 11.10
n50 1 8 50 0.00 0.03 0.16 0.00 0.00 0.41 0.16 6.20 3.28 10.23
n50 1 9 50 0.00 0.03 0.00 0.00 0.00 0.22 0.06 6.50 3.34 10.16
n50 1 10 50 0.00 0.03 0.00 0.00 0.00 0.30 0.09 6.36 3.33 10.11
n50 2 1 50 0.02 0.03 0.38 0.00 0.00 0.20 0.09 6.19 3.39 10.30
n50 2 2 50 0.00 0.03 0.00 0.00 0.02 0.05 0.39 6.58 3.39 10.45
n50 2 3 50 0.00 0.02 0.00 0.00 0.00 0.28 0.08 5.66 3.30 9.33
n50 2 4 50 0.00 0.05 0.33 0.00 0.00 0.06 0.06 5.75 3.39 9.64
n50 2 5 50 0.00 0.02 0.00 0.00 0.02 0.03 0.09 6.42 3.41 9.98
n50 2 6 50 0.00 0.03 0.28 0.00 0.00 0.34 0.13 5.86 3.33 9.97
n50 2 7 50 0.00 0.03 0.00 0.00 0.00 0.34 0.11 5.99 3.38 9.84
n50 2 8 50 0.02 0.03 0.00 0.00 0.00 0.34 0.06 6.33 3.42 10.20
n50 2 9 50 0.00 0.02 0.50 0.16 0.14 0.39 0.13 6.08 3.38 10.78
n50 2 10 50 0.00 0.02 0.42 0.02 0.00 0.42 0.08 6.48 3.41 10.85
n50 3 1 50 0.00 0.05 0.00 0.00 0.00 0.27 0.08 5.47 3.31 9.17
n50 3 2 50 0.00 0.03 0.14 0.00 0.02 0.42 0.14 5.97 3.38 10.09
n50 3 3 50 0.02 0.02 0.00 0.00 0.00 0.06 0.41 6.24 3.42 10.16
n50 3 4 50 0.00 0.02 0.44 0.00 0.16 0.50 0.08 5.86 3.30 10.34
n50 3 5 50 0.00 0.03 0.00 0.00 0.00 0.06 0.31 5.74 3.47 9.61
n50 3 6 50 0.00 0.03 0.00 0.00 0.00 0.22 0.06 6.61 3.38 10.30
n50 3 7 50 0.00 0.05 0.00 0.02 0.00 0.02 0.06 5.78 3.28 9.20
n50 3 8 50 0.00 0.05 0.00 0.00 0.00 0.41 0.06 5.86 3.27 9.64
n50 3 9 50 0.00 0.03 0.00 0.00 0.00 0.03 0.06 5.47 3.27 8.86
n50 3 10 50 0.00 0.02 0.00 0.02 0.00 0.03 0.06 5.64 3.34 9.11
n50 4 1 50 0.00 0.00 0.00 0.00 0.00 0.03 0.09 7.77 3.34 11.23
n50 4 2 50 0.00 0.02 0.00 0.02 0.00 0.06 0.08 7.20 3.23 10.61
n50 4 3 50 0.00 0.02 0.52 0.20 0.00 0.30 0.11 6.67 3.38 11.19
n50 4 4 50 0.00 0.02 0.00 0.00 0.00 0.38 0.14 7.19 3.38 11.09
n50 4 5 50 0.00 0.03 0.49 0.16 0.00 0.03 0.11 7.86 3.27 11.94
n50 4 6 50 0.00 0.02 0.00 0.00 0.00 0.03 0.16 7.44 3.34 10.99
n50 4 7 50 0.00 0.02 0.03 0.00 0.00 0.03 0.17 7.72 3.30 11.27
n50 4 8 50 0.00 0.00 0.00 0.00 0.02 0.02 0.14 7.13 3.36 10.66
n50 4 9 50 0.00 0.00 0.02 0.00 0.00 0.03 0.09 7.81 3.25 11.20
n50 4 10 50 0.00 0.02 0.00 0.02 0.00 0.03 0.08 7.34 3.38 10.86
n50 5 1 50 0.00 0.02 0.00 0.00 0.00 0.03 0.08 7.72 3.24 11.08
n50 5 2 50 0.00 0.02 0.00 0.00 0.00 0.42 0.08 7.48 3.36 11.36
n50 5 3 50 0.00 0.02 0.00 0.00 0.00 0.03 0.08 7.36 3.27 10.75
n50 5 4 50 0.00 0.02 0.00 0.00 0.02 0.05 0.08 7.20 3.38 10.73
n50 5 5 50 0.00 0.02 0.00 0.00 0.02 0.03 0.09 7.09 3.22 10.47
n50 5 6 50 0.00 0.03 0.00 0.00 0.00 0.03 0.08 7.25 3.50 10.89
n50 5 7 50 0.00 0.02 0.02 0.00 0.00 0.03 0.08 6.86 3.25 10.25
n50 5 8 50 0.00 0.02 0.00 0.00 0.00 0.03 0.11 7.31 3.39 10.86
n50 5 9 50 0.00 0.03 0.00 0.00 0.00 0.03 0.08 7.27 3.25 10.66
n50 5 10 50 0.00 0.03 0.00 0.00 0.00 0.03 0.08 7.47 3.33 10.94
n50 6 1 50 0.00 0.03 0.00 0.00 0.00 0.03 0.08 7.16 3.22 10.52
n50 6 2 50 0.00 0.03 0.00 0.00 0.00 0.03 0.08 7.24 3.33 10.70
n50 6 3 50 0.00 0.08 0.09 0.00 0.00 0.03 0.08 7.25 3.24 10.77
n50 6 4 50 0.02 0.00 0.08 0.00 0.00 0.44 0.08 7.61 3.31 11.53
n50 6 5 50 0.00 0.02 0.00 0.00 0.00 0.03 0.08 7.23 3.23 10.59
n50 6 6 50 0.00 0.02 0.06 0.00 0.00 0.03 0.08 7.11 3.39 10.69
n50 6 7 50 0.02 0.00 0.00 0.00 0.00 0.03 0.08 7.09 3.34 10.56
n50 6 8 50 0.00 0.02 0.00 0.02 0.00 0.03 0.08 7.20 3.30 10.64
n50 6 9 50 0.00 0.02 0.06 0.00 0.00 0.34 0.11 7.06 3.31 10.91
n50 6 10 50 0.02 0.02 0.00 0.00 0.00 0.03 0.48 7.03 3.22 10.80
Table G.8: Preprocessing times (seconds) for Classes 10–15 (n50).
340 Preprocessing results tables
Class # n TTW TALL T⇀R Ta∗ T b∗ TE1 TE2 TE3 TEST Total
n100 1 1 100 0.02 0.30 0.20 0.13 0.02 0.92 0.41 80.11 54.80 136.89
n100 1 2 100 0.02 0.11 0.89 0.36 0.34 0.25 0.97 81.53 55.06 139.53
n100 1 3 100 0.02 0.44 0.63 0.34 0.33 1.19 0.47 79.80 54.39 137.59
n100 1 4 100 0.00 0.44 1.23 0.39 0.02 0.31 0.42 81.05 54.58 138.44
n100 1 5 100 0.02 0.39 0.44 0.00 0.02 0.28 0.44 82.38 54.16 138.11
n100 1 6 100 0.02 0.20 0.03 0.00 0.00 0.22 0.59 80.28 54.30 135.64
n100 1 7 100 0.02 0.31 0.50 0.02 0.02 0.22 0.42 86.02 54.19 141.70
n100 1 8 100 0.00 0.22 0.02 0.00 0.02 0.22 0.66 77.94 55.14 134.20
n100 1 9 100 0.02 0.33 0.45 0.00 0.00 0.36 0.41 82.31 54.31 138.19
n100 1 10 100 0.02 0.34 0.27 0.38 0.00 0.27 0.59 80.03 55.33 137.22
n100 2 1 100 0.02 0.47 0.42 2.16 0.50 0.83 0.41 82.86 55.22 142.87
n100 2 2 100 0.00 0.53 0.69 0.63 0.41 1.05 0.50 79.88 54.44 138.11
n100 2 3 100 0.03 0.31 1.27 1.83 0.00 0.81 0.53 80.08 54.75 139.61
n100 2 4 100 0.02 0.33 0.77 0.30 0.03 1.03 0.47 77.66 54.34 134.94
n100 2 5 100 0.02 0.39 0.69 0.20 0.00 0.84 0.50 81.83 54.47 138.94
n100 2 6 100 0.02 0.52 0.50 0.80 0.39 0.34 0.53 82.34 54.49 139.92
n100 2 7 100 0.02 0.22 0.47 0.69 0.00 0.81 0.59 80.77 54.83 138.39
n100 2 8 100 0.00 0.33 1.03 0.63 0.00 1.09 0.48 82.14 54.44 140.14
n100 2 9 100 0.00 0.33 0.91 1.27 0.38 0.94 0.47 80.55 54.94 139.77
n100 2 10 100 0.02 0.53 1.11 0.38 0.02 1.11 0.52 82.11 54.34 140.13
n100 3 1 100 0.02 0.34 1.02 0.09 0.00 0.84 0.61 81.50 54.89 139.31
n100 3 2 100 0.02 0.55 0.92 0.67 0.50 1.09 0.52 80.06 54.74 139.06
n100 3 3 100 0.02 0.55 0.95 2.19 0.20 0.83 0.41 78.56 54.91 138.61
n100 3 4 100 0.02 0.31 1.20 0.39 0.11 1.08 0.52 81.58 54.59 139.80
n100 3 5 100 0.02 0.33 1.13 0.27 0.00 0.84 0.44 78.67 55.08 136.77
n100 3 6 100 0.02 0.34 0.67 0.00 0.36 1.08 0.49 80.97 54.38 138.30
n100 3 7 100 0.03 0.59 0.73 0.95 0.02 0.80 0.41 77.08 55.09 135.70
n100 3 8 100 0.02 0.33 0.75 0.77 0.41 1.08 0.50 81.83 54.27 139.94
n100 3 9 100 0.02 0.36 1.44 1.95 0.02 0.81 0.38 75.28 54.94 135.19
n100 3 10 100 0.00 0.44 0.70 0.80 0.70 0.33 0.48 78.33 54.75 136.53
n100 4 1 100 0.02 0.27 1.94 1.00 0.00 0.95 0.52 103.16 54.64 162.48
n100 4 2 100 0.02 0.27 0.66 0.28 0.28 1.31 0.53 101.34 54.44 159.13
n100 4 3 100 0.02 0.27 1.86 0.17 0.00 0.78 0.53 105.34 54.63 163.59
n100 4 4 100 0.03 0.38 0.86 0.59 0.45 1.11 0.50 103.16 54.33 161.41
n100 4 5 100 0.00 0.28 2.02 0.64 0.02 0.83 0.50 99.13 54.64 158.05
n100 4 6 100 0.02 0.36 1.17 0.81 0.11 0.33 0.56 114.97 57.50 175.83
n100 4 7 100 0.02 0.25 0.19 0.00 0.00 0.33 0.63 108.20 54.36 163.97
n100 4 8 100 0.02 0.17 0.09 0.00 0.00 0.23 0.74 107.17 58.02 166.44
n100 4 9 100 0.00 0.09 0.02 0.00 0.00 1.03 0.81 108.94 58.58 169.47
n100 4 10 100 0.00 0.27 1.36 1.19 1.63 0.25 0.53 107.14 56.84 169.20
n100 5 1 100 0.02 0.28 0.05 0.00 0.00 0.25 0.81 101.23 56.27 158.91
n100 5 2 100 0.00 0.38 0.31 0.02 0.00 0.50 0.58 101.00 55.58 158.36
n100 5 3 100 0.03 0.25 0.03 0.00 0.00 0.24 0.80 105.56 55.27 162.17
n100 5 4 100 0.03 0.36 0.17 0.00 0.02 0.30 0.66 100.39 54.98 156.91
n100 5 5 100 0.00 0.28 0.30 0.00 0.02 0.67 0.80 100.41 54.83 157.30
n100 5 6 100 0.02 0.36 0.47 0.03 0.00 0.50 0.80 100.02 57.00 159.19
n100 5 7 100 0.03 0.34 0.64 0.00 0.00 0.23 0.77 99.08 55.09 156.19
n100 5 8 100 0.02 0.48 0.36 0.02 0.00 0.23 0.86 97.69 55.19 154.84
n100 5 9 100 0.02 0.27 0.39 0.00 0.02 0.28 0.73 103.19 55.44 160.33
n100 5 10 100 0.00 0.38 0.41 0.00 0.02 0.22 0.48 93.25 55.20 149.95
n100 6 1 100 0.03 0.35 0.41 0.00 0.00 0.22 0.64 106.03 56.05 163.72
n100 6 2 100 0.00 0.47 0.56 0.00 0.00 0.22 0.72 96.02 55.20 153.19
n100 6 3 100 0.02 0.34 0.37 0.00 0.00 0.74 0.81 100.67 55.25 158.20
n100 6 4 100 0.02 0.36 0.45 0.00 0.00 0.33 0.61 96.98 55.11 153.86
n100 6 5 100 0.02 0.34 0.41 0.03 0.00 0.31 0.66 102.81 58.16 162.74
n100 6 6 100 0.00 0.30 0.27 0.02 0.02 0.28 0.64 101.98 55.33 158.83
n100 6 7 100 0.00 0.45 0.27 0.23 0.00 0.86 31.83 101.92 63.19 198.75
n100 6 8 100 0.00 0.38 0.48 0.11 0.05 1.13 0.55 101.69 54.47 158.85
n100 6 9 100 0.00 0.28 0.02 0.02 0.00 1.02 0.89 101.36 54.92 158.50
n100 6 10 100 0.02 0.37 0.02 0.19 0.00 0.97 0.55 99.58 55.61 157.30
Table G.9: Preprocessing times (seconds) for Classes 16–21 (n100).
341
Class # n TTW TALL T⇀R Ta∗ T b∗ TE1 TE2 TE3 TEST Total
BKA 1 17 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.05 0.05 0.09
BKA 2 17 0.00 0.00 0.00 0.00 0.00 0.02 0.00 0.05 0.03 0.09
BKA 3 17 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.13 0.05 0.17
BKA 4 17 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.16 0.05 0.20
BKA 5 17 0.00 0.00 0.00 0.00 0.00 0.00 0.08 0.06 0.05 0.19
BKA 6 17 0.00 0.00 0.02 0.00 0.00 0.00 0.00 0.03 0.05 0.09
BKA 7 17 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.05 0.05 0.09
BKA 8 17 0.00 0.00 0.00 0.00 0.00 0.00 0.02 0.05 0.05 0.11
BKA 9 17 0.00 0.00 0.00 0.00 0.00 0.02 0.02 0.06 0.05 0.14
BKA 10 17 0.00 0.02 0.00 0.00 0.00 0.02 0.00 0.03 0.05 0.11
BKA 11 17 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.20 0.03 0.23
BKA 12 17 0.00 0.00 0.02 0.00 0.00 0.00 0.00 0.06 0.05 0.12
BKA 13 17 0.00 0.00 0.00 0.00 0.02 0.00 0.00 0.09 0.05 0.16
BKA 14 17 0.00 0.00 0.00 0.00 0.00 0.02 0.00 0.06 0.03 0.11
BKA 15 17 0.00 0.00 0.00 0.00 0.02 0.00 0.00 0.08 0.05 0.14
BKA 16 17 0.00 0.00 0.00 0.00 0.00 0.00 0.02 0.14 0.05 0.20
BKA 17 17 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.11 0.05 0.16
BKA 18 17 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.20 0.05 0.25
BKA 19 17 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.08 0.05 0.13
BKA 20 17 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.22 0.05 0.27
BKA 21 17 0.00 0.00 0.22 0.06 0.00 0.00 0.00 0.06 0.05 0.39
BKA 22 17 0.00 0.00 0.02 0.00 0.00 0.00 0.00 0.17 0.05 0.23
BKA 23 17 0.00 0.00 0.05 0.00 0.00 0.02 0.00 0.03 0.05 0.14
BKA 24 17 0.00 0.00 0.00 0.00 0.00 0.02 0.00 0.06 0.05 0.12
BKA 25 17 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.06 0.05 0.11
BKA 26 17 0.00 0.00 0.00 0.00 0.00 0.02 0.00 0.22 0.05 0.28
BKA 27 17 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.06 0.05 0.11
BKA 28 17 0.00 0.00 0.05 0.02 0.00 0.02 0.00 0.06 0.03 0.17
BKA 29 17 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.14 0.05 0.19
BKA 30 17 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.17 0.05 0.22
BKA 31 17 0.00 0.00 0.02 0.00 0.00 0.00 0.00 0.06 0.05 0.13
BKA 32 17 0.00 0.00 0.06 0.00 0.02 0.00 0.00 0.08 0.06 0.22
BKA 33 17 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.08 0.05 0.13
BKA 34 17 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.08 0.05 0.13
BKA 35 17 0.00 0.00 0.00 0.00 0.00 0.02 0.00 0.06 0.05 0.13
Table G.10: Preprocessing times (seconds) for BKA instances.
342 Preprocessing results tables
Appendix H
LP relaxation results tables
For each of the four MIP methods listed in Table 4.5, the LP relaxation
was solved—with CPLEX presolve initially off, then turned on—for every
problem instance. Arranged by data group, the LP relaxation values are
given in Tables H.2–H.5, while the notation describing the column headings
is given in Table H.1. For comparison, the optimal value (if known) and the
LP relaxation of the Assignment Problem (AP) are also included.
The LP relaxation solve times—with presolve off and presolve on—are shown
in Tables H.7–H.10, while the notation describing the column headings is
given in Table H.6.
Summaries of the key results are presented throughout Section 4.6.3.
Notation Description
Class Problem class
# Problem instance number
OPT Optimal solution value, if known
AP LP relaxation value of the Assignment Problem
LP1 LP relaxation value of the MIP in Method 1 (MIP1 Ponly)
LP2 LP relaxation value of the MIP in Method 2 (MIP1 PrecAll)
LP3 LP relaxation value of the MIP in Method 3 (MIP2 Ponly)
LP4 LP relaxation value of the MIP in Method 4 (MIP2 PrecAll)
LP2-LP1 Difference in LP relaxation value of M2 and M1
LP4-LP3 Difference in LP relaxation value of M4 and M3
LP3-LP1 Difference in LP relaxation value of M3 and M1
LP4-LP2 Difference in LP relaxation value of M4 and M2
Table H.1: Notation for tables showing lower bounds from LP relaxations.
343
344 LP relaxation results tables
Class # OPT AP LP1 LP2 LP3 LP4 LP2-LP1 LP4-LP3 LP3-LP1 LP4-LP2
n25 1 1 201.31 148.20 150.13 150.18 156.33 156.46 0.04 0.14 6.19 6.29
n25 1 2 206.02 182.82 182.94 182.94 184.11 184.12 0.00 0.01 1.17 1.18
n25 1 3 163.62 150.27 150.59 150.59 151.38 151.38 0.00 0.00 0.79 0.79
n25 1 4 217.42 195.86 195.93 195.93 197.68 197.68 0.00 0.00 1.74 1.74
n25 1 5 224.15 188.74 190.58 190.59 194.68 194.86 0.00 0.18 4.10 4.27
n25 1 6 236.63 214.43 215.33 215.36 215.99 216.24 0.03 0.24 0.67 0.87
n25 1 7 153.65 122.03 123.72 123.72 129.87 129.87 0.00 0.00 6.15 6.15
n25 1 8 181.13 159.85 161.12 161.15 163.68 163.68 0.03 0.00 2.56 2.53
n25 1 9 170.08 147.17 147.43 147.43 150.13 150.13 0.00 0.00 2.70 2.70
n25 1 10 275.31 253.72 254.43 254.43 256.91 256.92 0.00 0.00 2.49 2.49
n25 2 1 150.55 127.05 128.61 128.61 130.52 130.53 0.00 0.01 1.91 1.92
n25 2 2 163.93 145.41 146.14 146.20 147.91 147.91 0.06 0.00 1.77 1.72
n25 2 3 170.42 147.27 149.32 149.59 149.84 150.23 0.27 0.39 0.52 0.64
n25 2 4 166.65 131.40 132.31 132.43 134.30 134.34 0.12 0.04 1.99 1.91
n25 2 5 162.32 134.13 135.50 135.71 136.31 136.31 0.21 0.00 0.81 0.60
n25 2 6 147.43 121.13 123.57 123.57 125.88 125.90 0.00 0.01 2.31 2.32
n25 2 7 173.11 146.71 147.39 147.39 150.45 150.45 0.00 0.00 3.06 3.06
n25 2 8 402.77 365.68 366.39 366.39 373.82 373.93 0.00 0.11 7.42 7.53
n25 2 9 150.99 127.90 130.22 130.22 134.07 134.07 0.00 0.00 3.84 3.84
n25 2 10 194.45 149.18 149.88 149.89 158.43 158.43 0.01 0.00 8.54 8.54
n25 3 1 184.89 172.09 172.64 172.64 174.08 174.08 0.00 0.00 1.44 1.44
n25 3 2 184.42 165.00 165.52 165.52 168.09 168.09 0.00 0.00 2.57 2.57
n25 3 3 225.12 208.26 208.40 208.40 209.18 209.18 0.00 0.00 0.78 0.78
n25 3 4 193.19 172.35 172.62 172.70 172.80 172.81 0.08 0.00 0.19 0.11
n25 3 5 203.42 190.18 190.44 190.44 192.75 192.75 0.00 0.00 2.31 2.31
n25 3 6 159.21 134.00 135.04 135.04 136.80 136.80 0.00 0.00 1.77 1.77
n25 3 7 217.48 176.02 180.04 180.23 182.86 182.86 0.20 0.00 2.83 2.63
n25 3 8 207.22 192.77 193.60 193.61 194.53 194.53 0.01 0.00 0.93 0.92
n25 3 9 228.63 208.82 209.32 209.32 213.89 213.89 0.00 0.00 4.57 4.57
n25 3 10 215.10 208.69 208.96 208.96 209.56 209.67 0.00 0.11 0.61 0.71
n25 4 1 173.96 142.64 143.87 143.98 150.76 150.96 0.12 0.20 6.89 6.97
n25 4 2 180.05 158.37 159.09 159.09 159.44 159.44 0.00 0.00 0.34 0.34
n25 4 3 136.86 120.08 120.29 120.29 123.41 123.41 0.00 0.00 3.11 3.11
n25 4 4 171.95 153.88 154.19 154.20 156.64 156.72 0.01 0.08 2.45 2.52
n25 4 5 248.55 239.00 239.01 239.01 240.71 240.71 0.00 0.00 1.70 1.70
n25 4 6 174.88 150.91 151.28 151.28 158.86 158.86 0.00 0.00 7.57 7.57
n25 4 7 211.32 194.60 194.87 194.87 195.89 195.89 0.00 0.00 1.01 1.01
n25 4 8 194.67 178.97 180.53 180.53 183.79 183.81 0.00 0.02 3.26 3.28
n25 4 9 143.88 130.42 131.91 131.91 133.20 133.23 0.00 0.03 1.28 1.32
n25 4 10 155.63 126.25 127.36 127.37 133.60 133.60 0.01 0.00 6.25 6.23
n25 5 1 175.00 147.53 148.32 148.39 151.76 151.94 0.07 0.18 3.44 3.55
n25 5 2 182.75 166.39 166.80 167.14 167.67 168.09 0.34 0.42 0.87 0.95
n25 5 3 167.19 154.83 155.30 155.30 155.82 155.90 0.00 0.08 0.52 0.59
n25 5 4 198.43 170.16 170.34 170.34 172.33 172.35 0.00 0.02 1.99 2.01
n25 5 5 188.63 173.11 173.30 173.30 173.78 173.78 0.00 0.00 0.48 0.48
n25 5 6 142.46 123.47 125.21 125.35 126.36 126.53 0.14 0.17 1.15 1.18
n25 5 7 247.66 214.07 214.73 214.74 219.71 219.71 0.01 0.00 4.98 4.97
n25 5 8 238.29 221.17 221.39 221.39 223.37 223.48 0.00 0.11 1.97 2.08
n25 5 9 184.71 175.16 175.49 175.52 176.57 176.58 0.03 0.01 1.08 1.06
n25 5 10 144.04 115.25 115.92 115.92 117.52 117.52 0.00 0.00 1.60 1.60
n25 6 1 188.60 126.05 126.97 126.97 135.59 135.59 0.00 0.00 8.62 8.62
n25 6 2 212.42 195.10 195.22 195.24 195.27 195.27 0.03 0.00 0.05 0.03
n25 6 3 191.95 160.72 161.35 161.35 169.23 169.23 0.00 0.00 7.87 7.87
n25 6 4 247.09 209.22 210.49 210.49 215.85 215.87 0.00 0.02 5.37 5.39
n25 6 5 207.23 150.39 150.86 150.86 157.62 157.62 0.00 0.00 6.76 6.76
n25 6 6 161.43 130.26 130.61 130.61 133.16 133.37 0.00 0.20 2.55 2.75
n25 6 7 196.12 160.68 161.78 161.78 162.29 162.29 0.00 0.00 0.51 0.51
n25 6 8 209.89 162.05 163.69 163.69 165.91 165.91 0.00 0.00 2.22 2.22
n25 6 9 175.78 128.49 129.85 129.85 136.78 137.12 0.00 0.34 6.94 7.27
n25 6 10 213.21 171.37 173.15 173.17 174.02 174.05 0.02 0.03 0.86 0.88
Table H.2: Lower bounds from LP relaxations for Classes 1–9 (n25).
345
Class # OPT AP LP1 LP2 LP3 LP4 LP2-LP1 LP4-LP3 LP3-LP1 LP4-LP2
n25 7 1 166.34 113.91 114.49 114.53 119.21 119.21 0.04 0.00 4.73 4.68
n25 7 2 198.19 108.52 109.66 109.96 125.69 125.70 0.30 0.01 16.03 15.74
n25 7 3 195.83 146.90 147.26 147.27 155.38 155.41 0.01 0.03 8.11 8.14
n25 7 4 196.53 168.75 169.64 169.64 170.98 170.98 0.00 0.00 1.34 1.34
n25 7 5 200.95 153.14 154.52 154.52 157.90 157.96 0.00 0.06 3.38 3.44
n25 7 6 258.91 211.36 211.80 211.80 213.32 213.32 0.00 0.00 1.52 1.52
n25 7 7 191.37 152.66 153.68 153.75 157.13 157.23 0.07 0.10 3.46 3.48
n25 7 8 153.19 103.69 108.80 108.80 113.98 113.98 0.00 0.00 5.19 5.19
n25 7 9 249.68 220.50 220.94 220.94 223.21 223.21 0.00 0.00 2.27 2.27
n25 7 10 205.59 169.06 171.16 171.16 173.09 173.09 0.00 0.00 1.93 1.93
n25 8 1 232.91 216.48 216.67 216.67 220.05 220.05 0.00 0.00 3.38 3.38
n25 8 2 200.55 142.67 146.20 146.24 158.29 158.33 0.04 0.04 12.09 12.09
n25 8 3 243.50 221.44 222.84 222.84 223.86 223.86 0.00 0.00 1.03 1.03
n25 8 4 152.01 126.39 126.82 126.82 133.61 133.62 0.00 0.01 6.79 6.81
n25 8 5 188.04 161.28 163.62 163.62 164.91 164.92 0.00 0.01 1.29 1.30
n25 8 6 202.49 164.61 165.33 165.35 176.86 177.05 0.02 0.19 11.52 11.70
n25 8 7 176.82 147.15 149.09 149.34 157.46 157.46 0.25 0.00 8.37 8.12
n25 8 8 284.19 255.31 255.44 255.44 255.61 255.63 0.00 0.02 0.17 0.19
n25 8 9 180.91 157.86 158.29 158.29 163.28 163.30 0.00 0.02 4.99 5.01
n25 8 10 290.37 268.34 268.98 268.98 271.52 271.52 0.00 0.00 2.55 2.55
n25 9 1 318.74 283.97 284.37 284.38 288.11 288.11 0.01 0.00 3.74 3.73
n25 9 2 147.07 111.74 112.24 112.24 114.03 114.03 0.00 0.00 1.79 1.79
n25 9 3 166.88 140.54 142.35 142.35 145.42 145.42 0.00 0.00 3.07 3.07
n25 9 4 206.94 184.32 184.51 184.51 187.37 187.37 0.00 0.00 2.86 2.86
n25 9 5 170.12 127.17 127.64 127.76 132.03 132.04 0.13 0.00 4.40 4.27
n25 9 6 126.79 104.43 105.91 106.00 106.78 106.87 0.09 0.09 0.87 0.87
n25 9 7 154.61 130.17 130.40 130.40 131.48 131.59 0.01 0.12 1.08 1.19
n25 9 8 173.62 138.51 140.62 140.67 144.57 144.73 0.05 0.16 3.95 4.06
n25 9 9 129.73 115.48 115.57 115.57 116.91 117.06 0.00 0.14 1.34 1.48
n25 9 10 145.58 120.00 120.41 120.60 121.15 121.21 0.20 0.06 0.74 0.60
Table H.2: continued.
346 LP relaxation results tables
Class # OPT AP LP1 LP2 LP3 LP4 LP2-LP1 LP4-LP3 LP3-LP1 LP4-LP2
n50 1 1 286.74 235.68 236.56 236.61 246.63 246.63 0.06 0.00 10.08 10.02
n50 1 2 282.66 235.10 237.89 238.17 244.22 244.64 0.28 0.42 6.33 6.47
n50 1 3 300.95 257.58 259.49 259.49 259.73 259.73 0.00 0.00 0.24 0.24
n50 1 4 — 300.46 301.50 301.50 310.96 310.96 0.00 0.00 9.46 9.46
n50 1 5 302.30 259.66 261.17 261.18 265.75 265.91 0.01 0.17 4.58 4.73
n50 1 6 — 323.30 324.36 324.59 339.68 340.29 0.24 0.61 15.32 15.70
n50 1 7 — 220.66 223.53 223.57 231.81 232.04 0.04 0.22 8.28 8.46
n50 1 8 — 293.32 294.97 294.97 312.15 312.15 0.00 0.00 17.18 17.18
n50 1 9 — 320.95 321.77 321.81 329.26 329.27 0.04 0.00 7.49 7.46
n50 1 10 280.37 243.76 243.98 244.00 246.03 246.17 0.02 0.14 2.05 2.17
n50 2 1 368.45 315.08 315.64 315.65 332.11 332.32 0.01 0.21 16.46 16.67
n50 2 2 384.32 333.82 336.35 336.36 346.55 346.55 0.01 0.00 10.20 10.19
n50 2 3 350.49 317.14 318.32 318.38 323.52 323.58 0.06 0.06 5.20 5.20
n50 2 4 — 434.31 437.90 437.90 453.16 453.17 0.00 0.01 15.26 15.27
n50 2 5 265.50 233.70 234.56 234.56 237.63 237.72 0.00 0.09 3.08 3.16
n50 2 6 298.42 249.38 252.31 252.54 255.69 255.75 0.24 0.06 3.38 3.21
n50 2 7 — 294.80 296.61 296.67 313.89 314.56 0.06 0.67 17.29 17.90
n50 2 8 359.12 318.51 319.69 319.83 329.15 329.15 0.13 0.00 9.45 9.32
n50 2 9 294.69 266.78 266.94 266.96 269.71 269.71 0.02 0.00 2.76 2.75
n50 2 10 329.90 289.27 290.04 290.09 293.98 294.19 0.05 0.21 3.94 4.11
n50 3 1 327.58 270.51 272.63 272.67 284.27 284.28 0.04 0.00 11.64 11.61
n50 3 2 — 232.07 233.93 233.94 240.23 240.25 0.01 0.03 6.29 6.32
n50 3 3 — 215.08 219.04 219.04 223.87 223.89 0.00 0.02 4.83 4.85
n50 3 4 327.54 280.45 281.28 281.35 286.67 286.67 0.08 0.00 5.39 5.32
n50 3 5 370.11 288.90 290.34 290.34 312.97 313.02 0.00 0.06 22.62 22.68
n50 3 6 329.40 273.74 274.76 274.76 280.82 280.82 0.00 0.00 6.05 6.06
n50 3 7 326.80 285.31 286.94 286.96 291.29 291.51 0.02 0.23 4.35 4.55
n50 3 8 — 288.91 291.26 291.26 302.28 302.28 0.00 0.00 11.02 11.02
n50 3 9 290.49 242.85 244.38 244.39 249.05 249.05 0.01 0.00 4.67 4.66
n50 3 10 288.01 241.22 244.22 244.33 251.17 251.37 0.11 0.20 6.95 7.05
n50 4 1 — 213.04 213.69 213.69 216.29 216.29 0.00 0.01 2.60 2.61
n50 4 2 — 343.20 344.36 344.38 347.11 347.12 0.02 0.02 2.74 2.74
n50 4 3 — 350.43 350.57 350.57 359.25 359.65 0.00 0.40 8.68 9.08
n50 4 4 244.49 216.78 219.13 219.18 225.19 225.23 0.05 0.05 6.06 6.06
n50 4 5 — 282.26 282.85 282.85 286.45 286.45 0.00 0.00 3.61 3.61
n50 4 6 — 331.82 332.48 332.51 337.55 337.55 0.02 0.00 5.07 5.04
n50 4 7 — 239.40 239.62 239.62 246.13 246.16 0.00 0.04 6.51 6.55
n50 4 8 — 226.83 227.71 227.72 230.57 230.59 0.01 0.02 2.86 2.87
n50 4 9 — 267.36 268.07 268.14 271.20 271.20 0.08 0.00 3.13 3.05
n50 4 10 — 259.45 260.52 260.53 265.12 265.12 0.01 0.00 4.60 4.59
n50 5 1 — 196.67 198.62 198.62 205.92 205.92 0.00 0.00 7.29 7.29
n50 5 2 — 219.12 220.26 220.26 223.74 223.74 0.00 0.00 3.48 3.48
n50 5 3 — 288.63 288.94 288.95 291.10 291.12 0.01 0.02 2.15 2.17
n50 5 4 — 247.48 248.47 248.49 252.37 252.48 0.02 0.10 3.91 3.99
n50 5 5 — 370.12 371.27 371.28 377.71 377.71 0.01 0.00 6.45 6.44
n50 5 6 — 258.86 259.40 259.40 263.69 263.89 0.00 0.20 4.29 4.49
n50 5 7 — 272.64 273.76 273.76 284.62 284.75 0.00 0.13 10.86 10.99
n50 5 8 — 235.82 236.06 236.07 238.43 238.43 0.01 0.00 2.37 2.36
n50 5 9 — 268.92 270.41 270.45 281.10 281.10 0.04 0.00 10.70 10.65
n50 5 10 — 238.82 239.99 239.99 248.56 248.56 0.00 0.00 8.57 8.57
n50 6 1 — 266.78 267.58 267.58 272.57 272.68 0.00 0.11 4.99 5.10
n50 6 2 — 201.62 204.42 204.42 206.64 206.67 0.00 0.02 2.22 2.24
n50 6 3 — 217.45 220.36 220.37 224.13 224.17 0.01 0.04 3.77 3.80
n50 6 4 — 298.95 299.23 299.23 300.90 300.90 0.00 0.00 1.68 1.68
n50 6 5 — 229.95 231.41 231.41 236.77 236.78 0.00 0.00 5.37 5.37
n50 6 6 — 200.84 201.95 201.96 204.94 204.97 0.00 0.03 2.98 3.01
n50 6 7 — 259.01 259.46 259.46 259.99 260.09 0.00 0.10 0.53 0.63
n50 6 8 — 223.87 225.31 225.32 228.59 228.60 0.02 0.00 3.29 3.27
n50 6 9 — 269.59 271.84 271.95 282.19 282.42 0.11 0.23 10.34 10.47
n50 6 10 — 228.24 230.52 230.52 239.24 239.24 0.00 0.00 8.73 8.73
Table H.3: Lower bounds from LP relaxations for Classes 10–15 (n50).
347
Class # OPT AP LP1 LP2 LP3 LP4 LP2-LP1 LP4-LP3 LP3-LP1 LP4-LP2
n100 1 1 — 560.96 563.66 563.78 580.21 580.26 0.12 0.05 16.56 16.48
n100 1 2 — 596.23 597.49 597.52 613.78 613.92 0.03 0.15 16.28 16.41
n100 1 3 — 487.18 490.85 490.85 501.46 501.47 0.01 0.01 10.62 10.62
n100 1 4 — 511.81 516.17 516.21 530.28 530.49 0.03 0.21 14.10 14.28
n100 1 5 — 473.78 475.44 475.46 484.61 484.61 0.01 0.00 9.17 9.16
n100 1 6 — 524.97 527.29 527.63 535.72 536.11 0.34 0.39 8.42 8.47
n100 1 7 — 389.68 391.63 391.63 394.74 394.80 0.00 0.06 3.11 3.16
n100 1 8 — 428.47 431.43 431.50 437.39 437.40 0.07 0.00 5.96 5.90
n100 1 9 — 675.32 676.70 676.72 687.56 687.67 0.01 0.12 10.85 10.96
n100 1 10 — 625.11 626.80 626.83 639.36 639.47 0.03 0.12 12.56 12.64
n100 2 1 — 418.75 424.38 424.48 434.03 434.09 0.09 0.06 9.65 9.62
n100 2 2 — 454.00 457.44 457.45 469.96 470.28 0.01 0.31 12.53 12.83
n100 2 3 — 685.32 687.39 687.46 702.71 702.99 0.07 0.27 15.32 15.52
n100 2 4 — 560.98 565.97 566.05 575.19 575.42 0.09 0.23 9.22 9.36
n100 2 5 — 462.05 463.88 464.00 468.58 468.67 0.12 0.09 4.71 4.67
n100 2 6 — 432.19 434.04 434.09 441.44 441.71 0.05 0.27 7.39 7.62
n100 2 7 — 442.52 445.23 445.29 463.27 463.27 0.07 0.00 18.04 17.98
n100 2 8 — 498.92 501.71 501.77 518.47 518.47 0.07 0.00 16.76 16.70
n100 2 9 — 501.86 505.93 506.10 525.14 525.27 0.16 0.13 19.21 19.18
n100 2 10 — 509.69 511.52 511.63 522.51 522.51 0.10 0.00 10.99 10.89
n100 3 1 — 551.51 554.08 554.15 566.41 566.60 0.07 0.19 12.33 12.45
n100 3 2 — 480.45 483.12 483.15 494.72 494.81 0.03 0.10 11.59 11.66
n100 3 3 — 424.57 431.33 431.45 441.75 441.76 0.12 0.01 10.43 10.31
n100 3 4 — 488.67 490.49 490.56 496.55 496.91 0.08 0.36 6.06 6.35
n100 3 5 — 425.72 430.20 430.22 440.76 440.77 0.01 0.01 10.56 10.56
n100 3 6 — 528.71 531.25 531.27 550.34 550.73 0.02 0.39 19.09 19.45
n100 3 7 — 491.78 496.74 496.83 515.32 515.43 0.08 0.11 18.58 18.60
n100 3 8 — 448.24 450.89 450.97 467.65 467.70 0.08 0.05 16.76 16.73
n100 3 9 — 681.22 683.23 683.28 692.88 693.11 0.04 0.23 9.65 9.84
n100 3 10 — 463.79 469.06 469.07 477.97 477.97 0.01 0.00 8.91 8.90
n100 4 1 — 387.96 388.68 388.76 391.92 391.95 0.08 0.03 3.25 3.20
n100 4 2 — 389.07 392.19 392.19 397.01 397.02 0.00 0.01 4.82 4.83
n100 4 3 — 455.05 458.08 458.11 476.26 476.33 0.04 0.07 18.18 18.22
n100 4 4 — 417.31 419.17 419.26 425.49 425.50 0.09 0.01 6.32 6.24
n100 4 5 — 431.77 434.34 434.36 443.21 443.27 0.02 0.06 8.87 8.91
n100 4 6 — 454.11 458.57 458.59 468.13 468.13 0.02 0.00 9.56 9.54
n100 4 7 — 404.38 408.57 408.59 435.04 435.08 0.01 0.04 26.47 26.49
n100 4 8 — 435.73 437.89 437.89 452.32 452.54 0.00 0.22 14.43 14.65
n100 4 9 — 416.74 417.62 417.62 427.05 427.07 0.00 0.02 9.44 9.45
n100 4 10 — 455.67 457.89 457.92 465.33 465.36 0.04 0.03 7.44 7.43
n100 5 1 — 544.15 545.66 545.67 548.95 548.96 0.00 0.01 3.29 3.29
n100 5 2 — 422.07 424.69 424.78 438.25 438.25 0.09 0.01 13.55 13.47
n100 5 3 — 386.95 390.31 390.34 402.28 402.29 0.03 0.01 11.97 11.94
n100 5 4 — 441.84 443.20 443.22 450.57 450.60 0.01 0.03 7.37 7.38
n100 5 5 — 387.77 391.26 391.26 403.35 403.35 0.00 0.01 12.09 12.09
n100 5 6 — 486.59 488.76 488.81 504.48 504.59 0.05 0.10 15.72 15.78
n100 5 7 — 433.23 435.15 435.21 443.01 443.02 0.06 0.01 7.86 7.81
n100 5 8 — 390.28 392.34 392.52 398.60 398.64 0.19 0.04 6.27 6.12
n100 5 9 — 499.85 502.58 502.62 516.02 516.02 0.04 0.01 13.44 13.40
n100 5 10 — 455.81 460.65 460.70 468.57 468.89 0.05 0.32 7.92 8.19
n100 6 1 — 524.58 526.52 526.52 546.71 546.87 0.00 0.16 20.18 20.35
n100 6 2 — 413.76 416.61 416.68 427.04 427.07 0.07 0.03 10.43 10.39
n100 6 3 — 419.58 421.92 421.92 430.95 431.08 0.00 0.13 9.03 9.16
n100 6 4 — 559.91 561.61 561.63 580.13 580.35 0.02 0.22 18.53 18.72
n100 6 5 — 412.56 416.18 416.30 432.50 432.56 0.12 0.06 16.32 16.25
n100 6 6 — 386.60 388.80 388.85 397.83 397.93 0.05 0.09 9.03 9.08
n100 6 7 — 432.52 433.87 433.88 439.75 439.97 0.01 0.22 5.88 6.09
n100 6 8 — 408.36 412.37 412.46 424.06 424.31 0.09 0.24 11.69 11.85
n100 6 9 — 445.10 449.82 449.82 466.23 466.38 0.00 0.15 16.42 16.57
n100 6 10 — 367.92 370.60 370.60 376.39 376.40 0.00 0.00 5.79 5.80
Table H.4: Lower bounds from LP relaxations for Classes 16–21 (n100).
348 LP relaxation results tables
Class # OPT AP LP1 LP2 LP3 LP4 LP2-LP1 LP4-LP3 LP3-LP1 LP4-LP2
BKA 1 84 10 11.71 11.71 14.08 14.08 0 0 2.37 2.37
BKA 2 84 10 12.73 12.73 14.96 14.96 0 0 2.23 2.23
BKA 3 50 10 13.61 13.61 17.13 17.13 0 0 3.52 3.52
BKA 4 50 10 13.58 13.58 17.46 17.46 0 0 3.89 3.89
BKA 5 27 5 7.02 7.02 9.63 9.63 0 0 2.61 2.61
BKA 6 84 64 64.46 64.46 64.48 64.48 0 0 0.01 0.01
BKA 7 123 15 18.52 18.52 23.35 23.35 0 0 4.83 4.83
BKA 8 123 15 17.14 17.14 20.21 20.21 0 0 3.07 3.07
BKA 9 50 10 12.96 12.96 16.90 16.90 0 0 3.93 3.93
BKA 10 84 10 12.20 12.20 15.19 15.19 0 0 2.99 2.99
BKA 11 42 29 29.45 29.45 29.74 29.74 0 0 0.29 0.29
BKA 12 61 43 43.56 43.56 43.76 43.76 0 0 0.21 0.21
BKA 13 42 29 29.20 29.20 29.30 29.30 0 0 0.10 0.10
BKA 14 78 12 12.37 12.37 19.68 19.68 0 0 7.31 7.31
BKA 15 78 12 12.37 12.37 19.87 19.87 0 0 7.50 7.50
BKA 16 39 6 6.38 6.38 14.41 14.41 0 0 8.03 8.03
BKA 17 126 18 19.82 19.82 29.25 29.25 0 0 9.43 9.43
BKA 18 57 8 8.48 8.48 18.36 18.36 0 0 9.88 9.88
BKA 19 78 12 12.55 12.55 25.81 25.81 0 0 13.26 13.26
BKA 20 84 58 58.54 58.54 58.79 58.79 0 0 0.25 0.25
BKA 21 42 29 29.62 29.62 29.97 29.97 0 0 0.34 0.34
BKA 22 126 111 111.54 111.54 111.64 111.64 0 0 0.10 0.10
BKA 23 126 111 111.54 111.54 111.64 111.64 0 0 0.10 0.10
BKA 24 61 43 43.80 43.80 44.03 44.03 0 0 0.23 0.23
BKA 25 84 58 59.05 59.05 59.57 59.57 0 0 0.53 0.53
BKA 26 42 29 29.64 29.64 29.97 29.97 0 0 0.33 0.33
BKA 27 61 43 43.73 43.73 43.94 43.94 0 0 0.22 0.22
BKA 28 84 58 58.95 58.95 59.54 59.54 0 0 0.59 0.59
BKA 29 84 70 70.67 70.67 71.33 71.33 0 0 0.66 0.66
BKA 30 84 58 58.92 58.92 59.59 59.59 0 0 0.67 0.67
BKA 31 42 29 29.19 29.19 29.28 29.28 0 0 0.09 0.09
BKA 32 39 0 1.18 1.18 10.42 10.42 0 0 9.23 9.23
BKA 33 57 0 1.48 1.48 13.30 13.30 0 0 11.82 11.82
BKA 34 78 0 1.66 1.66 15.30 15.30 0 0 13.63 13.63
BKA 35 78 12 12.59 12.59 25.11 25.11 0 0 12.52 12.52
Table H.5: Lower bounds from LP relaxations for BKA instances.
Notation Description
Class Problem class
# Problem instance number
Presolve OFF Solution time when presolve is turned off
Presolve ON Solution time when presolve is turned on
AP LP relaxation time of the Assignment Problem
LP1 LP relaxation time of the MIP in Method 1 (MIP1 Ponly)
LP2 LP relaxation time of the MIP in Method 2 (MIP1 PrecAll)
LP3 LP relaxation time of the MIP in Method 3 (MIP2 Ponly)
LP4 LP relaxation time of the MIP in Method 4 (MIP2 PrecAll)
|NZ| Number of nonzero LP relaxation times, by method
Total time Total time spent performing LP relaxations, by method
Table H.6: Notation for LP relaxation times (all times are in seconds).
349
Presolve OFF Presolve ON
Class # AP LP1 LP2 LP3 LP4 AP LP1 LP2 LP3 LP4
n25 1 1 0 0 0.016 0.047 0.078 0 0 0 0 0
n25 1 2 0 0 0 0.047 0.047 0 0 0.016 0 0
n25 1 3 0 0 0 0.031 0.031 0 0 0 0 0
n25 1 4 0 0.016 0 0.047 0.047 0 0 0 0 0
n25 1 5 0 0 0 0.047 0.078 0 0 0 0.016 0
n25 1 6 0 0 0 0.031 0.078 0 0 0.016 0 0
n25 1 7 0.016 0 0 0.047 0.063 0 0 0 0 0
n25 1 8 0 0 0 0.047 0.063 0 0 0 0 0
n25 1 9 0 0.016 0.016 0.047 0.047 0 0 0 0 0
n25 1 10 0 0 0 0.047 0.078 0 0 0 0 0
n25 2 1 0 0 0.016 0.047 0.047 0 0 0 0 0
n25 2 2 0 0 0 0.031 0.047 0 0 0 0 0
n25 2 3 0 0 0 0.016 0.063 0 0 0 0 0
n25 2 4 0 0 0.016 0.031 0.047 0 0 0 0 0
n25 2 5 0 0 0 0.047 0.063 0 0 0 0 0
n25 2 6 0 0 0 0.047 0.047 0 0 0 0 0
n25 2 7 0 0 0 0.047 0.063 0 0 0 0 0
n25 2 8 0.016 0.016 0 0.047 0.078 0 0 0.016 0 0
n25 2 9 0 0 0.016 0.047 0.078 0 0 0 0 0
n25 2 10 0 0.016 0 0.031 0.047 0 0 0 0 0
n25 3 1 0 0.016 0 0.047 0.063 0 0 0 0 0
n25 3 2 0 0 0 0.031 0.047 0 0 0 0 0
n25 3 3 0 0 0 0.031 0.031 0 0 0 0 0.016
n25 3 4 0 0 0 0.031 0.047 0 0 0 0 0
n25 3 5 0 0 0.016 0.031 0.047 0 0 0 0 0
n25 3 6 0 0.016 0 0.031 0.047 0 0 0 0 0
n25 3 7 0 0.016 0 0.063 0.063 0 0 0 0 0
n25 3 8 0 0 0 0.047 0.063 0 0 0 0 0
n25 3 9 0.016 0 0.016 0.047 0.063 0 0 0 0 0
n25 3 10 0 0 0 0.047 0.063 0 0 0 0.016 0
n25 4 1 0 0 0 0.047 0.078 0 0 0 0 0
n25 4 2 0 0 0 0.016 0.031 0 0 0 0 0
n25 4 3 0 0.016 0 0.031 0.063 0 0 0 0 0
n25 4 4 0 0.016 0 0.031 0.063 0 0 0 0 0
n25 4 5 0 0.016 0 0.063 0.094 0 0 0 0 0
n25 4 6 0 0 0.016 0.047 0.063 0 0 0 0.016 0
n25 4 7 0 0.016 0.016 0.063 0.078 0 0 0 0 0
n25 4 8 0 0 0.016 0.031 0.063 0 0 0 0 0
n25 4 9 0 0.016 0 0.031 0.047 0 0 0 0 0.016
n25 4 10 0 0 0 0.047 0.047 0 0 0 0 0
n25 5 1 0 0 0 0.016 0.047 0 0 0 0 0
n25 5 2 0 0 0.016 0.031 0.063 0 0 0 0 0
n25 5 3 0 0 0 0.047 0.063 0 0 0 0 0
n25 5 4 0 0 0 0.047 0.047 0 0 0 0 0
n25 5 5 0 0 0 0.047 0.047 0 0 0 0 0
n25 5 6 0.016 0 0 0.031 0.047 0 0 0 0 0
n25 5 7 0 0 0 0.047 0.047 0 0 0.016 0 0
n25 5 8 0 0.016 0.016 0.047 0.063 0 0 0 0 0
n25 5 9 0 0 0 0.047 0.047 0 0 0 0 0
n25 5 10 0 0.016 0 0.031 0.047 0 0 0 0 0
n25 6 1 0 0 0.016 0.047 0.063 0 0 0 0 0
n25 6 2 0.016 0.016 0 0.047 0.063 0 0 0 0 0
n25 6 3 0 0 0.016 0.063 0.063 0 0 0 0 0
n25 6 4 0 0 0 0.063 0.078 0 0 0 0 0
n25 6 5 0 0 0 0.047 0.047 0 0 0 0 0
n25 6 6 0 0.016 0 0.047 0.078 0 0 0 0 0
n25 6 7 0 0 0 0.047 0.031 0 0 0 0 0
n25 6 8 0 0 0 0.031 0.047 0 0 0 0 0
n25 6 9 0 0 0 0.047 0.063 0 0 0 0 0
n25 6 10 0 0.016 0 0.047 0.078 0 0 0 0 0
Table H.7: LP relaxation times (seconds) for Classes 1–9 (n25).
350 LP relaxation results tables
Presolve OFF Presolve ON
Class # AP LP1 LP2 LP3 LP4 AP LP1 LP2 LP3 LP4
n25 7 1 0 0.016 0 0.047 0.063 0 0 0 0 0
n25 7 2 0.016 0 0 0.047 0.063 0 0 0 0 0
n25 7 3 0 0.016 0 0.063 0.078 0 0 0 0 0
n25 7 4 0 0.016 0 0.094 0.109 0 0 0 0 0
n25 7 5 0 0 0 0.063 0.063 0 0 0.016 0 0
n25 7 6 0 0.016 0 0.047 0.063 0 0 0 0 0
n25 7 7 0 0 0 0.063 0.047 0 0 0 0 0
n25 7 8 0 0 0 0.063 0.063 0 0 0 0 0
n25 7 9 0 0 0 0.063 0.063 0 0 0 0 0
n25 7 10 0 0.016 0.016 0.047 0.078 0 0 0 0 0
n25 8 1 0 0 0.016 0.031 0.078 0 0 0 0 0
n25 8 2 0 0.016 0 0.031 0.078 0 0 0 0 0
n25 8 3 0 0 0 0.031 0.078 0.016 0 0 0 0
n25 8 4 0 0.016 0.016 0.031 0.094 0 0 0 0 0
n25 8 5 0 0 0 0.031 0.063 0 0 0 0 0
n25 8 6 0 0 0 0.047 0.063 0 0 0 0 0
n25 8 7 0 0 0 0.031 0.063 0 0 0 0 0
n25 8 8 0 0 0 0.031 0.047 0 0 0 0 0
n25 8 9 0 0 0 0.063 0.094 0 0 0 0 0
n25 8 10 0 0.016 0 0.047 0.078 0 0 0 0 0
n25 9 1 0 0 0 0.078 0.094 0 0 0 0 0
n25 9 2 0.016 0 0 0.063 0.063 0 0 0 0 0
n25 9 3 0.016 0 0 0.063 0.063 0 0 0 0 0
n25 9 4 0 0.016 0 0.063 0.078 0 0 0 0 0
n25 9 5 0.016 0.016 0 0.078 0.063 0 0 0 0 0
n25 9 6 0 0 0 0.063 0.063 0 0 0 0 0
n25 9 7 0 0 0.016 0.063 0.063 0 0 0 0 0.016
n25 9 8 0 0 0 0.047 0.047 0.016 0 0 0 0
n25 9 9 0 0 0 0.047 0.063 0 0 0 0 0
n25 9 10 0 0 0 0.047 0.047 0 0 0 0 0
|NZ| 9 27 18 90 90 2 0 5 3 3
Total time 0.141 0.422 0.281 4.094 5.531 0.031 0 0.078 0.047 0.047
Table H.7: continued.
351
Presolve OFF Presolve ON
Class # AP LP1 LP2 LP3 LP4 AP LP1 LP2 LP3 LP4
n50 1 1 0 0.016 0.031 0.484 0.969 0 0 0 0 0
n50 1 2 0.016 0.016 0.031 0.500 0.953 0 0 0 0 0.016
n50 1 3 0.016 0.016 0.016 0.359 1.016 0 0 0 0 0
n50 1 4 0.016 0.016 0.031 0.344 1.188 0 0 0 0 0
n50 1 5 0 0.016 0.047 0.344 0.922 0 0.016 0 0 0.016
n50 1 6 0 0.016 0.031 0.422 0.984 0 0 0 0 0
n50 1 7 0.016 0.016 0.031 0.453 1.016 0 0.016 0 0 0
n50 1 8 0 0.016 0.031 0.484 1.078 0 0 0 0 0
n50 1 9 0 0.016 0.031 0.375 1.000 0 0 0 0 0
n50 1 10 0 0.016 0.016 0.375 0.797 0 0 0 0 0.016
n50 2 1 0.016 0.016 0.031 0.516 0.938 0 0 0 0 0
n50 2 2 0 0.031 0.031 0.563 1.203 0 0 0 0 0
n50 2 3 0 0.016 0.031 0.344 1.000 0 0 0 0 0
n50 2 4 0 0.016 0.047 0.531 1.000 0 0 0 0 0
n50 2 5 0 0.016 0.016 0.438 1.016 0 0 0 0 0
n50 2 6 0 0.016 0.016 0.375 0.844 0 0 0 0 0
n50 2 7 0.016 0.016 0.016 0.547 1.109 0 0 0 0 0
n50 2 8 0 0.016 0.031 0.391 0.953 0 0 0 0 0
n50 2 9 0 0 0.016 0.406 0.828 0 0.016 0 0 0
n50 2 10 0 0.016 0.016 0.359 1.172 0 0 0 0 0
n50 3 1 0 0.016 0.016 0.391 0.828 0 0 0 0 0
n50 3 2 0 0.016 0.016 0.438 1.078 0 0 0 0 0
n50 3 3 0 0.016 0.016 0.344 0.859 0 0 0 0 0
n50 3 4 0 0.016 0.016 0.500 1.000 0 0 0 0.016 0.016
n50 3 5 0 0.016 0.031 0.453 1.219 0 0 0 0.016 0
n50 3 6 0 0.016 0.031 0.453 0.828 0 0.016 0 0 0
n50 3 7 0.016 0.016 0.031 0.359 0.828 0 0 0 0 0
n50 3 8 0 0.016 0.016 0.625 1.000 0 0 0 0 0
n50 3 9 0 0.016 0.016 0.359 0.750 0 0 0 0 0
n50 3 10 0 0.016 0.047 0.453 0.797 0.016 0 0 0 0
n50 4 1 0.016 0.016 0.016 0.688 1.203 0 0 0 0 0
n50 4 2 0 0.016 0.031 0.563 1.031 0 0 0 0 0
n50 4 3 0 0.016 0.031 0.469 1.000 0 0 0 0 0.016
n50 4 4 0 0.016 0.031 0.484 0.891 0 0 0 0 0
n50 4 5 0 0.031 0.031 0.484 1.094 0 0 0 0.016 0.016
n50 4 6 0 0.016 0.031 0.578 1.156 0 0 0 0 0
n50 4 7 0 0.016 0.031 0.484 1.000 0 0 0 0 0.016
n50 4 8 0 0.016 0.016 0.500 0.875 0 0 0 0 0.016
n50 4 9 0 0.016 0.031 0.594 1.156 0 0 0 0 0
n50 4 10 0 0.016 0.031 0.594 1.016 0 0 0 0.016 0
n50 5 1 0 0.016 0.016 0.484 1.016 0 0 0.016 0 0
n50 5 2 0 0.016 0.031 0.547 0.875 0 0 0 0 0
n50 5 3 0.016 0.016 0.031 0.734 1.250 0 0 0 0 0.016
n50 5 4 0 0.016 0.031 0.547 1.313 0 0 0 0 0
n50 5 5 0.016 0.016 0.031 0.703 1.078 0 0 0 0 0
n50 5 6 0 0.016 0.016 0.484 0.828 0 0 0 0.016 0
n50 5 7 0 0.016 0.047 0.547 1.266 0 0 0 0 0
n50 5 8 0 0.016 0.016 0.453 1.000 0 0 0 0 0
n50 5 9 0 0.016 0.031 0.672 1.094 0.016 0 0 0 0.016
n50 5 10 0 0.016 0.016 0.563 1.031 0 0 0 0 0
n50 6 1 0 0.016 0.031 0.516 0.984 0 0 0 0 0
n50 6 2 0.016 0 0.016 0.500 1.000 0 0 0.016 0 0
n50 6 3 0 0.031 0.016 0.531 0.922 0 0 0 0 0
n50 6 4 0 0.031 0.016 0.672 1.219 0 0 0 0 0
n50 6 5 0 0 0.031 0.531 0.891 0 0 0 0.016 0
n50 6 6 0 0.016 0.031 0.453 0.938 0 0 0 0 0
n50 6 7 0 0.016 0.016 0.484 0.906 0 0 0 0 0
n50 6 8 0 0.031 0.031 0.578 1.000 0 0 0 0 0
n50 6 9 0 0.016 0.031 0.500 1.000 0 0 0 0 0
n50 6 10 0 0.016 0.016 0.484 0.672 0 0 0 0 0
|NZ| 11 57 60 60 60 2 4 2 6 10
Total time 0.172 0.969 1.563 29.406 59.875 0.031 0.063 0.031 0.094 0.156
Table H.8: LP relaxation times (seconds) for Classes 10–15 (n50).
352 LP relaxation results tables
Presolve OFF Presolve ON
Class # AP LP1 LP2 LP3 LP4 AP LP1 LP2 LP3 LP4
n100 1 1 0.016 0.078 0.266 3.000 14.422 0 0 0 0 0
n100 1 2 0 0.031 0.094 2.391 15.375 0 0 0 0 0.016
n100 1 3 0 0.047 0.125 2.156 12.109 0 0 0 0 0
n100 1 4 0 0.063 0.234 2.734 14.438 0 0 0 0 0
n100 1 5 0.016 0.078 0.156 2.359 13.297 0 0.016 0 0.016 0.016
n100 1 6 0 0.047 0.172 2.328 11.953 0 0 0 0 0.016
n100 1 7 0.016 0.031 0.063 1.906 8.688 0 0 0.016 0 0.016
n100 1 8 0 0.031 0.078 1.313 9.531 0 0.016 0.016 0 0
n100 1 9 0 0.109 0.313 2.859 12.391 0 0 0 0 0
n100 1 10 0.016 0.094 0.266 2.563 12.734 0 0.016 0.016 0.016 0
n100 2 1 0 0.031 0.078 2.234 14.563 0 0 0.016 0 0
n100 2 2 0.016 0.047 0.109 2.391 11.438 0 0 0 0 0
n100 2 3 0.016 0.063 0.188 3.109 14.719 0 0.016 0.016 0 0.016
n100 2 4 0.016 0.063 0.188 2.109 11.234 0 0 0 0 0
n100 2 5 0 0.063 0.109 1.766 10.313 0 0 0.016 0 0.016
n100 2 6 0 0.047 0.094 1.625 8.297 0 0 0 0 0.016
n100 2 7 0 0.047 0.141 2.984 13.766 0 0.016 0 0 0.016
n100 2 8 0 0.047 0.203 2.422 12.141 0 0.016 0 0.016 0.031
n100 2 9 0 0.078 0.234 2.953 14.344 0 0 0 0 0
n100 2 10 0.016 0.078 0.125 1.969 13.672 0 0 0 0 0.016
n100 3 1 0.016 0.063 0.203 2.719 10.375 0 0 0 0 0.016
n100 3 2 0 0.078 0.156 3.313 15.547 0 0 0 0 0.016
n100 3 3 0.016 0.016 0.094 1.578 10.859 0 0.016 0 0 0.016
n100 3 4 0 0.078 0.156 1.922 11.375 0 0 0 0 0
n100 3 5 0 0.016 0.094 2.125 11.453 0 0 0 0.016 0
n100 3 6 0 0.063 0.188 2.672 11.359 0 0.016 0 0 0.016
n100 3 7 0 0.047 0.188 2.406 12.656 0 0 0 0 0.016
n100 3 8 0 0.047 0.141 2.766 11.719 0 0 0 0.016 0
n100 3 9 0.016 0.047 0.203 2.172 12.313 0 0.016 0 0 0.016
n100 3 10 0 0.063 0.219 2.219 10.109 0.016 0 0 0 0.016
n100 4 1 0 0.031 0.063 2.844 12.813 0 0 0.016 0 0
n100 4 2 0.016 0.031 0.078 2.281 12.016 0 0 0 0.016 0
n100 4 3 0.016 0.094 0.125 3.656 17.359 0 0 0 0 0
n100 4 4 0 0.047 0.109 2.594 11.828 0 0 0 0 0
n100 4 5 0.016 0.063 0.125 3.109 15.625 0 0 0.016 0 0
n100 4 6 0.016 0.109 0.141 3.219 17.313 0 0 0 0.016 0.016
n100 4 7 0 0.125 0.125 4.891 21.953 0 0 0 0.016 0
n100 4 8 0 0.094 0.156 3.578 19.516 0 0 0 0.016 0.016
n100 4 9 0.016 0.078 0.125 3.813 19.063 0 0.016 0 0.016 0.016
n100 4 10 0 0.078 0.188 3.094 16.234 0 0 0.016 0.016 0
n100 5 1 0.016 0.078 0.141 2.781 16.516 0 0 0 0 0.016
n100 5 2 0.016 0.078 0.078 3.031 14.484 0 0 0 0.016 0.016
n100 5 3 0 0.063 0.125 3.328 11.703 0 0 0.016 0 0.016
n100 5 4 0.016 0.063 0.109 2.797 13.406 0 0 0 0 0.016
n100 5 5 0 0.063 0.141 3.078 15.172 0 0 0.016 0.016 0.016
n100 5 6 0 0.125 0.234 4.656 18.063 0 0 0 0.016 0.016
n100 5 7 0.016 0.094 0.141 2.719 14.469 0 0 0 0.016 0
n100 5 8 0.016 0.047 0.094 2.781 11.313 0 0 0 0 0
n100 5 9 0.016 0.078 0.172 3.734 17.625 0 0 0 0.016 0.016
n100 5 10 0 0.047 0.188 2.516 12.750 0 0 0 0 0
n100 6 1 0.016 0.063 0.094 4.047 15.641 0 0.016 0 0 0.016
n100 6 2 0 0.078 0.094 3.438 14.719 0 0 0.016 0 0.016
n100 6 3 0 0.094 0.203 3.422 14.813 0 0.016 0 0.016 0.016
n100 6 4 0 0.141 0.125 3.984 18.047 0 0 0 0 0.016
n100 6 5 0 0.047 0.109 3.938 16.266 0 0 0.016 0.016 0.016
n100 6 6 0 0.047 0.063 2.844 12.125 0 0 0 0 0.016
n100 6 7 0.016 0.047 0.078 3.516 12.266 0 0 0 0 0.016
n100 6 8 0 0.047 0.125 3.328 13.094 0 0 0 0.016 0
n100 6 9 0.016 0.078 0.109 3.672 13.703 0 0 0 0 0.016
n100 6 10 0 0.078 0.188 2.797 13.328 0 0 0.016 0.016 0.016
|NZ| 25 60 60 60 60 1 12 14 20 36
Total time 0.391 3.891 8.719 170.547 820.406 0.016 0.188 0.219 0.313 0.578
Table H.9: LP relaxation times (seconds) for Classes 16–21 (n100).
353
Presolve OFF Presolve ON
Class # AP LP1 LP2 LP3 LP4 AP LP1 LP2 LP3 LP4
BKA 1 0 0 0 0 0 0 0 0 0 0
BKA 2 0 0 0 0.016 0.016 0 0 0 0 0
BKA 3 0 0 0 0.016 0.016 0 0 0 0 0
BKA 4 0 0 0 0.016 0.016 0 0 0 0 0
BKA 5 0 0 0 0.016 0.016 0 0 0 0 0
BKA 6 0 0 0 0.016 0.016 0 0 0 0 0
BKA 7 0 0 0 0 0 0 0 0 0 0
BKA 8 0 0 0 0 0 0 0 0 0 0
BKA 9 0 0.016 0.016 0.016 0.016 0 0 0 0 0
BKA 10 0 0 0 0 0 0 0 0 0 0
BKA 11 0 0 0 0.016 0.016 0 0 0 0 0
BKA 12 0 0 0 0.016 0.016 0 0 0 0 0
BKA 13 0 0 0 0.016 0.016 0 0 0 0 0
BKA 14 0 0 0 0.031 0.031 0 0 0 0 0
BKA 15 0 0 0 0.031 0.031 0 0 0 0 0
BKA 16 0 0 0 0.016 0.016 0 0 0 0 0
BKA 17 0 0 0 0 0 0 0 0 0 0
BKA 18 0 0 0 0.016 0.016 0 0 0 0 0
BKA 19 0 0 0 0.016 0.016 0 0 0 0 0
BKA 20 0 0 0 0.016 0.016 0 0 0 0 0
BKA 21 0 0 0 0.016 0.016 0 0 0 0 0
BKA 22 0 0 0 0.016 0.016 0 0 0 0 0
BKA 23 0 0 0 0.016 0.016 0 0 0 0 0
BKA 24 0 0 0 0.016 0.016 0 0 0 0 0
BKA 25 0 0.016 0.016 0.016 0.016 0 0 0 0 0
BKA 26 0 0 0 0.016 0.016 0 0 0 0.016 0.016
BKA 27 0 0 0 0.016 0.016 0 0 0 0 0
BKA 28 0 0 0 0.016 0.016 0 0 0 0 0
BKA 29 0 0 0 0.016 0.016 0 0 0 0 0
BKA 30 0 0 0 0.016 0.016 0 0 0 0 0
BKA 31 0 0 0 0.016 0.016 0 0 0 0 0
BKA 32 0 0 0 0.016 0.016 0 0 0 0 0
BKA 33 0 0 0 0.016 0.016 0 0 0 0 0
BKA 34 0 0 0 0.031 0.031 0 0 0 0 0
BKA 35 0 0 0 0.016 0.016 0 0 0 0 0
|NZ| 0 2 2 30 30 0 0 0 1 1
Total time 0 0.031 0.031 0.516 0.516 0 0 0 0.016 0.016
Table H.10: LP relaxation times (seconds) for BKA instances.
354 LP relaxation results tables
Appendix I
Additional results of theheuristics experiments
This appendix contains additional results pertaining to the heuristic meth-
ods. They are included here for completeness and to support some of the
comments made in Section 6.
Referenced in §5.4.3, the box plots in Figure I.1 show the spread of ρ values
for each of the data classes described in Sections 3.5 and 3.6, as well as the
BKA instances, here denoted as Class 0.
●
● ●●●●
●
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
0.0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
Figure I.1: Box plot of catalyst ratio ρ values by data class.
The raw summary statistics which underpin each of the box plots in Fig-
ures 6.2–6.8 (pages 164–171) is given in Tables I.2–I.9, while the notation
describing the column headings is given in Table I.1. Note, table rows cor-
responding to empty box plots (methods where no feasible solutions were
found for any problem instance in the data group) are omitted.
355
356 Additional results of the heuristics experiments
Notation DescriptionGroup Data group nameMethod Heuristic method name# Number of values (results)min Minimum valueq1 First quartile (value in position 1 + 0.25(#− 1))median Median of the values (value in position 1 + 0.5(#− 1))mean Mean of the values (sum of the values divided by #)q3 Third quartile (value in position 1 + 0.75(#− 1))max Maximum valuesd Standard deviation of the values
Table I.1: Notation for heuristic results summary tables.
Figures I.2–I.3 show the box plots of the number of solutions found by each
heuristic for each data group; they extend Figures 6.2–6.3 by the addition
of the H0 box plots, which dwarfs the other box plots for BKA, n25 and
n50.
357
● ●●
●● ●●
● ●●●●
●
H0 ( 35 )
H1_1 ( 35 )
H1_2 ( 35 )
H1_3 ( 35 )
H1_4 ( 35 )
H1_5 ( 35 )
H1_6 ( 35 )
H2_1 ( 0 )
H2_2 ( 0 )
H2_3 ( 0 )
H2_4 ( 0 )
H2_5 ( 0 )
H2_6 ( 0 )
H3_1 ( 35 )
H3_2 ( 35 )
H3_3 ( 35 )
H3_4 ( 35 )
H3_5 ( 35 )
H3_6 ( 35 )
H4_1 ( 0 )
H4_2 ( 0 )
H4_3 ( 0 )
H4_4 ( 0 )
H4_5 ( 0 )
H4_6 ( 0 )
0 10000 20000 30000 40000
(a) BKA (35 instances).
●
●●
●●● ●●●
●●●
●●●
●●●●●
●●●
●●●
●●● ●●●●
H0 ( 90 )
H1_1 ( 90 )
H1_2 ( 90 )
H1_3 ( 90 )
H1_4 ( 90 )
H1_5 ( 90 )
H1_6 ( 90 )
H2_1 ( 90 )
H2_2 ( 89 )
H2_3 ( 90 )
H2_4 ( 90 )
H2_5 ( 90 )
H2_6 ( 90 )
H3_1 ( 70 )
H3_2 ( 68 )
H3_3 ( 84 )
H3_4 ( 89 )
H3_5 ( 90 )
H3_6 ( 90 )
H4_1 ( 68 )
H4_2 ( 69 )
H4_3 ( 85 )
H4_4 ( 90 )
H4_5 ( 90 )
H4_6 ( 90 )
0 10000 20000 30000 40000 50000
(b) n = 25 (90 instances).
●●
●●
●●●
H0 ( 60 )
H1_1 ( 0 )
H1_2 ( 0 )
H1_3 ( 12 )
H1_4 ( 44 )
H1_5 ( 39 )
H1_6 ( 24 )
H2_1 ( 2 )
H2_2 ( 1 )
H2_3 ( 12 )
H2_4 ( 43 )
H2_5 ( 35 )
H2_6 ( 22 )
H3_1 ( 0 )
H3_2 ( 0 )
H3_3 ( 1 )
H3_4 ( 17 )
H3_5 ( 19 )
H3_6 ( 14 )
H4_1 ( 1 )
H4_2 ( 0 )
H4_3 ( 1 )
H4_4 ( 11 )
H4_5 ( 10 )
H4_6 ( 14 )
0 5000 10000 15000
(c) n = 50 (60 instances).
H0 ( 0 )
H1_1 ( 0 )
H1_2 ( 0 )
H1_3 ( 0 )
H1_4 ( 5 )
H1_5 ( 0 )
H1_6 ( 0 )
H2_1 ( 0 )
H2_2 ( 0 )
H2_3 ( 0 )
H2_4 ( 6 )
H2_5 ( 0 )
H2_6 ( 1 )
H3_1 ( 0 )
H3_2 ( 0 )
H3_3 ( 0 )
H3_4 ( 1 )
H3_5 ( 0 )
H3_6 ( 0 )
H4_1 ( 0 )
H4_2 ( 0 )
H4_3 ( 0 )
H4_4 ( 0 )
H4_5 ( 0 )
H4_6 ( 0 )
5 10 15 20 25
(d) n = 100 (60 instances).
Figure I.2: Box plots of “number of solutions found” (i) for each heuristic.
358 Additional results of the heuristics experiments
● ●●
●● ●●
● ●●●●
●
H0 ( 35 )
H1_1 ( 35 )
H1_2 ( 35 )
H1_3 ( 35 )
H1_4 ( 35 )
H1_5 ( 35 )
H1_6 ( 35 )
H2_1 ( 0 )
H2_2 ( 0 )
H2_3 ( 0 )
H2_4 ( 0 )
H2_5 ( 0 )
H2_6 ( 0 )
H3_1 ( 35 )
H3_2 ( 35 )
H3_3 ( 35 )
H3_4 ( 35 )
H3_5 ( 35 )
H3_6 ( 35 )
H4_1 ( 0 )
H4_2 ( 0 )
H4_3 ( 0 )
H4_4 ( 0 )
H4_5 ( 0 )
H4_6 ( 0 )
0 10000 20000 30000 40000
(a) BKA (35 instances).
●
●●
●●● ●●●
●●●
●●● ●
●●●● ●●● ●●●
●●●
●●● ●●●●
H0 ( 90 )
H1_1 ( 90 )
H1_2 ( 90 )
H1_3 ( 90 )
H1_4 ( 90 )
H1_5 ( 90 )
H1_6 ( 90 )
H2_1 ( 90 )
H2_2 ( 90 )
H2_3 ( 90 )
H2_4 ( 90 )
H2_5 ( 90 )
H2_6 ( 90 )
H3_1 ( 90 )
H3_2 ( 90 )
H3_3 ( 90 )
H3_4 ( 90 )
H3_5 ( 90 )
H3_6 ( 90 )
H4_1 ( 90 )
H4_2 ( 90 )
H4_3 ( 90 )
H4_4 ( 90 )
H4_5 ( 90 )
H4_6 ( 90 )
0 10000 20000 30000 40000 50000
(b) n = 25 (90 instances).● ●● ●● ●●● ● ●●●
● ●●
● ● ●●● ●● ● ●● ● ●●
● ●●● ●●●● ●●●●●●
●● ●● ●● ●●● ●●● ●●●
●●● ●● ●●● ●●● ●
●● ●● ●●● ●●●●●●● ●● ●● ●●● ●●●
H0 ( 60 )
H1_1 ( 60 )
H1_2 ( 60 )
H1_3 ( 60 )
H1_4 ( 60 )
H1_5 ( 60 )
H1_6 ( 60 )
H2_1 ( 60 )
H2_2 ( 60 )
H2_3 ( 60 )
H2_4 ( 60 )
H2_5 ( 60 )
H2_6 ( 60 )
H3_1 ( 60 )
H3_2 ( 60 )
H3_3 ( 60 )
H3_4 ( 60 )
H3_5 ( 60 )
H3_6 ( 60 )
H4_1 ( 60 )
H4_2 ( 60 )
H4_3 ( 60 )
H4_4 ( 60 )
H4_5 ( 60 )
H4_6 ( 60 )
0 5000 10000 15000
(c) n = 50 (60 instances).
●● ● ● ●
●●● ●●●
●●
H0 ( 60 )
H1_1 ( 60 )
H1_2 ( 60 )
H1_3 ( 60 )
H1_4 ( 60 )
H1_5 ( 60 )
H1_6 ( 60 )
H2_1 ( 60 )
H2_2 ( 60 )
H2_3 ( 60 )
H2_4 ( 60 )
H2_5 ( 60 )
H2_6 ( 60 )
H3_1 ( 60 )
H3_2 ( 60 )
H3_3 ( 60 )
H3_4 ( 60 )
H3_5 ( 60 )
H3_6 ( 60 )
H4_1 ( 60 )
H4_2 ( 60 )
H4_3 ( 60 )
H4_4 ( 60 )
H4_5 ( 60 )
H4_6 ( 60 )
0 5 10 15 20 25
(d) n = 100 (60 instances).
Figure I.3: Box plots of “number of solutions found” (ii) for each heuristic.
359
Group Method # min q1 median mean q3 max sd
BKA H0 35 14879 36496.5 39542 37552.7 40431.5 43413 5294.0H1 1 35 1 2 4 3.9 5 11 2.1H1 2 35 2 10 13 13.3 16.5 24 5.4H1 3 35 3 7.5 11 11.2 15 23 4.9H1 4 35 2 9 11 10.8 13 24 4.5H1 5 35 4 11 13 13.5 15.5 27 4.7H1 6 35 2 10.5 14 13.4 16 26 4.6H3 1 35 1 3 5 4.8 6 10 2.3H3 2 35 2 10.5 14 13.7 17.5 22 4.8H3 3 35 3 7 11 10.7 12 23 4.1H3 4 35 4 7 10 9.6 12 15 3.2H3 5 35 1 6 9 8.7 11 16 3.4H3 6 35 1 6 9 9.1 12 17 3.4
n25 H0 90 35556 43141 44991 44750.8 46813.5 49950 2741.4H1 1 90 1 7 10 10.3 13 23 4.6H1 2 90 2 8 10 10.9 14 26 4.8H1 3 90 2 7 11 10.7 13 23 4.4H1 4 90 1 10 13 13.3 16 22 4.3H1 5 90 5 12 15 15 18 25 4.6H1 6 90 4 12.3 16.5 16.2 18 30 5.2H2 1 90 2 7 10 10.3 13.8 22 4.8H2 2 89 2 6 9 9.3 12 22 4.2H2 3 90 2 8 11 10.7 13 28 4.2H2 4 90 4 10 13 13.2 15.8 25 4.5H2 5 90 6 12 15 15.2 18 27 4.9H2 6 90 5 13 16 16.4 20 29 5.1H3 1 70 1 3 4 4.8 6 17 2.7H3 2 68 1 3.8 5 5.4 7 13 2.6H3 3 84 1 4 6 6.3 8 12 2.8H3 4 89 2 6 9 8.8 11 18 3.3H3 5 90 4 7 9 9.9 12 24 3.9H3 6 90 3 8 10 10 11.8 19 3.7H4 1 68 1 3 4 4.1 5 9 1.9H4 2 69 1 3 4 4.4 6 9 2.3H4 3 85 2 5 6 6.4 8 14 2.4H4 4 90 2 6 7 8.2 10 17 3.3H4 5 90 3 7 8 8.8 11 21 3.3H4 6 90 3 8 9 9.7 11 18 3.1
n50 H0 60 439 1946 3410.5 4905.6 7610.5 15157 3725.2H1 3 12 4 10.8 13.5 16.3 20 32 8.6H1 4 44 6 12 18.5 18.1 21.3 41 6.8H1 5 39 4 12.5 16 17.4 21 34 7.0H1 6 24 8 15 18 19 22.3 34 6.0H2 1 2 10 10.3 10.5 10.5 10.8 11 0.7H2 2 1 12 12 12 12 12 12 NAH2 3 12 6 10.8 11.5 13.9 20 21 5.3H2 4 43 9 14 19 19.2 23 31 6.3H2 5 35 4 12.5 19 18.3 23 36 7.2H2 6 22 11 16 18.5 19.5 21.8 33 5.0H3 3 1 3 3 3 3 3 3 NAH3 4 17 1 3 4 4.8 7 10 2.7H3 5 19 1 3.5 6 5.5 7 11 2.6H3 6 14 1 4.3 5 6.2 8.5 15 4.2H4 1 1 2 2 2 2 2 2 NAH4 3 1 4 4 4 4 4 4 NAH4 4 11 1 2.5 5 4.2 5 9 2.3H4 5 10 1 3 3 3.5 3.8 8 1.8H4 6 14 1 2.3 4 3.6 5 6 1.6
n100 H1 4 5 13 13 14 17 20 25 5.3H2 4 6 4 5.5 9 11.5 14.8 26 8.4H2 6 1 2 2 2 2 2 2 NAH3 4 1 2 2 2 2 2 2 NA
Table I.2: Summary statistics for measure NUMSOLN (i) and (iii).
360 Additional results of the heuristics experiments
Group Method # min q1 median mean q3 max sd
BKA H0 35 14879 36496.5 39542 37552.7 40431.5 43413 5294.0H1 1 35 1 2 4 3.9 5 11 2.1H1 2 35 2 10 13 13.3 16.5 24 5.4H1 3 35 3 7.5 11 11.2 15 23 4.9H1 4 35 2 9 11 10.8 13 24 4.5H1 5 35 4 11 13 13.5 15.5 27 4.7H1 6 35 2 10.5 14 13.4 16 26 4.6H3 1 35 1 3 5 4.8 6 10 2.3H3 2 35 2 10.5 14 13.7 17.5 22 4.8H3 3 35 3 7 11 10.7 12 23 4.1H3 4 35 4 7 10 9.6 12 15 3.2H3 5 35 1 6 9 8.7 11 16 3.4H3 6 35 1 6 9 9.1 12 17 3.4
n25 H0 90 35556 43141 44991 44750.8 46813.5 49950 2741.4H1 1 90 1 7 10 10.3 13 23 4.6H1 2 90 2 8 10 10.9 14 26 4.8H1 3 90 2 7 11 10.7 13 23 4.4H1 4 90 1 10 13 13.3 16 22 4.3H1 5 90 5 12 15 15 18 25 4.6H1 6 90 4 12.3 16.5 16.2 18 30 5.2H2 1 90 2 7 10 10.3 13.8 22 4.8H2 2 90 0 6 9 9.2 12 22 4.3H2 3 90 2 8 11 10.7 13 28 4.2H2 4 90 4 10 13 13.2 15.8 25 4.5H2 5 90 6 12 15 15.2 18 27 4.9H2 6 90 5 13 16 16.4 20 29 5.1H3 1 90 0 1 4 3.7 5 17 3.1H3 2 90 0 1 4 4.0 6 13 3.3H3 3 90 0 4 6 5.9 8 12 3.1H3 4 90 0 6 9 8.7 11 18 3.4H3 5 90 4 7 9 9.9 12 24 3.9H3 6 90 3 8 10 10 11.8 19 3.7H4 1 90 0 1 3 3.1 5 9 2.4H4 2 90 0 1 3 3.4 5 9 2.8H4 3 90 0 5 6 6.0 7.8 14 2.7H4 4 90 2 6 7 8.2 10 17 3.3H4 5 90 3 7 8 8.8 11 21 3.3H4 6 90 3 8 9 9.7 11 18 3.1
n50 H0 60 439 1946 3410.5 4905.6 7610.5 15157 3725.2H1 3 60 0 0 0 3.3 0 32 7.6H1 4 60 0 0 14 13.3 21 41 10.0H1 5 60 0 0 12 11.3 18.3 34 10.1H1 6 60 0 0 0 7.6 16.3 34 10.1H2 1 60 0 0 0 0.4 0 11 1.9H2 2 60 0 0 0 0.2 0 12 1.5H2 3 60 0 0 0 2.8 0 21 6.1H2 4 60 0 0 15 13.8 21.3 31 10.2H2 5 60 0 0 10.5 10.7 20.3 36 10.6H2 6 60 0 0 0 7.1 16.3 33 9.9H3 3 60 0 0 0 0.1 0 3 0.4H3 4 60 0 0 0 1.4 1.3 10 2.6H3 5 60 0 0 0 1.7 3 11 2.9H3 6 60 0 0 0 1.5 0 15 3.3H4 1 60 0 0 0 0.0 0 2 0.3H4 3 60 0 0 0 0.1 0 4 0.5H4 4 60 0 0 0 0.8 0 9 1.9H4 5 60 0 0 0 0.6 0 8 1.5H4 6 60 0 0 0 0.8 0 6 1.7
n100 H1 4 60 0 0 0 1.4 0 25 4.9H2 4 60 0 0 0 1.2 0 26 4.2H2 6 60 0 0 0 0.0 0 2 0.3H3 4 60 0 0 0 0.0 0 2 0.3
Table I.3: Summary statistics for measure NUMSOLN (ii) and (iv).
361
Group Method # min q1 median mean q3 max sd
BKA H0 35 0 0 0 0 0 0 0H1 1 35 0 0.0 0.0 0.0 0.1 0.3 0.1H1 2 35 0 0.0 0.0 0.0 0.1 0.1 0.0H1 3 35 0 0.0 0.0 0.0 0.1 0.1 0.0H1 4 35 0 0.0 0.0 0.0 0.0 0.5 0.1H1 5 35 0 0.0 0.0 0.2 0.0 5.9 1.0H1 6 35 0 0.0 0.0 0.0 0.0 0.1 0.0H3 1 35 0 0.1 0.2 0.2 0.2 0.8 0.2H3 2 35 0 0.3 0.3 0.6 0.4 7.9 1.3H3 3 35 0 0.3 0.3 0.8 0.6 9.3 1.6H3 4 35 0.1 0.2 0.4 0.4 0.4 1.2 0.2H3 5 35 0 0.1 0.4 0.4 0.5 1.5 0.4H3 6 35 0 0.1 0.1 0.5 0.4 6.2 1.0
n25 H0 90 0 0 0 0.0 0 0.0 0.0H1 1 90 0 0.2 0.5 2.3 2.4 33.3 4.9H1 2 90 0 0.2 0.5 2.5 3.0 21.2 4.3H1 3 90 0 0.1 0.2 1.2 0.5 18.7 2.5H1 4 90 0 0.1 0.2 0.7 0.4 6.1 1.5H1 5 90 0 0.1 0.3 1.0 0.7 12.8 2.0H1 6 90 0 0.1 0.3 1.2 0.6 14.7 2.7H2 1 90 0 0.2 0.6 3.8 3.9 33.5 6.9H2 2 89 0 0.2 0.4 3.1 3.2 44.6 6.9H2 3 90 0 0.1 0.2 1.0 0.5 14.4 2.2H2 4 90 0 0.1 0.3 0.7 0.6 5.8 1.3H2 5 90 0 0.1 0.3 1.0 0.6 13.7 2.3H2 6 90 0 0.2 0.3 1.0 0.6 14.8 2.7H3 1 70 0 2.0 5.3 16.3 27.1 58.8 19.2H3 2 68 0 2.1 8.2 14.0 22.2 59.0 15.0H3 3 84 0 1.8 4.6 9.6 13.8 46.5 11.2H3 4 89 0 0.2 0.3 1.6 1.8 42.2 4.7H3 5 90 0 0.2 0.3 1.5 0.7 24.3 3.3H3 6 90 0 0.2 0.3 0.9 0.7 8.9 1.6H4 1 68 0 1.9 4.2 11.5 21.7 57.2 15.1H4 2 69 0 3.2 12.2 18.1 30.5 59.1 17.4H4 3 85 0 1.5 3.3 8.8 10.3 54.3 12.3H4 4 90 0 0.3 0.4 2.7 3.4 20.5 4.2H4 5 90 0 0.3 0.3 1.7 0.7 17.7 3.5H4 6 90 0 0.3 0.4 1.7 0.8 20.0 3.2
n50 H0 60 0 0.0 0.0 0.1 0.1 0.4 0.1H1 3 12 16.6 24.0 36.4 46.5 64.1 104.3 29.3H1 4 44 0 16.0 23.1 39.6 52.1 151.3 40.3H1 5 39 1.2 23.3 46.6 53.3 72.7 149.9 37.9H1 6 24 2.9 29.9 40.3 50.7 56.1 149.4 37.0H2 1 2 0.9 42.5 84.1 84.1 125.7 167.3 117.7H2 2 1 176.7 176.7 176.7 176.7 176.7 176.7 NAH2 3 12 0 9.0 35.8 65.2 124.3 170.6 63.5H2 4 43 0.2 19.6 29.1 38.5 48.1 138.7 30.6H2 5 35 10.8 23.7 41.5 53.7 78.9 133.4 35.1H2 6 22 15.4 26.0 43.4 59.8 82.9 132.4 39.5H3 3 1 19.5 19.5 19.5 19.5 19.5 19.5 NAH3 4 17 0 6.9 28.8 60.3 130.6 180.0 64.5H3 5 19 0 5.3 8.9 47.6 80.4 169.8 57.8H3 6 14 0 25.4 57.7 67.7 113.8 160.1 53.9H4 1 1 20.9 20.9 20.9 20.9 20.9 20.9 NAH4 3 1 63.5 63.5 63.5 63.5 63.5 63.5 NAH4 4 11 2.3 2.8 18.7 43.4 65.2 156.0 49.3H4 5 10 0 2.6 14.9 39.4 60.5 146.4 51.7H4 6 14 0 2.5 21.6 44.8 63.7 160.0 54.7
n100 H1 4 5 5.3 36.4 57.6 81.2 72.8 234.1 89.1H2 4 6 57.4 110.0 223.6 196.8 286.0 297.4 106.6H2 6 1 292.6 292.6 292.6 292.6 292.6 292.6 NAH3 4 1 233.3 233.3 233.3 233.3 233.3 233.3 NA
Table I.4: Summary statistics for measure FIRSTTIME.
362 Additional results of the heuristics experiments
Group Method # min q1 median mean q3 max sd
BKA H0 35 0 0 0 0.0 0 0.1 0.0H1 1 35 0.0 0.1 0.1 0.4 0.3 2.6 0.6H1 2 35 0 0.1 0.1 0.5 0.2 8.7 1.5H1 3 35 0 0.0 0.1 0.8 1.2 6.4 1.4H1 4 35 0.0 0.1 0.3 3.7 3.0 54.2 9.6H1 5 35 0.0 2.0 5.7 13.2 12.3 59.7 19.2H1 6 35 0.0 1.7 3.7 9.2 12.8 57.5 13.5H3 1 35 0 0.6 1.8 8.7 9.7 58.7 13.6H3 2 35 0 1.2 5.3 9.5 12.1 54.2 12.0H3 3 35 0.1 0.9 4.8 10.3 11.5 55.2 14.9H3 4 35 0.1 0.5 1.0 7.6 6.5 59.8 14.2H3 5 35 0 0.4 2.3 10.5 11.6 58.3 16.4H3 6 35 0.1 0.2 1.8 15.3 25.5 58.2 21.6
n25 H0 90 0.0 5.4 18.2 19.9 32.6 56.9 16.4H1 1 90 0.6 12.6 27.2 28.8 44.1 60.0 18.9H1 2 90 0.8 13.4 32.0 32.8 55.2 59.8 20.4H1 3 90 0.1 17.5 25.8 30.9 49.6 60.0 18.9H1 4 90 0.1 20.7 32.0 36.3 55 60.0 16.8H1 5 90 7.2 27.4 54.8 44.5 57.8 60.0 16.6H1 6 90 0.1 30.6 55.2 45.6 57.3 60.0 15.4H2 1 90 0.1 11.9 26.6 29.9 47.9 59.7 19.5H2 2 89 2.8 11.4 27.7 29.3 49.6 60.0 19.9H2 3 90 0.1 18.6 30.6 33.6 55.0 60.0 18.5H2 4 90 6.8 21.9 34.1 37.3 55.6 60.0 18.1H2 5 90 0.1 28.3 49.4 42.8 57.1 60.0 16.0H2 6 90 11.0 28.2 53.8 43.7 57.8 60.0 15.8H3 1 70 2.3 26.1 47.6 41.5 57.2 60.0 17.5H3 2 68 2.9 29.7 47.3 41.1 56.1 59.9 17.5H3 3 84 0 17.7 45.4 38.0 55.8 60.0 20.0H3 4 89 0 25.5 49.9 40.0 56.5 60.1 19.6H3 5 90 1.0 30.6 54.8 44.2 57.2 60.0 17.8H3 6 90 4.0 30.4 50.4 42.8 56.9 60.0 16.6H4 1 68 3.3 26.5 50.5 42.1 57.3 60.0 18.1H4 2 69 3.8 29.7 50.8 42.0 56.5 59.8 17.8H4 3 85 0.3 24.6 47.4 40.7 56.9 59.9 18.4H4 4 90 0.4 25.0 45.8 40.4 56.9 60.0 18.9H4 5 90 2.3 26.9 45.5 41.2 56.6 60.0 17.2H4 6 90 4.2 29.7 46.2 42.9 57.0 59.9 15.9
n50 H0 60 3.3 45.7 82.4 92.2 133.6 179.6 51.8H1 3 12 82.1 129.4 166.4 147.6 171.7 180.0 35.5H1 4 44 2.3 118.9 162.2 140.1 175.2 180.2 46.1H1 5 39 37.9 131.8 163.9 146.1 174.2 180.1 37.5H1 6 24 0 96.6 155.9 134.5 173.3 180.1 48.3H2 1 2 172.8 174.6 176.4 176.4 178.2 180.0 5.1H2 2 1 180.0 180.0 180.0 180.0 180.0 180.0 NAH2 3 12 46.8 144.0 170.9 153.2 177.3 180.3 40.3H2 4 43 31.0 132.8 163.9 148.3 176.6 180.1 38.4H2 5 35 63.9 131.5 164.9 147.4 171.3 179.9 36.7H2 6 22 82.3 140.0 167.3 151.7 176.3 179.9 32.0H3 3 1 49.0 49.0 49.0 49.0 49.0 49.0 NAH3 4 17 6.3 132.7 173.0 140.5 176.1 180.0 58.8H3 5 19 86.8 161.5 166.7 158.7 172.8 180.0 26.4H3 6 14 0 129.7 158.4 141.0 169.0 179.8 47.3H4 1 1 74.4 74.4 74.4 74.4 74.4 74.4 NAH4 3 1 135.1 135.1 135.1 135.1 135.1 135.1 NAH4 4 11 33.0 105.0 153.6 132.1 166.4 180 49.9H4 5 10 25.1 52.0 84.3 104.2 166.6 180.1 61.6H4 6 14 14.8 131.2 153.1 136.2 167.6 178.3 50.0
n100 H1 4 5 0 126.7 148.3 168.2 272.9 293.3 119.4H2 4 6 212.9 289.1 296.1 282.1 299.6 300.0 34.3H2 6 1 300.0 300.0 300.0 300.0 300.0 300.0 NAH3 4 1 295.0 295.0 295.0 295.0 295.0 295.0 NA
Table I.5: Summary statistics for measure BESTTIME.
363
Group Method # min q1 median mean q3 max sd
BKA H0 35 39 57 78 78.7 94 156 32.1H1 1 35 41 76 111 144.7 205 304 83.5H1 2 35 30 73 107 136.8 175.5 386 93.8H1 3 35 30 81 106 126.9 154 346 72.7H1 4 35 53 88 112 128.1 155 270 59.0H1 5 35 53 79 122 136.2 177 369 75.0H1 6 35 53 85 125 144.8 199 330 77.0H3 1 35 41 78 132 153.6 228.5 358 85.8H3 2 35 42 93.5 127 141.5 178 374 73.2H3 3 35 39 91 121 148.1 195.5 404 84.2H3 4 35 42 84 98 113.9 142.5 285 53.1H3 5 35 42 84 112 114.4 144.5 208 41.5H3 6 35 42 78.5 104 112.1 146 236 49.2
n25 H0 90 216.2 270.1 293.1 298.3 323.1 536.6 50.4H1 1 90 154.7 233.5 289.1 295.5 333.3 587.0 91.1H1 2 90 168.1 240.2 279.4 310.4 339.3 642.7 103.6H1 3 90 157.5 250.8 297.2 306.4 340.2 633.4 88.4H1 4 90 195.4 268.8 322.3 324.7 360.3 562.3 71.5H1 5 90 252.7 363.4 405.0 406.0 455.6 651.9 82.1H1 6 90 284.2 376.6 436.0 436.0 493.8 712.2 86.4H2 1 90 150.1 235.8 274.8 303.6 347.6 634.8 102.2H2 2 89 135.3 230.4 277.0 294.1 322.7 612.3 95.5H2 3 90 170.5 247.7 290.4 305.1 326.2 661.6 91.4H2 4 90 217.5 287.7 320.2 336.8 374.2 646.9 72.3H2 5 90 229.0 351.9 404.1 404.9 462.5 605.2 76.2H2 6 90 282.6 379.1 427.7 435.9 491.9 686.2 81.3H3 1 70 143.9 224.8 259.7 263.7 300.7 462.2 56.8H3 2 68 144.1 196.9 238.0 257.0 304.2 488.8 79.2H3 3 84 165.8 223.4 263.6 272.1 316.0 463.7 67.9H3 4 89 179.3 255.8 293.1 297.8 333.1 483.1 58.9H3 5 90 231.8 310.4 343.6 346.6 375.9 632.4 57.9H3 6 90 240.7 311.5 346.4 355.0 397.7 574.3 59.6H4 1 68 145.9 204.9 250.1 258.9 297.9 522.9 75.1H4 2 69 139.1 207.9 238.0 254.5 277.9 507.7 70.1H4 3 85 166.2 224.8 266.4 266.9 293.8 456.1 60.1H4 4 90 198.3 270.9 301.1 305.0 330.1 520.7 53.7H4 5 90 245.1 303.6 343.7 346.3 384.2 564.1 54.0H4 6 90 222.2 317.1 342.3 353.7 382.9 576.3 63.3
n50 H0 60 403.4 478.8 506.3 515.6 552.9 690.9 56.8H1 3 12 295.2 419.2 449.4 441.3 479.4 536.7 66.0H1 4 44 367.2 428.3 505.0 501.8 555.7 706.4 81.3H1 5 39 412.9 561.2 624.5 621.4 692.7 776.4 93.4H1 6 24 482.2 646.2 705.9 684.7 728.3 807.6 78.2H2 1 2 354.2 362.9 371.7 371.7 380.5 389.3 24.8H2 2 1 612.7 612.7 612.7 612.7 612.7 612.7 NAH2 3 12 341.8 363.0 403.4 434.6 437.0 664.1 108.7H2 4 43 349.7 458.6 502.3 509.6 553.0 762.4 74.6H2 5 35 406.7 586.3 615.9 614.6 660.5 748.5 75.3H2 6 22 516.8 607.0 675.0 665.5 719.2 810.7 84.6H3 3 1 326.4 326.4 326.4 326.4 326.4 326.4 NAH3 4 17 363.4 384.4 448.1 452.2 496.5 604.9 74.6H3 5 19 397.2 458.0 488.1 495.9 532.3 582.8 51.3H3 6 14 446.6 480.2 554.6 541.7 584.1 666.7 63.5H4 1 1 348.7 348.7 348.7 348.7 348.7 348.7 NAH4 3 1 411.2 411.2 411.2 411.2 411.2 411.2 NAH4 4 11 371.8 411.4 439.0 463.2 482.0 603.7 76.1H4 5 10 415.3 446.1 492.5 512.2 531.3 767.7 101.4H4 6 14 466.3 499.2 537.4 545.6 571.1 712.5 66.9
n100 H1 4 5 628.8 754.6 772.3 778.5 823.8 913.1 103.9H2 4 6 563.4 617.9 650.6 655.4 663.1 793.3 77.3H2 6 1 855.1 855.1 855.1 855.1 855.1 855.1 NAH3 4 1 786.9 786.9 786.9 786.9 786.9 786.9 NA
Table I.6: Summary statistics for measure FIRSTCOST.
364 Additional results of the heuristics experiments
Group Method # min q1 median mean q3 max sd
BKA H0 35 27 50 78 72.3 84 126 27.9H1 1 35 27 50 78 72.3 84 126 27.9H1 2 35 27 50 78 72.3 84 126 27.9H1 3 35 30 57 78 73.8 84 126 27.3H1 4 35 42 61 84 78.5 90 126 26.2H1 5 35 42 59 84 82.3 91 174 30.1H1 6 35 42 59.5 84 84.1 93 198 33.1H3 1 35 27 50 78 72.9 84 126 27.6H3 2 35 27 50 78 72.3 84 126 27.9H3 3 35 36 54 78 74.4 84 126 27.2H3 4 35 42 55 84 78.1 93 135 27.7H3 5 35 42 60.5 84 81.7 95 132 27.6H3 6 35 42 63 84 84.1 98 147 28.5
n25 H0 90 134.4 175.4 195.1 199.9 215.7 408.3 42.1H1 1 90 126.8 167.0 190.4 197.9 216.9 411.5 45.4H1 2 90 129.7 167.0 191.7 198.2 218.9 415.3 44.8H1 3 90 132.6 172.7 196.9 201.7 219.5 414.2 44.3H1 4 90 162.4 194.7 216.6 224.7 247.4 432.1 43.7H1 5 90 168.9 230.8 252.2 260.9 281.1 484.7 48.2H1 6 90 167.7 237.9 269.2 274.5 301.1 476.6 47.9H2 1 90 126.8 170.2 192.6 198.7 218.9 411.2 44.2H2 2 89 126.8 170.2 191.9 199.0 215.7 417.0 46.4H2 3 90 126.8 172.9 194.2 201.3 223.7 434.1 45.4H2 4 90 159.3 197.7 219.7 225.3 245.5 436.0 44.3H2 5 90 175.1 229.2 255.9 260.3 280.9 468.6 45.3H2 6 90 168.9 237.1 263.0 272.8 305.7 454.1 49.0H3 1 70 129.7 174.3 201.7 210.4 234.2 358.3 50.8H3 2 68 129.7 174.6 194.9 204.4 230.4 377.2 48.2H3 3 84 137.4 171.7 197.2 206.2 230.6 353.0 43.5H3 4 89 163.5 199.2 224.1 231.8 260.3 442.1 45.6H3 5 90 170.9 231.3 259.9 262.0 281.9 520.2 49.2H3 6 90 173.4 235.7 268.1 265.6 288.6 457.1 47.5H4 1 68 126.8 170.1 197.9 204.3 233.3 310.7 42.6H4 2 69 129.7 173.5 203.4 209.9 238.0 408.4 52.7H4 3 85 135.0 172.7 197.7 207.5 239.5 417.5 47.3H4 4 90 165.5 201.3 230.3 233.9 255.5 441.5 43.2H4 5 90 168.5 227.3 255.9 258.4 281.9 436.7 46.3H4 6 90 179.8 231.8 261.4 267.0 295.1 519.0 48.7
n50 H0 60 308.1 354.5 379.6 386.2 407.1 563.5 46.1H1 3 12 253.2 298.7 324.8 330.4 349.3 416.6 50.6H1 4 44 298.1 334.0 362.8 376.7 417.1 559.0 56.0H1 5 39 336.9 397.1 450.0 450.8 491.7 613.0 69.0H1 6 24 381.7 444.7 493.7 491.2 534.9 685.8 72.4H2 1 2 308.9 316.2 323.5 323.5 330.8 338.1 20.6H2 2 1 503.8 503.8 503.8 503.8 503.8 503.8 NAH2 3 12 253.2 280.0 300.8 322.2 317.5 603.2 92.0H2 4 43 281.2 335.1 362.3 371.3 404.3 586.9 58.0H2 5 35 358.0 399.7 435.1 450.5 494.9 619.4 65.7H2 6 22 386.8 427.3 465.0 478.0 523.1 632.5 67.5H3 3 1 264.8 264.8 264.8 264.8 264.8 264.8 NAH3 4 17 299.3 329.1 393.4 397.4 441.6 578.4 73.7H3 5 19 336.1 412.6 454.5 437.1 472.7 502.5 52.2H3 6 14 396.7 436.4 489.7 496.2 554.3 627.9 73.4H4 1 1 320.5 320.5 320.5 320.5 320.5 320.5 NAH4 3 1 405.5 405.5 405.5 405.5 405.5 405.5 NAH4 4 11 313.4 384.0 407.1 413.1 455.0 516.1 63.9H4 5 10 378.7 402.8 440.9 454.0 468.5 657.2 80.1H4 6 14 324.7 450.8 488.8 500.2 555.6 693.0 92.2
n100 H1 4 5 456.6 613.7 614.4 616.7 687.7 711.3 99.6H2 4 6 507.9 530.2 568.4 580.8 595.0 718.5 76.1H2 6 1 827.0 827.0 827.0 827.0 827.0 827.0 NAH3 4 1 728.6 728.6 728.6 728.6 728.6 728.6 NA
Table I.7: Summary statistics for measure BESTCOST.
365
Group Method # min q1 median mean q3 max sdBKA H0 35 0 0 0 9.2 23.8 48.1 15.5
H1 1 35 0 32.1 71.4 100.3 140.6 384 90.2H1 2 35 0 14.8 51.2 82.0 108.9 353.8 91.5H1 3 35 0 23.1 59.0 74.8 124.9 225.6 64.5H1 4 35 0 26.2 82.5 82.4 127.1 246.2 62.4H1 5 35 0 31.3 71.8 87.8 113.1 266.7 67.7H1 6 35 0 45.6 87.2 98.5 132.1 323.1 70.4H3 1 35 0 49.6 92.7 108.3 151.6 359.0 81.6H3 2 35 0 20.5 73.8 104.9 162.3 379.5 98.9H3 3 35 0 24.5 107.9 110.1 147.6 417.9 100.1H3 4 35 0 14.5 42.9 63.4 93.5 265.4 65.0H3 5 35 0 20.4 69.0 66.7 97.1 186 52.6H3 6 35 0 21.2 42.9 58.9 87.7 202.6 53.1
n25 H0 90 10.5 39.6 52.5 56.6 73.2 144.8 25.7H1 1 90 0 23.3 43.4 53.4 73.3 234.1 42.2H1 2 90 0.5 29.5 48.1 62.6 76.1 335.9 55.1H1 3 90 5.1 31.9 49.5 60.3 75.9 279.6 47.2H1 4 90 19.7 40.4 57.7 71.3 94.4 202.5 42.7H1 5 90 27.3 75.2 102.9 115.5 142.2 298.0 56.4H1 6 90 18.3 87.8 121.3 131.7 168.7 330.8 59.3H2 1 90 2.6 24.0 41.8 58.7 73.5 315.0 54.0H2 2 89 0.1 25.7 45.2 52.0 61.5 219.9 39.2H2 3 90 5.5 29.9 47.2 59.2 78.9 336.8 47.0H2 4 90 20.2 48.9 68.1 77.3 90.2 216.1 40.0H2 5 90 34.3 75.5 109.7 115.1 146.7 266.8 53.2H2 6 90 34.8 92.1 121.0 132.0 156.9 355.8 59.6H3 1 70 0 18.5 31.3 38.9 51.8 167.6 30.4H3 2 68 0 9.0 21.9 34.5 46.8 224.7 40.5H3 3 84 0 17.9 37.1 43.1 56.8 182.2 34.6H3 4 89 17.8 38.9 52.2 55.3 66.0 148.9 24.9H3 5 90 17.5 57.2 78.4 82.6 106.3 213.6 33.5H3 6 90 24.6 64.0 84.5 86.8 103.7 230.4 34.1H4 1 68 0 10.1 28.2 41.6 53.9 259.2 44.1H4 2 69 0 9.5 25.0 35.0 44.6 167.0 35.3H4 3 85 0 18.7 35.2 39.7 49.6 171.1 29.7H4 4 90 12.9 42.3 55.4 59.9 73.5 142.9 26.8H4 5 90 20.5 62.9 77.8 82.5 96.7 238.7 33.3H4 6 90 28.3 58.9 79.4 86.3 104.7 209.7 36.8
Table I.8: Summary statistics for measure FIRSTCOSTGAP.
Group Method # min q1 median mean q3 max sdBKA H0 35 0 0 0 0 0 0 0
H1 1 35 0 0 0 0 0 0 0H1 2 35 0 0 0 0 0 0 0H1 3 35 0 0 0 2.8 2.4 20 6.1H1 4 35 0 0 7.0 11.5 15.1 70.4 16.3H1 5 35 0 0 2.4 16.8 23.1 80 23.9H1 6 35 0 0 7.7 18.8 24.2 68 23.2H3 1 35 0 0 0 0.9 0 15.8 3.7H3 2 35 0 0 0 0 0 0 0H3 3 35 0 0 0 3.9 7.7 33.3 7.1H3 4 35 0 0 7.0 9.8 14.3 60 14.3H3 5 35 0 0 7.7 16.5 20.5 92 23.1H3 6 35 0 0 14.3 19.6 29.5 76 22.2
n25 H0 90 0 0.6 2.6 3.0 4.4 14.8 2.8H1 1 90 0 0 0 1.7 0.6 36.1 4.9H1 2 90 0 0 0 1.9 0.9 31.3 4.7H1 3 90 0 0.5 2.5 3.8 5.9 18.9 4.3H1 4 90 0.9 8.7 14.0 16.5 23.5 52.3 10.5H1 5 90 7.6 23.6 34.2 36.0 47.1 82.2 16.4H1 6 90 7.8 27.9 42.0 43.5 55.5 115.2 20.4H2 1 90 0 0 0 2.3 1.7 36.2 5.5H2 2 89 0 0 0 2.5 1.1 55.0 8.0H2 3 90 0 0.3 2.1 3.6 4.9 20.5 4.4H2 4 90 1.5 10.4 14.9 16.7 21.1 45.9 9.1H2 5 90 12.8 23.0 33.2 35.9 43.5 93.9 17.6H2 6 90 11.1 27.7 37.4 42.6 52.9 109.9 21.3H3 1 70 0 0 1.2 9.3 11.0 110.1 18.4H3 2 68 0 0 0.0 6.0 7.0 61.3 12.0H3 3 84 0 0.8 3.7 7.2 8.7 49.4 10.2H3 4 89 3.0 12.4 17.2 20.1 24.8 55.4 10.6H3 5 90 7.8 22.1 35.0 36.6 47.7 94.1 18.2H3 6 90 7.5 25.0 37.7 38.3 47.3 87.4 16.0H4 1 68 0 0 1.8 10.9 13.8 89.6 19.1H4 2 69 0 0 1.1 10.5 9.5 135.9 22.1H4 3 85 0 1.2 3.6 6.9 10.7 34.7 8.3H4 4 90 1.3 11.6 19.4 21.6 27.6 64.9 12.6H4 5 90 6.9 21.9 30.3 34.8 46.2 85.2 17.7H4 6 90 12.2 26.4 36.6 39.0 50.1 88.5 15.6
Table I.9: Summary statistics for measure BESTCOSTGAP.
366 Additional results of the heuristics experiments
I.1 Construction heuristic results
Additional results for the construction heuristic, Method H0, are given in
this section. They include results on the number of insertion orders tried
(|IO|), the number of insertion orders that produced a feasible solution
(|FS|), the number of unique feasible solutions constructed (|UFS|), the
ratio of successful insertion orders (Rsuccess = |FS|/|IO|) and the ratio
of unique feasible solutions (Runique = |UFS|/|FS|). These results are
reported for individual data sets in Section I.1.1, as well as aggregated to
the data class and data group levels in Section I.1.2.
In the table columns reporting results on Rsuccess and Runique, values have
been rounded to three decimal places. Consequently, values are shown as
1.000 if less than 1 but greater than or equal to 0.9995; a value is shown as
1 if and only if it is exactly 1.
Finally, as mentioned in Section 6.4, all of the n100 (Data Classes 16–21)
results reported in this section are from the extended experiments with a
time limit of 10,300 seconds.
I.1.1 Individual data set results
Tables I.11–I.14 contain the raw results regarding the success of the insertion
orders for each data set, while the notation describing the column headings is
given in Table I.10. The key results and analysis of these tables are discussed
in Section 6.4.
Notation DescriptionClass Data class numberName Data class name# Data set number|IO| Number of insertion orders tried|FS| Number of insertion orders that produced a feasible solution|UFS| Number of unique feasible solutions constructedRsuccess Ratio of successful insertion orders, |FS|/|IO|Runique Ratio of unique feasible solutions, |UFS|/|FS|
Table I.10: Notation for construction heuristic ratio results tables.
I.1 Construction heuristic results 367
Class Name # |IO| |FS| |UFS| Rsuccess Runique
0 BKA 1 290379 290379 30091 1 0.104
2 310429 310429 30249 1 0.097
3 128006 127787 37789 0.998 0.296
4 132860 130876 37196 0.985 0.284
5 152787 72926 36134 0.477 0.495
6 624058 624058 14879 1 0.024
7 246542 246542 33509 1 0.136
8 245163 245163 33418 1 0.136
9 131172 131153 37358 1.000 0.285
10 332109 332109 31503 1 0.095
11 58536 58527 40643 1.000 0.694
12 57235 57234 40091 1.000 0.700
13 78104 78104 40060 1 0.513
14 53346 53346 40421 1 0.758
15 53101 53101 40272 1 0.758
16 55047 54348 40222 0.987 0.740
17 82510 82510 39661 1 0.481
18 54181 54181 40902 1 0.755
19 58818 58805 41335 1.000 0.703
20 78278 78278 39601 1 0.506
21 54185 54108 39542 0.999 0.731
22 297859 297859 32780 1 0.110
23 305725 305725 33212 1 0.109
24 53823 53823 39373 1 0.732
25 53574 53526 39118 0.999 0.731
26 53506 53493 40247 1.000 0.752
27 53590 53590 41005 1 0.765
28 52665 52664 40442 1.000 0.768
29 55320 55320 36859 1 0.666
30 55322 55322 39445 1 0.713
31 83825 83825 41398 1 0.494
32 101077 51653 37570 0.511 0.727
33 59539 52544 43046 0.883 0.819
34 55365 52204 43413 0.943 0.832
35 61610 61610 41561 1 0.675
Table I.11: Construction heuristic ratio results for BKA instances.
Table I.12: Construction heuristic ratio results for n25 instances.
Class Name # |IO| |FS| |UFS| Rsuccess Runique
1 n25 1 1 175995 43069 43049 0.245 1.000
2 124105 46291 46181 0.373 0.998
3 147639 43851 43800 0.297 0.999
4 167654 43684 41775 0.261 0.956
5 145359 43192 43171 0.297 1.000
6 150920 42496 42301 0.282 0.995
7 126236 44623 44510 0.353 0.997
8 152940 43139 43131 0.282 1.000
9 170936 42724 42681 0.250 0.999
10 102793 48178 47855 0.469 0.993
2 n25 2 1 87450 49652 48728 0.568 0.981
2 140167 44808 44738 0.320 0.998
3 137594 45630 45544 0.332 0.998
4 135999 45092 45002 0.332 0.998
5 136432 47114 46976 0.345 0.997
6 130249 45828 45627 0.352 0.996
7 130870 45665 45651 0.349 1.000
8 213297 39178 39091 0.184 0.998
9 126218 46700 46430 0.370 0.994
10 205539 39896 39603 0.194 0.993
3 n25 3 1 184527 40671 40558 0.220 0.997
2 123267 46504 46431 0.377 0.998
3 128431 47123 46948 0.367 0.996
4 129242 46071 46042 0.356 0.999
5 86708 49221 49193 0.568 0.999
Continued on next page
368 Additional results of the heuristics experiments
Table I.12 – continued from previous pageClass Name # |IO| |FS| |UFS| Rsuccess Runique
6 163267 42986 42762 0.263 0.995
7 112391 46802 46704 0.416 0.998
8 111724 47052 47014 0.421 0.999
9 109423 47514 47432 0.434 0.998
10 133657 44345 44330 0.332 1.000
4 n25 4 1 143527 44591 44546 0.311 0.999
2 151884 43195 43192 0.284 1.000
3 113425 49187 49120 0.434 0.999
4 179271 41417 41403 0.231 1.000
5 126228 44982 44980 0.356 1.000
6 101686 48098 48085 0.473 1.000
7 119368 45796 45790 0.384 1.000
8 147351 44490 44366 0.302 0.997
9 193663 41600 41214 0.215 0.991
10 132527 45835 45464 0.346 0.992
5 n25 5 1 173717 42363 42206 0.244 0.996
2 119693 46841 46800 0.391 0.999
3 148510 44386 44353 0.299 0.999
4 108950 49800 48089 0.457 0.966
5 112791 47737 47617 0.423 0.997
6 116557 47567 46912 0.408 0.986
7 143194 45301 45025 0.316 0.994
8 108890 48357 47019 0.444 0.972
9 142943 45044 44962 0.315 0.998
10 146724 45573 45527 0.311 0.999
6 n25 6 1 124982 47115 46818 0.377 0.994
2 156605 44841 44763 0.286 0.998
3 142289 44988 44930 0.316 0.999
4 151415 44324 44197 0.293 0.997
5 193005 42700 42225 0.221 0.989
6 164482 43973 43875 0.267 0.998
7 131950 46417 46259 0.352 0.997
8 127639 51105 46996 0.400 0.920
9 114516 47260 47186 0.413 0.998
10 207763 41300 41137 0.199 0.996
7 n25 7 1 226267 40261 39967 0.178 0.993
2 270198 35812 35556 0.133 0.993
3 225508 38716 38453 0.172 0.993
4 147282 46184 46008 0.314 0.996
5 124253 47598 47348 0.383 0.995
6 94603 48994 48935 0.518 0.999
7 122055 48093 47478 0.394 0.987
8 165277 45787 45517 0.277 0.994
9 161928 45724 44808 0.282 0.980
10 157409 44720 44614 0.284 0.998
8 n25 8 1 173071 44480 43083 0.257 0.969
2 205582 41039 39858 0.200 0.971
3 192704 41774 41077 0.217 0.983
4 245070 38097 37910 0.155 0.995
5 145556 47453 45602 0.326 0.961
6 169529 44445 44131 0.262 0.993
7 169677 45273 44045 0.267 0.973
8 139011 47918 46112 0.345 0.962
9 115879 47115 46971 0.407 0.997
10 166260 45206 44460 0.272 0.983
9 n25 9 1 144969 44752 44667 0.309 0.998
2 98556 48782 48659 0.495 0.997
3 120381 47074 47071 0.391 1.000
4 77295 49967 49950 0.646 1.000
5 116282 46730 46726 0.402 1.000
6 153831 45224 45195 0.294 0.999
7 127963 46091 46090 0.360 1.000
8 150793 42773 42753 0.284 1.000
9 107768 43951 43932 0.408 1.000
10 129925 42314 42282 0.326 0.999
I.1 Construction heuristic results 369
Class Name # |IO| |FS| |UFS| Rsuccess Runique
10 n50 1 1 274879 1651 1651 0.006 1
2 277115 1949 1949 0.007 1
3 276834 1404 1404 0.005 1
4 268565 1642 1642 0.006 1
5 251097 3035 3035 0.012 1
6 296484 737 737 0.002 1
7 263637 2351 2351 0.009 1
8 273059 1977 1977 0.007 1
9 265071 2175 2175 0.008 1
10 294345 1602 1602 0.005 1
11 n50 2 1 282953 3367 3367 0.012 1
2 288129 1937 1937 0.007 1
3 284417 3862 3862 0.014 1
4 277140 2861 2861 0.010 1
5 289458 750 750 0.003 1
6 287615 1907 1907 0.007 1
7 269838 3934 3934 0.015 1
8 280064 2396 2396 0.009 1
9 264126 2270 2270 0.009 1
10 289264 439 439 0.002 1
12 n50 3 1 291451 2745 2745 0.009 1
2 292580 840 840 0.003 1
3 291737 1707 1707 0.006 1
4 290649 4208 4208 0.014 1
5 300364 1573 1573 0.005 1
6 272816 3454 3454 0.013 1
7 313186 1821 1821 0.006 1
8 292852 3322 3322 0.011 1
9 307971 1830 1830 0.006 1
10 309333 841 841 0.003 1
13 n50 4 1 237967 5461 5461 0.023 1
2 241982 15157 15157 0.063 1
3 267526 2361 2361 0.009 1
4 252710 10298 10298 0.041 1
5 258384 5658 5658 0.022 1
6 265684 3918 3918 0.015 1
7 249017 8694 8694 0.035 1
8 265729 2793 2793 0.011 1
9 224928 13295 13295 0.059 1
10 248763 8275 8275 0.033 1
14 n50 5 1 263718 7478 7478 0.028 1
2 247880 13270 13270 0.054 1
3 249209 8611 8611 0.035 1
4 242173 7366 7366 0.030 1
5 296318 3232 3232 0.011 1
6 263986 7840 7840 0.030 1
7 274621 8304 8304 0.030 1
8 274938 7678 7678 0.028 1
9 249231 11689 11689 0.047 1
10 261098 5783 5783 0.022 1
15 n50 6 1 274266 8562 8562 0.031 1
2 266064 4926 4926 0.019 1
3 289638 5483 5483 0.019 1
4 264037 12215 12215 0.046 1
5 267784 7588 7588 0.028 1
6 273774 3676 3676 0.013 1
7 240614 7093 7093 0.029 1
8 268487 8357 8357 0.031 1
9 276888 11868 11868 0.043 1
10 281896 2822 2822 0.010 1
Table I.13: Construction heuristic ratio results for n50 instances.
370 Additional results of the heuristics experiments
Class Name # |IO| |FS| |UFS| Rsuccess Runique
16 n100 1 1 3237318 0 0 0 —
2 3106699 0 0 0 —
3 3276267 0 0 0 —
4 3378951 0 0 0 —
5 3149639 0 0 0 —
6 3065811 0 0 0 —
7 3241014 0 0 0 —
8 3198566 0 0 0 —
9 3229117 0 0 0 —
10 3082161 0 0 0 —
17 n100 2 1 3322283 0 0 0 —
2 3412216 0 0 0 —
3 3398309 0 0 0 —
4 3294673 0 0 0 —
5 3305109 0 0 0 —
6 3463134 0 0 0 —
7 3352733 0 0 0 —
8 3267623 0 0 0 —
9 3174770 0 0 0 —
10 3397005 0 0 0 —
18 n100 3 1 3322778 0 0 0 —
2 3315435 0 0 0 —
3 3533312 0 0 0 —
4 3454674 0 0 0 —
5 3520830 0 0 0 —
6 3291558 0 0 0 —
7 3487482 0 0 0 —
8 3320469 0 0 0 —
9 3428719 0 0 0 —
10 3455096 0 0 0 —
19 n100 4 1 3008184 0 0 0 —
2 3132735 0 0 0 —
3 2952764 0 0 0 —
4 3157071 1 1 0.0000003 1
5 3254610 0 0 0 —
6 3106789 0 0 0 —
7 2814360 0 0 0 —
8 3377634 0 0 0 —
9 3009267 0 0 0 —
10 3039166 0 0 0 —
20 n100 5 1 3194666 0 0 0 —
2 3267922 0 0 0 —
3 3156806 0 0 0 —
4 3197151 0 0 0 —
5 3699708 0 0 0 —
6 3100016 0 0 0 —
7 3236659 0 0 0 —
8 3266612 0 0 0 —
9 2976436 0 0 0 —
10 3226303 1 1 0.0000003 1
21 n100 6 1 3211985 0 0 0 —
2 3344456 0 0 0 —
3 3201356 0 0 0 —
4 3261751 1 1 0.0000003 1
5 3563330 0 0 0 —
6 3321759 0 0 0 —
7 3272768 0 0 0 —
8 3439096 1 1 0.0000003 1
9 3298429 0 0 0 —
10 3341979 0 0 0 —
Table I.14: Construction heuristic ratio results for n100 instances.
I.1 Construction heuristic results 371
I.1.2 Aggregated data group and data class results
In this section, the construction heuristic results given in §I.1.1 are aggre-
gated by data group and data class, and summarised in Figures I.4–I.13 as
box plots. Due to differing magnitudes, plotting all related results in one
figure may obscure interesting behaviour. Consequently, additional subplots
have been produced where appropriate.
The summary statistics underlying the box plots are given in Tables I.16–
I.20; the notation describing the column headings is given in Table I.15.
The key results and analysis of these figures and tables are discussed in
Section 6.4.
Notation Description
Group Data group name
Class Data class number
# Number of values (results)
min Minimum value
q1 First quartile (value in position 1 + 0.25(#− 1))
median Median of the values (value in position 1 + 0.5(#− 1))
mean Mean of the values (sum of the values divided by #)
q3 Third quartile (value in position 1 + 0.75(#− 1))
max Maximum value
sd Standard deviation of the values
Table I.15: Notation for construction heuristic results summary tables.
372 Additional results of the heuristics experiments
Figure I.4: Box plots of number of insertion orders tried, by data group.
● ● ●●● ●●●
●
● ●
BKA ( 35 )
n25 ( 90 )
n50 ( 60 )
n100 ( 60 )
0e+00 1e+06 2e+06 3e+06
(a) n100 included.
● ● ●●● ●
●●
●
BKA ( 35 )
n25 ( 90 )
n50 ( 60 )
1e+05 2e+05 3e+05 4e+05 5e+05 6e+05
(b) n100 excluded.
Figure I.5: Box plots of number of insertion orders tried, by data class.
● ● ●●● ●
● ●●●
●●
●●
●
0 ( 35 )
1 ( 10 )
2 ( 10 )
3 ( 10 )
4 ( 10 )
5 ( 10 )
6 ( 10 )
7 ( 10 )
8 ( 10 )
9 ( 10 )
10 ( 10 )
11 ( 10 )
12 ( 10 )
13 ( 10 )
14 ( 10 )
15 ( 10 )
16 ( 10 )
17 ( 10 )
18 ( 10 )
19 ( 10 )
20 ( 10 )
21 ( 10 )
0e+00 1e+06 2e+06 3e+06
(a) n100 included (classes 16–21).
● ● ●●● ●
● ●●
●
●
●
0 ( 35 )
1 ( 10 )
2 ( 10 )
3 ( 10 )
4 ( 10 )
5 ( 10 )
6 ( 10 )
7 ( 10 )
8 ( 10 )
9 ( 10 )
10 ( 10 )
11 ( 10 )
12 ( 10 )
13 ( 10 )
14 ( 10 )
15 ( 10 )
1e+05 2e+05 3e+05 4e+05 5e+05 6e+05
(b) n100 excluded.
I.1 Construction heuristic results 373
Figure I.6: Box plots of number of feasible solutions found, by data group.
● ● ●●● ●
●
●●●●
BKA ( 35 )
n25 ( 90 )
n50 ( 60 )
n100 ( 60 )
0e+00 1e+05 2e+05 3e+05 4e+05 5e+05 6e+05
(a) BKA included.
●
●●●●
n25 ( 90 )
n50 ( 60 )
n100 ( 60 )
0 10000 20000 30000 40000 50000
(b) BKA excluded.
Figure I.7: Box plots of number of feasible solutions found, by data class.
● ● ●●● ●
●●● ●
●●●● ●
●●
●●
0 ( 35 )
1 ( 10 )
2 ( 10 )
3 ( 10 )
4 ( 10 )
5 ( 10 )
6 ( 10 )
7 ( 10 )
8 ( 10 )
9 ( 10 )
10 ( 10 )
11 ( 10 )
12 ( 10 )
13 ( 10 )
14 ( 10 )
15 ( 10 )
16 ( 10 )
17 ( 10 )
18 ( 10 )
19 ( 10 )
20 ( 10 )
21 ( 10 )
0e+00 1e+05 2e+05 3e+05 4e+05 5e+05 6e+05
(a) BKA included (class 0).
●
●● ●
●●
●● ●
●●
●●
1 ( 10 )
2 ( 10 )
3 ( 10 )
4 ( 10 )
5 ( 10 )
6 ( 10 )
7 ( 10 )
8 ( 10 )
9 ( 10 )
10 ( 10 )
11 ( 10 )
12 ( 10 )
13 ( 10 )
14 ( 10 )
15 ( 10 )
16 ( 10 )
17 ( 10 )
18 ( 10 )
19 ( 10 )
20 ( 10 )
21 ( 10 )
0 10000 20000 30000 40000 50000
(b) BKA excluded.
374 Additional results of the heuristics experiments
Figure I.8: Box plots of number of unique feasible solutions, by data group.
● ●●
●
●●●●
BKA ( 35 )
n25 ( 90 )
n50 ( 60 )
n100 ( 60 )
0 10000 20000 30000 40000 50000
Figure I.9: Box plots of number of unique feasible solutions, by data class.● ●●
●
● ●
●●
●● ●
●●
●●
0 ( 35 )
1 ( 10 )
2 ( 10 )
3 ( 10 )
4 ( 10 )
5 ( 10 )
6 ( 10 )
7 ( 10 )
8 ( 10 )
9 ( 10 )
10 ( 10 )
11 ( 10 )
12 ( 10 )
13 ( 10 )
14 ( 10 )
15 ( 10 )
16 ( 10 )
17 ( 10 )
18 ( 10 )
19 ( 10 )
20 ( 10 )
21 ( 10 )
0 10000 20000 30000 40000 50000
I.1 Construction heuristic results 375
Figure I.10: Box plots of H0 ratio Rsuccess, by data group.
●●● ●● ● ●
●
●●●●
BKA ( 35 )
n25 ( 90 )
n50 ( 60 )
n100 ( 60 )
0.0 0.2 0.4 0.6 0.8 1.0
(a) BKA included.
●
●●●●
n25 ( 90 )
n50 ( 60 )
n100 ( 60 )
0.0 0.1 0.2 0.3 0.4 0.5 0.6
(b) BKA excluded.
Figure I.11: Box plots of H0 ratio Rsuccess, by data class.
●●● ●● ● ●
●● ●
●
●
●● ●
●●
●●
0 ( 35 )
1 ( 10 )
2 ( 10 )
3 ( 10 )
4 ( 10 )
5 ( 10 )
6 ( 10 )
7 ( 10 )
8 ( 10 )
9 ( 10 )
10 ( 10 )
11 ( 10 )
12 ( 10 )
13 ( 10 )
14 ( 10 )
15 ( 10 )
16 ( 10 )
17 ( 10 )
18 ( 10 )
19 ( 10 )
20 ( 10 )
21 ( 10 )
0.0 0.2 0.4 0.6 0.8 1.0
(a) BKA included (class 0).
●● ●
●
●
●● ●
●●
●●
1 ( 10 )
2 ( 10 )
3 ( 10 )
4 ( 10 )
5 ( 10 )
6 ( 10 )
7 ( 10 )
8 ( 10 )
9 ( 10 )
10 ( 10 )
11 ( 10 )
12 ( 10 )
13 ( 10 )
14 ( 10 )
15 ( 10 )
16 ( 10 )
17 ( 10 )
18 ( 10 )
19 ( 10 )
20 ( 10 )
21 ( 10 )
0.0 0.1 0.2 0.3 0.4 0.5 0.6
(b) BKA excluded.
376 Additional results of the heuristics experiments
Figure I.12: Box plots of H0 ratio Runique, by data group.
● ●● ●● ●● ● ●● ●● ●
BKA ( 35 )
n25 ( 90 )
n50 ( 60 )
n100 ( 4 )
0.0 0.2 0.4 0.6 0.8 1.0
(a) BKA included.
● ●● ●● ●● ● ●● ●● ●n25 ( 90 )
n50 ( 60 )
n100 ( 4 )
0.92 0.94 0.96 0.98 1.00
(b) BKA excluded.
Figure I.13: Box plots of H0 ratio Runique, by data class.●
●● ●
●
●
●●●●
0 ( 35 )
1 ( 10 )
2 ( 10 )
3 ( 10 )
4 ( 10 )
5 ( 10 )
6 ( 10 )
7 ( 10 )
8 ( 10 )
9 ( 10 )
10 ( 10 )
11 ( 10 )
12 ( 10 )
13 ( 10 )
14 ( 10 )
15 ( 10 )
16 ( 0 )
17 ( 0 )
18 ( 0 )
19 ( 1 )
20 ( 1 )
21 ( 2 )
0.0 0.2 0.4 0.6 0.8 1.0
(a) BKA included (class 0).
●
●
● ●
●
●
●●
●●
1 ( 10 )
2 ( 10 )
3 ( 10 )
4 ( 10 )
5 ( 10 )
6 ( 10 )
7 ( 10 )
8 ( 10 )
9 ( 10 )
10 ( 10 )
11 ( 10 )
12 ( 10 )
13 ( 10 )
14 ( 10 )
15 ( 10 )
16 ( 0 )
17 ( 0 )
18 ( 0 )
19 ( 1 )
20 ( 1 )
21 ( 2 )
0.92 0.94 0.96 0.98 1.00
(b) BKA excluded.
I.1 Construction heuristic results 377
Group # min q1 median mean q3 max sd
BKA 35 52665 54616 61610 131989.9 142823.5 624058 126043.6
n25 90 77295 122358 141228 145349.5 164178.3 270198 35488.0
n50 60 224928 263697.8 273416.5 272605.7 288412.8 313186 19012.7
n100 60 2814360 3170345.3 3267772.5 3265258.7 3358958.3 3699708 162638.4
Class # min q1 median mean q3 max sd
0 35 52665 54616 61610 131989.9 142823.5 624058 126043.6
1 10 102793 131016.8 149279.5 146457.7 163975.5 175995 23095.5
2 10 87450 130404.3 136215.5 144381.5 139523.8 213297 37476.3
3 10 86708 111890.8 125849 128263.7 132553.3 184527 27994.4
4 10 101686 121083 138027 140893 150750.8 193663 28804.0
5 10 108890 113732.5 131318 132196.9 145841.5 173717 21854.7
6 10 114516 128716.8 146852 151464.6 162512.8 207763 30166.6
7 10 94603 130010.3 159668.5 169478 210450.3 270198 54896.2
8 10 115879 150732 169603 172233.9 187795.8 245070 36328.5
9 10 77295 109896.5 124172 122776.3 141208 153831 24148.1
10 10 251097 265944.5 273969 274108.6 277044.8 296484 13662.3
11 10 264126 277871 283685 281300.4 288000.5 289458 8654.5
12 10 272816 291522.5 292716 296293.9 306069.3 313186 11837.9
13 10 224928 243677.3 250863.5 251269 263859 267526 13752.8
14 10 242173 249214.5 262408 262317.2 271962.3 296318 16432.5
15 10 240614 266494 271130.5 270344.8 276232.5 289638 13028.4
16 10 3065811 3117434 3213841.5 3196554.3 3240090 3378951 97056.7
17 10 3174770 3297282 3337508 3338785.5 3397983 3463134 83864.5
18 10 3291558 3321046.3 3441696.5 3413035.3 3479385.5 3533312 92120.0
19 10 2814360 3008454.8 3072977.5 3085258 3150987 3377634 158751.5
20 10 2976436 3166271 3211727 3232227.9 3259123.8 3699708 186275.8
21 10 3201356 3264505.3 3310094 3325690.9 3343836.8 3563330 108518.6
Table I.16: Summary statistics for the number of insertion orders tried, bydata group and class.
378 Additional results of the heuristics experiments
Group # min q1 median mean q3 max sd
BKA 35 51653 53706.5 58805 127917.8 131014.5 624058 127166.4
n25 90 35812 43317.3 45248.5 45084.8 47104 51105 2825.4
n50 60 439 1946 3410.5 4905.6 7610.5 15157 3725.2
n100 60 0 0 0 0.067 0 1 0.252
Class # min q1 median mean q3 max sd
0 35 51653 53706.5 58805 127917.8 131014.5 624058 127166.4
1 10 42496 43086.5 43438 44124.7 44430 48178 1801.5
2 10 39178 44879 45647.5 44956.3 46482 49652 3171.0
3 10 40671 44776.5 46653 45828.9 47105.3 49221 2491.4
4 10 41417 43518.8 44786.5 44919.1 45825.3 49187 2505.1
5 10 42363 45108.3 46207 46296.9 47694.5 49800 2178.5
6 10 41300 44060.8 44914.5 45402.3 46940.5 51105 2743.9
7 10 35812 41375.8 45755.5 44188.9 47244.5 48994 4405.5
8 10 38097 42441.8 44843 44280 46654.5 47918 3131.6
9 10 42314 44151.3 45657.5 45765.8 46988 49967 2471.6
10 10 737 1612 1800 1852.3 2125.5 3035 611.8
11 10 439 1914.5 2333 2372.3 3240.5 3934 1186.6
12 10 840 1606.5 1825.5 2234.1 3177.8 4208 1143.2
13 10 2361 4303.8 6966.5 7591 9897 15157 4358.0
14 10 3232 7394 7759 8125.1 8534.3 13270 2791.7
15 10 2822 5065.3 7340.5 7259 8510.8 12215 3161.7
16 10 0 0 0 0 0 0 0
17 10 0 0 0 0 0 0 0
18 10 0 0 0 0 0 0 0
19 10 0 0 0 0.1 0 1 0.3
20 10 0 0 0 0.1 0 1 0.3
21 10 0 0 0 0.2 0 1 0.4
Table I.17: Summary statistics for the number of feasible solutions found, bydata group and class.
Group # min q1 median mean q3 max sd
BKA 35 14879 36496.5 39542 37552.7 40431.5 43413 5294.0
n25 90 35556 43141 44991 44750.8 46813.5 49950 2741.4
n50 60 439 1946 3410.5 4905.6 7610.5 15157 3725.2
n100 60 0 0 0 0.1 0 1 0.3
Class # min q1 median mean q3 max sd
0 35 14879 36496.5 39542 37552.7 40431.5 43413 5294.0
1 10 41775 42773 43151 43845.4 44332.5 47855 1873.9
2 10 39091 44804 45585.5 44739 46235.3 48728 3062.2
3 10 40558 44758 46567.5 45741.4 46997.5 49193 2518.3
4 10 41214 43485.5 44763 44816 45708.5 49120 2541.7
5 10 42206 44977.8 46163.5 45851 46992.3 48089 1783.4
6 10 41137 43955.5 44846.5 44838.6 46678.3 47186 2054.5
7 10 35556 41128.8 45162.5 43868.4 47013 48935 4386.7
8 10 37910 41578.5 44088 43324.9 45316.5 46971 2889.8
9 10 42282 44115.8 45642.5 45732.5 46984.8 49950 2465.5
10 10 737 1612 1800 1852.3 2125.5 3035 611.8
11 10 439 1914.5 2333 2372.3 3240.5 3934 1186.6
12 10 840 1606.5 1825.5 2234.1 3177.8 4208 1143.2
13 10 2361 4303.8 6966.5 7591 9897 15157 4358.0
14 10 3232 7394 7759 8125.1 8534.3 13270 2791.7
15 10 2822 5065.3 7340.5 7259 8510.8 12215 3161.7
16 10 0 0 0 0 0 0 0
17 10 0 0 0 0 0 0 0
18 10 0 0 0 0 0 0 0
19 10 0 0 0 0.1 0 1 0.3
20 10 0 0 0 0.1 0 1 0.3
21 10 0 0 0 0.2 0 1 0.4
Table I.18: Summary statistics for the number of unique feasible solutionsfound, by data group and class.
I.1 Construction heuristic results 379
Group # min q1 median mean q3 max sd
BKA 35 0.477 0.999 1 0.965 1 1 0.120
n25 90 0.133 0.273 0.323 0.331 0.389 0.646 0.094
n50 60 0.002 0.007 0.012 0.019 0.030 0.063 0.015
n100 60 0 0 0 2.04E-08 0 3.17E-07 7.71E-08
Class # min q1 median mean q3 max sd
0 35 0.477 0.999 1 0.965 1 1 0.120
1 10 0.245 0.266 0.290 0.311 0.339 0.469 0.069
2 10 0.184 0.323 0.338 0.334 0.351 0.568 0.105
3 10 0.220 0.338 0.372 0.376 0.420 0.568 0.096
4 10 0.215 0.289 0.328 0.334 0.377 0.473 0.082
5 10 0.244 0.312 0.354 0.361 0.419 0.457 0.073
6 10 0.199 0.272 0.304 0.312 0.371 0.413 0.073
7 10 0.133 0.203 0.283 0.293 0.366 0.518 0.117
8 10 0.155 0.227 0.264 0.271 0.312 0.407 0.073
9 10 0.284 0.313 0.376 0.391 0.406 0.646 0.110
10 10 0.002 0.006 0.007 0.007 0.008 0.012 0.003
11 10 0.002 0.007 0.009 0.008 0.012 0.015 0.004
12 10 0.003 0.005 0.006 0.008 0.011 0.014 0.004
13 10 0.009 0.017 0.028 0.031 0.039 0.063 0.019
14 10 0.011 0.028 0.030 0.031 0.034 0.054 0.012
15 10 0.010 0.019 0.029 0.027 0.031 0.046 0.012
16 10 0 0 0 0 0 0 0
17 10 0 0 0 0 0 0 0
18 10 0 0 0 0 0 0 0
19 10 0 0 0 3.17E-08 0 3.17E-07 1.00E-07
20 10 0 0 0 3.10E-08 0 3.10E-07 9.80E-08
21 10 0 0 0 5.98E-08 0 3.07E-07 1.26E-07
Table I.19: Summary statistics for ratio Rsuccess, by data group and class.
Group # min q1 median mean q3 max sd
BKA 35 0.024 0.285 0.675 0.520 0.736 0.832 0.272
n25 90 0.920 0.993 0.997 0.993 0.999 1.000 0.012
n50 60 1 1 1 1 1 1 0
n100 4 1 1 1 1 1 1 0
Class # min q1 median mean q3 max sd
0 35 0.024 0.285 0.675 0.520 0.736 0.832 0.272
1 10 0.956 0.996 0.998 0.994 0.999 1.000 0.013
2 10 0.981 0.995 0.997 0.995 0.998 1.000 0.005
3 10 0.995 0.997 0.998 0.998 0.999 1.000 0.002
4 10 0.991 0.998 0.999 0.998 1.000 1.000 0.003
5 10 0.966 0.988 0.997 0.991 0.999 0.999 0.012
6 10 0.920 0.994 0.997 0.989 0.998 0.999 0.024
7 10 0.980 0.993 0.994 0.993 0.996 0.999 0.006
8 10 0.961 0.969 0.978 0.979 0.991 0.997 0.013
9 10 0.997 0.999 1.000 0.999 1.000 1.000 0.001
10 10 1 1 1 1 1 1 0
11 10 1 1 1 1 1 1 0
12 10 1 1 1 1 1 1 0
13 10 1 1 1 1 1 1 0
14 10 1 1 1 1 1 1 0
15 10 1 1 1 1 1 1 0
16 0 NA NA NA NA NA NA NA
17 0 NA NA NA NA NA NA NA
18 0 NA NA NA NA NA NA NA
19 1 1 1 1 1 1 1 NA
20 1 1 1 1 1 1 1 NA
21 2 1 1 1 1 1 1 0
Table I.20: Summary statistics for ratio Runique, by data group and class.
380 Additional results of the heuristics experiments
Appendix J
Modified constructionheuristic and relatedalgorithms
This appendix contains pseudocode for the modified construction heuristic
and related algorithms used in Criterion 6 of the scheduling-based B&B
scheme. They are included here for completeness and to support some of
the comments made in Chapter 7.
As discussed in Section 7.6.1, the construction heuristic can be used within
the scheduling-based B&B scheme at Criterion 6. In particular, it makes
sense to take advantage of the feasible forward partial schedule already con-
structed at a B&B node. However, to use the construction heuristic and
related algorithms as described in Algorithms 8–11 (in Chapter 5) will de-
stroy the partial schedule, as it will try to insert jobs within the existing
forward partial schedule.
The construction heuristic must be modified to accept a forward partial
schedule—with corresponding earliest start times—as a fixed starting point.
The modified construction heuristic will then try to construct the tail to the
partial schedule, that is, try to construct a feasible full schedule respecting
the input forward partial schedule, by only applying the insertion algorithm
over the unscheduled jobs and appending them to the forward partial sched-
ule. The modified construction heuristic and related procedures are shown
in Algorithms 16–19.
381
382 Modified construction heuristic and related algorithms
Algorithm 16: Procedure ModifiedInsertionAlgorithm(insertion order
ω, forward partial schedule S)
Input: Insertion order, ω = (ω1, . . . , ωn−j) // n− j jobs remaining to be scheduled
a forward partial schedule from a node in the B&B tree, S = (v0, v1, . . . , vj)
Output: Status (success or fail), and—if success—one feasible schedule and its cost
initialise
S ← void, z(S)← +∞ // empty schedule
S- ← (v0, v1, . . . , vj−1) // S without the last job
S′ ← (vj , vn+1 = depot) // initial extension partial schedule
Nsch ← 0 // number of jobs successfully inserted into S′
repeat insert next unscheduled job into extension partial schedule S′
w ← ωNsch+1 // next job to insert based on insertion order ω
if procedure ModifiedInsertNextJob(S-, S′, w) returns success then
// job w was successfully inserted into current partial schedule
Nsch ← Nsch + 1
else
status ← fail // insertion order ω was unsuccessful
until fail to insert a job or all jobs are successfully inserted (i.e. Nsch = n− j)
if Nsch = n− j then
// A full, feasible schedule was constructed
S ← (S-, S′), z(S)← cost of S
status ← success // insertion order ω was successful
return status, S, z(S)
383
Algorithm 17: Procedure ModifiedInsertNextJob(forward partial sched-
ule S-, extension partial schedule S′, next job w)
Input: Forward partial schedule S- ← (v0, v1, . . . , vj−1); current extension partial
schedule S′ = (vj , v1, . . . , vk−1, vn+1); next job to insert, w = ωk
Output: Status (success or fail), and—if success—the updated partial schedule
initialiselast predecessor of w in S′, π(w)← vj , with position index ι(π(w))← 0
first successor of w in S′, σ(w)← vn+1, with position index ι(σ(w))← n+ 1
BadPositions← ∅ // set of positions w cannot be inserted
foreach i ∈ {1, . . . , k − 1} do ESTvi ← earliest start time of job vi in S′
foreach i ∈ {1, . . . , k − 1} doif (vi, w) ∈ PALL then
π(w)← vi, ι(π(w))← i // job vi is a predecessor of w
else if (w, vk−i) ∈ PALL then
σ(w)← vk−i, ι(σ(w))← k − i // job vk−i is a successor of w
// initialise the range of positions for inserting job w into S′
Λ← {ι(π(w)), . . . , ι(σ(w))− 1}foreach i ∈ Λ do
∆i = svi,w + sw,vi+1 − svi,vi+1 // cost of inserting job w after job vi
repeat attempt to insert job w into S′
// set start times to the last values accepted, given by EST
foreach i ∈ {1, . . . , k − 1} do T (vi)← EST (vi)
// the best position available is m+ 1, i.e. after job vm
m = argmini∈Λ\BadPositions{svi,w + sw,vi+1 − svi,vi+1}if inserting job w into position m+ 1 causes a time window violation then
// T (w) > bw and/or T (vi) > bvi for at least one i ≥ m+ 1
BadPositions← BadPositions+m // disallow position after job vm
else
// inserting job w into position m+ 1 is feasible, so update S′
// move each job after position m+ 1 up one position
foreach i ∈ {m+ 2, . . . , k + 1} do vi ← vi−1
vm+1 ← w // insert job w into position m+ 1
// update start time of each job in the partial schedule
foreach i ∈ {m+ 1, . . . , k} do EST (vi)← T (vi)
status ← success // job w was successfully inserted into S′
until successfully insert job w or |Λ| = |BadPositions|if |Λ| = |BadPositions| then
// could not insert job w so insertion order ω was unsuccessful
S′ ← void, status ← fail
return status, S′
384 Modified construction heuristic and related algorithms
Algorithm 18: Procedure ModifiedRepeatInsAlg(AttemptLimit,S)
Input: Maximum number of insertion orders to try, AttemptLimit; a forward partial
schedule from a node in the B&B tree, S = (v0, v1, . . . , vj)
Output: Status (success or fail), and—if success—one feasible schedule and its cost
initialise
S ← void, z(S)← +∞ // empty schedule
Nfail ← 0 // fail counter
repeat attempt to construct one feasible schedule using ModifiedInsertionAlgorithm
Generate a new random insertion order, ω // a permutation of unscheduled jobs
if ModifiedInsertionAlgorithm(ω, S) returns success then
// a feasible schedule was constructed using ω that respects S
S ← feasible schedule, z(S)← cost of S
status ← successelse
// insertion order ω was unsuccessful
Nfail ← Nfail + 1
until a feasible schedule is constructed or Nfail = AttemptLimit
if Nfail = AttemptLimit then
// AttemptLimit insertion orders did not generate a feasible schedule
status ← fail
return status, S, z(S)
385
Algorithm 19: Procedure to construct feasible SOP-TW solutions,
ModifiedConstructionHeuristic(η,S,Runs,Fails,SolnTarget,Attempts,Time)
Input: A SOP-TW problem instance, η; a forward partial schedule from a node in the
B&B tree, S = (v0, v1, . . . , vj); maximum number of iterations to perform, Runs;
maximum number of iterations allowed to fail before stopping, Fails; maximum
number of unique feasible solutions to construct, SolnTarget; maximum number
of insertion orders to try at each iteration, Attempts; maximum run time
allowed , T ime (CPU seconds)
Output: Status (success or fail at finding at least one feasible schedule), and—if
success—all schedules found, including the best feasible schedule
initialise
S∗ ← void, z(S∗)← +∞ // incumbent best solution is an empty schedule
SolnPool← void // pool of unique feasible solutions is empty
// stopping criteria counters
Iter ← 0 // iterations counter
NumEpicFails← 0 // failed iterations counter
NumSolns← 0 // unique feasible solution counter
repeat attempt to construct feasible schedules using ModifiedRepeatInsAlg
// repeat until Runs iterations have been performed or Fails iterations
have failed to produce a feasible solution or SolnTarget unique
feasible solutions have been found or T ime CPU seconds used
Iter ← Iter + 1
if ModifiedRepeatInsAlg(Attempts, S) returns success then
// a feasible schedule was constructed, given by S with cost z(S)
status ← success
if the schedule S is new thenNumSolns← NumSolns+ 1
SolnPool← SolnPool + S // add S to the solution pool
if z(S) < z(S∗) then
S∗ ← S, z(S∗)← z(S) // update the incumbent as S is better
else
// Attempts insertion orders did not yield a feasible schedule
NumEpicFails← NumEpicFails+ 1
until Iter = Runs or NumEpicFails = Fails or NumSolns = SolnTarget or T ime
if NumSolns = 0 then
// a total of Fails×Attempts random insertion orders did not generate a
feasible schedule for SOP-TW problem instance η with forward partial
schedule S
status ← fail
return status, SolnPool, S∗, z(S∗)
Minerva Access is the Institutional Repository of The University of Melbourne
Author/s:
Duane, Emily Jane Eleftheria
Title:
New data generation and solution techniques for the Sequential Ordering Problem with Time
Windows
Date:
2014
Persistent Link:
http://hdl.handle.net/11343/54610
File Description:
New data generation and solution techniques for the Sequential Ordering Problem with Time
Windows