Column Generation Approaches to Patrol Asset

0 downloads 0 Views 18MB Size Report
The results for the PBSPCC indicate that our techniques can exploit .... manuel, Carmen Fenech, Adriana Leslie, David McDonald and Valerie Noone for ...... assuming an operational theatre represented by a directed graph structure (where ...... We write a linear program with a large number of variables (indexed over a set.
Column Generation Approaches to Patrol Asset Scheduling with Complete and Maximum Coverage Requirements

Paul Andrew Chircop School of Computer Science and Engineering The University of New South Wales Sydney, Australia

A thesis submitted in partial fulfilment of the requirements for the degree of Doctor of Philosophy

April 2017

PLEASE TYPE THE UNIVERSITY OF NEW SOUTH WALES Thesis/Dissertation Sheet Surname or Family name: Chircop First name: Paul

Other name/s: Andrew

Abbreviation for degree as given in the University calendar: PhD School: Computer Science & Engineering

Faculty: Engineering

Title: Column Generation Approaches to Patrol Asset Scheduling with Complete and Maximum Coverage Requirements

Abstract 350 words maximum: (PLEASE TYPE) This thesis is concerned with routing and scheduling patrol assets to provide coverage of a pre-defined set of patrol regions. Two patrol routing and scheduling problems are studied: the Patrol Boat Scheduling Problem with Complete Coverage (PBSPCC) and the Maximum Covering and Patrol Routing Problem (MCPRP). The PBSPCC utilizes a patrol boat fleet to provide complete coverage of a set of maritime patrol regions, ensuring that there is at least one boat on station in each patrol region at any given time. This requirement is complicated by the fact that the boats cannot maintain patrol duties indefinitely. Before a maximum operational time has expired, a boat must return to port for a mandatory resource replenishment break, which may be indicative of crew layover time or refuelling. The PBSPCC is addressed by considering the operational performance of the patrol boats, the network topology, and the duration of a resource replenishment break. An additional aspect to the problem is to find the minimum or least number of patrol boats which can meet the complete coverage requirement indefinitely. The MCPRP is concerned with routing a fleet of patrol cars to provide maximum coverage of a set of accident hotspots on a road network, where each hotspot is given by a geographical location and a time window. The patrol cars maintain active duty over a predefined shift, with each car beginning and ending its shift at a depot. The objective is to maximize the aggregate presence of the patrol cars within the time windows, without double-counting of the patrol effort. This problem has received recent attention in the literature with the application of linear and integer programming models. We present new modelling and algorithmic approaches to address the aforementioned patrol coverage problems. The approaches are underpinned by specially tailored network design principles, column generation, branch-and-price heuristics and various problem reduction techniques. We introduce a number of benchmark test instances for both the PBSPCC and MCPRP on which various column generation acceleration strategies are compared and analysed. The results for the PBSPCC indicate that our techniques can exploit certain problem structures to achieve optimal and good quality cyclic schedules in reasonable timeframes. For the MCPRP, the results show that a branch-and-price approach can be used to solve large-scale problem instances that cannot be handled by extant techniques.

Declaration relating to disposition of project thesis/dissertation I hereby grant to the University of New South Wales or its agents the right to archive and to make available my thesis or dissertation in whole or in part in the University libraries in all forms of media, now or here after known, subject to the provisions of the Copyright Act 1968. I retain all property rights, such as patent rights. I also retain the right to use in future works (such as articles or books) all or part of this thesis or dissertation. I also authorise University Microfilms to use the 350 word abstract of my thesis in Dissertation Abstracts International (this is applicable to doctoral theses only).

…………………………………………………………… Signature

……………………………………..……………… Witness Signature

……….……………………...…….… Date

The University recognises that there may be exceptional circumstances requiring restrictions on copying or conditions on use. Requests for restriction for a period of up to 2 years must be made in writing. Requests for a longer period of restriction may be considered in exceptional circumstances and require the approval of the Dean of Graduate Research.

FOR OFFICE USE ONLY

Date of completion of requirements for Award:

THIS SHEET IS TO BE GLUED TO THE INSIDE FRONT COVER OF THE THESIS

ORIGINALITY STATEMENT ‘I hereby declare that this submission is my own work and to the best of my knowledge it contains no materials previously published or written by another person, or substantial proportions of material which have been accepted for the award of any other degree or diploma at UNSW or any other educational institution, except where due acknowledgement is made in the thesis. Any contribution made to the research by others, with whom I have worked at UNSW or elsewhere, is explicitly acknowledged in the thesis. I also declare that the intellectual content of this thesis is the product of my own work, except to the extent that assistance from others in the project's design and conception or in style, presentation and linguistic expression is acknowledged.’

Signed ……………………………………………..............

Date

……………………………………………..............

COPYRIGHT STATEMENT ‘I hereby grant the University of New South Wales or its agents the right to archive and to make available my thesis or dissertation in whole or part in the University libraries in all forms of media, now or here after known, subject to the provisions of the Copyright Act 1968. I retain all proprietary rights, such as patent rights. I also retain the right to use in future works (such as articles or books) all or part of this thesis or dissertation. I also authorise University Microfilms to use the 350 word abstract of my thesis in Dissertation Abstract International (this is applicable to doctoral theses only). I have either used no substantial portions of copyright material in my thesis or I have obtained permission to use copyright material; where permission has not been granted I have applied/will apply for a partial restriction of the digital copy of my thesis or dissertation.'

Signed ……………………………………………...........................

Date

……………………………………………...........................

AUTHENTICITY STATEMENT ‘I certify that the Library deposit digital copy is a direct equivalent of the final officially approved version of my thesis. No emendation of content has occurred and if there are any minor variations in formatting, they are the result of the conversion to digital format.’

Signed ……………………………………………...........................

Date

……………………………………………...........................

Dedicated to my father and mother, Joseph & Julie Chircop Listen, my son to your father’s instruction and do not forsake your mother’s teaching. Proverbs 1:8 (NIV)

Acknowledgements

Firstly, I would like to thank Professor Toby Walsh, my academic supervisor, who was kind enough to take me on as a Ph.D. student. Toby encouraged me to explore and compare different research avenues throughout my candidature, and I learnt a great deal through the process. I am truly appreciative for the many stimulating discussions I shared with Toby during the first half of 2011 while I was studying for a reading course in column generation. Toby was always friendly, helpful and constructive in his dealings with me and I am most grateful to him for his steadfast support of my research efforts. I want to thank Dr. Menkes van den Briel for his invaluable guidance as my joint academic supervisor. Menkes was so generous with his time and spent many hours with me in-person and over the phone. I am particularly grateful to him for getting me acquainted with the ILOG CPLEX software libraries and for suggesting many useful ideas on the column generation approaches presented in this dissertation. I would also like to acknowledge his helpful advice on the design of some of the illustrative figures used in Chapter 3. Dr. Timothy Surendonk was the DST Group supervisor for this research project. Tim was always extremely generous with his time and constructive with his feedback on my work. Tim gave me encouragement at times when I didn’t feel like I was making much progress, and I might have thrown in the towel without his optimistic tutelage. Moreover, I am grateful to Tim for allowing me to take an exorbitant amount of leave to get this dissertation written up. I would also like to acknowledge Tim’s outstanding contribution to the analysis provided in this dissertation on the computational complexity of the PBSPCC. My sincere thanks to Dr. Bernard Kachoyan for supporting my application to undertake this course of study. Bernard was my research group leader and mentor at DST Group for many years. I owe a great deal to Bernard for the way in which he has admirably modelled the pursuit of scientific excellence. I would also like to acknowledge Dr. John Riley, Dr. Alan Theobald, Dr. Jim Smelt, Dr. Kurt Brinschwitz

viii and Dr. Maria Athanassenas from DST Group for their support. I am grateful for the conversations I shared with NICTA researchers Dr. Philip Kilby and Dr. Fabien Tricoire in the early stages of my research project, and for the many useful ideas and suggestions they gave me. I would like to acknowledge the critical and constructive feedback I received from the examiners of this dissertation. After following through with many of the helpful recommendations from the examiners’ reports, the quality of the thesis and the strength of its argumentation have been significantly improved. A big thank you to Dr. Reginald Dewil (Katholieke Universiteit Leuven) for his generosity in supplying the source code for the MCNFP model of the Maximum Covering and Patrol Routing Problem (MCPRP) at short notice. Obtaining the MCNFP model allowed me to undertake some further computational experiments at the request of the examiners. Stephen Mc Ateer was a tremendous source of helpful advice when it came to typesetting this dissertation in LATEX. Along with Stephen, Justin Beck and Marc West provided a great working atmosphere at DST Group Sydney throughout my candidature. I want to thank these gentlemen for constantly distracting me with conversations on free will, politics, science fiction and sport. Playing touch football has served as an outlet for the large amounts of stress accumulated from studying. I want to thank all my touch football team mates, both past and present, for many gutsy performances and for tolerating my incessant injunctions to "Dump the ball up the middle!" The grand final victory by the Catapult Craybobs in the winter months of 2012 was a tremendous effort! I would like to acknowledge the following friends and their families who have been so generous and kind to me: Simon & Paula Black, Ron & Jane Maldigri, Richard & Geraldine Martin, Jack & Cathy McAdams, Michael & Regina McGrillen, Michael & Leanne Noone, Michael & Sue Schembri, Mark & Gladys StrangwaysDixon and Mark & Leanne Tynan. I’d also like to express my gratitude to KC Emmanuel, Carmen Fenech, Adriana Leslie, David McDonald and Valerie Noone for their unceasing prayers and support. Thanks to my good friends Andrew Black, Mark McGrillen, Paul Mitchell, Ben Strangways-Dixon and Mark Walsh for the enjoyable vacations we’ve been on over the last few years. These sojourns, including the excursions to run half-marathons, often came at times when I desperately needed a break from my studies.

ix I want to honour my grandparents, Edgar & Maria Chircop and Joe & Marie O’Brien, for their profound influence on my life. They have laboured faithfully and have sacrificed so much to give their children and grandchildren a wealth of opportunities that they were not afforded. I am truly blessed to have David & Shane as brothers and Rachel & Raquel as sisters. I want to thank them for their love and friendship and for having such adorable kids, my nephews and nieces: Maria, Chloe, Joel, Clara, Elijah and Sarah. To them, I can report that uncle Paul’s book is finally finished and is now available for soporific bedtime reading. Finally, I want to express my gratitude to Dad and Mum for all the love, encouragement, support, forbearance and time they have generously extended to me throughout my life, and especially over the past few turbulent years. This dissertation is dedicated to them.

Abstract

This thesis is concerned with routing and scheduling patrol assets to provide coverage of a pre-defined set of patrol regions. Two patrol routing and scheduling problems are studied: the Patrol Boat Scheduling Problem with Complete Coverage (PBSPCC) and the Maximum Covering and Patrol Routing Problem (MCPRP). The PBSPCC utilizes a patrol boat fleet to provide complete coverage of a set of maritime patrol regions, ensuring that there is at least one boat on station in each patrol region at any given time. This requirement is complicated by the fact that the boats cannot maintain patrol duties indefinitely. Before a maximum operational time has expired, a boat must return to port for a mandatory resource replenishment break, which may be required for crew layover time or refuelling. The PBSPCC is addressed by considering the operational performance of the patrol boats, the network topology, and the duration of a resource replenishment break. An additional aspect to the problem is to find the minimum number of patrol boats which can meet the complete coverage requirement indefinitely. The MCPRP is concerned with routing a fleet of patrol cars to provide maximum coverage of a set of accident hotspots on a road network, where each hotspot is given by a geographical location and a time window. The patrol cars maintain active duty over a pre-defined shift, with each car beginning and ending its shift at a depot. The objective is to maximize the aggregate presence of the patrol cars within the time windows, without double-counting of the patrol effort. This problem has received recent attention in the literature with the application of linear and integer programming models. We present new modelling and algorithmic approaches to address the aforementioned patrol coverage problems. The approaches are underpinned by specially tailored network design principles, Dantzig-Wolfe column generation, branchand-price heuristics and various problem reduction techniques. We introduce a number of benchmark test instances for both the PBSPCC and MCPRP on which various column generation acceleration strategies are compared and analysed. The

xii results for the PBSPCC indicate that our techniques can exploit certain problem structures to achieve optimal and good quality cyclic schedules in reasonable timeframes. For the MCPRP, the results show that a branch-and-price approach can be used to solve large-scale problem instances that cannot be handled by extant techniques.

Contents Contents

xiii

List of Figures

xxi

List of Tables

xxix

1

2

Introduction and Thesis Outline

1

1.1

Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1

1.2

Personal Reflections on Background Material . . . . . . . . . . . . . .

2

1.3

Contributions of the Thesis . . . . . . . . . . . . . . . . . . . . . . . .

3

1.4

Thesis Outline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

5

1.4.1

Main Body . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

5

1.4.2

Appendices . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

7

1.5

Thesis Scope . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

8

1.6

A Word on Writing Style . . . . . . . . . . . . . . . . . . . . . . . . . .

9

Review of Patrol Routing and Scheduling Problems

11

2.1

Patrol Operations Planning . . . . . . . . . . . . . . . . . . . . . . . .

11

2.1.1

Randomized Patrol Planning . . . . . . . . . . . . . . . . . . .

11

2.1.2

Scheduling Patrol Boats and Crews . . . . . . . . . . . . . . .

13

Vehicle Routing Problems . . . . . . . . . . . . . . . . . . . . . . . . .

16

2.2.1

Heterogeneous Vehicle Routing Problem (HVRP) . . . . . . .

16

2.2.2

Multiple-Depot Vehicle Routing Problem (MDVRP) . . . . . .

17

2.2.3

Vehicle Routing Problem with Time Windows (VRPTW) . . .

17

2.2.4

Period Vehicle Routing Problem (PVRP) . . . . . . . . . . . . .

17

2.2.5

Prize-Collecting Travelling Salesman Problem (PCTSP) . . . .

17

2.2.6

Orienteering Problem (OP) . . . . . . . . . . . . . . . . . . . .

18

2.2.7

Other Extensions . . . . . . . . . . . . . . . . . . . . . . . . . .

18

2.2

Contents

xiv 2.3

2.4 3

4

Patrol Covering Problems . . . . . . . . . . . . . . . . . . . . . . . . .

18

2.3.1

Routing Patrol Boats for Fisheries Surveillance . . . . . . . . .

19

2.3.2

Scheduling Systems of UAVs with Fuel Service Stations . . . .

19

2.3.3

The Bi-Objective Grid Patrol Routing Problem . . . . . . . . .

20

2.3.4

The Maximum Covering and Patrol Routing Problem . . . . .

21

2.3.5

Relationship of the PBSPCC to Patrol Covering Problems . . .

23

The Way Ahead . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

24

Theoretical Background

27

3.1

The Revised Simplex Method . . . . . . . . . . . . . . . . . . . . . . .

27

3.2

Linear Programming Duality . . . . . . . . . . . . . . . . . . . . . . .

30

3.2.1

Primal and Dual . . . . . . . . . . . . . . . . . . . . . . . . . .

30

3.2.2

Duality Theorems . . . . . . . . . . . . . . . . . . . . . . . . . .

32

3.3

Introduction to Column Generation . . . . . . . . . . . . . . . . . . .

35

3.4

The Cutting Stock Problem . . . . . . . . . . . . . . . . . . . . . . . . .

38

3.5

Dantzig-Wolfe Decomposition . . . . . . . . . . . . . . . . . . . . . . .

44

3.6

Dantzig-Wolfe Decomposition Example . . . . . . . . . . . . . . . . .

49

3.7

Branch-and-Price for Integer Programs . . . . . . . . . . . . . . . . . .

54

3.7.1

Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

54

3.7.2

Mathematical Formulation . . . . . . . . . . . . . . . . . . . .

56

3.7.3

Using Bounds Information . . . . . . . . . . . . . . . . . . . .

59

3.7.4

Ryan-Forster Branching . . . . . . . . . . . . . . . . . . . . . .

63

3.8

Branch-and-Price Example . . . . . . . . . . . . . . . . . . . . . . . . .

64

3.9

Shortest Path Problems . . . . . . . . . . . . . . . . . . . . . . . . . . .

71

3.9.1

Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

71

3.9.2

Formulating a Shortest Path Problem . . . . . . . . . . . . . .

71

3.9.3

Fundamental Procedures and Structures . . . . . . . . . . . .

72

3.9.4

Outline of Labelling Methods . . . . . . . . . . . . . . . . . . .

75

3.9.5

Shortest Paths in Directed Acyclic Graphs . . . . . . . . . . . .

76

Patrol Boat Routing and Scheduling with Replenishment: Part I

81

4.1

Preface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

81

4.2

Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

81

4.3

Concept Illustration through a Toy Problem . . . . . . . . . . . . . . .

83

4.3.1

Out and Back with Idling . . . . . . . . . . . . . . . . . . . . .

83

4.3.2

Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

85

Contents 4.3.3

xv Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

86

4.4

Patrol Boat Operations Network . . . . . . . . . . . . . . . . . . . . .

88

4.5

Resource-Space-Time (RST) Network . . . . . . . . . . . . . . . . . . .

90

4.5.1

Ports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

92

4.5.2

Patrol Regions . . . . . . . . . . . . . . . . . . . . . . . . . . . .

92

4.5.3

Feasible Transitions between Patrol Regions . . . . . . . . . .

93

4.5.4

Feasible Transitions from Patrol Regions to Ports . . . . . . . .

96

4.6

Arc Based Integer Programming Formulation . . . . . . . . . . . . . .

96

4.7

Path Based Linear Programming Formulation . . . . . . . . . . . . . . 100 4.7.1

Flow Decomposition . . . . . . . . . . . . . . . . . . . . . . . . 100

4.7.2

Patrol Time . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101

4.7.3

Patrol Boats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102

4.7.4

Patrol Periods . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102

4.7.5

Inclusion of Additional Patrol Boat Bounds . . . . . . . . . . . 102

4.7.6

Inclusion of Flow Constraints for Source and Sink Arcs . . . . 103

4.7.7

Master Problem . . . . . . . . . . . . . . . . . . . . . . . . . . . 104

4.8

Reduced Costs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105

4.9

Column Generation for a Homogeneous Fleet . . . . . . . . . . . . . . 107 4.9.1

Master Problem . . . . . . . . . . . . . . . . . . . . . . . . . . . 107

4.9.2

Derivation of Bounds . . . . . . . . . . . . . . . . . . . . . . . 108

4.9.3

Subproblem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110

4.10 Theoretical Results for Objective Functions . . . . . . . . . . . . . . . 113 4.10.1 Definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 4.10.2 Preliminary Theoretical Results . . . . . . . . . . . . . . . . . . 115 4.10.3 Patrol Time Bound Theorem . . . . . . . . . . . . . . . . . . . 120 4.10.4 Feasible Schedule Theorem . . . . . . . . . . . . . . . . . . . . 122 4.10.5 Clarification of Results . . . . . . . . . . . . . . . . . . . . . . . 126 5

Patrol Boat Routing and Scheduling with Replenishment: Part II

129

5.1

Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129

5.2

Column Generation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130 5.2.1

Seed Columns . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131

5.2.2

Pricing Out Multiple Candidate Columns . . . . . . . . . . . . 134

5.2.3

Test Problems . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136

5.2.4

Computational Results of Root Node Performance . . . . . . . 138

Contents

xvi 5.3

5.4

5.5

5.6 6

7

Branch-and-Price Approach . . . . . . . . . . . . . . . . . . . . . . . . 145 5.3.1

RST Network Arc Selection . . . . . . . . . . . . . . . . . . . . 146

5.3.2

Search Tree Node Selection . . . . . . . . . . . . . . . . . . . . 148

Problem Reduction Techniques . . . . . . . . . . . . . . . . . . . . . . 149 5.4.1

Cyclic Schedules (Path Permutations) . . . . . . . . . . . . . . 150

5.4.2

Rolling Horizon . . . . . . . . . . . . . . . . . . . . . . . . . . . 157

5.4.3

Clustering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158

5.4.4

Resource Depth Control Parameter . . . . . . . . . . . . . . . . 158

Benchmark Problems . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159 5.5.1

Path Permutation Problems . . . . . . . . . . . . . . . . . . . . 159

5.5.2

Rolling Horizon Problems . . . . . . . . . . . . . . . . . . . . . 165

5.5.3

Discussion of Results . . . . . . . . . . . . . . . . . . . . . . . . 170

5.5.4

Presentation of Benchmarks . . . . . . . . . . . . . . . . . . . . 171

Sensitivity Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174

Computational Complexity of the PBSPCC

177

6.1

Preface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177

6.2

Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177

6.3

Definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179

6.4

Transformation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183

6.5

Equivalence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184

6.6

Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193

Patrol Vehicle Routing with Hotspot Coverage 7.1

195

Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195 7.1.1

Background and Context . . . . . . . . . . . . . . . . . . . . . 195

7.1.2

Chapter Aims and Outline . . . . . . . . . . . . . . . . . . . . 196

7.2

Integer Programming Formulation . . . . . . . . . . . . . . . . . . . . 197

7.3

Patrol Vehicle Operations Network . . . . . . . . . . . . . . . . . . . . 199

7.4

Time-Space Network Construction . . . . . . . . . . . . . . . . . . . . 201

7.5

Arc Based Integer Programming Formulation . . . . . . . . . . . . . . 210

7.6

Path Based Linear Programming Formulation . . . . . . . . . . . . . . 211 7.6.1

Flow Decomposition . . . . . . . . . . . . . . . . . . . . . . . . 211

7.6.2

Patrol Time . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213

7.6.3

Patrol Vehicles . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213

7.6.4

Hotspots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213

Contents 7.6.5

xvii Master Problem . . . . . . . . . . . . . . . . . . . . . . . . . . . 214

7.7

Reduced Costs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214

7.8

Column Generation for a Homogeneous Fleet . . . . . . . . . . . . . . 216

7.9

7.8.1

Master Problem . . . . . . . . . . . . . . . . . . . . . . . . . . . 216

7.8.2

Subproblem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217

7.8.3

Seed Columns . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219

7.8.4

Pricing Out Candidate Paths . . . . . . . . . . . . . . . . . . . 221

Branch-and-Price Approach . . . . . . . . . . . . . . . . . . . . . . . . 222 7.9.1

Time-Space Network Arc Selection . . . . . . . . . . . . . . . . 222

7.9.2

Search Tree Node Selection . . . . . . . . . . . . . . . . . . . . 223

7.10 Benchmark Problems . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224 7.10.1 Test Problems . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224 7.10.2 Computational Results . . . . . . . . . . . . . . . . . . . . . . . 227 7.10.3 Validation via the MCNFP Model of Dewil et al. [38] . . . . . 230 7.10.4 Large-Scale Problem Instances . . . . . . . . . . . . . . . . . . 233 8

Conclusions and Future Work

239

8.1

Research Summary and Conclusions . . . . . . . . . . . . . . . . . . . 239

8.2

Future Work . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242 8.2.1

Patrol Boat Scheduling Problem with Complete Coverage . . 242

8.2.2

Maximum Covering and Patrol Routing Problem . . . . . . . 244

Appendix A Mathematical Background

247

A.1 Set Theory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247 A.2 Mappings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251 A.3 Permutations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253 A.4 Matrices, Vectors and Linear Algebra . . . . . . . . . . . . . . . . . . . 255 A.5 Graph Theory Concepts . . . . . . . . . . . . . . . . . . . . . . . . . . 258 A.6 Asymptotic Notation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260 A.6.1 Runtime . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260 A.6.2 Big O Notation . . . . . . . . . . . . . . . . . . . . . . . . . . . 260 A.6.3 Big Ω Notation . . . . . . . . . . . . . . . . . . . . . . . . . . . 261 A.6.4 Big Θ Notation . . . . . . . . . . . . . . . . . . . . . . . . . . . 261 Appendix B Results from the Theory of Linear Programming

263

B.1 Fundamental Concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . 263

xviii

Contents

B.2 Polyhedra . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265 B.3 Convex Sets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266 B.4 Basic Feasible Solutions . . . . . . . . . . . . . . . . . . . . . . . . . . 268 B.5 Combinatorial Optimization . . . . . . . . . . . . . . . . . . . . . . . . 270 Appendix C Lagrangian Relaxation

271

Appendix D Test Problems for the PBSPCC

277

D.1 Problem 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277 D.2 Problem 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278 D.3 Problem 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278 D.4 Problem 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279 D.5 Problem 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 280 D.6 Problem 6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281 D.7 Problem 7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283 D.8 Problem 8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284 D.9 Problem 9 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286 D.10 Problem 10 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288 D.11 Problem 11 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289 D.12 Problem 12 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291 D.13 Problem 13 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293 D.14 Problem 14 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293 D.15 Problem 15 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294 D.16 Problem 16 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294 D.17 Problem 17 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295 D.18 Problem 18 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295 D.19 Problem 19 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296 D.20 Problem 20 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297 Appendix E Computational Results (PBSPCC)

299

E.1 Column Generation Performance . . . . . . . . . . . . . . . . . . . . . 299 E.2 Comparison of Column Generation Strategies . . . . . . . . . . . . . 330 E.3 Comparison of Seed Column Construction Heuristics . . . . . . . . . 338 E.4 Sensitivity Analysis Results . . . . . . . . . . . . . . . . . . . . . . . . 341

Contents

xix

Appendix F Benchmark Problems for the PBSPCC F.1 Representation of Schedules . . . . . . . . . . F.2 Benchmark Problems . . . . . . . . . . . . . . F.2.1 Problem 1 . . . . . . . . . . . . . . . . F.2.2 Problem 2 . . . . . . . . . . . . . . . . F.2.3 Problem 3 . . . . . . . . . . . . . . . . F.2.4 Problem 4 . . . . . . . . . . . . . . . . F.2.5 Problem 5 . . . . . . . . . . . . . . . . F.2.6 Problem 6 . . . . . . . . . . . . . . . . F.2.7 Problem 7 . . . . . . . . . . . . . . . . F.2.8 Problem 8 . . . . . . . . . . . . . . . . F.2.9 Problem 9 . . . . . . . . . . . . . . . . F.2.10 Problem 10 . . . . . . . . . . . . . . . . F.2.11 Problem 11 . . . . . . . . . . . . . . . . F.2.12 Problem 12 . . . . . . . . . . . . . . . . F.2.13 Problem 13 . . . . . . . . . . . . . . . . F.2.14 Problem 14 . . . . . . . . . . . . . . . . F.2.15 Problem 15 . . . . . . . . . . . . . . . . F.2.16 Problem 16 . . . . . . . . . . . . . . . . F.2.17 Problem 17 . . . . . . . . . . . . . . . . F.2.18 Problem 18 . . . . . . . . . . . . . . . . F.2.19 Problem 19 . . . . . . . . . . . . . . . . F.2.20 Problem 20 . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . .

347 347 348 348 350 351 352 354 355 357 359 361 362 365 365 369 369 370 371 372 374 375 378

. . . . . .

381 381 382 385 389 395 400

Appendix G Benchmark Problems for the MCPRP G.1 Summary of Computational Results . . . . . G.2 40 Hotspots . . . . . . . . . . . . . . . . . . . G.3 60 Hotspots . . . . . . . . . . . . . . . . . . . G.4 80 Hotspots . . . . . . . . . . . . . . . . . . . G.5 80 Hotspots (Extension) . . . . . . . . . . . . G.6 100 Hotspots . . . . . . . . . . . . . . . . . . . References

. . . . . . . . . . . . . . . . . . . . . .

. . . . . .

. . . . . . . . . . . . . . . . . . . . . .

. . . . . .

. . . . . . . . . . . . . . . . . . . . . .

. . . . . .

. . . . . . . . . . . . . . . . . . . . . .

. . . . . .

. . . . . . . . . . . . . . . . . . . . . .

. . . . . .

. . . . . . . . . . . . . . . . . . . . . .

. . . . . .

. . . . . . . . . . . . . . . . . . . . . .

. . . . . .

. . . . . . . . . . . . . . . . . . . . . .

. . . . . .

. . . . . . . . . . . . . . . . . . . . . .

. . . . . .

. . . . . . . . . . . . . . . . . . . . . .

. . . . . .

. . . . . . . . . . . . . . . . . . . . . .

. . . . . .

. . . . . . . . . . . . . . . . . . . . . .

. . . . . .

. . . . . . . . . . . . . . . . . . . . . .

. . . . . .

407

List of Figures 3.1

A constraint matrix with a large number of variables. . . . . . . . . .

35

3.2

Coordination between the restricted master problem and the pricing subproblem. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

37

3.3

Dantzig-Wolfe decomposition example. . . . . . . . . . . . . . . . . .

51

3.4

Logic-flow diagram of a general branch-and-price scheme. . . . . . .

55

3.5

A branch-and-price tree. . . . . . . . . . . . . . . . . . . . . . . . . . .

63

3.6

A shortest path problem with resource constraints (SPPRC). . . . . .

65

3.7

SPPRC solution at the root node in terms of arc flows. . . . . . . . . .

68

3.8

SPPRC solution at the root node in terms of path flows. . . . . . . . .

68

3.9

SPPRC branch-and-price tree. . . . . . . . . . . . . . . . . . . . . . . .

70

4.1

An illustration of a patrol operations network and the possible states of the patrol boats. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

82

4.2

Toy problem illustration. . . . . . . . . . . . . . . . . . . . . . . . . . .

83

4.3

Toy problem sensitivity analysis to economical speed endurance. . .

87

4.4

Toy problem sensitivity analysis to idle time. . . . . . . . . . . . . . .

87

4.5

An illustrative example of an RST network. . . . . . . . . . . . . . . .

91

4.6

Port region within an RST network. . . . . . . . . . . . . . . . . . . .

92

4.7

A partial RST network illustrating a selection of feasible transitions. .

95

4.8

Optimal solutions for the minimum fleet size problem and the minimum non-patrol time problem: Test Problem 1, TE = 18, TR = 1, T = 24. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127

4.9

Optimal solutions for the minimum fleet size problem and the minimum non-patrol time problem: Test Problem 3, TE = 18, TR = 2, T = 27. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128

5.1

The column generation framework for the PBSPCC. . . . . . . . . . . 131

xxii

List of Figures

5.2

Spatial representations of the test problem patrol networks. . . . . . . 137

5.3

Column generation runtime comparison charts for implementation strategies C1 and N1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140

5.4

Column generation runtime comparison charts for implementation strategies C2 and N2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141

5.5

Column generation runtime comparison charts for implementation strategies C1 and C2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142

5.6

Column generation runtime comparison charts for implementation strategies N1 and N2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143

5.7

An example of a cyclic scheduling solution for Test Problem 5. . . . . 150

5.8

Updating the source and sink arcs of an RST network in order to find a new integer solution which permutes the paths in a cyclic manner.

5.9

154

Example RST network showing a set of paths which collectively satisfy a covering path permutation solution. . . . . . . . . . . . . . . . . 156

5.10 An example of a complete coverage path permutation solution. . . . 157 5.11 Partitioning of Test Problem 19 into halves. . . . . . . . . . . . . . . . 158 5.12 Sensitivity analysis example for Test Problem 16. . . . . . . . . . . . . 175 5.13 Test Problem 5: Sensitivity analysis of the minimum number boats required with endurance and replenishment time. . . . . . . . . . . . 176 5.14 Test Problem 5: Sensitivity analysis of the patrol coverage with endurance and replenishment time. . . . . . . . . . . . . . . . . . . . . . 176 6.1

Transformation of a Hamiltonian circuit. . . . . . . . . . . . . . . . . . 178

6.2

The effect of the transformation on an edge. . . . . . . . . . . . . . . . 183

6.3

The effect of the transformation on an a simple graph. . . . . . . . . . 183

6.4

Illustration of defined values w(m), x(m), and y(m). . . . . . . . . . . 185

7.1

An example of hotspot locations on a road network. . . . . . . . . . . 200

7.2

The patrol arc construction for a time-space network. . . . . . . . . . 203

7.3

Two options for the patrol arc construction. . . . . . . . . . . . . . . . 205

7.4

Construction of primary transit and waiting arcs. . . . . . . . . . . . . 206

7.5

Construction of secondary transit and waiting arcs. . . . . . . . . . . 209

7.6

Deletion of superfluous arcs and vertices. . . . . . . . . . . . . . . . . 209

7.7

Alternative grid choices for the test problems. . . . . . . . . . . . . . . 226

7.8

Snapshot of a patrol vehicle schedule. . . . . . . . . . . . . . . . . . . 227

List of Figures 7.9

xxiii

Optimal schedule for 6 cars, 60 hotspots, 60 locations, grid size 30, 30 minute time windows. . . . . . . . . . . . . . . . . . . . . . . . . . . . 228

7.10 Comparison of the runtime performance of the MCNFP model with the branch-and-price approach on a 200 hotspot test problem with 2 to 25 cars. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231 7.11 Comparison of the runtime performance of the MCNFP model with the branch-and-price approach on a 250 hotspot test problem with 2 to 25 cars. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232 7.12 Comparison of the runtime performance of the MCNFP model with the branch-and-price approach on a 200 hotspot test problem with 26 to 50 cars. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232 7.13 Comparison of the runtime performance of the MCNFP model with the branch-and-price approach on a 250 hotspot test problem with 26 to 50 cars. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233 8.1

Hotspot 1 not completely covered . . . . . . . . . . . . . . . . . . . . 245

8.2

Hotspot 2 not completely covered. . . . . . . . . . . . . . . . . . . . . 245

8.3

An optimal solution to an example of the heterogeneous MCPRP. . . 246

D.1 Graph representation of Test Problem 1. . . . . . . . . . . . . . . . . . 277 D.2 Graph representation of Test Problem 2. . . . . . . . . . . . . . . . . . 278 D.3 Graph representation of Test Problem 3. . . . . . . . . . . . . . . . . . 278 D.4 Graph representation of Test Problem 4. . . . . . . . . . . . . . . . . . 279 D.5 Graph representation of Test Problem 5. . . . . . . . . . . . . . . . . . 280 D.6 Graph representation of Test Problem 6. . . . . . . . . . . . . . . . . . 281 D.7 Graph representation of Test Problem 7. . . . . . . . . . . . . . . . . . 283 D.8 Graph representation of Test Problem 8. . . . . . . . . . . . . . . . . . 284 D.9 Graph representation of Test Problem 9. . . . . . . . . . . . . . . . . . 286 D.10 Graph representation of Test Problem 10. . . . . . . . . . . . . . . . . 288 D.11 Graph representation of Test Problem 11. . . . . . . . . . . . . . . . . 289 D.12 Graph representation of Test Problem 12. . . . . . . . . . . . . . . . . 291 D.13 Graph representation of Test Problem 13. . . . . . . . . . . . . . . . . 293 D.14 Graph representation of Test Problem 14. . . . . . . . . . . . . . . . . 293 D.15 Graph representation of Test Problem 15. . . . . . . . . . . . . . . . . 294 D.16 Graph representation of Test Problem 16. . . . . . . . . . . . . . . . . 294 D.17 Graph representation of Test Problem 17. . . . . . . . . . . . . . . . . 295

xxiv

List of Figures

D.18 Graph representation of Test Problem 18. . . . . . . . . . . . . . . . . 295 D.19 Graph representation of Test Problem 19. . . . . . . . . . . . . . . . . 296 D.20 Graph representation of Test Problem 20. . . . . . . . . . . . . . . . . 297 E.1 Column generation performance charts for Test Problem 1 . . . . . . 300 E.2 Column generation performance charts for Test Problem 2 . . . . . . 301 P E.3 Values of p∈P λp in column generation solutions for Test Problem 1 and Test Problem 2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302 E.4 Column generation performance charts for Test Problem 3 . . . . . . 303 E.5 Column generation performance charts for Test Problem 4 . . . . . . 304 P E.6 Values of p∈P λp in column generation solutions for Test Problem 3 and Test Problem 4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305 E.7 Column generation performance charts for Test Problem 5 . . . . . . 306 E.8 Column generation performance charts for Test Problem 6 . . . . . . 307 P E.9 Values of p∈P λp in column generation solutions for Test Problem 5 and Test Problem 6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 308 E.10 Column generation performance charts for Test Problem 7 . . . . . . 309 E.11 Column generation performance charts for Test Problem 8 . . . . . . 310 P E.12 Values of p∈P λp in column generation solutions for Test Problem 7 and Test Problem 8. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 311 E.13 Column generation performance charts for Test Problem 9 . . . . . . 312 E.14 Column generation performance charts for Test Problem 10 . . . . . . 313 P E.15 Values of p∈P λp in column generation solutions for Test Problem 9 and Test Problem 10. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314 E.16 Column generation performance charts for Test Problem 11 . . . . . . 315 E.17 Column generation performance charts for Test Problem 12 . . . . . . 316 P E.18 Values of p∈P λp in column generation solutions for Test Problem 11 and Test Problem 12. . . . . . . . . . . . . . . . . . . . . . . . . . . . 317 E.19 Column generation performance charts for Test Problem 13 . . . . . . 318 E.20 Column generation performance charts for Test Problem 14 . . . . . . 319 P E.21 Values of p∈P λp in column generation solutions for Test Problem 13 and Test Problem 14. . . . . . . . . . . . . . . . . . . . . . . . . . . . 320 E.22 Column generation performance charts for Test Problem 15 . . . . . . 321 E.23 Column generation performance charts for Test Problem 16 . . . . . . 322

List of Figures

xxv

P E.24 Values of p∈P λp in column generation solutions for Test Problem 15 and Test Problem 16. . . . . . . . . . . . . . . . . . . . . . . . . . . . 323 E.25 Column generation performance charts for Test Problem 17 . . . . . . 324 E.26 Column generation performance charts for Test Problem 18 . . . . . . 325 P E.27 Values of p∈P λp in column generation solutions for Test Problem 17 and Test Problem 18. . . . . . . . . . . . . . . . . . . . . . . . . . . . 326 E.28 Column generation performance charts for Test Problem 19 . . . . . . 327 E.29 Column generation performance charts for Test Problem 20 . . . . . . 328 P E.30 Values of p∈P λp in column generation solutions for Test Problem 19 and Test Problem 20. . . . . . . . . . . . . . . . . . . . . . . . . . . . 329 E.31 Computational comparison of the GSPH (Greedy) with RPASSPH (Select). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 340 F.1

Representation of a portion of a patrol boat schedule. . . . . . . . . . 348

F.2

Solution for Instance 1_a. . . . . . . . . . . . . . . . . . . . . . . . . . . 348

F.3

Solution for Instance 1_c. . . . . . . . . . . . . . . . . . . . . . . . . . . 349

F.4

Solution for Instance 1_b. . . . . . . . . . . . . . . . . . . . . . . . . . 349

F.5

Solution for Instance 1_d. . . . . . . . . . . . . . . . . . . . . . . . . . 350

F.6

Solution for Instance 2_b. . . . . . . . . . . . . . . . . . . . . . . . . . 350

F.7

Solution for Instance 2_a. . . . . . . . . . . . . . . . . . . . . . . . . . . 350

F.8

Solution for Instance 3_b. . . . . . . . . . . . . . . . . . . . . . . . . . 351

F.9

Solution for Instance 3_a. . . . . . . . . . . . . . . . . . . . . . . . . . . 351

F.10 Solution for Instance 4_b. . . . . . . . . . . . . . . . . . . . . . . . . . 352 F.11 Solution for Instance 4_c. . . . . . . . . . . . . . . . . . . . . . . . . . . 353 F.12 Solution for Instance 4_a. . . . . . . . . . . . . . . . . . . . . . . . . . . 354 F.13 Solution for Instance 5_a. . . . . . . . . . . . . . . . . . . . . . . . . . . 354 F.14 Solution for Instance 5_b. . . . . . . . . . . . . . . . . . . . . . . . . . 355 F.15 Solution for Instance 6_d. . . . . . . . . . . . . . . . . . . . . . . . . . 355 F.16 Solution for Instance 6_b. . . . . . . . . . . . . . . . . . . . . . . . . . 356 F.17 Solution for Instance 6_c. . . . . . . . . . . . . . . . . . . . . . . . . . . 356 F.18 Solution for Instance 6_a. . . . . . . . . . . . . . . . . . . . . . . . . . . 356 F.19 Solution for Instance 7_a. . . . . . . . . . . . . . . . . . . . . . . . . . . 357 F.20 Solution for Instance 7_b. . . . . . . . . . . . . . . . . . . . . . . . . . 357 F.21 Solution for Instance 7_c. . . . . . . . . . . . . . . . . . . . . . . . . . . 358 F.22 Solution for Instance 8_d. . . . . . . . . . . . . . . . . . . . . . . . . . 359

xxvi

List of Figures

F.23 Solution for Instance 8_c. . . . . . . . . . . . . . . . . . . . . . . . . . . 359 F.24 Solution for Instance 8_a. . . . . . . . . . . . . . . . . . . . . . . . . . . 360 F.25 Solution for Instance 8_b. . . . . . . . . . . . . . . . . . . . . . . . . . 360 F.26 Solution for Instance 9_ab. . . . . . . . . . . . . . . . . . . . . . . . . . 361 F.27 Solution for Instance 9_cd. . . . . . . . . . . . . . . . . . . . . . . . . . 361 F.28 Solution for Instance 10_a. . . . . . . . . . . . . . . . . . . . . . . . . . 362 F.29 Solution for Instance 10_bc*. . . . . . . . . . . . . . . . . . . . . . . . . 362 F.30 Solution for Instance 10_de*. . . . . . . . . . . . . . . . . . . . . . . . . 363 F.31 Solution for Instance 10_gf*. . . . . . . . . . . . . . . . . . . . . . . . . 364 F.32 Solution for Instance 11_b. . . . . . . . . . . . . . . . . . . . . . . . . . 365 F.33 Solution for Instance 11_a. . . . . . . . . . . . . . . . . . . . . . . . . . 365 F.34 Solution for Instance 12_d. . . . . . . . . . . . . . . . . . . . . . . . . . 366 F.35 Solution for Instance 12_a. . . . . . . . . . . . . . . . . . . . . . . . . . 367 F.36 Solution for Instance 12_b. . . . . . . . . . . . . . . . . . . . . . . . . . 367 F.37 Solution for Instance 12_c. . . . . . . . . . . . . . . . . . . . . . . . . . 368 F.38 Solution for Instance 13_b. . . . . . . . . . . . . . . . . . . . . . . . . . 369 F.39 Solution for Instance 13_a. . . . . . . . . . . . . . . . . . . . . . . . . . 369 F.40 Solution for Instance 14_b. . . . . . . . . . . . . . . . . . . . . . . . . . 369 F.41 Solution for Instance 14_a. . . . . . . . . . . . . . . . . . . . . . . . . . 370 F.42 Solution for Instance 15_b. . . . . . . . . . . . . . . . . . . . . . . . . . 370 F.43 Solution for Instance 15_a. . . . . . . . . . . . . . . . . . . . . . . . . . 371 F.44 Solution for Instance 16_b. . . . . . . . . . . . . . . . . . . . . . . . . . 371 F.45 Solution for Instance 16_c. . . . . . . . . . . . . . . . . . . . . . . . . . 371 F.46 Solution for Instance 16_d. . . . . . . . . . . . . . . . . . . . . . . . . . 371 F.47 Solution for Instance 16_a. . . . . . . . . . . . . . . . . . . . . . . . . . 372 F.48 Solution for Instance 17_a. . . . . . . . . . . . . . . . . . . . . . . . . . 372 F.49 Solution for Instance 17_c. . . . . . . . . . . . . . . . . . . . . . . . . . 373 F.50 Solution for Instance 17_d. . . . . . . . . . . . . . . . . . . . . . . . . . 373 F.51 Solution for Instance 17_b. . . . . . . . . . . . . . . . . . . . . . . . . . 373 F.52 Solution for Instance 18_b. . . . . . . . . . . . . . . . . . . . . . . . . . 374 F.53 Solution for Instance 18_c. . . . . . . . . . . . . . . . . . . . . . . . . . 374 F.54 Solution for Instance 18_a. . . . . . . . . . . . . . . . . . . . . . . . . . 375 F.55 Solution for Instance 19_c*. . . . . . . . . . . . . . . . . . . . . . . . . 375 F.56 Solution for Instance 19_b. . . . . . . . . . . . . . . . . . . . . . . . . . 376 F.57 Solution for Instance 19_a. . . . . . . . . . . . . . . . . . . . . . . . . . 376

List of Figures F.58 F.59 F.60 F.61

Solution for Instance 19_d*. Solution for Instance 20_c. . Solution for Instance 20_b. . Solution for Instance 20_a. .

xxvii . . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

G.1 Runtimes for the range of H40 test problem instances solved with the MCNFP model. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . G.2 Runtimes for the range of H60 test problem instances solved with the MCNFP model. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . G.3 Runtimes for the range of H80 test problem instances solved with the MCNFP model. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . G.4 Runtimes for the range of H80 (extension) test problem instances solved with the MCNFP model. . . . . . . . . . . . . . . . . . . . . . . G.5 Runtimes for the range of H100 test problem instances solved with the MCNFP model. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

377 378 378 379

382 385 389 395 400

List of Tables 5.1

Test problem patrol networks. . . . . . . . . . . . . . . . . . . . . . . . 137

5.2

Column generation approaches to the homogeneous PBSPCC. . . . . 138

5.3

Test problem instances for column generation at the root node. . . . . 139

5.4

Input data for the branch-and-price path permutation problems. . . . 161

5.5

Number of nodes and arcs for the RST networks of the path permutation problems with T = T2 . . . . . . . . . . . . . . . . . . . . . . . . 162

5.6

Branch-and-price data for path permutation problems. . . . . . . . . 163

5.7

Integer solutions for the branch-and-price path permutation problems.164

5.8

Input data for the problem instances which solve at the root node. . . 165

5.9

Integer solutions for the root node problems. . . . . . . . . . . . . . . 165

5.10 Input data for the rolling horizon problem instances. . . . . . . . . . 166 5.11 Root node solution summaries for rolling horizon problem instances 4_b, 4_c and 10_f. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167 5.12 Root node solution summaries for rolling horizon problem instances 12_d and 19_d. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168 5.13 Branch-and-price and integer solution data for the rolling horizon problems. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169 5.14 Benchmark problems summary. . . . . . . . . . . . . . . . . . . . . . . 173 7.1

Test problem patrol operations networks for the MCPRP. . . . . . . . 225

7.2

Test Problem H300_a: 2 − 26 cars. . . . . . . . . . . . . . . . . . . . . . 235

7.3

Test Problem H300_a: 27 − 50 cars. . . . . . . . . . . . . . . . . . . . . 236

7.4

Test Problem H500_a: 2 − 26 cars. . . . . . . . . . . . . . . . . . . . . . 237

7.5

Test Problem H500_a: 27 − 50 cars. . . . . . . . . . . . . . . . . . . . . 238

E.1 Results CG1_a − CG7_b for the number of generated columns and root node runtime. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 332

xxx

List of Tables E.2 Results CG7_c − CG13_a for the number of generated columns and root node runtime. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333 E.3 Results CG13_b − CG20_c for the number of generated columns and root node runtime. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 334 E.4 Solution summary for CG1_a − CG7_b. . . . . . . . . . . . . . . . . . 335 E.5 Solution summary for CG7_c − CG13_a. . . . . . . . . . . . . . . . . . 336 E.6 Solution summary for CG13_b − CG20_c. . . . . . . . . . . . . . . . . 337 E.7 Sensitivity analysis data for Test Problem 5 with TR = 0. . . . . . . . . 341 E.8 Sensitivity analysis data for Test Problem 5 with TR = 1. . . . . . . . . 342 E.9 Sensitivity analysis data for Test Problem 5 with TR = 2. . . . . . . . . 343 E.10 Sensitivity analysis data for Test Problem 5 with TR = 3. . . . . . . . . 344 E.11 Sensitivity analysis data for Test Problem 5 with TR = 4. . . . . . . . . 345 E.12 Sensitivity analysis data for Test Problem 5 with TR = 5. . . . . . . . . 346 G.1 Test Problem H40_a: 2 − 4 cars. . . . . . . . . . . . . . . . . . . . . . . 382 G.2 Test Problem H40_b: 2 − 6 cars. . . . . . . . . . . . . . . . . . . . . . . 382 G.3 Test Problem H40_c: 2 − 5 cars. . . . . . . . . . . . . . . . . . . . . . . 383 G.4 Test Problem H40_d: 2 − 8 cars. . . . . . . . . . . . . . . . . . . . . . . 383 G.5 Test Problem H40_e: 2 − 10 cars. . . . . . . . . . . . . . . . . . . . . . 383 G.6 Test Problem H40_f: 2 − 13 cars. . . . . . . . . . . . . . . . . . . . . . 384 G.7 Test Problem H40_g: 2 − 14 cars. . . . . . . . . . . . . . . . . . . . . . 384 G.8 Test Problem H40_h: 2 − 15 cars. . . . . . . . . . . . . . . . . . . . . . 385 G.9 Test Problem H60_a: 2 − 7 cars. . . . . . . . . . . . . . . . . . . . . . . 386 G.10 Test Problem H60_b: 2 − 8 cars. . . . . . . . . . . . . . . . . . . . . . . 386 G.11 Test Problem H60_c: 2 − 7 cars. . . . . . . . . . . . . . . . . . . . . . . 386 G.12 Test Problem H60_d: 2 − 11 cars. . . . . . . . . . . . . . . . . . . . . . 387 G.13 Test Problem H60_e: 2 − 12 cars. . . . . . . . . . . . . . . . . . . . . . 387 G.14 Test Problem H60_f: 2 − 13 cars. . . . . . . . . . . . . . . . . . . . . . 388 G.15 Test Problem H60_g: 2 − 16 cars. . . . . . . . . . . . . . . . . . . . . . 388 G.16 Test Problem H60_h: 2 − 16 cars. . . . . . . . . . . . . . . . . . . . . . 389 G.17 Test Problem H80_a: 2 − 6 cars. . . . . . . . . . . . . . . . . . . . . . . 390 G.18 Test Problem H80_b: 2 − 9 cars. . . . . . . . . . . . . . . . . . . . . . . 390 G.19 Test Problem H80_c: 2 − 8 cars. . . . . . . . . . . . . . . . . . . . . . . 390 G.20 Test Problem H80_d: 2 − 14 cars. . . . . . . . . . . . . . . . . . . . . . 391 G.21 Test Problem H80_e: 2 − 17 cars. . . . . . . . . . . . . . . . . . . . . . 391

List of Tables G.22 Test Problem H80_f: 2 − 16 cars. . G.23 Test Problem H80_g: 2 − 22 cars. . G.24 Test Problem H80_h: 2 − 22 cars. . G.25 Test Problem H80_i: 2 − 6 cars. . . G.26 Test Problem H80_j: 2 − 10 cars. . . G.27 Test Problem H80_k: 2 − 9 cars. . . G.28 Test Problem H80_l: 2 − 10 cars. . G.29 Test Problem H80_m: 2 − 13 cars. . G.30 Test Problem H80_n: 2 − 14 cars. . G.31 Test Problem H80_o: 2 − 22 cars. . G.32 Test Problem H80_p: 2 − 22 cars. . G.33 Test Problem H100_a: 2 − 8 cars. . G.34 Test Problem H100_b: 2 − 10 cars. G.35 Test Problem H100_c: 2 − 7 cars. . G.36 Test Problem H100_d: 2 − 16 cars. G.37 Test Problem H100_e: 2 − 13 cars. . G.38 Test Problem H100_f: 2 − 20 cars. . G.39 Test Problem H100_g: 2 − 24 cars. G.40 Test Problem H100_h: 2 − 35 cars.

xxxi . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . .

392 393 394 395 396 396 396 397 397 398 399 400 401 401 402 402 403 404 405

List of Algorithms 1

Revised simplex method . . . . . . . . . . . . . . . . . . . . . . . . . .

29

2

Dantzig-Wolfe column generation . . . . . . . . . . . . . . . . . . . .

48

3

Get the shortest path to a vertex from a shortest paths tree . . . . . .

73

4

Shortest path initialization . . . . . . . . . . . . . . . . . . . . . . . . .

74

5

Edge relaxation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

74

6

Bellman-Ford shortest path . . . . . . . . . . . . . . . . . . . . . . . .

76

7

Depth-first search visit . . . . . . . . . . . . . . . . . . . . . . . . . . .

78

8

Depth-first search . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

79

9

Topological ordering . . . . . . . . . . . . . . . . . . . . . . . . . . . .

79

10

Shortest path on a directed acyclic graph . . . . . . . . . . . . . . . .

80

11

PBSPCC: RST network transition test . . . . . . . . . . . . . . . . . . .

94

12

PBSPCC: Get the maximum patrol time . . . . . . . . . . . . . . . . . 109

13

PBSPCC: Dual based shortest path through an RST network . . . . . 112

14

PBSPCC: Apply dual costs to the arcs of an RST network . . . . . . . 112

15

PBSPCC: Shortest path heuristic for column generation initialization 132

16

PBSPCC: Column generation procedure . . . . . . . . . . . . . . . . . 135

17

MCPRP: Initialization of a time-space network . . . . . . . . . . . . . 202

18

MCPRP: Patrol arc construction for hotspots . . . . . . . . . . . . . . 204

19

MCPRP: Primary transit and waiting arc construction . . . . . . . . . 206

20

MCPRP: Secondary transit and waiting arc construction . . . . . . . . 207

21

MCPRP: Post-processing of the time-space network . . . . . . . . . . 208

22

MCPRP: Dual based shortest path through a time-space network . . 218

23

MCPRP: Apply dual costs to the arcs of a time-space network . . . . 219

24

MCPRP: Shortest path heuristic for column generation initialization . 220

25

MCPRP: Column generation procedure . . . . . . . . . . . . . . . . . 221

26

PBSPCC: Get shortest path to/from the tail/head of a patrol arc . . . 338

xxxiv

List of Algorithms

27

PBSPCC: Random patrol arc selection shortest path heuristic for column generation initialization . . . . . . . . . . . . . . . . . . . . . . . 339

Chapter 1 Introduction and Thesis Outline 1.1

Introduction

This dissertation is concerned with routing and scheduling patrol assets to provide coverage or presence to a pre-defined set of patrol regions. The motivation for this research began while the author was working on fleet sizing studies of patrol boats within the Maritime Security Group, Maritime Operations Division, Defence Science and Technology Organisation (DSTO).1 In particular, two patrol routing and scheduling problems are the primary foci of this dissertation: the Patrol Boat Scheduling Problem with Complete Coverage (PBSPCC) and the Maximum Covering and Patrol Routing Problem (MCPRP). The PBSPCC is concerned with providing a set of patrol regions with a continuous patrolling presence. This problem arises when a patrol boat fleet is required to provide complete coverage of a set of maritime patrol regions. Fundamentally, this means that there must be at least one patrol boat on station in each patrol region at any given time. Such a requirement is complicated by the fact that the boats cannot actively perform patrol duties for an indefinite period of time. Before a maximum operational time has expired, a patrol boat must return to a port for a mandatory resource replenishment break, such as crew layover time or refuelling. The problem must be addressed by taking into consideration the operational performance of the patrol boats, the geographical network, and the duration of a resource replenishment break. Furthermore, in order to utilize resources in the most efficient manner, the objective of the problem is to determine the minimum or least number 1

Now known as the Defence Science and Technology Group (DST Group).

Introduction and Thesis Outline

2

of patrol boats which can meet the stated requirement, given the aforementioned constraints. In recent years, a similar patrol covering/presence problem has garnered some attention in the Operations Research (OR) literature, namely the MCPRP. This problem is concerned with routing a fleet of patrol cars to provide maximum coverage of a set of accident hotspots on a road network, where each hotspot is given by a geographical location and a time window. The patrol cars maintain active duty over a pre-defined shift, and each car begins and ends the shift at a single depot or home base. In this dissertation, we present new modelling and algorithmic approaches for addressing the patrol coverage problems outlined above. Specifically, the algorithmic approaches are underpinned by column generation, which is an advanced optimization technique employed within the disciplines of linear and integer programming. Column generation can be applied to linear programs which contain too many variables for the direct application of standard algorithms of simplex type. In its pure form, column generation addresses continuous variable problems, and just as the standard simplex algorithm is augmented with branch-and-bound to solve integer problems, column generation is augmented with a technique called branch-and-price. We show that the PBSPCC and the MCPRP can be efficiently handled via a column generation approach on a time-space network formulation of the problem.

1.2

Personal Reflections on Background Material

Even though I began my doctoral research as a spirited optimist, I was quickly brought back to reality when I discovered that I knew very little about linear programming, column generation, combinatorial optimization, object oriented coding, etc. I thus embarked on a two year journey of intense learning and training before delving into any actual research. As a large component of my candidature has involved learning and mastering techniques which were heretofore foreign to me, I have endeavoured to include a pedagogical treatment of the theoretical background material as a substantial component of this dissertation. It is my hope that the presentation of this material will be helpful to anyone who is new to the field and wishes to get up to speed without having to endure unnecessary exertion. The extensive treatment of the theoretical background has also been written as

1.3 Contributions of the Thesis

3

a token of thanks to the Defence Science and Technology Group (DST Group) for sponsoring this research project. In order to give something mildly ’useful’ back to DST Group, it was my clear intention to produce a document which would be selfcontained, with most of the background and explanatory details under ’one roof.’ To that end, I trust that the inclusion of this material will provide some helpful assistance to at least one of my colleagues at some point in the future. In order to achieve these stated intentions, many rudimentary details have been included in this dissertation which would have otherwise been omitted. In particular, Chapter 3, Appendix A, Appendix B and Appendix C contain a thorough summary of the pre-requisite mathematical background material. For readers who are already familiar with set theory, the theory of linear and integer programming, column generation and combinatorial optimization, the background material can be lightly perused to get a feel for the notation, or otherwise, skipped entirely. On the other hand, readers with little knowledge of the necessary background should find the illustrative material and pedagogical examples adequate to understand the substantive content of this dissertation.

1.3

Contributions of the Thesis

We define and introduce a new combinatorial optimization problem called the Patrol Boat Scheduling Problem with Complete Coverage (PBSPCC). The PBSPCC is concerned with routing and scheduling a fleet of resource-constrained patrol boats to provide complete coverage to a set of patrol regions while concomitantly ensuring that the fleet size is a minimum. We establish a thematic connection between the PBSPCC and a range of related problems in the open literature, thus proposing the classification of a patrol covering class of Vehicle Routing Problem (VRP). We prove that the PBSPCC is N P-hard and problematic to model in the standard parlance of VRPs, thereby justifying the development of non-standard modelling approaches. We propose a column generation approach to the PBSPCC over a resource and time expanded spatial network (RST network), which can be constructed as a directed acyclic graph. With this construct, we show that the column generation subproblem can be solved with a pure shortest path algorithm over a topologically sorted list of the network vertices. We develop a variety of acceleration strategies for the column generation paradigm, including:

Introduction and Thesis Outline

4 • • • •

the addition of valid inequalities to the master problem, construction heuristics for the seed columns, multiple path pricing at each call to the subproblem, and interchanging the master problem objective function (minimize the fleet size) with minimizing the non-patrol time.

For the latter acceleration strategy, we derive theoretical results which establish the conditions under which the interchange is valid. We also show that our theoretical insights provide an optimality test (independent of the underlying network construct) for any known feasible solution to the PBSPCC. The acceleration strategies are tested and compared against more simplified column generation approaches, thus demonstrating their utility. We propose branch-and-price heuristics for finding integer feasible solutions to the PBSPCC. The branching heuristics incorporate depth-first search with the selection of multiple fractional arcs of the underlying resource and time expanded network. We show how branching cuts may be incorporated into the master problem throughout the branch-and-price tree without altering the subproblem structure. In order to enhance the efficiency of our column generation approach, we combine the branch-and-price heuristics with decomposition strategies (including clustering of the spatial network and contraction of the planning horizon) to find long term feasible solutions on a range of new benchmark problems. In particular, we introduce the notion of cyclic schedules and heuristics for extending a known feasible solution via a rolling horizon scheme. From an applied perspective, we demonstrate how our modelling approach to the PBSPCC can be used to perform sensitivity analyses of the fleet size and patrol coverage to the endurance and replenishment break duration. We show how such analyses may aid decision makers to set performance goals for a fleet of patrol boats based on the desired number and the amount of schedule slack. We provide further justification for the strength of the column generation approach to the PBSPCC by adapting it to solve large-scale instances of the Maximum Covering and Patrol Routing Problem (MCPRP). The MCPRP is concerned with routing a fleet of patrol cars to maximize patrol coverage over a set of accident hotspots on a highway network. We introduce a new method of constructing a time-space network for the MCPRP which is suitable for the application of our column generation solution approach. The time-space network is constructed by utilizing an important insight of Keskin et al. [77]. We propose some large scale

1.4 Thesis Outline

5

test problems and compare the column generation approach to the state-of-the-art Minimum Cost Network Flow Problem (MCNFP) model of Dewil et al. [38]. We show that our column generation approach can outperform the MCNFP model on selected large-scale networks for small to medium fleet sizes. We also identify problems which are too large for the MCNFP model to solve, but which can be easily handled by our column generation approach.

1.4

Thesis Outline

The thesis is structured according to eight chapters (including this one) and seven appendices. The chapters are ordered numerically (1 to 8), whereas the appendices are ordered alphabetically (A to G). The bibliography or list of references can be found at the back of the thesis (after Appendix G). In this section, we provide a succinct overview of the contents of each chapter and include some instructive remarks where appropriate.

1.4.1

Main Body

Chapter 2 is a survey of the relevant literature. The chapter begins by providing a general overview of the various types of patrol asset planning problems which have been examined heretofore. These include patrol boat and crew scheduling for the U.S. Coast Guard and the Royal Australian Navy. The chapter also contains a review of closely related problems from the literature on vehicle routing and a synthesis of recent developments in the area of patrol covering problems. Chapter 3 contains a comprehensive treatment of the theoretical underpinnings of the thesis. The chapter begins by reviewing some preliminary results from the theory of linear programming, including the revised simplex method and duality theory. An introduction to column generation follows, which is motivated by a worked example on the cutting stock problem. The theory of column generation is then discussed in more detail via the decomposition approach of Dantzig and Wolfe. The chapter continues with an exposition of branch-and-price, which is a generalization of column generation to integer problems. The chapter concludes with a treatment of shortest path problems.2 2

A word of caution to intrepid readers with little background in the field. It is recommended that the mathematical material summarized in Appendix A and Appendix B be reviewed before

6

Introduction and Thesis Outline

The column generation framework for the Patrol Boat Scheduling Problem with Complete Coverage (PBSPCC) is covered in Chapter 4 (part I) and Chapter 5 (part II). The discussion of the PBSPCC is continued in Chapter 6 which provides an analysis of its computational complexity. Therefore, the discussion of the PBSPCC is divided into three thematic parts; the first part (Chapter 4) relates to the modelling and theoretical foundations, the second part (Chapter 5) examines the algorithmic aspects of the column generation approach, and the third part (Chapter 6) tackles the issue of complexity. Chapter 4 begins by motivating the study of the PBSPCC with some contextual background and an illustration of the conceptual framework through a toy problem. The network structure of the patrol operations theatre is then discussed, followed by a procedure for constructing a Resource-Time-Space (RST) network to be used for the column generation subproblems. We then show how the RST network structure can be used to formulate an integer program and a linear programming relaxation based on Dantzig-Wolfe decomposition. The nature of the column generation master problem, reduced costs and subproblem is then presented for a homogeneous fleet. The chapter concludes with a few theorems and corollaries for the column generation acceleration strategies introduced in Chapter 5. Chapter 5 opens with a discussion of construction heuristics for the seed columns and methods for generating negative reduced cost paths from the pricing subproblem. This is followed by computational tests which compare various seed column and pricing choices on the root node performance. A proposed branch-and-price approach is then outlined in some detail. This includes a discussion of branching rules for the subproblem and master problem, and the traversal of the search tree. A number of problem reduction techniques are then discussed, which include methods to find cyclic solutions, rolling horizons and network clustering. These techniques are then applied to set of benchmark problems, and the results are discussed. The chapter finishes with a sensitivity analysis case study involving patrol boat numbers and schedule slack. Chapter 6 discusses the computational complexity of the PBSPCC. This chapter is co-authored by Dr. Timothy J. Surendonk, the Defence Science and Technology Group supervisor of this dissertation. The discussion contained in Chapter 6 demonstrates that the PBSPCC is N P-hard by proffering a transformation from the attempting to read Chapter 3. This should familiarize the reader with the notational conventions adopted in the thesis and expose the reader to the key terms in the lexicon of linear programming.

1.4 Thesis Outline

7

Hamiltonian Graph Decision Problem. The Maximum Covering and Patrol Routing Problem (MCPRP) is the focus of Chapter 7. The contextual background and a brief summary of the extant approaches to the problem form the opening sections of the chapter. We then provide a detailed and nuanced algorithmic process for a discrete time-space network which provides the appropriate construct for the pricing subproblem. A column generation master problem, reduced costs and pricing subproblem are subsequently defined for a homogeneous fleet of patrol cars. The chapter concludes with a discussion of computational tests performed on a range of medium to large-scale benchmark problems. Chapter 8 summarizes the contributions made in this dissertation and attempts to bring the whole program of research together into a single thematic piece. A number of broad and narrow conclusions are given as well as a list of unanswered problems arising from this course of study. We also present future research avenues for the PBSPCC and the MCPRP.

1.4.2

Appendices

Appendix A reviews some fundamental mathematical preliminaries, such as set theory, functions/mappings, permutations, matrices, vectors, linear algebra, graph theory and asymptotic notation. Appendix B builds on the foundation of Appendix A by reviewing a few concepts from the theory of linear and integer programming. These include a discussion of polyhedra, convex sets and basic feasible solutions. Appendix A and Appendix B also introduce the notational conventions adopted in the thesis, and therefore, should be consulted if any mathematical descriptors in the main body are unclear. Appendix C contains a treatment of Lagrangian relaxation, which is the dual perspective of the Dantzig-Wolfe column generation approach. This appendix is included for the sake of completeness and to complement the discussion of duality theory found in Chapter 3. The remaining appendices contain information relevant to the computational tests performed as part of this research. Appendix D contains a complete list of the test problems which were designed for the study of the PBSPCC. This includes graph theoretic representations of the network topologies, the travel time matrices and the adjacency matrices. Appendix E provides a large number of charts sum-

Introduction and Thesis Outline

8

marizing the column generation root node behaviour for the PBSPCC on the test problems listed in Appendix D, while Appendix F contains the schedule representations of the solutions to the benchmark problems found in Chapter 5. Finally, Appendix G tabulates the entire list of test problem instances used for the study of the MCPRP.

1.5

Thesis Scope

We have already outlined the significant contributions of this thesis and presented an overview of its contents. It now behoves us to say a few words about the intended scope of the subject matter. We will endeavour to explain the motivation for the research, how it was shaped, and speak to the primary issues it addresses. We will also provide clarification on the research excursions that could have been conducted but which were omitted in order to preserve a logical thesis narrative and to cast a wider net of applicability. The research presented in this dissertation is primarily focussed on the applicability of column generation approaches to selected problems in the field of patrol asset routing and scheduling, with the prime motivation stemming from the proposal of a new problem variant, namely, the PBSPCC. Given that the PBSPCC possesses a unique combination of characteristics which have not been studied heretofore, the thesis has been scoped to provide insight into the substantive problem solving issues. In particular, a column generation solution approach with a resource and time expanded network construct provides the framework within which the PBSPCC is studied. Furthermore, the research trajectory was directed toward a solution approach which could deliver cyclic and long term scheduling solutions of the PBSPCC, thus requiring the formulation of branch-and-price heuristics. In order to broaden the scope of the thesis and to craft an interesting narrative, the program of research has not been shaped to provide an exhaustive analysis of the myriad of solution approaches which might have otherwise been formulated for the PBSPCC. This explains why, for example, we have not examined more advanced dynamic programming labelling methods on alternative network constructs, compared multiple strategies for the implementation of branch-andprice, or investigated temporal discretization effects on scheduling solutions. Since the thesis has been calibrated in this manner, only cursory references are made to column generation stabilization techniques and to labelling methods for resource-

1.6 A Word on Writing Style

9

constrained shortest path problems in Chapter 3.3 Even though the thesis does not include a comprehensive analysis of multiple approaches to a single problem, it instead provides a greater emphasis on breadth, that is to say, it argues for the broader applicability of the techniques developed for the PBSPCC. Hence, a decision was taken to apply the solution paradigm developed for the PBSPCC to a related but inherently different patrol covering problem, namely, the MCPRP. This also serves to strengthen the arguments presented in Chapter 2, which discusses the similarities between the PBSPCC and the MCPRP and proffers a new patrol covering class of the Vehicle Routing Problem.4 Once the column generation approach to the PBSPCC was consolidated and successfully implemented, the decision to emphasize breadth over depth was a natural choice point for the research presented in this dissertation. Indeed, during the course of any doctoral program of study, there are natural choice points along the journey which ultimately determine the path of new discoveries and insights. Not everything can be addressed in a single dissertation, but it is nevertheless important to capture any outstanding questions raised by the research and to acknowledge other viable options which could have been pursued along the way. In this spirit, a detailed account of the unanswered questions arising from this thesis and proposed avenues for future research can be located in Chapter 8.5

1.6

A Word on Writing Style

Finally, a word on writing style. The perspicacious reader will have already noticed the pervasive use of first person plural pronouns such as our, us, and we. This style of writing shall be the predominant convention adopted in this dissertation. This is by no means extraordinary, as the use of the first person plural is standard in many forms of scientific literature, including previously published Ph.D. theses from the University of New South Wales. However, wherever appropriate, the thesis shall occasionally revert to the use of the first person singular (e.g. I and my) or the third 3

These techniques were not applied to the patrol covering problems in this thesis, and therefore, it was deemed that a lengthy exposition of their features would cause an unnecessary disruption to the thesis narrative. 4 It should also be noted that arguing for the broader applicability of the column generation solution approach was encouraged by the author’s Annual Review Panel at the University of New South Wales. 5 Proposals for future research and unanswered questions can also be found at relevant places within the thesis.

Introduction and Thesis Outline

10

person (e.g. it is the author’s contention...). One obvious advantage of using the first plural over the third person is the relative ease of writing in the active voice, which provides a more engaging and enjoyable experience for the reader. However, this may also create confusion over authorship wherever joint work has been conducted, especially in cases where significant contributions have been made from research collaborators. With this is mind, explicit and due acknowledgement is attributed to collaborators who have made significant contributions. In particular, and as already noted, the authorship of Chapter 6 is shared between Dr. Timothy J. Surendonk and the author.6 Otherwise, it should be made crystal clear that all other contributions of this dissertation are the product my (the author’s) own work.7

6 7

Explicit acknowledgement of co-authorship is provided in the preface to Chapter 6. As per the Originality Statement signed at the front of this dissertation.

Chapter 2 Review of Patrol Routing and Scheduling Problems In this chapter, we review a number of recent publications which consider complete and maximum coverage requirements for a fleet of patrol assets. Before we outline recent research specifically related to the problems under investigation in this thesis, we give an overview of a number of routing and scheduling problems exhibiting varying degrees of relatedness to patrol operations planning.

2.1

Patrol Operations Planning

In this section, we present an overview of some broader aspects of patrol operations planning which have been examined in the academic literature. The problems studied in these publications share some similarities to the problem of routing/scheduling patrol assets for complete/maximum coverage, but are nevertheless of a different nature.

2.1.1

Randomized Patrol Planning

Firstly, we consider a few problems in which patrol routes and schedules display some notion of randomness. Randomized patrol mission planning is important in contexts where an enemy or attacker may be able to predict a defender’s patrol movements, therefore rendering the planned patrols ineffective. The notion of patrol randomness has important applications in combating criminal activities and for the successful execution of various security operations. Classical examples of ran-

Review of Patrol Routing and Scheduling Problems

12

domized patrol mission planning include the scheduling of police cars (Rosenshine [104]) and United States Coast Guard patrols (Bailey et al. [9]). An important aspect of randomized patrol planning is that of random or stochastic environments, that is, environments in which the occurrence of an incident is random. An example can be found in the paper by Ruan et al. [106], which examines the execution of various patrol strategies in a stochastic environment. By assuming an operational theatre represented by a directed graph structure (where the vertices have varying incident rates), a fleet of patrol assets is allowed to move according to a Markov Decision Process (MDP) in response to incidents on the network. To give another example, Erdogan ˘ et al. [45] studies the randomness of the timings and locations of emergency situations in the context of scheduling paramedical crews and ambulances to stations throughout a rotation cycle. The problem is to assign crews and ambulances to stations in order to maximize the expected coverage of a geographical area, that is, to minimize the average expected response time to incidents. More recently, game theoretic concepts have been successfully applied in the work by Pita et al. [101] to create randomized schedules of canine patrols and to determine security checkpoint locations at the Los Angeles International Airport (LAX). This work has resulted in the deployment of software assistants for daily patrol and security planning at LAX.1 The game theoretic approaches implemented for LAX security operations have been subsequently enhanced to deal with largescale and coordinated scenarios through the work of Jain et al. [73] and Shieh et al. [114]. These papers report on column generation approaches to route and schedule patrol assets in Stackelberg Security Game (SSG) contexts. The results of these research activities have been developed into a software package called PROTECT (see Shieh et al. [112]) which has been used to assist the United States Coast Guard to plan patrols in the ports of Boston and New York (see An et al. [3] and Shieh et al. [113]). The latest applications of these game theoretic approaches have found their way into planning security patrols for wildlife protection (see Fang et al. [47]). A relatively up-to-date survey of game theoretic approaches applied within a variety of security patrol contexts can be found in Tambe [117]. Accounting for adversarial and environmental randomness may be applicable to future research of patrol boat routing and scheduling problems. For example, 1

See the papers by Pita et al. [100] and Jain et al. [74] for details on the software development and deployment.

2.1 Patrol Operations Planning

13

if certain performance metrics were to be examined in the context of random disruptions (such as mechanical failures, inclement weather, etc.) or random events (e.g. illegal fishing), then there would need to be some way of incorporating such uncertainty into the modelling and algorithmic approaches. The studies relating to randomized patrol planning coupled with promising applications of game theory may offer some guidance as to how this might be performed.2

2.1.2

Scheduling Patrol Boats and Crews

Scheduling patrol boats and their crews for routine operations has had a limited exposure in the OR literature when compared to related scheduling and routing problems in the commercial shipping industry. Although there are similarities between scheduling boats for routine patrol operations and scheduling commercial ships, there are also a number of key differences. The main difference is that a certain level of effectiveness is usually required in patrol operations planning, with the minimization of costs or the maximization of profit not considered, or relegated to a lower level of importance. In general, patrol planning problems considered in the military and public sector domains usually place a greater emphasis on achieving certain operational outcomes. These outcomes are often expressed in terms of a set of Measures Of Effectiveness (MOEs), e.g. expected yearly patrol coverage in a given area of operations. Even though industrial and commercial applications of routing and scheduling have a certain pre-eminence in the literature, there are a number of publications which have considered the problem of routing and scheduling a fleet of navy-type vessels. The literature survey by Christiansen et al. [23] on the status of ship routing and scheduling includes a brief section on naval operations, providing a synopsis of five papers.3 These papers cover a variety of naval applications, most of which are not strongly connected to patrol boat routing and scheduling. For example, among the papers reviewed in Christiansen et al. [23] is the publication by Nulty and Ratliff [95], which considers the problem of scheduling the United States Navy’s Atlantic Fleet in order to satisfy a number of overseas deployments throughout a planning 2

We do not account for these features in our research. Instead, we will focus on the optimization of patrol coverage. Extending the problems considered in this dissertation to account for adversarial and environmental randomness would be interesting topics for future research. 3 The majority of the publications covered in Christiansen et al. [23] are related to ship routing and scheduling for cruise liner and cargo shipping companies.

Review of Patrol Routing and Scheduling Problems

14 period.4

The most relevant journal article to patrol operations planning cited in the Christiansen et al. [23] survey is the paper by Brown et al. [17]. This paper examines the operational scheduling requirements for United States Coast Guard cutters5 for the Boston District (consisting of sixteen cutters which can be assigned to any one of six statuses in a given week). The problem considered in this paper is to schedule the fleet of sixteen Coast Guard vessels on a weekly basis to ensure that patrol and search and rescue requirements are satisfied.6 This paper outlines the development of a decision support tool (named CutS) based on elastic Mixed Integer Programming (MIP), which contains an objective function with penalties incurred for the violation of soft constraints. The paper by Brown et al. [17] also attempts to create schedules which are impervious to large-scale changes with slight schedule revisions, e.g. delaying the scheduled maintenance period of a given cutter. This is carried out with reference to the notion of persistence: a modelling approach to accommodate small changes in schedule structure so that the optimization solver does not have to completely re-solve.7 An article by Darby-Dowman et al. [28] considers the same problem as Brown et al. [17], but reports on a software system developed for the U.S. Coast Guard, where a discrete optimization solver was utilized for the scheduling software. A more recent study of patrol boat resource allocation within the U.S. Coast Guard is provided in the publication by Wagner and Radovilsky [129]. This paper specifically addresses resource allocation of patrol boats across a large variety of districts, each with different requirements for patrol boat hours.8 The authors report on the development of an extensive integer programming model for allocating the patrol boat resources and develop a number of performance metrics to benchmark the results. A study by Horn et al. [70] considers the problem of simultaneously scheduling patrol boats and crews for regular operations. This paper reports on the develop4

An overseas deployment requirement specifies that a particular class of vessel, with a certain weapon/sensor capability, is to carry out a mission at a specific location and at a given time. For example: a Nimitz-class aircraft carrier with a squadron of F/A-18 Super Hornets is required to support operations in the Persian Gulf from July 23rd to October 13th. 5 A cutter is a U.S. Coast Guard vessel greater than 65 feet long [129]. 6 The authors provide a map of the Boston District, indicating that there are four offshore patrol areas to cover with the sixteen cutters and one homeport at which crews begin and end patrol missions and at which maintenance is performed. 7 The application of persistence to discrete optimization is covered in Bertsimas and Tsitsiklis [16]. 8 Each boat has a given number of available hours annually.

2.1 Patrol Operations Planning

15

ment of a model for the Royal Australian Navy called CBM (Crews Boats Missions). The model uses a multi-crewing paradigm and metaheuristic techniques to create schedules for a fleet of Armidale Class Patrol Boats (ACPBs) and their crews for an ongoing yearly planning period. This work has since been complemented by Zadeh et al. [132], which reports on the conversion of CBM into a more user-friendly and efficient software package for military planners.9 The metaheuristic techniques employed by Horn et al. [70] consist of a steepest descent method and simulated annealing.10 The authors applied the heuristic methods within a multi-stage problem solving framework, which forms the basis of the CBM software package. The multi-stage problem solving framework is essentially a multi-stage scheduling scheme which consists of three separate modules: • Fleet Activity Schedule (FAS) - defines execution times for missions of boats and maintenance activities; • Combined Operations Plan (COP) - assigns activities to boats and crews; • Leave and Training Plan (LAT) - allocates leave and training activities to each crew. Each of these three modules employs its own heuristic techniques. Like Brown et al. [17], the optimization of the schedule is with respect to an objective function, incorporating a set of hard and soft constraints corresponding to each component module of the problem’s decomposition. The paper by Horn et al. [70] notes that there have been many approaches to crew scheduling in a variety of application areas, and cites the journal article Ernst et al. [46] as evidence of this observation.11 While the literature on crew and staff scheduling covers a wide spectrum of applications, the paper by Horn et al. [70] states that the patrol boat and crew scheduling problem is novel, since both vessels and crews must be linked by a common set of activities. 9

The paper Zadeh et al. [132] does not report on any theoretical or modelling advances since the work of Horn et al. [70]. The aim of Zadeh et al. [132] is to outline the development of a software package called NaMOS, which was developed for use and implementation by military planners as opposed to analysts. 10 Montana [92] makes an appeal for greater utilization of metaheuristics in scheduling research and suggests that researchers should focus more on these techniques instead of small improvements to traditional scheduling techniques. This paper also notes that metaheuristics are easy to apply to almost all known scheduling problems, including ones with complex and convoluted satisfaction criteria. Another characteristic of metaheuristic techniques is that they are capable of finding good suboptimal solutions for N P-hard problems in reasonable timeframes. 11 The paper by Ernst et al. [46] is an annotated bibliography of hundreds of papers written on the subject of crew scheduling, from applications in railways, airlines, call centres and hospitals (to name but a few).

16

2.2

Review of Patrol Routing and Scheduling Problems

Vehicle Routing Problems

In this section, we review a number of important vehicle routing problems. The literature in this field in quite rich, and therefore, it is not possible to cover the full gamut of problem classes and applications. However, we will review a number of problem classes which are either relevant to patrol planning contexts or which we consider to have potential applicability. A standard Vehicle Routing Problem (VRP) consists of a homogeneous fleet of vehicles initially located at a single depot, and a set of customers, represented by a set of vertices of a graph, which require the delivery of goods or services by the vehicles. Each vehicle has a given capacity and there is a cost (e.g. time, distance) associated with travelling from one customer to another.12 The problem is to determine the number and order of customers that should be visited by each vehicle, that is, the route of each vehicle, in order to minimize the overall cost. Ignoring capacity constraints, we note that a routing problem for a single vehicle reduces to the famous Travelling Salesman Problem (TSP). A standard VRP, therefore, is a generalization of the standard TSP.13 Recent developments in vehicle routing research have spawned a variety of extensions to the standard model which are potentially applicable to patrol asset routing and scheduling. We summarize some of these important extensions in the following subsections.

2.2.1

Heterogeneous Vehicle Routing Problem (HVRP)

This extension to the standard VRP incorporates a fleet of vehicles which have different capacity constraints and ongoing running costs. For example, the cost associated with one vehicle’s journey between two customers is specific to that vehicle, and may be more expensive than employing another vehicle to traverse the same leg. A detailed exposition of the HVRP is contained in Baldacci et al. [10].

12

Vehicles may be multi-capacitated, i.e. a vehicle may be able to carry varying quantities of different resources and each customer may require a fixed quantity of each resource. 13 There a number of good introductions to vehicle routing, including Kilby and Shaw [78] (Chapter 23 of Rossi et al. [105]), along with Kallehauge et al. [75], Fisher [49] and Desrosiers et al. [37]. For a relatively up-to-date survey of recent advances in vehicle routing, see Golden et al. [61].

2.2 Vehicle Routing Problems

2.2.2

17

Multiple-Depot Vehicle Routing Problem (MDVRP)

This extends the standard VRP to multiple depots, at which vehicles can start and end their delivery routes. The paper by Pepin et al. [97] compares five heuristic solution methods for the MDVRP, concluding that the best compromise between solution quality and computational efficiency is given by a metaheuristic framework with embedded mathematical programming techniques.

2.2.3

Vehicle Routing Problem with Time Windows (VRPTW)

The VRPTW introduces a set of constraints as to when each customer may be serviced by a given vehicle. In other words, customer i must be serviced in the time interval [ai , bi ]. If a vehicle arrives before the beginning of a customer’s time window, then the vehicle simply waits until the earliest possible arrival time has been reached. An overview of heuristic methods used to solve the VRPTW is provided in El-Sherbeny [43].

2.2.4

Period Vehicle Routing Problem (PVRP)

The PVRP is concerned with routing a fleet of vehicles over a longer planning horizon, which is broken down into constituent time blocks. Within each time block, routes are assigned to the vehicles which service customers in the network. The vehicles are limited by their carrying capacity and each customer must be visited a given number of times throughout the planning horizon. The aim is to assign a set of routes to each vehicle which minimizes the distance travelled while simultaneously satisfying the capacity constraints and visit requirements on the customers. For a comprehensive survey of the PVPRP, see Francis et al. [52].

2.2.5

Prize-Collecting Travelling Salesman Problem (PCTSP)

This is a routing problem for a solitary vehicle (with resource capacity) in which the vehicle collects a prize from each customer that is serviced and incurs a penalty for each customer that is ignored. The goal is to minimize travel costs and the penalties incurred whilst maximizing the sum of the prizes collected. See Archetti et al. [6] for an exposition of this problem and Chaves and Lorena [19] for a discussion of hybrid metaheuristic approaches to the PCTSP.

Review of Patrol Routing and Scheduling Problems

18

2.2.6

Orienteering Problem (OP)

Like the PCTSP, the OP assumes a single vehicle which begins and ends its route at a depot.14 There is a set of vertices which the vehicle may visit, with a variable amount of profit assigned to each vertex. The task of the vehicle is maximize the collected profit and return to the depot before a maximum time Tmax has expired. When the OP is extended to the multiple vehicle case, it is called the Team Orienteering Problem (TOP). The book chapter by Archetti et al. [7] and the article by Vansteenwegen et al. [128] are excellent surveys of the OP, TOP and related problems.

2.2.7

Other Extensions

A number of publications have considered what are called generalized vehicle routing problems, which attempt to incorporate combinations of two or more of the extension categories into a more comprehensive model which closely mirrors a specific real-world problem. For example, the paper by Goel and Gruhn [59] considers a multiple-depot pick-up and delivery vehicle routing problem with time windows, motivated by an application to air-cargo transportation between European cities. The article by Shi et al. [111] considers a prize-collecting travelling salesman problem with time windows, inspired by a travelling repairman’s pursuit to maximize profit, while keeping to the agreed appointment times with customers.15 Finally, the publication by Mak and Ernst [89] considers more advanced vehicle routing problems with time windows and precedence constraints.

2.3

Patrol Covering Problems

In recent years, the problem of scheduling, routing and coordinating a fleet of assets to provide patrol coverage16 to a set of geographical locations has emerged as an important consideration in studies pertaining to maritime and land surveillance, security beat planning, motor vehicle accident prevention, crime deterrence 14

The OP was first introduced by Tsiligirides [118]. The OP is also known as the Selective Travelling Salesman Problem (STSP). 15 A pick-up and delivery problem (PDP) is a vehicle routing problem equipped with temporal (precedence) constraints. It is characterized by a set of stipulations requiring vehicles to pick up resources (goods) at a given locations before making deliveries to customers. 16 That is, a physical or on station presence.

2.3 Patrol Covering Problems

19

and infrastructure protection. Most, if not all, of these studies are quite recent developments, having been undertaken in the past five years or so. Each application possesses a set of unique characteristics which may be amenable to more than a single problem solving approach. This is evidenced by the variety of modelling and algorithmic techniques applied in these studies. To our knowledge, no attempt has been made thus far to synthesize the common characteristics of these disparate problems nor link them together as being essentially variations of an underlying and unifying principle.

2.3.1

Routing Patrol Boats for Fisheries Surveillance

The paper by Millar and Russell [91] is concerned with routing a fleet of patrol vessels over a geographical network of sea-based fishing grounds in order to maximize the total deterrence value of the surveillance effort. Patrol vessels in this surveillance model are routed through various pre-determined fishing grounds. A patrol vessel spends a pre-allocated amount of time at a fishing ground before moving to another fishing ground or back to port, subject to budget and time constraints. The scope of the problem is for short-term routing plans, since the surveillance prioritization of fishing grounds occurs on a regular basis. The model is formulated via an extensive integer program, and since the size of the considered patrol vessel fleet is small and the planning horizon is short, it can be directly solved with state-of-the-art commercial solvers.

2.3.2

Scheduling Systems of UAVs with Fuel Service Stations

This area of research is concerned with planning mission trajectories for a system of resource-constrained Unmanned Aerial Vehicles (UAVs). The research was first undertaken by Kim et al. [80], with the publication of two closely related follow-on studies by Song et al. [116] and Kim and Morrison [79]. We will briefly summarize the relevant features of these studies. The context for this problem is a given field of operations, which consists of automated refuelling stations and pre-planned space-time mission trajectories. The problem is concerned with utilizing a fixed fleet of UAVs to provide long-term mission fulfilment. In other words, each mission trajectory must be covered by at least one UAV throughout the planning horizon. However, the UAVs cannot fly indefinitely, and therefore, a refuelling station must be visited by an individual vehicle

20

Review of Patrol Routing and Scheduling Problems

before its battery supply has been exhausted. If a UAV leaves a mission trajectory in order to refuel, it must immediately handover the mission to another UAV. After a vehicle has been recharged, it may return to the field to cover other mission trajectories. Each mission trajectory is divided into discrete components (space-time locations), referred to as split jobs. Each split job, therefore, needs to be covered by exactly one UAV. The objective of the problem is to minimize the total distance travelled by the system of UAVs such that each split job is covered over the planning horizon. The problem is subject to the initial locations of the UAVs, the transit speed and resource capacity. The problem is formulated as Mixed Integer Linear Program (MILP) by Kim et al. [80], with some minor improvements made to this formulation in the followon paper by Song et al. [116]. This modelling paradigm requires the introduction of multiple sets of discrete decision variables with up to four indices. For example, the decision variable Xijkr is equal to 1 if vehicle k processes split job j (or refuels at station j) after processing split job i (or refuelling at station i) during its r-th flight, and is equal to 0 otherwise. The authors report that the MILP formulation could not be solved to optimality by state-of-the-art solver CPLEX for instances with more than 20 split jobs.17 Given the computational intractability and poor scalability of the MILP paradigm for state-of-the-art solvers, a genetic algorithm was developed by Kim et al. [80] to find feasible schedules for the UAVs. The genetic algorithm was tested on problem instances containing 20 to 80 split jobs, returning feasible solutions in computational timeframes deemed reasonable by the authors.18

2.3.3

The Bi-Objective Grid Patrol Routing Problem

A recent study published by Hsieh et al. [71] examined the Bi-objective Grid Patrol Routing Problem (BGPRP). Residents in certain regions of Taiwan vacate their houses or travel abroad for a number of days during Chinese festival celebrations. 17

However, the paper by Song et al. [116] demonstrated that significant improvements could be achieved by reformulating the MILP in a more economical fashion. This was tested with problem instances up to and including 20 split jobs and compared against the results of Kim et al. [80]. 18 The follow-on work by Kim and Morrison [79] developed a receding task horizon heuristic for the MILP formulated by Song et al. [116]. The heuristic attempts to alleviate the computational complexity of the model by breaking the problem down into smaller manageable pieces using a branch-and-bound method.

2.3 Patrol Covering Problems

21

During this time, vacating residents may request that the local authorities patrol their neighbourhoods at specific times. Once applications from residents have been received, patrol routes are planned for a given number of days over the festival’s timeframe. The paper assumes a network in the form of a grid structure, with vertices located on the grid’s intersection points. A single vertex defines the depot, while the other vertices represent locations which must be visited throughout the planning period. The linear segments making up the grid structure are referred to as patrol lanes. The paper considers two objectives to be optimized for the creation of police patrol routes. The first is to minimize the total distance travelled and the second is to maximize the coverage of the patrol lanes. The problem is solved in two stages. The first stage minimizes the distance metric via an evolutionary algorithm, while the second stage uses an integer programming model to maximize the coverage of patrol lanes. The authors apply their approach to an 8 × 8 network grid with 15 vertices over a three day planning horizon using either one or two patrol assets.19

2.3.4

The Maximum Covering and Patrol Routing Problem

The routing of police cars to provide maximum patrol coverage to a set of predefined accident hot spots within the time bounds of a shift was first studied by Keskin et al. [77].20 Given a set of highway locations and time intervals at which traffic accidents have a high probability of occurring, the problem is to find patrol routes for a set of police cars so that the aggregate coverage of all the accident hotspots is maximized. Each patrol car begins and ends its route at a station or depot on a pre-defined shift.21 The problem is modelled with respect to a mixed integer programming formulation and solved with heuristic techniques (local and tabu search), due to the inability of state-of-the-art commercial solvers to find good quality solutions. The test problem instances solved by Keskin et al. [77] include 19

The authors of Hsieh et al. [71] note that the BGPRP bears similarities to the PVRP, with the additional feature of maximizing the coverage of the patrol lanes. 20 This work has also been published in the Ph.D. thesis by Li [87]. An extension of this work to a bi-objective scenario can be found in Li and Keskin [88]. 21 The literature review by Keskin et al. [77] notes that the MCPRP bears similarities to the Team Orienteering Problem with Time Windows (TOPTW). However, the distinguishing characteristic of the MCPRP is that the profit associated with visiting a hotspot is not fixed, but is rather a function of the amount of ’dwell time’ within that hotspot’s time window. The authors reveal that the range of time window lengths used in the problems of their study varies from 1 minute to 270 minutes (usually assuming a shift duration of 480 minutes).

22

Review of Patrol Routing and Scheduling Problems

randomly generated and real-world data with up to 40 hotspots and 8 patrol cars. The paper reports that the heuristic techniques were able to produce good quality but not optimal solutions to the larger problem instances. The paper published by Çapar et al. [18] demonstrates that significant improvements can be made to the mixed integer programming model of Keskin et al. [77]. With information on the structure of candidate routes in an optimal solution, the authors show that the number of variables in the formulation of Keskin et al. [77] can be reduced. The authors also incorporate a number of bounds constraints which provide additional strength to their reformulation. The enhanced efficiency given through this reformulation of the MCPRP is demonstrated on the benchmark instances introduced in the original paper by Keskin et al. [77].22 Recent work by Dewil et al. [38] has shown that the MCPRP can be modelled as a Minimum Cost Network Flow Problem (MCNFP).23 The MCNFP is solvable in polynomial time, and thus, the authors correct the claim by Keskin et al. [77] that the MCPRP is N P-hard. The paper by Dewil et al. [38] sets out a time-space network formulation of the problem on which their MCNFP model is defined. The network formulation divides individual hotspots into time sections or segments, which are constructed by considering possible transitions of vehicles which might depart from the end of a hotspot (and arrive at another hotspot) or arrive at the beginning of a hotspot (having departed from another hotspot). The MCNFP paradigm also permits the time sections to be weighted differently, thus constituting an extension of the standard MCPRP. The authors demonstrate the superiority of their approach by comparing their computational results with those of Keskin et al. [77]. The MCNFP model is extended by the authors to a Multi-Commodity Minimum Cost Network Flow Problem (MCMCNFP) model which aims to handle overlapping shifts and different start/end locations for the patrol vehicles. In order to test the scalability of the model, the authors state that they could solve a 100 hotspot instance to optimality with up to 23 patrol cars. However, the authors also report that they could not run a 500 problem instance, even with 3 patrol cars.

22

The paper by Çapar et al. [18] also considers a number of extensions to the standard MCPRP paradigm. These include the incorporation of shift breaks and allowing the patrol vehicles to begin the shift at different locations, possibly with delayed starting times. 23 The MCNFP possesses the integrality property when the arc capacities are integer. This means that the optimal solution is naturally integer if the problem is solved as a linear program.

2.3 Patrol Covering Problems

2.3.5

23

Relationship of the PBSPCC to Patrol Covering Problems

The approaches taken by Keskin et al. [77] and Çapar et al. [18] for the MCPRP, Millar and Russell [91] for fisheries surveillance, Hsieh et al. [71] for the BGPRP, and Kim et al. [80] and Song et al. [116] for UAV scheduling are all based on a MIP modelling paradigm. In each case, metaheuristic techniques are called upon when standard applications of MIP solvers fail. A general observation of the sweep of patrol covering problems is that MIP solvers can be used profitably only on small problem instances. When metaheuristic techniques are employed for larger problems, they do not always perform well and/or cannot prove optimality. The MCNFP approach taken by Dewil et al. [38] is a clear break with the observed MIP pattern of other approaches and provides a valuable lesson that using the right model for a particularized problem can provide significant runtime improvements. In summary, the literature survey has noted the preponderance of MIP based approaches to the variety of patrol covering problems studied heretofore. An undesirable characteristic of such approaches is the sheer number of complex constraints needed to sufficiently handle the more advanced idiosyncratic features which we would like to address in this thesis. These features, which typify the Patrol Boat Scheduling Problem with Complete Coverage (PBSPCC), are given as follows: • The necessity of patrol assets to maintain a continuous presence at a set of patrol regions. • The prohibition of multiple simultaneous contributions to the patrol effort at a given patrol region and time. • The ability to make multiple visits to a patrol region before returning to a replenishment station. • The flexibility of visiting any one of a number of replenishment stations. • The ability to make multiple trips to/from any members of the set of replenishment stations. In order to highlight the difficulty of incorporating the aforementioned features into a standard MIP modelling paradigm, consider the MIP formulation of the MCPRP. This MIP approach requires many complex constraints,24 some of which are non-linear and require linearization to be properly handled by MIP solvers. This is noteworthy given that the MCPRP considers only a single depot, is not resource-constrained, and does not require ongoing continuous coverage. Simi24

See the model (7.1) − (7.18) in Chapter 7.

Review of Patrol Routing and Scheduling Problems

24

larly, the UAV scheduling problem studied by Kim et al. [80] and Song et al. [116] (which does allow for multiple trips to/from replenishment stations) contains MIP variables with up to four indices, thus requiring the application of metaheuristic solution approaches. These examples demonstrate that more complex patrol covering problems, like the PBSPCC, require the development of new and non-standard techniques.

2.4

The Way Ahead

From the present review of the literature, we claim that the Patrol Boat Scheduling Problem with Complete Coverage (PBSPCC), which was informally introduced in Chapter 1, constitutes a new patrol covering problem. Clearly, it bears similarities to some of the problems outlined heretofore. For example, it shares the refuelling/replenishment characteristic of the UAV scheduling problem and the patrol presence aspect of the MCPRP. However, the PBSPCC is concerned with minimizing the size of a resource-constrained fleet, providing a continuous presence to a set of maritime patrol regions, with regular/ongoing replenishment. This problem thus contains a unique combination of characteristics which, to our knowledge, has not yet been considered in the literature.25 Furthermore, the problem of finding a minimum-sized fleet with regular replenishment and ongoing continuous coverage places the PBSPCC firmly within the N P-hard computational complexity class. The proof of this claim is comprehensively addressed in Chapter 6, which also serves as a preprint of a forthcoming publication.26 The proof that the PBSPCC is N P-hard relies on a transformation from the Hamiltonian Graph Decision Problem (see Karp [76]). Unlike many of the patrol covering problems cited thus far, we do not consider a MIP based approach for the PBSPCC. The modelling and solution approaches taken in this dissertation are based on column generation branch-and-price techniques. We have already noted that similar approaches have been used effectively on patrol planning studies in the Stackelberg Security Game (SSG) context. However, the planning objectives in the SSG space differ significantly to that of the resourceconstrained complete coverage problem. In SSG approaches to U.S. Coast Guard 25

The exception being the publication by Chircop et al. [21], which was published as part of this research project. 26 Chapter 6 is co-authored by the Defence Science and Technology Group supervisor of this doctoral dissertation: Dr. Timothy J. Surendonk.

2.4 The Way Ahead

25

patrol boat scheduling, the boats begin and end their routes at single base of operations and are assigned to activities with fixed durations at various locations. The complete coverage problem, on the other hand, is concerned with utilizing a resource-constrained patrol boat fleet to provide an ongoing continuous presence to a number of regions. The column generation approach to the PBSPCC, therefore, must be adapted to determine the timings and durations of the patrol boat activities on an ongoing basis. This includes any idle time spent in port, the timing and duration of each patrol activity, and when/where replenishment breaks occur for each of the boats. It is well established that column generation can be used profitably as a decomposition solution technique in multi-commodity network flow contexts (see Chapter 17 of Ahuja et al. [1]). The paper by Dewil et al. [38] has noted that specialized multi-commodity network flow solution methods might offer some promise for solving large-scale instances of the MCPRP. Hence, we also aim to demonstrate that a column generation branch-and-price approach to the MCPRP constitutes a strong candidate technique for solving large-scale instances. The dissertation continues in Chapter 3 with a comprehensive introduction to column generation and branch-and-price. Firstly, however, the chapter reviews some of the fundamental theory from linear programming, including the revised simplex method and duality theory. The PBSPCC is formally defined in Chapter 4, with the computational performance aspects examined in Chapter 5 and the computational complexity analysis performed in Chapter 6. In Chapter 7, we cover the column generation approach to the MCPRP and present the analysis of its computational performance.

Chapter 3 Theoretical Background 3.1

The Revised Simplex Method

A linear program can be stated in standard form as follows: minimize

z = cT x,

subject to

Ax = b,

(3.1)

x ≥ 0. The vector of cost coefficients is c ∈ Rn and the vector of decision variables is x ∈ Rn . The constraint matrix is A ∈ Rm×n and the constraint vector is b ∈ Rm . Suppose we have a basic feasible solution x to the standard form problem given in (3.1). Let the vector of basic variables be denoted by xB , and the associated columns of the matrix A be denoted by B.1 We also have a vector of non-basic variables given by xN with corresponding matrix N. By writing x = [xB xN ]T and cT = [cB T cN T ], the standard form can be written explicitly in terms of the basic and non-basic variables as follows: minimize

z = c B T xB + c N T xN ,

subject to

BxB + NxN = b,

(3.2)

xB , xN ≥ 0. 1

The matrix B is a set of m linearly independent columns of A. See Appendix A for more on linear independence and Appendix B for more on basic feasible solutions in the theory of linear programming.

Theoretical Background

28

Rearranging the constraints in formulation (3.2), we find that: xB = B−1 b − B−1 NxN .

(3.3)

By inspection of (3.3), it can be seen that solutions to (3.2) can be obtained by fixing the values of the non-basic variables xN . A solution is called basic and feasible whenever xN = 0 and xB ≥ 0. Substituting (3.3) into the objective function of (3.2) gives:  z = cB T B−1 b + cN T − cB T B−1 N xN ,  = π T b + cN T − π T N xN .

(3.4)

In (3.4), the vector denoted by π T = cB T B−1 is the vector of dual variables, which will be explained in the next section of this chapter. The vector ¯rN = cN T − π T N contains the reduced costs of all the non-basic variables. Since xN ≥ 0 in any basic feasible solution, the solution will be optimal for a given basis B if all the associated reduced costs are greater than or equal to zero. The revised simplex method is an algorithm for finding an optimal basic feasible solution xB by enumerating the vector of reduced costs for the non-basic variables xN . In a given iteration of the revised simplex method, if a non-basic variable is found with least negative reduced cost, it is added to the basis, and we select an existing basic variable to leave the basis. If no non-basic variables with negative reduced cost exist, then the current basic feasible solution is optimal. Informally, the simplex algorithm can be stated succinctly as follows. While minj {cj − cB T B−1 Nj } < 0 (where j indexes the current set of non-basic variables): 1. Select a new basic variable xj ′ with reduced cost r¯N (j ′ ) = minj {cj − π T Nj }. 2. Select a new non-basic variable xi′ from the current set of basic variables. 3. Update the constraint sub-matrices (and hence, the objective function) by swapping columns between matrix B and matrix N. At each iteration of the simplex algorithm, we have the following: 1. 2. 3. 4. 5.

The current values of the non-basic variables are xN = 0. The current objective function value is z = π T b. The current values of the basic variables are xB = B−1 b. The objective function coefficients of the basic variables are all zero. The objective function coefficients of the non-basic variables are the reduced costs.

3.1 The Revised Simplex Method

29

Note, that with the goal of minimizing the objective function, we require the nonbasic variables to have negative reduced costs. The revised simplex algorithm is summarized in pseudocode in Algorithm 1. Algorithm 1 Revised simplex method

2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15:

Input: A set of basic columns B = [AB(1) · · · AB(m) ] with costs cB , a set of nonbasic columns N = [AN (1) · · · AN (n−m) ] with costs cN Compute a basic feasible solution xB and the inverse matrix B−1 Compute π T = cB T B−1 for j = 1, . . . , n − m do r¯N (j) = cN (j) − π T AN (j) end for if minj∈{1,...,n−m} r¯N (j) ≥ 0 then END - the solution is optimal else Choose some j ′ such that r¯N (j ′ ) < 0 Compute u = B−1 AN (j ′ ) if u(i) ≤ 0 ∀i = 1, . . . , m then END - the solution is z ∗ = −∞ else o n xB(i) | i ∈ {1, . . . , m}, u(i) > 0 Compute i′ = arg min u(i)

16: 17: 18: 19:

end if AB(i′ ) ← AN (j ′ ) goto 2 end if

1:

i

Upon returning to the first step of Algorithm 1, the new basic feasible solution yB has values given by:

yB(i) =

  xB(i′ )

if i = i′ ,

u(i′ )

x

B(i) − u(i)

xB(i′ ) u(i′ )

if i ̸= i′ .

(3.5)

¯ −1 ) can be obtained from the inverse of The inverse of the updated basis matrix (B the basis matrix of the previous iteration (B−1 ) by appending the column vector u to B−1 , where u = B−1 AN (j) and u(i) denotes the i-th component of u. This results in the m × (m + 1) augmented matrix [B−1 |u]. A series of elementary row operations can then be performed in order to obtain the unit vector ei′ for the right-most column. The updated basis matrix can be extracted from the first m columns of the ¯ −1 |ei′ ]. resulting matrix, that is, the matrix defining the left-hand partition of [B

Theoretical Background

30

3.2 3.2.1

Linear Programming Duality Primal and Dual

Instead of enforcing hard constraints in a linear program, we can relax the problem by allowing the constraints to be violated. This can be carried out by incorporating the constraints into the objective function and associating a penalty cost or shadow price with each constraint. This results in a problem which is less tightly constrained, where we are free to choose values for the constraint violation penalty costs. The problem of assigning penalty costs which result in an optimal solution to the relaxed problem but also matches the optimal solution to the original problem can be solved by constructing a new linear program, called the dual of the original primal problem. When considered together, the primal and dual linear programs give rise to what is called duality theory.2 Consider again a linear program in standard form as follows: minimize

z = cT x,

subject to

Ax = b,

(3.6)

x ≥ 0. As before, we have c ∈ Rn and x ∈ Rn , b ∈ Rm , and A ∈ Rn×m . This is the primal problem, and we assume it has an optimal solution, denoted by x∗ . As outlined in the previous paragraph, we can relax the primal problem by allowing constraint violations. In order to do this, we introduce a vector of penalty costs π, where π ∈ Rm (the same dimensions as b). We relax the constraint set Ax = b and introduce π T (b − Ax) into the objective function, resulting in the following problem with revised objective function3 zLR (π): minimize

zLR (π) = cT x + π T (b − Ax),

subject to

x ≥ 0.

(3.7)

Knowing that x∗ is a feasible solution to the original problem and b − Ax∗ = 0, we can show that the objective value zLR is always bounded above by the optimal 2

Duality theory plays an important role in the underlying theory of column generation. LR stands for Lagrangian Relaxation, which is the type of relaxation considered here. A more detailed exposition of Lagrangian theory and its relationship to Dantzig-Wolfe decomposition can be found in Appendix C. 3

3.2 Linear Programming Duality

31

objective value of the primal, for any choice of price vector π:  zLR (π) = min cT x + π T (b − Ax) , x≥0

≤ cT x∗ + π T (b − Ax∗ ),

(3.8)

= cT x∗ . Therefore, the maximum value of zLR over all price vectors π will give the greatest lower bound on the optimal objective value of the primal. The problem of finding a price vector which gives the greatest lower bound on the primal objective is called the Lagrangian dual problem.4 The dual problem can be formulated as a linear program directly from the definition of zLR (π). Firstly, we note that:  zLR (π) = min cT x + π T (b − Ax) , x≥0  = π T b + min (cT − π T A)x .

(3.9)

x≥0

However, we see that:  min (cT − π T A)x = x≥0

 0

if cT − π T A ≥ 0T ,

−∞ otherwise.

(3.10)

In order to find the maximum value of zLR , we can therefore ignore the choices of π which give zLR (π) = −∞. This amounts to maximizing the value of π T b such that cT − π T A ≥ 0T . Written as a linear program, the dual problem becomes: maximize

v = π T b,

subject to

π T A ≤ cT .

(3.11)

We can see that each constraint in the primal problem has an associated variable in the dual problem, and each variable in the primal problem has an associated constraint in the dual problem. We can also see that if a constraint in the primal problem is expressed as an equality constraint, the associated dual variable will be unrestricted in sign. But what if the primal problem instead possesses a set of inequality constraints, that is, Ax ≥ b? By introducing surplus variables5 , it is straightforward to see that this simply adds constraints π ≥ 0 to the dual problem 4 5

See Appendix C. See Appendix B.

Theoretical Background

32

formulation. Finally, if the variables x are unrestricted in sign (that is, the primal variables), then we have:  0  T if cT − π T A = 0T , T min (c − π A)x = x≥0 −∞ otherwise.

(3.12)

This condition gives the constraint set π T A = cT for the dual problem. Bertsimas and Tsitsiklis [16] summarize the above information for the construction of the dual problem from a general primal problem as follows. Let Ik and Jl be a collection of index sets, where k, l ∈ {1, 2, 3}. If A is the constraint matrix in the primal problem, denote the i-th component row vector as ai T and the j-th component column vector as Aj . A general primal problem (given below on the left-hand-side) has its dual problem given by the linear program on the right-handside, as shown below:

Primal

Dual

minimize z = cT x,

maximize v = π T b,

subject to ai T x ≥ bi ,

∀i ∈ I1 ,

subject to πi ≥ 0,

∀i ∈ I1 ,

ai T x ≤ bi ,

∀i ∈ I2 ,

πi ≤ 0,

∀i ∈ I2 ,

ai T x = bi ,

∀i ∈ I3 ,

πi free,

∀i ∈ I3 ,

xj ≥ 0,

∀j ∈ J1 ,

π T Aj ≤ cj , ∀j ∈ J1 ,

xj ≤ 0,

∀j ∈ J2 ,

π T Aj ≥ cj , ∀j ∈ J2 ,

xj free,

∀j ∈ J3 .

π T Aj = cj , ∀j ∈ J3 .

3.2.2

Duality Theorems

Theorem 3.2.1 (Weak Duality). If x is any feasible solution to the primal problem, and π is any feasible solution to the dual problem, then π T b ≤ cT x. Proof. Since the constraint matrix A has dimensions n × m, we can define the following variables for any primal feasible x and dual feasible π: ui = πi (ai T x − bi ),

∀i ∈ {1, . . . , n},

vj = (cj − π T Aj )xj ,

∀j ∈ {1, . . . , m}.

(3.13)

According to the definition of the dual problem, πi has the same sign as ai T x − bi ,

3.2 Linear Programming Duality

33

and cj −π T Aj has the same sign as xj . Hence, ui ≥ 0 for all i ∈ {1, . . . , n} and vj ≥ 0 for all j ∈ {1, . . . , m}. Therefore: 0≤

X

ui +

i∈{1,...,n}

X

vj ,

j∈{1,...,m}

= (π T Ax − π T b) + (cT x − π T Ax),

(3.14)

= cT x − π T b.

Ahuja et al. [1] lists four important consequences of the Weak Duality Theorem, which we outline as follows: Corollary 3.2.1. 1. The objective function value of any feasible dual solution is a lower bound on the objective function value of every feasible primal solution. 2. If the optimal objective function value of the primal problem is z = −∞ (an unbounded solution), then the dual problem is infeasible. 3. If the optimal objective function value of the dual problem is v = +∞ (an unbounded solution), then the primal problem is infeasible. 4. If the primal problem has a feasible solution x and the dual problem has a feasible solution π, and π T b = cT x, then x is an optimal solution to the primal problem and π is an optimal solution to the dual problem. Theorem 3.2.2 (Strong Duality). If a linear program has a finite optimal solution, then so does its dual and both have the same optimal objective function values. Proof. Consider a linear program in standard form, as given in (3.6). (Note, if the linear program is not in standard form, it can be converted into standard form by introducing surplus variables - see Appendix B). Assume that the primal problem has an optimal feasible solution x∗ . After applying the revised simplex method to the linear program, we arrive at an optimal basis, with associated matrix B and variables xB = B−1 b (using (3.3) with xN = 0). When the revised simplex method has terminated, we know that the reduced costs of all the variables will be nonnegative: cT − cB T B−1 A ≥ 0T . (3.15) Set π T = cB T B−1 and we get π T A ≤ cT , showing that π is a feasible solution to the dual problem (3.11). Moreover, the objective value of the dual problem (with this

Theoretical Background

34 feasible solution) is given by: π T b = (cB T B−1 )b, = cB T (B−1 b), = cB T xB ,

(3.16)

= cB T x∗ . Therefore, by item 4 of Corollary 3.2.1, π is an optimal solution to the dual problem, and hence, both primal and dual problems have the same optimal objective values.

The complementary slackness property utilizes the results of both the strong and weak duality theorems in order to establish an important relationship between the primal and dual problems. This is detailed in the Complemenatry Slackness Theorem, outlined below. Theorem 3.2.3 (Complementary Slackness). If x is primal feasible and π is dual feasible, then x and π are optimal solutions for their respective problems if and only if: πi (ai T x − bi ) = 0,

∀i ∈ {1, . . . , n},

(cj − π T Aj )xj = 0,

∀j ∈ {1, . . . , m}.

(3.17)

Proof. Using the definitions of ui and vj as provided in (3.13), it was noted in the proof of the Weak Duality Theorem that, given a primal feasible solution x and dual feasible solution π, we get ui ≥ 0 for all i ∈ {1, . . . , n} and vj ≥ 0 for all j ∈ {1, . . . , m}. The proof of the Weak Duality Theorem also demonstrated that: X i∈{1,...,n}

ui +

X

vj = cT x − π T b.

(3.18)

j∈{1,...,m}

Using the result of the Strong Duality Theorem, if x and π are optimal solutions to their respective problems, then cT x = π T b, and thus by (3.18), ui = 0 for all i ∈ {1, . . . , n} and vj = 0 for all j ∈ {1, . . . , m}. If instead we start with ui = 0 for all i ∈ {1, . . . , n} and vj = 0 for all j ∈ {1, . . . , m}, then by (3.18), we have cT x = π T b, and by item 4 of Corollary 3.2.1 this implies that x and π are optimal solutions for their respective problems.

3.3 Introduction to Column Generation

35

Comment: We can see from (3.13) that ai T x − bi is just the amount of slack in the primal problem’s i-th constraint, and likewise, cj − π T Aj is the amount of slack in the dual problem’s j-th constraint. The complementary slackness conditions state that if there is any slack in a constraint, then its associated primal or dual variable must be zero. It also states that if a variable takes a positive value, the associated primal or dual constraint must be satisfied with equality.

3.3

Introduction to Column Generation

At a given iteration of the revised simplex method, the set of non-basic variables is enumerated and the variable with the least negative reduced cost is selected to enter the basis. We can express a linear program’s constraint matrix A ∈ Rm×n as A = [B | N], where the m × m sub-matrix B is made up of m linearly independent columns defining the current basis, and N ∈ Rm×(n−m) corresponds to the columns of the non-basic variables. In effect, the revised simplex method will exchange (swap) columns between B and N until all of the non-basic variables have nonnegative reduced cost. When the number of columns in the constraint sub-matrix N is very large (that is n ≫ m), explicit enumeration of the entire non-basic variable set may become intractable (see Figure 3.1). In such cases, a method for implicitly enumerating the non-basic variables should be preferred. Constraint matrix

Basic columns

Non-basic columns

Fig. 3.1 A linear programming constraint matrix with a large number of variables. The size of the non-basic variable set is much larger than the size of the set of basic variables. Note that the basis sub-matrix is actually a square matrix, but this property is not reflected in the present representation. Column generation is a technique for solving linear programming problems by dealing with the columns of the constraint matrix (and therefore, the variables of the problem) in an implicit manner. That the variables of a large linear program should be handled implicitly was first proffered by Ford and Fulkerson in

Theoretical Background

36

1958 (Ford and Fulkerson [50]) for a multi-commodity network flow problem.6 In 1960, Dantzig and Wolfe [27] suggested a decomposition technique underpinned by column generation to solve large linear programming problems with special structures.7 The first practical implementation of column generation was undertaken by Gilmore and Gomory, who applied the technique to the cutting stock problem in 1961 (Gilmore and Gomory [57]) and 1963 (Gilmore and Gomory [58]). In the late 1960’s, Appelgren [5] successfully applied column generation to a ship scheduling problem. More recently, advancements in computer processing power have seen a proliferation in the applicability of the column generation technique to a variety of important practical problems which would otherwise be intractable for commercial solvers.8 We write a linear program with a large number of variables (indexed over a set J) as follows: X cj x j , minimize j∈J

subject to

X

Aj xj ≥ b,

(3.19)

j∈J

xj ≥ 0,

∀j ∈ J.

The formulation in (3.19) is referred to as the Master Problem (MP). When the revised simplex method is employed to solve a linear program, it begins from an initial basic feasible solution and then proceeds to look for a non-basic variable to enter the basis (i.e., swap places with one of the existing basic variables). A non-basic variable will be chosen to enter the basis if it has the minimum negative reduced cost. That is, given a vector of dual variables π obtained from the initial basic feasible solution, the revised simplex method seeks out an xj ′ (with index j ′ ∈ J) possessing the property:  cj ′ − π T Aj ′ = min cj − π T Aj | j ∈ J and cj − π T Aj < 0 . j

(3.20)

The expression in (3.20) is known as the pricing step of the revised simplex 6

“Except for hand computation of a few small problems, we have no computational experience with the proposed method. Whether the method is practicable for a problem involving, say, 50 nodes, 100 arcs, and 20 commodity source-sink sets ... is a question which can be settled only by experimentation.” Ford and Fulkerson [50]. 7 “Credit is due to Ford and Fulkerson for their proposal for solving multicommodity network problems as it served to inspire the present development.” Dantzig and Wolfe [27]. 8 See Wilhelm [130] for a comprehensive survey of column generation applications up to 2001.

3.3 Introduction to Column Generation

37

method, and if such a non-basic variable xj ′ is found, it is said to have been priced out (i.e., priced out of the set of non-basic variables). When the cardinality of the index set J is large, explicit enumeration of the reduced costs can prove to be computationally inefficient. To alleviate the tendency toward intractability for huge problems, one can begin with a subset of the columns of the constraint matrix and their associated variables. That is, the problem can be initialized with some J′ ⊂ J. The restriction of the master problem to the set of columns/variables indexed by J′ ⊂ J is called the Restricted Master Problem (RMP).

Restricted Master Problem New column

Dual variables

Pricing Subproblem Fig. 3.2 The column generation algorithm cycles between a restricted master problem and a pricing subproblem. A single cycle updates the subproblem with new dual variables and appends a new column to the restricted master problem. Finding a non-basic variable with minimum negative reduced cost for the RMP is carried out by invoking an implicit enumeration scheme. Such a scheme is made possible if the columns Aj (j ∈ J) can be defined relative to some set A and if the cost coefficients cj of each column Aj can be computed from some real-valued function c [85]. When equipped with A and c, a pricing subproblem9 can select a non-basic variable to price out. The pricing subproblem is therefore cast as an optimization problem which seeks to find a column/variable with the minimum reduced cost r¯∗ :  r¯∗ := min′ c(Aj ) − π T Aj | Aj ∈ A . (3.21) j∈J\J

9

Alternative names for the pricing subproblem include the column generation subproblem, column generator and oracle.

Theoretical Background

38

If the pricing subproblem returns a column with r¯∗ ≥ 0, then current solution to the RMP is optimal, and hence, it is also optimal for the original MP. If, on the other hand, the pricing subproblem returns an Aj ′ ∈ A such that r¯∗ < 0, then Aj ′ and its associated variable xj ′ are appended to the RMP. The updated RMP is then re-solved to obtain new dual variables to feed back into the pricing subproblem for the next iteration of the column generation algorithm. This cyclical process, represented diagrammatically in Figure 3.2, is repeated until no more columns with negative reduced cost can be found.

3.4

The Cutting Stock Problem

A classic example which demonstrates the applicability of column generation is the cutting stock problem. This problem is historically noteworthy because it was the first practical optimization problem to which column generation was successfully applied. This pioneering work was carried out by Gilmore and Gomory in the early 1960’s (see [57] & [58]) and has since garnered considerable attention in the literature (for example, see [15]). In this section, we will outline a similar column generation approach to the cutting stock problem to that of Gilmore and Gomory. A paper company has a stock supply of large-length rolls of paper, where the length of each roll is L. We shall assume that L is a positive integer. The company has an obligation to provide rolls of various lengths to its customers on a weekly basis, which are to be cut from the stock rolls. The company produces paper rolls of m different lengths, that is, the set of all paper roll lengths is given by: S = {lj | j = 1, . . . , m} where

lj ≤ L, ∀j ∈ {1, . . . , m}.

(3.22)

We refer to the set S as the set of stock lengths. The stock lengths can be cut from the larger stock pieces according to particular cutting patterns. Let the total number of cutting patterns be given by the positive integer n. Let the number of pieces of length lj contained in cutting pattern k ∈ {1, . . . , n} be given by ajk . Furthermore, each cutting pattern must satisfy: m X

lj ajk ≤ L,

∀k ∈ {1, . . . , n}, ajk ∈ N.

(3.23)

j=1

The k-th cutting pattern can be encoded in a column, say Ak ∈ Nm , in which the

3.4 The Cutting Stock Problem

39

j-th entry is ajk , that is, the number of paper rolls of length lj contained in cutting pattern k. From the column vectors Ak = [a1k a2k · · · amk ]T , we can construct the m × n matrix A = [A1 A2 · · · An ]. The company’s objective is to satisfy the total customer demand for the week while minimizing the number of stock rolls used. If the total demand for a paper roll of length lj in a given week is dj , then the company must determine how many times to cut each pattern k so that the demand is satisfied and the total number of stock pieces used is a minimum. If we use the integer variable xk to express the number of stock rolls cut according to pattern k, then the cutting stock problem can be written as follows: minimize subject to

n X k=1 n X

xk , ajk xk ≥ dj ,

∀j ∈ {1, . . . , m},

(3.24)

k=1

xk ∈ N,

∀k ∈ {1, . . . , n}.

If the number of possible cutting patterns is too exhaustive to enumerate a priori, then (3.24) becomes intractable for standard integer programming solution approaches (for example, the branch-and-bound based algorithms of commercial solvers). However, if the integrality condition is relaxed, the problem reduces to solving a linear program to which column generation can be applied. Moreover, the linear programming relaxation of the cutting stock problem as expressed in (3.24) is known to be tight, which means that the gap between the optimal linear and integer programming solutions is known to be small. Since the integrality gap must be eventually closed to obtain an integer solution, a small gap may entail that it can be closed in a straightforward fashion, for example, with a rounding heuristic. An initial basic feasible solution is necessary to begin the column generation process, and in the case of the cutting stock problem, is very easy to construct. As there are demands for m different lengths of paper rolls, we can construct an initial set of m cutting patterns from the stock rolls, where the j-th cutting pattern has exactly ⌊L/lj ⌋ rolls of length lj . These cutting patterns form the set of basic columns for the initial m × m constraint matrix A = [A1 A2 · · · Am ]. Therefore, the initial restricted master problem for the linear programming relaxation is constructed

Theoretical Background

40 with m variables as follows: minimize

m X

xk ,

k=1

subject to

m X

Ak xk ≥ d,

(3.25)

k=1

xk ≥ 0,

∀k ∈ {1, . . . , m}.

Using the initial set of basic feasible columns (which coincide with the initial constraint matrix), we need to find a current non-basic variable with minimum negative reduced cost to enter the basis. However, we first require the dual information from the current RMP, which is given by π T = A−1 . The reduced cost associated with a variable xk , where k ∈ {1, . . . , n}, is given in terms of its associated cost coefficient and constraint column, and the current vector of dual variables, according to: r¯k = 1 − π T Ak , ∀k ∈ {1, . . . , n}. (3.26) We denote A to be the set of all non-basic columns of the full constraint matrix (that is, the constraint matrix for the full master problem). Hence, we have: A = {Am+1 , . . . , An }.

(3.27)

Instead of enumerating the entire set of reduced costs of the non-basic variables, we can take the expression in (3.26) and cast it as a minimization problem over all elements of A. That is, we seek a column (and its associated variable) yielding the minimum negative reduced cost r¯∗ , which will be given by the solution to: r¯∗ =

min k∈{m+1,...,n}

 1 − π T Ak | A k ∈ A .

(3.28)

The column generation subproblem is therefore to find the minimum of (1 − π Ak ) over all Ak ∈ A. This is equivalent to finding the maximum of π T Ak over all Ak ∈ A. Therefore, if we get: T

max k∈{m+1,...,n}



π T Ak | Ak ∈ A ≤ 1,

(3.29)

then all reduced costs of the non-basic variables are non-negative, and the current basic feasible solution is optimal. If however, the left-hand-side of (3.29) is strictly

3.4 The Cutting Stock Problem

41

greater than unity with some Ak′ , then the variable xk′ corresponding to column Ak′ enters the basis. Thus, the column generation subproblem (find a feasible cutting pattern with minimum reduced cost) can be expressed as follows: maximize

m X

π j aj ,

j=1

subject to

m X

lj aj ≤ L,

(3.30)

j=1

aj ∈ N. The problem given by (3.30) is a well known combinatorial problem and is called the (integer) knapsack problem. It derives its name from the scenario of deciding on the number and type of distinct objects to put into a knapsack, such that the total value of the selected objects has the greatest value, but the capacity of the knapsack is not exceeded by the volume of the objects selected. In (3.30), the knapsack has capacity L, the number of objects of type j selected is aj , with object j having value πj and volume lj . The knapsack problem can be solved through a variety of methods including dynamic programming and branch-and-cut. If a cutting pattern with minimum negative reduced cost can be found from (3.30), then its representative column (along with the associated variable) is appended to the constraint matrix A in (3.25). The augmented RMP is then re-solved to get a new set of dual variables to feed back into (3.30). This process repeats until no more candidate cutting patterns can be produced from the column generation knapsack subproblem. To concretize the algorithmic process outlined heretofore, we will look at a worked example. Suppose a company has stock rolls of length 12 metres, from which it can put pieces of lengths 2 metres, 3 metres, 5 metres and 9 metres. For a given week, the respective demands for these cut pieces are 22, 20, 17 and 15. Therefore, the data can be summarized as follows: L = 12 m, l1 = 2 m, l2 = 3 m, l3 = 5 m, l4 = 9 m, d1 = 22, d2 = 20 m, d3 = 17 m, d4 = 15 m. The initial restricted master problem is constructed using a constraint matrix composed of four cutting patterns (which also gives an initial basic feasible solution), where the column Ak has k-th entry ⌊L/lk ⌋ and 0’s elsewhere for k ∈ {1, . . . , 4}. Thus, the initial restricted master problem can be written as:

Theoretical Background

42

minimize

z = x1 + x2 + x3 + x 4 ,      6 0 0 0 x1 22      0 4 0 0 x2  20      0 0 2 0 x  ≥ 17 ,    3   0 0 0 1 x4 15

subject to

xk ≥ 0,

(3.31)

∀k ∈ {1, . . . , 4}.

The optimal linear programming solution to (3.31) has an objective function value z ∗ = 32.17, with: x1 = 3.67,

x2 = 5.00,

x3 = 8.50,

x4 = 15.00,

π1 = 0.17,

π2 = 0.25,

π3 = 0.50,

π4 = 1.00.

The first subproblem is constructed by substituting the above dual values into (3.30). The solution to the first subproblem has optimum objective value equal to 1.25, with a1 = 0, a2 = 1, a3 = 0, a4 = 1.10 As the optimum value of the objective function is greater than unity, we can append the newly generated column A5 = [0 1 0 1]T to the constraint matrix of the restricted master problem. The updated restricted master problem is thus: minimize

subject to

z = x1 + x2 + x3 + x4 + x5 ,       x1 6 0 0 0 0   22    x2    0 4 0 0 1   20      0 0 2 0 0 x3  ≥ 17 ,       x4  0 0 0 1 1 15 x5 xk ≥ 0,

(3.32)

∀k ∈ {1, . . . , 5}.

The optimal linear programming solution to (3.32) has an objective function value z ∗ = 28.41, with:

10

x1 = 3.67,

x2 = 1.25,

x3 = 8.50,

x4 = 0.00,

π1 = 0.17,

π2 = 0.25,

π3 = 0.50,

π4 = 0.75.

x5 = 15.00,

The knapsack subproblems in this worked example were solved using the Java-based concert technology of CPLEX 12.2.

3.4 The Cutting Stock Problem

43

By inspection of the solution, we can see that the variable x5 has entered the basis, while the variable x4 has left the basis (its value is now zero). The second subproblem is solved after substituting the above dual solution into (3.30). The solution to this subproblem instantiation has optimum objective value equal to 1.67, with a1 = 1, a2 = 0, a3 = 2, a4 = 0. The optimum value of the objective function is greater than unity, so we can append column A6 = [1 0 2 0]T to the constraint matrix of the current restricted master problem. Thus, we get an updated restricted master problem as follows: minimize

subject to

z = x1 + x2 + x3 + x4 + x5 + x6 ,     x1    6 0 0 0 0 1  x2   22    0 4 0 0 1 0 x3  20      ≥  0 0 2 0 0 2 x  17 , 4       0 0 0 1 1 0  15 x5  x6 xk ≥ 0,

(3.33)

∀k ∈ {1, . . . , 6}.

The optimal linear programming solution to (3.33) has an objective function value z ∗ = 27.00, with: x1 = 2.25,

x2 = 1.25,

x3 = 0.00,

x4 = 0.00,

π1 = 0.17,

π2 = 0.25,

π3 = 0.42,

π4 = 0.75.

x5 = 15.00,

x6 = 8.50,

At this iteration of the column generation process, we can see that the variable x6 has entered the basis, while the variable x3 has left the basis. The third subproblem (constructed using the above dual values) has optimum objective value equal to 1, and hence, we have reached the termination criterion. There are no more columns to add the constraint matrix of the restricted master problem. The optimal solution to the linear relaxation of the master problem is therefore 2.25 rolls of pattern 1, 1.25 rolls of pattern 2, 15.00 rolls of pattern 5 and 8.50 rolls of pattern 6. Obviously, this solution is not integer, and so we can employ a rounding heuristic (balancing between optimality and feasibility) to round the variables to integral values. By doing so, we can extract a solution in which 29 stock rolls are used (optimality gap equal to 6.90%) using 3 rolls of pattern 1, 2 rolls of pattern 2,

Theoretical Background

44 15 rolls of pattern 5 and 9 rolls of pattern 6.

3.5

Dantzig-Wolfe Decomposition

In 1960, Dantzig and Wolfe [27] proposed a decomposition technique, which is now known as Dantzig-Wolfe decomposition, for linear programs with block-diagonal constraint matrices of the following form: A1 x1 + · · · + A|K| x|K| ≥ b, D1 x 1 ≥ d1 , .. .. ... . . D|K| x|K| ≥ d|K| ,

(3.34)

where xk ∈ Zn+k for all k ∈ K. Dantzig-Wolfe decomposition can effectively leverage off the column generation paradigm when the considered linear program is large. The key idea behind the decomposition is to reformulate an original linear program by exchanging its variables for a convex combination of the extreme points and a non-negative combination of the extreme rays of the polyhedron defining the constraint set. Consider the following integer program, which is called a compact formulation: minimize

X

ck T xk ,

k∈K

subject to

X

Ak xk ≥ b,

(3.35)

k∈K

x k ∈ Xk ,

∀k ∈ K,

where,  Xk = xk ∈ Zn+k | Dk xk ≥ dk ,

∀k ∈ K.

(3.36)

The objective of the compact formulation given in (3.35) is to optimize a linear objective function, subject to the satisfaction of a set of independent or segregated constraints, and a set of linking or joint constraints. Before we further develop the ideas pertaining to Dantzig-Wolfe decomposition in the context of column generation, we require some prerequisite definitions relating to polyhedra and convex sets. These are provided below. Definition 3.5.1. A polyhedron is a set {x ∈ Rn+ | Ax ≥ b}, where b ∈ Rm and

3.5 Dantzig-Wolfe Decomposition

45

A ∈ Rm×n . Definition 3.5.2. A set S ⊂ Rn is convex if for any x, y ∈ S and real λ ∈ [0, 1], we have λx + (1 − λ)y ∈ S. Definition 3.5.3. Given a sequence of vectors xi ∈ Rn+ and a sequence of scalars λi ∈ [0, 1] P P with i λi = 1, we say that the weighted sum ki=1 λi xi is a convex combination of the vectors xi . The set of all convex combinations of the vectors xi forms the convex hull. We write the convex hull of a set S as conv(S). A polyhedron may be either bounded or unbounded. If a polyhedron is unbounded, it can be expressed in terms of its external points (vertices) and rays. A bounded polyhedron is called a polytope, and can be expressed solely in terms of its external points. This is a result of the Minkowski-Weyl Theorem, which is an important underlying principle of Dantzig-Wolfe decomposition.11 Theorem 3.5.1 (Minkowski-Weyl). Let P be a non-empty polyhedron with extreme points x1 , . . . , xU , and extreme rays w1 , . . . , wV : P = {x ∈ Rn+ | Ax ≤ b}.

(3.37)

Let Q be the set: Q=

( U X i=1

λi xi +

V X j=1

U X θj wj λi = 1,

) λi , θj ≥ 0 .

(3.38)

i=1

Then P = Q. Proof. See Schrijver [110]. The Minkowski-Weyl Theorem states that any point interior to the polyhedron defined by the set Xk can be expressed as a convex combination of the polyhedron’s extreme points and a non-negative combination of its extreme rays (should the polyhedron be unbounded). Therefore, exchanging Xk for conv(Xk ) in (3.35) will not change the optimal value of the objective function. Returning to the compact formulation (3.35), for each k ∈ K, let Pk = {xkp ∈ Rn+k | p ∈ Pk } be the set of extreme points and Rk = {xkr ∈ Rn+k | r ∈ Rk } be the set 11

The Minkowski-Weyl Theorem is also known as the Resolution Theorem.

Theoretical Background

46

of extreme rays of conv(Xk ). (The sets Pk and Rk are index sets.) Therefore, we can write any point xk ∈ Xk as follows: X

xk =

xkp λkp +

p∈Pk

where

X

xkr λkr ,

r∈Rk

X

λkp = 1,

(3.39)

p∈Pk

λkp , λkr

≥ 0, ∀k ∈ K, p ∈ Pk , r ∈ Rk .

Substituting (3.39) into (3.35) we arrive at the extensive formulation of the original integer programming master problem: minimize subject to

XX

XX   ck T xkp λkp + ck T xkr λkr ,

k∈K p∈Pk

k∈K r∈Rk

XX

XX   Ak xkp λkp + Ak xkr λkr ≥ b,

k∈K p∈Pk

X

(3.41)

k∈K r∈Rk

xkp λkp

+

p∈Pk

X

(3.40)

X

xkr λkr

= xk ,

∀k ∈ K,

(3.42)

r∈Rk

λkp = 1,

∀k ∈ K,

(3.43)

p∈Pk

xk ∈ Zn+k , λkp , λkr ≥ 0,

∀k ∈ K,

(3.44)

∀k ∈ K, p ∈ Pk , r ∈ Rk .

(3.45)

The constraints given by (3.43) are called the convexity constraints. When the integrality requirement on the original variables xk is relaxed, the linking constraints defined by (3.42) can be dropped. Therefore, by writing ckp,r = ck T xkp,r and akp,r = Ak xkp,r , the relaxed version of the extensive formulation can be written as follows: minimize

XX

ckp λkp +

XX

akp λkp +

k∈K p∈Pk

X

λkp

ckr λkr ,

(3.46)

akr λkr ≥ b,

(3.47)

k∈K r∈Rk

k∈K p∈Pk

subject to

XX

= 1,

XX k∈K r∈Rk

∀k ∈ K,

(3.48)

p∈Pk

λkp , λkr ≥ 0,

∀k ∈ K, p ∈ Pk , r ∈ Rk .

(3.49)

3.5 Dantzig-Wolfe Decomposition

47

If the sets Pk and Rk contain a large number of extreme points and rays, then an extensive formulation will be prohibitively large to write out explicitly. If a subset of the extreme points and rays is known for each set conv(Xk ), and a sub-optimal feasible solution can be found to the resulting restricted version of the relaxed extensive formulation, then column generation can be used to find the remaining extreme points and rays which will participate in an optimal solution to the full problem. ¯ k ⊂ Pk and R ¯ k ⊂ Rk (with index sets P¯k Suppose we have initial subsets P ¯ k , respectively) for all k ∈ K. The construction of a linear program with and R these subsets will lead to an optimal solution (and hence, optimal dual solution) to the current restricted problem. We denote the current optimal dual solution to be (π, π 0 ), where the dual variables π correspond to the set of linking constraints and π0k (the k-th element of π 0 ) is the dual variable for the k-th convexity constraint. The decomposition with feasible subsets for the extreme points and rays leads to |K| pricing subproblems (one for each xk ∈ Xk with k ∈ K), each of which is an integer (combinatorial) problem for xk : r¯k∗ := min



 ck T − π T Ak xk − π0k | xk ∈ Xk ,

∀k ∈ K.

(3.50)

When r¯k∗ ≥ 0 for each k ∈ K, no negative reduced column exists, and the column generation procedure has reached its termination condition. Whenever r¯k∗ < 0 and finite, the solution to the k-th pricing subproblem is an extreme point xkp of ¯ k . In this case, the following column is added to the conv(Xk ), that is, xkp ∈ Pk \P restricted master problem: h

ck T xkp , Ak xkp

T

iT ,1 .

(3.51)

Whenever r¯k∗ = −∞, the k-th pricing subproblem identifies an extreme ray xkr of ¯ k . When an extreme ray is returned, we add the folconv(Xk ), that is, xkr ∈ Rk \R lowing column to the restricted master problem: h

ck T xkr , Ak xkr

T

iT ,0 .

(3.52)

When all the subproblems for the relaxed extensive formulation fail to return a new extreme point or ray with negative reduced cost, the column generation process terminates. The optimal solution to the relaxation of the original compact for-

Theoretical Background

48

Algorithm 2 Dantzig-Wolfe column generation 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25:

Input: A compact linear program, given by (3.35) for k = 1, . . . , |K| do ¯ k ⊂ Pk and R ¯ k ⊂ Rk Initialize P end for ¯ k and R ¯k Construct an extensive RMP from P Solve the RMP to get dual variables π and π 0 procedure G ENERATE C OLUMNS for k = 1, . . . , |K| do Solve the pricing subproblem to get (¯ rk∗ , xkq ) if r¯k∗ < 0 and finite then Add column [ck T xkq , (Ak xkq )T , 1]T to RMP ¯k ← P ¯ k ∪ {xk } P q else if r¯k∗ = −∞ then Add column [ck T xkq , (Ak xkq )T , 0]T to RMP ¯k ← R ¯ k ∪ {xk } R q end if end if end for end procedure if r¯k∗ ≥ 0 ∀k ∈ K then END else goto 6 end if

3.6 Dantzig-Wolfe Decomposition Example

49

mulation can then be found through the constraints (3.39) which link the compact variables xk to the extensive variables λkp , λkr . The Dantzig-Wolfe based column generation algorithm is summarized in pseudocode in Algorithm 2.

3.6

Dantzig-Wolfe Decomposition Example

In this section, we will attempt to concretize the ideas presented in the previous section, which introduced the notion of Dantzig-Wolfe based column generation. We will pay attention to a worked example which is presented below. Consider the following linear program: maximize z = 3x1 subject to 2x1 − x1 x1 x1 x1

+ x2 + 2x3 + + 2x2 + 3x3 + + x2 + x2 −

x2 − 2x3 − x3 x3 x3 x3

− + + − −

x4 , x4 ≤ 25, ≤ 4, ≤ 6, ≤ 3, ≤ 2, x4 ≤ −2, x4 ≤ 2, x4 ≤ 6, x4 ≤ 2, 2x4 ≤ 1,

where x1 , x2 , x3 , x4 ≥ 0. This system can be re-written in terms of the following compact notation, with x1 = [x1 x2 ]T and x2 = [x3 x4 ]T : maximize z = (c1 )T x1 + (c2 )T x2 , subject to A1 x 1 + A2 x2 ≤ b, D1 x 1 ≤ d1 , D2 x2 ≤ d2 . where x1 , x2 ≥ 0 and: c1 = [3 1]T , c2 = [2 1]T , A1 = [2 2], A2 = [3 1], b = 25, " #T " #T −1 1 1 1 −2 −1 1 1 1 D1 = , D2 = , 1 1 0 −1 −1 1 1 −1 −2

Theoretical Background

50

d1 = [4 6 3 2]T , d2 = [−2 2 6 2 1]T . Using the data of the segregated constraint sets, we can write x1 and x2 as convex combinations of their respective polyhedron extreme points: " # " # " # " # " # " # " # 1 1 1 1 0 0 1 3 3 2 λ + 3λ + 3λ + 2λ 4 5 6 x1 = λ11 + λ12 + λ13 + λ14 + λ15 + λ16 = 31 , 0 4 5 3 1 0 4λ2 + 5λ13 + 3λ14 + λ15 λ11 + λ12 + λ13 + λ14 + λ15 + λ16 = 1, λ11 , λ12 , λ13 , λ14 , λ15 , λ16 ≥ 0.

# " # " # " # " # " # " 2 2 2 2 + λ + 3λ + 4λ 0 2 4 3 1 2λ 5 4 3 2 , x2 = λ21 + λ22 + λ23 + λ24 + λ25 = 2 2 2 2λ1 + 4λ2 + 2λ3 + λ24 2 4 2 1 0 λ21 + λ22 + λ23 + λ24 + λ25 = 1, λ21 , λ22 , λ23 , λ24 , λ25 ≥ 0. The extensive formulation of the full master problem can therefore be written out as follows: maximize z = 4λ12 + 8λ13 + 12λ14 + 10λ15 + 6λ16 + 2λ21 + 8λ22 + 10λ23 + 7λ24 + 2λ25 , subject to 8λ12 + 12λ13 + 12λ14 + 8λ15 + 4λ16 + 2λ21 + 10λ22 + 14λ23 + 10λ24 + 3λ25 ≤ 25, λ11 + λ12 + λ13 + λ14 + λ15 + λ16 = 1, λ21 + λ22 + λ23 + λ24 + λ25 = 1, λ11 , λ12 , λ13 , λ14 , λ15 , λ16 ≥ 0, λ21 , λ22 , λ23 , λ24 , λ25 ≥ 0. When the aggregate number of extreme points is too large to write out explicitly, it is no longer practical to construct an extensive formulation of the full master problem. However, using just one known extreme point from each polyhedron, we can initialize an extensive formulation via a restricted master problem, to which we may append additional polyhedron extreme points on-the-fly using column generation. The extreme points generated on-the-fly, are, of course, extracted from separate subproblems corresponding to each segregated block of constraints in the original compact formulation. This entails that we need not exhaustively enumerate every single extreme point of each polyhedron.

3.6 Dantzig-Wolfe Decomposition Example

51

The polyhedra (and their extreme points) corresponding to the block diagonal elements of the constraint set are represented graphically in Figure 3.3. The top half of Figure 3.3 depicts the x1 -x2 space and the bottom half depicts the x3 -x4 space. x2

(1, 5)

(0, 4) (3, 3)

(3, 1)

x1

(2, 0)

O

x4 (2, 4)

(0, 2)

(4, 2)

(3, 1) (1, 0) O

x3

Fig. 3.3 The polytope D1 x1 ≤ d1 (top) and the polytope D2 x2 ≤ d2 (bottom).

The subproblems corresponding to each constraint block are given in terms of the dual variables from the restricted master problem. If π is the dual variable for the linking constraint and π0k is the dual variable for block xk , where k ∈ {1, 2}, then the subproblem for block x1 is: minimize r¯1 = π01 + π(2x1 + 2x2 ) − (3x1 + x2 ),     −1 1 " # 4     1   1  x1 ≤ 6 , x1 , x2 ≥ 0. subject to  1 3 0   x2   1 −1 2

(3.53)

Theoretical Background

52 Similarly, the subproblem for x2 is:

minimize r¯2 = π02 + π(3x3 + x4 ) − (2x3 + x4 ),     −2 −1 −2  " #   −1 1  2   x3     6  , x3 , x4 ≥ 0. subject to  ≤ 1 1   x     4    1 −1 2 1 −2 1

(3.54)

To construct an extensive formulation of the initial restricted master problem, we take a subset of the extreme points of each polyhedron: (" #) 2 ¯1 = P , 0

(" #) 1 ¯2 = P . 0

(3.55)

The initial restricted master problem is therefore:

maximize z = 6λ16 + 2λ25 , subject to 4λ16 + 3λ25 λ16 λ25 λ25 λ16 ,

≤ 25, = 1, = 1, ≥ 0.

[π] [π01 ] [π02 ]

(3.56)

By solving (3.56) with the simplex method, we find that the optimal dual variables are π = 0, π01 = 6 and π02 = 2. By substituting the relevant dual information into (3.53) and (3.54) we find that r¯1∗ = −6 with x1 = x2 = 3, and r¯2∗ = −8 with ¯ 1 and P ¯ 2 are updated as follows: x1 = 4, x2 = 2. Hence, P (" # " #) 2 3 ¯1 = P , , 0 3

(" # " #) 1 4 ¯2 = P , . 0 2

(3.57)

The second restricted master problem is formed with the updated sets for the

3.6 Dantzig-Wolfe Decomposition Example

53

extreme points of each polyhedron:

maximize z = 6λ16 + 2λ25 + 12λ14 + 10λ23 , subject to 4λ16 + 3λ25 + 12λ14 + 14λ23 + λ14 λ16 + λ23 λ25 λ16 , λ25 , λ14 , λ23

≤ 25, = 1, = 1, ≥ 0.

(3.58)

When (3.58) is solved, we get optimal dual variables π = 0.7, π01 = 3.4 and π02 = 0. On substituting this information into (3.53) and (3.54) we find that r¯1∗ = −0.9 with x1 = 3, x2 = 1, and r¯2∗ = 0 with x3 = 2, x4 = 4. Since r¯1∗ < 0 and r¯2∗ ≥ 0, we need to ¯ 1 but not P ¯ 2 . Therefore, for the next iteration, we have: update P (" # " # " #) 2 3 3 ¯1 = P , , , 0 3 1

(" # " #) 1 4 ¯2 = P , . 0 2

(3.59)

The third restricted master problem is therefore:

maximize z = 6λ16 + 2λ25 + 12λ14 + 10λ23 + 10λ15 , subject to 4λ16 + 3λ25 + 12λ14 + 14λ23 + 8λ15 + λ15 + λ14 λ16 λ25 + λ23 λ16 , λ25 , λ14 , λ23 , λ15 ∗





≤ 25, = 1, = 1, ≥ 0. ∗

(3.60)

When (3.60) is solved, we get λ16 = 0.00, λ25 = 0.00, λ14 = 0.75, λ23 = 1.0 and ∗ λ15 = 0.25 with dual variables π = 0.5, π01 = 6 and π02 = 3. On substituting this information into (3.53) we find that r¯1∗ = 0 with x1 = 3, x2 = 1. Since we have r¯1∗ ≥ 0, we have therefore arrived at the optimal solution with z ∗ = 21.5 and: ∗





x∗1 = 3λ14 + 3λ15 + 2λ16 = 3.00, ∗







x∗2 = 3λ14 + λ15 = 2.50, x∗3 = 4λ23 + λ25 = 4.00, ∗

x∗4 = 2λ23 = 2.00.

Theoretical Background

54

3.7 3.7.1

Branch-and-Price for Integer Programs Introduction

We have described the principle of column generation in terms of a general procedure which iterates between a restricted master problem and one (multiple) subproblem(s) until no more columns can be found with negative reduced cost. When termination occurs, we have a solution to the linear relaxation of the integer problem, and hence, a lower bound on the objective value given by the optimal integer solution. This procedure is called column generation at the root node. If the column generation solution at the root node is not integral then we have a fractional solution. The pool of columns generated at the root node may not be sufficient to obtain an integer solution. In other words, we may not simply take the root node columns and have them processed by a computational branch-and-bound based solver to arrive at an optimal integer solution. In fact, the root node column pool may not even necessarily contain the columns needed for a feasible integer solution (Herbers [67]). Therefore, to ensure that all the requisite columns are acquired, further calls to the column generation routine may be necessary after inspection and modification of the fractional solution. A branch-and-bound paradigm can be employed to obtain feasible and optimal solutions to integer programming problems by searching either side of a fractional solution, that is, a branching decision is taken in a search tree of candidate solutions. A branch-and-bound procedure will also use bounds information obtained from linear programming relaxations performed at different points in the search tree to prune suboptimal and infeasible solutions. When column generation is utilized in a branch-and-bound procedure as a subroutine to solve the relaxation problems that arise, the overall procedure is referred to as branch-and-price.12 A logic-flow diagram of the general branch-and-price procedure can be found in Figure 3.4. Branch-and-price was first introduced in the research conducted by Desrosiers et al. [36]. The paper used a column generation based branch-and-bound algorithm to solve a generalization of the m-travelling salesman problem, with a specific ap12

It should be noted, however, that the manner in which column generation is employed within a branch-and-bound procedure is non-trivial. This will be illustrated more clearly in the worked example of Section 3.8.

3.7 Branch-and-Price for Integer Programs

55

START Solve relaxation of RMP Go to next node

Add column(s)

Solve subproblem(s) YES Column? NO YES Branch? NO END

Fig. 3.4 Logic-flow diagram of a general branch-and-price scheme. plication to school bus transportation problems. Since the publication of this important paper, branch-and-price has been successfully applied to a number of practical industrial problems. Some examples include the vehicle routing problem with time windows (Desrochers et al. [34]), airline crew pairing, rostering and fleet assignment (Vance et al. [120], Gamache et al. [54], Barnhart et al. [11]), the pickup and delivery problem (Savelsbergh and Sol [109]), and the generalized assignment problem (Savelsbergh [108]).13 The implementation of branching decisions within a branch-and-price procedure is non-trivial. The selection of branching variables and the design of branching rules must, therefore, be carefully considered. Choices such as these must be made with reference to the structure and nature of the master problem and pricing subproblem in the column generation scheme. The paper by Appelgren [5] was the first to notice that branching on the reformulated variables of the master problem (so-called classical branching) may produce difficulties for the subsequent generation of columns at nodes in the branch-and-bound tree. For example, suppose we have a master problem in which a variable implicitly represents a schedule of tasks. Call the set of schedules B, with λb equal to 1 if schedule b is selected, and 0 otherwise. After column generation at the root node, 13

For a comprehensive documentation of various applications of branch-and-price, refer to Lübbecke and Desrosiers [85] and Wilhelm [130].

Theoretical Background

56

we are left with a fractional solution. For schedule b′ ∈ B, the variable λb′ takes the ¯ b′ , where 0 < λ ¯ b′ < 1, and this variable is chosen for branching. Two nodes value λ are created under the root node, one enforcing λb′ = 0, and the other enforcing λb′ = 1. The branch imposing the 0 condition means that schedule b′ is prohibited from participating in a solution. However, when we perform column generation with the 0 condition imposed for b′ ∈ B, we need to ensure that this schedule is not re-generated by the subproblem. This would necessarily require an alteration to the structure of the subproblem. Changes to the subproblem’s structure will, in general, make it more complicated to solve and thus diminish the efficacy of employing column generation.14 According to Savelsbergh and Sol [109], there are three important challenges which underpin the selection of branching variables and the design of branching rules: to exclude the current solution, to validly partition the solution space, and to preserve the structure of the subproblem so that it remains tractable. In Dantzig-Wolfe decomposition, the aforementioned objectives can usually be achieved by branching on the variables of the original (compact) formulation, not on the variables of the reformulated (extensive) problem on which column generation is performed. Since the variables of the compact problem are linked to the variables of the extensive reformulation through the decision variables of the subproblem, branching decisions may be incorporated as cuts in the master problem, with the dual prices directly incorporated into the subproblem without changing its structure (see Barnhart et al. [12]).

3.7.2

Mathematical Formulation

We will now proceed with a mathematical formulation of the branch-and-price framework. We consider the case of a binary or 0-1 integer program with a bounded polyhedron (polytope) defining the constraint set. This outline is largely inspired and adapted from Chapter 11 of Wolsey [131].

14

In addition, classical branching in the context of column generation is likely to produce an unbalanced search tree, that is, the branching decisions are not likely to partition the solution space evenly (see Barnhart et al. [12]).

3.7 Branch-and-Price for Integer Programs

57

Consider the compact formulation: minimize

X

ck T xk ,

k∈K

subject to

X

Ak xk ≥ b,

(3.61)

k∈K

x k ∈ Xk ,

∀k ∈ K,

 where Xk = xk ∈ {0, 1}nk | Dk xk ≥ dk for all k ∈ K. In the case of a bounded polyhedron, recall that the original (compact) variables are expressed through a convex combination of the polyhedron’s extreme points (external rays do not need to be considered since the polyhedron is bounded): xk =

X

λkp xkp ,

p∈Pk

X

λkp = 1,

(3.62)

p∈Pk

λkp ≥ 0,

∀p ∈ Pk , ∀k ∈ K.

P P Since the vectors xkp ∈ {0, 1}nk are distinct, and xk = p∈Pk λkp xkp with p∈Pk λkp = 1, it follows that xk ∈ {0, 1}nk if and only if λkp ∈ {0, 1} for all p ∈ Pk and k ∈ K. Therefore, the integer programming reformulation of (3.61) in terms of the convexity variables can be written as follows: minimize

XX

 ck T xkp λkp ,

k∈K p∈Pk

subject to

XX

 Ak xkp λkp ≥ b, (3.63)

k∈K p∈Pk

X

λkp

= 1,

∀k ∈ K,

p∈Pk

λkp ∈ {0, 1},

∀p ∈ Pk , ∀k ∈ K.

If the column generation algorithm for the relaxed reformulated master problem does not terminate with an integer solution at the root node, then we will get a fractional solution given by: ¯ = (λ ¯ 1, . . . , λ ¯ |K| ), λ

(3.64)

Theoretical Background

58

where the over-bar implies that the solution is fractional (non-integral), and the vectors are given by:  ¯k = λ ¯k ∀k ∈ K. (3.65) λ p p∈P , k

If the linear programming solution at the root node is fractional, this means that there is some k ′ ∈ K and some jk′ ∈ {1, . . . , nk′ } such that the relaxed compact ′ ′ ¯ k (jk′ ) ∈ (0, 1).15 variable xk (jk′ ) takes the fractional value x N Let X = k∈K Xk and denote sol(X) to be the set of feasible solutions to (3.61). ′ ¯ k (jk′ ), we can Once a variable has been located with a fractional value given by x partition the set of all feasible solutions into the following subsets: ′

br0 = {x ∈ sol(X) | xk (jk′ ) = 0},

(3.66)



br1 = {x ∈ sol(X) | xk (jk′ ) = 1}.

Partitioning of the solution space results in two new master problems to which we can apply the column generation algorithm, with a subproblem for k ′ ∈ K which has a slightly adjusted form to the subproblems for k ∈ K\{k ′ }. On the P ′ ′ ′ branch bri , i ∈ {0, 1}, we require xk (jk′ ) = i, which implies that p∈Pk′ λkp xkp (jk′ ) = ′ ′ i, and therefore, xkp (jk′ ) = i for all p ∈ Pk′ with λkp > 0. Therefore, the integer programming master problem on branch bri , i ∈ {0, 1}, can be expressed as follows:

minimize

X

X

subject to

X

ck′ T xkp







λkp ,

p∈{q∈Pk′ | xkq ′ (jk′ )=i}

k∈K\{k′ } p∈Pk

X



X

 ck T xkp λkp + Ak xkp



λkp

X

+



A

k′

′ xkp





λkp ≥ b,

p∈{q∈Pk′ | xkq ′ (jk′ )=i}

k∈K\{k′ } p∈Pk ′

X

λkp = 1,

(3.67)

p∈{q∈Pk′ | xkq ′ (jk′ )=i}

X

λkp = 1,

∀k ∈ K\{k ′ },

p∈Pk

λkp ∈ {0, 1},

∀p ∈ Pk , ∀k ∈ K.

The subproblems for k ∈ K\{k ′ } retain the same form, but the subproblem for k ′ ∈ K takes on the slightly altered form for i ∈ {0, 1}: r¯k∗′ 15

n  ′ o T T k′ k k′ k′ k′ k′ ′ ′ := min ck − π A x − π0 | x ∈ X , x (jk ) = i .

Recall that the notation xk (j) refers to the j-th component of the vector xk .

(3.68)

3.7 Branch-and-Price for Integer Programs

59

Minor alterations to the subproblem may be necessary (as seen above), as long as the fundamental structure is not destroyed. For example, if the subproblem were ′ a shortest path problem on a directed graph, then xk (jk′ ) would correspond to an arc in the underlying network. On the 0 branch, we simply remove the arc from the network and then seek the shortest path over this slightly altered form. On the ′ 1 branch, the shortest path must include the arc given by xk (jk′ ). This may entail that other arcs in the network are necessarily prohibited from being traversed. In either case, the essential structure of the problem remains. The mathematical formulation outlined in this subsection takes place within the context of a larger tree. In this tree, bounds information on the objective function can be used in order to prune any feasible nodes for which the objective function value falls outside the known bounds. The next subsection provides a brief discussion on how to obtain lower and upper bounds with the information readily available at each node.

3.7.3

Using Bounds Information

With knowledge of the bounds on the objective function for an integer optimization problem, a node may be pruned in a branch-and-price scheme if the current objective value lies outside of the known bounds. In this subsection, we will identify how these bounds may, in a general sense, be obtained. To begin, assume we are given the following integer programming problem: minimize

X

c k T xk ,

k∈K

subject to

X

Ak xk ≥ b,

(3.69)

k∈K

xk ∈ X k ,  where Xk = xk ∈ Zn+k | Dk xk ≥ dk for all k ∈ K. We denote the optimal (integer) objective value to problem (3.69) as z ∗ . The Dantzig-Wolfe reformulation of problem (3.69) substitutes the solution space N k k k∈K X with the convex hull sets k∈K conv(X ). If we assume that the convex hulls are bounded, the Minkowski-Weyl Theorem allows us to express the corresponding polyhedra as convex combinations of their extreme points {xkp }p∈Pk for all k ∈ K. When the integrality condition on the convex hull reformation is relaxed,

N

Theoretical Background

60 we obtain the following master problem: XX

minimize

ckp λkp ,

k∈K p∈Pk

XX

subject to

akp λkp ≥ b, (3.70)

k∈K p∈Pk

X

λkp

= 1,

∀k ∈ K,

p∈Pk

λkp ≥ 0,

∀k ∈ K, p ∈ Pk ,

where ckp = ck T xkp and akp = Ak xkp . We will denote the optimal objective value to the ∗ extensive formulation (3.70) as zMP . The variables of this extensive formulation are linked to the original integer-valued compact variables as follows: xk =

X

λkp xkp ,

xk ∈ Zn+k , ∀k ∈ K.

(3.71)

p∈Pk

In the case where there are identical restrictions on the sets Xk for all k ∈ K, we can drop the k indices (Pk = P for all k ∈ K) and the convexity constraints can be P P aggregated (Desrosiers et al. [37]). Let λp := k∈K λkp , and we get p∈P λp = |K|. If we also have a known upper bound on the sum of the variables, say κ ≥ |K|, then the relaxed optimization problem (3.70) can be formulated as follows: minimize

X

subject to

X

cp λp ,

p∈P

ap λp ≥ b, (3.72)

p∈P

X

λp ≤ κ,

p∈P

λp ≥ 0,

∀p ∈ P.

 T   ˆ = bT , −κ T , we can express (3.72) as: ˆp = ap T , −1 and b Writing a minimize

X

cp λp ,

p∈P

subject to

X

ˆ ˆp λp ≥ b, a

p∈P

λp ≥ 0,

∀p ∈ P.

(3.73)

3.7 Branch-and-Price for Integer Programs

61

Let π be the vector of dual variables associated with the constraints in (3.73). Therefore, multiplying the constraints through by the dual variables gives: X

 ˆ ˆp λp ≥ π T b. πT a

(3.74)

p∈P

ˆ from Let the objective function for this problem be denoted by z. Subtracting π T b the objective function, and using the bound given by the dualized constraints (3.74), we have: X ˆ ˆ= cp λp − π T b, z − πT b p∈P

≥ =

X

cp λp −

X

 ˆ p λp , πT a

p∈P

p∈P

X

 ˆp λp , cp − π T a

(3.75)

p∈P

ˆp is the reduced cost of variable λp with dual variables π. where r¯p (π) = cp − π T a When the column generation subproblem is called, it will find the variable with the minimum negative reduced cost (given by r¯∗ ), that is: ˆp } < 0. r¯∗ (π) = min{cp − π T a p∈P

(3.76)

Using the bounds provided by the minimum reduced cost and the κ condition on the sum of the variables, we have: ˆ≥ z − πT b

X

 ˆp λp , cp − π T a

p∈P

≥ r¯∗ (π)

X

λp ,

(3.77)

p∈P

≥ r¯∗ (π) κ. where the last inequality holds on account of the negativity of r¯∗ (π). Therefore, no matter the value of the objective function z, we have the condition: ˆ + r¯∗ (π)κ. z ≥ πT b

(3.78)

The condition (3.78) also holds for the optimal objective function value to the ∗ ˆ is simply the objective value of the master problem, that is, zMP . Since zB = π T b basis at the current column generation iteration, we therefore have a lower bound

Theoretical Background

62 ∗ (zLB ) on zMP at each call to the column generation routine: ∗ zLB = zB + κ¯ r∗ ≤ zMP

ˆ (where zB = π T b).

(3.79)

The lower bound information provided by (3.79) can be calculated at each call to the column generation routine at any node in the branch-and-price tree.16 When the current value of zB corresponds to an integer feasible solution, column generation can be terminated as soon as ceil(zLB ) ≥ zB . When this condition occurs at a node, generating further columns does not improve upon the lower bound information. This observation can also be advantageous for ameliorating the tailing-off effect: ∗ the slower convergence of zB to zMP as the gap between them gets smaller with further iterations of the column generation routine (Herbers [67]).17 It is also noteworthy that at any iteration in a column generation routine, the current value of the objective function of the restricted master problem (zB ) pro∗ vides an upper bound on the optimal solution to the full master problem (zMP ). Therefore, at any iteration in a column generation routine, lower and upper bound information on the master problem is given through: ∗ zB + κ¯ r∗ ≤ zMP ≤ zB .

(3.80)

The optimal objective to the original integer problem (3.69), which we denoted P by z ∗ , will be bounded above by zB whenever the variables x = p∈P λp xp are integral (recall that we are now considering a single set for the solution space). This upper bound is denoted by zUB . Thus, the current solution zB does not always pro∗ vide a valid upper bound on the optimal integer solution. However, since zMP ≤ z∗, 16 When we have a block diagonal structure P with separate constraint segments for k ∈ K, the current basic solution is given by zB = π T b + k∈K π0k , where π0k is the dual variable associated with the k-th convexity constraint. The lower bound on the objective function can then be computed P as zLB = zB + k∈K r¯k∗ , where r¯k∗ is the minimum negative reduced cost for the k-th subproblem. See Lasdon [82] for more details. 17 The tailing-off effect refers to a phenomenon whereby the dual variables oscillate, that is, exhibit non-smooth behaviour, as columns are added to the restricted master problem. In order to counter the inefficiencies produced by the non-smooth development of the dual variables, du Merle et al. [41] proposed stabilized column generation. The key principle is to confine the dual solution to a box, which may be violated at a defined penalty cost. The dimensions of the box and the incurred penalty cost are then updated dynamically as new information comes to hand [85]. For recent developments in the application of stabilization techniques in column generation, see Pessoa et al. [99]. Stabilization techniques are examples of column generation acceleration strategies which have been studied in the literature. Recent advancements in the development of acceleration strategies include constraint aggregation techniques, which have been successfully applied to set partitioning models of bus driver scheduling (Elhallaoui et al. [44]).

3.7 Branch-and-Price for Integer Programs

63

Root Node xj ≤ floor ( j)

Infeasible

Feasible & Integer

xj ≥ ceil ( j)

Feasible & Pruned

Fig. 3.5 A branch-and-price tree. From the root node, a compact variable (xj ) with fractional value αj is selected for branching, with two descendent nodes created. Column generation is performed at each node to update the bounds information on the optimal objective value. When a branching decision leads to an infeasible solution, the node is discarded, while feasible integer nodes can be pruned by using the bounds information. then it follows that zLB is also a lower bound on z ∗ (Lübbecke and Desrosiers [85]). Thus, when conducting branch-and-price within this minimization scheme, we can update the upper bound on z ∗ whenever we find an improved integer-valued solution with objective zB . When the integer-valued upper bound is improved, an opportunity is given to prune other feasible integer nodes in the search tree. When the gap between the best lower bound zLB and the best integer-valued upper bound zUB is sufficiently small, and assuming that complementary slackness and feasibility conditions are satisfied, the branch-and-price procedure can be terminated. (See Figure 3.5 for a pictorial representation of a branch-price tree.)

3.7.4

Ryan-Forster Branching

A noteworthy strategy which utilizes compact variable branching within branchand-price is the method of Ryan and Foster [107].18 This branching rule applies to binary set partitioning integer programming problems, but it can also be extended to set covering problems.19 The branching rule can be described as follows. 18

For an example of where Ryan-Forster branching has been applied within the branch-and-price framework, see Vance et al. [119]. 19 The extension applies to constraints in a set covering formulation which are exactly satisfied [67].

Theoretical Background

64

Proposition 3.7.1 (Ryan-Forster). Let A be a 0-1 constraint matrix for a master set partitioning problem (compact formulation) with variables xk for all k ∈ K. Suppose we have a fractional solution to Ax = 1, that is, at least one component of x is fractional. Then there exist two rows of the master problem (call them r and s) such that: X

0
d(i) + w(i, j) then d(j) ← d(i) + w(i, j) pred(j) ← i end if return (d, pred) end procedure

3.9 Shortest Path Problems

3.9.4

75

Outline of Labelling Methods

While the shortest path problem for two distinct vertices in a directed graph can be naturally formulated as an integer program, the solution techniques applied to the problem will largely depend on the structure and features of the underlying network. Solution approaches based on dynamic programming, broadly known as labelling algorithms, have proved to be quite useful and successful for solving single-source shortest path problems.23 The labelling approaches can be separated into two categories: label-setting methods and label-correcting methods. These methods are iterative processes, assigning cost labels to the vertices throughout the graph. Label-setting methods assign a permanent cost label to a vertex at a given iteration, while label-correcting methods assign improved tentative cost labels to the vertices at each iteration, with the labels becoming permanent only when the entire process has terminated [1]. The label-correcting methods are more broadly applicable than their label-setting counterparts, but generally less efficient [1]. Label-correcting methods can be applied to networks with negative arc costs, which is not the case for all label-setting methods. However, some label-setting methods are able to efficiently handle graphs that contain non-negative cycles. A well-known label-setting algorithm is Dijkstra’s algorithm (see Dijkstra [39]). This algorithm is tailored to find the shortest path cost from the source vertex s to all other vertices in the network. The cost label associated with a vertex i ∈ V at any iteration is either permanent or temporary. If a cost label for a vertex is permanent, then it represents the shortest path cost from s to that vertex. Temporary labels, on the other hand, represent only an upper bound on the shortest path cost to a vertex. Dijkstra’s algorithm only applies to networks with non-negative arc costs and is able to handle cycles that occur within the graph.24 Dijkstra’s algorithm is not directly applicable to the graph structures encountered in this thesis, as these may contain negative arc weights. When negative arc weights are present in a graph, the label-correcting BellmanFord algorithm can be employed to solve the shortest path problem from the source 23

Leiserson et al. [86] states that all known algorithms for the problem of finding a shortest path between a pair of vertices in a graph have the same worst-case asymptotic runtime as single-source shortest path algorithms. 24 Solving a shortest path problem over a network containing negative cycles is harder than finding a shortest path through a network without negative cycles. In fact, the shortest path problem with negative cycles is an N P-complete problem (see Ahuja et al. [1]).

Theoretical Background

76

vertex s to all other vertices. (The Bellman-Ford algorithm is based on the work of Bellman [14] and Ford and Fulkerson [51].) The algorithm can also output a boolean value B, which indicates whether the graph in question (G) contains a cycle with net negative arc weight which is reachable from the source vertex s (see Algorithm 6). When a negative cycle is present which can be reached from s, then no vertex on the cycle can be a shortest path, because we can loop around the cycle as many times as we like and always end up with a path of lower weight. Hence, if there is a path from s to a vertex i passing through a negative-weight cycle, then the shortest path weight is −∞ [86]. The Bellman-Ford algorithm is given by the B ELLMAN -F ORD procedure, given in Algorithm 6. Algorithm 6 Bellman-Ford shortest path 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16:

Input: A directed graph G = (V, A) with weight function w and a source s ∈ V procedure B ELLMAN -F ORD(G, w, s) (d, pred) ← INITIALIZE(G, s) for k = 1 to |V | − 1 do ◃ This is an outer loop of size |V | − 1. for (i, j) ∈ A do ◃ The inner loop hits each arc in the graph. (d, pred) ← R ELAX(i, j, w, d, pred) end for end for B ← TRUE ◃ Initialize a boolean for the algorithm to return. for (i, j) ∈ A do ◃ Check if the graph contains a negative weight cycle. if d(j) > d(i) + w(i, j) then B ← FALSE end if end for return B end procedure

3.9.5

Shortest Paths in Directed Acyclic Graphs

The possibility of a negative cycle existing in a directed graph is precluded for graphs without negative edge weights and, by definition, directed graphs which do not contain any cycles [29]. Shortest paths on graphs without negative edge weights can be computed with Dijkstra’s algorithm, even if the graph contains cycles. The networks of interest in this thesis do not belong to this class, as they permit the possibility of negative edge weights. However, every shortest path network encountered in this thesis can be constructed as a directed graph without cycles, that

3.9 Shortest Path Problems

77

is, a directed acyclic graph (DAG). The structure of a directed acyclic graph possesses an important quality: it allows the shortest paths to be computed in linear time through a topological ordering (or topological sorting) of the graph’s vertices. A topological ordering is defined as follows. Definition 3.9.1 (Topological Ordering). A topological ordering of a directed acyclic graph G = (V, A) is an ordered list of the vertices of V such that, for every arc (i, j) ∈ A, the index of i in the list is less than the index of j in the list. A topological ordering of a DAG imposes a linear ordering on the vertices. This means that if a DAG contains a path from vertex i to vertex j, then the index of i precedes the index of j in the topologically ordered list of vertices [86]. With a topologically sorted list of vertices of a directed acyclic graph G, the shortest path weights to all reachable vertices can be obtained by visiting the vertices in sorted order and applying the edge relaxation procedure [29]. Thus, we require a routine to obtain a topologically sorted list of a DAG. This can be achieved by applying a depth-first search algorithm to the graph G. We will therefore briefly outline how a depth-first search on a graph is performed and how the result can be used to topologically order the vertices of the graph. The idea behind depth-first search is to find all the vertices in a graph that can be reached from a specified starting vertex [29]. In our case, we are interested in all the vertices that can be reached from the graph’s source vertex. The search also creates a predecessor subgraph (possessing a tree or forest structure) which stores the paths from the source vertex to all reachable vertices. As its name suggests, the depth-first search strategy is designed to push deeper into the graph whenever it is possible to do so [86]. The strategy continues the search deeper into the graph from the most recently discovered vertex which still possesses unexplored outgoing arcs. When all the outgoing arcs of the most recently discovered vertex j have been explored, we say that j is finished, and the search backtracks to the vertex from which j was reached, say i. The strategy is repeated from i and continues on in the same manner until all vertices reachable from the source vertex have been explored. Depth-first search utilizes a colouring scheme to specify the state of the vertices as the search is performed. The colours used are white, grey and black.25 Initially, all vertices are undiscovered and are coloured white. When a vertex is discovered by the search for the first time, its colour is changed from white to grey. Once a vertex 25

This colouring scheme is used by Leiserson et al. [86].

Theoretical Background

78

has been discovered by the search, and all its outgoing arcs have been explored (that is, the adjacent vertices have been discovered), then its colour is changed from grey to black, and the state of the vertex is changed to finished. In addition to the colouring scheme which keeps track of the vertex states, the depth-first search algorithm applies two timestamps to each vertex. A vertex i is timestamped when it has been discovered for the first time (that is, changes from white to grey), and the time at which this occurs is denoted by first(i). Once all the outgoing arcs of i have been explored and its state changes to black, the vertex is timestamped again with a value denoted by last(i). Since each vertex is discovered exactly once and finished exactly once, we can use integers in the range 1 to 2|V | to timestamp the vertices [86]. The pseudocode for the complete depth-first search procedure is given by Algorithm 8 which utilizes the sub-routine DFS-V ISIT found in Algorithm 7. Algorithm 7 Depth-first search visit 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16:

Input: A vertex i ∈ V from a directed graph G = (V, A), a vertex colour colour(i), a predecessor set pred, a time-stamp "time" procedure DFS-V ISIT(G, i, colour(i), pred, time) colour(i) ← GREY ◃ i changes to GREY once it has been discovered. time ← time + 1 first(i) ← time for j ∈ A+ (i) do ◃ Explore edge (i, j) if colour(j) = WHITE then pred(j) ← i DFS-V ISIT(G, j, colour(j), pred, time) end if end for colour(i) ← BLACK ◃ i changes to BLACK after post-discovery processing. time ← time + 1 last(i) ← time return (first(i), last(i), colour(i), pred, time) end procedure

Having outlined the depth-first search strategy, we return to the issue of performing a topological ordering of the vertices of a DAG. Simply stated, the topologically sorted vertices of a DAG can be stored in a linked list according to the reverse order of their finishing times in a depth-first search [29]. The vertex with the smallest finishing time is the sink node (no outgoing arcs), and therefore comes last in the list. Similarly, the vertex with the greatest finishing time is the source vertex

3.9 Shortest Path Problems

79

Algorithm 8 Depth-first search 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15:

Input: A directed graph G = (V, A) and a predecessor set pred procedure DFS(G, pred) for i ∈ V do colour(i) ← WHITE pred(i) ← NULL end for time ← 0 for i ∈ V do if colour(i) = WHITE then (first(i), last(i), colour(i), pred, time) ← DFS-V ISIT(G, i, colour(i), pred, time) end if end for return (last, pred) end procedure

(no incoming arcs) and appears first in the list [29]. Leiserson et al. [86] states that this procedure can be accomplished in Θ(|V | + |A|) time, since depth-first search runs in Θ(|V | + |A|) time, and it takes O(1) time to insert each vertex into the linked list. The pseudocode for the topological ordering of a DAG’s vertices can be found in Algorithm 9. Algorithm 9 Topological ordering 1: 2: 3: 4: 5: 6: 7:

Input: A directed graph G = (V, A) and a predecessor set pred procedure T OPOLOGICAL(G, pred) Create a linked list: LIST (last, pred) ← DFS(G, pred) As each vertex is finished according to last, add it to the head of LIST return (LIST, pred) end procedure

After creating a topologically ordered list of the vertices of a DAG, the shortest paths from the source vertex to all reachable vertices can be computed by processing each vertex in order. Processing a vertex means that the edge relaxation routine is performed on all outgoing arcs from a vertex. This is summarized in the final shortest path procedure DAG-SP in Algorithm 10. The runtime of this final procedure is also Θ(|V | + |A|) (Leiserson et al. [86]).

Theoretical Background

80

Algorithm 10 Shortest path on a directed acyclic graph 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:

Input: A directed graph G = (V, A) with weight function w, a source s ∈ V and a sink τ ∈ V procedure DAG-SP(G, w, s, τ ) (d, pred) ← I NITIALIZE(G, s) (LIST, pred) ← T OPOLOGICAL(G, pred) for i ∈ LIST do ◃ i taken from the head of LIST. for j ∈ A+ (i) do (d, pred) ← R ELAX(i, j, w, d, pred) end for end for p ← G ET PATH(pred, s, τ ) δp (s, τ ) ← w(p) return (p, δp (s, τ )) end procedure

Chapter 4 Patrol Boat Routing and Scheduling with Replenishment: Part I 4.1

Preface

This chapter begins our discussion of the problem of routing and scheduling a fleet of resource-constrained patrol boats in such a way as to provide complete coverage to a set of maritime patrol regions. The discussion and analysis of this problem is continued in Chapter 5 and Chapter 6. The problem’s exposition in this thesis naturally divides into three parts: modelling, algorithms and complexity. This chapter, part I of the column generation approach, is primarily concerned with introducing the context for the problem and outlining the construction of a network model, a linear programming formulation for the application of column generation and the pricing subproblems. Chapter 5, part II of the column generation approach, deals with the computational aspects of the column generation algorithms and reports on integer solutions via a branch-and-price framework. Finally, Chapter 6 provides a theoretical framework for the computational complexity analysis of the problem.

4.2

Introduction

A possible requirement of a patrol boat fleet is to provide complete coverage of a set of stipulated maritime patrol regions, that is, at least one patrol boat must be on station in each patrol region at any given time. Such a requirement is complicated by the fact that each patrol boat cannot perform patrol operations indefinitely. Be-

Patrol Boat Routing and Scheduling with Replenishment: Part I

82

fore a maximum operational time has expired, a patrol boat must return to a port for a mandatory resource replenishment break, which may be indicative of crew layover time or refuelling.1 Once a boat has been replenished, it is then available to resume patrol operations. This problem has been referred to as the Patrol Boat Scheduling Problem with Complete Coverage (PBSPCC) [21]. An illustration of the problem is provided in Figure 4.1. A patrol region is defined by a single geographical location, representative of a more expansive maritime patrol area. The diagram indicates that a patrol boat can be in any one of four mutually exclusive states: patrol, transit, replenishment or idle. A patrol boat consumes resources at a constant rate while on patrol or in transit, but does not consume resources while replenishing or idle at port.

Fig. 4.1 An illustration of a patrol operations network and the possible states of the patrol boats. The requirement is to have at least one patrol boat on station in each patrol region at all times. The pink shaded circles are indicative of maritime patrol regions, but a region itself is represented by a blue vertex. Ports are displayed as orange vertices. A purple loop indicates that a boat is replenishing at a port (layover), a brown loop indicates a boat at idle in port, and a blue loop implies that a boat is on active patrol. The black arcs represent feasible transit routes through the network and a red arrow is used to designate a boat in transit. In addition to having at least one patrol boat on station at all times, we may also like to create a patrol boat schedule which can be continued indefinitely (that is, 1

This is a resource-constrained optimization problem. A patrol boat consumes resources as it performs its duties, and therefore, must return to a port on a regular basis in order to replenish depleted resources. A patrol boat schedule must also be feasible with respect to the geographical network (consisting of the patrol regions and ports), the patrol boat capability (e.g. endurance, speed), and the duration of the mandatory replenishment break, which occurs when a patrol boat returns to port.

4.3 Concept Illustration through a Toy Problem

83

beyond the current planning horizon) and with as few patrol boats as possible. This amounts to finding a minimum size fleet of patrol boats which will ensure complete coverage of a set of nominated maritime patrol regions indefinitely. This particular rendering of the problem will be our main focus. We begin the discussion of the PBSPCC by considering the implications for covering a single patrol region indefinitely with a minimum number of patrol boats of a single class. This will assist in motivating certain conceptual features and will lay the foundation for the definition of the full problem.

4.3 4.3.1

Concept Illustration through a Toy Problem Out and Back with Idling

This section includes the derivation of a simple analytical formula to calculate the amount of coverage a patrol boat can supply to a patrol region if its duty is to simply leave port, patrol, return-to-port, replenish, and continue in a cyclical manner indefinitely. The calculation of a patrol boat’s ability to supply coverage to a patrol region naturally leads to calculating the minimum number of boats required to supply that patrol region with complete coverage indefinitely. The concept is illustrated in Figure 4.2. Parts (a) − (d) of Figure 4.2 depict the various duties of a patrol boat for the present scenario.

(a)

(c) Transit Out

(b)

Transit Back

(d) Patrol

Replenish

Fig. 4.2 (a) The boat leaves port and transits to the patrol region. (b) The boat spends some time on patrol. (c) The boat transits back to port. (d) The boat spends time at port to replenish resources. Let the economical speed of a patrol boat be vE (knots), with economical speed endurance RE (nautical miles) and idle endurance TI (hours). The resource con-

84

Patrol Boat Routing and Scheduling with Replenishment: Part I

sumption at economical speed is uE (per hour), and at idle speed is uI (per hour). The resource consumption per hour at economical speed is uE = vE /RE . The resource consumption per hour at idle speed is uI = 1/TI . When a patrol boat is on station, it may spend a proportion p of the total patrol time at economical speed, and a proportion (1 − p) at idle speed. Under this assumption, the resource consumption per hour on patrol (uP ) is therefore: uP = puE + (1 − p)uI =

pvE TI + (1 − p)RE . RE TI

(4.1)

If d is the distance from the port to the patrol region, then the total transit time for a round-trip at economical speed is given by TT = 2d/vE . At economical speed, the patrol boat can travel no further than the economical speed endurance, which implies that d ≤ 12 RE . We assume that a patrol boat will exhaust its total resource capacity (determined from the economical speed endurance) on a round-trip patrol mission. This condition can be expressed mathematically as follows: (4.2)

uP TP + uE TT = 1. Thus, on rearragning (4.2) and writing uE = vE /RE , we get: 1 TP = uP



vE TT 1− RE

 .

(4.3)

On substituting (4.1) into (4.3), the time spent on patrol is given by: TP =

(RE − vE TT ) TI . pvE TI + (1 − p)RE

(4.4)

When p = 1, there is no idling on patrol, and the maximum patrol time is: TPno idle =

RE − TT . vE

(4.5)

When p = 0, there is continuous and unabated idling on patrol, and the maximum patrol time becomes:   vE idle TP = TI 1 − TT . (4.6) RE The mission length for a patrol vessel (TM ), is the sum of the total transit time (TT ), the patrol time (TP ) and the replenishment time alongside at port (TR ), that is:

4.3 Concept Illustration through a Toy Problem

TM = TT + TP + TR .

4.3.2

85

(4.7)

Example

For further clarity of the concept illustration, we present a numerical example of the model presented in the previous subsection. The example assumes that we have one patrol region which is 310 nautical miles from port. At an economical speed of 15 knots, this equates to 48 hours of transit time in a round trip. Given the endurance limitations of a patrol boat and the allowable idle time on patrol, we can determine how many boats are required to cover the patrol region. Assume that the specifications of a patrol boat are as follows: • • • • • •

RE = 1000 nautical miles, vE = 15 knots, TR = 12 hours, TT = 48 hours, TI = 480 hours, p = 50%.

The resource usage per hour at economical speed is: uE =

15 knots = 0.015 units per hour. 1000 nautical miles

(4.8)

The resource usage per hour at idle speed is: uI =

1 = 0.002 units per hour. 480 hours

(4.9)

If a patrol boat spends 50% of its time at idle while on patrol, then the resource usage per hour is given by: uP = puE + (1 − p)uI , = (0.50 × 0.015 + 0.50 × 0.002) units per hour,

(4.10)

= 0.0085 units per hour. The patrol time is determined from: TP =

1 (1 − uE TT ) ≈ 33 hours. uP

(4.11)

86

Patrol Boat Routing and Scheduling with Replenishment: Part I

Thus, a patrol boat can spend approximately 33 hours in the patrol region before returning back to port if it spends 50% of its patrol time at idle. The % patrol coverage is defined as the ratio of the patrol time (TP ) and the total mission time (TM ), where TM = TT + TP + TR . For this example, we calculate the patrol coverage as follows: TP TP 33 hours = = ≈ 35%. TM TT + TP + TR 93 hours

(4.12)

The minimum number of patrol boats (kmin ) required for complete patrol coverage is determined from the ’ceiling’ function of the inverse patrol coverage ratio. In other words, we take the ratio of the mission time to the patrol time and round-up to the nearest integer. For this example, we get: 

kmin

TM = TP





 93 hours = = ⌈2.8⌉ = 3. 33 hours

(4.13)

Therefore, with 35% patrol coverage, three patrol boats will be required to supply the patrol region with complete coverage. Figure 4.4 and Figure 4.3 demonstrate some sensitivity plots for the current example. Figure 4.4 shows the sensitivity of the patrol coverage to the percentage of time spent at idle on patrol, assuming that any time spent at idle will contribute to the overall patrol effort. The secondary vertical axis on Figure 4.4 pertains to the number of boats required for complete coverage, and its corresponding plot behaves like a step-function. The same can be seen in Figure 4.3, which contains the sensitivity plots for endurance.

4.3.3

Summary

The model presented in this section may be used to obtain an upper bound on the number of patrol boats required for complete coverage of multiple patrol regions. Under this paradigm, each patrol region can be covered by a set of patrol boats stationed at the nearest port. This is a kind of greedy covering technique and is likely to overestimate the actual boat numbers that would emerge from a more sophisticated approach. In the next section, we move away from the single boat / port / patrol region model to a more comprehensive modelling framework, which better captures the complexity of multiple boats, ports and patrol regions.

4.3 Concept Illustration through a Toy Problem

87

Coverage / Numbers vs. Endurance 6

90%

Coverage

80%

Numbers

70%

5 4

60% 3

50% 40%

2

30% 20%

Number of Boats

Patrol Coverage

100%

1

10% 0% 1,000

1,250

1,500

1,750

2,000

2,250

2,500

2,750

0 3,000

Economical Speed Endurance (nautical miles)

Fig. 4.3 Patrol coverage of a single boat and number of boats required for complete coverage as a function of endurance, assuming a generic boat with an economical speed of 15 knots, where the distance between the patrol region and port is 310 nautical miles. There is no idling on patrol in these solutions.

Coverage / Numbers vs. Idle Time 6

90%

Coverage

80%

Numbers

70%

5 4

60% 3

50% 40%

2

30% 20%

Number of Boats

Patrol Coverage

100%

1

10% 0% 0%

10%

20%

30%

40%

50%

60%

70%

80%

0 90% 100%

% Patrol Time at Idle

Fig. 4.4 Patrol coverage of a single boat and number of boats required for complete coverage as a function of idle time. This assumes a generic boat with an economical speed of 15 knots and endurance of 1,000 nautical miles. The distance between the patrol region and port is 310 nautical miles.

Patrol Boat Routing and Scheduling with Replenishment: Part I

88

4.4

Patrol Boat Operations Network

A patrol network is a directed graph GS = (VS , AS ), where the set of vertices VS = {1, . . . , n} represents the number of distinct spatial regions and AS is the set of directed arcs, that is, the set of feasible transitions (in space) between any two regions. The set of vertices is the union of two mutually exclusive sets, the set of ports Vport = {1, . . . , m} and the set of patrol regions Vpatrol = {m + 1, . . . , n}. The number of ports is m ≥ 1, where m < n, and the number of patrol regions is n − m. The set of patrol boats is given by K. For each patrol boat k ∈ K, we can define a set of vertices VSk ⊆ VS and a set of directed arcs AkS ⊆ AS , such that the subgraph GkS = (VSk , AkS ) defines the spatial network construction for patrol boat k ∈ K. Associated with each arc (p, q) ∈ AkS for all k ∈ K, is a positive and integervalued travel/transit time, which we denote tkpq ∈ Z+ .2 For each patrol boat, the transit times on the network GkS must satisfy the triangle inequality. That is, for k ∈ {0, 1} distinct p, q, r ∈ VSk , we have tkpq ≤ tkpr + tkrq . We also associate a boolean gpq to each pair of vertices p, q ∈ VSk , which takes the value 1 if there is an arc linking p to q for patrol boat k ∈ K and 0 otherwise. That is, k gpq

 1 if (p, q) ∈ Ak , S := 0 otherwise.

(4.14)

Patrol boats are forbidden from making transitions between any two distinct ports, k = 0. Patrol boats are also forbidden from so if p, q ∈ VSk ∩ Vport and p ̸= q, then gpq making looped transitions at a single spatial location, that is, making a transition k between a spatial location and itself. This entails that gpq = 0 if p = q for all k ∈ K. The endurance3 of a patrol boat k ∈ K is TEk ∈ Z+ . This is the maximum time that can be spent at economical speed. It is assumed that a patrol boat travels at economical speed when it is on patrol and when it is in transit.4 A patrol boat must return to a port before the duration of the total time spent at economical speed has reached the endurance threshold. Once returning to port, a patrol boat remains there for a mandatory replenishment break or layover time given by TRk ∈ Z+ . The planning period5 is T ∈ Z+ , where T ≥ TEk + TRk for all k ∈ K. 2

Note: integer-valued transit times are not mandatory, so long as all transit times can be expressed as integer multiples of the time discretization. 3 Also referred to as the maximum endurance. 4 Unlike the toy model illustration, no idle time on patrol is assumed. 5 Also referred to as the planning horizon or the scheduling horizon.

4.4 Patrol Boat Operations Network

89

The planning period is divided into discrete intervals of time, according to the discretization: Γ = {1, . . . , T }. For a given patrol region i ∈ Vpatrol , we require that there be a patrol boat on station for all time instances t ∈ Γ. We define a patrol period to be a pairing of a discrete time interval and the index denoting a patrol region, that is, a patrol period is an element of the set:  L := (i, t) | i ∈ Vpatrol , t ∈ Γ .

(4.15)

A set of activities A may be defined for each patrol boat k ∈ K. The set of activities consists of all possible states of a patrol boat. For our purposes, there exist four mutually exclusive states for the patrol boats, namely, on patrol, in transit, replenishing at port, at idle in port (waiting). Consider the mapping ω : K × Γ → (VS ∪ AS ) × A, which takes a patrol boat and time instance pair to either pairs of spatial arcs and activities or pairs of spatial locations and activities. The map ω is called a fleet schedule if it satisfies physical laws6 and respects the resource constraints on the patrol boats. The set of all permissible fleet schedules is denoted by Ω. For each fleet schedule ω ∈ Ω, we let size(ω) define the size of the set K′ ⊆ K of patrol boats which spend some non-zero time on active patrol.7 Consider the indicator mapping e : Ω × L → {0, 1}, where the mapping determines the patrol periods covered by a fleet schedule, that is:  1 if patrol period ℓ ∈ L is covered by fleet schedule ω ∈ Ω, e(ω, ℓ) := 0 otherwise.

(4.16)

Let f (ω) be the number of patrol periods covered by schedule ω ∈ Ω, that is: f (ω) :=

X

e(ω, ℓ).

(4.17)

ℓ∈L

The maximum value of f over all ω ∈ Ω is simply |L|, the total number of patrol periods. Let Ω′ be the set of all fleet schedules which satisfy the complete coverage requirement, that is: Ω′ := {ω ∈ Ω | f (ω) = |L|} . (4.18) 6

For example, boats can undertake transitions along directed arcs according to consecutive time steps. 7 That is, each patrol boat k ∈ K′ makes an actual contribution to the aggregate patrol coverage.

90

Patrol Boat Routing and Scheduling with Replenishment: Part I

An optimal fleet schedule ω ∗ is one which covers every patrol period (ω ∗ ∈ Ω′ ) such that size(ω ∗ ) is a minimum. That is, an optimal fleet schedule is a member of the set Ω∗ , defined by: Ω∗ := {ω ∗ ∈ Ω′ | size(ω ∗ ) ≤ size(ω), ∀ω ∈ Ω′ } .

4.5

(4.19)

Resource-Space-Time (RST) Network

In this thesis, we have chosen a modelling paradigm for the column generation subproblems which permits the application of a pure shortest path algorithm over a directed acyclic graph. However, given that the PBSPCC is resource-constrained, that is, the boats must return to port on a regular basis for resource replenishment, considerable care has to be taken in designing a sensible subproblem network structure which allows for an efficient solution algorithm. The approach, therefore, is to transform each spatial subgraph into a directed acyclic graph which implicitly accounts for the resource consumption and replenishment of a patrol boat through space and time. We call such a directed acyclic graph a Resource-Space-Time (RST) network. We outline the main features of the RST network design, in particular, the notion of a patrol region’s resource depth. The column generation subproblem is formulated over a resource and time expanded network for the following reasons: (a) We can utilize the linear runtime efficiency of shortest path algorithms over a directed acyclic graph structure. (b) The RST network structure works well with the heuristics developed for path permutation and rolling horizon solutions (see Chapter 5), insofar as the decision on the initial and final resource levels of the patrol boats is automatically determined by the subproblem. (c) If a different underlying graph structure were to be used with a resource-constrained shortest path problem, initial resource labels for the patrol boat paths would need to be generated, thus introducing more complexity to the subproblem. The patrol operations spatial network is made up of a set of patrol regions and ports. We define the set of all spatial locations as a set of regions, namely, port regions and patrol regions. Over the planning period, a patrol boat will be in some location and in some state at any given time, so there must be a way to account for this in the RST network design. For example, a patrol boat may be at a port region in a state of replenishment, or it may be on patrol, but with only a few units of resource

4.5 Resource-Space-Time (RST) Network

91

remaining. Therefore, to account for the locations of patrol boats and their states, we employ a layered network design consisting of vertices which represent points in space, time, and the amount of resource consumed. An illustrative depiction of an RST network can be found in Figure 4.5 (the details concerning the construction of an RST network will be outlined in the following subsections).

Planning Period

Source

Sink

Resource Depth

Patrol Replenish Idle

Port Region Transit

Dummy

Patrol Region 01 Patrol Region 02

Fig. 4.5 An illustrative example of an RST network.

In the context of solving the column generation subproblems for a heterogeneous fleet of patrol boats, an RST network must be constructed for each class of patrol boat, that is, all boats having the same endurance and replenishment break duration. However, it must be ensured that the time discretization is consistent across all the RST networks in order for the column generation master problem to keep track of how the patrol periods are covered. This should become clearer once the column generation master problem is introduced.

Patrol Boat Routing and Scheduling with Replenishment: Part I

92

4.5.1

Ports

A port region is represented by two layers of vertices (e.g. the top two layers of vertices in Figure 4.5). Transitions along the bottom layer are indicative of a patrol boat idle at port. There is no resource consumption for transitions over arcs on a port region’s bottom layer, and any transition arcs connecting the port region to patrol regions will emanate from the bottom layer. Transitions between the top layer and the bottom layer of a port region represent the duration of the resource replenishment break. All transition arcs from patrol regions to a port region will terminate at the top layer so that resource consumption can be properly tracked. If the replenishment time for a patrol boat is quite small compared to the time discretization, then the top layer can simply be omitted and the port region reduced to a single layer. (See Figure 4.6 for a more detailed illustration of the vertices and arcs characterizing a port region.)

Port Region

Sink

Source Transit (outgoing)

Replenish

Transit (incoming)

Idle

Fig. 4.6 Port region within an RST network. The RST network paradigm can account for multiple port regions. We choose to omit direct transitions of patrol boats between port regions, but place no restrictions on where a patrol boat may begin or end its journey or where it may undertake resource replenishment. To that end, we include a dummy source vertex and dummy sink vertex to the network, so that the determination of the start and end positions of a patrol boat’s path is left to the column generation subproblem.

4.5.2

Patrol Regions

A patrol region will typically contain more layers of vertices than a port region, as the layers defining a patrol region correspond to resource consumption (see Fig-

4.5 Resource-Space-Time (RST) Network

93

ure 4.5). The number of layers then, is contingent on the maximum amount of time a patrol boat may spend at a patrol region before replenishing resources. The maximum time a boat can spend at a patrol region before it needs to replenish depends on the proximity of the closest port and the patrol boat endurance. Any arc which is internal to a patrol region moves forward one unit of time and one unit of resource (that is, the amount of resource consumed by a boat in one unit of time at economical speed). Arcs internal to patrol regions are termed patrol arcs, and we define a patrol period to be the set of patrol arcs which begin at the same time in a given patrol region, but which have differing cumulative levels of resource consumption. To achieve complete coverage over the entire planning horizon, we require that each patrol period be covered by at least one patrol boat. This means that at least one patrol arc in each patrol period must be used by at least one patrol boat.

4.5.3

Feasible Transitions between Patrol Regions

Feasible transitions between individual patrol regions must be considered in the design of an RST network and these are required to keep track of the resource consumption levels. Hence, on making a feasible transition, a patrol boat’s cumulative resource consumption upon arrival at a destination patrol region must be accounted for. A method is therefore required to map the resource value at the origin to the destination. We thus propose a straightforward analytical method to handle the resource consumption for feasible transitions through the RST network. For each patrol region, the proximity of the nearest port is used to calculate the k,i resource depth (that is, the number of layers). For i ∈ Vpatrol , let Rmin be the transit time to the nearest port for boat k. For patrol boat k ∈ K we denote the resource depth of patrol region i as Nik , which is defined by: k,i Nik := TEk − 2Rmin .

(4.20)

The resource layers for patrol region i are then defined by the set: Dik := {0, 1, . . . , Nik }.

(4.21)

Consider a boat patrolling at region i at some a ˆ ∈ Dik and at time t ∈ {0} ∪ Γ. We would like to determine if it is possible for the boat to make a transition to patrol

94

Patrol Boat Routing and Scheduling with Replenishment: Part I

region j, with required transit time tkij . Firstly, if t + tkij > T , then there is not enough time remaining in the planning period to undertake this transition, and therefore, the transition can be ruled out. However, if t + tkij ≤ T , then we need to check whether the boat in question is adequately resourced to undertake the transition from region i to j. For a ˆ ∈ Dik , let the resource level of boat k ∈ K be given by Rik (ˆ a), where Rik (ˆ a) ≥ k,i Rmin and: k,i Rik (ˆ a) = TEk − a ˆ − Rmin . (4.22) Upon making the transition to region j, the boat will arrive at some ˆb ∈ Djk , where the resource level must be given by: a) − tkij . Rjk (ˆb) = Rik (ˆ

(4.23)

k,j , we have: Using the fact that Rjk (ˆb) = TEk − ˆb − Rmin k,j k,i TEk − ˆb − Rmin = TEk − a ˆ − Rmin − tkij .

(4.24)

Solving the above equation for ˆb yields: k,i k,j ˆb = a ˆ + Rmin + tkij − Rmin .

(4.25)

k,j If ˆb ≤ Njk , where Njk = TEk − 2Rmin , then the transition is feasible. Otherwise, the patrol boat is not adequately resourced to make the transition from region i to j. The transition test is summarized in Algorithm 11.

Algorithm 11 PBSPCC: RST network transition test 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:

Input: A resource layer value a ˆ ∈ Dik for some k ∈ K, i ∈ Vpatrol and t ∈ {0} ∪ Γ, and a patrol region j ∈ Vpatrol (i ̸= j) if t + tkij > T then return FALSE else k,i k,j ˆb ← a ˆ + Rmin + tkij − Rmin if ˆb > Njk then return FALSE else return TRUE end if end if

4.5 Resource-Space-Time (RST) Network

95

Given an initial condition for patrol boat k ∈ K at patrol region i, the procedure in Algorithm 11 returns a TRUE value if a feasible transition can be made at time t to region j. If no feasible transition exists, then the procedure returns a FALSE value. In order to illustrate the feasible transition states in the RST network design, we provide the following example for a single class of boat (hence, the k indices will be dropped). Consider an RST network containing one port and two patrol regions. The port is labelled by the digits 00, and the patrol regions are referred to as region 01 and region 02. The travel time between 00 and 01 is 2 time units, while the travel time is 1 time unit between 00 and 02 (and vice versa). The transit time between regions 01 and 02 is 2 time units (and vice versa). 5

Region 01: R01min = 2 time units

4

Resource level for Region 01

3 2 Patrol boat endurance = 7 time units.

6 Region 02: R02min = 1 time unit

Transit time: 01 - 02 = 2 time units.

5 4 3

Resource level for Region 02

2 1 Time

Fig. 4.7 A partial RST network illustrating a selection of feasible transitions. Not all transitions are shown, nor is the entire network shown. Assume we have a patrol boat endurance of TE = 7 time units for the RST network. Using the given data, we can calculate the depth of each patrol region via

Patrol Boat Routing and Scheduling with Replenishment: Part I

96

i Ni = TE − 2Rmin as follows:

N{01} = 7 − 2 × 2 = 3,

N{02} = 7 − 2 × 1 = 5.

(4.26)

This entails that region 01 will consist of N{01} + 1 = 4 layers, and region 02 will consist of N{02} + 1 = 6 layers. Figure 4.7 illustrates the set of possible feasible transitions from region 02 to 01 at time t = 1, and from region 01 to 02 at t = 4. The numbers down the righthand-side of the diagram show the resource level (resource remaining). The grey arcs show the feasible transitions and the black arcs represent the patrol arcs. Note that transitions between region 01 and 02 cannot take place from the bottom layer of region 01. Similarly, transitions between region 02 and 01 are forbidden for the bottom three layers of region 02.

4.5.4

Feasible Transitions from Patrol Regions to Ports

Continuing on from previous subsection, a feasible transition between a patrol region and a port can only take place if the boat is adequately resourced. Recall that the resource level (that is, the amount of resource remaining) for some a ˆ ∈ Dik k,i must satisfy Rik (ˆ a) ≥ Rmin . Therefore, provided that a connectivity link exits in the network’s adjacency matrix, a feasible transition for patrol boat k ∈ K between a) ≥ tkij , where tkij is the travel time i ∈ Vpatrol and j ∈ Vport (i ̸= j) will exist for Rik (ˆ for patrol boat k from patrol region i to port j.

4.6

Arc Based Integer Programming Formulation

In this section, we introduce an integer programming formulation of the PBSPCC based on the RST network construction outlined in the previous section. Although the PBSPCC is concerned with minimizing the fleet size while satisfying the complete patrol coverage requirement indefinitely, the initial integer programming formulation will be constructed in a slightly different manner. The integer programming formulation that we present here assumes a minimum non-patrol time objective function over a finite planning horizon T . The reasons for this approach will be made clearer in this section, as well as Section 4.10 and Chapter 5. Each spatial subgraph GkS = (VSk , AkS ) (refer to Section 4.4) can be transformed

4.6 Arc Based Integer Programming Formulation

97

into an RST network GkR = (VRk , AkR ) for each k ∈ K. The set of patrol arcs is Akpatrol ⊆ k AkR . The set of patrol arcs in patrol region i ∈ Vpatrol is Ak,i patrol ⊆ Apatrol . The set of patrol arcs in patrol period ℓ ∈ L is expressed as Akpatrol (ℓ) ⊂ Ak,i patrol , where ℓ = (i, t) for some t ∈ Γ. The total set of patrol arcs for patrol boat k ∈ K is given by: Akpatrol =

[

Ak,i patrol =

i∈Vpatrol

[

Akpatrol (ℓ),

∀k ∈ K.

(4.27)

ℓ∈L

The set of arcs in each RST network is a union of mutually exclusive sets. Each of these sets defines a state in which a patrol boat may be found. These are idle, transit, patrol, replenish and dummy.8 Hence, the set of arcs for a patrol boat’s RST network representation can be written as: AkR =

[

Akϕ ,

∀k ∈ K,

ϕ∈Φ

where,

(4.28)

Φ := {idle, transit, patrol, replenish, dummy}.

The decision variables relate to the arcs traversed through each RST network: xkuv

 1 if patrol boat k ∈ K uses arc (u, v) ∈ Ak , R := 0 otherwise.

(4.29)

For each RST network, we let tkuv ∈ Z+ be the transit time of traversing arc (u, v) ∈ AkR . For each v ∈ VRk , let Ak+ (v) be the set of all arcs with tail at v, that is, the set of all (v, w) ∈ AkR for fixed v ∈ VRk and k ∈ K.9 Similarly, let Ak− (v) be the set of all arcs with head at v, that is, the set of all (u, v) ∈ AkR for fixed v ∈ VRk and k ∈ K.10 For the source and sink vertices (s and τ , respectively), we also include a dummy arc (s, τ ) ∈ AkR , which is excluded from Ak+ (s) and Ak− (τ ). Note that Ak− (s) = Ak+ (τ ) = ∅, tksτ = 0 for all k ∈ K, tksv = 0 for all (s, v) ∈ Ak+ (s) and for all k ∈ K, and tkuτ = 0 for all (u, τ ) ∈ Ak− (τ ) and for all k ∈ K. The transit time incurred over the arc (u, v) ∈ AkR is tkuv , and as the k superscript indicates, the travel time is dependent on the type of patrol boat under consideration in the network construction. The exception to this is for arcs (u, v) ∈ Akpatrol , where the arc transit time, tkuv = tuv , is independent of k and equal to the time 8

Dummy arcs are those that emanate from the source s and terminate at the sink τ . The set of directed arcs which proceed/emanate from v. 10 The set of directed arcs which terminate at v. 9

Patrol Boat Routing and Scheduling with Replenishment: Part I

98 discretization.

The arc based integer programming formulation of the PBSPCC is written as: minimize subject to

X

X

k∈K

(u,v)∈AkR \Akpatrol

X

tkuv xkuv ,

X

(4.30)

xkuv ≥ 1,

∀ℓ ∈ L,

(4.31)

xksv = 1,

∀k ∈ K,

(4.32)

∀k ∈ K, ∀v ∈ VRk \{s, τ },

(4.33)

∀k ∈ K,

(4.34)

k∈K (u,v)∈Ak

(ℓ) patrol

X (s,v)∈Ak+ (s)∪{(s,τ )}

X

X

xkuv =

(u,v)∈Ak− (v)

xkvw ,

(v,w)∈Ak+ (v)

X

xkuτ = 1,

(u,τ )∈Ak− (τ )∪{(s,τ )}

X

X

tkuv xkuv ≥ |L|,

(4.35)

k∈K (u,v)∈Ak

patrol

X

X

tkuv xkuv ≥ T,

∀i ∈ Vpatrol ,

(4.36)

k∈K (u,v)∈Ak,i

patrol

X

X

tkuv xkuv ≥ cmin ,

(4.37)

k∈K (u,v)∈Ak \Ak R

X

X

k∈K

(s,v)∈Ak+ (s)

patrol

xksv ≥ κmin ,

(4.38)

xkuv ≥ 0,

∀k ∈ K, ∀(u, v) ∈ AkR ,

(4.39)

xkuv ∈ {0, 1},

∀k ∈ K, ∀(u, v) ∈ AkR .

(4.40)

The objective function (4.30) defines the total cost for the patrol boats, which is equal to the aggregate time not spent on patrol. The goal is, therefore, to minimize the objective function while simultaneously satisfying the constraints (4.31) − (4.40). When the PBSPCC is constructed in this way, the aim is to achieve complete patrol coverage while minimizing the total effort given to non-patrol activities. Under certain circumstances, it can be shown that a solution to this minimum non-patrol time problem is also a solution to the problem of achieving complete coverage with a minimum number of patrol boats (the minimum fleet size problem).11 This latter problem can be constructed with constraints (4.31) − (4.40) and 11

This will be proved in Section 4.10. The minimum non-patrol time formulation is preferred to that of the minimum fleet size problem due to its superior column generation performance.

4.6 Arc Based Integer Programming Formulation

99

the objective function (4.30) replaced by an expression for the number of patrol boats which leave the source vertex along any arc except (s, τ ):12 minimize

X

X

k∈K

(u,v)∈Ak+ (s)

xkuv ,

(4.41)

subject to (4.31) − (4.40). Constraints (4.31) stipulate that each patrol period ℓ ∈ L must be covered by at least one patrol boat. Constraints (4.32) − (4.34) relate to path feasibility throughout a patrol boat’s RST network. These constraints enforce each patrol boat path to begin at the source vertex (4.32) and end at the sink vertex (4.34), with the flow conservation (or mass-balance) (4.33) satisfied for intermediate vertices on nontrivial paths. The constraints (4.39) are non-negativity conditions on the flow of each boat over each arc in the network, while constraints (4.40) enforce binary flow for each boat over the arcs in the network. Constraints (4.35) − (4.37) relate to various inferred bounds which are valid inequalities for the formulation and are introduced to increase the efficiency of the solution algorithms. Constraint (4.35) is a bound on the aggregate patrol time supplied by all the patrol boats. In this constraint, |L| is the cardinality of the set of patrol periods. Since each patrol period ℓ ∈ L is defined with respect to a discrete unit of time, the cardinality of L is simply the theoretical minimum amount of patrol time that can satisfy the complete coverage requirement. Similarly, the constraints defined by (4.36) require that the minimum amount of patrol time supplied to each patrol region must be at least the length of the planning period T . Constraint (4.38) relates to a lower bound on the minimum number of patrol boats (κmin ) that are required to satisfy the complete coverage requirement. Similarly, constraint (4.37) places a bound on the objective function, in terms of the minimum amount of aggregate time (cmin ) that is spent in a state of non-patrol. (The derivation of κmin and cmin will be discussed in a Section 4.9.) The arc based integer programming formulation (4.30) − (4.40) is an appropriate context for the application of Dantzig-Wolfe decomposition. The decomposition approach relaxes the integrality requirements and reformulates the overall problem in terms of path variables through the RST network. We will see how this is performed in the next section. Another way to consider the minimum fleet size problem is to add a large cost c′ ∈ Z+ to each cost coefficient tksv , where (s, v) ∈ Ak+ (s) for all k ∈ K. 12

Patrol Boat Routing and Scheduling with Replenishment: Part I

100

4.7 4.7.1

Path Based Linear Programming Formulation Flow Decomposition

The Dantzig-Wolfe decomposition technique (introduced in Section 3.5) can be applied to the integer programming formulation (4.30) − (4.40). The Dantzig-Wolfe reformulation will result in a path based linear programming relaxation of the problem, thus laying the groundwork for the application of column generation. k

We begin by introducing the vectors xk ∈ {0, 1}|AR | ,13 and a set of bijective mappings:  (4.42) Ik : AkR → 0, . . . , |AkR | − 1 , where: xk = xkuv

 Ik (u,v)

,

∀k ∈ K.

(4.43)

According to the Minkowski-Weyl Theorem, the polyhedron defined by the convex hull (conv(Xk )) of: n o k Xk = xk ∈ {0, 1}|AR | | (4.32) − (4.34) ,

∀k ∈ K,

(4.44)

has extreme points (and possibly extreme rays) which correspond to paths and cycles through a patrol boat’s RST network. In the specific context of network flow problems, this is known as the Flow Decomposition Theorem (see Ahuja et al. [1]), which states that every path and cycle flow through a network has a unique representation as non-negative arc flows. As the RST nework construction is a timespace network, there are no cycles to be handled. In other words, the polyhedron defining (4.32) − (4.34) is bounded (that is, a polytope) and there are no extreme rays to be handled. An extreme point of the polytope conv(Xk ) therefore corresponds to a path p ∈ Pk through the RST network, where Pk is the set of all feasible paths from s to τ through GkR : Pk := {p | p is a path from s to τ through GkR },

13

The |AkR |-fold cartesian product of the set {0, 1}.

∀k ∈ K.

(4.45)

4.7 Path Based Linear Programming Formulation

101

An extreme point of conv(Xk ) is denoted by the vector: xkp = xkuvp

 Ik (u,v)

,

∀k ∈ K,

(4.46)

k

for some p ∈ Pk , where xkp ∈ {0, 1}|AR | and the components take values according to:  1 if patrol boat k ∈ K uses arc (u, v) ∈ Ak on path p ∈ P , k R k (4.47) xuvp := 0 otherwise. The extreme points of the convex hull’s polytope allow us to write the arc variables xk ∈ Xk in terms of the path variables as follows: xkuv =

X

xkuvp λkp ,

∀k ∈ K, ∀(u, v) ∈ AkR ,

(4.48)

λkp = 1,

∀k ∈ K,

(4.49)

∀k ∈ K, ∀p ∈ Pk .

(4.50)

p∈Pk

X p∈Pk

λkp ≥ 0,

4.7.2

Patrol Time

For a resource-feasible path p ∈ Pk through the RST network for patrol boat k ∈ K, we denote ckp ∈ Z+ to be the total time not spent on patrol. The total time spent on patrol is denoted by c¯kp ∈ Z+ . With this notation, we can write the length (duration) of the planning period T as follows: T = ckp + c¯kp ,

∀k ∈ K, ∀p ∈ Pk .

(4.51)

The total non-patrol time and patrol time for a patrol boat k ∈ K over a path p ∈ Pk can be expressed as follows: ckp :=

X

tkuv xkuvp ,

∀k ∈ K, ∀p ∈ Pk ,

(4.52)

(u,v)∈AkR \Akpatrol

c¯kp :=

X

tkuv xkuvp ,

∀k ∈ K, ∀p ∈ Pk .

(4.53)

(u,v)∈Akpatrol

We also define c¯kpi ∈ Z+ to be the total time spent on patrol by patrol boat k ∈ K

Patrol Boat Routing and Scheduling with Replenishment: Part I

102

in patrol region i ∈ Vpatrol , which is given by: X

c¯kpi :=

tkuv xkuvp ,

∀k ∈ K, ∀i ∈ Vpatrol , ∀p ∈ Pk .

(4.54)

(u,v)∈Ak,i patrol

4.7.3

Patrol Boats

Since each path p ∈ Pk begins at the source vertex s ∈ VRk and ends at the sink vertex τ ∈ VRk , we have: X (4.55) xksvp = bkp , ∀k ∈ K, ∀p ∈ Pk , (s,v)∈Ak+ (s)

where the bkp are binary parameters, given by:  1 bkp := 0

4.7.4

if patrol boat k ∈ K uses a non-trivial path p ∈ Pk , if patrol boat k ∈ K uses the trivial path p = (s, τ ) ∈ Pk .

(4.56)

Patrol Periods

For each parol period ℓ ∈ L, we have: X

xkuvp = akℓp ,

∀k ∈ K, ∀p ∈ Pk , ∀ℓ ∈ L,

(4.57)

(u,v)∈Akpatrol (ℓ)

where the akℓp are binary parameters, given by:  1 if patrol boat k ∈ K patrols ℓ ∈ L along path p ∈ P , k akℓp := 0 otherwise.

4.7.5

(4.58)

Inclusion of Additional Patrol Boat Bounds

We can also include bounds on the minimum number of patrol boats that are required to provide coverage to each patrol region over the planning horizon. For the complete coverage scenario in which the planning horizon T satisfies T ≥ TEk + TRk for all k ∈ K, there must be at least two distinct patrol boats which supply coverage to each region i ∈ Vpatrol . There may be circumstances in which it is beneficial to include such bounds. This will be discussed in Chapter 5.

4.7 Path Based Linear Programming Formulation

103

In order to create a bounds constraint for each patrol region, it useful to introk , where: duce the binary parameters υip  1 if patrol boat k ∈ K covers an arc (u, v) ∈ Ak,i along path p ∈ P , k patrol k υip := 0 otherwise. (4.59) k The parameters υip can be alternatively expressed through: ! X

k = I≥1 υip

tkuv xkuvp ,

∀i ∈ Vpatrol , ∀k ∈ K, ∀p ∈ Pk ,

(4.60)

(u,v)∈Ak,i patrol

where the indicator function I≥1 : R → {0, 1} is given by:  1 if x ≥ 1, I≥1 (x) := 0 otherwise.

(4.61)

k k In other words, if c¯kip > 0, then υip = 1, and if c¯kip = 0, then υip = 0. k , we have a set C of non-negative integers: Along with the binary parameters υip

C := {κi | κi ∈ Z+ , ∀i ∈ Vpatrol },

(4.62)

which can be included in the formulation of each patrol region’s bounds constraint. The κi are defined as lower bounds on the number of patrol boats which must supply coverage to each patrol region i ∈ Vpatrol . These lower bounds are optional for the formulation and are included here for the sake of completeness.

4.7.6

Inclusion of Flow Constraints for Source and Sink Arcs

According to the path based formulation arising from Dantzig-Wolfe decomposition of the arc based formulation, each source arc xksv and sink arc xkuτ can be written as a convex combination as follows: xksv =

X

xksvp λkp ,

∀(s, v) ∈ Ak+ (s), ∀k ∈ K,

(4.63)

xkuτ p λkp ,

∀(u, τ ) ∈ Ak− (τ ), ∀k ∈ K,

(4.64)

p∈Pk

xkuτ =

X p∈Pk

Patrol Boat Routing and Scheduling with Replenishment: Part I

104

P where we have λkp ≥ 0 for all k ∈ K and for all p ∈ Pk , and p∈Pk λkp = 1 for all k ∈ K. The above expressions can be incorporated into the master problem as non-negativity flow constraints. While initially redundant in terms of their dual information content, these constraints and their dual variables are employed later in Chapter 5 for path permutation and rolling horizon solutions. For the time being, it is enough to say that the explicit inclusion of non-negativity flow constraints for the source and sink arcs makes it easier to determine where each path begins and ends (once a solution has been found) by inspection of the master problem.

4.7.7

Master Problem

Returning to the arc based formulation of the PBSPCC (4.30) − (4.40), using (4.48) − (4.50) we can substitute xkuvp for xkuv , interchange the order of summation, and drop constraints (4.32) − (4.34). If we relax the integrality conditions by removing constraints (4.40), then there is no need to explicitly link xkuv to λkp through (4.48). The constraints pertaining to the flow over the source and sink arcs and the optional bounds for the boat numbers of each patrol region can also be included. This allows the relaxation of the arc based problem to be expressed in terms of the path flow variables (corresponding dual variables are indicated down the right-hand-side): minimize

XX

subject to

XX

ckp λkp ,

(4.65)

k∈K p∈Pk

akℓp λkp ≥ 1,

∀ℓ ∈ L,

[πℓ ]

(4.66)

[α]

(4.67)

k∈K p∈Pk

XX

c¯kp λkp ≥ |L|,

k∈K p∈Pk

XX

c¯kip λkp ≥ T,

∀i ∈ Vpatrol ,

[βi ]

(4.68)

k k υip λp ≥ κi ,

∀i ∈ Vpatrol ,

[ξi ]

(4.69)

ckp λkp ≥ cmin ,

[γ]

(4.70)

bkp λkp ≥ κmin ,

[ζ]

(4.71)

k [ηsv ]

(4.72)

k∈K p∈Pk

XX k∈K p∈Pk

XX k∈K p∈Pk

XX k∈K p∈Pk

X p∈Pk

xksvp λkp ≥ 0,

∀k ∈ K, ∀(s, v) ∈ Ak+ (s),

4.8 Reduced Costs X

105 xkuτ p λkp ≥ 0,

∀k ∈ K, ∀(u, τ ) ∈ Ak− (τ ),

k [ηuτ ]

(4.73)

λkp = 1,

∀k ∈ K,

[θk ]

(4.74)

p∈Pk

X p∈Pk

λkp ≥ 0,

∀k ∈ K, ∀p ∈ Pk .

(4.75)

The path based formulation given by (4.65) − (4.75) is the set covering DantzigWolfe linear relaxation (with additional bounds constraints) of the arc based formulation of the heterogeneous PBSPCC (4.30) − (4.40).

4.8

Reduced Costs

As a preliminary step to outlining the definition of the reduced costs and the subproblems for the heterogeneous PBSPCC, we introduce two useful mappings (functions) which associate patrol arcs to their respective patrol periods and patrol regions. This allows the reduced cost of a path to be expressed more succinctly. The following functions can are defined for all k ∈ K: φk : Akpatrol → L′ ,

ψk : Akpatrol → Vpatrol ,

(4.76)

where Vpatrol = {m+1, . . . , n} and L′ = {1, . . . , (n−m)T } is an index set of the patrol periods.14 Both φk and ψk are surjective functions for all k ∈ K. As each v ∈ VRk can be k,i }, represented by the triple (i, a ˆ, t), where i ∈ Vpatrol , a ˆ ∈ Dik = {0, . . . , TEk − 2Rmin and t ∈ Γ, we have: ψk (u, v) = i,

∀k ∈ K, ∀(u, v) ∈ Akpatrol , where v = (i, a ˆ, t), a ˆ ∈ Dik .

(4.77)

If (u, v) ∈ Akpatrol , where v = (i, a ˆ, t) and a ˆ ∈ Dik , then:

φk (u, v) =

14

 t

if i = m + 1,

(i − m − 1)T + t if i ∈ {m + 2, . . . , n}.

(4.78)

Recall that a patrol period ℓ ∈ L is a location-time pair (i, t). In a network with n − m locations and T time intervals, there are (n − m) × T patrol periods. Therefore, the set L′ simply assigns a unique integer to each ℓ ∈ L.

Patrol Boat Routing and Scheduling with Replenishment: Part I

106

Column generation assumes that paths of negative reduced cost through the RST networks can be determined from pricing subproblems. In this subsection, we derive the mathematical form of the reduced cost of a path p ∈ Pk for all k ∈ K. The form of the reduced costs will naturally lead to the definition of the pricing subproblems in the following subsection. The reduced cost r¯pk of a path p ∈ Pk is given by: r¯pk := ckp − π T Akp ,

∀k ∈ K, ∀p ∈ Pk ,

(4.79)

where π T is a row vector of the dual variables of the master problem (4.65) − (4.75), Akp is the column corresponding to variable λkp , and ckp is the cost coefficient of λkp in the objective function (4.65). In terms of the underlying arc variables, the reduced cost of path p ∈ Pk can be written as follows: r¯pk = ckp − π T Akp , X X X k = ckp − πℓ akℓp − α¯ ckp − βi c¯kip − ξi υip − γckp − ζbkp − θk i∈Vpatrol

ℓ∈L

X



k k ηsv xsvp −

(s,v)∈Ak+ (s)

i∈Vpatrol

X

k k ηuτ xuτ p ,

(u,τ )∈Ak− (τ )

! X

=

tkuv xkuvp

! X



(u,v)∈AkR \Akpatrol

πφk (u,v) xkuvp

! −α

(u,v)∈Akpatrol

X (u,v)∈Akpatrol

!

! X



βψk (u,v) tkuv xkuvp

X



X

ξi I≥1

i∈Vpatrol

(u,v)∈Akpatrol

−γ

tkuv xkuvp

!



X

=



X

k k ηuτ xuτ p − θk ,

(u,τ )∈Ak− (τ )

X

 (1 − γ)tkuv xkuvp −



 k k xsvp − ζ + ηsv

(s,v)∈Ak+ (s)

X

k k ηuτ xuτ p

(u,τ )∈Ak− (τ )

! −

X i∈Vpatrol

  πφk (u,v) + α + βψk (u,v) tkuv xkuvp

(u,v)∈Akpatrol

(u,v)∈AkR \Akpatrol



xksvp

(s,v)∈Ak+ (s)

X

k k xsvp − ηsv

(s,v)∈Ak+ (s)

X

−ζ

(u,v)∈AkR \Akpatrol

X

tkuv xkuvp

(u,v)∈Ak,i patrol

! X

tkuv xkuvp

ξi I≥1

X (u,v)∈Ak,i patrol

tkuv xkuvp

− θk .

4.9 Column Generation for a Homogeneous Fleet

107

If we define the cost coefficients µkuv :

µkuv

 k   (1 − γ)tuv    k  −π φk (u,v) − α + βψk (u,v) tuv := −ζ − η k   uv    −η k uv

if (u, v) ∈ Aktransit ∪ Akport ∪ Akreplenish , if (u, v) ∈ Akpatrol ,

(4.80)

if (u, v) ∈ Ak+ (s), if (u, v) ∈ Ak− (τ ),

then the reduced cost of path p ∈ Pk can be expressed as: ! r¯pk =

X

µkuv xkuvp −

X

ξi I≥1

i∈Vpatrol

(u,v)∈AkR

X

tkuv xkuvp

− θk .

(4.81)

(u,v)∈Ak,i patrol

In the special case where the constraints (4.69) are omitted, the reduced cost of path p ∈ Pk simplifies to: r¯pk =

X

µkuv xkuvp − θk .

(4.82)

(u,v)∈AkR

4.9 4.9.1

Column Generation for a Homogeneous Fleet Master Problem

For a homogeneous fleet of patrol boats, distinct RST network constructions for each patrol boat k ∈ K are no longer required. For a homogeneous fleet of patrol boats, we have identical sets of paths Pk = P for all k ∈ K. For the RST network construction, we have GkR = GR for all k ∈ K, where GR = (VR , AR ). Consequently, all coefficients, variables, mappings and sets can be adjusted by dropping the k indices. The convexity constraints (4.74) can be expressed in aggregated form as follows: X p∈P

λp = |K|,

where, λp =

X

λkp .

(4.83)

k∈K

The aggregation constraint (4.83) keeps track of the number of patrol boats using both trivial and non-trivial paths. Recall that the trivial path is (s, τ ) ∈ AR . As the aim of the PBSPCC is to find the minimum number of patrol boats which can satisfactorily provide complete patrol coverage, the trivial path (s, τ ) ∈ AR can be

Patrol Boat Routing and Scheduling with Replenishment: Part I

108

deleted from the RST network construction and the aggregation constraint can be omitted. Removing the arc (s, τ ) entails that bp = 1 for all p ∈ P in the constraint which places the lower bound (κmin ) on the number of patrol boats required. Summarizing the previous paragraph, the master problem for the homogeneous PBSPCC can be written as follows:

minimize

X

(4.84)

cp λ p ,

p∈P

subject to

X

aℓp λp ≥ 1,

∀ℓ ∈ L,

[πℓ ]

(4.85)

[α]

(4.86)

p∈P

X

c¯p λp ≥ |L|,

p∈P

X

c¯ip λp ≥ T,

∀i ∈ Vpatrol ,

[βi ]

(4.87)

υip λp ≥ κi ,

∀i ∈ Vpatrol ,

[ξi ]

(4.88)

cp λp ≥ cmin ,

[γ]

(4.89)

λp ≥ κmin ,

[ζ]

(4.90)

p∈P

X p∈P

X p∈P

X p∈P

X

xsvp λp ≥ 0,

∀(s, v) ∈ A+ (s),

[ηsv ]

(4.91)

xuτ p λp ≥ 0,

∀(u, τ ) ∈ A− (τ ),

[ηuτ ]

(4.92)

p∈P

X p∈P

λp ≥ 0,

4.9.2

∀p ∈ P.

(4.93)

Derivation of Bounds

In this subsection, we derive the lower bounds on the aggregate time not spent on patrol (cmin ) and the number of patrol boats required for complete coverage (κmin ). These bounds can be derived in a straightforward manner for the case of a homogeneous fleet by invoking the shortest path algorithms presented in Chapter 3. In order to derive these lower bounds, a procedure is required which can determine the theoretical maximum patrol time across all paths p ∈ P . We denote the

4.9 Column Generation for a Homogeneous Fleet

109

maximum patrol time as τmax , which is defined by: τmax := max {¯ cp | p ∈ P } .

(4.94)

The maximum patrol time over an RST network GR can be calculated by simply applying costs µuv = −tuv to arcs (u, v) ∈ Apatrol and costs µuv = 0 to all other arcs in the network, followed by invoking a shortest path algorithm. The maximum patrol time is the negation of the shortest path cost from the source s to the sink τ . This procedure is summarized in Algorithm 12. The lower bound κmin is defined as: 

κmin

 |L| , := τmax

(4.95)

where ⌈◦⌉ is the ceiling function, which returns the smallest integer greater than or equal to the argument. The lower bound cmin is given in terms of κmin by: cmin := κmin (T − τmax ) .

(4.96)

Algorithm 12 PBSPCC: Get the maximum patrol time 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:

Input: An RST network GR = (VR , AR ) with source s ∈ VR and sink τ ∈ VR procedure G ET M AX PATROLT IME(GR , s, τ ) for (u, v) ∈ AR do if (u, v) ∈ AR \Apatrol then µuv ← 0 else µuv ← −tuv end if end for (p, δp (s, τ )) ← DAG-SP(GR , µ, s, τ ) τmax ← −δp (s, τ ) return τmax end procedure

110

4.9.3

Patrol Boat Routing and Scheduling with Replenishment: Part I

Subproblem

In Chapter 3, we saw that Dantzig-Wolfe decomposition can exploit the structure of a linear program by keeping the set of linking constraints in the column generation master problem and relegating separable blocks of constraints to individual subproblems (to be solved by specially tailored algorithms). In practical applications of the Dantzig-Wolfe decomposition technique, identifying constraints to relegate to the subproblem(s) is not always straightforward. It is clear, however, that a more tightly constrained subproblem structure will arise from relegating as many constraints as possible. One advantage of a tightly constrained subproblem is that the columns generated should generally be of good quality. A potential disadvantage, on the other hand, is that the subproblem may be more difficult to solve [66, 126]. Hence, there is trade-off issue between column quality and runtime efficiency which is not necessarily easy to identify a priori. The decision as to which constraint(s) should be relegated to the column generation subproblem(s) will also influence the modelling techniques employed and the design of efficient solution algorithms. A suitably constructed modelling paradigm should be amenable to the application of efficient algorithms to solve the column generation subproblem(s). The modelling approach and the design of efficient algorithms is non-trivial for the PBSPCC subproblem, given that the movements of patrol boats are resourceconstrained and include a number of mutually exclusive states, including some with fixed time durations, e.g. stationed at port, in transit, on patrol, or replenishing. Taking these factors into consideration, we have adopted an RST network design for reasons of algorithmic preference, namely, so that the column generation subproblems can be solved with the implementation of a pure shortest path algorithm over a directed acyclic graph. As outlined in Chapter 3, applying edge relaxation to a topologically sorted list of a directed acyclic graph’s vertices can extract the shortest path in linear time (relative to the total number of arcs and vertices). However, we acknowledge that there are alternative ways to construct the column generation subproblems for the PBSPCC. We briefly outline some alternative candidate approaches before moving on to the definition of the subproblem. Alternative candidate modelling and algorithmic approaches to the PBSPCC subproblem include the weight-constrained shortest path problem with replenishment, recently examined by Smith et al. [115], and the multi-trip elementary shortest path problem with resource constraints, which has been studied by Akca et al. [2]. We propose that future research into column generation approaches

4.9 Column Generation for a Homogeneous Fleet

111

to the PBSPCC should consider the aforementioned modelling and algorithmic paradigms.15 We will now present the subproblem definition of the PBSPCC. Assume that the set of paths generated is currently given by P ′ ⊂ P , then the pricing subproblem is to find a path p ∈ P \P ′ with the minimum negative reduced cost. This can be written as a combinatorial optimization problem (with the aid of the indicator function I≥1 ) as follows: ! minimize

X

µuv xuv −

ξi I≥1

X

X

tuv xuv ,

(4.97)

(u,v)∈Aipatrol

i∈Vpatrol

(u,v)∈AR

subject to:

X

(4.98)

xsv = 1,

(s,v)∈A+ (s)∪{(s,τ )}

X

xuv =

(u,v)∈A− (v)

X

xvw ,

∀v ∈ VR \{s, τ },

(4.99)

(v,w)∈A+ (v)

X

xuτ = 1,

(4.100)

(u,τ )∈A− (τ )∪{(s,τ )}

xuv ∈ {0, 1},

∀(u, v) ∈ AR .

(4.101)

The presence of the dual variables ξi in (4.97) complicates the structure of the subproblem when the objective is to find the minimum negative reduced cost. However, if the constraints (4.88) are omitted from the master problem, the objective P function for the pricing subproblem is simplified to the form (u,v)∈AR µuv xuv . In this case, the problem of finding a minimum reduced cost path is a pure shortest path problem over the RST network. If the master problem constraints pertaining to the dual variables ξi are included in the problem, a simple heuristic technique can be invoked to retrieve a negative reduced cost path (not necessarily the minimum) without altering the shortest path structure of the subproblem. The heuristic first determines a shortest path by ignoring the presence of the dual costs ξi for all i ∈ Vpatrol . Once such a path has 15

The (resource/weight)-constrained shortest path problem was first proffered by Desrochers [32] for a column generation approach to bus driver scheduling. For a directed acyclic graph with negative arc costs, the resource-constrained shortest path problem can be solved using an extended label-correcting or label-setting algorithm (see Desrochers and Soumis [33]). Solution methods for weight-constrained shortest path problems are bountiful, for example, see Irnich and Desaulniers [72] for a comprehensive survey. Future work may also investigate the applicability of Constraint Programming (CP) for the subproblem solver, as this paradigm has shown considerable promise on certain combinatorial problems, for example, see Easton et al. [42], Gualandi and Malucelli [63], and He and Qu [66].

112

Patrol Boat Routing and Scheduling with Replenishment: Part I

been determined, only the dual values ξi for which i ∈ Vpatrol is visited along the determined path are added to the shortest path cost. This procedure is outlined in Algorithm 13. Algorithm 13 PBSPCC: Dual based shortest path through an RST network 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17:

Input: An RST network GR = (VR , AR ) with source s ∈ VR and sink τ ∈ VR and a vector of dual variables π procedure D UAL S HORTEST PATH(GR , s, τ, π) µ ← A PPLY D UAL C OSTS(GR , π) (p, δp (s, τ )) ← DAG-SP(GR , µ, s, τ ) if Constraints (4.88) activated then for i ∈ Vpatrol do if c¯ip = 0 then ξi ← 0 end if end for P r¯p ← δp (s, τ ) − i∈Vpatrol ξi return (p, r¯p , µ) else r¯p∗ ← δp (s, τ ) return (p, r¯p∗ , µ) end if end procedure

Algorithm 14 PBSPCC: Apply dual costs to the arcs of an RST network 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16:

Input: An RST network GR = (VR , AR ) and a vector of dual variables π procedure A PPLY D UAL C OSTS(GR , π) for (u, v) ∈ Atransit ∪ Aport ∪ Areplenish do µuv ← (1 − γ)tuv end for for (u, v) ∈ Apatrol do  µuv ← −πφ(u,v) − α + βψ(u,v) tuv end for for (u, v) ∈ A+ (s) do µuv ← −ζ − ηuv end for for (u, v) ∈ A− (τ ) do µuv ← −ηuv end for return µ end procedure

4.10 Theoretical Results for Objective Functions

113

Algorithm 13 returns either the minimum negative reduced cost (denoted by r¯p∗ ) or a negative reduced cost which is not necessarily the minimum (denoted by r¯p ). Algorithm 13 also relies on an initialization procedure, which applies the relevant dual costs to the arcs of the underlying RST network. This procedure is outlined in Algorithm 14.

4.10

Theoretical Results for Objective Functions

In Section 4.6 we introduced the minimum non-patrol time problem and the minimum fleet size problem. As we will see in Chapter 5, the objective function for the minimum non-patrol time problem can be employed as an acceleration technique for a column generation approach to the PBSPCC under prescribed conditions. In this section, we introduce a number of new theoretical results (assuming a homogeneous patrol boat fleet) which establish the conditions for which the minimum non-patrol time problem also satisfies the minimum fleet size problem. We then use these results to establish the conditions under which a feasible patrol boat schedule (satisfying the patrol coverage requirements) also satisfies the minimum fleet size problem. In other words, we establish conditions under which a sub-optimal solution to the minimum non-patrol time problem is optimal for the minimum fleet size problem. We begin with a number of pre-requisite definitions, then outline some preliminary theorems before proving the main results.

4.10.1

Definitions

Definition 4.10.1. Let U be a collection of distinct paths with U ⊂ P and let  1 if p ∈ U, U λp := 0 otherwise.

(4.102)

If the collection of paths in U covers all the patrol periods, that is, X

aℓp λUp ≥ 1,

∀ℓ ∈ L,

(4.103)

p∈P

then we say that U is a feasible collection of paths, and write U ∈ Λfeas , where Λfeas is the set of all distinct feasible collections of paths. We may refer to Λfeas as the feasible set.

114

Patrol Boat Routing and Scheduling with Replenishment: Part I

Definition 4.10.2. Consider the optimization problem: minimize

X

subject to

X

λp ,

p∈P

aℓp λp ≥ 1,

∀ℓ ∈ L,

(4.104)

p∈P

λp ∈ {0, 1},

∀p ∈ P.

Assume that an optimal solution to this problem has objective value equal to zsize and that there exists a collection of unique paths R such that: zsize =

X

λR p.

(4.105)

p∈P

Then R is a solution to the minimum fleet size problem, and we write R ∈ Λsize , where Λsize is the set of all distinct feasible collections of paths which satisfy the minimum fleet size problem. We may refer to Λsize as the minimum size set. Therefore, if U is any feasible collection of paths and R is any solution to the minimum fleet size problem, then we have: X p∈P

λR p ≤

X

λUp ,

∀ (U ∈ Λfeas , R ∈ Λsize ) .

(4.106)

p∈P

Definition 4.10.3. Consider the optimization problem: minimize

X

cp λp ,

p∈P

subject to

X

aℓp λp ≥ 1,

∀ℓ ∈ L,

(4.107)

p∈P

λp ∈ {0, 1},

∀p ∈ P.

Assume that an optimal solution to this problem has objective value equal to zcost and that there exists a collection of unique paths S such that: zcost =

X

cp λSp .

(4.108)

p∈P

Then S is a solution to the minimum non-patrol time problem. We write S ∈ Λcost , where Λcost is the set of all distinct feasible collections of paths which satisfy the minimum

4.10 Theoretical Results for Objective Functions

115

non-patrol time problem. We may refer to Λcost as the minimum cost set. Therefore, if U is any feasible collection of paths and S is any solution to the minimum non-patrol time problem, then we have: X

cp λSp ≤

p∈P

4.10.2

X

cp λUp ,

∀ (U ∈ Λfeas , S ∈ Λcost ) .

(4.109)

p∈P

Preliminary Theoretical Results

Theorem 4.10.1. Let R ∈ Λsize and S ∈ Λcost . Then, ! X

c¯p λSp



p∈P

X

c¯p λR p

X

≥T

p∈P

λSp



p∈P

X

λR p

.

(4.110)

p∈P

Proof. By definition of the minimum cost set Λcost , we have: X

cp λ R p ≥

X

cp λSp .

(4.111)

p∈P

p∈P

Substituting cp = T − c¯p for all p ∈ P into (4.111) we get: X

(T − c¯p )λR p ≥

p∈P

T

X

λR p

X

(T − c¯p )λSp ,

p∈P



p∈P

X

c¯p λR p

≥T

p∈P

X

λSp −

X

c¯p λSp ,

(4.112)

p∈P

p∈P

! X p∈P

c¯p λSp −

X

c¯p λR p ≥ T

p∈P

X

λSp −

p∈P

X

λR p

,

p∈P

which is the result stated in (4.110). Theorem 4.10.1 tells us that the difference in patrol time between a minimum cost solution and a minimum size solution is at least the difference between the number of integral paths in each solution multiplied by the planning period length. This theorem possesses a number of important corollaries, which we now outline. Corollary 4.10.1. Let R ∈ Λsize and S ∈ Λcost . Then, X p∈P

c¯p λSp ≥

X p∈P

c¯p λR p.

(4.113)

116

Patrol Boat Routing and Scheduling with Replenishment: Part I

Proof. By definition of the minimum size set Λsize , we have: X

λSp ≥

X

λR p,

(4.114)

p∈P

p∈P

and therefore, the right-hand-side of (4.110) is greater than or equal to zero. Hence, the left-hand-side is also greater than or equal to zero, that is, X

c¯p λSp −

p∈P

X

c¯p λR p ≥ 0,

(4.115)

p∈P

which is equivalent to (4.113). Corollary 4.10.2. Let R ∈ Λsize and S ∈ Λcost , satisfying: X

c¯p λSp −

X

c¯p λR p = 0.

(4.116)

p∈P

p∈P

Then R ∈ Λcost and S ∈ Λsize . Proof. If the condition stated in (4.116) holds, then by (4.110) we have: ! X

0≥T

λSp −

X

λR p

(4.117)

.

p∈P

p∈P

Since the right-hand-side is greater than or equal to zero, we can write: ! X

0≥T

λSp



p∈P

X

λR p

≥ 0.

(4.118)

p∈P

This implies that: X

λSp −

p∈P

X

λR p = 0,

(4.119)

p∈P

and therefore |R| = |S|. Thus S ∈ Λsize . By writing c¯p = T − cp for all p ∈ P and substituting into equation (4.116), we get: ! X X X X S R cp λSp − cp λ R (4.120) T λp − λp = p. p∈P

p∈P

p∈P

p∈P

The left-hand-side of this expression is zero by (4.119), and hence, the right-hand-

4.10 Theoretical Results for Objective Functions

117

side must be equal to zero, that is: X

cp λSp =

X

cp λR p.

(4.121)

p∈P

p∈P

Therefore, R ∈ Λcost . Corollary 4.10.3. Let R ∈ Λsize and S ∈ Λcost , satisfying: T >

X

c¯p λSp −

p∈P

X

c¯p λR p > 0.

(4.122)

p∈P

Then R ∈ / Λcost and S ∈ Λsize . Proof. From (4.122), we have: T >

X

c¯p λSp −

X

c¯p λR p.

p∈P

p∈P

Using this condition combined with (4.110), we get: ! T >

X

c¯p λSp −

X

c¯p λR p ≥ T

p∈P

p∈P

X

λSp −

p∈P

X

λR p

.

(4.123)

p∈P

In order for the right-hand inequality to be valid in (4.123), we must have: X

λSp −

p∈P

X

λR p < 1.

(4.124)

p∈P

S But since λR p , λp ∈ {0, 1} for all R ∈ Λsize and S ∈ Λcost , and

X

λSp −

p∈P

X

λR p ≥ 0,

(4.125)

λR p = 0.

(4.126)

c¯p λR p > 0.

(4.127)

p∈P

this implies that: X

λSp −

p∈P

X p∈P

Therefore |R| = |S| and thus S ∈ Λsize . Using (4.122) again, we know that: X p∈P

c¯p λSp −

X p∈P

Patrol Boat Routing and Scheduling with Replenishment: Part I

118

By substituting c¯p = T − cp for all p ∈ P into this expression, we derive: ! X

T

λSp −

X

λR p

+

X

X

cp λSp .

(4.128)

p∈P

p∈P

p∈P

p∈P

cp λR p >

But from (4.126), we have: X

λSp −

p∈P

X

λR p = 0.

(4.129)

p∈P

Therefore, (4.128) becomes: X

cp λ R p >

X

cp λSp .

(4.130)

p∈P

p∈P

Therefore, R ∈ / Λcost . Corollary 4.10.4. Let R ∈ Λsize , S ∈ Λcost , satisfying: ! X

c¯p λSp −

p∈P

X

X

c¯p λR p = T

p∈P

λSp −

p∈P

X

λR p

(4.131)

> 0.

p∈P

Then R ∈ Λcost and S ∈ / Λsize . Proof. Using (4.131), we can see that: X

λSp −

p∈P

X

λR p > 0.

(4.132)

p∈P

Therefore, S ∈ / Λsize . Substituting c¯p = T − cp for all p ∈ P in (4.131) yields the following: ! X

c¯p λSp −

X

c¯p λR p = T

X

λSp −

X

p∈P

p∈P

p∈P

p∈P

X

X

X

X

λR p

! T

X p∈P

λSp −

X p∈P

λR p

! +

p∈P

cp λR p −

cp λSp = T

p∈P

X p∈P

Therefore, R ∈ Λcost .

,

λSp −

p∈P

cp λR p =

X p∈P

cp λSp .

p∈P

λR p

,

(4.133)

4.10 Theoretical Results for Objective Functions

119

Corollary 4.10.5. Let R ∈ Λsize , S ∈ Λcost , satisfying: ! X

c¯p λSp −

p∈P

X

X

c¯p λR p > T

p∈P

λSp −

p∈P

X

λR p

(4.134)

> 0.

p∈P

Then R ∈ / Λcost and S ∈ / Λsize . Proof. Using (4.134), we see that: X

λSp −

p∈P

X

λR p > 0.

(4.135)

p∈P

Therefore, S ∈ / Λsize . Substituting c¯p = T − cp for all p ∈ P in (4.134) gives: ! T

X

λSp −

p∈P

X

λR p

! +

p∈P

X

cp λR p −

p∈P

X

cp λSp > T

p∈P

X

λSp −

p∈P

X

λR p

.

(4.136)

p∈P

Hence we have: X

cp λ R p >

X

cp λSp ,

(4.137)

p∈P

p∈P

and therefore, R ∈ / Λcost . The next corollary makes use of the theoretical maximum time spent on patrol over the planning period T , which we denote τmax . Recall that the calculation of τmax is carried out through a straightforward shortest path algorithm on the RST representation of the patrol network (Algorithm 12). Corollary 4.10.6. Let R ∈ Λsize and S ∈ Λcost . Suppose R satisfies: cp λR p P , T,

p∈P

|L| >

X

c¯p λR p.

(4.147)

p∈P

From the definition of the sets Λfeas and Λsize , we know that: X

aℓp λR ∀ℓ ∈ L, p ≥ 1,

(4.148)

p∈P

c¯p =

X

aℓp , ∀p ∈ P.

(4.149)

ℓ∈L

Summing over both sides of (4.148) with ℓ ∈ L, we have: X

1≤

XX

aℓp λR p,

ℓ∈L p∈P

ℓ∈L

! |L| ≤ =

X X p∈P

ℓ∈L

X

c¯p λR p.

aℓp

λR p,

(4.150)

p∈P

So we have: |L| ≤

X p∈P

c¯p λR p < |L|,

(4.151)

Patrol Boat Routing and Scheduling with Replenishment: Part I

122

which is a contradiction. Hence, the assumption that S ∈ / Λsize is false. Therefore, if X

c¯p λSp < |L| + T,

(4.152)

p∈P

then S ∈ Λsize .16

4.10.4

Feasible Schedule Theorem

Theorem 4.10.3. Consider the integer programming problem which seeks to minimize the total time not spent on patrol such that each patrol region has complete coverage: minimize

z=

subject to

X

X

cp λp ,

p∈P

aℓp λp ≥ 1,

∀ℓ ∈ L,

(4.153)

p∈P

λp ∈ {0, 1},

∀p ∈ P.

Let z ∗ be the optimal objective value of the integer problem (satisfied by a set of paths S) and let zLP be the optimal objective value of the linear programming relaxation. Let Q be a sub-optimal set of paths which satisfies the constraints with objective value z ′ . Suppose |Q| ≥ |S| with the following condition: X p∈P

λQ p
T

X

λQ p − |L| − T,

p∈P

=

X

=

X

T λQ p − |L| − T,

p∈P

(cp + c¯p )λQ p − |L| − T,

p∈P

! X

=

cp λQ p −T

! +

p∈P

X

c¯p λQ p − |L| ,

p∈P

! = (z ′ − T ) +

X

c¯p λQ p − |L| ,

p∈P ′

≥ z − T.

(4.158)

P The last inequality of (4.158) holds since p∈P c¯p λQ p ≥ |L| by definition of a feasible solution to the integer problem. Hence we have: T > z ′ − zLP = ∆.

(4.159)

The LHS of (4.157) may be greater than or equal to zero, or less than or equal to zero. Therefore, we need to consider both of these cases. Case 1: Consider the case where the LHS of (4.157) is greater than or equal to zero, that is: X p∈P

c¯p λSp −

X

c¯p λQ p ≥ 0.

(4.160)

p∈P

Therefore, it follows that the RHS of (4.157) is greater than or equal to zero, and

Patrol Boat Routing and Scheduling with Replenishment: Part I

124 therefore:

! X

∆≥T

λQ p −

p∈P

X

λSp

(4.161)

.

p∈P

By (4.159), the LHS of (4.161) is strictly less than T , and therefore, the RHS (which is greater than or equal to zero) cannot exceed T .17 This is only possible if: X

λQ p −

p∈P

X

λSp = 0.

(4.162)

p∈P

Therefore, |Q| = |S|, and we can re-write (4.157) as follows: X

X

c¯p λSp ≤

p∈P

Now ∆ =

P

p∈P

c¯p λQ p + ∆.

(4.163)

p∈P

cp λQ p − zLP , and therefore we have: X

c¯p λSp ≤

p∈P

X

c¯p λQ p +

p∈P

=T

X

cp λ Q p − zLP ,

p∈P

X

(4.164)

λQ p − zLP .

p∈P

Substituting the given bound from (4.154), we get the result: X

c¯p λSp



X



X

c¯p λQ p + ∆,

p∈P

c¯p λQ p,

(4.170)

p∈P



X

c¯p λSp .

p∈P

Therefore, by Theorem 4.10.2, S ∈ Λsize . But since Q and S have the same size, then Q ∈ Λsize .

126

Patrol Boat Routing and Scheduling with Replenishment: Part I

Intuitively, Theorem 4.10.2 and Theorem 4.10.3 do not establish an explicit equivalence between the minimum non-patrol time problem and the minimum fleet size problem. However, these theorems may be used to shed light on the conditions under which a solution to the minimum fleet size problem may be found without P explicitly using the objective function p∈P λp . The main reason for establishing P these results is to justify the use of the objective function p∈P cp λp as a column generation acceleration technique.18

4.10.5

Clarification of Results

At a superficial level, it may seem that the mathematical proofs of the previous section are somewhat unnecessary. For example, what if it were possible to treat individual patrol boat schedules like stock rolls in a standard cutting stock problem? In that case, it would be straightforward to show that minimizing the number of stock pieces (of length T ) is equivalent to minimizing the total waste (non-patrol time), where each patrol period is a required piece (of unit length) to be cut. Unfortunately, no such parallel exists between the standard cutting stock problem and the PBSPCC. We will justify this claim firstly with an explanation and secondly with a few examples. In Section 3.4, we saw that the constraint specifying a feasible pattern in the standard cutting stock problem was given through (3.23). Simply stated, the sum of the lengths of the pieces cut from a stock roll cannot exceed the length of the stock roll. Under this assumption alone, if the patrol periods were required pieces of unit length to be cut, then the minimum number of stock rolls needed to satisfy the demand would always be (n−m)T , where n−m is the number of patrol regions. Furthermore, there would never be any waste in any optimal solution! However, since we require T ≥ TE + TR for the planning horizon, no such solution could possibly correspond to a collection of feasible patrol boat schedules. If we were to treat the PBSPCC like a cutting stock problem, we would need to add constraints to define feasible cutting patterns which could be mapped to feasible patrol boat schedules on an underlying network topology. Most importantly, we would need to ensure that the final collection of cutting patterns (schedules) satisfies a condition akin to the complete coverage requirement for patrol boat schedules in the PBSPCC. The addition of such constraints means that, for a given stock roll 18

The derived benefits of using such a formulation (when used in concert with other acceleration techniques) will be demonstrated in Chapter 5 on a variety of test problem instances.

4.10 Theoretical Results for Objective Functions

127

length T , a solution which minimizes the total waste will not necessarily satisfy the problem of minimizing the number of stock rolls used. The following examples clearly illustrate this claim. Figure 4.8 illustrates an example where the choice of a combination of planning horizon T , endurance TE and replenishment break duration TR ensures that the minimum fleet size solution is different to the minimum non-patrol time solution. The patrol network is taken from Test Problem 1, the properties of which can be found in Appendix D.19 By setting (TE , TR , T ) = (18, 1, 24), it can be seen that there are 10 patrol boats used in the minimum number solution, while there are 12 patrol boats used in the minimum non-patrol time solution. It can also be seen that the non-patrol time for the former is 6 time units longer than the latter. The properties of each solution, including the amount of time spent on patrol, can be found directly underneath each scheduling representation in Figure 4.8.20 Solution: Minimum Number 1. |06|..|..|00|00|..|..|01|01|01|01|01|01|01|01|01|01|01|01|01|..|..|00|00 2. |04|04|04|04|..|..|00|00|..|..|05|05|05|05|05|05|05|05|05|05|05|05|05|.. 3. |03|03|03|03|03|..|..|00|00|..|..|06|06|06|06|06|06|06|06|06|06|06|06|06 4. |02|02|02|02|02|02|02|..|..|00|00|00|..|..|04|04|04|04|04|04|04|04|04|04 5. |01|01|01|01|01|01|01|01|01|..|..|00|00|..|..|03|03|03|03|03|03|03|03|03 6. |05|05|05|05|05|05|05|05|05|05|05|..|..|00|00|..|..|02|02|02|02|02|02|02 7. |06|06|06|06|06|06|06|06|06|06|06|06|..|..|00|00|..|..|01|01|01|01|01|01 8. |00|..|..|03|03|03|03|03|03|03|03|03|03|03|03|03|..|..|00|00|..|..|06|06 9. |00|..|..|04|04|04|04|04|04|04|04|04|04|04|04|04|..|..|00|00|..|..|05|05 10.|00|00|00|..|..|02|02|02|02|02|02|02|02|02|02|02|02|02|..|..|00|00|..|..

02

3

4

03

3 3

3

3

4

Patrol Time: 150, Non-Patrol Time: 90, Transit Time: 76, Replenishment Time: 12, Port Time: 2

01

3

04

3

Solution: Minimum Non-Patrol Time 1. |01|01|01|01|01|01|..|..|00|00|..|..|01|01|01|01|01|01|01|01|01|01|01|01 2. |02|02|02|02|02|02|..|..|00|00|..|..|02|02|02|02|02|02|02|02|02|02|02|02 3. |03|03|03|03|03|03|..|..|00|00|..|..|03|03|03|03|03|03|03|03|03|03|03|03 4. |04|04|04|04|04|04|..|..|00|00|..|..|04|04|04|04|04|04|04|04|04|04|04|04 5. |05|05|05|05|05|05|..|..|00|00|..|..|05|05|05|05|05|05|05|05|05|05|05|05 6. |06|06|06|06|06|06|..|..|00|00|..|..|06|06|06|06|06|06|06|06|06|06|06|06 7. |01|01|01|01|01|01|01|01|01|01|01|01|01|..|..|00|00|..|..|01|01|01|01|01 8. |02|02|02|02|02|02|02|02|02|02|02|02|02|..|..|00|00|..|..|02|02|02|02|02 9. |03|03|03|03|03|03|03|03|03|03|03|03|03|..|..|00|00|..|..|03|03|03|03|03 10.|04|04|04|04|04|04|04|04|04|04|04|04|04|..|..|00|00|..|..|04|04|04|04|04 11.|05|05|05|05|05|05|05|05|05|05|05|05|05|..|..|00|00|..|..|05|05|05|05|05 12.|06|06|06|06|06|06|06|06|06|06|06|06|06|..|..|00|00|..|..|06|06|06|06|06

00 3

3

06

3

3

3

05

Patrol Time: 204, Non-Patrol Time: 84, Transit Time: 72, Replenishment Time: 12, Port Time: 0

Fig. 4.8 Optimal solutions for the minimum fleet size problem (top) and the minimum non-patrol time problem (bottom). The patrol network is given on the right showing the patrol regions (blue vertices), ports (green vertices) and transition times. The endurance for the patrol boats is TE = 18, the replenishment break is TR = 1, and the planning horizon is T = 24. Suppose that the set of schedules for the minimum fleet size problem in Figure 4.8 is given by R ∈ Λsize , and the set of schedules for the minimum non-patrol time problem is given by S ∈ Λcost . Also, let the set of all possible resource-space-time 19 20

Test problems will be formally introduced later in Section 5.2.3. The interpretation of a scheduling representation can be found in Appendix F.

128

Patrol Boat Routing and Scheduling with Replenishment: Part I

paths through the network be given by P . Hence, we have: X p∈P

c¯p λSp −

X

c¯p λR p = 204 − 150,

p∈P

= 54, > 48,

(4.171)

= 24 × (12 − 10), ! =T

X

λSp

p∈P



X

λR p

.

p∈P

Therefore, in the language of Corollary 4.10.5, R ∈ / Λcost and S ∈ / Λsize . Another example can be found in Figure 4.9 below. In this case, the network is taken from Test Problem 3 (Appendix D). The details of this example can be discerned from the caption text and the properties listed under each scheduling representation. Solution: Minimum Number 1. 2. 3. 4. 5.

05

|05|..|02|..|02|..|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|..|02|..|02|..|03|03 |04|04|04|04|04|..|01|..|01|..|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|..|01|.. |05|05|05|05|05|05|05|05|05|..|02|..|02|..|03|03|03|03|03|03|03|03|03|03|03|03|03|03 |04|04|04|04|04|04|04|04|04|04|04|..|01|..|01|..|04|04|04|04|04|04|04|04|04|04|04|04 |03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|..|02|..|02|..|05|05|05|05|05|05|05|05

2

Patrol Time: 96, Non-Patrol Time: 39, Transit Time: 26, Replenishment Time: 13, Port Time: 0

2 4

01

02

Solution: Minimum Non-Patrol Time 1. 2. 3. 4. 5. 6.

|05|05|05|05|05|05|05|05|05|..|01|..|01|..|05|05|05|05|05|05|05|05|05|05|05|05|05|05 |04|04|04|04|04|04|04|04|04|..|01|..|01|..|04|04|04|04|04|04|04|04|04|04|04|04|04|04 |03|03|03|03|03|03|03|03|03|..|02|..|02|..|03|03|03|03|03|03|03|03|03|03|03|03|03|03 |05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|..|01|..|01|..|05|05|05|05|05|05|05|05 |04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|..|01|..|01|..|04|04|04|04|04|04|04|04 |03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|..|02|..|02|..|03|03|03|03|03|03|03|03

2

2 4

04

2

4

00

2

03

Patrol Time: 126, Non-Patrol Time: 36, Transit Time: 24, Replenishment Time: 12, Port Time: 0

Fig. 4.9 Optimal solutions for the minimum fleet size problem (top) and the minimum non-patrol time problem (bottom). The patrol network is given on the right showing the patrol regions (blue vertices), ports (green vertices) and transition times. The endurance for the patrol boats is TE = 18, the replenishment break is TR = 2, and the planning horizon is T = 27. In summary then, we note that the examples given in Figure 4.8 and Figure 4.9 clearly demonstrate that the minimum non-patrol time solution does not necessarily correspond to the minimum fleet size solution on a given network topology for the PBSPCC. The choice of the combination of planning horizon, endurance and replenishment break duration for a given network will determine whether or not the two solutions match.

Chapter 5 Patrol Boat Routing and Scheduling with Replenishment: Part II 5.1

Introduction

In the previous chapter, the PBSPCC was formally introduced over a resource and time expanded (RST) network. A general column generation framework was also introduced, including a linear programming master problem and shortest path subproblem for the homogeneous version of the PBSPCC. This chapter focuses on the implementation of specific column generation approaches to the aforementioned modelling framework and proposes branch-and-price heuristics in order to obtain integer solutions. The techniques developed in this chapter are benchmarked against a range of test problem instances. We demonstrate that adopting a minimum non-patrol time objective can be used as a column generation acceleration strategy. We also show that additional runtime gains can be achieved by selecting a good starting basis for the initial Restricted Master Problem (RMP) and by pricing out multiple reduced cost paths at each call to the subproblem. When combined, it is shown that these techniques constitute a good candidate column generation subroutine for the implementation of branch-and-price approaches. Furthermore, we show that a number of problem reduction techniques (both spatial and temporal) can be used in concert with a proposed branch-and-price framework to find good integer solutions in acceptable timeframes.

Patrol Boat Routing and Scheduling with Replenishment: Part II

130

5.2

Column Generation

The column generation process must be initialized with a set of candidate paths P ′ ⊂ P in order to construct an initial Restricted Master Problem (RMP). This is referred to as an initial primal basis with associated seed columns. The initial basis may be constructed in any number of ways, so long as the set covering constraints corresponding to the coverage requirements of the patrol periods are satisfied. (The selection of seed columns will be the subject of the next subsection.) The RMP for the homogeneous PBSPCC can be constructed by restricting (4.84) − (4.93) to the set of paths P ′ ⊂ P : minimize

X

(5.1)

cp λp ,

p∈P ′

subject to

X

aℓp λp ≥ 1,

∀ℓ ∈ L,

[πℓ ]

(5.2)

[α]

(5.3)

p∈P ′

X

c¯p λp ≥ |L|,

p∈P ′

X

c¯ip λp ≥ T,

∀i ∈ Vpatrol ,

[βi ]

(5.4)

υip λp ≥ κi ,

∀i ∈ Vpatrol ,

[ξi ]

(5.5)

cp λp ≥ cmin ,

[γ]

(5.6)

λp ≥ κmin ,

[ζ]

(5.7)

p∈P ′

X p∈P ′

X p∈P ′

X p∈P ′

X

xsvp λp ≥ 0,

∀(s, v) ∈ A+ (s),

[ηsv ]

(5.8)

xuτ p λp ≥ 0,

∀(u, τ ) ∈ A− (τ ),

[ηuτ ]

(5.9)

p∈P ′

X p∈P ′

λp ≥ 0,

∀p ∈ P ′ .

(5.10)

The column generation procedure takes a set of dual variables π from the RMP to construct a subproblem over an RST network (4.97) − (4.101), which is a shortest path problem over a directed acyclic graph. If the path returned from the subproblem has negative reduced cost, a new variable and the associated column defining the path are added to the RMP. The process continues in a cyclical manner until no negative reduced cost path can be returned by the subproblem. The basic process

5.2 Column Generation

131

is encapsulated in Figure 5.1.

Fig. 5.1 The column generation framework for the PBSPCC. The column generation framework described above and summarized in Figure 5.1 is referred to as column generation at the root node. Note that the RMP does not impose an integrality requirement on the variables λp , only non-negativity. However, given that the RMP variables implicitly represent feasible routes and schedules for the patrol boats, the goal is to obtain an integer solution. If the variables λp are all integral once the column generation process has terminated, the problem is said to have been solved at the root node. If not, the column generation procedure can be embedded in a branch-and-price algorithm to arrive at an integer solution.

5.2.1

Seed Columns

In order to start the column generation process, an initial feasible basis and associated seed columns must be selected for the RMP. Although Chvatal [24] first outlined a general first phase procedure for constructing an initial primal basis, Lübbecke [84] notes that specially tailored construction techniques should be preferred, given that the initialization of the RMP can influence the runtime efficiency of a column generation approach, especially when embedded in a branch-and-

132

Patrol Boat Routing and Scheduling with Replenishment: Part II

bound algorithm.1 On the question of basis initialization in the context of column generation branch-and-price, Vanderbeck [121] has observed that "with an appropriate initial set of columns, one can get a good start in the column generation procedure." Lübbecke [84] adds that "the negation of this assertion holds as well." In other words, with an inappropriate or poorly chosen set of initial columns, one may not get a good start in the column generation procedure. Algorithm 15 PBSPCC: Shortest path heuristic for column generation initialization 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25:

Input: An RST network GR = (VR , AR ) with source s ∈ VR and sink τ ∈ VR procedure GSPH(GR , s, τ ) for (i, j) ∈ AR \Apatrol do µij ← 0 end for for (i, j) ∈ Apatrol do µij ← −T end for P′ ← ∅ (p, δp (s, τ )) ← DAG-SP(GR , µ, s, τ ) while δp (s, τ ) < 0 do P ′ ← P ′ ∪ {p} for (i, j) ∈ p do if (i, j) ∈ Apatrol then for (u, v) ∈ Apatrol such that φ(u, v) = φ(i, j) do µuv ← 0 end for else µij ← tij end if end for (p, δp (s, τ )) ← DAG-SP(GR , µ, s, τ ) end while return P ′ end procedure

Given the set covering constraints (5.2), an initial basis must collectively cover each patrol period in the underlying RST network. In order to obtain a "good start" to the column generation procedure, an initial set of high quality covering paths 1

Desaulniers et al. [31] states that a good initial primal solution is helpful to derive a good initial solution to the dual problem, and can thus reduce the number of iterations between the RMP and the subproblem.

5.2 Column Generation

133

must be obtained for the underlying RST network. We propose a Greedy Shortest Path Heuristic (GSPH) to derive a candidate set of such paths. In addition to the GSPH, we also investigated the application of a Random Patrol Arc Selection Shortest Path Heuristic (RPASSPH) for the seed columns. This technique is outlined in Appendix E, Section E.3. We compared the GSPH to the RPASSPH on a range of test problems and found that their resulting column generation runtime performance was comparable. However, due to its greater ease of implementation, we decided to adopt the GSPH for the seed column construction. The GSPH first applies a cost µij = −T to each patrol arc (i, j) ∈ Apatrol and cost µij = 0 to each arc (i, j) ∈ AR \Apatrol . A shortest path is then found over the RST network with the applied cost structure. By examining the returned path p, the arc costs are updated by setting µuv = 0 for all (i, j) ∈ p such that φ(u, v) = φ(i, j), and µij = tij for all (i, j) ∈ p such that (i, j) ∈ AR \Apatrol . A new shortest path is subsequently returned from the network with the updated cost structure, and the procedure continues in a cyclical manner, terminating when a non-negative shortest path cost is found. This condition is usually satisfied when all patrol periods have been covered by the set of generated paths. In cases where the GSPH fails to cover every patrol period, a Big M method with a single artificial variable may be added to the initial restricted master problem.2 The GSPH is summarized in Algorithm 15. Equipped with an initial set of paths P ′ derived from the GSPH, the initial RMP for the minimum non-patrol time formulation can be stated as follows: minimize M λ0 +

X

cp λp ,

(5.11)

p∈P ′

subject to (5.2)M − (5.10)M , λ0 ≥ 0.

(5.12) (5.13)

The ’M ’ superscripts found in (5.12) denote that a term involving the artificial variable λ0 is added to each constraint (5.2) − (5.10) in the initial RMP. The coefficient of λ0 in each constraint is given by the corresponding RHS value, for example: (5.3)M :

|L|λ0 +

X

c¯p λp ≥ |L|.

(5.14)

p∈P ′ 2

The inclusion of an artificial variable with a Big M penalty cost is important for constructing an initial basis for the permutation and rolling horizon heuristics outlined in Section 5.3. These heuristics require the removal of a large number of arcs in A+ (s) and A− (τ ), and therefore, invoking the GSPH is unlikely to cover all the patrol periods.

134

5.2.2

Patrol Boat Routing and Scheduling with Replenishment: Part II

Pricing Out Multiple Candidate Columns

A common strategy to accelerate column generation algorithms is to return multiple negative reduced cost columns at each call to the subproblem(s). Lübbecke and Desrosiers [85] note that the task of returning multiple negative reduced cost columns is easily handled by dynamic programming algorithms and that implementing such a strategy can decrease the number of calls to the subproblem(s). The strategy can be made even more efficient if the pool of columns returned from a single call to the subproblem(s) closely resembles the structure of an optimal integer solution [31]. The paper by Desaulniers et al. [31] suggests that greedy heuristics may be employed favourably to price out a pool of multiple paths for problems in which an optimal integer solution is likely to be composed of task-disjoint columns. By considering the patrol periods as tasks, we hypothesize that such a strategy will result in runtime efficiency gains for the minimum non-patrol time formulation of the PBSPCC under certain conditions. This will be tested against alternative seed column choices in Section 5.2.4. The set covering formulation of the master problem may permit integer solutions which are not task-disjoint, since it may allow more than one boat to be on station in a patrol region at the same time. We refer to this phenomenon as oversearching a patrol region. When over-searching occurs in an optimal solution, it does not come at an additional cost to the objective function. However, if the planning horizon T is selected carefully, excessive over-searching will come at a cost that the optimization process will try to eliminate. This will result in an optimal integer solution containing columns which are strongly task-disjoint. We hypothesize that this will occur when the planning horizon is an integer multiple of the aggregate endurance and replenishment break,3 that is: T = J(TE + TR ),

J ∈ Z+ .

(5.15)

We propose a greedy heuristic for the selection of multiple reduced cost columns 3

While we do not have a theoretical proof of this assertion, the computational experiments conducted as part of this research show strong evidence for it. This is demonstrated through P the results given in Tables E.4 − E.6 for the number of paths used at the root node when min p∈P cp λp is adopted as the objective function. Furthermore, the results contained in Appendix E show that the number of paths used in the linear programming relaxation of the minimum non-patrol time problem formulation is a local minimum when the planning horizon T is an integer multiple of TE + TR . Future work could include a theoretical investigation as to whether this assertion is true or false.

5.2 Column Generation

Algorithm 16 PBSPCC: Column generation procedure 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29:

Input: An RST network GR = (VR , AR ) with source s ∈ VR and sink τ ∈ VR P ′ ← GSPH(GR , s, τ ) ¯ ← xp ∈ {0, 1}|AR | | p ∈ P ′ P ¯ procedure G ENERATE C OLUMNS(GR , s, τ, P) ¯ Construct RMP from P with associated variables {λp }p∈P ′ Solve the RMP to get dual variables π (p, r¯p , µ) ← D UAL S HORTEST PATH(GR , s, τ, π) if r¯p ≥ 0 then END else while r¯p < 0 and finite do Add new variable λp and associated column to RMP P ′ ← P ′ ∪ {p} ¯ ←P ¯ ∪ {xp } P for (i, j) ∈ p do if (i, j) ∈ Apatrol then for (u, v) ∈ Apatrol such that φ(u, v) = φ(i, j) do µuv ← tuv end for else µij ← tij end if end for (p, δp (s, τ )) ← DAG-SP(GR , µ, s, τ ) r¯p ← δp (s, τ ) end while goto 5 end if end procedure

135

136

Patrol Boat Routing and Scheduling with Replenishment: Part II

when task-disjoint columns are likely to occur in an optimal integer solution, that is, when the planning period is of the form (5.15). The procedure bears a close resemblance to the greedy shortest path heuristic for the seed columns (Algorithm 15). The heuristic is executed when a call to the subproblem is made during an iteration of the column generation procedure. After the dual penalties from the RMP have been applied to the RST network, the least negative reduced cost path is returned via the application of a shortest path algorithm. Subsequently, the arc costs in the RST network are updated in a similar fashion to Algorithm 15, except that the arcs in each patrol period used by the shortest path are given updated costs according to their transit times. The procedure continues in a cyclical manner until the reduced cost of a returned path is non-negative. The heuristic is outlined as a subroutine of the broader column generation algorithm for the homogeneous PBSPCC, and can be found in Algorithm 16.

5.2.3

Test Problems

We have designed a number of patrol networks to be used as test problems in order to compare the various column generation approaches to the homogeneous PBSPCC. There are twenty (20) patrol networks in total. The principles underlying the design of the patrol networks can be traced back to the time when the author was working on fleet sizing studies at the Defence Science and Technology Organisation (DSTO). The networks have been designed to test a range of topologies, for example, minimally and maximally connected, multiple and single port, symmetrical and asymmetrical. The designed patrol networks are used to create a number of test problem instances to benchmark the column generation acceleration strategies in Section 5.2.4 and to demonstrate how integer solutions may be obtained via branch-and-price heuristics in Section 5.5. The number of ports (represented by m) and the number of patrol regions (represented by n − m) in each network problem (abbreviated as Pr.) are given in Table 5.1. A pictorial collection of the networks can be found in Figure 5.2 and detailed information on each network can be found in Appendix D, which includes the spatial representation, the transit time matrix D and adjacency matrix A. For all spatial representations, patrol regions are represented by blue vertices, ports are given by green vertices, and two-way connecting edges define feasible transitions between the locations.

5.2 Column Generation

137

Table 5.1 Test problem patrol networks. The number of ports (m) and patrol regions (n − m) is given for each network, where n is the total number of spatial locations. n−m

Pr. m 1 2 3 4 5 6 7 8 9 10

1 1 3 1 3 4 6 4 8 3

n−m

Pr. m

6 4 3 10 7 11 13 9 10 12

11 12 13 14 15 16 17 18 19 20

2 8 1 1 1 1 1 1 4 2

11 16 9 5 3 6 6 4 12 3

03

02

03

13 04

01

07

04

02

03

04

01

14

08

04

12 05

00

06

10

09

11

00

05

01 03 06

02 04

01

00

01

05

00

09

05 03

04

02

03

05

10

02

08 00

02

12

06

10

11

02

01

05

13 09

01

11

09 09

04

12

14

07

08

06

07

06

00

03

02

04

07

11 08

03

00

01

11

12

15

10

08

13

09

03

14

07

09

07 00 16

01

05 01

04

02

18

06

12

15 00

02

11

14 06

07

06

05

12

07

10

13

17

06

03

09

08

10

05

00

05

04

08

16

10

17

03 02

04

18

02 01

00

02

19 00

15 08

20

01

16 17

00

03

03

01

21

22

04

23 05

03 06

05

03

04

03

04

02 06

02

00

01

02

03

04

05

06

07

04

01

07

00

00

05

09

08

10

11

12

13

14

15

08

09

04 01

02

03

01

01

00

00 06

01

02

03

04

06

05

07

08

02

10

11

04

09

05 00 01

00

02

03 12

13

14

Fig. 5.2 Spatial representations of the test problem patrol networks. Patrol regions are represented by the blue vertices while the ports are depicted by green vertices. Feasible connections between the spatial locations are given by two-way black connecting edges.

138

5.2.4

Patrol Boat Routing and Scheduling with Replenishment: Part II

Computational Results of Root Node Performance

In this section, we compare the computational results of a number of different column generation approaches when applied to various instances of the test networks introduced in Section 5.2.3. The computational tests are performed in order to demonstrate the benefits of implementing the proposed column generation acceleration strategies. In all, we consider five column generation approaches. In order of least to most naive (descending), the strategies are described as follows: • C1: Greedy Shortest Path Heuristic (GSPH) and a Big M artificial variable for the seed columns, non-patrol time objective function, multiple negative reduced cost paths returned at each call to the subproblem. • C2: GSPH and Big M , non-patrol time objective function, single least negative reduced cost path returned. • N1: GSPH and Big M , fleet size objective function, multiple negative reduced cost paths returned. • N2: GSPH and Big M , fleet size objective function, single least negative reduced cost path returned. • N3: Single Big M artificial variable for the seed column, fleet size objective function, single least negative reduced cost path returned.4 The various approaches are summarized in Table 5.2. Table 5.2 Column generation approaches to the homogeneous PBSPCC.

Obj. Big M GSPH Mult. Path

C1 P cp λ p Yes Yes Yes

C2 P cp λ p Yes Yes No

N1 P λp Yes Yes Yes

N2 P λp Yes Yes No

N3 P λp Yes No No

The problem instances prefixed by ’C’ are implemented with the objective for P the non-patrol time (min p∈P cp λp ), while the problems prefixed by ’N’ assume P the fleet size objective (min p∈P λp ).5 For the time being, the test problem instances ignore the patrol region bounds involving the κi , that is, we omit constraints (5.5).6 4

A Big M value of 100, 000 is used in each case. Note that the reduced cost of a path for the minimum fleet size problem is r¯p = 1 − π T Ap . 6 These constraints can be used profitably to guide the branch-and-price heuristics to an integer solution, as will be seen in the computational results of Section 5.5. 5

Pr.

T

TE

TR

Inst.

Pr.

T

TE

TR

Inst.

Pr.

T

TE

TR

CG1_a CG1_b CG1_c CG1_d CG1_e CG1_f CG1_g CG2_a CG2_b CG2_c CG3_a CG3_b CG3_c CG3_d CG4_a CG4_b CG5_a CG5_b CG5_c CG6_a CG6_b CG6_c CG6_d CG6_e CG6_f CG6_g CG6_h CG7_a CG7_b

1 1 1 1 1 1 1 2 2 2 3 3 3 3 4 4 5 5 5 6 6 6 6 6 6 6 6 7 7

16 48 88 28 56 28 56 24 48 30 30 60 18 36 25 50 30 28 56 13 26 14 28 17 34 18 36 14 28

16 16 18 24 24 28 28 12 12 30 10 10 18 18 23 23 10 28 28 13 13 14 14 16 16 18 18 12 12

0 0 4 4 4 0 0 0 0 0 5 5 0 0 2 2 0 0 0 0 0 0 0 1 1 0 0 2 2

CG7_c CG7_d CG7_e CG7_f CG8_a CG8_b CG8_c CG8_d CG8_e CG8_f CG8_g CG9_a CG9_b CG10_a CG10_b CG10_c CG10_d CG10_e CG11_a CG11_b CG11_c CG11_d CG12_a CG12_b CG12_c CG12_d CG12_e CG12_f CG13_a

7 7 7 7 8 8 8 8 8 8 8 9 9 10 10 10 10 10 11 11 11 11 12 12 12 12 12 12 13

16 32 20 40 12 24 18 36 22 44 30 30 56 34 60 19 38 32 17 34 16 32 12 24 14 28 18 36 25

14 14 18 18 12 12 14 14 20 20 26 15 24 16 16 19 19 28 15 15 16 16 12 12 14 14 18 18 21

2 2 2 2 0 0 4 4 2 2 4 0 4 1 4 0 0 4 2 2 0 0 0 0 0 0 0 0 4

CG13_b CG13_c CG14_a CG14_b CG14_c CG14_d CG15_a CG15_b CG16_a CG16_b CG16_c CG16_d CG17_a CG17_b CG17_c CG17_d CG17_e CG17_f CG18_a CG18_b CG18_c CG18_d CG19_a CG19_b CG19_c CG19_d CG20_a CG20_b CG20_c

13 13 14 14 14 14 15 15 16 16 16 16 17 17 17 17 17 17 18 18 18 18 19 19 19 19 20 20 20

28 56 19 38 57 30 58 74 30 16 26 27 18 36 30 34 68 42 48 32 64 72 19 38 44 30 45 37 40

24 24 17 17 17 26 27 37 10 16 22 27 16 16 26 30 30 42 14 28 28 36 16 16 20 26 13 32 40

4 4 2 2 2 4 2 0 5 0 4 0 2 2 4 4 4 0 2 4 4 0 3 3 2 4 2 5 0

139

Inst.

5.2 Column Generation

Table 5.3 Test problem instances for column generation at the root node.

140

C1/N1 Runtime Ratio II

0

10

20

30

40

50

60

Runtime Ratio (%)

70

80

90

100

CG13_a CG12_f CG12_e CG12_d CG12_c CG12_b CG12_a CG11_d CG11_c CG11_b CG11_a CG10_e CG10_d CG10_c CG10_b CG10_a CG9_b CG9_a CG8_g CG8_f CG8_e CG8_d CG8_c CG8_b CG8_a CG7_f CG7_e CG7_d CG7_c

Problem Instance

Problem Instance

CG7_b CG7_a CG6_h CG6_g CG6_f CG6_e CG6_d CG6_c CG6_b CG6_a CG5_c CG5_b CG5_a CG4_b CG4_a CG3_d CG3_c CG3_b CG3_a CG2_c CG2_b CG2_a CG1_g CG1_f CG1_e CG1_d CG1_c CG1_b CG1_a

C1/N1 Runtime Ratio III

0

10

20

30

40

50

60

Runtime Ratio (%)

70

80

90

100

CG20_c CG20_b CG20_a CG19_d CG19_c CG19_b CG19_a CG18_d CG18_c CG18_b CG18_a CG17_f CG17_e CG17_d CG17_c CG17_b CG17_a CG16_d CG16_c CG16_b CG16_a CG15_b CG15_a CG14_d CG14_c CG14_b CG14_a CG13_c CG13_b 0

10

20

30

40

50

60

70

80

90

100

Runtime Ratio (%)

Fig. 5.3 Column generation runtime comparison charts for strategies C1 and N1. These charts demonstrate the benefit of using the minimum non-patrol time objective function.

Patrol Boat Routing and Scheduling with Replenishment: Part II

Problem Instance

C1/N1 Runtime Ratio I

0

10

20

30

40

50

60

Runtime Ratio (%)

70

80

90

100

C2/N2 Runtime Ratio III

CG13_a CG12_f CG12_e CG12_d CG12_c CG12_b CG12_a CG11_d CG11_c CG11_b CG11_a CG10_e CG10_d CG10_c CG10_b CG10_a CG9_b CG9_a CG8_g CG8_f CG8_e CG8_d CG8_c CG8_b CG8_a CG7_f CG7_e CG7_d CG7_c

Problem Instance

CG7_b CG7_a CG6_h CG6_g CG6_f CG6_e CG6_d CG6_c CG6_b CG6_a CG5_c CG5_b CG5_a CG4_b CG4_a CG3_d CG3_c CG3_b CG3_a CG2_c CG2_b CG2_a CG1_g CG1_f CG1_e CG1_d CG1_c CG1_b CG1_a

Problem Instance

Problem Instance

C2/N2 Runtime Ratio II

0

10

20

30

40

50

60

Runtime Ratio (%)

70

5.2 Column Generation

C2/N2 Runtime Ratio I

80

90

100

CG20_c CG20_b CG20_a CG19_d CG19_c CG19_b CG19_a CG18_d CG18_c CG18_b CG18_a CG17_f CG17_e CG17_d CG17_c CG17_b CG17_a CG16_d CG16_c CG16_b CG16_a CG15_b CG15_a CG14_d CG14_c CG14_b CG14_a CG13_c CG13_b 0

10

20

30

40

50

60

70

80

90

100

Runtime Ratio (%)

Fig. 5.4 Column generation runtime comparison charts for strategies C2 and N2. These charts demonstrate the benefit of using the minimum non-patrol time objective function. Bars in light-blue indicate that the ratio is greater than 100 %.

141

142

C1/C2 Runtime Ratio II

0

10

20

30

40

50

60

Runtime Ratio (%)

70

80

90

100

CG13_a CG12_f CG12_e CG12_d CG12_c CG12_b CG12_a CG11_d CG11_c CG11_b CG11_a CG10_e CG10_d CG10_c CG10_b CG10_a CG9_b CG9_a CG8_g CG8_f CG8_e CG8_d CG8_c CG8_b CG8_a CG7_f CG7_e CG7_d CG7_c

Problem Instance

Problem Instance

CG7_b CG7_a CG6_h CG6_g CG6_f CG6_e CG6_d CG6_c CG6_b CG6_a CG5_c CG5_b CG5_a CG4_b CG4_a CG3_d CG3_c CG3_b CG3_a CG2_c CG2_b CG2_a CG1_g CG1_f CG1_e CG1_d CG1_c CG1_b CG1_a

C1/C2 Runtime Ratio III

0

10

20

30

40

50

60

Runtime Ratio (%)

70

80

90

100

CG20_c CG20_b CG20_a CG19_d CG19_c CG19_b CG19_a CG18_d CG18_c CG18_b CG18_a CG17_f CG17_e CG17_d CG17_c CG17_b CG17_a CG16_d CG16_c CG16_b CG16_a CG15_b CG15_a CG14_d CG14_c CG14_b CG14_a CG13_c CG13_b 0

20

40

60

80

100

Runtime Ratio (%)

Fig. 5.5 Column generation runtime comparison charts for strategies C1 and C2. These charts demonstrate the benefit of pricing multiple paths from the subproblem at each column generation iteration. Bars in light-blue indicate that the ratio is greater than 100 %.

Patrol Boat Routing and Scheduling with Replenishment: Part II

Problem Instance

C1/C2 Runtime Ratio I

0

10

20

30

40

50

60

Runtime Ratio (%)

70

80

90

100

N1/N2 Runtime Ratio III

CG13_a CG12_f CG12_e CG12_d CG12_c CG12_b CG12_a CG11_d CG11_c CG11_b CG11_a CG10_e CG10_d CG10_c CG10_b CG10_a CG9_b CG9_a CG8_g CG8_f CG8_e CG8_d CG8_c CG8_b CG8_a CG7_f CG7_e CG7_d CG7_c

Problem Instance

CG7_b CG7_a CG6_h CG6_g CG6_f CG6_e CG6_d CG6_c CG6_b CG6_a CG5_c CG5_b CG5_a CG4_b CG4_a CG3_d CG3_c CG3_b CG3_a CG2_c CG2_b CG2_a CG1_g CG1_f CG1_e CG1_d CG1_c CG1_b CG1_a

Problem Instance

Problem Instance

N1/N2 Runtime Ratio II

0

10

20

30

40

50

60

Runtime Ratio (%)

70

5.2 Column Generation

N1/N2 Runtime Ratio I

80

90

100

CG20_c CG20_b CG20_a CG19_d CG19_c CG19_b CG19_a CG18_d CG18_c CG18_b CG18_a CG17_f CG17_e CG17_d CG17_c CG17_b CG17_a CG16_d CG16_c CG16_b CG16_a CG15_b CG15_a CG14_d CG14_c CG14_b CG14_a CG13_c CG13_b 0

10

20

30

40

50

60

70

80

90

100

Runtime Ratio (%)

Fig. 5.6 Column generation runtime comparison charts for strategies N1 and N2. These charts demonstrate the benefit of pricing multiple paths from the subproblem at each column generation iteration. Bars in light-blue indicate that the ratio is greater than 100 %.

143

144

Patrol Boat Routing and Scheduling with Replenishment: Part II

The problem instances for comparing the various column generation strategies are listed in Table 5.3. There are 87 problem instances in total. Each instance (Inst.) is a combination of a network design (Pr.), planning horizon (T ), endurance (TE ) and replenishment break duration (TR ), where T is an integer multiple of TE + TR .7 In order to gauge the effectiveness of the proposed column generation acceleration techniques, a number of comparison charts are provided from Figure 5.3 through to Figure 5.6. These figures contain histograms of the runtime performance ratios between the strategies C1, C2, N1 and N2. Figure 5.3 (C1/N1) and Figure 5.4 (C2/N2) clearly demonstrate the benefit of using the minimum non-patrol time objective function over the minimum fleet size objective function. It can be seen that on all but a few occasions, the minimum non-patrol time objective results in better runtime performance. Similarly, Figure 5.5 (C1/C2) and Figure 5.6 (N1/N2) are presented in order to highlight the increased runtime efficiency gained by pricing multiple paths from a single call to the subproblem. The full range of results from the experiments performed on each test problem and strategy are comprehensively tabulated in Appendix E from Table E.1 through to Table E.3. The information in these tables shows that strategy C1 consistently demonstrates superior runtime performance and overall is most efficient in terms of the number of columns generated. Consequently, strategy C1 is adopted as the column generation framework to be used in the branch-and-price heuristic regime proposed in the following section and for the benchmark problems listed in Section 5.5.8 From the tabulated results of Appendix E, it can be seen that the worst result for each strategy, in terms of the CPU time and the number of columns generated, occurs on problem instance CG10_b. Test Problem 10 is a symmetric spatial network with twelve patrol regions and a planning horizon length T = 3 × (TE + TR ). A poor planning horizon scalability result (such as this one) may indicate that further problem reduction/decomposition techniques should be applied to the problem 7

The computational tests were conducted using a 2.70 GHz dual-core processor on a 32-bit Operating System with 4.00 GB of RAM. All primal and dual solutions to the linear programs were obtained with CPLEX 12.6. The column generation and shortest path algorithms, along with the required data structures for the master problem and the RST network, were coded using the Java programming language and the Eclipse Integrated Development Environment (IDE). 8 Option C1 has been more rigorously tested for a large number of problem instances at the root node. These results are too numerous and comprehensive to detail here, but can be located in Appendix E. These computational results clearly show the scalability limitations incurred on large spatial networks as the planning horizon length increases. These results provide added impetus to consider reduction/decomposition techniques on large-scale problems.

5.3 Branch-and-Price Approach

145

in order to break it down into more manageable pieces. Some proposed problem reduction techniques will be outlined in Section 5.3.

5.3

Branch-and-Price Approach

In this section, a branch-and-price approach is proposed for the homogeneous PBSPCC (5.1) − (5.10) to obtain integer solutions. Columns generated at the root node are usually insufficient to obtain quality integer solutions. Desaulniers et al. [31] state that this is because the pool of columns generated at the root node is usually not large enough to close the integrality gap below 1%. We might add that even if the column pool at the root node were large enough, this would still present difficulties for state-of-the-art integer programming solvers to obtain quality solutions in a reasonable amount of time. However, if we embed the column generation process into a branch-and-bound tree, we may obtain integer solutions via a branch-and-price approach. As we have already noted, the way in which branching decisions are implemented is an important consideration for any problem and must be treated thoughtfully. There are many ways to perform branch-and-price for solving linear integer programs, spanning a range of exact and heuristic strategies. The branching rules and the manner in which they are imposed will be largely dependent on the structure and properties of the underlying subproblem(s). Accordingly, while it is standard for the branching decisions to be imposed on the variables of the original formulation, the implementation of the rules can vary from problem to problem. In general, branching decisions are either (i) directly enforced on the subproblem (so long as the structure is maintained) or they are (ii) incorporated as cuts in the master problem.9 In our branch-and-price approach to the homogeneous PBSPCC, we have opted for strategy (ii). The reasons for this approach are given below. Because the arc flow variables of the subproblem are given through the aggreP gate of path flows, that is, xuv = p∈P xuvp λp , it follows that an integral arc flow is not necessarily binary. In cases where the integrality conditions on the arc flow variables are non-binary, branching decisions which are enforced by modifying the arc structure of the subproblem are likely to be weak or difficult to implement. Therefore, for a solution in which xuv = α is fractional for some (u, v) ∈ AR , branching decisions can be imposed by enforcing either xuv ≤ ⌊α⌋ or xuv ≥ ⌈α⌉ on the original 9

See Conforti et al. [26, pp. 337-338].

146

Patrol Boat Routing and Scheduling with Replenishment: Part II

formulation, and hence, in the reformulated master problem. The dual variables associated with these constraints are added to the costs of using the particular arcs in the subproblem, with the structure of the subproblem remaining unchanged. This branching strategy is used in [15] for a branch-and-price approach to the cutting stock problem with an underlying multi-commodity flow model. In the case where the arc flows are binary xuv ∈ {0, 1} and a convexity condition P exists on the path flows, that is, p∈P λp = 1, then we have xuv ∈ {0, 1} if and only if λp ∈ {0, 1} for all (u, v) ∈ AR and for all p ∈ P . Such a case would occur if we were to consider a separate subproblem for each patrol boat k ∈ K, that is, for a heterogeneous fleet. When this occurs, decisions may be directly enforced in the subproblem while leaving the structure of the master problem unaltered. Then, for a solution with fractional flow xuv = α, where 0 < α < 1, two branches can be created: (a) xuv ≤ ⌊α⌋, that is, xuv = 0 and (b) xuv ≥ ⌈α⌉, that is, xuv = 1. Branch (a) is equivalent to removing arc (u, v) from the subproblem (and removing path variables from the master problem that use the arc), while branch (b) involves deleting a set of arcs from the subproblem which force (u, v) into the solution (and removing path variables from the master problem that do not use the arc).10 Given the nature of the aggregated path flows on the RST network, the branchand-price approach that we propose for the homogeneous PBSPCC is therefore based on branching strategy (ii), that is, branching decisions are directly enforced in the master problem, leaving the subproblem structure unaltered. Note that we require integrality of the path flow variables for a feasible integer solution, not just integrality of the arc variables. This approach is supplemented with heuristic rules for the selection of arcs to branch on and also for the selection of candidate nodes to extend (fathom) in the search tree. These are outlined in the following subsections.

5.3.1

RST Network Arc Selection

Once column generation has been performed at the root node, the solution is inspected to check whether the path variables are all integral. In the event that all 10

For future research into the heterogeneous PBSPCC using branching strategy (i), we propose branching on the patrol arcs of each boat’s RST network. In this scheme, for subproblem k ∈ K, if (u, v) ∈ Akpatrol is fractional and selected for branching, then branch (a) is enforced by removing (u, v) from the network and removing all path variables λkp from the master problem that use arc (u, v). For branch (b), all arcs (x, y) such that φ(x, y) = φ(u, v) and (x, y) ̸= (u, v) are removed from the network, along with all arcs in the sets Ak+ (y) and Ak− (x). In addition, all path variables which do not use (u, v) are removed from the master problem.

5.3 Branch-and-Price Approach

147

path variables are integral, the problem is said to have been solved at the root node. If there exist path variables taking fractional values, we can select one or more of the underlying RST network arc variables for branching by imposing additional cuts on the master problem. The heuristic approach that we propose allows for combinations of fractional transit, replenishment, idle, source and sink arcs to be selected for branching at a node in the search tree. Once a combination of arc classes has been chosen, the heuristic finds the most fractional arc flow from each class in the current solution. ¯ where the index Let (u, v) ∈ Aϕ ⊂ AR be an arc in the RST network, with ϕ ∈ Φ, ¯ is given by: set Φ ¯ := {idle, transit, replenish, source, sink}. Φ

(5.16)

The arc flow F over (u, v) ∈ Aϕ is simply the sum of the path variables in the current basic solution P ′ which use that arc, that is: X

F (u, v) :=

λp .

(5.17)

p∈{q∈P ′ | (u,v)∈q}

¯ is given by: The most fractional arc in class ϕ ∈ Φ (u, v)∗ϕ := arg min F˜ (u, v),

(5.18)

(u,v)∈Aϕ

where we have:   1 − (F (u, v) − ⌊F (u, v)⌋) ˜ F (u, v) := 2  1 − (⌈F (u, v)⌉ − F (u, v)) 2

if F (u, v) − ⌊F (u, v)⌋ < 21 ,

(5.19)

otherwise.

Once the most fractional arc for class ϕ has been found, left and right disjunctive branches are created under the existing tree node. This creates two new master problems, one for each branch. Suppose we select a combination of arc classes ¯′ ⊆ Φ ¯ to branch on. On the left branch, the following cuts are imposed on the Φ master problem: X p∈{q∈P ′

| (u,v)∗ϕ ∈q}

λp ≤ ⌊F ((u, v)∗ϕ )⌋,

¯ ′. ∀ϕ ∈ Φ

(5.20)

Patrol Boat Routing and Scheduling with Replenishment: Part II

148

Similarly, on the right branch, we impose: X

λp ≥ ⌈F ((u, v)∗ϕ )⌉,

¯ ′. ∀ϕ ∈ Φ

(5.21)

p∈{q∈P ′ | (u,v)∗ϕ ∈q}

Imposing either cut, that is, (5.20) or (5.21), means that the associated dual cost must be incorporated into the RST network cost structure for the relevant branch. This amounts to adding a dual penalty to the arc (u, v)∗ϕ whenever a call to the subproblem occurs. The option to enforce several master problem cuts at once on a single branch is a heuristic feature of our proposed branch-and-price approach. The motivation for adopting this option is to arrive quickly at feasible solutions to the minimum non-patrol time formulation of the PBSPCC. Recall that even though a minimum non-patrol time objective function is used, we do not necessarily seek the actual optimum to this problem (that is to say, as it is strictly formulated). The point is to find a feasible solution to the minimum non-patrol time problem which is also an optimal solution to the minimum fleet size problem. The option to enforce the flows over multiple arcs on a single branch occurred at a natural choice point in the research program, and therefore, it is noted that other branching decisions could have been adopted.

5.3.2

Search Tree Node Selection

A tree node may be selected for branching as follows. By inspection of the current unexplored nodes, the node with the greatest ratio of integral non-zero arc variables to non-zero arc variables is selected, with ties being broken by the node with the minimum objective function value. This approach has been adopted since we do not necessarily wish to solve the minimum non-patrol time problem to optimality. It is a type of depth-first search which is designed to arrive at a good integer solution quickly [22, 31]. In the event that the ratio of integral non-zero arc variables to non-zero arc flow variables is unity, we have an arc integral solution. However, integrality of the RST network arc variables is not a sufficient condition for the integrality of the path variables. There may be tree nodes for which a solution has xuv ∈ Z+ for all (u, v) ∈ AR with a least one p ∈ P ′ such that λp ∈ / {0, 1}.11 To see why this is so, 11

Vanderbeck [123] notes that this phenomenon (i.e., fractional path flows translating to integral

5.4 Problem Reduction Techniques

149

P recall that xuv = p∈P xuvp λp for all (u, v) ∈ AR . It is straightforward to see that if λp ∈ {0, 1} for all p ∈ P , then xuv ∈ Z+ for all (u, v) ∈ AR , since xuvp ∈ {0, 1} for each (u, v) ∈ AR and p ∈ P . However, the converse does not hold. That is, it is mathematically possible to find a set of paths taking fractional values which translates into an integral arc flow solution.12 Therefore, integrality of the path variables must be checked at each node to arrive at an integer solution. Any nodes which are arc integral but not path integral can be pruned from the tree.13 However, once a candidate integer solution has been found, it can be checked against condition (4.154)14 to verify whether the solution satisfies the minimum fleet size problem. If not, the integer solution constitutes an upper bound which can be used for fathoming and pruning other unexplored nodes. Alternatively, the integer solution may be checked against the bounds constraint (5.7) if a lower bound has been set which is greater than the minimum fleet size solution.

5.4

Problem Reduction Techniques

In this section, we propose a number of problem reduction techniques to make the process of finding integer feasible solutions to the homogeneous PBSPCC easier. These techniques can be implemented in concert with the branch-and-price approach outlined in the previous section. The reduction techniques can be applied at the geographical (spatial) level or at the planning (temporal) level. At the geographical level, a problem network may be clustered or partitioned into distinct subsets of regions, allowing each subset to be solved separately, and then recombined to form a single solution. At the planning level, a larger scheduling horizon may be constructed from smaller blocks, with the terminal configuration of one planning block matching the initial conditions of the subsequent one. The followarc flows) can occur particularly when the subproblem is a shortest path problem, as is the case for our column generation approach to the PBSPCC. 12 Note, only the presence of a convexity condition on the path variables will ensure that integral arc flows correspond to integral path flows. Recall from Section 3.7.2, that for the case of |K| separable constraint blocks, we have extreme points given by xkp ∈ {0, 1}nk (p ∈ Pk and k ∈ K) which are P distinct. Also, the original variables are given through xk = p∈Pk λkp xkp with convexity condition P k k nk if and only if λkp ∈ {0, 1}. p∈Pk λp = 1. Therefore, it follows that x ∈ {0, 1} 13 This feature is a component of the branch-and-price heuristic, and hence, the branching rules are not complete. The development of different branching rules, forming a complete strategy, would be an interesting avenue for future research. 14 Where zLP is obtained from the root node objective value.

150

Patrol Boat Routing and Scheduling with Replenishment: Part II

ing subsections outline how these techniques can be implemented.

5.4.1

Cyclic Schedules (Path Permutations)

High Level Description The first problem reduction technique which we will consider is one which seeks to find scheduling solutions that can provide complete patrol coverage indefinitely. This can be achieved through solutions which behave cyclically, that is, where individual patrol boat schedules permute with each other periodically with respect to resource states and locations. In other words, the set of locations and resource states occupied by the patrol boats at the beginning of a certain planning block matches the set of locations and resources states of the patrol boats at the end of the planning block.

03

02

5

8

04

3

12

14

01

00

28

09

05

1 16

06

6 23

4 10

08

2 04

07

7 18

Fig. 5.7 An example of a cyclic scheduling solution for Test Problem 5, where the planning horizon is T = 28, the endurance is TE = 28 and the replenishment break duration is TR = 0. In this example, boats 4, 5, 6, 7 and 8 swap positions and resource states sequentially with periodicity T , while boats 1, 2 and 3 each return to their original locations and resource levels over T .

5.4 Problem Reduction Techniques

151

In order to illustrate the concept more clearly, consider Figure 5.7, which depicts a cyclic scheduling solution for Test Problem 5. In this example, the patrol boat endurance is TE = 28 and the replenishment break is TR = 0. For each planning block of length T = 28, boats 1, 2 and 3 arrive at the same location at which they started, and with the same resource level (the number given below each boat in the diagram). With the remainder of the fleet, boat 4 ends the planning block where boat 5 began, and with the same resource level that boat 5 started with. Similarly, boat 5 takes the place and resource level of boat 6 at the end of the planning block. Boat 6 takes the place/resource of boat 7, which takes boat 8’s place/resource, which in turn assumes boat 4’s original location and resource state. The solution can therefore be extended indefinitely into the future, since we know that the boats simply permute locations and resource states with periodicity T . Mathematical Formulation In order to find cyclic scheduling solutions on RST networks for the PBSPCC with our column generation formalism, a number of mathematical preliminaries and constructions need to be established. We begin by defining a one-to-one correspondence between the sets A+ (s) and A− (τ ). That is, to each element (s, v) ∈ A+ (s) we associate a unique element of (u, τ ) ∈ A− (τ ) such that all the elements of A+ (s) map to all the elements of A− (τ ). We construct a bijection f : A+ (s) → A− (τ ) such that f (s, v) = (u, τ ) where v = (i, dˆi , 0) and u = (i, dˆi , T ), where i ∈ VS , T is the planning period and dˆi measures the resource consumption. The inverse function f −1 : A− (τ ) → A+ (s) is given by f −1 (u, τ ) = (s, v), where u and v are defined in the aforementioned way. Definition 5.4.1 (Path Permutation). Let Q ⊂ P be a collection of distinct paths satisfyQ ing the homogeneous PBSPCC, with λQ p = 1 if p ∈ Q and λp = 0 otherwise. Suppose that: X p∈P

xsvp λQ p =

X

x{f (s,v)}p λQ p,

∀(s, v) ∈ A+ (s).

(5.22)

p∈P

Then the set of paths Q is called a path permutation solution. At first sight, it would seem that a path permutation solution might be sought by incorporating the following constraints into the master problem: X p∈P

 xsvp − x{f (s,v)}p λp = 0,

∀(s, v) ∈ A+ (s).

(5.23)

152

Patrol Boat Routing and Scheduling with Replenishment: Part II

However, incorporating equality constraints of type (5.23) into the master problem is too problematic for the branch-and-price approach outlined heretofore.15 Hence, path permutations must be derived via a different method for the proposed branchand-price framework. We have identified two possible methodologies for deriving path permutation solutions. The first method is based on a subproblem pricing strategy introduced by Andersen et al. [4] for service network design with asset management. The pricing subproblem seeks path cycles over a time-space network by implementing a labelcorrecting dynamic programming algorithm. The algorithm uses two labels: the first label corresponds to the reduced cost of a path and the second ensures that the first vertex visited along the path matches the final vertex visited. Such a method could be implemented over the RST network design, where the labelling procedure ensures that if v is the first vertex visited along a path, then the last vertex must be u, where f (s, v) = (u, τ ). Implementing the labelling algorithm introduced by Andersen et al. [4] would require an overhaul of the shortest path approach that we have proffered for the pricing subproblem. It is also noted that a path permutation solution over a planning horizon does not imply that each path has the same initial and termination conditions. Given these factors, we have chosen not to adopt the approach proposed by Andersen et al. [4]. Instead, we propose a heuristic regime which preserves the structure of the pricing subproblem and the master problem. It is important to note that this heuristic approach does not guarantee that path permutations will always be found. However, experimental results indicate that it can be used fruitfully on a range of patrol networks, especially when combined with clustering techniques (which will be described in Section 5.4.3). Suppose we have a feasible set of patrol paths P¯ over an RST network GR = (VR , AR ) which constitute a feasible integer solution. Each path p ∈ P¯ terminates at some sink arc in A− (τ ). The termination condition (the sink arc configuration) can be used to re-initialize the RST network in order to obtain an integer solution which permutes the paths in a cyclic manner, ensuring that the solution can be extended indefinitely. A mechanism for doing so is described as follows. To begin the re-initialization of the RST network, all arcs (s, v) = f −1 (u, τ ) such P that p∈P¯ xuτ p λp = 0, are removed from A+ (s) and the corresponding constraints 15

This is most likely due to the large number of equality constraints required and the associated poor dual information passed to the subproblem.

5.4 Problem Reduction Techniques

153

for these arcs are removed from the master problem. Secondly, for each arc (s, v) = P f −1 (u, τ ) such that p∈P¯ xuτ p λp = 1, we update the corresponding constraint in the master problem as follows: X xsvp λp ≥ 1. (5.24) p∈P ′

The dual variable associated with this constraint is ηsv , as per (5.8), and is now activated as real a cost in the subproblem. For the original integer solution P¯ , it is possible that two or more paths may terminate at the same sink arc. In other words, there may exist p′ , p′′ ∈ P¯ such that xuτ p′ = xuτ p′′ = 1 for some (u, τ ) ∈ A− (τ ). An examination of the values of the arc flow variables xuτ will reveal whether, and to what extent, each sink arc is shared by the paths in P¯ . Since integrality of the arc variables is guaranteed in any feasible solution, all arc flows will be either equal to zero, unity or some integer greater than unity. In the event that a sink arc belongs to the final category, we can say that it is shared among two or more path variables. Mathematically, if we have xuτ = mu , where mu ∈ Z+ is greater than unity and (u, τ ) ∈ A− (τ ), then (u, τ ) is shared by at least two paths in P¯ . For each sink arc of the solution P¯ which has an integral flow greater than unity, we first retrieve the corresponding arc (s, v) = f −1 (u, τ ). The arc (s, v) is subsequently removed from A+ (s) and vertices vj , j ∈ {1, . . . , mu } are added to the RST network. New source arcs are created (s, vj ) for each j and are added to A+ (s). Dummy arcs (vj , v) are then created for each j. The following constraints are therefore applied to the new master problem: X

x{svj }p λp ≥ 1,

∀j ∈ {1, . . . , mu }.

(5.25)

p∈P ′

As a result of the re-initialization process, we have arrived at an updated set of source arcs, which we call A′+ (s) and new flow constraints in the master problem for all arcs (s, v) ∈ A′+ (s). The sink arcs and the master problem can then be updated in a way which mirrors the construction process for the new set of source arcs. The updated set of sink arcs is denoted by A′− (τ ), and corresponding flow constraints are included in the master problem.16 An example is shown in Figure 5.8, which demonstrates how the source and 16

The technique can also be used on an initial RST network with planning horizon T1 to create a new RST network with planning horizon T2 .

Patrol Boat Routing and Scheduling with Replenishment: Part II

154

sink arcs are updated from a termination configuration involving six paths. Termination condition from the initial RST network p1 p2

u(1)

p3

Construction of source and sink arcs for the permutation RST network

mu(1) = 3 mu(2) = 2 mu(3) = 1

p4 u(2)

new source

sink

new sink

p5 p6 u(3)

Fig. 5.8 Updating the source and sink arcs of an RST network in order to find a new integer solution which permutes the paths in a cyclic manner.

Some Considerations for Implementation After the RST network has been re-configured, the master problem constraints for the source and sink arcs will be given as follows: X

xsvp λp ≥ 1,

∀(s, v) ∈ A′+ (s),

(5.26)

xuτ p λp ≥ 1,

∀(u, τ ) ∈ A′− (τ ).

(5.27)

p∈P ′

X p∈P ′

These constraints assume the place of (5.8) and (5.9), assuming dual variable costs ηsv and ηuτ , respectively. When a feasible solution is obtained with all constraints (5.26) and (5.27) satisfied at unity, we have an integer solution containing a set of paths P ∗ with |P ∗ | = |P¯ |, where the paths in P ∗ collectively map to each other in the manner of a cyclic permutation. There is no guarantee that the master problem will find a solution over the reconfigured RST network with the desired number of paths, that is, of size |P¯ |. In such a case, the original problem is re-visited to find another set of feasible paths from the branch-and-price tree, and another RST network is configured accordingly to find a path permutation solution of size equal to |P¯ |. The process can be continually repeated until a path permutation solution of the desired size is found, or

5.4 Problem Reduction Techniques

155

terminated with the best integer solution after a pre-determined number of unsuccessful attempts. It is important to note that solution symmetries might exist in which the same unsuccessful termination condition can be produced by more than one collection of paths. In other words, if a set of paths produces a failed attempt at a solution, it may be possible to find a different set of paths which can generate an identical termination configuration as the previous failed attempt. Such a phenomenon can be handled in a heuristic manner by creating a tabu list of collections of sink arcs. The tabu list can be further employed to prune nodes in the branch-and-price tree. In addition to the tabu list, flow constraints for the path termination configuration may be added to each unexplored node of the search tree. When a termination condition A′− (τ ) for a set of paths P¯ fails to produce a path permutation solution of the desired size, the following constraint can be included: X

X

p∈P ′

(u,v)∈A′− (τ )

xuvp λp ≤ |P¯ | − 1.

(5.28)

The constraint given by (5.28) can be added to each unexplored node in the search tree in order to prevent the unsuccessful termination configuration from being regenerated. Each constraint will introduce a new dual cost to the subproblem which must be applied to each sink arc (u, v) ∈ A′− (τ ). Further Examples An example of a cyclic permutation of schedules can be found in Figure 5.10. The example given is for Test Problem 16, where TE = 10, TR = 0 and T = 3×(TE +TR ).17 The numbers down the left-hand-side of Figure 5.10 correspond to the patrol boats, that is, they are indexed from 1 to 10. The permutation solution is denoted by (1)(2)(3)(4)(5)(6)(7, 8, 9, 10).18 This means that patrol boats 1 through 6 end the planning horizon in the same state that they began.19 In addition, patrol boat 7 ends the planning period in a state identical to the initial state of patrol boat 8. Patrol boat 8 ends in the initial state of 9, whereas 9 ends in the initial state of 10. Finally, patrol boat 10 ends in the initial state of 7, the beginning of the sub-cycle. 17

A description of the schedule solution notation can be found at the beginning of Appendix F. See Appendix A for a description of permutation notation. 19 That is, each patrol boat ends up at the same location where it began, and with the same amount of resource consumption. 18

156

7

2

5

3

6

4

1

5

3

6

4

7

2

Fig. 5.9 Example RST network showing a set of paths which collectively satisfy a covering path permutation solution. The permutation in this example can be written as (1, 4, 6, 3, 5, 2, 7). Qualitatively, this means that path 1 is continued by path 4, which is continued by path 6,..., which is continued by path 7, which is continued by path 1,... The grey shading denotes patrol arcs which cover a given patrol period. Note that some patrol periods are covered by more than one path.

Patrol Boat Routing and Scheduling with Replenishment: Part II

1

5.4 Problem Reduction Techniques 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.

157

|00|03|03|03|03|03|03|03|03|03|00|..|02|02|02|02|02|02|02|..|00|01|01|01|01|01|01|01|01|01 |..|00|..|05|05|05|05|05|05|05|..|00|04|04|04|04|04|04|04|04|04|00|..|..|06|06|06|06|06|.. |06|06|06|..|..|00|01|01|01|01|01|01|01|01|01|00|03|03|03|03|03|03|03|03|03|00|..|..|06|06 |01|01|01|01|01|01|00|..|..|06|06|06|06|06|..|..|00|..|02|02|02|02|02|02|02|..|00|01|01|01 |02|02|02|02|02|01|01|00|03|03|03|03|03|03|03|03|03|00|..|..|06|06|06|06|06|..|..|00|..|02 |..|..|06|06|06|06|06|..|..|00|..|02|02|06|06|06|06|..|..|00|..|05|05|05|05|05|05|05|..|00 |..|00|04|04|04|04|04|00|..|05|05|05|05|05|05|05|..|00|04|04|04|04|04|04|04|00|..|05|05|05 |05|05|05|05|..|00|04|04|04|04|04|04|04|00|..|05|05|05|05|05|05|05|..|00|04|04|04|04|04|04 |04|04|04|00|..|..|06|06|06|06|02|02|..|00|..|..|06|06|06|06|06|..|..|00|03|03|03|03|03|03 |03|03|00|..|02|02|02|02|02|02|02|..|00|01|01|01|01|01|01|01|01|01|00|..|02|02|02|02|02|02

Fig. 5.10 An example of a complete coverage solution for Test Problem 16, where TE = 10 and TR = 0. The schedules form a path permutation solution over the planning horizon T = 30. This solution can be expressed as a juxtaposition of disjoint cycles as follows: (1)(2)(3)(4)(5)(6)(7, 8, 9, 10). Finally, Figure 5.9 contains an illustrative depiction of what a permutation solution might look like over an example RST network.

5.4.2

Rolling Horizon

In the pursuit of scheduling solutions which can provide complete coverage in the long-term, one may not necessarily require that the patrol boat schedules should permute cyclically. Furthermore, in cases where cyclic scheduling solutions are difficult to find over a defined planning block, alternative methods of extending the schedules need to be considered. There may also be other factors which render cyclic scheduling solutions undesirable, for example, in adversarial contexts where it is advantageous for individual patrol boat schedules to exhibit less predictable behaviour. Therefore, in order to provide a candidate alternative, we propose a rolling horizon approach to finding long-term scheduling solutions. The formulation of a rolling horizon approach for long-term scheduling solutions is very similar to the path permutation method outlined in the previous section, but with one fundamental difference. Once a solution over the initial RST network is found, the source arcs are updated in the manner yielding (5.26). The sink arcs, however, remain unaltered, and so the constraints for the source and sink arcs in the re-configured RST network will be given by: X

xsvp λp ≥ 1,

∀(s, v) ∈ A′+ (s),

(5.29)

xuτ p λp ≥ 0,

∀(u, τ ) ∈ A− (τ ).

(5.30)

p∈P ′

X p∈P ′

Once a solution matching the desired number of paths has been found over

Patrol Boat Routing and Scheduling with Replenishment: Part II

158

the updated network, the terminal configuration can be used to initialize another planning horizon block, and the process may continue until a desired planning length has been achieved.20 In the event that an initial configuration for a planning block produces an unsuccessful result, it is added to a branch-and-price tabu list in the manner described in the previous section.

5.4.3

Clustering

An article by Desaulniers et al. [31] suggests that problem partitioning can be used as pre-processing technique in order to decompose large-scale problems into smaller ones. Decomposition in the temporal domain was considered in the previous sections, where we saw how a large-scale planning horizon can be built out of smaller ones via a path permutation or rolling horizon approach. In the spatial domain, a patrol network may be decomposed into smaller geographical subsets, and each subset solved separately. The solutions are then recombined to form a single solution which satisfies the original unified network. This clustering technique is likely to be advantageous for large-scale spatial networks (involving a large number of patrol regions and ports) and for symmetric networks for certain choices of T , TE and TR . For example, Test Problem 19 (shown in Figure 5.11) is a large-scale spatial network with symmetry. One clustering approach to this problem is to solve for half the network (see the broken red border in Figure 5.11) and then duplicate the solution for the other half of the network. 04

(i)

05

06

03

07

09

08

02

10

11

01

12

13

14

15

00

Fig. 5.11 Partitioning of Test Problem 19 into halves.

5.4.4

Resource Depth Control Parameter

In order to extend a solution using either the path permutation or rolling horizon approach, the terminal configuration of an initial planning block is used to initialize a new planning block. In some instances, a terminal configuration in which a patrol 20

Each new planning block may be of the same length, or differently sized blocks may be joined together.

5.5 Benchmark Problems

159

boat has a small or no amount of resource remaining (at a given patrol region i ∈ Vpatrol ) may prove impossible to extend into a new planning block using the same number of paths. In such cases, setting a threshold on the maximum amount of resource consumed at the final time interval in each patrol region may render the solution extension process easier. The terminal resource consumption condition can be implemented by removing a given number of sink arcs from the lower layers of patrol region in the RST network. One approach is described below. We introduce a terminal resource depth restriction parameter dˆT ∈ Z+ . For all i ∈ Vpatrol and j ∈ {1, . . . , dˆT + 1}, the sink arcs (u, τ ) are deleted from A− (τ ), where u = (i, Ni − j + 1, T ).21 For example, when dˆT = 0, the arc (u, τ ) such that u = (i, Ni , T ) is deleted from A− (τ ) for each patrol region i ∈ Vpatrol . When dˆT = 1, we delete the sink arc with u = (i, Ni , T ) and the sink arc with u = (i, Ni − 1, T ) for each patrol region i ∈ Vpatrol . When using this technique, care must be taken to ensure that the selection of dˆT is sensible for the patrol network under consideration. Some experimentation on the RST network may be required to ascertain an appropriate choice for dˆT . An appropriate choice for the parameter can be defined as one which does not significantly alter the number of paths used in the root node solution.

5.5

Benchmark Problems

In this section, the branch-and-price heuristics introduced in Section 5.3 are combined with the problem reduction techniques outlined in Section 5.4 and applied to a variety of problem instances over the range of patrol networks listed in Table 5.1 (and Appendix D). The problem instances are solved with the path permutation method where possible. However, in cases where a good path permutation solution is difficult to find, the rolling horizon approach is used instead.

5.5.1

Path Permutation Problems

Path permutation solutions are sought for the list of problem instances in Table 5.4. The initial RST network under which the branch-and-price approach is applied has a planning horizon of length T1 , while the updated RST network, over which the 21

Recall that Di = {0, . . . , Ni } denotes the resource layers of patrol region i ∈ Vpatrol , where Ni = i i TE − Rmin , and Rmin is the transit time to the closest port from patrol region i.

160

Patrol Boat Routing and Scheduling with Replenishment: Part II

path permutation solution is sought, has a planning horizon of length T2 . For all the problem instances given in Table 5.4, we have T1 ≤ T2 . Table 5.4 also lists the depth restriction parameter selected for each problem instance. We write dˆT = −1 when the depth restriction parameter technique is not used. In addition, Table 5.4 contains a column with the heading B.Co, which gives the "bounds constraint" on the number of paths used in the master problem of each problem instance. In most P cases, the lower bound derived in Section 4.9.2 is used ( p∈P λp ≥ κmin ). When the standard bounds constraint is not used, a more appropriate bound (based on the root node solution) for the problem instance is selected. The values for κi for all i ∈ Vpatrol are also given in Table 5.4.22 The number of nodes and arcs in the RST networks for the problem instances can be found in Table 5.5. Table 5.6 summarizes the branch-and-price performance on the path permutation test problem instances over the initial RST network (planning horizon length T1 ). The column headings are given as follows: No. − the number of nodes explored (fathomed) in the branch-and-price search tree, De. − the depth of the search tree at which the path permutation solution is found, F. − the number of nodes pruned (fails) in the search tree, H. − the number of times the heuristic fails to find a path permutation solution, A.Col. − the average number of columns generated per node, Ti. − the CPU time (seconds) taken to find the solution, Branch − the branching strategy used. Separate branching strategies may be selected for the initial RST network (planning horizon length T1 ) and the permutation RST network (planning horizon length T2 ). The branching strategies are given for the range of problem instances under the "Branch" heading in Table 5.6. Recall that the branching heuristic selects combinations of RST network arc variables to branch on. In Table 5.6, we have R for replenishment arcs, S+ for source arcs, S− for sink arcs, and T for transit arcs. For example, the strategy denoted by (S− , T), (R, T) means that the combination (S− , T) is used for the branching strategy in the initial RST network, while (R, T) is the branching strategy used in the permutation RST network. Table 5.7 summarizes the integer path permutation solutions found for each problem instance. The column headings are: Bo. − the number of patrol boats, Pa. − the aggregate time spent on patrol, N.Pa. − the aggregate time spent on nonpatrol activities, Tr. − the aggregate transit time, Re. − the aggregate time spent replenishing resources at port, Po. − the aggregate idle time at port. 22

A value of 0 means that the constraints containing κi are omitted from the master problem.

Inst.

Pr.

T2

TE

TR

dˆT

κi

B.Co.

Inst.

T1

T2

TE

TR

dˆT

κi

B.Co.

16 28 28 24 30 30 18 25 30 28 13 14 17 18 14 16 20 12 18 22 30 15 15 28 28 19 34 34

48 56 56 48 30 60 36 50 30 56 26 28 34 36 28 32 40 24 36 44 30 30 30 56 56 38 34 34

16 24 28 12 30 10 18 23 10 28 13 14 16 18 12 14 18 12 14 20 26 15 15 24 24 19 16 16

0 4 0 0 0 5 0 2 0 0 0 0 1 0 2 2 2 0 4 2 4 0 0 4 4 0 1 1

2 6 6 1 8 0 3 3 2 4 2 2 3 3 3 2 4 2 4 5 6 3 3 5 2 4 2 -1

0 2 2 0 0 0 2 2 2 0 0 0 0 2 0 2 0 0 0 0 0 2 0 2 0 0 0 0

≥ κmin ≥ κmin ≥ κmin ≥ κmin ≤5 ≥ κmin ≥ κmin ≥ 18 ≥ κmin ≥ κmin ≥ κmin ≥ κmin ≥ κmin ≤ 15 ≥ 23 ≥ 21 ≥ 19 = 12 = 14 = 12 ≥ κmin ≤9 ≤6 ≥9 ≤6 ≤ 17 ≥ κmin ≥ κmin

10_d 10_i 40 10_g 10_ii 32 11_a 11 17 11_b 11 16 12_a 12 12 12_b 12 14 12_c 12 18 13_a 13 25 13_b 13 28 14_a 14 19 14_b 14 30 15_a 15 58 15_b 15 74 16_a 16 30 16_b 16 16 16_c 16 26 16_d 16 27 17_a 17 18 17_b 17 30 17_c 17 34 17_d 17 42 18_a 18 48 18_b 18 32 18_c 18 72 19_a 19 19 19_b 19 30 19_c 19_i 22 20_a 20 37 20_b 20 40

60 32 34 32 24 28 36 25 28 38 30 58 74 30 16 26 27 36 30 34 42 48 64 72 38 30 44 37 40

16 28 15 16 12 14 18 21 24 17 26 27 37 10 16 22 27 16 26 30 42 14 28 36 16 26 20 32 40

4 4 2 0 0 0 0 4 4 2 4 2 0 5 0 4 0 2 4 4 0 2 4 0 3 4 2 5 0

2 3 3 2 1 2 4 6 8 4 8 3 3 2 2 6 4 3 6 4 8 3 3 4 3 8 5 4 10

2 2 2 0 0 0 2 2 2 2 2 2 2 2 0 0 2 0 0 2 0 2 2 2 0 0 0 2 2

≥ κmin ≥ κmin ≥ 16 ≥ 14 ≥ 21 ≥ 20 ≥ 19 ≥ 15 ≥ κmin ≥ κmin ≥ κmin ≥ κmin ≥ κmin ≥ 15 ≥ κmin ≥ κmin ≥ κmin ≥ 11 ≥ κmin ≥ κmin ≥ κmin ≥ κmin ≥ κmin ≥ κmin ≥ 18 ≥ κmin ≥ κmin ≥ κmin ≤4

Pr.

161

1_b 1 1_c 1 1_d 1 2_a 2 2_b 2 3_a 3 3_b 3 4_a 4 5_a 5 5_b 5 6_a 6 6_b 6 6_c 6 6_d 6 7_a 7 7_b 7 7_c 7 8_a 8 8_b 8 8_c 8 8_d 8 9_a 9_i 9_b 9_ii 9_c 9_i 9_d 9_ii 10_a 10 10_b 10_i 10_c 10_ii

T1

5.5 Benchmark Problems

Table 5.4 Input data for the branch-and-price path permutation problems.

162

Inst. N.Nodes

N.Arcs

Inst.

N.Nodes

N.Arcs

Inst.

N.Nodes

N.Arcs

Inst.

N.Nodes

N.Arcs

1_b 1_c 1_d 2_a 2_b 3_a 3_b 4_a 5_a 5_b 6_a 6_b 6_c 6_d 7_a

12,701 27,805 34,295 6,833 15,074 5,421 6,705 62,353 15,147 98,805 17,672 20,960 30,134 36,869 27,811

7_b 7_c 8_a 8_b 8_c 8_d 9_a 9_b 9_c 9_d 10_a 10_b 10_c 10_d

5,534 9,000 2,689 4,641 8,069 7,237 2,544 1,930 7,763 5,594 7,429 2,215 985 3,854

37,145 63,819 16,040 28,730 52,260 46,100 11,516 7,334 37,431 22,750 35,349 8,319 2,456 14,666

10_g 11_a 11_b 12_a 12_b 12_c 13_a 13_b 14_a 14_b 15_a 15_b 16_a 16_b

1,721 5,268 5,329 4,823 6,518 10,677 4,125 5,381 2,430 3,327 3,547 6,756 1,505 1,438

4,616 30,578 31,080 23,095 31,860 53,617 14,594 19,193 8,009 11,183 12,426 24,727 8,324 8,471

16_c 16_d 17_a 17_b 17_c 17_d 18_a 18_b 18_c 19_a 19_b 19_c 20_a 20_b

3,251 4,209 2,751 4,165 5,541 9,899 2,068 6,378 9,497 7,040 9,318 5,140 3,009 4,229

20,306 26,750 12,992 20,426 27,498 50,084 7,031 25,489 39,038 26,878 36,224 18,326 11,483 16,570

3,344 6,624 7,990 1,870 3,417 1,657 1,893 8,282 2,027 10,897 3,420 3,991 5,583 6,714 4,114

Patrol Boat Routing and Scheduling with Replenishment: Part II

Table 5.5 Number of nodes and arcs for the RST networks of the path permutation problems with T = T2 .

No. De.

1_b 1_c 1_d 2_a 2_b 3_a 3_b 4_a 5_a 5_b 6_a 6_b 6_c 6_d 7_a 7_b 7_c 8_a 8_b 8_c 8_d 9_a 9_b 9_c 9_d 10_a 10_b 10_c

19 3 11 7 5 7 5 3 49 9 93 121 33 411 463 95 11 297 13 201 45 93 95 175 65 223 41 13

5 3 6 4 4 5 3 3 13 6 16 18 6 20 14 13 6 16 7 17 19 12 10 19 10 23 12 7

F. 2 0 0 0 0 0 0 0 2 0 8 16 4 96 124 20 0 46 0 32 3 22 22 38 4 40 10 1

H. A.Col. 5 0 1 0 1 1 0 0 0 0 8 0 0 29 3 18 0 9 2 1 1 4 0 12 1 1 0 2

7.5 5.3 2.7 8.3 23.4 24.3 1.8 0.0 35.4 9.8 9.5 3.2 9.5 22.4 3.2 13.0 18.2 4.9 2.4 6.6 15.9 4.5 0.6 12.8 10.6 3.4 8.3 6.9

Ti.

Branch

217.2 T, (R, T) 11.3 (S− , T), T 46.3 T, (R, T) 2.2 T, (R, T) 1.8 T, T 1.7 T, T 0.7 T, (R, T) 88.5 T, T 67.2 T, T 50.1 T, T 44.8 T, T 30.5 T, T 54.1 T, T 466.2 (S− , T), T 221.5 T, T 270.0 T, T 436.8 (S− , T), T 79.3 T, T 48.8 T, T 308.4 T, T 98.5 (R, S+ , T), T 12.8 T, T 10.1 T, T 145.8 T, T 28.6 T, T 458.5 T, T 8.6 T, T 1.5 T, T

Inst.

No. De.

10_d 10_g 11_a 11_b 12_a 12_b 12_c 13_a 13_b 14_a 14_b 15_a 15_b 16_a 16_b 16_c 16_d 17_a 17_b 17_c 17_d 18_a 18_b 18_c 19_a 19_b 19_c 20_a 20_b

11 67 7 93 97 181 19 33 403 47 3 17 47 133 287 185 115 17 15 21 11 7 21 19 107 3 7 365 3

6 12 4 19 22 20 9 9 18 8 3 6 9 12 31 17 21 7 5 5 5 4 10 8 13 3 4 19 3

F.

H.

A.Col.

Ti.

Branch

0 26 0 14 20 33 0 3 146 6 0 1 6 18 40 20 14 4 2 0 0 0 3 1 38 0 0 80 0

0 0 1 16 11 18 0 4 5 0 0 2 10 16 24 3 16 1 3 0 0 0 4 6 1 0 0 44 0

39.4 0.7 23.0 26.3 16.0 17.1 13.7 43.2 43.0 10.8 38.0 33.8 34.1 64.7 22.2 30.6 37.4 2.9 43.7 106.9 23.7 62.3 38.7 31.9 9.5 32.7 27.3 12.5 21.0

20.1 2.4 139.3 434.3 197.6 356.3 2,941.9 37.3 924.6 17.6 4.4 10.7 61.4 74.0 109.3 207.1 161.6 171.5 39.9 183.5 46.9 13.7 13.8 33.5 131.3 12.9 26.6 53.1 3.4

T, T T, T (S− , T), T (S− , T), T (S− , T), T (S− , T), T (S− , T), T (S− , T), T (R, T), T (S− , T), T (R, T), T T, T T, T T, T T, T T, (R, T) T, (R, T) T, T T, T (R, T), T T, T (S− , T), (R, T) T, (R, T) T, (R, T) (S− , T), T T, T (S− , T), (R, T) T, T T, T

163

Inst.

5.5 Benchmark Problems

Table 5.6 Branch-and-price data for path permutation problems.

164

Table 5.7 Integer solutions for the branch-and-price path permutation problems. Bo.

Pa.

N.Pa.

1_b 1_c 1_d 2_a 2_b 3_a 3_b 4_a 5_a 5_b 6_a 6_b 6_c 6_d 7_a 7_b 7_c 8_a 8_b 8_c 8_d 9_a 9_b 9_c 9_d 10_a 10_b 10_c

10 10 8 6 5 8 4 18 10 8 16 16 16 15 23 21 19 12 14 12 12 9 6 9 6 17 8 3

298 343 340 192 120 192 108 523 216 398 299 330 393 431 398 436 551 232 334 424 279 183 140 348 248 478 174 72

182 217 108 96 30 288 36 377 84 50 117 118 151 109 246 236 209 56 170 104 81 87 40 156 88 168 98 30

Tr.

Re.

180 0 137 80 108 0 96 0 30 0 128 160 36 0 303 74 84 0 49 0 117 0 118 0 117 34 108 0 152 92 149 86 132 74 55 0 58 112 54 50 33 48 86 0 40 0 80 72 40 48 168 0 82 16 24 6

Po.

Inst.

Bo.

Pa.

N.Pa.

2 0 0 0 0 0 0 0 0 1 0 0 0 1 2 1 3 1 0 0 0 1 0 4 0 0 0 0

10_d 10_g 11_a 11_b 12_a 12_b 12_c 13_a 13_b 14_a 14_b 15_a 15_b 16_a 16_b 16_c 16_d 17_a 17_b 17_c 17_d 18_a 18_b 18_c 19_a 19_b 19_c 20_a 20_b

9 3 16 14 21 20 19 15 14 10 8 5 4 15 8 9 7 11 9 9 7 8 6 5 18 16 8 5 4

300 68 380 360 411 467 593 236 262 204 153 176 222 186 96 163 162 225 182 216 254 195 265 300 470 364 271 112 120

240 27.9 164 88 93 93 93 139 130 176 87 114 74 264 32 71 27 171 88 90 40 189 119 60 214 116 81 73 40

Tr.

Re.

132 108 16 12 100 64 88 0 92 0 91 0 90 0 79 60 74 56 136 40 54 32 94 20 74 0 114 150 32 0 35 36 27 0 126 44 52 36 53 36 40 0 138 50 69 48 60 0 106 108 52 64 48 32 48 25 40 0

Po. 0 0 0 0 1 2 3 0 0 0 1 0 0 0 0 0 0 1 0 1 0 1 2 0 0 0 1 0 0

Patrol Boat Routing and Scheduling with Replenishment: Part II

Inst.

5.5 Benchmark Problems

165

From Table 5.7, it can be seen that in the majority of solutions obtained, the patrol boats spend zero aggregate idle time at port. However, a small number of problem instances do contain a few units of additional idle time. In such cases, this waiting time is required to allow the patrol boat paths to align in a manner which satisfies the permutation constraints. Tables 5.8 and 5.9 contain three problem instances which fortuitously solve at the root node and, by inspection, exhibit cyclic behaviour, thus constituting path permutation solutions. Representations of these solutions in schedule notation can be found in Appendix F. Table 5.8 Input data for the problem instances which solve at the root node. Inst.

Pr.

T

TE

TR

N.Nodes

1_a 1 88 10_e 10_ii 60 20_b 20 45

18 16 13

4 4 2

7,122 1,710 1,014

N.Arcs dˆT

κi

B.Co.

28,451 4,379 2,857

2 0 2

≥ κmin ≥ κmin ≥ κmin

3 -1 3

Table 5.9 Integer solutions for the root node problems.

5.5.2

Inst.

Col.

Ti.

Bo.

Pa.

N.Pa.

1_a 10_e 20_b

452 6 101

8.4 0.0 0.1

12 4 9

576 144 135

480 96 270

Tr.

Re.

288 192 48 48 216 54

Po. 0 0 0

Rolling Horizon Problems

In addition to the path permutation problem instances given in Table 5.4 and Table 5.8, there are five problem instances outlined in Table 5.10 which are chosen for a rolling horizon solution approach. For each problem instance, an integer solution is obtained over the first planning horizon block (the first run) using the default bounds constraint. The bounds constraint employed in all subsequent runs imposes a lower bound equal to the number of paths used in the initial integer solution (this can be seen in the B.Co. column of Table 5.4). An additional ten runs are executed on each problem instance after the first run. In most cases, the length of the planning horizon block in each run is the same, the exception being problem

Patrol Boat Routing and Scheduling with Replenishment: Part II

166

12_d, where T = 12 for the first run and T = 18 for all subsequent runs. The branchand-price strategy adopted over all problem instances and all runs is to select only the most fractional transit arc for branching (the T strategy). Table 5.10 Input data for the rolling horizon problem instances. Inst.

Pr.

Run

T

TE

TR

N.Nodes

N.Arcs

dˆT

κi

B.Co.

4_b 4_c 10_f

4 4 10_i

1-11 1-11 1-11

44 25 32

40 23 28

4 2 4

14,956 4,231 4,068

137,393 31,305 16,357

6 3 6

2 2 0

≥ κmin , ≥ 14 ≥ κmin , ≥ 17 ≥ κmin , ≥ 7

12_d

12

1 2-11

12 18

12 12

0 0

2,498 3,670

11,808 17,456

2 2

2 2

≥ κmin ≥ 20

19_d

19_i

1-11

19

18

1

2,050

6,954

3

2

≥ κmin , ≥ 8

The root node results for each run over all problem instances are given in Table 5.11 for Instance 4_b, 4_c, and 10_f, and Table 5.12 for Instance 12_d and 19_d. In Table 5.11, it can be seen that after the initial planning horizon block has been solved, the majority of runs that follow are integral at the root node. This is in contrast to Table 5.12, where branching is required over most of the planning horizon blocks. Runs that possess a root node solution are indicated by a ’Yes’ entry in the Root? column, while runs that do not are indicated by a ’No’ entry in red font. Instance 4_b, although solved with the rolling horizon approach, is seen to exhibit cyclic behaviour, and a path permutation solution can be discerned (see Figure F.10 in Appendix F). The same can be said of Instance 10_f, where the path permutation can be inferred from patrol boat schedules 1 − 7 in Figure F.31 of Appendix F. The solution for Instance 4_c possesses a regular structure which can be clearly inferred from Figure F.11 in Appendix F. Although no path permutation can be directly observed, the regular structure of the solution and the consistent root node integrality property of the path extension process suggest that a cyclic solution is likely to exist for Instance 4_c with an equivalent number of patrol boats. For each run in Table 5.11 and Table 5.12 which does not solve at the root node, the branch-and-price approach using the T branching strategy is applied to extend the integer solution. A summary of these results can be found in Table 5.13. The results for Instance 12_d show that the aggregate time for each activity does not vary over all the runs. While this seems to suggest regularity, it is nonetheless difficult to extract a clear schedule structure from Figure F.34 in Appendix F.

5.5 Benchmark Problems

167

Table 5.11 Root node solution summaries for rolling horizon problem instances 4_b, 4_c and 10_f. Inst.

Run

Col.

Ti.

Root?

Bo.

Pa.

4_b

1 2 3 4 5 6 7 8 9 10 11

460 433 522 466 241 635 575 570 619 237 595

20.4 16.3 19.3 13.2 6.3 19.0 24.6 17.3 21.5 13.4 19.8

No Yes Yes Yes No Yes Yes Yes Yes No Yes

14.0 448.0 14 448 14 448 14 448 15.0 480.0 14 448 14 448 14 448 14 448 15.0 480.0 14 448

4_c

1 2 3 4 5 6 7 8 9 10 11

264 251 237 241 272 238 196 244 210 227 271

2.0 2.1 1.9 1.6 2.0 1.6 1.4 1.8 1.4 1.7 2.2

No Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes

17.0 17 17 17 17 17 17 17 17 17 17

10_f

1 2 3 4 5 6 7 8 9 10 11

138 155 80 184 178 215 128 148 163 184 178

0.9 1.5 0.5 1.1 1.0 1.4 0.8 0.9 1.1 1.2 1.4

No Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes

7.0 7 7 7 7 7 7 7 7 7 7

N.Pa.

Tr.

Re.

Po.

168.0 168 168 168 180.0 168 168 168 168 180.0 168

106.0 62.0 106 62 106 62 106 62 114.0 66.0 106 62 106 62 106 62 106 62 114.0 66.0 106 62

0.0 0 0 0 0.0 0 0 0 0 0.0 0

255.0 255 255 255 255 255 255 255 255 255 255

170.0 170 170 170 170 170 170 170 170 170 170

126.8 136 136 136 136 136 136 136 136 136 136

34.0 34 34 34 34 34 34 34 34 34 34

9.2 0 0 0 0 0 0 0 0 0 0

162.0 162 162 162 162 162 162 162 162 162 162

62.0 62 62 62 62 62 62 62 62 62 62

33.0 33 33 33 33 33 33 33 33 33 33

28.0 29 29 29 29 29 29 29 29 29 29

1.0 0 0 0 0 0 0 0 0 0 0

Patrol Boat Routing and Scheduling with Replenishment: Part II

168

Table 5.12 Root node solution summaries for rolling horizon problem instances 12_d and 19_d. Inst.

Run

Col.

Ti.

Root?

Bo.

Pa.

N.Pa.

Tr.

Re.

Po.

12_d

1 2 3 4 5 6 7 8 9 10 11

213 443 407 460 509 416 397 427 527 439 412

1.0 2.3 2.4 2.4 2.6 2.1 2.1 2.3 3.9 2.6 2.4

No No No No No No No No No No No

20.0 20.0 20.0 20.0 20.0 20.0 20.0 20.0 20.0 20.0 20.0

200.0 296.0 296.0 296.0 296.0 296.0 296.0 296.0 296.0 296.0 296.0

40.0 64.0 64.0 64.0 64.0 64.0 64.0 64.0 64.0 64.0 64.0

40.0 64.0 64.0 64.0 64.0 64.0 64.0 64.0 64.0 64.0 64.0

0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0

0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0

19_d

1 2 3 4 5 6 7 8 9 10 11

249 293 292 339 312 332 303 354 306 332 375

0.6 0.7 1.3 0.7 0.6 0.9 0.7 0.8 1.3 1.0 0.8

No No Yes Yes No No No Yes No No Yes

7.8 8.0 8 8 8 8 8 8 8.0 8.0 8

120.4 121.5 119 120 119.5 119.0 121.0 120 120.5 119.0 119

27.3 31.5 33 32 33.4 33.0 310.0 32 32.4 33.0 33

19.5 23.3 25 24 24.9 25.0 23.0 24 23.9 25.0 25

7.8 8.2 8 8 8.5 8.0 8.0 8 8.5 8.0 8

0.0 0.0 0 0 0.1 0.0 0.0 0 0.1 0.0 0

Inst.

Run

No. De.

H. A.Col.

4_b

1 5 10

3 3 2

4_c

1

10_f

Ti.

Bo.

Pa.

N.Pa.

Tr.

Re.

Po.

3 3 3

0 0 0

0 2 0

29.0 237.3 204.5

19.1 65.6 90.3

14 14 14

448 448 448

168 168 168

106 106 106

62 62 62

0 0 0

9

5

0

0

5.1

4.5

17

255

170

136

34

0

1

3

3

0

0

11.3

2.3

7

162

62

34

26

2

12_d

1 2 3 4 5 6 7 8 9 10 11

43 4 9 4 22 5 8 6 51 6 25

16 5 8 5 8 4 7 6 10 6 10

2 0 0 0 0 2 0 0 14 0 8

1 1 0 0 0 0 0 0 0 0 0

18.1 39.8 41.8 67.3 74.5 68.6 53.1 63.5 49.2 50.3 50.6

35.0 28.0 140.6 243.5 88.4 51.4 20.2 689.7 182.7 27.9 74.6

20 20 20 20 20 20 20 20 20 20 20

200 296 296 296 296 296 296 296 295 296 296

40 64 64 64 64 64 64 64 65 64 64

40 64 64 64 64 64 64 64 65 64 64

0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0

19_d

1 2 5 6 7 9 10

87 27 16 30 2 5 2

9 13 8 8 3 6 3

10 0 8 8 0 0 0

8 0 0 15 0 1 0

25.1 18.4 31.4 82.0 11.5 81.2 11.5

20.1 30.7 10.9 28.1 0.8 4.0 0.9

8 8 8 8 8 8 8

120 119 118 119 121 119 119

32 33 34 33 31 33 33

24 24 25 25 23 24 25

8 9 9 8 8 9 8

0 0 0 0 0 0 0

169

F.

5.5 Benchmark Problems

Table 5.13 Branch-and-price and integer solution data for the rolling horizon problems. The branching rule is T, T for each planning block of each problem instance.

Patrol Boat Routing and Scheduling with Replenishment: Part II

170

5.5.3

Discussion of Results

Firstly, it worth noting that the selection of a branching strategy along with configuring the resource depth control parameter and the (de)activation of the κ constraints is not a straightforward process. The selection and configuration of these heuristic features of the solution approach is akin to fine-tuning a set of dials for a particular problem instance. The choice of the settings on the various components of the solution approach is largely dependent on the network topology and the combination of endurance, replenishment break duration and planning horizon length. In our case, this involved a trial-and-error approach on each problem instance. An interesting avenue for future research would be to determine more rigorously how to "turn the dials" to the correct settings for a given problem. The heuristic for the path permutation problems performs well on most problem instances, based on the number of times an attempt to find a cycle fails. The worst case performance is exhibited on Instance 20_a, where there are 44 unsuccessful attempts to find a cycle before one is obtained. However, given that Instance 20_a takes under a minute to solve, this is perhaps not that significant (in this instance). On the other hand, a case in which the heuristic performs very well (no failed attempts) is Instance 12_c, but this problem has the worst runtime performance over all the path permutation problem instances. This is more likely due to the large size of the RST network and the number quality feasible paths through it. Therefore, it is possible for the heuristic to perform well with slow runtime (12_c) and it is also possible for it to perform poorly with fast runtime (20_a). The rolling horizon approach can work well when integer root node solutions can be consistently found, as in the case of Instance 4_c and Instance 10_f. This is probably due to a Total Unimodualrity (TU)23 property of the final primal linear programs upon termination of the column generation procedure. Further investigation is required to determine if (and how) this structure is induced from the underlying network topology, planning horizon length, endurance and replenishment break duration. On the other hand, there are cases like Instance 4_b and Instance 19_d which deliver integer root node solutions about half the time, while Instance 12_d doesn’t contain the integer root node property at all. In these instances, where branch-and-price is invoked, the rolling horizon heuristic performs well in the majority of cases. The worst case result is iteration/run 6 of 19_d, where 15 fails occur. 23

See Nemhauser and Wolsey [93], Chapter III.1.

5.5 Benchmark Problems

171

However, given that the runtime is under half a minute, the effect is not so detrimental. By examination of the results arising from the implementation of the path permutation and rolling horizon heuristics, it can be seen that there are multiple factors which can influence the overall runtime performance. However, the most decisive factors affecting runtime performance appear to be the length of the planning horizon and the number of patrol regions. This observation, at the very least, highlights the utility of the decomposition/reduction techniques. By scaling down the temporal and spatial dimensions, larger problems can be solved in a piecemeal fashion much more efficiently. In the temporal domain, the decomposition techniques deliver an additional feature which proves to be quite useful, namely, the ability to find scheduling solutions which can be extended indefinitely or satisfied in the long-term.

5.5.4

Presentation of Benchmarks

Where appropriate, problem instances created from clusters of patrol networks may be combined to form single solutions. The problem instances that can be combined are 9_a and 9_b, 9_c and 9_d, 10_b* and 10_c, 10_d* and 10_e, 10_g and 10_f*.24 A * indicates that there exist additional copies of the cluster in the wider patrol network, and hence, a single solution may be achieved through exploiting these symmetries. For example, 19_d* is the solution formed by two copies of Instance 19_d, since it assumes cluster 19_i, which makes up one half of Test Problem 19 (see Figure 5.11). The solutions to all the test problem instances of Table 5.4, Table 5.8 and Table 5.10 can be collected to form a set of 60 benchmark problems. These are summarized in Table 5.14. The values under the Test column heading correspond to the condition given by (4.154), that is: Test :=

|L| + C.LP + 1, T′

(5.31)

where C.LP is the linear programming relaxation of the minimum non-patrol time problem.25 T ′ is a test planning horizon length. It is distinguished by a primed 24

Combinations of problem instances assume the same endurance and replenishment break time for the patrol boats. 25 The linear programming relaxations corresponding to the benchmark problems can be inferred

172

Patrol Boat Routing and Scheduling with Replenishment: Part II

symbol because a path permutation solution to a problem instance may not necessarily be optimal over the planning horizon T1 for which it was originally solved. However, if a solution is optimal for T ′ > T1 , then it is also optimal for all planning horizon lengths greater than T ′ . Recall that Bo. corresponds to the number of patrol boats used in a solution to a problem instance. If Bo. < Test, then the solution is optimal, and this is indicated by a ’TR’ entry in green boldface font under the Opt? column heading. When this condition is not satisfied ( Bo. ≥ Test), the solution is not provably optimal, and a ’FA’ entry is given in the Opt? column. The value of Tsol gives the long-term planning horizon for which the solution given by the number of patrol boats Bo. is valid. An entry of ∞ means that the solution is a path permutation, and can therefore be extended indefinitely. The column heading N.LP refers to the linear programming relaxation of the minimum fleet size problem over the planning horizon T ′ . In cases where a solution to a problem instance is not provably optimal, this value may be used to obtain a lower integer bound on the optimal number of patrol boats by applying the ceiling function, that is: ⌈N.LP⌉ ≤ zsize ≤ Bo., (5.32) where zsize is the optimal objective value to the minimum fleet size problem. From Table 5.14, it can also be observed that ⌈N.LP⌉ = Bo. whenever Test returns a ’TR’ value.

from Tables E.4 − E.6 in Appendix E.

Inst.

T′

|L|

C.LP

Test

Opt?

Tsol

Inst.

Bo. N.LP

T′

|L|

C.LP

Test

Opt?

Tsol

12 10 10 8 6 5 8 4 18 14 17 10 8 16 16 16 15 23 21 19 12 14 12 12 15 15 17 19 22 17

22 48 56 56 48 30 60 36 50 44 25 30 56 26 28 34 36 28 32 40 24 36 44 30 30 56 38 34 60 32

132 288 336 336 192 120 180 108 500 440 250 210 392 286 308 374 396 364 416 520 216 324 396 270 300 560 456 408 720 384

120.0 180.0 200.0 96.0 96.0 20.0 288.0 32.0 340.0 168.0 170.0 74.5 40.0 97.6 94.8 125.8 86.8 210.3 195.6 175.1 44.0 168.0 88.0 72.0 83.2 193.5 147.4 207.6 552.0 138.7

12.45 10.75 10.57 8.71 7.00 5.67 8.80 4.89 17.80 14.82 17.80 10.48 8.71 15.75 15.39 15.70 14.41 21.51 20.11 18.38 11.83 14.67 12.00 12.40 13.77 14.46 16.88 19.11 22.20 17.33

TR TR TR TR TR TR TR TR FA TR TR TR TR FA FA FA FA FA FA FA FA TR FA TR FA FA FA TR TR TR

∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ 275 ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞

11_a 11_b 12_a 12_b 12_c 12_d 13_a 13_b 14_a 14_b 15_a 15_b 16_a 16_b 16_c 16_d 17_a 17_b 17_c 17_d 18_a 18_b 18_c 19_a 19_b 19_c* 19_d* 20_a 20_b 20_c

16 14 21 20 19 20 15 14 10 8 5 4 15 8 9 7 11 9 9 7 8 6 5 18 16 16 16 5 9 4

34 32 24 28 36 12 25 56 57 30 58 74 30 16 26 27 36 30 68 42 48 64 72 38 30 44 57 37 45 40

374 352 384 448 576 192 225 504 285 150 174 222 180 96 156 162 216 180 408 252 192 256 288 456 360 528 684 111 135 120

146.7 69.7 80.0 76.0 72.0 40.0 104.8 226.0 232.2 64.6 104.0 68.0 247.3 22.9 57.2 22.0 147.3 67.6 145.3 33.0 164.9 98.9 44.0 195.9 100.0 140.4 167.0 65.0 270.0 32.0

16.31 14.18 20.33 19.71 19.00 20.33 14.19 14.04 10.07 8.15 5.79 4.92 15.24 8.43 9.20 7.81 11.09 9.25 9.14 7.79 8.44 6.55 5.61 18.16 16.33 16.19 15.93 5.76 10.00 4.80

TR TR FA FA FA TR FA TR TR TR TR TR TR TR TR TR TR TR TR TR TR TR TR TR TR TR FA TR TR TR

∞ ∞ ∞ ∞ ∞ 192 ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ 209 ∞ ∞ ∞

12.0 10.0 10.0 8.0 6.0 5.0 8.0 4.0 17.0 14.0 17.0 9.6 8.0 15.0 14.6 14.9 13.6 20.6 19.2 17.5 11.0 14.0 11.0 12.0 12.9 13.5 16.0 18.2 21.3 16.3

15.3 13.3 20.0 19.0 18.0 20.0 13.2 13.2 9.3 7.2 5.0 4.0 14.4 7.4 8.2 7.0 10.4 8.3 8.0 7.0 7.6 5.6 5.0 17.2 15.3 15.3 15.0 5.0 9.0 4.0

173

1_a 1_b 1_c 1_d 2_a 2_b 3_a 3_b 4_a 4_b 4_c 5_a 5_b 6_a 6_b 6_c 6_d 7_a 7_b 7_c 8_a 8_b 8_c 8_d 9_ab 9_cd 10_a 10_bc* 10_de* 10_gf*

Bo. N.LP

5.5 Benchmark Problems

Table 5.14 Benchmark problems summary.

174

5.6

Patrol Boat Routing and Scheduling with Replenishment: Part II

Sensitivity Analysis

We conclude this chapter by providing an outline of how the column generation branch-and-price approach can be used to provide a sensitivity analysis of boat numbers to endurance and replenishment time. This work is based on the publication Chircop et al. [21], which was delivered at the 20th International Congress on Modelling and Simulation, Adelaide, South Australia, December 2013. We perform a comprehensive sensitivity analysis on Test Problem 5 (see Appendix D), which consists of three ports and seven patrol regions. This patrol operations network may be indicative of ports based on a central island with the requirement to supply complete coverage to the surrounding designated patrol regions. The maximum transit time between any two locations is 3 time units (e.g. moving from patrol region 05 to patrol region 08), and the minimum is 1 time unit (e.g. moving from patrol region 05 to patrol region 06). The branch-and-price approach adopted here seeks to find schedules for the minimum number of patrol boats which behave as cyclic permutations over a period of T , 2T or 3T , where T = TE + TR . The computational tests were performed by varying the endurance of the patrol boats from TE = 10 to TE = 35 and varying the length of the replenishment break from TR = 0 to TR = 5. For each pairing of endurance and replenishment break, the minimum number of patrol boats is recorded as well as the amount of patrol coverage supplied (100% being the minimum requirement). The behaviour of the number of patrol boats and the patrol coverage effort can be seen in Figure 5.13 and Figure 5.14, respectively. Figure 5.13 shows how the number of patrol boats changes with the endurance and replenishment time. The patrol boat numbers decrease as the endurance increases and as the replenishment time decreases. This type of chart could be used by decision makers to set performance goals for patrol boats based on desired numbers. Furthermore, decision makers may be able to gain insight into the fragility of a fleet’s capability to meet the complete coverage requirement by looking at the level of patrol coverage (schedule slack) afforded by each combination of endurance and replenishment time. Figure 5.14 illustrates this concept, showing the excess patrol coverage for the various replenishment times.26 We note the steep drop in the For a set of schedules P ∗ over a planning period T , the patrol coverage is 100 × percent. 26

P

¯p λp p∈P ∗ c T ×|Vpatrol |

5.6 Sensitivity Analysis

175

amount of excess patrol coverage whenever the number of patrol boats decreases by one. Charts of this type, when used in conjunction with a patrol boat numbers chart, may inform decision makers of the marginal return gained by increasing the maximum endurance.27 Endurance = 10 time units 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.

|..|00|..|02|02|02|02|02|02|02|..|00|..|00|..|02|02|02|02|02|02|02|..|00|..|00|..|02|02|02|02|02|02|02|..|00|..|00|..|02|02|02|02|02|02|02|..|00 |00|..|..|06|06|06|06|06|..|..|00|..|00|..|..|06|06|06|06|06|..|..|00|..|00|..|..|06|06|06|06|06|..|..|00|..|00|..|..|06|06|06|06|06|..|..|00|.. |01|01|01|01|01|01|01|01|00|..|00|04|04|04|04|04|04|04|04|04|00|..|00|01|01|01|01|01|01|01|01|01|00|..|00|04|04|04|04|04|04|04|04|04|00|..|00|01 |05|05|05|05|05|05|..|00|..|00|..|05|05|05|05|05|05|05|..|00|..|00|..|05|05|05|05|05|05|05|..|00|..|00|..|05|05|05|05|05|05|05|..|00|..|00|..|05 |06|06|06|06|..|..|00|..|00|..|..|06|06|06|06|06|..|..|00|..|00|..|..|06|06|06|06|06|..|..|00|..|00|..|..|06|06|06|06|06|..|..|00|..|00|..|..|06 |03|03|03|03|03|03|00|..|00|03|03|03|03|03|03|03|03|03|00|..|00|03|03|03|03|03|03|03|03|03|00|..|00|03|03|03|03|03|03|03|03|03|00|..|00|03|03|03 |02|02|02|02|..|00|..|00|..|02|02|02|02|02|02|02|..|00|..|00|..|02|02|02|02|02|02|02|..|00|..|00|..|02|02|02|02|02|02|02|..|00|..|00|..|02|02|02 |04|04|04|04|00|..|00|01|01|01|01|01|01|01|01|01|00|..|00|04|04|04|04|04|04|04|04|04|00|..|00|01|01|01|01|01|01|01|01|01|00|..|00|04|04|04|04|04 |..|..|00|..|00|..|..|06|06|06|06|06|..|..|00|..|00|..|..|06|06|06|06|06|..|..|00|..|00|..|..|06|06|06|06|06|..|..|00|..|00|..|..|06|06|06|06|06 |..|00|..|00|..|05|05|05|05|05|05|05|..|00|..|00|..|05|05|05|05|05|05|05|..|00|..|00|..|05|05|05|05|05|05|05|..|00|..|00|..|05|05|05|05|05|05|05 |00|..|00|03|03|03|03|03|03|03|03|03|00|..|00|03|03|03|03|03|03|03|03|03|00|..|00|03|03|03|03|03|03|03|03|03|00|..|00|03|03|03|03|03|03|03|03|03 |00|..|00|04|04|04|04|04|04|04|04|04|00|..|00|01|01|01|01|01|01|01|01|01|00|..|00|04|04|04|04|04|04|04|04|04|00|..|00|01|01|01|01|01|01|01|01|01

Endurance = 12 time units 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.

|00|..|02|02|02|02|02|02|02|02|02|..|00|..|00|01|01|01|01|01|01|01|01|01|01|01|00|..|00|..|02|02|02|02|02|02|02|02|02|..|00|..|00|01|01|01|01|01 |00|..|..|06|06|06|06|06|06|06|..|..|00|..|00|..|05|05|05|05|05|05|05|05|05|..|00|..|00|..|..|06|06|06|06|06|06|06|..|..|00|..|00|..|05|05|05|05 |03|03|03|03|03|03|03|03|03|03|00|..|00|..|..|06|06|06|06|06|06|06|..|..|00|..|00|03|03|03|03|03|03|03|03|03|03|03|00|..|00|..|..|06|06|06|06|06 |01|01|01|01|01|01|01|01|00|..|00|04|04|04|04|04|04|04|04|04|04|04|00|..|00|01|01|01|01|01|01|01|01|01|01|01|00|..|00|04|04|04|04|04|04|04|04|04 |05|05|05|05|05|..|00|..|00|..|02|02|02|02|02|02|02|02|02|..|00|..|00|..|05|05|05|06|06|06|06|06|..|..|00|..|00|03|03|03|03|03|03|03|03|03|03|03 |06|06|06|06|..|..|00|..|00|03|03|03|03|03|03|03|03|03|03|03|00|..|00|04|04|05|05|05|05|05|05|05|05|..|00|..|00|..|02|02|02|02|02|02|02|02|02|.. |02|02|02|01|01|00|..|00|01|01|01|05|05|05|05|05|05|04|04|00|..|00|..|02|02|02|02|02|02|02|02|01|01|00|..|00|01|01|01|05|05|05|05|05|05|04|04|00 |04|04|04|04|00|..|00|..|..|06|06|06|06|06|06|06|..|..|00|..|00|04|04|04|04|04|04|04|04|04|04|04|00|..|00|..|..|06|06|06|06|06|06|06|..|..|00|.. |..|..|00|..|00|01|01|01|01|01|01|01|01|01|01|01|00|..|00|..|..|06|06|06|06|06|06|06|..|..|00|..|00|01|01|01|01|01|01|01|01|01|01|01|00|..|00|.. |00|..|00|..|05|05|05|05|05|05|05|05|05|..|00|..|00|..|02|02|02|02|02|02|02|02|02|..|00|..|00|..|05|05|05|05|05|05|05|05|05|..|00|..|00|..|02|02 |00|..|00|04|04|04|04|04|04|04|04|04|04|04|00|..|00|03|03|03|03|03|03|03|03|03|03|03|00|..|00|04|04|04|04|04|04|04|04|04|04|04|00|..|00|03|03|03

Endurance = 14 time units 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.

|05|05|05|05|05|05|01|01|01|01|01|00|..|00|..|05|05|05|05|05|05|05|01|01|01|01|01|00|..|00|..|05|05|05|05|05|05|05|01|01|01|01|01|00|..|00|..|05 |02|02|02|02|02|02|02|02|02|..|00|..|00|..|02|02|02|02|02|02|02|02|02|02|02|..|00|..|00|..|02|02|02|02|02|02|02|02|02|02|02|..|00|..|00|..|02|02 |04|04|04|04|04|04|04|04|04|04|00|..|00|03|03|03|03|03|03|03|03|03|03|03|03|03|00|..|00|04|04|04|04|04|04|04|04|04|04|04|04|04|00|..|00|03|03|03 |06|06|06|06|06|06|..|..|00|..|00|..|..|06|06|06|06|06|06|06|06|06|..|..|00|..|00|..|..|06|06|06|06|06|06|06|06|06|..|..|00|..|00|..|..|06|06|06 |01|01|01|01|01|01|00|..|00|01|01|01|01|01|01|01|01|01|01|01|01|01|00|..|00|01|01|01|01|01|01|01|01|01|01|01|01|01|00|..|00|01|01|01|01|01|01|01 |03|03|03|03|03|03|00|..|00|04|04|04|04|04|04|04|04|04|04|04|04|04|00|..|00|03|03|03|03|03|03|03|03|03|03|03|03|03|00|..|00|04|04|04|04|04|04|04 |..|00|..|00|01|01|01|01|02|02|02|02|02|02|02|02|..|00|..|00|01|01|01|01|02|02|02|02|02|02|02|02|..|00|..|00|01|01|01|01|02|02|02|02|02|02|02|02 |..|00|..|00|..|05|05|05|05|05|05|05|05|05|05|05|..|00|..|00|..|05|05|05|05|05|05|05|05|05|05|05|..|00|..|00|..|05|05|05|05|05|05|05|05|05|05|05 |00|..|00|03|03|03|03|03|03|03|03|03|03|03|03|03|00|..|00|04|04|04|04|04|04|04|04|04|04|04|04|04|00|..|00|03|03|03|03|03|03|03|03|03|03|03|03|03 |00|..|00|..|..|06|06|06|06|06|06|06|06|06|..|..|00|..|00|..|..|06|06|06|06|06|06|06|06|06|..|..|00|..|00|..|..|06|06|06|06|06|06|06|06|06|..|..

Endurance = 16 time units 1. 2. 3. 4. 5. 6. 7. 8. 9.

|02|02|02|02|02|02|02|02|02|02|02|02|..|00|..|00|..|05|05|05|05|05|05|05|05|05|05|05|05|05|..|00|..|00|..|02|02|02|02|02|02|02|02|02|02|02|02|02 |04|04|04|04|04|04|04|04|04|04|04|04|04|00|..|00|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|00|..|00|04|04|04|04|04|04|04|04|04|04|04|04|04|04 |01|01|01|01|01|01|01|01|01|01|00|..|00|04|04|04|04|03|03|03|03|03|03|03|03|03|03|03|00|..|00|04|04|04|04|01|01|01|01|01|01|01|01|01|01|01|00|.. |06|06|06|06|06|06|06|..|..|00|..|00|04|04|04|..|06|06|06|06|06|06|06|06|06|..|..|00|..|00|04|04|..|06|06|06|06|06|06|06|06|06|06|..|..|00|..|00 |05|05|05|05|05|05|..|00|..|00|..|02|02|02|02|02|02|02|02|02|02|02|02|02|..|00|..|00|..|05|05|05|05|05|05|05|05|05|05|05|05|05|..|00|..|00|..|02 |03|03|03|03|03|03|00|..|00|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|00|..|00|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|00|..|00|01|01|01 |..|00|..|00|..|..|06|06|06|06|06|06|06|06|06|06|06|..|..|00|..|00|..|02|02|02|02|02|02|02|02|02|02|02|02|02|..|00|..|00|..|..|06|06|06|06|06|06 |..|00|..|00|..|05|05|05|05|05|05|05|05|05|05|05|05|05|..|00|..|00|..|..|06|06|06|06|06|06|06|06|06|06|05|05|..|00|..|00|..|05|05|05|05|05|05|05 |00|..|00|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|00|..|00|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|00|..|00|03|03|03|03|03|03|03|03|03

Endurance = 22 time units 1. 2. 3. 4. 5. 6. 7. 8.

|04|04|04|04|..|06|06|06|06|06|06|06|06|06|..|01|01|01|01|01|00|..|00|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|00|..|00|04 |03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|00|..|00|04|04|04|04|04|..|06|06|06|06|06|06|06|06|06|..|01|01|01|01|01|00|..|00|03 |01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|00|..|00|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|00|..|00|01|01|01|01|01 |05|05|05|05|05|02|02|02|02|02|02|02|..|00|..|00|..|05|05|05|05|05|05|05|05|05|05|05|05|02|02|02|02|02|02|02|..|00|..|00|..|05|05|05|05|05|05|05 |06|06|06|06|06|06|..|..|00|..|00|..|..|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|..|..|00|..|00|..|..|06|06|06|06|06|06|06|06|06|06|06 |02|02|02|02|02|02|..|00|..|00|..|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|..|00|..|00|..|02|02|02|02|02|02|02|02|02|02|02|02|02 |00|..|00|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|00|..|00|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04 |00|..|00|..|05|05|05|05|05|05|05|05|05|05|05|05|05|05|..|03|03|03|03|03|00|..|00|..|05|05|05|05|05|05|05|05|05|05|05|05|05|05|..|03|03|03|03|03

Endurance = 40 time units 1. 2. 3. 4. 5. 6. 7.

|00|..|00|..|..|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|..|04|03|03|03|03|03|03|03|03|03|03|00|..|00|..|..|06 |03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|04|04|04|04|04|00|..|00|03|03|03|03|03|03|03 |04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|00|..|00|04|04|04|04|04|04|04|04|04|04|04 |05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|..|00|..|00|..|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05 |06|06|06|06|06|06|02|02|02|02|02|02|02|02|02|02|02|..|00|..|00|..|05|05|05|05|05|05|05|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06 |02|02|02|02|02|02|02|01|01|01|01|01|00|..|00|..|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02 |01|01|01|01|01|01|01|01|00|..|00|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01

Fig. 5.12 Sensitivity analysis (Test Problem 16) of the minimum number of patrol boats required for complete coverage to the endurance, where the replenishment break duration is TR = 2. 27

A detailed results summary of the sensitivity analysis is provided in Table E.7 to Table E.12 of Appendix E.

Patrol Boat Routing and Scheduling with Replenishment: Part II

176

The results of the sensitivity analysis indicate that this technique may have potential in application to patrol networks of comparable size. The analysis suggests the ability to compare various options for patrol boat fleet sizes in terms of endurance, replenishment break selection and the amount of schedule slack. Number of Patrol Boats vs. Maximum Endurance 16 Replenish = 0

Number of Patrol Boats

15

Replenish = 1 Replenish = 2

14

Replenish = 3

13

Replenish = 4 Replenish = 5

12 11 10 9 8 7

10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35

Maximum Endurance

Fig. 5.13 Test Problem 5: Sensitivity analysis of the minimum number boats required with endurance and replenishment time.

Patrol Coverage vs. Maximum Endurance 114% 113% 112% 111% 110%

Patrol Coverage

109% 108% 107% 106% 105% 104% 103% 102% 101% 100% 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35

Maximum Endurance

Fig. 5.14 Test Problem 5: Sensitivity analysis of the patrol coverage with endurance and replenishment time.

Chapter 6 Computational Complexity of the Patrol Boat Scheduling Problem with Complete Coverage 6.1

Preface

This chapter is the product of joint work between Timothy J. Surendonk1 and the author (Paul A. Chircop). This chapter is self-contained, and thus, possesses its own mathematical preliminaries and notation. We show that the Patrol Boat Scheduling Problem with Complete Coverage (PBSPCC) is N P-hard by proffering a transformation from the Hamiltonian Graph Decision Problem. We also conclude that the associated decision problem of whether a patrol network has a continuous patrol cover of size n is N P-complete subject to the requirement that patrol covers are cyclic of a bounded polynomial order.

6.2

Introduction

The Patrol Boat Scheduling Problem with Complete Coverage (PBSPCC) is a combinatorial optimization problem of finding the minimum number of a uniform type of vessel needed to provide continuous presence at a set of patrol regions, which are nodes in a network consisting of patrol regions and ports, and the edges be1

Defence Science and Technology Group, 13 Garden Street, Eveleigh NSW Australia 2015 e-mail: [email protected]

178

Computational Complexity of the PBSPCC

tween them. This becomes a difficult scheduling problem when the vessels must leave their patrol regions to return to port in order to replenish their supplies and refresh their crews before a fixed endurance period has expired. Practical experience with the problem has highlighted the difficulty of solving the PBSPCC on large spatial networks and with long planning horizons. However, it has not been clear heretofore what the computational complexity of the problem is. We address this question by constructing a straightforward transformation of a graph into a patrol problem and then show that solving the PBSPCC can also solve the Hamiltonian Circuit Problem in graphs (see Garey and Johnson [55], referring to Karp [76]). We will then show that the PBSPCC is N P-hard, with the associated problem of the existence of a patrol covering of fixed size with cyclic members of bounded order being N P-complete. The essence of the construction can be summarized in Figure 6.1, which shows an initial graph with a Hamiltonian circuit (left), and how this can be converted into a patrol problem (right) whose minimum covering solution is easily derived from the circuit itself.

Transformation

Fig. 6.1 Illustration of the proffered transformation of a graph (left) into a patrol problem (right), where the blue nodes are patrol regions and the green squares are replenishment ports.

In Section 6.3 we introduce our notation and definitions for the problem. Section 6.4 describes the transformation and deduces some facts about patrol covers on this specially constructed network. Section 6.5 shows that the transformation of Hamiltonian circuits into covers really works as expected, and how minimal patrol covers on the constructed network induce a Hamiltonian circuit on the graph. We finish with Section 6.6 which draws these results together to conclude that the PBSPCC is indeed N P-hard.

6.3 Definitions

6.3

179

Definitions

We build up patrol networks on graphs, and because we are transforming graphs we will assume that all our sets of vertices are atomic, i.e., there is no ∈-relation between them, or indeed, that any other objects introduced in this chapter can be “inside” a vertex of the initial graph. We will use Z to denote the integers, N to denote the natural numbers, and Zn for the set {0, 1, ..., n − 1}. If we write ∀i < n or ‘for all i < n’ we mean “for all i ∈ Zn .” We use card (X) to denote the cardinality of the set X. Graphs are pairs G = (V, E) of vertices V and edges E, and the size of G is card (V ). We call a function p : Zn → V a path in G of length n if and only if for all i ∈ Zn−1 , {p(i), p(i + 1)} ∈ E. Definition 6.3.1. Let G = (V, E) be a graph with card (V ) = n. We say that G has a Hamiltonian circuit if and only if there is a path p in G of length n + 1 such that p is a mapping onto V , and p(0) = p(n). We say that G is Hamiltonian if and only if it has a Hamiltonian circuit. Determining whether a graph is Hamiltonian is a difficult decision problem as the following definition and result show. Definition 6.3.2. The Hamiltonian Graph Decision Problem (Problem GT37 in Garey and Johnson [55]) is the computational problem which takes as input a graph G and determines whether G is Hamiltonian. Theorem 6.3.1. (Karp [76]) The Hamiltonian Graph Decision Problem is N P-complete. Definition 6.3.3. A patrol network is an object N = (V, E, P, Q, d) where G = (V, E) is a graph, P, Q ⊆ V with P ∪ Q = V and P ∩ Q = ∅ and d : E → [0, ∞). We refer to P as the set of patrol regions, Q as the set of ports, and d as the set of transition distances in the network. Definition 6.3.4. We say that a patrol vessel is an object u = (TE , TR , vE ), where TE , TR , vE ∈ (0, ∞) represent the vessel’s endurance, replenishment time, and speed, respectively. Definition 6.3.5. A patrolled network is a pair (N, u), where N is a patrol network and u is a patrol vessel. A vessel patrolling in a network does not always travel on paths in the underlying graph, in fact it mostly dwells in a patrol region maintaining presence. For this

180

Computational Complexity of the PBSPCC

reason, we need a more general concept than a path in a graph to describe a patrol schedule. In what follows, and while not otherwise specified, we will take N , G, P , Q, d to be as given in Definition 6.3.3. Definition 6.3.6. Let N = (V, E, P, Q, d) be a patrol network. We call λ : Z → V ∪ E a route in N if and only if, for all m ∈ Z, one of the following holds: 1. 2. 3. 4.

λ(m) ∈ λ(m + 1) ∈ E, λ(m + 1) ∈ λ(m) ∈ E, λ(m), λ(m + 1) ∈ E and λ(m) ∩ λ(m + 1) ̸= ∅, or λ(m + 1) = λ(m).

The function λ in Definition 6.3.6 tells us what a vessel is doing at any point in time. It could be visiting a node (port or patrol region) or it could be travelling between nodes in the underlying network. Such a function is a valid route if and only if the sequence of nodes/edges that it traces out are connected, that is, at any subsequent time point it is either: (1) on an edge out of the previous node, (2) on a node at the end of the previous edge, (3) on an edge connected to the previous edge, or (4) staying at the previous point (edge or node). Time duration in this representation is given by the number of time steps in a particular state, in particular the time spent traversing an edge is given as follows. Definition 6.3.7. Let N = (V, E, P, Q, d) be a patrol network. Suppose m ∈ Z is such that λ(m) ∈ E. We say that the passage at m is: max {k − j | j, k ∈ Z, j ≤ m ≤ k and (∀i ∈ Z) [j ≤ i ≤ k =⇒ λ(i) = λ(m)]} . (6.1) We will now make two elementary observations about how routes in patrol networks behave. Proposition 6.3.1. Suppose that λ is a route in a patrol network N = (V, E, P, Q, d), m ∈ Z, and λ(m) ∈ V . Then: 1. λ(m + 1) = λ(m) or λ(m + 1) ∈ E, and 2. λ(m − 1) = λ(m) or λ(m − 1) ∈ E. Proof. Under the hypotheses of this proposition, only conditions (1) and (4) hold in the definition of a route (Definition 6.3.6), giving us (1). Now applying Definition 6.3.6 at m − 1, we see that only conditions (2) and (4) hold in the definition of a route, giving us (2).

6.3 Definitions

181

Proposition 6.3.2. Suppose that λ is a route in a patrol network N = (V, E, P, Q, d). Then the following two statements hold: (∀m ∈ Z) [λ(m) ∈ P =⇒ λ(m + 1) ∈ / Q and λ(m) ∈ / Q and λ(m − 1) ∈ / Q] ,

(6.2)

(∀m ∈ Z) [λ(m) ∈ Q =⇒ λ(m + 1) ∈ / P and λ(m) ∈ / P and λ(m − 1) ∈ / P].

(6.3)

Proof. Let m ∈ Z and suppose that λ(m) ∈ P . Since P and Q are disjoint sets, then we have λ(m) ∈ / Q. Also, by Proposition 6.3.1, λ(m + 1) = λ(m) ∈ P or λ(m + 1) ∈ E. In both cases this shows that λ(m +1) ∈ / Q. Similarly λ(m − 1) = λ(m) or λ(m − 1) ∈ E, so in both cases λ(m − 1) ∈ / Q. A symmetrical argument shows that the second conclusion of the proposition also holds. Definition 6.3.8. Let λ be a route on a patrol network N = (V, E, P, Q, d) and let m ∈ Z. We define λ’s time since a replenishment of length TR ∈ N at time m to be min {m − j | j ∈ Z, j ≤ m, λ(j) ∈ Q, and (∀k < TR ) [λ(j − k) = λ(j)]} .

(6.4)

Now we can define what it means for λ to represent a sequence that a patrol vessel could follow. Definition 6.3.9. Let (N, u) be a patrolled network, where N = (V, E, P, Q, d) is the underlying patrol network, and u = (TE , TR , vE ) is the patrol vessel. We say that λ is u-feasible if and only if, for all m ∈ Z, both of the following hold: 1. If λ(m) ∈ E then λ’s transit time on the passage at m is at least d(λ(m))/vE , and 2. At m, λ’s time since a replenishment of length TR is at most TE . Now we can move up to collections of routes to produce patrol covers, which are collections of routes that have a presence at each patrol region at every time step. Definition 6.3.10. Let (N, u) be a patrolled network, where N = (V, E, P, Q, d) is the underlying patrol network. We say that a collection Λ of u-feasible routes on N proves complete coverage of N or is a patrol cover of N if and only if: (∀m ∈ Z) (∀p ∈ P ) (∃λ ∈ Λ) [λ(m) = p] .

(6.5)

In this instance we say Λ covers (N, u) and that (N, u) has a complete cover of size card (Λ).

182

Computational Complexity of the PBSPCC

We can now define the optimization problem of finding minimal patrol covers. This optimization problem in turn gives rise to computational problems. Definition 6.3.11. Let (N, u) be a patrolled network. We say that (N, u) can be covered by n vessels (for n ∈ N) if and only if there is a collection Λ of u-feasible routes of cardinality n on N which provides complete coverage of (N, u). The complete coverage problem for (N, u) is to find a complete cover Λ of minimum cardinality. Definition 6.3.12. The Patrol Boat Scheduling Problem with Complete Coverage (PBSPCC) is a computational problem which takes as input (N, u) a patrolled network and finds a cover of minimum cardinality. The PBSPCC Decision Problem is a computational problem which takes as input (N, u) a patrolled network and an n ∈ N and determines whether (N, u) has a complete cover of cardinality n. Important types of route and patrol covers are the cyclic ones. These, at least, can be finitely described. Definition 6.3.13. A route λ on a patrol network (N, u) is called cyclic of order k ∈ N if and only if: (∀m ∈ Z) [λ(m + k) = λ(m)] . (6.6) Clearly λ (a cyclic route of order k) can be described in k steps by naming its value at each time step in a cycle. Definition 6.3.14. A patrol cover Λ on a patrol network (N, u) is called cyclic of order k ∈ Z if and only if each λ ∈ Λ is cyclic of order k. If a patrol cover is cyclic of order k it can be described in a finite number of steps, with that finite number bounded by the size of the cycle and the size of the cover. However, there could be exponentially many different cycles possible if we allow the cycle size to get too big – a cover will, after all, repeat if there is a finite set of possible states of resources and vessel positions. Thus, it will be necessary to bound patrol cover cycles. Definition 6.3.15. Let f : N → N be an increasing function. The f-Bounded Cyclic PBSPCC Decision Problem is a computational problem which takes as input a patrol problem (N, u) and determines whether there is a cyclic patrol cover of (N, u) of order k ≤ f (n′ ), where n′ is the size of the underlying vertex set in N .

6.4 Transformation

6.4

183

Transformation

In this section we will introduce a transformation which can convert a graph into a patrolled network. We will later show how this transformation nicely converts Hamiltonian graphs into uniquely coverable patrol problems. We take G = (V, E) to be an arbitrary graph of size at least 2. We then construct a new graph G′ = (V ′ , E ′ ) as follows: • • • •

V ′ = P ∪ Q, where P =V, Q = E, and E ′ = {{x, e} | x ∈ e ∈ E}.

That is, the construction takes each vertex of the original graph to be a patrol region and on each edge connecting the original vertices (now patrol regions) the construction inserts a port (for replenishment). The effect on one edge is given in Figure 6.2 and the effect on a small graph is given in Figure 6.3. y

x

Transformation x

e = {x, y}

e = {x, y} {x, e}

y

{e, y}

Fig. 6.2 The effect of the transformation on an edge. The original edge, with the edge and its endpoints labelled, is on the left, and the transformed edge (with labels) is given on the right.

Transformation

Fig. 6.3 A simple graph G (left) and its transformation G′ (right). Patrol regions are represented by solid circles, and the ports are represented by squares.

We define d : E ′ → [0, ∞), the distance function on the transformed graph, to be uniformly 1, that is each patrol region is only one distance unit away from a port. Let n = card (V ) and let u = (3n + 2, 1, 1) be our patrol vessel. That is, the patrol

Computational Complexity of the PBSPCC

184

vessel has endurance TE = 3n + 2, it takes only one time unit to replenish at port (TR = 1), and it can travel one distance unit per time unit (vE = 1). In summary, we have expanded the edges in our original graph to include a replenishment port and it will take the vessel exactly 3 time units to traverse and replenish on the resulting compound edge. Thus our graph G is transformed into a patrol network N = (G′ , P, Q, d) and a patrol problem (N, u) which we will denote by T (G). Clearly T (G) involves little work to construct and its computational effort is linear in the size of G,2 so this is a polynomial-time transformation. We conclude this section by noting that our definition of u-feasible routes in N really does have a vessel visiting a port in any time window of length 3(n + 1) time units. Proposition 6.4.1. For λ, a u-feasible route in N , and m ∈ Z, there exists an m′ ∈ Z such that m < m′ ≤ m + 3(n + 1), and λ(m′ ) ∈ Q. Proof. Consider the time since a replenishment of length 1 for λ(m + 3(n + 1)), i.e., k := min {m + 3(n + 1) − j | j ≤ m + 3(n + 1) and λ(j) ∈ Q} .

(6.7)

Since λ is u-feasible, k ≤ 3n + 2. Let m′ witness that k is the minimum. Therefore: 1. m + 3(n + 1) − m′ = k ≤ 3n + 2, so m + 1 ≤ m′ , so m < m′ . 2. m′ ≤ m + 3(n + 1), and 3. λ(m′ ) ∈ Q, as required.

6.5

Equivalence

We introduced the Hamiltonian Graph Decision Problem in Definition 6.3.2. We will now show that the transformation T (·) transforms a graph into a patrol network where the question about whether a graph G = (V, E) is Hamiltonian is answered by testing whether T (G) has a complete cover of size card (V ) + 1. This will be carried out in two parts: firstly, we show that a Hamiltonian graph of size n transforms into a patrol covering problem which has a cover of size n + 1 (Lemma 6.5.1), and secondly, that any patrol cover of size n + 1 of the transformation of any graph of size n naturally gives us the Hamiltonian circuit on that graph (Lemma 6.5.2). 2

Where here, by the size of G, we mean card (V ) + card (E).

6.5 Equivalence

185

Lemma 6.5.1. If G is a Hamiltonian graph of size n, then T (G) has a patrol cover of size n + 1 which is cyclic of order at most 3n(n + 1). Proof. Let G = (V, E) be a Hamiltonian graph, and let G′ , P , Q, d, V ′ , E ′ , N , and u be as in the definition of T (G), and let n = card (V ) be the size of G. Let p : Zn → V be a Hamiltonian circuit on G which witnesses that G is Hamiltonian. Extend p to a function p : Z → V by setting p(m) = p(m mod n).

(6.8)

Because p gives the Hamiltonian circuit, p is surjective (onto) and (∀m ∈ Z) [{p(m), p(m + 1)} ∈ E] .

(6.9)

x(m) := {p(m), p(m + 1)} .

(6.10)

Define x : Z → Q by

That is, x(m) is the port in T (G) between p(m) and p(m + 1). We then define w, y : Z → E ′ as follows: w(m) := {p(m), x(m)} ,

(6.11)

y(m) := {x(m), p(m + 1)} .

(6.12)

The layout of w, x, and y is given in Figure 6.4. p(m)

x(m) w(m)

p(m + 1) y(m)

Fig. 6.4 Illustration of defined values w(m), x(m), and y(m).

Thus, ⟨p(m), w(m), x(m), y(m), p(m + 1)⟩ is a partial route in N , that is p(m), x(m) ∈ w(m), x(m), p(m + 1) ∈ y(m), therefore satisfying the conditions on a route at each element of the sequence. Note also that because p cycles, w, x, and y all cycle as well, i.e., for all m ∈ Z: w(m) = w(m mod n),

(6.13)

x(m) = x(m mod n),

(6.14)

Computational Complexity of the PBSPCC

186

y(m) = y(m mod n).

(6.15)

We will now string these partial routes together to make a u-feasible route λ with periodicity 3n(n + 1), where a vessel stays at each patrol region p(m) for 3n time units and spends the subsequent 3 time units transiting to the next node in the Hamiltonian circuit. Define c : Z → Z and δ : Z → Z3(n+1) by:  m , c(m) := 3(n + 1)

(6.16)

δ(m) := m mod 3(n + 1).

(6.17)



Therefore, for all m ∈ Z, we have m = 3(n + 1)c(m) + δ(m), and if m + 1 is not a multiple of 3(n + 1), we have δ(m + 1) = δ(m) + 1. We want the λ that we are constructing to move on towards a new patrol region every 3(n + 1) time units. Thus, we really have two cycles at work: the larger cycle of moving round the patrol network and the shorter cycle of what happens at a patrol region and its subsequent transition/replenishment. The function c will count larger cycles giving us which step in the Hamiltonian cycle we are in and δ will count where we are in the smaller cycle of patrolling and moving on to the next patrol region. Formally we define λ : Z → V ′ ∪ E ′ as follows:

λ(m) =

   p(c(m))     w(c(m))   x(c(m))     y(c(m))

if

δ(m) < 3n,

if

δ(m) = 3n,

if

δ(m) = 3n + 1,

if

δ(m) = 3n + 2.

(6.18)

To see that λ is a route, we note that λ is constant on the first 3n time units in each smaller cycle. Now suppose δ(m) = 3n − 1. Then c(m + 1) = c(m), c(m + 2) = c(m), c(m + 3) = c(m) and c(m + 4) = c(m) + 1. Thus at time points ⟨m, m + 1, m + 2, m + 3, m + 4⟩, λ moves through the following points: ⟨p(c(m)), w(c(m)), x(c(m)), y(c(m)), p(c(m) + 1)⟩ ,

(6.19)

which, as we saw, was constructed to be a partial route. The route λ has exactly 1 time unit on each transition edge, which is defined to have a distance of 1 unit and

6.5 Equivalence

187

matches u’s defined vessel speed of 1 distance unit per time unit. To see that λ is u-feasible, note that it goes into port x(c(m)) every time δ(m) = 3n+1, and this happens exactly once (for one time unit) in every 3(n+1)-long cycle. Hence, it is spending 3n + 2 time units away from port where it had a replenishment of length 1, which is exactly u’s defined endurance. Note that λ satisfies the following property: (∀m, k ∈ Z) [λ(m) = λ(m + 3n(n + 1)k)] ,

(6.20)

that is, λ is cyclic of order 3n(n + 1). This is because p is cycling with a period n and c is defined to cycle (really increment) with a period 3(n + 1) so together they repeat with a period 3n(n + 1). Now, for i ∈ Z we define λi : Z → V ′ ∪ E ′ by: λi (m) := λ(m + 3ni).

(6.21)

Λ := {λi | i ∈ Z} ,

(6.22)

Then the set:

has exactly (n + 1) members because for all m ∈ Z: λi+(n+1)k (m) = λ(m + 3n(i + (n + 1)k)),

(6.23)

= λ(m + 3ni + 3n(n + 1)k),

(6.24)

= λ(m + 3ni),

(6.25)

= λi (m).

(6.26)

Therefore λi = λi+(n+1)k . In addition, the members of Λ are cyclic of order 3n(n + 1). Since λ is u-feasible, all the λi in Λ are u-feasible. Hence, we will have shown that T (G) can be covered by n + 1 = card (V ) + 1 vessels if we can show that Λ hits every node in P = V at every time point. Let m ∈ Z and v ∈ P = V . Since p is a Hamiltonian circuit there is a k ∈ Z such that p(k) = v. Let 

 3(n + 1)k − m i= , 3n δ0 = 3ni − (3(n + 1)k − m).

(6.27) (6.28)

Computational Complexity of the PBSPCC

188 Thus 0 ≤ δ0 < 3n, and

m + 3ni = 3(n + 1)k + δ0 ,

with 0 ≤ δ0 < 3n.

(6.29)

So λi (m) = λ(m + 3ni), and we claim that λ(m + 3ni) = p(k) = v. To calculate the value of λ(m + 3ni) note that: 

 m + 3ni c(m + 3ni) = , 3(n + 1)   3(n + 1)k + δ0 , = 3(n + 1) = k,

(6.30) (6.31) (6.32)

since δ0 < 3n < 3(n + 1), and δ(m + 3ni) = δ0 < 3n.

(6.33)

Thus λi (m) = λ(m + 3ni) = p(c(m + 3ni)) = p(k) = v. Lemma 6.5.2. If G = (V, E) is a graph of size n ≥ 2 and T (G) has a patrol cover of size n + 1, then G is Hamiltonian. Proof. Let G = (V, E) be a graph and let G′ , P , Q, d, V ′ , E ′ , N , and u be as in the definition of T (G), and let n be the size of G. As per the hypotheses of the lemma, assume (N, u) has a patrol cover of size n + 1 and let Λ be that cover. Now, N has card (P ) = card (V ) = n patrol regions and at any one time m ∈ Z, we have: P ⊆ {λ(m) | λ ∈ Λ} ,

(6.34)

since it is a patrol cover. Therefore card ({λ(m) | λ(m) ∈ / P }) ≤ 1.

(6.35)

That is, at most one λ ∈ Λ can have λ(m) ̸∈ P , or in patrol operations terminology, only one vessel can be not patrolling at any one time. If we look at patrol activity, at any one time we will see at most one vessel doing something other than patrolling. We are going to take this observation and use it to demonstrate that if we look at the one non-patrolling vessel (and follow the changes from one non-patrolling vessel to another) it acts like a virtual vessel

6.5 Equivalence

189

which traces out a Hamiltonian circuit. To do this we have to show that there must be at least one vessel not patrolling at any one time and that when we track its positions they join up into a path in the graph. The difficulty with this is that (for all we know) the virtual vessel could bounce around going back-and-forth along the same path in the network; it could pause, it could keep going back to the same port for replenishment, or it could pass over ports skipping replenishment altogether. Our proof will imply that if any virtual vessel fails to stick to the program (transit through to a port, replenish, transit to the next node and then keep going), there will be a deficit that starts to build up and will show that at the end of 3(n + 1) steps, one vessel will exceed its endurance threshold. To uncover this deficit, we will define three functions recursively: α : N → Z, q : N → Q, and ϕ : N → Λ. The function α gives the sequence of times when any vessel goes into replenishment, the function q gives the replenishment port at which that happens, and ϕ will give the vessel that is going into that port – note that in this case, all other vessels are on station in the patrol regions. As we define these functions, we will simultaneously prove that the following condition holds at each k ∈ N: (∀m ∈ Z, µ ∈ Λ) [(µ ̸= ϕ(k) and α(k) − 2 ≤ m < α(k + 1)) =⇒ µ(m) ∈ / Q] . (6.36) We will call this the exclusivity condition at k ∈ N. We will also simultaneously prove that for k ∈ N: 1. ϕ(k)(α(k)) = q(k), 2. ϕ(k) ̸= ϕ(k + 1), 3. α(k + 1) ≥ α(k) + 3. The set Λ is non-empty, so take λ0 to be an arbitrary element of Λ. We know from Proposition 6.4.1 that there is an m0 ∈ Z with 0 < m0 ≤ 3(n + 1) with λ0 (m0 ) ∈ Q. Now let 1. α(1) = m0 , 2. ϕ(1) = λ0 , 3. q(1) = ϕ(1)(α(1)). Suppose that for some k ∈ N we have defined α(k), q(k) and ϕ(k) such that q(k) = ϕ(k)(α(k)). Let α(k + 1) = min {m ∈ Z | m > α(k) and (∃θ ∈ Λ) [θ ̸= ϕ(k) and θ(m) ∈ Q]} . (6.37)

190

Computational Complexity of the PBSPCC

We note that such a minimum exists because Λ has size n + 1 (which is at least 2), and Proposition 6.4.1 guarantees that any θ ∈ Λ will eventually and repeatedly hit Q. Let ϕ(k + 1) be the element of Λ that witnesses α(k + 1) being that minimum, i.e., ϕ(k + 1) takes the role of θ in the definition of α(k + 1). Then immediately we have that ϕ(k + 1) ̸= ϕ(k) and we can define q(k + 1) = ϕ(k + 1)(α(k + 1)). Since ϕ(k)(α(k)) ∈ Q, Proposition 6.3.2 tells us that ϕ(k)(α(k) + 1) ∈ / P , so since at most one vessel is not patrolling at any one time, we know that ϕ(k + 1)(α(k) + 1) ∈ P . Then Proposition 6.3.2 tells us that ϕ(k + 1)(α(k) + 2) ∈ / Q. From this, α(k + 1) being minimal and ϕ(k + 1)(α(k + 1)) ∈ Q, we know that: α(k + 1) ≥ α(k) + 3.

(6.38)

We now only need to prove that the exclusivity condition holds at k ∈ N. Therefore, let m ∈ Z, µ ∈ Λ be such that µ ̸= ϕ(k) and α(k) − 2 ≤ m < α(k + 1). We must show that µ(m) ∈ / Q. Let us examine the following cases. • Case 1: m > α(k): In this case we immediately know that µ(m) ∈ / Q, otherwise m and µ would witness that α(k + 1) is not the minimum it is defined to be. • Case 2: m ∈ {α(k) − 2, α(k) − 1, α(k)}: We know that ϕ(k)(α(k)) = q(k) ∈ Q, so by Proposition 6.3.2, ϕ(k)(α(k) − 1) ∈ / P . Thus as only one vessel can be not patrolling at one time we know that µ(α(k) − 1) ∈ P . Proposition 6.3.2 then tells us that µ(m) ∈ / Q for all three possibilities of m in this case. Thus, we have defined α, ϕ and q satisfying our desired properties. Claim 6.5.1. (∀k ∈ N) [α(k + 1) = α(k) + 3] . Proof. Assume not. Thus, there is a k0 ∈ N such that α(k0 + 1) ̸= α(k0 ) + 3, but since we know that α(k0 + 1) ≥ α(k0 ) + 3, we have that α(k0 + 1) > α(k0 ) + 3. Let µ ∈ Λ \ {ϕ(k0 + i)|i ∈ Zn }. Note that this set is not empty because Λ has size n + 1. Now by the exclusivity condition holding at k0 , k0 + 1, . . . , k0 + n − 1, we have: (∀m ∈ Z) [α(k0 ) − 2 ≤ m < α(k0 + n) =⇒ µ(m) ∈ / Q] .

(6.39)

But, for all k ∈ N, α(k + 1) ≥ α(k) + 3 and combining this with our assumption we have: α(k0 + n) > α(k0 ) + 3n. (6.40)

6.5 Equivalence

191

So we can conclude that: (∀m ∈ Z) [α(k0 ) − 2 ≤ m ≤ α(k0 ) + 3n =⇒ µ(m) ∈ / Q] .

(6.41)

Thus, at time α(k0 )+3n, µ’s time since replenishment is at least α(k0 )+3n−(α(k0 )− 3) = 3n + 3 = 3(n + 1). But µ’s endurance is at most 3n + 2, so this is a contradiction to µ being u-feasible. Claim 6.5.2. For all k ∈ N: 1. 2. 3. 4. 5.

ϕ(k)(α(k)) ∈ Q, ϕ(k)(α(k) + 1) ∈ E ′ , ϕ(k)(α(k) + 2) = ϕ(k + 1)(α(k) + 1) ∈ P , ϕ(k + 1)(α(k) + 2) ∈ E ′ , ϕ(k + 1)(α(k) + 3) ∈ Q.

Proof. Let k ∈ N. We already know that 1 and 5 hold as we constructed ϕ and α that way (noting that α(k + 1) = α(k) + 3). The other three items are obtained by noting that ϕ(k) and ϕ(k + 1) are distinct vessels of which only one cannot be patrolling at a time, and so they must “swap out” at some time between α(k) and α(k)+3. Given our construction of the patrol network, ϕ(k) must transit to a patrol region at time α(k) + 1 (giving us 2), to take over patrolling at time α(k) + 2 from ϕ(k + 1), which was patrolling at time α(k) + 1 (giving us 3). Then, ϕ(k + 1) must quickly proceed to be at a port at time α(k) + 3, so it must do a transit at time α(k) + 2 (which gives us 4). Therefore, for any k ∈ N, ϕ(k)(α(k) + 2) ∈ P is connected to ϕ(k + 1)(α(k + 1) + 2) ∈ P in G via the edge ϕ(k + 1)(α(k) + 3) ∈ Q. So if we define v : N → P = V by: v(k) := ϕ(k)(α(k) + 2),

(6.42)

we get a path in V . Claim 6.5.3. (∀x ∈ V ) (∀k ∈ N) (∃i < n) [v(k + i) = x]. Proof. Let x ∈ V , and k ∈ N. Suppose not, i.e., that (∀i < n) [v(k + i) ̸= x] .

(6.43)

192

Computational Complexity of the PBSPCC

Let µ ∈ Λ be such that µ(α(k)) = x which must exist because each patrol region is covered. We will show by induction that (∀i ≤ n) (∀m ∈ Z) [α(k) − 1 ≤ m ≤ α(k + i) + 1 =⇒ µ(m) = x] .

(6.44)

For the base case, that is, i = 0, we must show that µ(m) = x for m ∈ {α(k) − 1, α(k), α(k)+1}. Here, we note that ϕ(k)(α(k)) ∈ Q so µ ̸= ϕ(k) and by Proposition 6.3.2 we see that ϕ(m) ∈ / P for m ∈ {α(k) − 1, α(k), α(k) + 1}, implying that µ is stuck on a patrol region and therefore constant at x on that same set. Suppose that it holds for i, where i < n. We must show that it holds for i + 1. We know by the inductive hypothesis that for m ∈ Z such that α(k) − 1 ≤ m ≤ α(k + i), µ(m) = x. Let us now follow through the remaining time steps. • At time m = α(k + i) + 1, ϕ(k + i)(m) ∈ E ′ , so µ must stay at x. • At time m = α(k+i)+2, ϕ(k+i)(m) = v(k+i) ̸= x, but ϕ(k+i+1)(α(k+i)+1) = ϕ(k+i)(m) ̸= x. So we know that ϕ(k+i+1) ̸= µ. But ϕ(k+i+1)(α(k+i)+2) ∈ E ′ , so again µ must stay at x. • At time m = α(k + i) + 3 = α(k + i + 1), ϕ(k + i + 1) ∈ Q so we also see that µ must stay at x. • At time m = α(k + i + 1) + 1, ϕ(k + i + 1) ∈ E ′ so yet again µ must stay at x, completing the induction. We can now conclude that µ(m) = x ∈ / Q for the whole period α(k) − 1 to α(k + n) + 1 = α(k) + 3n + 1 inclusive. But this period has size α(k) + 3n + 1 − (α(k) − 2) = 3n + 3, a period bigger than 3n + 2 (the endurance of µ), contradicting µ being u-feasible. Claim 6.5.4. v : N → V is cyclic of order n, i.e., (∀k ∈ N) [v(k + n) = v(k)] .

(6.45)

Proof. Suppose not, i.e., that there is some k ∈ N with v(k + n) ̸= v(k). Now v(k + 1), . . . , v(k + n) covers all of V by Claim 6.5.3, so for some i ∈ N, 0 < i ≤ n, v(k + i) = v(k). But i ̸= n by our assumption. Hence v is not one-to-one on {k, k + 1, . . . , k + n − 1}, since it hits v(k) at both k and at k + i, so on {k, k + 1, . . . , k + n − 1}, v cannot be onto V (a set of size n), but this contradicts the conclusion of Claim 6.5.3.

6.6 Conclusions

193

From this we can conclude that v ′ = v  Zn+1 is a path through G that is onto V and that satisfies v ′ (n) = v ′ (0), i.e., that v ′ is a Hamiltonian circuit in G and witnesses that G is a Hamiltonian graph.

6.6

Conclusions

We are now ready to put these preliminary results together to draw conclusions about the difficulty of the PBSPCC and related problems. Theorem 6.6.1. Let p : N → N be a polynomial with (∀n ∈ N) [p(n) ≥ 3n2 + 3n]. Then: 1. The PBSPCC of finding minimum size patrol covers is N P-hard. 2. The PBSPCC Decision Problem is N P-hard. 3. The p-Bounded Cyclic PBSPCC Decision Problem is N P-complete. Proof. Note that T (·) is an O(n) transformation, as N has only grown by a fixed factor of approximately 3. We will show that all three problems are N P-hard by demonstrating that T (·) is a transformation from the Hamiltonian Graph Decision Problem. Suppose that G = (V, E) is a graph and we ask whether G has a Hamiltonian circuit. In order to answer this, construct T (G) = (N, u), and let n = card (V ). Then we ask whether there is a (cyclic) patrol cover of T (G) of order of at most p(n). If G has a Hamiltonian circuit, then by Lemma 6.5.1 we can construct such a patrol cover of size n + 1, with each element of that cover being cyclic of order 3n(n + 1), so there is definitely such a cover. Note that it is a minimum such cover because it is of size n + 1 and a cover of size n would have every vessel patrolling every patrol region without any prospect of leaving to replenish. Conversely, if there is a cover of size n + 1 of T (G), then Lemma 6.5.2 allows us to conclude that G is Hamiltonian. This demonstrates that all three problems are N P-hard because any polynomial time solution to them will allow us to decide the Hamiltonian Graph Decision Problem. That the p-Bounded Cyclic PBSPCC Decision Problem is N P-complete, we just need show that this problem is in N P. It is easy to test whether a set of routes combines to form a patrol cover over a fixed set of times, so we just need to show that the length of the cycles in the set of routes is polynomially bounded. For (N, u) a patrol problem, we let size(N ) be the cardinality of the union of the underlying patrol region set, port set and edge set. By fixing p before we state the problem,

194

Computational Complexity of the PBSPCC

we ensure that we only need to describe the states of at most p(size(N ))size(N ) different cycles – as a cover, if it exists, will be at most a size where each time step and each patrol region gets its own dedicated patrol vessel – and each cycle will need at most p(size(N ))size(N ) pieces of information to describe it (as we only need to describe what it does at each of its ≤ p(size(N )) time points). Therefore, we only need to test an input of size at most a constant multiple of (p(size(N ))size(N ))2 , a polynomial. It is worthwhile noting that we have to invoke p-bounding as we cannot guarantee that there are no patrol networks where O(nn ) steps are needed to describe the patrol cover. Obtaining a counter-example could be the subject of future work.

Chapter 7 Patrol Vehicle Routing with Hotspot Coverage 7.1 7.1.1

Introduction Background and Context

The Maximum Covering and Patrol Routing Problem (MCPRP) is motivated by the allocation of state trooper vehicles to accident hotspots on a highway network. A hotspot can be defined as a time window at a precise location on the network at which motor vehicle accidents are likely to occur. The nature of these accidents may be due to speeding, driver fatigue, or blind-spots at intersections. The presence of state trooper cars at hotspots serves as an accident prevention strategy. In many practical applications, the number of state trooper cars cannot cover all of the hotspots on the highway network. Hence, given a fleet of available state troopers, an optimization problem can be designed which seeks to maximize the amount hotspot coverage. The MCPRP is therefore concerned with routing a fleet of patrol vehicles over a set of pre-defined hotspots, each represented by a time window and a geographical location, such that the time coverage of the hotspots by the patrol vehicles is a maximum. The vehicles must be routed in such a way as to avoid multiple contributions of patrol effort to the same hotspot. Each vehicle operates over a pre-defined shift, beginning and ending the shift at a depot or fleet base. To date, there have been three studies published which have solely focussed on the MCPRP. The problem was first introduced in the literature by Keskin et al. [77],

196

Patrol Vehicle Routing with Hotspot Coverage

which proffered a Mixed Integer Programming (MIP) model to be solved with local and tabu search heuristic techniques.1 This paper was shortly followed by Çapar et al. [18], which presented a reformulation of the MIP model given by Keskin et al. [77] in order to make it more amenable to commercial MIP solvers. More recently, Dewil et al. [38] has shown that the MCPRP can be formulated as a minimum cost network flow problem (MCNFP), which is solvable in polynomial time. The original study by Keskin et al. [77] proffered a range of test problem instances on which different modelling and algorithmic techniques could be benchmarked. While some of these benchmark problems proved difficult to solve with the local and tabu search techniques developed in the original study, they have since been easily handled by the approaches and techniques developed by Çapar et al. [18] and Dewil et al. [38]. The benchmark problems established thus far have considered networks with up to 40 hotspots using no more than 8 patrol vehicles. These test problem instances were created to reflect the circumstances faced by (and the resources available to) law enforcement agencies in a particular region of the United States.

7.1.2

Chapter Aims and Outline

The purpose of this chapter is to examine the suitability of our column generation framework (outlined in Chapter 4 and Chapter 5) as a candidate solution approach to the MCPRP. We are also interested in applying the approach to large problem instances. We aim to demonstrate that the utility of the column generation paradigm developed in the preceding chapters is enhanced by being applicable to a problem which is similar to the PBSPCC. We intend to examine the scalability and tractability issues for our column generation approach with reference to the number of locations, the number of hotspots, the time window lengths and the geographical size of the network. We begin the chapter by presenting a formal mathematical exposition of the MCPRP via the mixed integer programming model developed in the original paper by Keskin et al. [77]. It is intended that such a presentation will highlight the objective of the problem and draw out some of the key routing and scheduling considerations. Following on from the mixed integer programming formulation, which is a continuous time model, we set the foundation for our column generation ap1

The work performed in this paper is also summarized in the Ph.D. thesis of Li [87] and Li and Keskin [88].

7.2 Integer Programming Formulation

197

proach by introducing a discrete time paradigm. This paradigm is used to construct a time-space network model of the broader patrol operations network, which consists of a set of hotspots and a patrol vehicle depot. An outline of the column generation framework subsequently follows, along with a proposed branch-and-price approach. The final sections of the chapter discuss various computational aspects of the developed approaches with reference to a range of test problem instances on both medium and large-scale networks. Finally, our approach is validated against the MCNFP model of Dewil et al. [38] and the runtime performance is compared against it for a number of large-scale test problems.

7.2

Integer Programming Formulation

As mentioned in the introductory section, a mixed integer programming model of the MCPRP was first formulated by Keskin et al. [77]. This formulation requires a number of binary variables to be defined in order to construct routes for the vehicles which are physically meaningful. In this section, we re-produce the model of [77] in full, using the notation and modelling framework presented in that paper. The set of locations is defined by N = {1, . . . , n}. The depot is represented by two vertices {0, n + 1}, and the entire vertex set is given by V = {0, n + 1} ∪ N . A single hotspot is given at each location i ∈ N : [ei , li ]. The start of the shift (of length T ) is e0 = 0, and the end of the shift is ln+1 = T . The set of edges is E = {(i, j) | i, j ∈ V, i ̸= j}. The geographical network is represented by the directed graph G = (V, E), with the travel time for arc (i, j) ∈ E given by tij . The set of vertices which are directly reachable from i ∈ V is defined by ∆+ (i) = {j ∈ V | (i, j) ∈ E, ei + tij ≤ lj }. The set of vertices from which i ∈ V can be directly reached is defined by ∆− (i) = {j ∈ V | (j, i) ∈ E, ej + tji ≤ li }. The set of vehicles is K, with an individual vehicle represented by k ∈ K. There is a set of discrete decision variables X = {xijk | (i, j) ∈ E, k ∈ K}, where xijk = 1 if vehicle k uses arc (i, j) on its route, and xijk = 0 otherwise. The starting time at which vehicle k patrols hotspot i is denoted by sik ≥ 0, and the time at which vehicle k leaves hotspot i is fik ≥ 0. Let Y = {yik | i ∈ N , k ∈ K}, where yik = 1 if vehicle k visits hotspot i along its route, and yik = 0 otherwise. Finally, let U = {uikg | i ∈ N , k, g ∈ K, k ̸= g}, where uikg = 1 if sig ≥ fik , and uikg = 0 otherwise. With the aforementioned definitions and data, Keskin et al. [77] formulate the

Patrol Vehicle Routing with Hotspot Coverage

198

MCPRP via a mixed integer linear program as follows:

maximize

XX

(fik − sik ),

(7.1)

i∈N k∈K

X

∀k ∈ K,

(7.2)

∀k ∈ K, ∀i ∈ N ,

(7.3)

xi(n+1)k = 1,

∀k ∈ K,

(7.4)

xijk ≤ sik ,

∀k ∈ K, ∀i ∈ V,

(7.5)

xijk ≥ fik ,

∀k ∈ K, ∀i ∈ V,

(7.6)

sik ≤ fik ,

∀k ∈ K, ∀i ∈ V,

(7.7)

fik + tij − sjk ≤ Mij (1 − xijk ) , X xijk = yik ,

∀k ∈ K, ∀(i, j) ∈ E,

(7.8)

∀k ∈ K, ∀i ∈ N ,

(7.9)

subject to

x0jk = 1,

j∈∆+ (0)

X

xjik =

j∈∆− (i)

X

xijk ,

j∈∆+ (i)

X i∈∆− (n+1)

ei

X j∈∆+ (i)

li

X j∈∆+ (i)

j∈∆+ (i)

y0k = y(n+1)k = 1,

∀k ∈ K,

(7.10)

uikg + uigk ≤ yik ,

∀i ∈ V, ∀k, g ∈ K, g > k,

(7.11)

uikg + uigk ≤ yig ,

∀i ∈ V, ∀k, g ∈ K, g > k,

(7.12)

uikg + uigk ≥ yik + yig − 1,

∀i ∈ V, ∀k, g ∈ K, g > k,

(7.13)

fik − sig − M (1 − uikg ) ≤ 0,

∀i ∈ V, ∀k, g ∈ K, g > k,

(7.14)

fig − sik − M (1 − uigk ) ≤ 0,

∀i ∈ V, ∀k, g ∈ K, g > k,

(7.15)

uikg ∈ {0, 1},

∀i ∈ V, ∀k, g ∈ K, g > k,

(7.16)

sik , fik ≥ 0, yik ∈ {0, 1},

∀i ∈ V, ∀k ∈ K,

(7.17)

xijk ∈ {0, 1},

∀(i, j) ∈ E, ∀k ∈ K.

(7.18)

The objective (7.1) of the MCPRP is to maximize the total patrol time that falls within the time windows of the hotspots. Constraints (7.2) and (7.4) ensure that a patrol vehicle starts its route at the depot at the beginning of the shift and finishes its route at the depot at the end of the shift. Constraint (7.3) ensures a balanced integral flow of vehicles in and out of each vertex in the network. The constraints

7.3 Patrol Vehicle Operations Network

199

(7.5) − (7.8) pertain to schedule feasibility. Constraints (7.5) and (7.6) stipulate that a patrol vehicle can start patrolling hotspot i no earlier than the opening of its time window and no later than the closing of its time window. Constraint (7.7) guarantees that vehicle k begins patrolling hotspot i before it finishes patrolling that hotspot. Constraint (7.8) ensures that if vehicle k travels from hotspot i to hotspot j, then k begins patrolling j no earlier than the time at which it finished patrolling i plus the travel time between i and j. (The Mij appearing in (7.8) are given by Mij = max{li + tij − ej , 0}.) Constraints (7.9) − (7.15) collectively ensure that no double-counting of patrol time occurs at any of the hotspots throughout the shift. (The M appearing in (7.14) and (7.15) is a large constant.) Finally, constraints (7.16) − (7.18) pertain to integrality and non-negativity of relevant variables.

7.3

Patrol Vehicle Operations Network

In this section, we introduce a discrete time rendering of the MCPRP on a geographical network, which we shall call the patrol operations network. We will adopt our own modelling formalism and notation for the problem in order to differentiate our approach from other approaches applied to the MCPRP. This is important to note in order to avoid confusion between the notation presented in this section and that of the model outlined by Keskin et al. [77]. The patrol operations network is a directed graph GS = (VS , AS ), where VS is the set of geographical locations and AS is the set of feasible transitions between the elements of the set VS . The set of geographical locations, at which multiple hotspots may exist, is given by VS = {0} ∪ {1, . . . , n}. The singleton set {0} is used to denote the patrol vehicle depot or base of operations, whereas the set {1, . . . , n} represents the number of distinct geographical locations at which hotspots may be found. The set of directed arcs on the network (that is, the set of feasible transitions between geographical locations) is given by AS ⊆ {(i, j) | i, j ∈ VS , i ̸= j}. For each i ∈ VS \{0} there is a set of non-overlapping hotspots, where each hotspot is represented by a time window with a start time and an end time. The number of hotspots at location i is given by hi , and the m-th hotspot at location i is denoted by i i [eim , lm ], where eim < lm for all m ∈ {1, . . . , hi } and for all i ∈ VS \{0}. Without loss i i of generality, at any given location i ∈ VS \{0}, if m′ < m′′ , then lm ′ ≤ em′′ , where m′ , m′′ ∈ {1, . . . , hi }. The set of all hotspots is given by W and is indexed by ℓ. The opening (start time) of hotspot ℓ is given by min(ℓ) while the close (finish time) of

Patrol Vehicle Routing with Hotspot Coverage

200 the hotspot is given by max(ℓ).

The set of patrol vehicles is given by K and is indexed by k. For each patrol vehicle k ∈ K, we specify a set of locations VSk ⊆ VS and a set of directed arcs AkS ⊆ AS , such that the subgraph GkS = (VSk , AkS ) defines the patrol operations subnetwork for k ∈ K. The set of hotspots for each k ∈ K is given by W k and the set of hotspots for each k ∈ K at location i ∈ VS \{0} is given by W k (i). Each vehicle k ∈ K has an associated positive and integer-valued transit time over each pair of vertices i, j ∈ VSk , which we denote tkij ∈ Z+ . For each patrol vehicle, the transit times on the network GkS must satisfy the triangle inequality. We also associate a boolean gijk ∈ {0, 1} to each pair of vertices i, j ∈ VSk , which takes the value 1 if there is an arc linking i to j for patrol vehicle k ∈ K and 0 otherwise.

08

22

15 11

07

10 09

21

01

14 06

12

13 20

02

Depot 19 05 16

03

18

04 17

Fig. 7.1 An example of hotspot locations on a road network, with the depot distinguished (each vehicle must begin and end its route at the depot). During a shift, there are pre-defined time intervals for which a location becomes a hotspot. Given a fleet of vehicles, the objective is to maximize the time coverage of the hotspots.

7.4 Time-Space Network Construction

7.4

201

Time-Space Network Construction

As mentioned in the introductory section, our approach to the MCPRP follows a column generation paradigm, similar to that outlined for the PBSPCC in the preceding chapters. The column generation subproblems are defined on an underlying time-space network. For a given patrol vehicle k ∈ K, we take the spatial network GkS = (VSk , AkS ), the set of hotspots W k and the shift duration T to construct a timespace network GkR = (VRk , AkR ) according to a transformation law: (GkS , W k , T ) → GkR ,

∀k ∈ K.

(7.19)

In this section, we provide the details of how such a transformation is performed. To begin, we note that the set of hotspots for patrol vehicle k (W k ⊆ W) can be expressed as: [ W k := W k (i), (7.20) i∈VS \{0}

where,  W k (i) := [ei1 , l1i ], . . . , [eihi , lhi i ] .

(7.21)

i i i ′ ′′ For each time window, we have eim < lm , and lm ′ ≤ em′′ for all m < m ∈ {1, . . . , hi }. We denote ℓ to be an element of the set W or any of its subsets W k , W k (i). We also define the following function which maps hotspots to their geographical locations:

ω : W → VS \{0}.

(7.22)

We define the set of patrol arcs as Akpatrol ⊂ AkR , the set of waiting arcs as Akwait ⊂ AkR , the set of transit arcs as Aktransit ⊂ AkR and the set of dummy arcs as Adummy ⊂ AkR . k The set of patrol arcs at location i ∈ VS \{0} is given by Ak,i patrol ⊆ Apatrol . The set of patrol arcs in time window ℓ ∈ W k (i) is expressed as Akpatrol (ℓ) ⊆ Ak,i patrol , where i ∈ VS \{0}. For each patrol vehicle, we let tkuv ∈ Z+ be the transit time of traversing arc (u, v) ∈ AkR . For each v ∈ VRk , let Ak+ (v) be the set of all arcs emanating from v, and let Ak− (v) be the set of all arcs terminating at v. For the source and sink vertices (s and τ , respectively), the dummy arc (s, τ ) ∈ AkR is excluded from Ak+ (s) and Ak− (τ ). Note that Ak− (s) = Ak+ (τ ) = ∅ for all k ∈ K. Equipped with the preceding definitions and notation, the time-space network construction begins with an initialization procedure which creates a source and a

202

Patrol Vehicle Routing with Hotspot Coverage

sink vertex, along with a layer of vertices for each spatial location VSk \{0}. Each layer contains T + 1 vertices, where the horizontal spacing between the vertices defines the time discretization. Hence, each vertex u ∈ VRk can be expressed in terms of a location-time pair (i, t), where i ∈ VSk and t ∈ {0, . . . , T }. The initialization procedure can be found in Algorithm 17. Algorithm 17 MCPRP: Initialization of a time-space network 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18:

Input: A spatial network GkS = (VSk , AkS ) and a shift length T procedure I NITIALIZE T IME S PACE N ETWORK(GkS , T ) VRk ← ∅ AkR ← ∅ Akdummy ← ∅ Create source vertex s and sink vertex τ VRk ← VRk ∪ {s, τ } Create arc (s, τ ) Akdummy ← Akdummy ∪ {(s, τ )} AkR ← AkR ∪ {(s, τ )} for i ∈ VSk \{0} do for t = 0, . . . , T do Create vertex u with u = (i, t) VRk ← VRk ∪ {u} end for end for return GkR = (VRk , AkR ) end procedure

Once the initialization procedure has been executed, the next step is to define the hotspots on the time-space network. The hotspots for each location are represented by a series of patrol arcs. The design choice for the hotspots is based on the following insightful theorem from Keskin et al. [77]. Theorem 7.4.1 (Keskin et al. [77]). Let S ∗ be an optimal solution to an instance of the MCPRP, consisting of patrol routes for each k ∈ K. For each hotspot ℓ ∈ W visited by patrol vehicle k ∈ K, the time at which k finishes patrolling ℓ is given by:  n o min max(ℓ), T − tk if ℓ is the last hotspot visited on k’s route, {ω(ℓ)}0 fℓk = max(ℓ) otherwise. Proof. See the appendix of Keskin et al. [77].

7.4 Time-Space Network Construction

203

In an optimal solution S ∗ each patrol vehicle k ∈ K visits a sequence of hotspots, arriving at hotspot ℓ ∈ W at time sℓk and departing at time fℓk . The theorem of Keskin et al. [77] states that in an optimal solution to the MCPRP, a given patrol vehicle will remain at hotspot ℓ until the close of the time window if hotspot ℓ is not the last hotspot on k’s route. If, on the other hand, the hotspot ℓ is the last hotspot visited on a patrol vehicle k’s route, then k remains at hotspot ℓ until the close of the time window OR until the latest time at which it can leave the hotspot and arrive back at the depot within the shift. Given the observation of the theorem by Keskin et al. [77], we can represent each hotspot with a series of patrol arcs which collectively terminate at the vertex corresponding to the end of the time window or at the vertex corresponding to the latest possible time at which a patrol vehicle must return to the depot. The first patrol arc in the series emanates from the vertex corresponding to the start of the time window, with the subsequent patrol arc in the series originating at the next chronological vertex within the time window, and so on. This process is illustrated in Figure 7.2. (a)

(b)

(i, T – ti0) eim

lim

eim

lim

Fig. 7.2 The patrol (black) arc construction for a time-space network. Part (a) corresponds to a hotspot which lies entirely within the timespan [t0i , T − ti0 ]. Part (b) is indicative of a time window which has a closing time greater than T − ti0 . The green arc in part (b) is the transit arc which traces back to the depot. The dashed grey arcs are indicative of incoming transit arcs from other locations. The formal procedure for constructing the patrol arcs over the hotspots on a time-space network can be found in Algorithm 18. This procedure also includes a test to check whether a time window lies within, crosses the boundary of or lies outside of the feasibility interval [tk0i , T − tki0 ]. Any hotspot which crosses the boundary of the feasibility interval must have its start and end time updated accordingly, while any hotspot lying entirely outside the feasibility window should

Patrol Vehicle Routing with Hotspot Coverage

204 be discarded.

Algorithm 18 MCPRP: Patrol arc construction for hotspots 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25:

Input: A spatial network GkS = (VSk , AkS ), a shift length T , a set of hotspots W k procedure C ONSTRUCT PATROL A RCS(GkS , W k , T ) GkR ← I NITIALIZE T IME S PACE N ETWORK(GkS , T ) Akpatrol ← ∅ for ℓ ∈ W k do Akpatrol (ℓ) ← ∅  W  if max(ℓ) < tk0{ω(ℓ)} min(ℓ) > T − tk{ω(ℓ)}0 then continue ◃ Hotspot is unreachable. else if min(ℓ) < tk0{ω(ℓ)} then min(ℓ) ← tk0{ω(ℓ)} end if if max(ℓ) > T − tk{ω(ℓ)}0 then max(ℓ) ← T − tk{ω(ℓ)}0 end if for t = min(ℓ), . . . , max(ℓ) − 1 do Create arc (u, v) with u = (ω(ℓ), t) and v = (ω(ℓ), max(ℓ)) Akpatrol ← Akpatrol ∪ {(u, v)} Akpatrol (ℓ) ← Akpatrol (ℓ) ∪ {(u, v)} end for end if end for AkR ← AkR ∪ Akpatrol return GkR = (VRk , AkR ) end procedure

As we will see in Section 7.5, a set of packing constraints is required in the column generation master problem to avoid multiple contributions to the patrol effort in each hotspot. By adopting the patrol arc construction shown in Figure 7.2, only one packing constraint is required per hotspot. Without the insight provided by the theorem of Keskin et al. [77], a naive alternative would be to construct a single patrol arc per time interval in each hotspot, with a corresponding packing constraint for each patrol arc in the master problem (see Figure 7.3). Such a naive construction would increase the runtime for the solution of both the master problem and subproblem.

7.4 Time-Space Network Construction

205

(a)

(b)

eim

lim

Fig. 7.3 Two options for the patrol Pn arc construction. The number of packing constraints for formulation (a) is i=1 hi , whereas the number of packing constraints P P i i (lm − eim ). The formulation for part (b) requires in formulation (b) is ni=1 hm=1 additional transit arcs to other locations.

Once the hotspots have been identified and constructed on the time-space network, the next step is to create transit arcs between the source vertex and each location. In addition, another set of transit arcs is required to connect each geographical location with the sink vertex. Following the construction of these transit arcs, a set of waiting arcs is required for each layer of vertices in the time-space network. Waiting arcs correspond to dead time, where a patrol vehicle is stationed at a geographical location but is not actively contributing to the patrol effort. Firstly, waiting arcs are constructed between the end of each time window and the start of all subsequent time windows at the same location. Secondly, a set of waiting arcs is created to connect a location’s arrival vertex with the start of each time window at that location. Finally, waiting arcs are constructed which connect the end of each time window at a given location with that location’s termination vertex.2 The procedure is illustrated in Figure 7.4 and is fully described in Algorithm 19. 2

The arrival vertex at location i ∈ VSk is the vertex v ∈ VRk such that v = (i, tk0i ). The termination vertex at location i ∈ VSk is the vertex u ∈ VRk such that u = (i, T − tki0 ).

206

Patrol Vehicle Routing with Hotspot Coverage

Fig. 7.4 Construction of primary transit and waiting arcs on a time-space network. Transit (green) arcs connect each layer of vertices to the source and sink vertices. Waiting (red) arcs account for dead time contributions at each geographical location. A (grey) dummy arc connects the source and sink vertices. Patrol arcs are shown in black.

Algorithm 19 MCPRP: Primary transit and waiting arc construction 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24:

Input: A spatial network GkS = (VSk , AkS ), a shift length T , a set of hotspots W k procedure C ONSTRUCT T RANSIT WAITING A RCS(GkS , W k , T ) GkR ← C ONSTRUCT PATROL A RCS(GkS , W k , T ) Aktransit ← ∅ Akwait ← ∅ for i ∈ VS \{0} do Create arc (s, v) with v = (i, tk0i ) Create arc (u, τ ) with u = (i, T − tki0 ) Aktransit ← Aktransit ∪ {(s, v), (u, τ )} for ℓ ∈ W k (i) do Create arc (v, w) with w = (i, min(ℓ)) Create arc (x, u) with x = (i, max(ℓ)) Akwait ← Akwait ∪ {(v, w), (x, u)} for ℓ′ ∈ W k (i) do if min(ℓ′ ) > max(ℓ) then Create arc (y, z) with y = (i, max(ℓ)) and z = (i, min(ℓ′ )) Akwait ← Akwait ∪ {(y, z)} end if end for end for end for AkR ← AkR ∪ Aktransit ∪ Akwait return GkR = (VRk , AkR ) end procedure

7.4 Time-Space Network Construction

207

Following the construction of the primary transit and waiting arcs, we need to account for secondary transit and waiting arcs which correspond to potential movements of patrol vehicles between different geographical locations. For the end of each time window max(ℓ) at a given geographical location i ∈ VS \{0}, a set of transit arcs is created to link location i with all other locations j ∈ VS \{0, i} for which a feasible transit lane exists, that is, for all j such that gijk = 1 and max(ℓ) + tkij ≤ T − tkj0 . Algorithm 20 MCPRP: Secondary transit and waiting arc construction Input: A spatial network GkS = (VSk , AkS ), a shift length T , a set of hotspots W k procedure C ONNECT L OCATIONS(GkS , W k , T ) GkR ← C ONSTRUCT T RANSIT WAITING A RCS(GkS , W k , T ) for i ∈ VS \{0} do for ℓ ∈ W k (i) do for j ∈ VS \{0, i} s.t. gijk = 1 do if max(ℓ) + tkij ≤ T − tkj0 then Create arc (u, v) with u = (i, max(ℓ)) and v = (j, max(ℓ) + tkij ) Aktransit ← Aktransit ∪ {(u, v)} if ∃ ℓ′ ∈ W k (j) s.t. min(ℓ′ ) ≤ max(ℓ) + tkij ≤ max(ℓ′ ) then continue else for ℓ′ ∈ W k (j) do if min(ℓ′ ) > max(ℓ) + tkij then Create arc (v, w) with w = (j, min(ℓ′ )) Akwait ← Akwait ∪ {(v, w)} end if end for end if end if end for end for end for AkR ← AkR ∪ Aktransit ∪ Akwait return GkR = (VRk , AkR ) end procedure

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

For each feasible transit arc constructed between u = (i, max(ℓ)) and v = (j, max(ℓ)+ we need to check if there exists an ℓ′ ∈ W k (j) such that:

tkij ),

min(ℓ′ ) ≤ max(ℓ) + tkij ≤ max(ℓ′ ).

(7.23)

208

Patrol Vehicle Routing with Hotspot Coverage

If condition (7.23) is satisfied, then the connecting transit arc between i and j hits a hotspot at location j, and no further work is required. However, if condition (7.23) is not satisfied, then a series of waiting arcs are required to connect node v = (j, max(ℓ) + tkij ) with each node w = (j, min(ℓ′ )) such that ℓ′ ∈ W k (j) and min(ℓ′ ) > max(ℓ)+tkij . The procedure to construct the secondary transit and waiting arcs is illustrated in Figure 7.5 and formally outlined in Algorithm 20.

Algorithm 21 MCPRP: Post-processing of the time-space network 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24:

Input: A spatial network GkS = (VSk , AkS ), a shift length T , a set of hotspots W k procedure P OST P ROCESSING(GkS , W k , T ) GkR ← C ONNECT L OCATIONS(GkS , W k , T ) Aktemp ← ∅ k ←∅ Vtemp for (u, v) ∈ Akpatrol do  if Ak− (u) = ∅ ∧ (u ̸= s) then Aktemp ← Aktemp ∪ {(u, v)} else continue end if end for for u ∈ VRk \{s, τ } do if Ak− (u) = ∅ then k k Vtemp ← Vtemp ∪ {u} else continue end if end for k VRk ← VRk \Vtemp AkR ← AkR \Aktemp Akpatrol ← Akpatrol \Aktemp return GkR = (VRk , AkR ) end procedure

The final stage of the time-space network construction is a post-processing phase. At this final stage, any vertices in the time-space network which do not contain any incoming arcs are deleted. In other words, a vertex u ∈ VRk \{s, τ } will be deleted if Ak− (u) = ∅. In addition, all arcs (u, v) ∈ Ak+ which proceed from such a vertex must be deleted from the network. These arcs, if they exist, will be patrol arcs, since all

7.4 Time-Space Network Construction

209

waiting and transit arcs are constructed from vertices with non-empty in-arc sets.3 The post-processing phase is illustrated in Figure 7.6 and formally summarized in pseudocode in Algorithm 21.

Fig. 7.5 Construction of secondary transit and waiting arcs on a time-space network. The yellow vertices correspond to the end times of hotspots from which transit (blue) arcs are constructed. If a transit arc emanating from a yellow vertex does not land within a hotspot at another location, waiting (red) arcs are constructed from the target vertex to the opening of all subsequent hotspots. Dashed arcs correspond to patrol (black) and waiting (red) arcs carried over from the previous stages of the time-space network construction.

Fig. 7.6 A time-space network after the deletion of superfluous arcs and vertices. The diagram can be compared against Figure 7.5. 3

This excludes the source vertex s. By the in-arc set of a vertex u, we mean the set Ak− (u).

Patrol Vehicle Routing with Hotspot Coverage

210

7.5

Arc Based Integer Programming Formulation

Equipped with the procedures outlined in the previous section, a time-space network GkR = (VRk , AkR ) can be constructed for each patrol vehicle k ∈ K. The set of arcs for a patrol vehicle’s time-space network can be expressed as a union of the mutually exclusive subsets as follows: AkR =

[

Akϕ ,

∀k ∈ K, (7.24)

ϕ∈Φ

where, Φ := {patrol, transit, wait, dummy}. The decision variables for each patrol vehicle relate to the arcs traversed through its time-space network: xkuv

 1 := 0

if patrol vehicle k ∈ K uses arc (u, v) ∈ AkR ,

(7.25)

otherwise.

With variable definition given above, an arc based integer programming formulation of the MCPRP can be expressed as follows: maximize subject to

X

X

k∈K

(u,v)∈Akpatrol

X

tkuv xkuv ,

X

(7.26)

xkuv ≤ 1,

∀ℓ ∈ W,

(7.27)

xksv = 1,

∀k ∈ K,

(7.28)

∀k ∈ K, ∀v ∈ VRk \{s, τ },

(7.29)

∀k ∈ K,

(7.30)

k∈K (u,v)∈Ak (ℓ) patrol

X (s,v)∈Ak+ (s)∪{(s,τ )}

X

xkuv =

X

xkvw ,

(v,w)∈Ak+ (v)

(u,v)∈Ak− (v)

X

xkuτ = 1,

(u,τ )∈Ak− (τ )∪{(s,τ )}

X

X

¯ tkuv xkuv ≤ C,

(7.31)

k∈K (u,v)∈Ak patrol

X

X

k∈K

(u,v)∈Ak,i patrol

X

X

k∈K (s,v)∈Ak+ (s)

tkuv xkuv ≤ C¯i , xksv ≤ κmax ,

∀i ∈ VS \{0},

(7.32) (7.33)

7.6 Path Based Linear Programming Formulation

211

xkuv ≥ 0,

∀k ∈ K, ∀(u, v) ∈ AkR ,

(7.34)

xkuv ∈ {0, 1},

∀k ∈ K, ∀(u, v) ∈ AkR .

(7.35)

The objective (7.26) is to maximize the aggregate profit of employing the patrol vehicles, that is, to maximize the total time spent on hotspot patrol. The objective must be achieved by satisfying the constraints (7.27) − (7.35). The statement of the objective is followed by a set of packing constraints (7.27). There is a single packing constraint for each hotspot ℓ ∈ W. The packing constraints are included to ensure that each hotspot is actively patrolled by at most one patrol vehicle, thereby prohibiting multiple contributions to the patrol effort at each hotspot. The massbalance constraints (7.29) ensure that a vehicle’s path through the network is spatiotemporal feasible. We also require each patrol vehicle to begin the shift at the source vertex (7.28) and end the shift at the sink vertex (7.30). The constraints (7.31) and (7.32) are optional bounds constraints for the formulation. Constraint (7.31) stipulates an upper bound C¯ on the aggregate patrol time delivered by the vehicles across all hotspots on the network. The constraints given by (7.32) use a set values {C¯i | i ∈ VS \{0}} to enforce upper bounds on the aggregate patrol effort delivered to all the hotspots at each geographical location. The upper bounds C and C¯i are given through (7.36) and (7.37) below. Constraint (7.33) provides an upper bound on the number of available patrol vehicles through κmax . Finally, the constraints (7.34) enforce non-negativity conditions on the flow of each vehicle over each arc in the time-space network, while constraints (7.35) impose binary flow for each vehicle over the arcs in the network. C¯ := C¯i :=

7.6 7.6.1

hi n X X

 i lm − eim ,

i=1 m=1 hi X i lm − m=1

 eim ,

∀i ∈ VS \{0}.

(7.36) (7.37)

Path Based Linear Programming Formulation Flow Decomposition

In a similar vein to the approach outlined in Section 4.7, we can apply the DantzigWolfe decomposition procedure to the arc based integer program given by (7.26) −

Patrol Vehicle Routing with Hotspot Coverage

212

(7.35). This will result in a path based linear programming formulation to which a column generation approach may be applied. k

To begin, we introduce vectors xk ∈ {0, 1}|AR | , and a set of bijective mappings:  Ik : AkR → 0, . . . , |AkR | − 1 ,

(7.38)

xk = xkuv

(7.39)

where:  Ik (u,v)

,

∀k ∈ K.

Invoking the Minkowski-Weyl Theorem, we infer that the polytope defined by the convex hull (conv(Xk )) of the set: n o k Xk = xk ∈ {0, 1}|AR | | (7.28) − (7.30) ,

∀k ∈ K,

(7.40)

has extreme points which correspond to feasible paths through a patrol vehicle’s time-space network. Therefore, an extreme point of the polytope conv(Xk ) can be expressed as a path p ∈ Pk through the time-space network GkR for vehicle k ∈ K, where Pk is the set of all feasible paths from s to τ through GkR :  Pk := p | p is a path from s to τ through GkR ,

∀k ∈ K.

(7.41)

An extreme point of conv(Xk ) is given by the vector: xkp = xkuvp

 Ik (u,v)

,

∀k ∈ K,

(7.42)

k

for some p ∈ Pk where xkp ∈ {0, 1}|AR | and the components are given by: xkuvp

 1 := 0

if patrol vehicle k ∈ K uses arc (u, v) ∈ AkR on path p ∈ Pk ,

(7.43)

otherwise.

Given the extreme points of the convex hull’s polytope, we may write the arc variables xk ∈ Xk in terms of the path variables as follows: xkuv =

X

xkuvp λkp ,

∀k ∈ K, ∀(u, v) ∈ AkR ,

(7.44)

λkp = 1,

∀k ∈ K,

(7.45)

p∈Pk

X p∈Pk

7.6 Path Based Linear Programming Formulation λkp ≥ 0,

7.6.2

∀k ∈ K, ∀p ∈ Pk .

213 (7.46)

Patrol Time

For a feasible path through the time-space network for patrol vehicle k ∈ K, let c¯kp ∈ Z+ be the total time spent on hotspot patrol. Similarly, we define c¯kpi ∈ Z+ to be the patrol effort delivered to all hotspots at location i ∈ VS \{0}. With this notation, we get the following: c¯kp :=

X

tkuv xkuvp ,

∀k ∈ K, ∀p ∈ Pk ,

(7.47)

tkuv xkuvp ,

∀k ∈ K, ∀i ∈ VS \{0}, ∀p ∈ Pk .

(7.48)

(u,v)∈Akpatrol

c¯kpi :=

X (u,v)∈Ak,i patrol

7.6.3

Patrol Vehicles

Since each path p ∈ Pk begins at the source vertex s ∈ VRk and ends at the sink vertex τ ∈ VRk , we have: X xksvp = bkp , ∀k ∈ K, ∀p ∈ Pk , (7.49) (s,v)∈Ak+ (s)

where the bkp are binary parameters, given by:  1 if patrol vehicle k ∈ K uses a non-trivial path p ∈ P , k bkp := 0 if patrol vehicle k ∈ K uses the trivial path p = (s, τ ) ∈ P . k

7.6.4

(7.50)

Hotspots

For each hotspot ℓ ∈ W, we get: X

xkuvp = akℓp ,

∀k ∈ K, ∀p ∈ Pk , ∀ℓ ∈ W,

(7.51)

(u,v)∈Akpatrol (ℓ)

where the akℓp are binary parameters, given by:  1 if patrol vehicle k ∈ K patrols hotspot ℓ ∈ W along path p ∈ P , k akℓp := 0 otherwise. (7.52)

Patrol Vehicle Routing with Hotspot Coverage

214

7.6.5

Master Problem

Returning to the optimization problem (7.26) − (7.35), we can substitute xkuvp for the xkuv , interchange the order of summation, and drop constraints (7.28) − (7.30). The integrality conditions are relaxed by removing constraints (7.35), and thus, we are no longer required to explicitly link xkuv to λkp through (7.44). Therefore, the relaxation of the arc based integer programming formulation can be expressed in terms of the path flow variables as follows (the corresponding dual variables are shown on the right-hand-side): maximize

XX

c¯kp λkp ,

(7.53)

k∈K p∈Pk

subject to

XX

akℓp λkp ≤ 1,

∀ℓ ∈ W,

[πℓ ]

(7.54)

[α]

(7.55)

[βi ]

(7.56)

[γ]

(7.57)

[θk ]

(7.58)

k∈K p∈Pk

XX

¯ c¯kp λkp ≤ C,

k∈K p∈Pk

XX

c¯kpi λkp ≤ C¯i ,

∀i ∈ VS \{0},

k∈K p∈Pk

XX

bkp λkp ≤ κmax ,

k∈K p∈Pk

X

λkp = 1,

∀k ∈ K,

p∈Pk

λkp ≥ 0,

∀k ∈ K, ∀p ∈ Pk .

(7.59)

The path based formulation given by (7.53) − (7.59) is thus the set packing linear relaxation (with additional convexity constraints) of the arc based integer programming formulation given by (7.26) − (7.35).

7.7

Reduced Costs

As in Section 4.8, we can construct some useful mappings in order to define the reduced cost of a path through a time-space network. These mappings are given for all k ∈ K as follows: φk : Akpatrol → W ′ ,

ψk : Akpatrol → VS \{0}.

(7.60)

7.7 Reduced Costs

215

where the set W ′ = {1, . . . , |W|} is an integer-valued index set corresponding to the hotspots on the network. Both φk and ψk are surjective functions for all k ∈ K. Paths of negative reduced cost are determined by solving pricing subproblems over the underlying time-space networks GkR , where k ∈ K. Uncovering the mathematical or algebraic form of the reduced cost of a path p ∈ Pk , where k ∈ K, naturally leads to revealing the structure of the pricing subproblem for k. The reduced cost r¯pk of a path p ∈ Pk through a time-space network GkR is given through the expression: r¯pk := π T Akp − c¯kp ,

∀k ∈ K, ∀p ∈ Pk ,

(7.61)

where π T is a row vector of the dual variables of the master problem (7.53) − (7.59), Akp is the column corresponding to variable λkp , and c¯kp is the cost coefficient of λkp in the objective function (7.53). Note how the form of expression in (7.61) differs slightly from the reduced cost expression for the PBSPCC in (4.79). The difference is accounted for by recognizing that the MCPRP requires the maximization of its objective function, while the goal of the PBSPCC is to minimize its objective function. Therefore, the reduced cost r¯pk of a path p ∈ Pk through a time-space network GkR can be written in terms of the underlying arc variables as follows: r¯pk = π T Akp − c¯kp , ! X = πℓ akℓp + α¯ ckp + βi c¯pi + γbkp + θk − c¯kp , ℓ∈W

! =

X

X

πℓ

xkuvp

! +α

(u,v)∈Akpatrol (ℓ)

ℓ∈W

X

tkuv xkuvp

X (s,v)∈Ak+ (s)

xksvp

+

(u,v)∈Akpatrol

βψk (u,v) tkuv xkuvp

(u,v)∈Akpatrol

! +γ

! X

! + θk −

X

tkuv xkuvp ,

(u,v)∈Akpatrol

! =

X (u,v)∈Akpatrol

   πφk (u,v) + α + βψk (u,v) − 1 tkuv xkuvp

! +

X (s,v)∈Ak+ (s)

γxksvp

+ θk .

Patrol Vehicle Routing with Hotspot Coverage

216

Hence, the reduced cost of path p ∈ Pk can be expressed as: X

r¯pk =

µkuv xkuv + θk ,

(7.62)

(u,v)∈p

where the coefficients µkuv are given through:

µkuv

7.8 7.8.1

    πφk (u,v) + α + βψk (u,v) − 1 tkuv   := γ    0

if (u, v) ∈ Akpatrol , if (u, v) ∈ Ak+ (s),

(7.63)

otherwise.

Column Generation for a Homogeneous Fleet Master Problem

The setting for the MCPRP, as described in the original work by Keskin et al. [77], assumes a homogeneous fleet of patrol vehicles which can range over the entire spatial network GS . A homogeneous fleet implies that the travel times between any two distinct location i, j ∈ VS are identical for all vehicles, that is, given any ′′ ′ two distinct k ′ , k ′′ ∈ K, we have tkij = tkij = tij . Moreover, if each vehicle can freely range over the entire spatial network, then we no longer require the construction of distinct spatial sub-networks for each vehicle. In other words, given any two ′ ′′ ′ ′′ distinct k ′ , k ′′ ∈ K, we have GkS = GkS = GS , and W k = W k = W. The homogeneous fleet assumption with a single spatial network entails that only one underlying time-space network is required, that is, GkR = GR for all k ∈ K, where GR = (VR , AR ). In addition, we can write P = Pk for all k ∈ K. Furthermore, we can drop indices containing k from all coefficients, variables, mappings and sets. The convexity constraints (7.58) can be expressed in aggregated form: X p∈P

λp = |K|,

where, λp =

X

λkp .

(7.64)

k∈K

The aggregated constraint given through (7.64) tracks the number of patrol vehicles using the trivial path (s, τ ) ∈ AR and non-trivial paths. The objective of the MCPRP is to maximize the aggregate patrol coverage of the hotspots using the available fleet of size |K|. Recall that we already have a constraint which places an upper bound κmax on the number of patrol vehicles that can use non-trivial paths through

7.8 Column Generation for a Homogeneous Fleet

217

the time-space network. Hence, if the trivial arc (s, τ ) is removed from the network, we get bp = 1 for all p ∈ P . Thus, there is no need to include the aggregated constraint (7.64) in the master problem in the presence of (7.57) and with the omission of the trivial arc (s, τ ). With the assumption of a homogeneous fleet of vehicles which can range over the entire spatial network, we can write the column generation master problem of the MCPRP as follows: maximize

X

(7.65)

c¯p λp ,

p∈P

subject to

X

aℓp λp ≤ 1,

∀ℓ ∈ W,

[πℓ ]

(7.66)

[α]

(7.67)

[βi ]

(7.68)

[γ]

(7.69)

p∈P

X

¯ c¯p λp ≤ C,

p∈P

X

c¯pi λp ≤ C¯i ,

∀i ∈ VS \{0},

p∈P

X

λp ≤ κmax ,

p∈P

λp ≥ 0,

∀p ∈ P.

(7.70)

The master problem (7.65) − (7.70) can be initialized with a set of paths P ′ ⊂ P to form an initial restricted master problem to which columns generated from a subproblem may be added. A candidate initialization procedure is proffered in Section 7.8.3, while the nature of the subproblem is discussed in the following Section 7.8.2.

7.8.2

Subproblem

Given an iteration of the restricted master problem, configured with a set of paths P ′ ⊂ P , the objective of the pricing subproblem is to find another candidate path p ∈ P \P ′ with least negative reduced cost over the underlying time-space network. The reduced cost r¯p of a path p ∈ P \P ′ through the time-space network GR can be expressed in terms of the dual costs of the restricted master problem applied to the network arcs as follows: X r¯p = µuv xuv , (7.71) (u,v)∈p

Patrol Vehicle Routing with Hotspot Coverage

218

where the coefficients µuv are given through:

µuv

    πφ(u,v) + α + βψ(u,v) − 1 tuv   = γ    0

if (u, v) ∈ Apatrol , if (u, v) ∈ A+ (s),

(7.72)

otherwise.

Therefore, the pricing subproblem can be written as a shortest path problem over the directed acyclic graph GR as follows: minimize

X

(7.73)

µuv xuv ,

(u,v)∈AR

subject to

X

(7.74)

xsv = 1,

(s,v)∈A+ (s)∪{(s,τ )}

X

xuv =

(u,v)∈A− (v)

X

xvw ,

∀v ∈ VR \{s, τ },

(7.75)

(v,w)∈A+ (v)

X

xuτ = 1,

(7.76)

(u,τ )∈A− (τ )∪{(s,τ )}

xuv ∈ {0, 1},

∀(u, v) ∈ AR .

(7.77)

The shortest path problem given through (7.73) − (7.77) can be solved by first applying the dual costs from the restricted master problem and then performing edge relaxation over a topologically sorted list of the vertices in GR . This procedure is summarized in Algorithm 22, which relies on the initialization procedure described in Algorithm 23.

Algorithm 22 MCPRP: Dual based shortest path through a time-space network 1: 2: 3: 4: 5: 6: 7:

Input: A time-space network GR = (VR , AR ) with source s ∈ VR and sink τ ∈ VR and a vector of dual variables π procedure MCPRP_D UAL S HORTEST PATH(GR , s, τ, π) µ ← MCPRP_A PPLY D UAL C OSTS(GR , π) (p, δp (s, τ )) ← DAG-SP(GR , µ, s, τ ) r¯p∗ ← δp (s, τ ) return (p, r¯p∗ ) end procedure

7.8 Column Generation for a Homogeneous Fleet

219

Algorithm 23 MCPRP: Apply dual costs to the arcs of a time-space network 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:

Input: A time-space network GR = (VR , AR ) and a vector of dual variables π procedure MCPRP_A PPLY D UAL C OSTS(GR , π) for (u, v) ∈ Apatrol do  µuv ← πφ(u,v) + α + βψ(u,v) − 1 tuv end for for (u, v) ∈ A+ (s) do µuv ← γ end for  for (u, v) ∈ AR \ Apatrol ∪ A+ (s) do µuv ← 0 end for return µ end procedure

7.8.3

Seed Columns

Recall that the path based linear programming formulation for the PBSPCC was of set covering type (see Section 5.2), which required a seed column construction procedure to cover each patrol period in the RST network. The path based linear programming formulation for the MCPRP, on the other hand, is of set packing type, and by contrast to the PBSPCC, the problem of constructing a feasible initial primal basis is less onerous, since the patrol covering constraints for the MCPRP are nonbinding. For the set packing formulation of the MCPRP, we propose a Randomized Shortest Path Heuristic (RSPH) to derive a set of candidate paths to initialize the restricted master problem. The procedure is formally outlined in Algorithm 24 and in the following paragraph. The RSPH first applies a cost µij = −T to each patrol arc (i, j) ∈ Apatrol and cost µij = 0 to each arc (i, j) ∈ AR \Apatrol . For each hotspot ℓ in the time-space network, a patrol arc (i, j) is chosen at random from the set Apatrol (ℓ). The time index t at the tail of arc (i, j), denoted by (i, j)t , is then multiplied by the random number r˜ drawn from the uniform probability distribution U(0, 1). This value is then negated and added to the cost of each patrol arc in the hotspot. Once the patrol arc costs have been updated in this manner, a shortest path is invoked over the time-space network. By examining the returned shortest path p, the arc costs are updated by setting µuv = T for all (i, j) ∈ p such that (i, j) ∈ Apatrol and φ(u, v) = φ(i, j). On the other hand, if (i, j) ∈ p and (i, j) ∈ AR \Apatrol , then the arc cost is updated

220

Patrol Vehicle Routing with Hotspot Coverage

Algorithm 24 MCPRP: Shortest path heuristic for column generation initialization 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25:

Input: A time-space network GR = (VR , AR ) with source s ∈ VR and sink τ ∈ VR procedure RSPH(GR , s, τ ) for (u, v) ∈ AR \Apatrol do µuv ← 0 end for for ℓ ∈ W do Randomly select an arc (i, j) ∈ Apatrol (ℓ) for (u, v) ∈ Apatrol (ℓ) do µuv ← −T − r˜(0, 1) × (i, j)t end for end for P′ ← ∅ for k = 1, . . . , κmax do (p, δp (s, τ )) ← DAG-SP(GR , µ, s, τ ) P ′ ← P ′ ∪ {p} for (i, j) ∈ p do if (i, j) ∈ Apatrol then for (u, v) ∈ Apatrol such that φ(u, v) = φ(i, j) do µuv ← T end for end if end for end for return P ′ end procedure

through µij = 0. A new shortest path is subsequently returned from the network with the updated cost structure, and the heuristic continues in a cyclical manner, terminating when the aforementioned procedure has been called κmax times. The random cost structure adopted within the RSPH is intended to produce an initial set of paths which share the patrol coverage effort as evenly as possible. This was preferred to a straightforward application of a greedy shortest path heuristic in which the hotspots are equally weighted. For large fleet sizes relative to the number of hotspots on the network, the application of a straightforward greedy heuristic would most likely produce an initial basis consisting of both good and bad quality columns. This would be an undesirable outcome compared to an initial basis in which the patrol effort is more evenly distributed. Hence, the RSPH was implemented in an attempt to increase the likelihood of producing initial basis sets

7.8 Column Generation for a Homogeneous Fleet

221

of better quality.4

7.8.4

Pricing Out Candidate Paths

The column generation procedure is initialized by running the randomized construction heuristic presented in Algorithm 24 over the time-space network. Starting from the initial basis produced by the construction heuristic, columns are generated one-at-a-time by solving the pricing subproblem using the dual costs from the current iteration of the restricted master problem. As long as paths of negative reduced cost are returned from the pricing subproblem, the procedure continues on in a cyclical fashion and the paths are added as columns/variables to the restricted master problem. The column generation procedure terminates once the reduced cost of a path returned from the pricing subproblem is non-negative. A straightforward implementation of the procedure is summarized in Algorithm 25. Algorithm 25 MCPRP: Column generation procedure 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16:

4

Input: A time-space network GR = (VR , AR ) with source s ∈ VR and sink τ ∈ VR P ′ ← RSPH(GR , s, τ ) ¯ ← xp ∈ {0, 1}|AR | | p ∈ P ′ P ¯ procedure MCPRP_G ENERATE C OLUMNS(GR , s, τ, P) ¯ with associated variables {λp }p∈P ′ Construct RMP from P Solve the RMP to get dual variables π (p, r¯p∗ ) ← MCPRP_D UAL S HORTEST PATH(GR , s, τ, π) if r¯p∗ ≥ 0 then END else Add new variable λp and associated column to RMP P ′ ← P ′ ∪ {p} ¯ ←P ¯ ∪ {xp } P goto 5 end if end procedure

Unlike the PBSPCC, we do not perform extensive root node tests of different strategies for the construction of seed columns. This is something we had planned to carry out, but time constraints meant that it was not possible to include in this dissertation. Future work on the application of column generation to the path based linear programming formulation of the MCPRP could investigate different seed column construction strategies and the subsequent effects on the root node performance.

Patrol Vehicle Routing with Hotspot Coverage

222

7.9 7.9.1

Branch-and-Price Approach Time-Space Network Arc Selection

The branch-and-price approach that we propose for the MCPRP is a heuristic procedure which follows a similar paradigm to that presented in Section 5.3. If the application of column generation at the root node fails to return an integer solution, we can impose additional cuts to the master problem by selecting the most fractional transit arc in the time-space network for branching. Unlike the approach of Section 5.3, we do not consider combinations of arc variables on which to branch. The approach we present here for the MCPRP only considers a single fractional transit arc at each node in the branch-and-price tree. Other branching strategies, for example, selecting various combinations of arc variables at a time, are recommended for consideration in future research endeavours. Assume we have a fractional solution to the MCPRP with a basis defined by a set of paths P ′ ⊂ P . Let (u, v) ∈ Atransit . Recall that the flow F over the arc (u, v) is given by the sum of the path variables in the current basic solution which use that arc, that is: X F (u, v) := λp . (7.78) p∈{q∈P ′ | (u,v)∈q}

The most fractional transit arc in the current non-integral solution is given by: (u, v)∗ := arg min F˜ (u, v),

(7.79)

(u,v)∈Atransit

where we have:   1 − (F (u, v) − ⌊F (u, v)⌋) F˜ (u, v) := 2  1 − (⌈F (u, v)⌉ − F (u, v)) 2

if F (u, v) − ⌊F (u, v)⌋ < 21 ,

(7.80)

otherwise.

Once the most fractional transit arc has been identified, we can create left and right disjunctive branches under the current node in the branch-and-price tree. Therefore, a new master problem is required for each branching decision. On the left branch, we create a new master problem which inherits the same form of its antecedent tree node with the addition of the following constraint: X p∈{q∈P ′

| (u,v)∗ ∈q}

λp ≤ ⌊F ((u, v)∗ )⌋.

(7.81)

7.9 Branch-and-Price Approach

223

Similarly, on the right branch, we impose the constraint: X

λp ≥ ⌈F ((u, v)∗ )⌉.

(7.82)

p∈{q∈P ′ | (u,v)∗ ∈q}

Incorporation of a cut to the master problem, that is, either (7.81) or (7.82), requires that the subproblem cost structure be modified by adding a dual penalty cost to the arc (u, v)∗ .

7.9.2

Search Tree Node Selection

The search tree maintains a best (relaxed) upper bound zUB and a best (integer) lower bound zLB . The process of maintaining and updating these bounds has already been described comprehensively in Section 3.7.3.5 Given a list of unfathomed nodes, we select the node with objective z ′ such that zUB − z ′ is a minimum. Ties between nodes with the same objective can be broken by preferring the node with the greatest ratio of the number of integral non-zero arc variables to the number of non-zero arc variables. If this ratio is equal to unity, we still need to check that the non-zero path variables are all integer. Any nodes which are arc integral but not path integral can be pruned from the tree.6 When a new integer solution has been found, it can be checked against the current best integer lower bound zLB . If the new integer solution is better than the current best lower bound, the lower bound is updated. Otherwise, the newly found integer solution can be pruned from the tree. When the gap between the best relaxed upper bound and the best integer lower bound is sufficiently small,7 and if complementary slackness and feasibility conditions are satisfied, an optimal solution z ∗ has been found, and the branch-and-price procedure can be terminated.

5

The discussion provided in Section 3.7.3 assumes a minimization problem, whereas the branchand-price approach to the MCPRP deals with a maximization problem. The discussion in Section 3.7.3 can be easily modified for the maximization case, and therefore, it is not necessary to recapitulate the details here. 6 See the footnote under Section 5.3. 7 That is, floor(zUB ) = zLB .

Patrol Vehicle Routing with Hotspot Coverage

224

7.10

Benchmark Problems

7.10.1

Test Problems

In order to benchmark the column generation branch-and-price approach to the time-space network formulation of the MCPRP, we have randomly generated a set of patrol operations networks to be used as test problems. In total, 40 test problems have been randomly generated; there are 8 test problems with 40 hotspots, 8 test problems with 60 hotspots, 16 test problems with 80 hotspots and 8 test problems with 100 hotspots. Each test problem has been randomly generated over a grid structure of a certain size and with a choice of time window length for the hotspots. In each case, we consider an 8 hour shift (that is, 480 minutes) with a time discretization of 1 minute. The complete list of test problems can be found in Table 7.1. The headings used in Table 7.1 can be summarized as follows: • Pr. − Name of the test problem. • Loc. − The number of spatial locations in the network. • Hot. − The number of hotspots in the network. • TW.L. − The range of time window lengths for the hotspots. • Grid − The grid size of the network (see Figure 7.7). • TW.UB. − The aggregate duration of the time windows. • Cars − Range of vehicles to be used in test problem instances. The range of time window lengths for the hotspots (TW.L.) is given by either a single value a or a range of values a − b. When a single value is given, each hotspot has a duration given by the value a. In this case, the aggregate duration of the time windows is given by TW.UB = TW.L.×Hot., where Hot. is the number of hotspots. When a range of values is given for TW.UB, each hotspot is allotted a time window duration which is (uniformly) randomly generated on the interval [a, b]. We include a variety of time window lengths to be tested with the branch-and-price approach, ranging from the very small to the very large. The choices are (a) 1 minute, (b) 5 − 15 minutes, (c) 30 minutes and (d) 30 − 90 minutes. Two grid sizes are assumed for the test problems, 30 or 60 minutes (Figure 7.7). The breadth/length of each component grid square represents a transit time of 1 minute. Thus, for the grid structure of size 30, a patrol vehicle traverses the breadth/length of the structure in 30 minutes. Given a grid structure, the test problems are generated by randomly placing hotspot locations on the corner points of individual grid squares, and then assigning the time windows to each location.

Pr. H40_a H40_b H40_c H40_d H40_e H40_f H40_g H40_h H60_a H60_b H60_c H60_d H60_e H60_f H60_g H60_h H80_a H80_b H80_c H80_d

Loc. Hot. 40 40 40 40 40 40 40 40 60 60 60 60 60 60 60 60 80 80 80 80

40 40 40 40 40 40 40 40 60 60 60 60 60 60 60 60 80 80 80 80

TW.L.

Grid

TW.UB.

Cars

Pr.

1 1 5 − 15 5 − 15 30 30 30 − 90 30 − 90 1 1 5 − 15 5 − 15 30 30 30 − 90 30 − 90 1 1 5 − 15 5 − 15

30 60 30 60 30 60 30 60 30 60 30 60 30 60 30 60 30 60 30 60

40 40 379 420 1,200 1,200 2,465 2,340 60 60 535 597 1,800 1,800 3,372 3,351 80 80 739 778

2−4 2−6 2−5 2−8 2 − 10 2 − 13 2 − 14 2 − 15 2−7 2−8 2−7 2 − 11 2 − 12 2 − 13 2 − 16 2 − 16 2−6 2−9 2−8 2 − 14

H80_e H80_f H80_g H80_h H80_i H80_j H80_k H80_l H80_m H80_n H80_o H80_p H100_a H100_b H100_c H100_d H100_e H100_f H100_g H100_h

Loc. Hot. 80 80 80 80 40 40 40 40 40 40 40 40 100 100 100 100 100 100 100 100

80 80 80 80 80 80 80 80 80 80 80 80 100 100 100 100 100 100 100 100

TW.L.

Grid

TW.UB.

Cars

30 30 30 − 90 30 − 90 1 1 5 − 15 5 − 15 30 30 30 − 90 30 − 90 1 1 5 − 15 5 − 15 30 30 30 − 90 30 − 90

30 60 30 60 30 60 30 60 30 60 30 60 30 60 30 60 30 60 30 60

2,400 2,400 4,572 4,781 80 80 730 730 2,400 2,400 4,563 4,325 100 100 934 916 3,000 3,000 5,770 5,990

2 − 17 2 − 16 2 − 22 2 − 22 2−6 2 − 10 2−9 2 − 10 2 − 13 2 − 14 2 − 22 2 − 22 2−8 2 − 10 2−7 2 − 16 2 − 13 2 − 20 2 − 24 2 − 35

7.10 Benchmark Problems

Table 7.1 Test problem patrol operations networks for the MCPRP. In each case, the shift length is 480 minutes and the time discretization is 1 minute.

225

Patrol Vehicle Routing with Hotspot Coverage

60 min

30 min

226

30 min

60 min

Fig. 7.7 Alternative grid choices for the test problems. We define a test problem instance as a randomly generated network with a specific number of patrol vehicles. For each network, the number of instances can be determined by inspecting the entry under the Cars heading in Table 7.1. For example, an entry of 2 − 6 means that there are 5 test problem instances. Each test problem instance is maximally connected, that is, the adjacency matrix (gij )i,j∈VS has entries gij = 1 if i ̸= j and gij = 0 otherwise. The entries of the transition time matrix (tij )i,j∈VS are given through the Euclidean distance metric on the grid structure. Let D be the grid size and let the origin O(0, 0) coincide with lower-left-hand corner of the grid structure. Given any two locations on the grid: i(tx , ty ) and j(ux , uy ), where 0 ≤ tx,y , ux,y ≤ D, the matrix entry for tij is given by:  q (tx − ux )2 + (ty − uy )2 . tij =

(7.83)

The standard measures of effectiveness used in the literature ([77], [38], [18]) are the patrol coverage in terms of the time spent patrolling the hotspots %TW and the number of hotspots visited %HS. These measures are expressed as percentages. The time coverage is given by: P

p∈P ∗

P

(u,v)∈Appatrol tuv

%TW := Pn Phi i=1

i i m=1 (lm − em )

× 100,

(7.84)

7.10 Benchmark Problems

227

where P ∗ is the set of paths satisfying the integer solution and:  Appatrol := (u, v) ∈ p | (u, v) ∈ Apatrol .

(7.85)

The measure pertaining to the number of hotspots visited is given by: P %HS :=

ℓ∈W

P

p∈P ∗

|W|

aℓp λp

× 100.

(7.86)

As an example of an optimal patrol vehicle schedule, consider Figure 7.9. The example given in this case corresponds to the optimal solution to the instance which uses 6 patrol vehicles with test problem H60_e. A legend for Figure 7.9, which may assist in deciphering the key features of the schedule, can be found in Figure 7.8. Patrol hotspot at location 38 for 2 minutes

Transit from location 49 to location 38, 9 minutes

49|49|49|..|..|..|..|..|..|..|..|38|**|**|**|**|**|**|**|38|38|38 Patrol hotspot at location 49 for 2 minutes

Wait at location 38 for 8 minutes

Fig. 7.8 Snapshot of a patrol vehicle schedule.

7.10.2

Computational Results

The computational results of the branch-and-price approach to the test problem networks listed in Table 7.1 can be found in Appendix G. The total number of test problem instances is 478.8 On inspection of the computational results of the 478 test problem instances provided in Appendix G, it can be seen that the branch-and-price approach always finds a provably optimal integer solution. The proof of optimality lies in the observation that the objective function value at the root node (which is an upper bound on the objective of the optimal integer solution) matches the objective 8

The computational results for the branch-and-price approach to the MCPRP were produced on a 2.70 GHz dual-core processor on a 32-bit Operating System with 4.00 GB of RAM. All primal and dual solutions to the linear programs were obtained with CPLEX 12.6. The column generation and shortest path algorithms, along with the required data structures for the master problem and the time-space network, were coded using the Java programming language and the Eclipse Integrated Development Environment (IDE).

228

Patrol Vehicle Routing with Hotspot Coverage

Car 1: |00|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|53|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|** |**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|53|53|53|53|53|53|53|53|53|53|53|53|53|53|53|53|53|53|53|53|53|53|53|53|53 |53|53|53|53|53|53|..|..|..|52|52|52|52|52|52|52|52|52|52|52|52|52|52|52|52|52|52|52|52|52|52|..|..|..|..|..|..|..|..|.. |43|**|**|43|43|43|43|43|43|43|43|43|43|43|43|43|43|43|43|43|43|43|43|43|43|43|43|43|43|43|43|43|43|43|..|..|..|..|18|18 |18|18|18|18|18|18|18|18|18|18|18|18|18|18|18|18|18|18|..|..|32|32|32|32|32|32|32|32|32|32|32|32|32|32|32|32|32|32|32|32 |32|32|32|32|32|32|32|32|32|32|32|32|..|..|..|..|..|..|..|..|..|..|..|..|40|40|40|40|40|40|40|40|40|40|40|40|40|40|40|40 |40|40|40|40|40|40|40|40|40|40|40|40|40|40|40|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|23|**|**|**|**|23|23|23 |23|23|23|23|23|23|23|23|23|23|23|23|23|23|23|23|23|23|23|23|23|23|23|23|23|23|23|23|..|..|..|..|..|..|..|..|..|..|..|.. |..|..|..|..|59|59|59|59|59|59|59|59|59|59|59|59|59|59|59|59|59|59|59|59|59|59|59|59|59|..|..|..|..|..|..|..|..|..|02|** |**|**|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|..|..|..|..|..|..|.. |..|37|37|37|37|37|37|37|37|37|37|37|37|37|37|37|37|37|37|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|** |**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|37|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|.. Car 2: |00|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|12|**|**|**|**|**|**|**|**|** |**|**|12|12|12|12|12|12|12|12|12|12|12|12|12|12|12|12|12|12|12|12|12|12|12|12|12|12|12|12|12|12|12|..|..|26|**|**|**|** |**|**|26|26|26|26|26|26|26|26|26|26|26|26|26|26|26|26|26|26|26|26|26|26|26|26|26|26|26|26|26|26|26|..|..|..|..|..|54|54 |54|54|54|54|54|54|54|54|54|54|54|54|54|54|54|54|54|54|..|..|..|..|..|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08 |08|08|08|08|08|08|..|..|..|..|..|..|..|..|..|..|..|..|..|..|36|**|**|**|**|**|**|**|36|36|36|36|36|36|36|36|36|36|36|36 |36|36|36|36|36|36|36|36|36|36|36|36|36|36|36|36|36|36|36|..|..|..|..|..|..|..|39|**|**|**|**|**|**|**|**|**|**|**|**|** |**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|** |**|**|**|**|**|**|**|39|39|39|39|39|39|39|39|39|39|39|39|39|39|39|39|39|39|39|39|39|39|39|39|39|39|39|39|39|39|39|..|.. |..|..|..|..|..|47|47|47|47|47|47|47|47|47|47|47|47|47|47|47|47|47|47|47|47|47|47|47|47|47|..|..|..|06|**|**|**|**|**|** |**|**|**|**|**|**|**|**|**|**|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06 |06|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|** |**|**|**|**|**|**|**|**|**|**|06|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|.. Car 3: |00|..|..|..|..|..|..|..|..|..|..|..|..|27|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|** |**|**|**|**|**|**|**|**|**|27|27|27|27|27|27|27|27|27|27|27|27|27|27|27|27|27|27|27|27|27|27|27|27|27|27|27|27|27|27|27 |..|..|..|..|..|..|..|..|..|..|21|21|21|21|21|21|21|21|21|21|21|21|21|21|21|..|..|..|22|22|22|22|22|22|22|22|22|22|22|22 |22|22|22|22|22|22|22|22|22|22|22|22|22|22|22|22|22|..|..|..|..|..|58|58|58|58|58|58|58|58|58|58|58|58|58|58|58|58|58|58 |58|58|58|58|58|58|58|58|58|..|..|15|15|15|15|15|15|15|15|15|15|15|15|15|15|15|15|15|15|15|15|15|15|15|..|..|..|..|..|.. |..|..|..|..|60|60|60|60|60|60|60|60|60|60|60|60|60|60|60|60|60|60|60|60|60|60|..|..|..|56|**|**|**|**|**|**|**|**|**|** |**|**|**|**|**|**|**|56|56|56|56|56|56|56|56|56|56|56|56|56|56|56|56|56|56|56|56|56|56|56|56|56|56|56|56|56|56|56|..|.. |..|..|..|..|..|..|..|..|17|17|17|17|17|17|17|17|17|17|17|17|17|17|17|17|17|17|17|17|17|17|17|17|17|17|17|17|17|17|17|.. |..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|16|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|** |**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|16|16|16|16|16|16|16|16|16|16|16|16|16|16|16|16|16|16|16|16|16 |16|16|16|16|16|16|16|16|16|16|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|** |**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|16|..|..|..|..|..|..|.. Car 4: |00|..|..|..|..|..|..|..|..|13|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|** |**|**|**|**|**|**|**|**|**|**|**|**|13|13|13|13|13|13|13|13|13|13|13|13|13|13|13|13|13|13|13|13|13|13|13|13|13|13|13|13 |13|13|13|..|..|..|..|..|..|..|..|..|..|31|31|31|31|31|31|31|31|31|31|31|31|31|31|31|31|31|31|31|31|31|..|..|..|..|..|.. |..|..|41|41|41|41|41|41|41|41|41|41|41|41|41|41|41|41|41|41|41|41|41|41|41|41|41|41|41|41|41|41|41|..|..|..|..|..|49|49 |49|49|49|49|49|49|49|..|..|..|..|..|..|..|..|38|**|**|**|**|**|**|**|38|38|38|38|38|38|38|38|38|38|38|38|38|38|38|38|38 |38|38|38|38|38|38|38|38|38|38|38|38|38|38|..|..|..|..|..|..|..|20|20|20|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|.. |..|..|..|..|..|..|..|..|44|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|** |**|**|**|**|44|44|44|44|44|44|44|44|44|44|44|44|44|44|44|44|44|44|44|44|44|44|44|44|44|44|44|44|44|44|44|..|..|..|..|.. |..|..|..|..|..|..|..|..|..|..|..|..|..|..|01|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|01 |01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|..|..|..|..|..|..|..|..|..|.. |..|..|..|..|..|..|..|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|..|..|.. |..|..|..|..|..|..|..|..|..|..|12|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|.. Car 5: |00|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|05|**|**|**|**|**|**|**|**|**|**|05|05|05 |05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|..|..|..|..|..|..|..|..|..|..|57|57 |57|57|57|57|57|57|57|57|57|57|57|57|57|57|57|57|57|57|57|57|57|57|57|57|57|57|57|..|..|..|..|..|..|..|..|..|..|..|..|.. |34|34|34|34|34|34|34|34|34|34|34|34|34|34|34|34|34|34|34|34|34|34|34|34|34|34|34|34|34|34|34|..|..|..|..|07|**|**|**|** |**|**|**|**|**|**|**|**|**|**|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07 |07|..|25|25|25|25|25|25|25|25|25|25|25|25|25|25|25|25|25|25|25|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|.. |..|..|45|45|45|45|45|45|45|45|45|45|45|45|45|45|45|45|45|45|45|45|45|45|45|45|45|45|45|45|45|45|45|..|..|..|..|..|..|.. |..|42|**|**|**|**|**|**|**|**|**|**|**|**|42|42|42|42|42|42|42|42|42|42|42|42|42|42|42|42|42|42|42|42|42|42|42|42|42|42 |42|42|42|42|42|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|46|**|**|**|**|**|**|**|**|**|**|**|**|**|** |**|**|**|**|**|**|**|**|**|**|46|46|46|46|46|46|46|46|46|46|46|46|46|46|46|46|46|46|46|46|46|46|46|46|46|46|46|46|46|46 |46|..|..|..|..|..|..|..|..|..|..|14|14|14|14|14|14|14|14|14|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|** |**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|14|..|..|..|..|..|..|..|..|..|..|..|..|..|..|.. Car 6: |00|..|..|..|..|..|..|..|..|..|30|**|**|**|**|30|30|30|30|30|30|30|30|30|30|30|30|30|30|30|30|30|30|30|30|30|30|30|30|30 |30|30|30|30|30|30|..|..|..|..|..|..|..|..|..|..|..|28|**|**|**|**|**|**|**|28|28|28|28|28|28|28|28|28|28|28|28|28|28|28 |28|28|28|28|28|28|28|28|28|28|28|28|28|28|28|28|..|..|..|..|..|55|55|55|55|55|55|55|55|55|55|55|55|55|55|55|55|55|55|55 |55|55|55|55|..|..|..|..|..|..|..|..|..|..|24|24|24|24|24|24|24|24|24|24|24|24|24|24|24|24|24|24|24|24|24|24|24|24|24|24 |24|24|24|24|24|24|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|10|**|**|**|**|**|10|10|10|10|10|10|10|10|10|10|10|10|10 |10|10|10|10|10|10|10|10|10|10|10|10|10|10|10|10|10|10|..|..|..|..|35|35|35|35|35|35|35|35|35|35|35|35|35|35|35|35|..|.. |..|..|..|..|..|04|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|**|** |**|**|**|**|**|**|**|**|**|**|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04 |04|..|03|03|03|03|03|03|03|03|03|03|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|50|**|**|**|**|** |50|50|50|50|50|50|50|50|50|50|50|50|50|50|50|50|50|50|50|50|50|50|50|50|50|50|50|50|50|50|50|..|..|..|..|..|..|..|..|19 |19|19|19|19|19|19|19|19|19|19|19|19|19|19|19|19|19|19|19|19|19|19|19|19|19|19|19|..|..|..|..|..|..|..|..|..|..|..|..|.. |..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|18|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..|..

Fig. 7.9 Optimal schedule for 6 cars, 60 hotspots, 60 locations, grid size 30, 30 minute time windows.

7.10 Benchmark Problems

229

function value of the integer solution found in each test problem instance. Given the observed absence of an intergality gap, the time-space network construction of the subproblem is obviously a strong formulation for the discrete time MCPRP. As a general rule, when the vehicle flow on the underlying time-space network is small, that is, when the fleet size is small compared to the number and duration of hotspots to be covered, the column generation approach consistently produces integer root node solutions. The amount of branching required generally increases as the number of vehicles increases, as does the CPU runtime. The randomized shortest path construction heuristic appears to be profitable for solving the 1 minute time window instances at the root node, that is, without any branching, even for instances with fleet sizes yielding complete patrol coverage. A 1 minute time window problem instance for the MCPRP constitutes a special rendering of the Team Orienteering Problem (TOP)9 in which the profit is 1 for each vertex visited, but with additional constraints imposing strict visiting times for profit collection at the vertices. Future work could examine this specialized version of the TOP by comparing the column generation approach developed in this thesis to existing state-of-the-art solution techniques for the TOP. We also note a general trend which can be observed across the tables presented in Appendix G. For an equivalent number of patrol vehicles, small grid sizes with short hotspot durations are harder to solve (in terms of the number of branching decisions and the CPU runtime) than large grid sizes with long hotspot durations. This can be attributed to the increased number of routing choices for instances with short hotspot durations and shorter travel times between hotspots, especially given that the shift duration is constant across the entire problem space. The number of test problems for the 80 hotspot category includes 8 test problems containing 80 locations with a single hotspot affixed to each location and another 8 test problems with 40 locations and two hotspots for each location. From Appendix G, we can clearly see that the general runtime trend is better for the second set of instances (that is, the ones with two hotspots per location). Again, this can be attributed to the increased number of routing choices incurred with an increased number of locations on the network grid. This highlights the importance of distinguishing the number of locations from the number of hotspots on the network. The results for the 80 hotspot category suggest that this distinction is non-trivial. 9

This special case is called the Team Orienteering Problem with Time Windows (TOPTW). Note that the Team Orienteering Problem (TOP) was first referenced in Chapter 2, Section 2.2.6.

230

7.10.3

Patrol Vehicle Routing with Hotspot Coverage

Validation via the MCNFP Model of Dewil et al. [38]

In order to validate our branch-and-price approach to the MCPRP, we compare the test problem instances listed in Table 7.1 against the Minimum Cost Network Flow Problem (MCNFP) model of Dewil et al. [38]. The MCNFP model is implemented with the network simplex algorithm from the open-source LEMON C++ libraries (Király and Kovács [81]). For each of the test problems tabulated in Appendix G, the MCNFP model produces the same optimal objective as our approach. This provides a strong validation for the correctness of the time-space network construct introduced in this chapter. The test problems found in Appendix G may be categorized as small to medium scale. On these instances, the MCNFP model of Dewil et al. [38] consistently outperforms the runtime of our approach. This is especially true of the problem instances for which the number of patrol cars begins to saturate the network. These instances require a considerable amount of branching with our approach, and hence, the runtime increases with the number of patrol cars. This demonstrates that the MCNFP is still the gold-standard for application to networks of the scale of those considered in Appendix G. The runtime performance of the MCNFP model on the entire scope of test problem instances can be found in the charts of Appendix G. However, in addition to the test problems listed in Table 7.1, we have designed two large-scale problems for which our branch-and-price approach can outperform the MCNFP model over a range of fleet sizes. The first large-scale network consists of 200 hotspots over a 100 minutes × 100 minutes grid, where the time window lengths range between 30 − 90 minutes. The second network, designed over the same grid size, contains 250 hotspots where the time window lengths range between 30 − 60 minutes. For both networks, we consider fleet sizes from 2 to 50 patrol cars. Figure 7.10 for 200 hotspots and Figure 7.11 for 250 hotspots compare the runtime performance of our approach to the MCNFP model over fleet sizes of 2 to 25 patrol cars. These problem instances clearly demonstrate that the MCNFP is consistently outperformed by our model. These instances correspond to situations in which the underlying time-space network is unsaturated with patrol cars, and so many of the integer solutions found with our approach solve at the root node faster than the MCNFP model can find a solution. However, by observing Figure 7.12 and Figure 7.13, it can be seen that MCNFP model begins to outperform our approach as the fleet size increases and the network becomes saturated with patrol

7.10 Benchmark Problems

231

cars, requiring more intensive branching. From all the figures, it can be seen that the MCNFP model solution time is approximately constant across the spectrum of cars for a given network, that is, the solution time is independent of the number of cars, whereas the solution time of our approach is dependent on the number of cars, especially at saturation.

22

100%

20

90%

18

80%

16

70%

14

60%

12

Col. Gen.

10

150

50%

MCNFP

8

40% 50% 30%

% TW

6 4

20%

2

10%

0

TimegWindowgCoverage

Runtimeg(CPUgseconds)

MCNFPgComparison:g200gHotspots,gCarsg2g- 25

0% 2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

NumbergofgCars

Fig. 7.10 Comparison of the runtime performance of the MCNFP model with the branch-and-price approach on a 200 hotspot test problem. The time windows range between 30 − 90 minutes, the fleet size ranges from 2 to 25 patrol cars and the amount of time window coverage is shown on the right-hand vertical axis.

Patrol Vehicle Routing with Hotspot Coverage

232

MCNFPgComparison:g250gHotspots,gCarsg2g- 25 30

100%

28

90%

26

80%

22

70%

20 18

60%

16

50%

14

Col. Gen.

12

40%

MCNFP

10

30%

% TW

8 6

TimegWindowgCoverage

Runtimeg(CPUgseconds)

24

20%

4

10%

2 0

0% 2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

NumbergofgCars

Fig. 7.11 Comparison of the runtime performance of the MCNFP model with the branch-and-price approach on a 250 hotspot test problem. The time windows range between 30 − 60 minutes, the fleet size ranges from 2 to 25 patrol cars and the amount of time window coverage is shown on the right-hand vertical axis.

MCNFPvComparison:v200vHotspots,vCarsv26v- 50 80

100% 90%

70

70% 12 50

Col. Gen. Col. Gen.

40 150

60% 50% 50% 40%

MCNFP % TW

30

30% 20

TimevWindowvCoverage

Runtimev(CPUvseconds)

80% 60

20% 10

10%

0

0% 26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

NumbervofvCars

Fig. 7.12 Comparison of the runtime performance of the MCNFP model with the branch-and-price approach on a 200 hotspot test problem. The time windows range between 30 − 90 minutes, the fleet size ranges from 26 to 50 patrol cars and the amount of time window coverage is shown on the right-hand vertical axis.

7.10 Benchmark Problems

233

MCNFPvComparison:v250vHotspots,vCarsv26v- 50 300

100%

275

90% 80%

225 70%

200

60%

175 150

Col. Gen.

50%

125

MCNFP

40%

100

% TW

30%

75

TimevWindowvCoverage

Runtimev(CPUvseconds)

250

20%

50

10%

25 0

0% 26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

NumbervofvCars

Fig. 7.13 Comparison of the runtime performance of the MCNFP model with the branch-and-price approach on a 250 hotspot test problem. The time windows range between 30 − 60 minutes, the fleet size ranges from 26 to 50 patrol cars and the amount of time window coverage is shown on the right-hand vertical axis.

7.10.4

Large-Scale Problem Instances

In conclusion of this chapter, we include two additional large-scale test problems which could not be solved by the MCNFP model of Dewil et al. [38].10 These test problems, which are the largest instances of the MCPRP solved to-date, are generated in the same way described in Section 7.10.1, where the size of the grid structure is 100 minutes × 100 minutes. The first test problem H300_a, contains 300 locations and 300 hotspots, with time window lengths in the range 30 − 90 minutes. The second test problem, H500_a, contains 250 locations with 500 hotspots of length 30 minutes, with two hotspots allotted to each location on the network grid.11 Tables 7.2 and 7.3 summarize the range of test problem instances performed on H300_a. The number of patrol vehicles ranges from 2 to 50. As observed for the test problem instances in Appendix G, the amount of branching increases as the number 10

The MCNFP model crashed (probably due to memory capacity constraints) when we attempted to solve these large-scale instances. The MCNFP model was run from an executable compiled from the source code of Dewil et al. [38] and the LEMON C++ libraries using the Microsoft Visual Studio 2012 IDE. 11 The aggregate duration of all the hotspots in H300_a is 17,606 minutes. The aggregate duration for H500_a is 15,000 minutes. The shift duration in both cases is 8 hours or 480 minutes.

234

Patrol Vehicle Routing with Hotspot Coverage

of vehicles increases. The CPU runtime, while also increasing as the number of vehicles increases, remains within acceptable limits, with the 50 car instance taking just under 2 minutes to solve. Tables 7.4 and 7.5 summarize the results for H500_a, with the number of vehicles also ranging from 2 to 50. The CPU runtime manifests a slower performance for the larger fleet sizes tested, with the 50 car instance taking under just under 17 minutes to solve. The headings used in Table 7.2 through to Table 7.5 are summarized as follows: • Car − The number of patrol vehicles. • R.Obj. − The objective function value at the root node. • R.Ti. − The CPU time (seconds) at the root node. • R.Col. − The number of columns generated at the root node. • No. − The number of nodes explored (fathomed) in the branch-and-price tree. • F. − The number of nodes pruned (fails) in the branch-and-price tree. • A.Col. − The average number of columns generated per node. • Ti. − The CPU time (seconds) taken to find the integer solution. • Pa. − The aggregate time (minutes) spent on active patrol. This is also the objective function value of the optimal integer solution. • Tr. − The aggregate transit time (minutes). • Wa. − The aggregate waiting time (minutes). • Hot. − The number of hotspots visited.

R.Obj.

R.Ti. R.Col. No. F. A.Col.

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

735.0 1,085.0 1,434.0 1,767.0 2,096.0 2,423.0 2,745.0 3,067.0 3,385.0 3,696.0 4,007.0 4,308.0 4,609.0 4,900.0 5,189.0 5,477.0 5,764.0 6,048.0 6,325.0 6,602.0 6,872.0 7,140.0 7,408.0 7,673.0 7,938.0

0.6 1.3 2.2 3.2 4.5 5.2 5.7 5.7 8.1 7.1 9.7 10.7 14.0 14.1 16.6 18.1 16.7 20.5 23.9 27.2 27.4 27.6 30.6 27.4 30.5

7 12 23 33 48 56 56 60 86 79 105 119 136 152 176 191 180 213 247 279 280 290 316 288 319

0 0 0 0 0 0 2 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0.0 0.0 0.0 0.0 0.0 0.0 32.5 0.0 0.0 79.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 316.0 0.0 0.0

Ti.

Pa.

Tr.

Wa.

Hot.

0.6 1.3 2.2 3.2 4.5 5.2 11.0 5.7 8.1 10.2 9.7 10.7 14.0 14.1 16.6 18.1 16.7 20.5 23.9 27.2 27.4 27.6 37.2 27.4 30.5

735 1,085 1,434 1,767 2,096 2,423 2,745 3,067 3,385 3,696 4,007 4,308 4,609 4,900 5,189 5,477 5,764 6,048 6,325 6,602 6,872 7,140 7,408 7,673 7,938

200 318 446 549 688 830 954 1,086 1,227 1,384 1,510 1,661 1,780 1,943 2,121 2,285 2,429 2,608 2,786 2,944 3,151 3,336 3,527 3,706 3,869

25 37 40 84 96 107 141 167 188 200 243 271 331 357 370 398 447 464 489 534 537 564 585 621 673

13 19 26 32 38 45 51 56 63 68 73 79 83 89 96 103 108 113 117 121 126 130 136 140 145

235

Car

7.10 Benchmark Problems

Table 7.2 Test Problem H300_a: 300 locations, 300 hotspots, grid size 100, 30 − 90 minute time windows, 2 − 26 cars.

236

Table 7.3 Test Problem H300_a: 300 locations, 300 hotspots, grid size 100, 30 − 90 minute time windows, 27 − 50 cars. R.Obj.

27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50

8,201.0 8,462.0 8,722.0 8,980.0 9,236.0 9,492.0 9,743.0 9,994.0 10,236.0 10,476.0 10,708.0 10,938.0 11,168.0 11,397.0 11,622.0 11,846.0 12,070.0 12,286.0 12,502.0 12,717.0 12,930.0 13,140.0 13,345.0 13,548.0

R.Ti. R.Col. No. F. A.Col. 30.8 33.1 34.5 37.1 40.0 39.5 43.9 50.4 51.4 54.0 56.7 56.3 57.2 63.9 66.1 63.1 76.5 74.1 75.7 80.3 88.9 85.2 86.0 88.1

323 350 347 376 394 426 457 499 538 562 593 604 601 676 675 662 755 752 775 815 876 855 889 909

0 0 1 1 0 0 1 0 0 0 0 1 1 0 0 1 1 1 1 1 0 2 0 1

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0.0 0.0 347.0 376.0 0.0 0.0 457.0 0.0 0.0 0.0 0.0 604.0 601.0 0.0 0.0 662.0 755.0 752.0 775.0 815.0 0.0 474.0 0.0 909.0

Ti.

Pa.

Tr.

Wa.

Hot.

30.8 33.1 44.9 47.8 40.0 39.5 61.2 50.4 51.4 54.0 56.7 72.5 74.0 63.9 66.1 76.3 95.7 95.3 92.9 97.8 88.9 136.7 86.0 117.0

8,201 8,462 8,722 8,980 9,236 9,492 9,743 9,994 10,236 10,476 10,708 10,938 11,168 11,397 11,622 11,846 12,070 12,286 12,502 12,717 12,930 13,140 13,345 13,548

4,054 4,220 4,437 4,643 4,840 4,989 5,208 5,383 5,600 5,805 6,032 6,267 6,398 6,626 6,825 7,016 7,196 7,408 7,584 7,810 7,974 8,175 8,386 8,612

705 758 761 777 804 879 889 943 964 999 1,020 1,035 1,154 1,177 1,233 1,298 1,374 1,426 1,514 1,553 1,656 1,725 1,789 1,840

150 155 159 166 169 174 179 184 189 194 197 201 206 210 216 220 225 229 233 234 239 242 246 250

Patrol Vehicle Routing with Hotspot Coverage

Car

R.Obj.

R.Ti.

R.Col. No. F.

A.Col.

Ti.

Pa.

Tr.

Wa.

Hot.

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

676.0 995.0 1,312.0 1,623.0 1,930.0 2,234.0 2,533.0 2,829.0 3,123.0 3,411.0 3,695.0 3,973.0 4,246.0 4,519.0 4,789.0 5,053.0 5,313.0 5,572.0 5,829.0 6,083.0 6,332.0 6,579.0 6,823.0 7,065.0 7,302.0

2.2 2.6 3.6 7.5 10.1 13.6 16.4 22.3 22.8 27.3 32.7 39.1 44.1 49.9 67.0 63.6 73.8 94.4 93.2 117.0 105.8 130.7 160.3 224.4 152.6

16 20 28 54 74 100 118 155 162 192 229 271 306 346 447 436 507 633 636 764 727 888 1,019 1,374 1,004

0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 229.0 0.0 127.3 0.0 0.0 0.0 0.0 0.0 0.0 764.0 0.0 0.0 1,019.0 714.0 0.0

2.2 2.6 3.6 7.5 10.1 13.6 16.4 22.3 22.8 27.3 50.5 39.1 84.6 49.9 67.0 63.6 73.8 94.4 93.2 140.5 105.8 130.7 201.5 301.4 152.6

676 995 1,312 1,623 1,930 2,234 2,533 2,829 3,123 3,411 3,695 3,973 4,246 4,519 4,789 5,053 5,313 5,572 5,829 6,083 6,332 6,579 6,823 7,065 7,302

235 377 512 658 819 963 1,128 1,291 1,457 1,617 1,785 1,943 2,130 2,307 2,470 2,643 2,846 2,988 3,181 3,381 3,558 3,751 3,964 4,152 4,344

49 68 96 119 131 163 179 200 220 252 280 324 344 374 421 464 481 560 590 616 670 710 733 783 834

27 41 52 63 76 87 98 108 121 131 143 154 166 176 187 198 207 216 229 238 247 258 266 274 283

0 0 0 0 0 0 0 0 0 0 1 0 3 0 0 0 0 0 0 1 0 0 1 2 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

237

Car

7.10 Benchmark Problems

Table 7.4 Test Problem H500_a: 250 locations, 500 hotspots, grid size 100, 30 minute time windows, 2 − 26 cars.

238

Table 7.5 Test Problem H500_a: 250 locations, 500 hotspots, grid size 100, 30 minute time windows, 27 − 50 cars. R.Obj.

R.Ti.

R.Col. No. F.

A.Col.

Ti.

Pa.

Tr.

Wa.

Hot.

27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50

7,538.0 7,773.0 8,005.0 8,231.0 8,453.0 8,674.0 8,892.0 9,108.0 9,318.0 9,527.0 9,733.0 9,934.0 10,134.0 10,333.0 10,531.0 10,726.0 10,915.0 11,102.0 11,287.0 11,466.0 11,639.0 11,810.0 11,979.0 12,145.0

185.7 179.1 266.6 268.1 294.7 318.3 357.7 403.9 372.0 461.4 477.4 599.7 592.4 542.9 640.9 704.6 811.7 774.6 740.2 785.4 660.8 766.5 805.7 798.9

1,183 1,284 1,807 1,828 1,747 2,032 2,106 2,337 2,209 2,626 2,578 2,892 2,949 2,794 3,248 3,254 3,591 3,525 3,573 3,743 3,238 3,781 3,869 3,857

1,183.0 0.0 0.0 0.0 925.0 582.3 643.0 2,337.0 2,209.0 993.3 2,578.0 2,892.0 2,949.0 1,087.0 0.0 3,254.0 1,926.5 1,100.3 1,406.0 550.0 634.3 252.8 399.0 3,857.0

250.7 179.1 266.6 268.1 445.3 548.6 620.7 473.5 599.2 709.3 598.0 645.6 695.0 864.1 640.9 865.1 1,100.7 1,379.9 1,085.6 1,711.1 1,923.1 2,516.4 2,422.8 996.3

7,538 7,773 8,005 8,231 8,453 8,674 8,892 9,108 9,318 9,527 9,733 9,934 10,134 10,333 10,531 10,726 10,915 11,102 11,287 11,466 11,639 11,810 11,979 12,145

4,568 4,742 4,931 5,155 5,355 5,577 5,755 5,947 6,166 6,362 6,635 6,830 7,051 7,307 7,567 7,796 7,939 8,196 8,394 8,583 8,855 9,091 9,406 9,579

854 925 984 1,014 1,072 1,109 1,193 1,265 1,316 1,391 1,392 1,476 1,535 1,560 1,582 1,638 1,786 1,822 1,919 2,031 2,066 2,139 2,135 2,276

293 301 309 317 322 332 339 345 352 362 368 372 382 389 397 402 408 415 421 423 426 433 439 442

1 0 0 0 2 4 4 1 1 3 1 1 1 3 0 1 2 4 3 9 8 22 14 1

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 8 0 0

Patrol Vehicle Routing with Hotspot Coverage

Car

Chapter 8 Conclusions and Future Work 8.1

Research Summary and Conclusions

In this dissertation, we have developed new modelling and solution approaches to the Patrol Boat Scheduling Problem with Complete Coverage (PBSPCC) and the Maximum Covering and Patrol Routing Problem (MCPRP). In Chapter 2, we established that these problems belong to a broader patrol covering class and we identified the PBSPCC as a new member of this problem class. In Chapter 2, we also saw that previous approaches to the MCPRP have been underpinned by mixed integer and linear programming modelling paradigms. We then proffered a column generation branch-and-price approach to model and solve the PBSPCC. We hypothesized that these modelling and solution techniques might also be applied profitably to large-scale instances of the MCPRP, that is, on problem sizes beyond the reach of extant methods. The essential theory underlying the application of column generation methods in linear and integer programming was outlined in some detail in Chapter 3. This chapter included a review of the revised simplex method and duality theory, an introduction to the principle of column generation, Dantzig-Wolfe decomposition and an exposition of the branch-and-price method. The final part of Chapter 3 dealt with shortest path problems, with particular emphasis on Directed Acyclic Graphs (DAGs). The DAG structure turns out to be important for the construction of the pricing subproblems for the PBSPCC and the MCPRP. A Resource-Space-Time (RST) network was presented as a modelling formalism for the PBSPCC in Chapter 4. Using the RST network model, we defined an arc based integer program and a path based linear programming relaxation of the prob-

240

Conclusions and Future Work

lem for the application of a column generation solution approach. The formulation of the objective was given in terms of the minimum time not spent on patrol, and a number of derived bounds were incorporated into the column generation master problem. These features were introduced as candidate strategies to speed-up the column generation performance. The concluding section of Chapter 4 introduced a set of theorems and corollaries which prescribed conditions for the equivalence of solutions from different formulations of the PBSPCC. The algorithmic and computational aspects of the column generation approach to the PBSPCC were the subject of Chapter 5. We conclude that the computational results of Chapter 5 provide strong evidence that the theoretical insights presented in Chapter 4 can be used effectively as column generation acceleration strategies for the PBSPCC. A formulation involving a minimum non-patrol time objective function, combined with pricing out multiple candidate paths, proved to be the most efficient column generation approach out of a range of five options. We also conclude that the computational results of the root node performance strongly indicate that naive applications of column generation can be ineffective even on moderately sized patrol networks. A number of problem reduction techniques were outlined in Chapter 5 in an attempt to alleviate the slower runtime performance of the column generation approach on larger problem instances of the PBSPCC. These reduction techniques included spatial clustering, which can be used on large geographical networks, and path permutation and rolling horizon techniques, which may be applied to problems with large planning horizons. An algorithmic framework was proffered as a way of incorporating the problem reduction techniques within a branch-and-price solution framework. Chapter 5 concluded with a case study in sensitivity analysis. We chose an example patrol network to test the sensitivity of the number of boats required for complete coverage to the selection of endurance and replenishment break duration. We conclude that the kind of analysis presented in this discussion can be used by decision makers to set performance goals for a fleet of patrol boats based on the desired number. The results of the sensitivity analysis case study indicate that planners may be able derive insight into the fragility of a fleet’s capability to meet the complete coverage requirement by looking at the amount of patrol time afforded by a combination of endurance and replenishment break duration.

8.1 Research Summary and Conclusions

241

Chapter 61 presented a proof that the Patrol Boat Scheduling Problem with Complete Coverage is N P-hard by proffering a transformation from the Hamiltonian Graph Decision Problem. This chapter also concluded that the associated decision problem of whether a patrol network has a continuous patrol cover of size n is N P-complete subject to the requirement that patrol covers are cyclic of a bounded polynomial order. Chapter 6 is currently in preparation for publication, can be read as a self-contained paper, and possesses its own mathematical preliminaries and notation. As part of the research described in Chapter 7, we explored how well the branchand-price approach for the PBSPCC could be generalized to a different but related problem, the MCPRP. A large portion of this chapter was dedicated to carefully outlining the process of constructing the underlying time-space network for the patrol cars. The construction of the time-space network relied on a fundamental insight of Keskin et al. [77] relating to the structure of an optimal routing solution. We showed that a straightforward implementation of column generation involving a randomized construction heuristic and pricing out candidate paths one-at-a-time can be used effectively on certain networks. We introduced a number of test problems for benchmarking, consisting of different numbers of hotspots, time window durations and grid sizes. These test problems were used to validate our approach against the MCNFP model of Dewil et al. [38]. While the MCNFP model outperforms the runtime efficiency of our approach on small to medium scale problems, it was shown that on large-scale problem instances with certain fleet sizes, our approach can outperform the MCNFP model. We also introduced two large-scale problems, one with 300 hotspots and another with 500 hotspots with up to 50 cars, which could not be solved by the MCNFP model. These large-scale problems are the largest instances of the MCPRP solved to-date. The column generation approaches applied to the PBSPCC and the MCPRP share a common feature, namely, that their respective pricing subproblems can be solved with the application of a pure shortest path algorithm over a DAG structure. We noted in Chapter 4 that other subproblem modelling and solution approaches could be applied within a column generation approach to the PBSPCC. The DAG structure and shortest path solution scheme were chosen for the PBSPCC due to the relative ease of implementation and to highlight the potential applicability to other problems in the patrol covering class, for example, the MCPRP. 1

Chapter 6 is co-authored by Timothy J. Surendonk.

Conclusions and Future Work

242

From our studies of the PBSPCC and the MCPRP, we surmise that column generation approaches cannot be applied blithely or naively.2 In cases where the column generation approach has been successful, it is because the problem and solution structures were adequately exploited. The incorporation of various problem reduction techniques has also served to enhance the column generation approaches applied in this dissertation. The results of our research reinforce the need to adapt and tailor implementations of column generation to suit the aspects of the problem to which it is applied. As demonstrated in the root node performance charts of Appendix E, our column generation approach to the PBSPCC exhibits slower runtimes on larger test problems and on problems with longer planning horizons. To mitigate these runtime inefficiencies, problem reduction techniques in the spatial and temporal domains were introduced in Section 5.4. For future studies of the PBSPCC, we suggest that alternative modelling and solution approaches could be developed to improve the scaling performance of the PBSPCC subproblem.3

8.2 8.2.1

Future Work Patrol Boat Scheduling Problem with Complete Coverage

In our study of the PBSPCC, we have already highlighted some open questions and potential avenues to continue the study of this problem into the future. In Chapter 4, we noted that a shortest path algorithmic approach on a DAG structure is only one of a number of alternative approaches for the underlying network construct. Two possible alternatives for a modelling and solution approach to the pricing subproblem are the weight-constrained shortest path problem with replenishment [115] and the multi-trip elementary shortest path problem with resource constraints [2]. Along with formulating these alternatives and comparing them computationally with our approach, it would be interesting to investigate how fine the resource discretization in the construction of the RST network must be in order to avoid significant error. In addition, an examination of the solution speed-up effect induced by the incorporation of valid inequalities to the master problem could be compared across the range of proposed alternative network constructs. 2 3

The same could be said of other problems in the patrol covering class. Some suggestions for future research are provided in Section 8.2.

8.2 Future Work

243

There are a number of open or unresolved questions arising from our research of column generation approaches to the PBSPCC. We itemize a few of these interesting problems below and recommend them as potential research questions for future consideration. • Given an RST network with horizon length T = J(TE +TR ), where J ∈ Z+ and J ≥ 1, does a solution to the minimum non-patrol time problem also satisfy the minimum fleet size problem?4 • Given an RST network with horizon length T1 , what conditions must be satisfied for a feasible set of paths to be extended to a time T2 > T1 such that all patrol periods are covered? • Given an RST network with horizon length T , what is the minimum number of paths required to cover each patrol period such that a path permutation is satisfied? We note that the set of test problems designed for the PBSPCC (see Appendix D) could be expanded to include more complex topologies, and perhaps some realworld instances of patrol boat operations faced by the Royal Australian Navy or the United States Coast Guard. Furthermore, there are some obvious and important characteristics of real-world patrol mission planning which have been omitted from our modelling framework. These include re-routing and re-scheduling with random interrupts, such as mechanical failures, weather events, etc. Another important extension to the PBSPCC is the incorporation of a crew rostering/scheduling component to operate a fleet of patrol boats under the complete coverage and ongoing replenishment assumptions. For example, this might be approached in a similar manner to that of Fischetti et al. [48], which examined crew scheduling in the vehicle routing context. Furthermore, finding minimum fleet sizes for the PBSPCC with the additional requirement of scheduling regular maintenance periods (as in Hahn and Newman [64]) would also be an interesting research question to address in the future. In the terminology of Pessoa et al. [98], constraints of the form given by (5.5) in the master problem of the homogeneous PBSPCC are examples of non-robust cuts. The incorporation of these cuts required an explanation for the issues concerning their implementation via a heuristic approach to the pricing subproblem in Section 4.9.3. Future work could consider how our heuristic for pricing in the presence of these non-robust cuts compares to other ideas in the literature (e.g., Pessoa et al. 4

The problem here is to verify theoretically the empirical observation stated in Section 5.2.2.

Conclusions and Future Work

244

[98]) on branch-cut-and-price. An analysis of the heuristic’s performance could be compared to other approaches in order to determine whether using non-robust cuts is preferable to using a robust version. Other research avenues for the PBSPCC could explore alternative ways of implementing a Dantzig-Wolfe reformulation of the original integer programming model. For example, Puchinger et al. [102] and Galati [53] have considered different ways to perform a Dantzig-Wolfe reformulation of a general mixed integer program by handling the resulting column generation subproblems automatically. This may be carried out by specifying the original MIP in a constraint-based modelling language5 and specifying (via key words in the modelling language) which constraints to keep in the master problem and which to relegate to the subproblems. Exploring these capabilities would enable a comparison to the Dantzig-Wolfe reformulation proposed in this thesis.

8.2.2

Maximum Covering and Patrol Routing Problem

One avenue for further research of the MCPRP is to investigate the applicability of our column generation framework to the network model developed by Dewil et al. [38]. Utilizing the model of Dewil et al. [38] with our column generation framework would not significantly change the structure of the master problem, except that the packing constraints would correspond to time sections of the hotspots. The master problem’s objective function would also need to be modified to incorporate any weights applied to the time sections. The column generation approach could also be applied to networks which account for overlapping shifts and/or different start/end locations for the patrol cars. The consideration of a heterogeneous fleet for the MCPRP is another possible growth path for our column generation approach. In this case, we hypothesize that separate subproblems on distinct and specially tailored time-space networks would need to be considered for each vehicle type. We note that if the patrol vehicles do not share a single transit speed, the theorem of Keskin et al. [77] is no longer valid, and therefore, the patrol arc construct used for the hotspots in Chapter 7 would need to be revised. To see why this is so, consider a hypothetical example with two cars (call them A and B), a depot (call it 0) and two hotspots (call them 1 and 2) at different locations. 5

For example, MiniZinc, as introduced in Nethercote et al. [94].

8.2 Future Work

245

A A A For vehicle A, suppose that tA 01 = t10 = 6 and t02 = t20 = 3. For vehicle B, suppose B B B B B that tB 01 = t10 = 3 and t02 = t20 = 1. Furthermore, suppose that t12 = t21 = 2. Figure 8.1 illustrates the location and duration of each hotspot on a time-space network. If we assume that after arriving at a hotspot, a patrol car will remain until the close of the time window, then it is clear from Figure 8.1 and Figure 8.2 that a portion of either one of the hotspots will not be covered. However, if we void the assumption and allow the cars to move more freely, we find from Figure 8.3 that a better (in fact, optimal) solution can be found in which hotspot 2 is covered by cars A and B.

A

Hotspot 1 not covered

B

Fig. 8.1 Hotspot 1 not completely covered

B A

Hotspot 2 not covered

Fig. 8.2 Hotspot 2 not completely covered. Noting the lesson of our hypothetical example, it is clear that different subproblems would need to be considered for each vehicle class in a heterogeneous MCPRP. However, the question of how to construct a time-space network for a given vehicle class remains to be seen. This is a non-trivial problem given that we wish to prohibit simultaneous contributions to the patrol effort at each of the hotspots. We note that even though the models developed by Dewil et al. [38] allow for hotspots to be weighted differently, they still assume a homogeneous fleet of patrol cars with a single transit speed.6 A related problem is the consideration of time-dependent transit 6

While our time-space network formulation of the MCPRP scales well for large problem instances

Conclusions and Future Work

246

A

B

Hotspot 2 covered by A and B

Fig. 8.3 An optimal solution, where hotspot 2 is completely covered by two cars. times for the patrol cars throughout a shift. In a highway patrol environment, this might be reflective of rush hour traffic during certain periods of the morning and evening from Monday to Friday. Another potential avenue for further research of our column generation approach to the MCPRP is to include alternative heuristic choices for the construction of the seed columns. In Chapter 7, we introduced a randomized shortest path heuristic for the seed columns, but we note that other options could be investigated and compared against our approach.7 A similar investigation of alternative branching strategies for the branch-and-price approach is also recommended as a candidate for future research.

and fleet sizes within a branch-and-price framework, it cannot handle different weight assignments to the hotspots, unlike the MCNFP model of Dewil et al. [38]. 7 For example, an alternative heuristic might be one which tries to cover the hotspots in a greedy fashion.

Appendix A Mathematical Background This appendix contains some useful definitions and mathematical notation, especially pertaining to set theory, mappings (functions on sets), matrices and vectors, graph theory and asymptotic notation for the runtime of algorithms.

A.1

Set Theory

The contents of this section have been adapted from Chapter 1 of Dechter [30], Chapter 1 of Clark [25] and Appendix B of Leiserson et al. [86]. Definition A.1.1 (Set). A set is a collection of distinguishable objects. These objects are typically mathematical quantities of uniform character. An object in the collection is called a member or element of the set. A set cannot contain duplicates and its members are not ordered. Typical sets encountered include the following: • • • • •

The set of natural numbers: N = {0, 1, 2, . . .}. The set of integers: Z = {. . . , −2, −1, 0, 1, 2, . . .}. The set of rational numbers: Q. The set of real numbers: R. The empty set: ∅ (the set containing no members).

When referring to the natural numbers or non-negative integers, we will use either N or Z+ .1 Similarly, the notation R+ is used for the set of non-negative real numbers. 1

We note that an alternative convention defines both N and Z+ as the set of positive integers and defines Z∗ as the set of non-negative integers.

Mathematical Background

248

If x is a member of a set S, we write x ∈ S, and if x is not a member of S, we write x ∈ / S. For example, 5 ∈ Z, π ∈ / Z, 3/4 ∈ Q, etc. A set may be written explicitly or implicitly. An explicit representation of a set simply lists the members as a collection, while an implicit representation states the properties that members of the set satisfy. For example, the explicit representation S = {5, 6, 7, 8, 9} can be written implicitly as: S = {x | x ∈ N and 5 ≤ x ≤ 9}.

(A.1)

If each member of a set S is also a member of a set T , then we write S ⊆ T , and we say that S is a subset of T . Two sets are equal if and only if they contain the same members. That is, S = T if and only if x ∈ S implies x ∈ T and x ∈ T implies x ∈ S. A set S is proper subset of set T if S is a subset of T , but S ̸= T and S ̸= ∅, and in this case we write S ⊂ T .2 Definition A.1.2 (Intersection). The intersection of two sets S and T is the set S ∩ T and is given by: S ∩ T := {x | x ∈ S and x ∈ T }.3 (A.2) Definition A.1.3 (Union). The union of two sets S and T is the set S ∪ T and is given by: S ∪ T := {x | x ∈ S or x ∈ T }. (A.3) Let S1 , S2 , . . . , Sn be sets. The combined intersection and union of these sets can be written as follows: S1 ∩ S2 ∩ · · · ∩ Sn :=

n \

Si ,

i=1

S1 ∪ S2 ∪ · · · ∪ Sn :=

n [

Si .

(A.4)

i=1

Definition A.1.4 (Difference). The difference of two sets S and T is the set S\T and is given by: S\T := {x | x ∈ S and x ∈ / T }. (A.5) Definition A.1.5 (Cardinality). The cardinality (or size) of a set S is written |S| and is equal to the number of members in the set. If the cardinality of a set is a natural number, it is said to be finite, otherwise the set is infinite. If the cardinality of a set is infinite and 2 3

Note: The empty set ∅ is a subset of every set. We use ":=" when defining notation.

A.1 Set Theory

249

there is a one-to-one correspondence4 between the set and the set of natural numbers N, then the set is said to be countably infinite. An infinite set which does not satisfy this property is said to be uncountably infinite. Definition A.1.6 (Disjoint Sets). Two sets S and T are said to be disjoint if they have no members in common, that is, S ∩ T = ∅. The sets S1 , S2 , . . . , Sn are said to be pair-wise disjoint if Si ∩ Sj = ∅ for all i, j ∈ {1, . . . , n} with i ̸= j. Set operations obey a number of important properties, collectively referred to as set laws. Leiserson et al. [86] lists these laws, and some relevant ones are provided here for reference. • Empty Set: S ∩ ∅ = ∅, S ∪ ∅ = S. • Idempotence: S ∩ S = S, S ∪ S = S. • Commutativity: S ∩ T = T ∩ S, S ∪ T = T ∪ S. • Absorption: S ∩ (S ∪ T ) = S, S ∪ (S ∩ T ) = S. • Associativity: (R ∩ S) ∩ T = R ∩ (S ∩ T ), (R ∪ S) ∪ T = R ∪ (S ∪ T ). • Distributivity: R ∩ (S ∪ T ) = (R ∩ S) ∪ (R ∩ T ), R ∪ (S ∩ T ) = (R ∪ S) ∩ (R ∪ T ). Definition A.1.7 (Index Set). An index set is an abstraction of the notion of integer indexing, and is commonly used to describe a family of sets. The set I is called an index set if its elements are used to index a family of sets. For example, the family of sets D is indexed by i ∈ I, where I is the index set: D = {Di | i ∈ I} . 4

Definition A.2.10

(A.6)

Mathematical Background

250

An index set can be countably or uncountably infinite, finite, etc. Definition A.1.8 (Power Set). The power set of a set S is written as 2S and is equal to the set of all subsets of S, that is: 2S := {R | R ⊆ S}.

(A.7)

The power set of a finite set has cardinality equal to 2|S| . Definition A.1.9 (k-tuple). A k-tuple (or simply a tuple) is an ordered sequence of k not necessarily distinct objects, and is written as (x1 , . . . , xk ). An object in such a sequence is referred to as a component. Definition A.1.10 (Cartesian Product). The cartesian product of two sets S and T is the set S × T , and is the set of all 2-tuples (x, y), where x ∈ S and y ∈ T , that is: S × T := {(x, y) | x ∈ S and y ∈ T }.

(A.8)

Because the cartesian product is defined by an ordering, it is not a commutative operation, that is S × T ̸= T × S in general. If the sets S and T are finite, then the cardinality of the cartesian product is equal to the product of the set cardinalities: |S × T | = |S| · |T |.

(A.9)

The cartesian product of n sets S1 , S2 , . . . , Sn is called a n-ary cartesian product and is the set of all n-tuples: n O

Si := S1 × S2 × · · · × Sn ,

i=1

(A.10)

:= {(x1 , . . . , xn ) | xi ∈ Si , i = 1, . . . , n}. An n-fold cartesian product over a set S (also referred to as the cartesian power of S) is the set S n , and is given by: S n := S | ×S× {z· · · × S} .

(A.11)

n copies

In the fields of combinatorial optimization and linear integer programming, it is usual to define Rn+ as the set of non-negative real n-tuples and Zn+ as the set of non-

A.2 Mappings

251

negative integral n-tuples (see Section I.1 of Nemhauser and Wolsey [93]).5 Definition A.1.11 (Relation). Given sets S1 , S2 , . . . , Sn , a relation R of arity n (also known as an n-ary relation) is a subset of the cartesian product (usually satisfying a set of properties), that is: n O R⊆ Si . (A.12) i=1

A relation of arity 2 is called a binary relation. A binary relation R ⊆ S × S is: • reflexive if (x, x) ∈ R for all x ∈ S, • symmetric if (x, y) ∈ R implies (y, x) ∈ R for all x, y ∈ S, • transitive if (x, y) ∈ R and (y, z) ∈ R imply (x, z) ∈ R for all x, y, z ∈ S.

A.2

Mappings

The contents of this section have been adapted from Chapter 1 of Clark [25]. A mapping (or function) f with domain S and codomain T is a binary relation on S and T (f ⊆ S × T ) such that for each element x ∈ S there is precisely one element y ∈ T such that (x, y) ∈ f . We write f : S → T to indicate that f maps elements of S to elements of T . If x ∈ S maps to an element y ∈ T (that is, (x, y) ∈ f ), we write y = f (x), where x is called the argument of f . Definition A.2.1 (Argument of the Maximum/Minimum). Let S be a non-empty set, and let f : S → R be a real-valued mapping. The argument of the maximum is the set of all elements x ∈ S such that the mapping f attains its maximum value. This is written as follows: arg maxf (x) := {x ∈ S | f (y) ≤ f (x), ∀y ∈ S} . (A.13) x∈S

Similarly, the minimum of the argument is the set of all elements x ∈ S such that f attains its minimum value. This can be written as: arg minf (x) := {x ∈ S | f (x) ≤ f (y), ∀y ∈ S} .

(A.14)

x∈S

Definition A.2.2 (Equal Mappings). Two mappings f, g : S → T are equal if f (x) = g(x) for all x ∈ S. 5

These sets of tuples are typically sets of vectors - see Section A.4.

Mathematical Background

252

Definition A.2.3 (Identity Mapping). The identity mapping of a set S is 1S : S → S, and is given by: 1S := {(x, y) ∈ S × S | x = y}. (A.15) Definition A.2.4 (Composition). Let f : R → S and g : S → T be two mappings. The composition of these mappings is written as g ◦ f , and defines a new mapping h : R → T given by: h(x) = (g ◦ f )(x) = g (f (x)) , ∀x ∈ R. (A.16) The composition of functions is associative, that is: f ◦ (g ◦ h) = (f ◦ g) ◦ h.

(A.17)

Another noteworthy observation pertains to composition with the identity mapping. If 1S is defined as in (A.2.3) and f : S → T , then we have: 1S ◦ f = f ◦ 1S = f.

(A.18)

Definition A.2.5 (Inverse Mapping). A mapping g : T → S is a left inverse of a mapping f : S → T if g ◦ f = 1S . Alternatively, g is a right inverse of f if f ◦ g = 1T . The mapping h : T → S which is both a left and right inverse of f is called the inverse of f and is denoted h = f −1 . Proposition A.2.1. If the inverse of a mapping exists, then it is unique. Definition A.2.6 (Image). Let f : S → T be a mapping. For any S ′ ⊆ S, the image of S ′ by f is defined by the set: f (S ′ ) := {y ∈ T | y = f (x), x ∈ S ′ }.

(A.19)

Definition A.2.7 (Range). The range of a mapping f : S → T is the image of its domain, that is, f (S). Definition A.2.8 (Surjection). A mapping f : S → T is a surjection if its range is equal to its codomain, that is T = f (S). A surjective mapping is also referred to as onto. Definition A.2.9 (Injection). A mapping f : S → T is an injection if distinct elements of S map to distinct elements in T , that is, if x, x′ ∈ S and x ̸= x′ , then f (x) ̸= f (x′ ). An injective mapping is also referred to as one-to-one.

A.3 Permutations

253

Definition A.2.10 (Bijection). A mapping f : S → T is a bijection if it is both surjective and injective. A bijective mapping is also referred to as one-to-one correspondence. Surjective, injective and bijective mappings can be characterized as follows. Let f : S → T be a mapping. Then f is: • surjective if f has a right inverse; • injective if f has a left inverse; • bijective if and only if the inverse of f exists.

A.3

Permutations

Definition A.3.1 (Permutation). A bijective mapping from a set S to itself, σ : S → S, is a permutation. If we define a set S = {1, 2, . . . , n}, then a permutation of the set S is a function σ : S → S such that the tuple (σ(1), σ(2), . . . , σ(n)) is a rearrangement of the tuple (1, 2, . . . , n). A permutation can be expressed in terms of two row notation. For the set S, this would take the form: ! n . σ(n)

1 2 ··· σ(1) σ(2) · · ·

(A.20)

The number of permutations of the set S = {1, 2, . . . , n} is the total number of distinct rearrangements of the elements of S. The number of permutations of the set is written as n! (pronounced n factorial), where, for non-negative integers n:

n! =

 1

if n = 0,

n(n − 1)! if n ≥ 1.

(A.21)

We denote Sn to be the set of all permutations of S, where n! is the cardinality of Sn . If σ and ρ are distinct elements of Sn , then the composition of the mappings σ and ρ is also a member of Sn : (τ ◦ σ)(i) = τ (σ(i)),

∀i ∈ S.

(A.22)

The composition of permutations is non-commutative, that is τ ◦ σ ̸= σ ◦ τ in general. However, the composition of permutations is associative, that is, for

Mathematical Background

254 ρ, σ, τ ∈ Sn , we have: (τ ◦ σ) ◦ ρ = τ ◦ (σ ◦ ρ).

(A.23)

The identity permutation is defined as: I=

1 2 ··· 1 2 ···

! n . n

(A.24)

The identity permutation is defined so as to ensure: I ◦ σ = σ ◦ I = σ,

∀σ ∈ Sn .

(A.25)

We can also define the inverse permutation of σ ∈ Sn , denoted by σ −1 , which has the following property: σ ◦ σ −1 = σ −1 ◦ σ = I. (A.26) The inverse of a permutation can be obtained by switching the top and bottom rows of its two row expression. The inverse of a permutation is unique and is also a member of the set Sn . The properties of associativity, identity element and inverse imply that the composition of permutations acts like a binary operation or product on the elements of Sn (Ayres [8, p. 84]). The pair (Sn , ◦) is referred to as the symmetric group on S.6 In contrast to the two row expression of a permutation, we can adopt a more succinct format called cyclic notation. Given σ ∈ Sn , we can find the cycle of σ corresponding to the element i ∈ S by beginning with i and applying σ repeatedly until we obtain i again. For example, consider the following permutation, which belongs to S6 : σ=

! 1 2 3 4 5 6 . 3 6 1 4 2 5

(A.27)

The cycle corresponding to 2 is given by: σ(2) = 6 → σ(6) = 5 → σ(5) = 2.

(A.28)

Hence, the cycle for 2 can be written as (2, 6, 5). Beginning the process at 6 or 5 produces the same cycle. Thus (5, 2, 6) and (6, 5, 2) are equivalent to (2, 5, 6) in this 6

See Baumslag and Chandler [13, p. 56] for the proof that Sn constitutes a group.

A.4 Matrices, Vectors and Linear Algebra

255

case. We also see that the cycle for 1 can be written as (1, 3) and the cycle for 4 is simply (4). Therefore, (A.27) can be written as a juxtaposition of disjoint cycles as follows: σ = (1, 3)(2, 6, 5)(4). (A.29)

A.4

Matrices, Vectors and Linear Algebra

The contents of this section have been adapted from Chapter 1 of Bertsimas and Tsitsiklis [16]. In this section, we will outline the notation used for vectors and matrices. We will also cover some useful prerequisite theory from the field of linear algebra, which will aid in understanding the revised simplex method and the theoretical underpinning of column generation Definition A.4.1. A matrix A is an m × n rectangular array of real numbers aij ∈ R: 

a11   a21 A :=   ..  .

a12 a22 .. .

am1 am2

 . . . a1n  . . . a2n   .. ..  . . .  . . . amn

(A.30)

A matrix is usually denoted by an upper-case non-italicized Latin character in boldface font (e.g. A), with its (i, j)-entry expressed as a lower-case italicized indexed character (e.g. aij ). If A is an m × n array of real numbers, then we write A ∈ Rm×n and say that A has dimensions m × n. A matrix A is composed of row vectors (the rows of A) and column vectors (the columns of A). The standard notation for a vector x is a lower-case non-italicized Latin character in boldface font.7 A vector with n real-valued components is called a real n-dimensional vector, and we write x ∈ Rn . Whenever we write x, it is assumed that we are referring to an n-dimensional column vector. On the other hand, the transpose of x, denoted by xT , refers to an n-dimensional row vector. 7

An exception is made when referring to a column vector of a matrix, which is written as an upper-case non-italicized Latin character in boldface font.

Mathematical Background

256 These can be written in explicit form as follows: 

 x1    x2   x :=   ..  , .

xT := [x1 x2 · · · xn ].

(A.31)

xn When we want to refer to an n-dimensional vector which has all of its components equal to zero, we will write 0, that is, a zero in boldface font. Furthermore, the vector ei ∈ Rn denotes the i-th unit vector, which is a vector with the i-th component set to unity, and all other components equal to zero. In summary, we have: 0T := [0 0 · · · 0], | {z } n components

ei T := [0 · · · 1 · · · 0] . | {z }

(A.32)

1 is the i-th component

If we have an m × n matrix A, then we write Aj for the j-th column of A, and we write ai T for the i-th row of A, that is, the matrix A can be expressed in terms of its column vectors or row vectors as follows: 

 a1 T  T  a2   A := [A1 A2 · · · An ] =   ..  .  . 

(A.33)

am T Definition A.4.2 (Matrix Transpose). Let A be an m × n matrix given by (A.30). The transpose of A is written as AT and is obtained by interchanging the rows and columns of A, that is:   a11 a21 . . . am1    a12 a22 . . . am2  T   A :=  . (A.34) .. .. ..  . . . . .   . a1n a2n . . . amn Definition A.4.3 (Matrix Product). Let A be an m × n matrix, and let B be an n × p matrix. The matrix product of A and B (written AB) is a new m × p matrix C, with entries given by: n X cij = aik bkj = ai T Bj . (A.35) k=1

Matrix multiplication is, in general, non-commutative, that is, AB ̸= BA. Matrix

A.4 Matrices, Vectors and Linear Algebra

257

multiplication is, however, associative, that is, A(BC) = (AB)C. Another important result pertaining to matrix multiplication relates to transposition, that is, (AB)T = BT AT . A special case of matrix multiplication is the matrix-vector product, which is ubiquitous within the theory of linear programming. When we have an m × n matrix A and an n × 1 column vector x, we can write the matrix-vector product Ax as a weighted sum of the columns of A in terms of the components of x: 

     a11 a12 a1n       n X  a21   a22   a2n       Ax = Aj x j =  .  x 1 +  .  x 2 + · · · +  .   xn .  ..   ..   .. 

(A.36)

j=1

am1

am2

amn

Definition A.4.4 (Identity Matrix). The identity matrix is a square8 matrix that has its diagonal entries equal to one, and all other entries equal to zero. The n × n identity matrix is denoted by In and can be represented as follows:  1  0 In := [e1 e2 · · · en ] =   .. .

0 ... 1 ... .. . . . .

 0  0  ..  . .

(A.37)

0 0 ... 1 If A is an n × n square matrix, then AIn = In A = A. Definition A.4.5 (Inverse Matrix). Let A be an n × n square matrix. If there exists an n × n square matrix B such that AB = BA = In , then B is called the inverse of A. The inverse matrix B is unique, and we write B = A−1 . When a matrix A has an inverse B, then A is said to be invertible or non-singular. For an n × n invertible square matrix A, we have (AT )−1 = (A−1 )T . Furthermore, if B is another n × n invertible square matrix, then (AB)−1 = B−1 A−1 . If the matrix A is invertible then so is AT , and the rows (and columns) of A are linearly independent (see Bertsimas and Tsitsiklis [16, p. 29]).

8

A matrix is called square if the number of rows is equal to the number of columns.

Mathematical Background

258

Definition A.4.6 (Subspace). Let a, b ∈ R, and let S be a non-empty subset S ⊆ Rn . The set S is called a subspace of Rn if ax + by ∈ S for all x, y ∈ S. When S ⊂ Rn , then S is called a proper subspace of Rn . Definition A.4.7 (Linear Combination). Let x1 , x2 , . . . , xN ∈ Rn be a finite collection of vectors and let α1 , α2 , . . . , αN ∈ R be a collection of real numbers (not all zero). The vector y is called a linear combination of x1 , x2 , . . . , xN if: y=

N X

αi xi .

(A.38)

i=1

The vectors x1 , x2 , . . . , xN ∈ Rn are said to be linearly dependent if there exist real numbers α1 , α2 , . . . , αN ∈ R such that y = 0. If y ̸= 0 for all collections of real numbers α1 , α2 , . . . , αN ∈ R (not all zero), then the vectors x1 , x2 , . . . , xN ∈ Rn are said to be linearly independent. Definition A.4.8 (Span). Let x1 , x2 , . . . , xN ∈ Rn be a finite collection of vectors. The span of the vectors x1 , x2 , . . . , xN is the subspace of Rn containing all of their linear combinations, that is: span(x1 , x2 , . . . , xN ) :=

( N X

) αi xi | αi ∈ R not all zero .

(A.39)

i=1

Definition A.4.9 (Basis). Let S ⊆ Rn \{0}. A basis of S is a linearly independent collection of vectors whose span is equal to S.

A.5

Graph Theory Concepts

This section contains some important definitions relating to the theory of graphs. These definitions have been adapted from Chapter 1 of Hastings [65] and Chapter 24 of Leiserson et al. [86]. Definition A.5.1 (Graph). A graph G is a pair (V, A), where V = {v1 , . . . , vn } is a finite set of elements called vertices or nodes and A = {{vi , vj } | vi , vj ∈ V } is a set of vertex pairs of V . Each member of the set A is called an arc or edge. In a directed graph, the set of arcs A consists of ordered pairs (vi , vj ). Definition A.5.2 (Subgraph). A subgraph of a graph G = (V, A) is another graph G′ = (V ′ , A′ ) such that V ′ ⊆ V and A′ ⊆ A.

A.5 Graph Theory Concepts

259

Definition A.5.3 (Weighted Graph). A weighted graph is a graph G = (V, A) equipped with a weight function w : A → R, which maps arcs to real-valued weights (also known as costs). A directed graph with a weight function is called a weighted directed graph. Definition A.5.4 (Weight Matrix). The weight matrix of a weighted graph G = (V, A) (where |V | = n) with weight function w : A → R is the matrix W ∈ Rn×n with components:  w(v , v ) if {v , v } ∈ A, i j i j (A.40) wij = 0 otherwise. Definition A.5.5 (Adjacency Matrix). Let G = (V, A) be a graph, where |V | = n. A vertex vj ∈ V is adjacent to vi ∈ V if {vi , vj } ∈ A. We can write vj ∈ A+ (vi ), where: A+ (vi ) = {vj ∈ V | {vi , vj } ∈ A} .

(A.41)

The adjacency matrix of the graph G is the matrix A ∈ {0, 1}n×n with components:  1 if {v , v } ∈ A, i j aij = 0 otherwise.

(A.42)

Definition A.5.6 (Path). Let G = (V, A) be a graph and let |V | = n. For 1 ≤ m < n, a path of length m from vi0 ∈ V to vim ∈ V is a sequence of vertices p = ⟨vi0 , vi1 , . . . , vim ⟩ such that each successive pair (vij , vij+1 ) is a member of the arc set A. The path p may also be written as: p vi0 vim or p = ⟨vik ⟩m (A.43) k=0 . Definition A.5.7 (Shortest Path Weight). Let G = (V, A) be a graph equipped with a weight function w : A → R. The weight of the path p is given by: w(p) =

m X

w(vij−1 , vij ).

(A.44)

j=1

Let P be the set of all paths between any two vertices vi and vj . The shortest path weight from vi to vj is denoted by δ(vi , vj ) and is defined as:  n minp∈P w(p) | vi δ(vi , vj ) = ∞

p

vj

o

if there is at least one path from vi to vj , otherwise. (A.45)

Mathematical Background

260

Definition A.5.8 (Path Cycle). A path p = ⟨vi0 , vi1 , . . . , vim ⟩ is simple if vik ̸= vik′ for all ik ̸= ik′ . A path p in an undirected (directed) graph is called a cycle if it has length at least 3 (2), and vi0 = vim , with all other vertices in the path being pairwise different.

A.6

Asymptotic Notation

This section provides a summary of asymptotic notation for the analysis of the efficiency of algorithms. The definitions and examples provided here are adapted from Chapter 2 of Drozdek [40], Chapter 3 of Leiserson et al. [86] and Chapter 4 of Goodrich and Tamassia [62].

A.6.1

Runtime

The field of computational complexity is concerned with analysing algorithmic efficiency. Such analyses are vital for assessing the relative performance of algorithms that are applied to a given problem. The notion of runtime is standard for measuring algorithmic efficiency, and by convention, is expressed as a function f of the input to the algorithm n, where n is taken from the set of natural numbers N = {0, 1, 2, . . .}. In particular, asymptotic complexity refers to situations in which the input size to a problem is large enough so that we can consider the growth of an algorithm’s runtime as a sufficient measure of performance. There are a number of ways in which the asymptotic efficiency of an algorithm can be expressed, and this section will outline some of the common methods employed.

A.6.2

Big O Notation

Definition A.6.1 (Big O Notation). Let f, g : N → R+ be real-valued functions. We say that f (n) is O(g(n)) if there exists a real number c ∈ R+ and an integer n0 ∈ N such that f (n) ≤ cg(n) for all integers n ≥ n0 . Sometimes, it is convenient to write O{g(n)} as the set of all functions f : N → R+ that are O(g(n)), that is: O{g(n)} :={f : N → R+ | ∃(c ∈ R+ , n0 ∈ N), such that 0 ≤ f (n) ≤ cg(n), ∀n ≥ n0 }.

(A.46)

A helpful interpretation of the relationship between f and g in the Big O context is that g(n) is an upper bound on the value f (n) in the long term. Hence it is com-

A.6 Asymptotic Notation

261

monly referred to as an asymptotic upper bound. Big O notation is conventionally invoked when reporting the worst-case runtime of an algorithm. Naturally, this will yield an upper bound on the runtime for every possible input to the function f . Note that a constant function is O(1) and a polynomial function is O(nO(1) ).

A.6.3

Big Ω Notation

When an asymptotic lower bound is preferred on the runtime of an algorithm, a Big Ω notation is used. This notation is used when we want a lower bound on the best-case runtime of an algorithm. The definition for Big Ω notation is analogous to that of Big O notation, and is provided below. Definition A.6.2 (Big Ω Notation). Let f, g : N → R+ be real-valued functions. We say that f (n) is Ω(g(n)) if there exists a real number c ∈ R+ and an integer n0 ∈ N such that f (n) ≥ cg(n) for all integers n ≥ n0 . We write Ω{g(n)} as the set of all functions f : N → R+ that are Ω(g(n)): Ω{g(n)} :={f : N → R+ | ∃(c ∈ R+ , n0 ∈ N), such that 0 ≤ cg(n) ≤ f (n), ∀n ≥ n0 }.

A.6.4

(A.47)

Big Θ Notation

Big Θ notation is employed when we want to express the asymptotic runtime of an algorithm in terms of a tight bound (that is, located between a lower bound and an upper bound). Definition A.6.3 (Big Θ Notation). Let f, g : N → R+ be real-valued functions. We say that f (n) is Θ(g(n)) if there exist real numbers c1 , c2 ∈ R+ and an integer n0 ∈ N such that c1 g(n) ≤ f (n) ≤ c2 g(n) for all integers n ≥ n0 . We write Θ{g(n)} as the set of all functions f : N → R+ that are Θ(g(n)): Θ{g(n)} :={f : N → R+ | ∃(c1 , c2 ∈ R+ , n0 ∈ N), such that 0 ≤ c1 g(n) ≤ f (n) ≤ c2 g(n), ∀n ≥ n0 }.

(A.48)

Appendix B Results from the Theory of Linear Programming We briefly cover a few fundamental concepts from the theory of linear programming. This material has been adapted from Bertsimas and Tsitsiklis [16] and Hastings [65].

B.1

Fundamental Concepts

In a general linear programming problem, we seek to minimize a linear cost function cT x subject to a set of linear equality and inequality constraints. The vector c consists of real-valued cost coefficients with c ∈ Rn . The vector x is composed of decision variables, with x ∈ Rn . The cost function cT x is also known as the objective function, and is written explicitly in the following way: T

c x=

n X

cj x j .

(B.1)

j=1

The general form of a linear program can be expressed as follows. Let I1 , I2 , I3 be pair-wise disjoint finite index sets. Associate to each element of i ∈ Ik (k = 1, 2, 3) a vector ai ∈ Rn and a real number bi ∈ R. Let J1 , J2 ⊆ {1, . . . , n} with J1 ∩ J2 = ∅ and n ∈ N. Then we can express a general linear program as the minimization of a linear objective function subject to a finite number of linear equality and inequality

Results from the Theory of Linear Programming

264

constraints and a finite number of non-negativity and non-positivity constraints: minimize

cT x,

subject to

ai T x ≥ bi ,

i ∈ I1 ,

ai T x ≤ bi ,

i ∈ I2 ,

ai T x = bi ,

i ∈ I3 ,

xj ≥ 0,

j ∈ J1 ,

xj ≤ 0,

j ∈ J2 .

(B.2)

If a variable xj is unrestricted in sign, it is called a free variable. If the vector x′ ∈ Rn satisfies all the constraints of (B.2), it is called a feasible solution. The set of feasible solutions to (B.2) is called the feasible region, that is, the feasible region is the set of all vectors satisfying the constraints. If x∗ ∈ Rn is a feasible solution which minimizes the objective function, that is, cT x∗ ≤ cT x′ for all feasible solutions x′ , then x∗ is called an optimal solution. If the optimal value of the objective function is −∞, the problem is said to be unbounded. By inspection of the general linear program (B.2), we can see that an equality constraint ai T x = bi can be expressed by two inequality constraints, that is, ai T x ≤ bi and ai T x ≥ bi . We can also see that any constraint of the form ai T x ≤ bi can be replaced by the constraint (−ai )T x ≥ −bi . Similarly, it is straightforward to see that the constraints xj Q 0 can be replaced by ai T x ≥ bi , where bi = 0 and ai is an n-dimensional unit vector. Hence, the general linear program (B.2) can be expressed solely in terms of ’≥’ constraints, giving rise to the compact form of a linear programming problem: minimize

cT x,

subject to

Ax ≥ b.

(B.3)

A general linear program (B.2) may also be reduced to a problem in standard form. A linear program in standard form is written as: minimize

cT x,

subject to

Ax = b, x ≥ 0,

(B.4)

B.2 Polyhedra

265

where the vectors c and x are in Rn , the vector b is in Rm , and the matrix A is in Rm×n , and we have:     a1 T b1  T    a2   b2  ,  . . A= b = (B.5) .  .   .  .    .  am T bm Since A is an m × n real-valued matrix, it defines a set of m equality constraints. It is usually assumed that m ≤ n for problems in standard form. A linear program in general form can be reduced to a problem in standard form − + − as follows. Firstly, any free variables xj are replaced by x+ j − xj , where xj , xj ≥ 0 are introduced variables. Secondly, any constraints of the form ai T x ≤ bi are converted to equality constraints by the introduction of slack variables s+ i : ai T x ≤ bi



+ ai T x + s+ i = bi , si ≥ 0.

(B.6)

Finally, inequality constraints of the form ai T x ≥ bi are transformed to equality constraints by introducing surplus variables s− i : ai T x ≥ bi

B.2



− ai T x − s− i = bi , si ≥ 0.

(B.7)

Polyhedra

Definition B.2.1 (Hyperplane, Halfspace). Let a ∈ Rn \{0} and let b ∈ R. The following set H is called a hyperplane:  H := x ∈ Rn | aT x = b .

(B.8)

The set H 1 is called a halfspace: 2

 H 1 := x ∈ Rn | aT x ≥ b . 2

(B.9)

A hyperplane, therefore, is the boundary of its corresponding halfspace. Definition B.2.2 (Polyhedron). A polyhedron in Rn is denoted by P, and can be expressed by the set: P := {x ∈ Rn | Ax ≥ b} , (B.10)

Results from the Theory of Linear Programming

266

where A ∈ Rm×n and b ∈ Rm . A polyhedron in standard form can be expressed as: PSF := {x ∈ Rn | Ax = b, x ≥ 0} .

(B.11)

PSF is called the standard form polyhedron. A polyhedron may also be expressed in terms of the intersection of a finite number of halfspaces, or in other words, a finite number of linear inequalities. In this sense, a polyhedron is a natural concept to describe the feasible region of a linear program. Definition B.2.3 (Bounded Polyhedron). Let P be a polyhedron in Rn . For each x ∈ P, if there is a constant M such that |xi | ≤ M for all i ∈ {1, . . . , n}, then P is called a bounded polyhedron or polytope.

B.3

Convex Sets

Definition B.3.1 (Convex Sets). Let S ⊆ Rn . S is a convex set if for any x, y ∈ S and λ ∈ [0, 1], we have: λ x + (1 − λ)y ∈ S. (B.12) The line segment joining the vectors x and y in S is the set of all vectors z satisfying: z ∈ {λ x + (1 − λ)y | λ ∈ [0, 1]} .

(B.13)

Equivalently stated, a set S ⊂ Rn is convex if the line segment joining any vectors x, y ∈ S is contained within S. Definition B.3.2 (Convex Hull). Let x1 , x2 , . . . , xN ∈ Rn be a finite collection of vectors P and let λ1 , λ2 , . . . , λN ∈ R+ be a non-negative collection of real numbers with N i=1 λi = 1. 1 2 N The vector y is called a convex combination of the vectors x , x , . . . , x if: y=

N X

λi xi .

(B.14)

i=1

The convex hull of the vectors x1 , x2 , . . . , xN is the set of all their convex combinations: conv(x1 , x2 , . . . , xN ) :=

( N X i=1

λi xi |

N X i=1

) λi = 1, λi ∈ R+

.

(B.15)

B.3 Convex Sets

267

Theorem B.3.1. (Bertsimas and Tsitsiklis [16, p. 44]) • The intersection of convex sets is a convex set. • A polyhedron is a convex set. • A convex combination of a finite number of elements of a convex set is also a member of the same convex set. • The convex hull of a finite number of vectors is a convex set. Proof. See Bertsimas and Tsitsiklis [16, pp. 45-46]. Theorem B.3.2. A non-empty polyhedron defining the feasible region of a linear program in standard form (B.11) is a convex set. Proof. Firstly, it is clear that X = {x ∈ Rn | x ≥ 0} is a non-empty convex set. Secondly, we observe that the constraint set Ax = b is a collection of hyperplanes of the form ai T x = bi . Let w and y be two points on the hyperplane aT x = b. We construct a convex combination of y and z (say w) as follows: w = λy + (1 − λ)z,

λ ∈ [0, 1].

(B.16)

Substituting w into aT x, gives: aT w = aT (λy + (1 − λ)z) ,   = λ aT y + (1 − λ) aT z , = λb + (1 − λ)b,

(B.17)

= b. Hence, the point w is also on the hyperplane, and is therefore a convex set. Because the feasible region is an intersection of the hyperplanes ai T x = bi and X, it is the intersection of a finite number of convex sets. Hence, by Theorem B.3.1, the feasible region is a convex set. Definition B.3.3 (Extreme Point). Let P be a polyhedron, where P ⊂ Rn . A vector x ∈ P is called an extreme point of P if it cannot be expressed as a convex combination of vectors y and z, where y, z ∈ P and x ̸= y, z. Theorem B.3.3. Let P be a non-empty bounded polyhedron, where P ⊂ Rn . Suppose that P has a finite number of extreme points x1 , x2 , . . . , xN ∈ Rn . Then any other point in P can be written as a convex combination of the extreme points.1 1

That is, a non-empty and bounded polyhedron is the convex hull of its extreme points.

Results from the Theory of Linear Programming

268

Proof. See Hastings [65, pp. 162-163]. Corollary B.3.1. The feasible region (assuming it is non-empty) of a linear program in standard form (B.11) is a convex set with a finite number of extreme points. Proof. See Hastings [65, p. 163].

B.4

Basic Feasible Solutions

Definition B.4.1 (Active Constraint). Let P be a polyhedron, where P ⊂ Rn . Let P be expressed in terms of a finite number of equality and inequality constraints: ai T x ≥ bi ,

i ∈ I1 ,

ai T x ≤ bi ,

i ∈ I2 ,

ai T x = bi ,

i ∈ I3 ,

(B.18)

where I1 , I2 , I3 are finite index sets, ai ∈ Rn and bi ∈ R. Suppose there is a k ∈ {1, 2, 3} and an i ∈ Ik such that ai T x′ = bi for some x′ ∈ P. Then the constraint corresponding to i ∈ Ik is said to be active at x′ . Definition B.4.2 (Basic Feasible Solution). Consider a linear program in standard form (B.4) and let x′ ∈ Rn . The vector x′ is called a basic solution to (B.4) if: • All of the equality constraints are active in x′ ; • Exactly n of the active constraint vectors ai are linearly independent. In addition, if the basic solution x′ satisfies all of the constraints of (B.4), it is called a basic feasible solution. A basic solution to a linear program in standard form (B.4) requires the satisfaction of the constraints Ax = b and the linear independence of exactly n active constraint vectors. Since A ∈ Rm×n , m active constraints are automatically accounted for. Assuming that m ≤ n in standard form, it follows that the row vectors of A are linearly independent. To arrive at n linearly independent active constraint vectors, we can select n − m variables and set them to zero. If the remaining m variables have associated column vectors that are linearly independent, then the result is a basic solution. This is stated in the following theorem. Theorem B.4.1. Consider a linear program in standard form, as given by (B.4), and assume that A ∈ Rm×n has linearly independent rows. A vector x′ is a basic solution to (B.4) if and only if all its constraints are active and there exists indices B(1), . . . , B(m) such that:

B.4 Basic Feasible Solutions

269

1. The columns AB(1) , . . . , AB(m) are linearly independent. 2. If j ∈ / {B(1), . . . , B(m)}, then xj = 0. Proof. See Bertsimas and Tsitsiklis [16, pp. 53-54]. The procedure for constructing a basic solution to a linear program in standard form is described as follows. Firstly, select m linearly independent columns of A, say AB(1) , . . . , AB(m) . Secondly, set xj = 0 if j ∈ / {B(1), . . . , B(m)}. Finally, solve the system of m linear equations in the m unknown basic variables xB(1) , . . . , xB(m) . If the resulting solution is non-negative, then it is a basic feasible solution. The variables xj such that j ∈ {B(1), . . . , B(m)} are called basic, while the variables xj such that j ∈ / {B(1), . . . , B(m)} are called non-basic. Definition B.4.3 (Degeneracy). Consider a linear program in standard form, as given by (B.4), and let x′ ∈ Rn be a basic solution. The vector x′ is called a degenerate basic solution if more than n−m of the components of x′ are zero, otherwise, it is called a non-degenerate basic solution. In summary, a basic feasible solution of the standard form linear program (B.4) is a vector x′ ∈ Rn satisfying the constraints (Ax = b, x ≥ 0) such that n − m of its components are zero.2 The columns of A associated with the non-zero components of x′ form a linearly independent set of vectors. A basic feasible solution x′ ∈ Rn is non-degenerate if exactly n − m of its components are zero, otherwise it is degenerate. Theorem B.4.2. Consider a linear program in standard form, as given by (B.4), and assume that the feasible region PSF ⊂ Rn is non-empty. If there exist m linearly independent column vectors of A, then every extreme point of PSF is a basic feasible solution to (B.4). Conversely, every basic feasible solution to (B.4) is an extreme point of PSF . Proof. See Hastings [65, pp. 165-166]. Theorem B.4.3. Consider a linear program in standard form, as given by (B.4), and assume that the feasible region PSF ⊂ Rn is non-empty and bounded. Then the minimum value of the objective function cT x∗ occurs at an extreme point of PSF . Proof. See Hastings [65, pp. 166-167]. 2

Recall that A is an m × n real-valued matrix, that is, A ∈ Rm×n .

270

B.5

Results from the Theory of Linear Programming

Combinatorial Optimization

The field of combinatorial optimization is broadly concerned with finding optimal solutions to problems which can be expressed in terms of a finite set of discrete decision variables. Such problems may also include a set of constraints which limit the combinations of values that the decision variables may take. Reeves [103] states the general formulation of a combinatorial problem as follows: minimize f (x), subject to gi (x) ≥ bi ,

i = 1, . . . , m,

hj (x) = cj ,

j = 1, . . . , n.

(B.19)

In (B.19), x is a vector of discrete-valued decision variables, with f , gi and hj being real-valued functions. When these functions are linear with respect to the decision variables, the resultant combinatorial classification is referred to as a linear integer program. A number of combinatorial problems of practical importance have been studied in detail over the past few decades. These include the travelling salesman problem, the vehicle routing problem, the set covering problem, the knapsack problem and the assignment problem. There are a number of texts outlining the various solution techniques for the plethora of problems that can arise. These techniques include constraint programming (Rossi et al. [105], Dechter [30]), modern heuristics (Reeves [103]), simplex-based integer programming methods (Chen et al. [20], Nemhauser and Wolsey [93], Wolsey [131]), and hybrid strategies from integer and constraint programming (Hooker [69], Milano [90]).3

3

For a generalist introduction to combinatorial optimization, a number of good texts exist: Papadimitriou and Steiglitz [96], Lawler [83], Leiserson et al. [86], and Bertsimas and Tsitsiklis [16]. For an advanced treatment of the subject, see Schrijver [110].

Appendix C Lagrangian Relaxation Consider the integer program: minimize

zIP = cT x,

subject to

Ax ≥ b,

(C.1)

x ∈ X,  where A ∈ Rm1 ×n , b ∈ Rm1 , c ∈ Rn , x ∈ Zn+ , with X = x ∈ Zn+ | Dx ≥ d , and D ∈ Rm2 ×n , d ∈ Rm2 . Dantzig-Wolfe decomposition is a primal technique (column generation in the primal problem) for finding the linear relaxation to the problem considered in (C.1). However, the linear relaxation can also be found through various dual techniques (row generation in the dual problem). An important dual technique which shares a close relationship to Dantzig-Wolfe decomposition is the method of Lagrangian relaxation (see Geoffrion [56]). The fundamental principle of the Lagrangian technique is take the constraint set Ax ≥ b, weight it by a vector of Lagrange multipliers (π ≥ 0), and then incorporate it into the objective function. This results in the following Lagrangian subproblem:  zLR (π) := min cT x − π T (Ax − b) | x ∈ X .

(C.2)

Since zLR (π) is a relaxation of (C.1) for all π ≥ 0, we have that:  ∗ zLR (π) ≤ min cT x − π T (Ax − b) | x ∈ X, Ax ≥ b ≤ zIP .

(C.3)

Therefore, it follows that zLR (π) is a lower bound on the optimal integer objective

Lagrangian Relaxation

272

∗ zIP for any vector of multipliers π ≥ 0. The problem of finding the best (that is, the maximum) lower bound is called the Lagrangian dual problem, and is stated as follows: zLD := max zLR (π) . (C.4) π≥0

Because the Lagrangian function zLR (π) is a piecewise linear (and therefore, piecewise differentiable) function, the Lagrangian dual problem has been traditionally solved by implementing subgradient optimization algorithms, which are straightforward to apply (see Geoffrion [56]).1 When we have obtained an optimal solution to the Lagrangian dual problem, with dual multipliers π ∗ , we can feed these into (C.2) to obtain an integer feasible solution xπ∗ ∈ X which also satisfies the complementary slackness condition: (π ∗ )T (Axπ∗ − b) = 0. However, optimality cannot be established until the relaxed constraints are checked for feasibility, that is, we need to check that Axπ∗ ≥ b. If the relaxed constraints are not satisfied, a feasible primal solution must be recovered by a restart/repair strategy, such as branch-and-bound (see Desrosiers and Lübbecke [35]). In contrast to subgradient methods, if Dantzig-Wolfe decomposition is applied to (C.1), the resulting solution is contained in conv(X) but is not guaranteed to be integer (that is, contained in X). However, feasibility for Ax ≥ b and complementary slackness will nevertheless hold. This observation leads to the following linear programming based method for solving the Lagrangian dual problem.2 If X is replaced by conv(X) in (C.1), the optimal integer solution will not be altered: zLD = max zLR (π) , π≥0

= max

min



= max

min



π≥0 x∈conv(X)

π≥0 x∈conv(X)

cT x − π T (Ax − b) ,  cT − π T A x + π T b .

(C.5)

So by substituting X with its convex hull, we can attempt to solve the Lagrangian dual problem as a linear program.3 It turns out that the primal linear programming problem of finding a convex combination of points in X that also satisfy the 1

More recent methods have been proposed to solve the Lagrangian dual problem. See Goffin and Vial [60] for the analytic center cutting plane method and Hiriart-Urruty and Lemaréchal [68] for bundle methods. 2 See Nemhauser and Wolsey [93]. 3 The integer solution can be obtained by embedding the convex hull linear programming relaxation into a branch-and-bound tree.

273 constraints Ax ≥ b is the dual problem to the Lagrangian dual, and therefore, the optimal Lagrangian multipliers will be the optimal dual variables for the DantzigWolfe master problem.  Since X = x ∈ Zn+ | Dx ≥ d , we have:  conv (X) = x ∈ Rn+ | Dx ≥ d .

(C.6)

 If X ̸= ∅, then the extreme points of conv (X) are given by xp ∈ Rn+ | p ∈ P , and  the extreme rays are given by xr ∈ Rn+ | r ∈ R . Therefore, by inspection of the inner minimum of (C.5), and provided that X ̸= ∅, we have:

zLR (π) =

 −∞

 if cT − π T A xr < 0 for some r ∈ R,

cT x − π T (Ax − b) for some p ∈ P otherwise. p p

(C.7)

Note that if X = ∅ (which is possible in branch-and-bound - see Desrosiers and Lübbecke [35]), then zLR (π) = −∞. ∗ ∗ is finite. zLR (π) is , we require zLR (π) to be finite because zIP Since zLR (π) ≤ zIP finite if and only if π lies in the polyhedron:  T T 1 PΠ = π ∈ Rm + | π Axr ≤ c xr , ∀r ∈ R .

(C.8)

For this polyhedron, the Lagrangian function is the minimum of a finite number (size |P |) of affine functions, that is, if π ∈ PΠ , then: zLR (π) = min



p∈P

 c T − π T A xp + π T b .

(C.9)

We therefore ensure finiteness by re-writing (C.5) as follows:  max min cT xp − π T (Axp − b) , π≥0 p∈P

(C.10) T

T

subject to π Axr ≤ c xr ,

∀r ∈ R.

The problem stated in (C.10) can be equivalently expressed as a linear program as follows:

Lagrangian Relaxation

274

maximize π0 , subject to π T (Axp − b) + π0 ≤ cT xp , π T Axr ≤ cT xr ,

∀p ∈ P,

∀r ∈ R,

(C.11)

π ≥ 0. Taking the dual of linear program (C.11), we get: minimize

X

subject to

X

X   cT xp λp + cT xr λr ,

p∈P

r∈R

(Axp ) λp +

p∈P

X

X

(Axr ) λr ≥ b

r∈R

X

λp ,

p∈P

(C.12)

λp = 1,

p∈P

λ ≥ 0. The linear program in (C.12) is simply the Dantzig-Wolfe linear relaxation of the original master problem (C.1), that is, the relaxation obtained from:  max cT x | Ax ≥ b, x ∈ conv (X) .

(C.13)

Recall that replacing X with conv (X) in the Lagrangian subproblem leads to the following modified form: zLR (π) =



min

 cT − π T A x + π T b ,

x∈conv(X)

= πT b +

min



 cT − π T A x .

x∈conv(X)

(C.14)

If we add and subtract π0 to and from (C.14), we get the following form: T



zLR (π) = π b + π0 +

 min x∈conv(X)



  c − π A x − π0 . T

T

(C.15)

The first bracketed expression in (C.15) is simply the relaxed value of the objective function for the current basic variables (zB ), and the second bracketed expression is the smallest reduced cost for the current set of non-basic variables (¯ r∗ ). Therefore, by using the result given in (3.80), we have: ∗ zLR (π) = zB (π) + r¯∗ (π) ≤ zMP .

(C.16)

275 Thus, equivalent lower bounds on the optimal objective value to the relaxed mas∗ ter problem (zMP ) are derived from the Lagrangian subproblem and Dantzig-Wolfe based column generation. Therefore, Lagrangian relaxation and Dantzig Wolfe decomposition are equivalent methods for finding the linear relaxation to the original integer problem. The preference of one method over the other in the literature can largely be attributed to considerations of performance and ease of implementation (see Herbers [67]).

Appendix D Test Problems for the PBSPCC D.1

Problem 1 03

02

04

01 00

06

05

Fig. D.1 Graph representation of Test Problem 1.

       D=     

0 3 3 3 3 3 3

3 0 3 5 6 5 3

3 3 0 3 5 5 4

3 5 3 0 3 4 5

3 6 5 3 0 3 5

3 5 5 4 3 0 3

3 3 4 5 5 3 0





           

      A=     

0 1 1 1 1 1 1

1 0 1 0 0 0 1

1 1 0 1 0 0 1

1 0 1 0 1 1 0

1 0 0 1 0 1 0

1 0 0 1 1 0 1

1 1 1 0 0 1 0

            

Test Problems for the PBSPCC

278

04

01

00 03

02

Fig. D.2 Graph representation of Test Problem 2.

D.2

Problem 2     D=   

D.3

0 2 2 2 2

2 0 3 4 3

2 3 0 3 4

2 4 3 0 3

2 3 4 3 0





      

   A=   

0 1 1 1 1

1 0 1 1 1

1 1 0 1 1

Problem 3

05

02

01

04

00

Fig. D.3 Graph representation of Test Problem 3.

03

1 1 1 0 1

1 1 1 1 0

       

D.4 Problem 4

279

      D=    

D.4

0 2 2 2 2 4

2 0 2 4 2 2

2 2 0 2 4 2

2 4 2 0 4 4

2 2 4 4 0 4

4 2 2 4 4 0





         

     A=    

0 0 0 1 1 1

0 0 0 1 1 1

0 0 0 1 1 1

1 1 1 0 0 0

1 1 1 0 0 0

1 1 1 0 0 0

          

Problem 4

03 04

02

05

01

00

10

06

09

07 08

Fig. D.4 Graph representation of Test Problem 4.

Test Problems for the PBSPCC

280

            D=                       A=          

D.5

0 4 4 4 4 4 4 4 4 4 4

4 0 2 4 6 7 8 8 7 5 3

4 2 0 3 5 6 8 9 8 7 5

4 4 3 0 3 4 7 8 8 8 7

4 6 5 3 0 2 5 7 8 9 8

4 7 6 4 2 0 3 5 7 8 8

4 8 8 7 5 3 0 2 4 6 7

4 8 9 8 7 5 2 0 3 5 6

4 7 8 8 8 7 4 3 0 3 4

4 5 7 8 9 8 6 5 3 0 2

4 3 5 7 8 8 7 6 4 2 0



0 1 1 1 1 1 1 1 1 1 1

1 0 1 1 1 1 1 1 1 1 1

1 1 0 1 1 1 1 1 1 1 1

1 1 1 0 1 1 1 1 1 1 1

1 1 1 1 0 1 1 1 1 1 1

1 1 1 1 1 0 1 1 1 1 1

1 1 1 1 1 1 0 1 1 1 1

1 1 1 1 1 1 1 0 1 1 1

1 1 1 1 1 1 1 1 0 1 1

1 1 1 1 1 1 1 1 1 0 1

1 1 1 1 1 1 1 1 1 1 0



Problem 5 03

04

05

02

06

00 09

01 08

07

Fig. D.5 Graph representation of Test Problem 5.

                     

                     

D.6 Problem 6



1 0 1 1 1 2 2 2 2 1

2 1 0 1 2 3 3 3 2 1

281

          D=         

0 1 2 2 1 1 1 2 2 2

2 1 1 0 1 2 3 3 3 2

1 1 2 1 0 1 2 3 3 3

1 2 3 2 1 0 1 3 3 3

D.6

Problem 6

1 2 3 3 2 1 0 2 3 3

2 2 3 3 3 3 2 0 1 2

2 2 2 3 3 3 3 1 0 1

13

2 1 1 2 3 3 3 2 1 0





                   

          A=         

0 0 0 1 1 1 1 1 1 1

0 0 0 1 1 1 1 1 1 1

0 0 0 1 1 1 1 1 1 1

1 1 1 0 1 1 1 1 1 1

1 1 1 1 0 1 1 1 1 1

14 03

04

12 10

11

01 09 02

08 00 05 06 Fig. D.6 Graph representation of Test Problem 6.

07

1 1 1 1 1 0 1 1 1 1

1 1 1 1 1 1 0 1 1 1

1 1 1 1 1 1 1 0 1 1

1 1 1 1 1 1 1 1 0 1

1 1 1 1 1 1 1 1 1 0

                    

Test Problems for the PBSPCC

282

                 D=               

                 A=               

0 2 3 4 5 2 1 3 2 1 3 5 4 5 5

2 0 4 2 4 3 4 5 1 2 2 5 2 3 4

3 4 0 4 3 5 3 2 5 2 3 2 6 6 4

4 2 4 0 3 5 5 6 4 3 1 4 2 2 1

5 4 3 3 0 7 5 5 6 4 2 1 5 5 2

2 3 5 5 7 0 3 5 2 4 5 7 5 6 7

1 4 3 5 5 3 0 2 4 2 4 5 6 7 6

3 5 2 6 5 5 2 0 5 3 4 4 7 8 6

2 1 5 4 6 2 4 5 0 3 4 6 3 4 5

1 2 2 3 4 4 2 3 3 0 2 4 4 5 4

3 2 3 1 2 5 4 4 4 2 0 3 3 4 2

5 5 2 4 1 7 5 4 6 4 3 0 6 6 4

4 2 6 2 5 5 6 7 3 4 3 6 0 1 3

5 3 6 2 5 6 7 8 4 5 4 6 1 0 3

5 4 4 1 2 7 6 6 5 4 2 4 3 3 0



0 0 0 0 0 1 1 1 1 1 1 0 0 0 0

0 0 0 0 0 1 0 0 1 1 1 0 1 1 0

0 0 0 0 0 0 1 1 0 1 1 1 0 0 0

0 0 0 0 0 0 0 0 0 1 1 0 1 1 1

0 0 0 0 0 0 0 0 0 0 1 1 0 0 1

1 1 0 0 0 0 1 0 1 0 0 0 0 0 0

1 0 1 0 0 1 0 1 0 1 0 0 0 0 0

1 0 1 0 0 0 1 0 0 1 0 0 0 0 0

1 1 0 0 0 1 0 0 0 1 0 0 1 0 0

1 1 1 1 0 0 1 1 1 0 1 0 0 0 0

1 1 1 1 1 0 0 0 0 1 0 1 1 0 1

0 0 1 0 1 0 0 0 0 0 1 0 0 0 0

0 1 0 1 0 0 0 0 1 0 1 0 0 1 1

0 1 0 1 0 0 0 0 0 0 0 0 1 0 1

0 0 0 1 1 0 0 0 0 0 1 0 1 1 0



                               

                               

D.7 Problem 7

283 13 11 09

14

03

04

01 15 08

16

10

00 17 05

12

07

18

06

02

Fig. D.7 Graph representation of Test Problem 7.

D.7

Problem 7                       D=                    

0 2 4 4 5 6 2 2 1 2 3 4 4 6 8 7 5 8 5

2 0 4 1 3 4 3 2 1 1 1 2 3 4 5 5 3 6 4

4 4 0 5 5 4 2 2 4 5 3 6 2 7 7 6 4 5 2

4 1 5 0 2 4 4 3 3 2 2 1 3 3 4 4 3 6 4

5 3 5 2 0 3 6 4 4 4 3 2 3 2 2 2 2 4 4

6 4 4 4 3 0 5 4 5 6 3 5 2 5 4 2 1 2 1

2 3 2 4 6 5 0 1 2 4 3 5 3 7 8 7 4 7 4

2 2 2 3 4 4 1 0 1 3 1 4 2 6 6 5 3 6 3

1 1 4 3 4 5 2 1 0 2 2 4 3 6 7 6 4 7 4

2 1 5 2 4 6 4 3 2 0 3 2 4 4 6 6 4 8 6

3 1 3 2 3 3 3 1 2 3 0 3 1 4 5 4 2 5 3

4 2 6 1 2 5 5 4 4 2 3 0 4 2 4 4 4 6 5

4 3 2 3 3 2 3 2 3 4 1 4 0 5 5 4 1 4 1

6 4 7 3 2 5 7 6 6 4 4 2 5 0 2 4 4 6 6

8 5 7 4 2 4 8 6 7 6 5 4 5 2 0 2 4 4 5

7 5 6 4 2 2 7 5 6 6 4 4 4 4 2 0 2 2 4

5 3 4 3 2 1 4 3 4 4 2 4 1 4 4 2 0 3 2

8 6 5 6 4 2 7 6 7 8 5 6 4 6 4 2 3 0 3

5 4 2 4 4 1 4 3 4 6 3 5 1 6 5 4 2 3 0

                                          

Test Problems for the PBSPCC

284

                      A=                    

D.8

0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0

0 0 0 0 0 0 1 1 1 1 1 1 1 0 0 0 1 0 0

0 0 0 0 0 0 1 1 0 0 1 0 1 0 0 0 0 0 1

0 0 0 0 0 0 0 1 1 1 1 1 1 1 0 0 1 0 0

0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 0 0

0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 1 1 1

1 1 1 0 0 0 0 1 1 0 1 0 1 0 0 0 0 0 0

1 1 1 1 0 0 1 0 1 1 1 0 1 0 0 0 1 0 1

1 1 0 1 0 0 1 1 0 1 1 0 1 0 0 0 0 0 0

1 1 0 1 0 0 0 1 1 0 1 1 0 0 0 0 0 0 0

1 1 1 1 1 1 1 1 1 1 0 1 1 0 0 0 1 0 1

0 1 0 1 1 0 0 0 0 1 1 0 0 1 0 0 0 0 0

0 1 1 1 1 1 1 1 1 0 1 0 0 0 0 0 1 0 1

0 0 0 1 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0

0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0

0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 1 1 0

Problem 8 12 02 08

11 03

09

10

05 07

06 00

04

Fig. D.8 Graph representation of Test Problem 8.

01

0 1 0 1 1 1 0 1 0 0 1 0 1 0 0 1 0 1 1

0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 1

0 0 1 0 0 1 0 1 0 0 1 0 1 0 0 0 1 1 0

                                          

D.8 Problem 8

285

              D=                            A=             

0 3 3 4 1 1 2 4 2 2 4 4 4

3 0 4 2 2 4 1 1 4 3 2 3 4

3 4 0 2 3 3 2 4 1 1 3 2 1

4 2 2 0 3 4 1 1 3 2 1 1 2

1 2 3 3 0 2 1 3 2 2 4 4 4

1 4 3 4 2 0 3 5 1 2 5 4 4

2 1 2 1 1 3 0 2 2 1 2 2 3

4 1 4 1 3 5 2 0 4 3 1 2 4

2 4 1 3 2 1 2 4 0 1 4 3 3

2 3 1 2 2 2 1 3 1 0 3 2 2

4 2 3 1 4 5 2 1 4 3 0 1 3

4 3 2 1 4 4 2 2 3 2 1 0 1

4 4 1 2 4 4 3 4 3 2 3 1 0



0 0 0 0 1 1 1 0 1 1 0 0 0

0 0 0 0 1 0 1 1 0 0 1 0 0

0 0 0 0 0 0 1 0 1 1 0 1 1

0 0 0 0 0 0 1 1 0 1 1 1 1

1 1 0 0 0 1 1 0 1 1 0 0 0

1 0 0 0 1 0 0 0 1 1 0 0 0

1 1 1 1 1 0 0 1 1 1 1 1 0

0 1 0 1 0 0 1 0 0 0 1 1 0

1 0 1 0 1 1 1 0 0 1 0 0 0

1 0 1 1 1 1 1 0 1 0 0 1 1

0 1 0 1 0 0 1 1 0 0 0 1 0

0 0 1 1 0 0 1 1 0 1 1 0 1

0 0 1 1 0 0 0 0 0 1 0 1 0



                          

                          

Test Problems for the PBSPCC

286

D.9

Problem 9 11

(ii)

12

10

13 05

04 03

06

02

07

14

09 01

00 15

08

16 17

(i)

Fig. D.9 Graph representation of Test Problem 9.

                     D=                   

0 2 3 4 4 3 2 1 3 5 5 5 4 4 3 3 1 2

2 0 1 2 3 4 4 3 1 3 4 4 5 6 5 5 3 2

3 1 0 1 2 4 4 4 2 2 2 3 5 6 6 6 4 4

4 2 1 0 1 3 4 4 3 2 1 2 4 6 6 7 5 4

4 3 2 1 0 2 3 4 4 4 2 1 3 5 5 6 5 5

3 4 4 3 2 0 1 2 5 5 4 3 1 3 4 5 4 5

2 4 4 4 3 1 0 1 5 6 5 4 2 2 2 4 3 4

1 3 4 4 4 2 1 0 4 6 5 5 3 3 2 3 2 4

3 1 2 3 4 5 5 4 0 3 4 5 6 7 6 6 4 2

5 3 2 2 4 5 6 6 3 0 2 4 7 8 8 8 6 5

5 4 2 1 2 4 5 5 4 2 0 1 5 7 7 8 6 6

5 4 3 2 1 3 4 5 5 4 1 0 4 6 7 8 6 6

4 5 5 4 3 1 2 3 6 7 5 4 0 2 4 5 5 6

4 6 6 6 5 3 2 3 7 8 7 6 2 0 2 4 4 6

3 5 6 6 5 4 2 2 6 8 7 7 4 2 0 2 3 5

3 5 6 7 6 5 4 3 6 8 8 8 5 4 2 0 2 4

1 3 4 5 5 4 3 2 4 6 6 6 5 4 3 2 0 2

2 2 4 4 5 5 4 4 2 5 6 6 6 6 5 4 2 0

                                        

D.9 Problem 9

287

                     A=                   

0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 1 1

0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1

0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0

0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 1 0

0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 0

1 1 1 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1

0 1 1 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0

0 0 1 1 1 0 0 0 0 1 0 1 0 0 0 0 0 0

0 0 1 1 1 1 0 0 0 0 1 0 0 0 0 0 0 0

0 0 0 0 1 1 1 1 0 0 0 0 0 1 0 0 0 0

0 0 0 0 0 1 1 1 0 0 0 0 1 0 1 0 0 0

1 0 0 0 0 0 1 1 0 0 0 0 0 1 0 1 1 0

1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0

1 1 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 1

1 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0

                                        

Test Problems for the PBSPCC

288

D.10

Problem 10

04

03

05

06

07

(i)

00

08

09 01

(ii) 02

10

11

13

12

14

Fig. D.10 Graph representation of Test Problem 10.

                 D=               

0 2 4 3 2 3 2 2 3 3 4 4 6 6 6

2 0 2 4 4 4 3 3 2 2 3 3 4 4 4

4 2 0 6 6 6 4 4 3 3 2 2 3 2 3

3 4 6 0 2 4 2 4 4 6 6 7 8 8 9

2 4 6 2 0 2 3 3 4 4 6 6 8 8 8

3 4 6 4 2 0 4 2 6 4 7 6 9 8 8

2 3 4 2 3 4 0 4 2 4 4 6 6 6 7

2 3 4 4 3 2 4 0 4 2 6 4 7 6 6

3 2 3 4 4 6 2 4 0 4 2 4 4 4 6

3 2 3 6 4 4 4 2 4 0 4 2 6 4 4

4 3 2 6 6 7 4 6 2 4 0 4 2 3 4

4 3 2 7 6 6 6 4 4 2 4 0 4 3 2

6 4 3 8 8 9 6 7 4 6 2 4 0 2 4

6 4 2 8 8 8 6 6 4 4 3 3 2 0 2

6 4 3 9 8 8 7 6 6 4 4 2 4 2 0

                                

D.11 Problem 11

289

                 A=               

D.11

0 0 0 1 1 1 1 1 1 1 0 0 0 0 0

0 0 0 0 0 0 1 1 1 1 1 1 0 0 0

0 0 0 0 0 0 0 0 1 1 1 1 1 1 1

1 0 0 0 1 0 1 0 0 0 0 0 0 0 0

1 0 0 1 0 1 1 1 0 0 0 0 0 0 0

1 0 0 0 1 0 0 1 0 0 0 0 0 0 0

1 1 0 1 1 0 0 1 1 0 0 0 0 0 0

1 1 0 0 1 1 1 0 0 1 0 0 0 0 0

1 1 1 0 0 0 1 0 0 1 1 0 0 0 0

1 1 1 0 0 0 0 1 1 0 0 1 0 0 0

0 1 1 0 0 0 0 0 1 0 0 1 1 1 0

0 1 1 0 0 0 0 0 0 1 1 0 0 1 1

Problem 11

07 05

06

09

01

04

03

08

00

02

10 12

11

Fig. D.11 Graph representation of Test Problem 11.

0 0 1 0 0 0 0 0 0 0 1 0 0 1 0

0 0 1 0 0 0 0 0 0 0 1 1 1 0 1

0 0 1 0 0 0 0 0 0 0 0 1 0 1 0

                                

Test Problems for the PBSPCC

290

              D=                            A=             

0 2 2 3 3 3 2 2 2 1 1 2 2

2 0 1 1 1 1 1 2 3 3 3 3 2

2 1 0 1 1 2 2 3 4 4 3 2 1

3 1 1 0 1 2 2 4 4 4 4 3 2

3 1 1 1 0 1 1 3 4 4 4 4 3

3 1 2 2 1 0 1 2 3 4 4 4 4

2 1 2 2 1 1 0 1 2 3 4 4 3

2 2 3 4 3 2 1 0 1 2 4 4 4

2 3 4 4 4 3 2 1 0 1 3 4 4

1 3 4 4 4 4 3 2 1 0 2 3 4

1 3 3 4 4 4 4 4 3 2 0 1 2

2 3 2 3 4 4 4 4 4 3 1 0 1

2 2 1 2 3 4 3 4 4 4 2 1 0



0 0 1 0 0 0 1 1 1 1 1 1 1

0 0 1 1 1 1 1 1 0 0 0 0 1

1 1 0 1 1 1 1 0 0 0 0 1 1

0 1 1 0 1 1 1 0 0 0 0 0 1

0 1 1 1 0 1 1 0 0 0 0 0 0

0 1 1 1 1 0 1 1 0 0 0 0 0

1 1 1 1 1 1 0 1 1 0 0 0 0

1 1 0 0 0 1 1 0 1 1 0 0 0

1 0 0 0 0 0 1 1 0 1 0 0 0

1 0 0 0 0 0 0 1 1 0 1 0 0

1 0 0 0 0 0 0 0 0 1 0 1 1

1 0 1 0 0 0 0 0 0 0 1 0 1

1 1 1 1 0 0 0 0 0 0 1 1 0



                          

                          

D.12 Problem 12

D.12

291

Problem 12 10

09

08

12

11

13

14 06

07 00

05

01

15 17

04

16

03 02

18

19 20

21

22

23

Fig. D.12 Graph representation of Test Problem 12.                             D=                           

0 1 2 2 3 2 2 1 3 2 1 1 1 3 1 3 1 4 2 4 4 3 3 3

1 0 1 1 2 2 2 1 4 3 2 2 2 3 1 3 1 3 1 4 3 2 2 2

2 1 0 1 2 2 3 2 4 4 3 3 3 4 2 3 1 3 1 3 2 1 1 1

2 1 1 0 1 1 2 2 4 3 3 3 4 3 3 2 2 2 2 2 1 1 1 2

3 2 2 1 0 1 2 2 3 3 3 4 4 2 4 1 3 1 3 1 1 1 2 3

2 2 2 1 1 0 1 1 2 2 2 3 4 1 3 1 3 1 3 2 2 2 3 4

2 2 3 2 2 1 0 1 1 1 1 2 3 1 3 1 3 2 4 3 3 3 4 4

1 1 2 2 2 1 1 0 2 1 1 1 2 2 2 2 2 3 3 4 3 3 3 4

3 4 4 4 3 2 1 2 0 1 2 3 4 1 4 2 4 3 5 4 4 4 5 6

2 3 4 3 3 2 1 1 1 0 1 2 3 1 3 2 4 3 4 4 4 4 4 5

1 2 3 3 3 2 1 1 2 1 0 1 2 2 2 3 3 4 4 4 4 4 4 4

1 2 3 3 4 3 2 1 3 2 1 0 1 3 1 4 2 4 3 5 4 4 4 4

1 2 3 4 4 4 3 2 4 3 2 1 0 4 1 4 2 5 3 6 5 4 4 4

3 3 4 3 2 1 1 2 1 1 2 3 4 0 4 1 4 2 4 3 3 4 4 5

1 1 2 3 4 3 3 2 4 3 2 1 1 4 0 4 1 4 2 5 4 4 3 3

3 3 3 2 1 1 1 2 2 2 3 4 4 1 4 0 4 1 4 2 2 3 4 4

1 1 1 2 3 3 3 2 4 4 3 2 2 4 1 4 0 4 1 4 4 3 2 2

4 3 3 2 1 1 2 3 3 3 4 4 5 2 4 1 4 0 4 1 1 2 3 4

2 1 1 2 3 3 4 3 5 4 4 3 3 4 2 4 1 4 0 4 3 2 1 1

4 4 3 2 1 2 3 4 4 4 4 5 6 3 5 2 4 1 4 0 1 2 3 4

4 3 2 1 1 2 3 3 4 4 4 4 5 3 4 2 4 1 3 1 0 1 2 3

3 2 1 1 1 2 3 3 4 4 4 4 4 4 4 3 3 2 2 2 1 0 1 2

3 2 1 1 2 3 4 3 5 4 4 4 4 4 3 4 2 3 1 3 2 1 0 1

3 2 1 2 3 4 4 4 6 5 4 4 4 5 3 4 2 4 1 4 3 2 1 0

                                                       

Test Problems for the PBSPCC

292

                            A=                           

0 0 0 0 0 0 0 0 0 0 1 1 1 0 1 0 1 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 1 1

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 1 1 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 0

0 0 0 0 0 0 0 0 1 1 1 0 0 1 0 1 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 1 1 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0

1 0 0 0 0 0 1 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0

1 0 0 0 0 0 0 1 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0

1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0

0 0 0 0 0 1 1 0 1 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0

1 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 0 0 0 0 0 0 0

0 0 0 0 1 1 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0

1 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0

0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 1 0 0 0

0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1

0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0

0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0

0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0

0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 1

0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0

                                                       

D.13 Problem 13

D.13

293

Problem 13 01

02

03

04

06

05

08

07

09

00

Fig. D.13 Graph representation of Test Problem 13.            D=         

D.14

0 4 3 2 1 1 1 2 3 4

4 0 1 2 3 4 5 6 7 8

3 1 0 1 2 3 4 5 6 7

2 2 1 0 1 2 3 4 5 6

1 3 2 1 0 1 2 3 4 5

1 4 3 2 1 0 1 2 3 4

1 5 4 3 2 1 0 1 2 3

2 6 5 4 3 2 1 0 1 2

3 7 6 5 4 3 2 1 0 1

4 8 7 6 5 4 3 2 1 0





                   

          A=         

0 1 1 1 1 1 1 1 1 1

1 0 1 0 0 0 0 0 0 0

1 1 0 1 0 0 0 0 0 0

1 0 1 0 1 0 0 0 0 0

1 0 0 1 0 1 0 0 0 0

1 0 0 0 1 0 1 0 0 0

1 0 0 0 0 1 0 1 0 0

1 0 1 0 1 0

1 0 0 1 0 1

1 0 0 0 1 0



Problem 14

00

01

02

03

04

05

Fig. D.14 Graph representation of Test Problem 14.       D=    

0 1 2 3 4 5

1 0 1 2 3 4

2 1 0 1 2 3

3 2 1 0 1 2

4 3 2 1 0 1

5 4 3 2 1 0





         

     A=    

0 1 1 1 1 1

1 0 1 0 0 0

1 1 0 1 0 0

         

1 0 0 0 0 0 1 0 1 0

1 0 0 0 0 0 0 1 0 1

1 0 0 0 0 0 0 0 1 0

                    

Test Problems for the PBSPCC

294

D.15

Problem 15 02

00

01

03

Fig. D.15 Graph representation of Test Problem 15.    D=  

D.16

0 3 5 5

3 0 3 3

5 3 0 4

5 3 4 0





    

  A=  

0 1 1 1

1 0 1 1

1 1 0 1

1 1 1 0



1 1 0 1 1 1 1

1 1 1 0 1 1 0

1 1 1 1 0 1 1

    

Problem 16 06

05

02

03

04

01

00

Fig. D.16 Graph representation of Test Problem 16.        D=     

0 1 2 1 1 2 3

1 0 1 2 1 1 2

2 1 0 3 2 1 1

1 2 3 0 1 2 3

1 1 2 1 0 1 2

2 1 1 2 1 0 1

3 2 1 3 2 1 0





           

      A=     

0 1 1 1 1 1 1

1 0 1 1 1 1 1

1 1 1 1 1 0 1

1 1 1 0 1 1 0

            

D.17 Problem 17

D.17

295

Problem 17 06 04 05 00 01

02

03

Fig. D.17 Graph representation of Test Problem 17.        D=     

D.18

0 1 2 4 1 3 4

1 0 1 3 1 2 4

2 1 0 2 1 1 3

4 3 2 0 3 1 2

1 1 1 3 0 2 3

3 2 1 1 2 0 1

4 4 3 2 3 1 0





           

      A=     

0 1 1 1 1 1 1

1 0 1 0 1 1 0

1 1 0 1 1 1 0

Problem 18 02

03

00

01

04

Fig. D.18 Graph representation of Test Problem 18.

1 0 1 0 0 1 1

1 1 1 0 0 1 0

1 1 1 1 1 0 1

1 0 0 1 0 1 0

            

Test Problems for the PBSPCC

296     D=   

D.19

04

(i)

0 1 2 3 4

1 0 2 4 4

2 2 0 4 6

3 4 4 0 5

4 4 6 5 0





      

   A=   

0 1 1 1 1

1 0 1 1 1

1 1 0 1 0

1 1 1 0 1

1 1 0 1 0

       

Problem 19

05

06

07

10

09

08

02

03

11

12

01

13

14

15

00

Fig. D.19 Graph representation of Test Problem 19.

                  D=                 

0 3 5 8 10 9 8 7 6 5 4 3 2 1 1 2

3 0 2 5 7 6 5 4 3 2 1 1 2 3 4 5

5 8 10 9 2 5 7 6 0 3 5 4 3 0 2 1 5 2 0 1 4 1 1 0 3 1 2 1 2 2 3 2 1 3 4 3 1 4 5 4 2 5 6 5 3 6 7 6 4 7 8 7 5 8 9 8 6 9 10 9 7 10 11 10

8 5 3 1 2 1 0 1 2 3 4 5 6 7 8 9

7 4 2 2 3 2 1 0 1 2 3 4 5 6 7 8

6 3 1 3 4 3 2 1 0 1 2 3 4 5 6 7

5 2 1 4 5 4 3 2 1 0 1 2 3 4 5 6

4 1 2 5 6 5 4 3 2 1 0 1 2 3 4 5

3 1 3 6 7 6 5 4 3 2 1 0 1 2 3 4

2 2 4 7 8 7 6 5 4 3 2 1 0 1 2 3

 1 1 2  3 4 5   5 6 7    8 9 10   9 10 11    8 9 10   7 8 9    6 7 8   5 6 7    4 5 6   3 4 5    2 3 4   1 2 3    0 1 2   1 0 1   2 1 0

D.20 Problem 20

297

                  A=                 

D.20

0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1

0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0

0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0

0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0

0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0

0 0 0 1 1 0 1 0 0 0 0 0 0 0 0 0

0 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0

0 0 1 1 0 0 1 0 1 0 0 0 0 0 0 0

0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0

0 1 1 0 0 0 0 0 1 0 1 0 0 0 0 0

0 1 1 0 0 0 0 0 0 1 0 1 0 0 0 0

0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0

1 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0

1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0

1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1

1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0

Problem 20 03

04

02

01

00

Fig. D.20 Graph representation of Test Problem 20.     D=   

0 4 4 4 7

4 0 7 4 4

4 7 0 4 8

4 4 4 0 4

7 4 8 4 0





      

   A=   

0 0 1 1 1

0 0 1 1 1

1 1 0 1 0

1 1 1 0 1

1 1 0 1 0

       

                                   

Appendix E Computational Results (PBSPCC) E.1

Column Generation Performance

This section contains a comprehensive collection of computational results for column generation strategy C1, introduced in Section 5.2.4. Strategy C1 utilizes a Greedy Shortest Path Heuristic (GSPH) and a Big M artificial variable for the seed columns, a minimum non-patrol time objective function and multiple negative reduced cost paths returned at each call to the subproblem. Results are given for each test problem listed in Appendix D for combinations of endurance TE = 12, 15, 18 with replenishment break TR = 0, 1, 2, 3, 4 with planning horizons T = TE + TR to T = J(TE + TR ), where J = 2 or 3.1 Computational results are given for the CPU time performance, the number of P columns generated, and the value of p∈P λp , that is, the number of paths used in the linear programming relaxation. For some of the test problem networks, the P value of p∈P λp is seen to stabilize (approach a steady state) as the planning horizon increases, suggesting that the minimum non-patrol time problem might satisfy the minimum fleet size problem for sufficiently large T . For all networks, the value P of p∈P λp behaves as a local minimum for integer multiples of TE + TR . The results show that the column generation performance degrades significantly as the planning horizon increases on the larger spatial networks. This phenomenon provides justification to consider problem reduction/decomposition techniques to render large-scale problems more tractable for the application of branch-and-price heuristics. 1

For Test Problem 15, the minimum endurance for the computational experiments is set to TE = 13, since no feasible solution can be found for TE = 12.

Computational Results (PBSPCC)

300

Runtime:)P01_E12

Columns:)P01_E12 450

3.00

Replenish = 0 Replenish = 1

350

Runtime)(CPU)seconds)

Number)of)Columns

400

Replenish = 2

300

Replenish = 3

250

Replenish = 4

200 150 100

2.50 2.00 1.50 1.00 0.50

50 0.00

0 10

15

20

25

30

35

40

45

10

50

15

20

25

Columns:)P01_E15 4.00

450

3.50

Runtime)(CPU)seconds)

Number)of)Columns

35

40

45

50

Runtime:)P01_E15

500

400 350 300 250 200 150 100 50 0

3.00 2.50 2.00 1.50 1.00 0.50 0.00

10

15

20

25

30

35

40

45

50

55

60

10

15

20

25

30

35

40

45

50

55

60

Planning)Period)Length

Planning)Period)Length

Columns:)P01_E18

Runtime:)P01_E18

600

3.00

500

2.50

Runtime)(CPU)seconds)

Number)of)Columns

30

Planning)Period)Length

Planning)Period)Length

400 300 200 100 0

2.00 1.50 1.00 0.50 0.00

15

20

25

30

35

Planning)Period)Length

40

45

15

20

25

30

35

40

45

Planning)Period)Length

Fig. E.1 Column generation performance charts for Test Problem 1. Left: Number of columns generated for TE = 12 (top), TE = 15 (middle), TE = 18 (bottom), all ranging over TR = 0, 1, 2, 3, 4. Right: Runtime performance for TE = 12 (top), TE = 15 (middle), TE = 18 (bottom), all ranging over TR = 0, 1, 2, 3, 4.

E.1 Column Generation Performance

301 Runtime:)P02_E12

Columns:)P02_E12 350

1.40

Replenish = 0 Replenish = 1

Runtime)(CPU)seconds)

Number)of)Columns

300

Replenish = 2

250

Replenish = 3

200

Replenish = 4

150 100

1.20 1.00 0.80 0.60 0.40 0.20

50

0.00

0 10

15

20

25

30

35

40

45

10

50

15

20

25

30

35

40

45

50

Planning)Period)Length

Planning)Period)Length

Columns:)P02_E15

Runtime:)P02_E15

500

2.50

450 2.00

Runtime)(CPU)seconds)

Number)of)Columns

400 350 300 250 200 150 100 50 0

1.50

1.00

0.50

0.00 10

15

20

25

30

35

40

45

50

55

60

10

15

20

Columns:)P02_E18

30

35

40

45

50

55

60

Runtime:)P02_E18 2.00

Runtime)(CPU)seconds)

300

Number)of)Columns

25

Planning)Period)Length

Planning)Period)Length

200

100

0

1.50

1.00

0.50

0.00 15

20

25

30

35

Planning)Period)Length

40

45

15

20

25

30

35

40

45

Planning)Period)Length

Fig. E.2 Column generation performance charts for Test Problem 2. Left: Number of columns generated for TE = 12 (top), TE = 15 (middle), TE = 18 (bottom), all ranging over TR = 0, 1, 2, 3, 4. Right: Runtime performance for TE = 12 (top), TE = 15 (middle), TE = 18 (bottom), all ranging over TR = 0, 1, 2, 3, 4.

Computational Results (PBSPCC)

302 Paths: P01_E12

Paths: P02_E12

19

9

Number of Paths

Number of Paths

18 17 16 15

Replenish = 0

14

Replenish = 1 Replenish = 2

13

8

7

6

Replenish = 3 12

Replenish = 4

11

5 10

15

20

25

30

35

40

45

50

55

60

10

15

20

25

Planning Period Length

Paths: P01_E15

40

45

50

Paths: P02_E15

Number of Paths

13

Number of Paths

35

9

14

12

11

8

7

6

10

9

5 10

15

20

25

30

35

40

45

50

55

10

60

15

20

Planning Period Length

25

30

35

40

45

50

55

60

Planning Period Length

Paths: P01_E18

Paths: P02_E18

13

9

Number of Paths

12

Number of Paths

30

Planning Period Length

11

10

8

7

6

9

8

5 15

20

25

30

35

Planning Period Length

Fig. E.3 Values of Test Problem 2.

P

p∈P

40

45

15

20

25

30

35

40

45

Planning Period Length

λp in column generation solutions for Test Problem 1 and

E.1 Column Generation Performance

303 Runtime:UP03_E12

Columns:UP03_E12 250

1.00

Replenish = 0

RuntimeU(CPUUseconds)

NumberUofUColumns

0.90

Replenish = 1

200

Replenish = 2 Replenish = 3

150

Replenish = 4 100

50

0.80 0.70 0.60 0.50 0.40 0.30 0.20 0.10 0.00

0 10

15

20

25

30

35

40

45

10

50

15

20

25

35

40

45

50

Runtime:UP03_E15

300

1.20

250

1.00

RuntimeU(CPUUseconds)

NumberUofUColumns

Columns:UP03_E15

200 150 100 50 0

0.80 0.60 0.40 0.20 0.00

10

15

20

25

30

35

40

45

50

55

60

10

15

20

PlanningUPeriodULength

25

30

35

40

45

50

55

60

PlanningUPeriodULength

Runtime:UP03_E18

Columns:UP03_E18 200

1.60

180

1.40

RuntimeU(CPUUseconds)

160

NumberUofUColumns

30

PlanningUPeriodULength

PlanningUPeriodULength

140 120 100 80 60 40 20

1.20 1.00 0.80 0.60 0.40 0.20 0.00

0 15

20

25

30

35

PlanningUPeriodULength

40

45

15

20

25

30

35

40

45

PlanningUPeriodULength

Fig. E.4 Column generation performance charts for Test Problem 3. Left: Number of columns generated for TE = 12 (top), TE = 15 (middle), TE = 18 (bottom), all ranging over TR = 0, 1, 2, 3, 4. Right: Runtime performance for TE = 12 (top), TE = 15 (middle), TE = 18 (bottom), all ranging over TR = 0, 1, 2, 3, 4.

Computational Results (PBSPCC)

304

Runtime:UP04_E12

Columns:UP04_E12 900

7.00

Replenish = 0 Replenish = 1

700

RuntimeU(CPUUseconds)

NumberUofUColumns

800

Replenish = 2

600

Replenish = 3

500

Replenish = 4

400 300 200

6.00 5.00 4.00 3.00 2.00 1.00

100

0.00

0 10

15

20

25

30

35

40

45

10

50

15

20

25

Columns:UP04_E15 900

8.00

800

7.00

RuntimeU(CPUUseconds)

9.00

NumberUofUColumns

35

40

45

50

Runtime:UP04_E15

1,000

700 600 500 400 300 200 100

6.00 5.00 4.00 3.00 2.00 1.00 0.00

0 10

15

20

25

30

35

40

45

50

55

60

10

15

20

PlanningUPeriodULength

25

30

35

40

45

50

55

60

PlanningUPeriodULength

Columns:UP04_E18

Runtime:UP04_E18

800

7.00

700

6.00

600

RuntimeU(CPUUseconds)

NumberUofUColumns

30

PlanningUPeriodULength

PlanningUPeriodULength

500 400 300 200 100 0

5.00 4.00 3.00 2.00 1.00 0.00

15

20

25

30

35

PlanningUPeriodULength

40

45

15

20

25

30

35

40

45

PlanningUPeriodULength

Fig. E.5 Column generation performance charts for Test Problem 4. Left: Number of columns generated for TE = 12 (top), TE = 15 (middle), TE = 18 (bottom), all ranging over TR = 0, 1, 2, 3, 4. Right: Runtime performance for TE = 12 (top), TE = 15 (middle), TE = 18 (bottom), all ranging over TR = 0, 1, 2, 3, 4.

E.1 Column Generation Performance

305

Paths: P03_E12

Paths: P04_E12

Number of Paths

Number of Paths

7

6 Replenish = 0 Replenish = 1

5

Replenish = 2 Replenish = 3 Replenish = 4 4 10

15

20

25

30

35

40

45

50

55

41 40 39 38 37 36 35 34 33 32 31 30 29 28 10

60

15

20

25

Planning Period Length

30

35

40

45

50

Planning Period Length

Paths: P03_E15

Paths: P04_E15

7

31

Number of Paths

Number of Paths

30

6

5

29 28 27 26 25 24 23

4

22 10

15

20

25

30

35

40

45

50

55

60

10

15

20

Paths: P03_E18

30

35

40

45

50

55

60

Paths: P04_E18

7

23

6

22

Number of Paths

Number of Paths

25

Planning Period Length

Planning Period Length

5

4

21

20

3

19 15

20

25

30

35

Planning Period Length

Fig. E.6 Values of Test Problem 4.

P

p∈P

40

45

15

20

25

30

35

40

45

Planning Period Length

λp in column generation solutions for Test Problem 3 and

Computational Results (PBSPCC)

306

Runtime:cP05_E12

Columns:cP05_E12 1,600

35.00

Replenish = 0 Replenish = 1

1,200

Replenish = 2

1,000

Replenish = 3

800

Replenish = 4

Runtimec(CPUcseconds)

NumbercofcColumns

1,400

600 400

30.00 25.00 20.00 15.00 10.00 5.00

200

0.00

0 10

15

20

25

30

35

40

45

10

50

15

20

25

30

35

40

45

50

PlanningcPeriodcLength

PlanningcPeriodcLength

Columns:cP05_E15

Runtime:cP05_E15

1800

60.00

1600

Runtimec(CPUcseconds)

NumbercofcColumns

50.00

1400 1200 1000 800 600 400 200 0

40.00 30.00 20.00 10.00 0.00

10

15

20

25

30

35

40

45

50

55

10

60

15

20

PlanningcPeriodcLength

25

30

35

40

45

50

55

60

PlanningcPeriodcLength

Runtime:cP05_E18

Columns:cP05_E18 14.00

1,000 900

12.00

Runtimec(CPUcseconds)

NumbercofcColumns

800 700 600 500 400 300 200 100

10.00 8.00 6.00 4.00 2.00 0.00

0 15

20

25

30

35

PlanningcPeriodcLength

40

45

15

20

25

30

35

40

45

PlanningcPeriodcLength

Fig. E.7 Column generation performance charts for Test Problem 5. Left: Number of columns generated for TE = 12 (top), TE = 15 (middle), TE = 18 (bottom), all ranging over TR = 0, 1, 2, 3, 4. Right: Runtime performance for TE = 12 (top), TE = 15 (middle), TE = 18 (bottom), all ranging over TR = 0, 1, 2, 3, 4.

E.1 Column Generation Performance

307 Runtime:UP06_E12

Columns:UP06_E12 3,000

90.00

Replenish = 0

80.00

Replenish = 1

RuntimeU(CPUUseconds)

NumberUofUColumns

2,500

Replenish = 2 2,000

Replenish = 3 Replenish = 4

1,500 1,000 500

70.00 60.00 50.00 40.00 30.00 20.00 10.00 0.00

0 10

15

20

25

30

35

40

45

10

50

15

20

25

Columns:UP06_E15

40

45

50

120.00 100.00

RuntimeU(CPUUseconds)

2,000

NumberUofUColumns

35

Runtime:UP06_E15

2,500

1,500

1,000

500

0

80.00 60.00 40.00 20.00 0.00

10

15

20

25

30

35

40

45

50

55

10

60

15

20

PlanningUPeriodULength

25

30

35

40

45

50

55

60

PlanningUPeriodULength

Runtime:UP06_E18

Columns:UP06_E18 1,600

35.00

1,400

30.00

1,200

RuntimeU(CPUUseconds)

NumberUofUColumns

30

PlanningUPeriodULength

PlanningUPeriodULength

1,000 800 600 400 200

25.00 20.00 15.00 10.00 5.00 0.00

0 15

20

25

30

35

PlanningUPeriodULength

40

45

15

20

25

30

35

40

45

PlanningUPeriodULength

Fig. E.8 Column generation performance charts for Test Problem 6. Left: Number of columns generated for TE = 12 (top), TE = 15 (middle), TE = 18 (bottom), all ranging over TR = 0, 1, 2, 3, 4. Right: Runtime performance for TE = 12 (top), TE = 15 (middle), TE = 18 (bottom), all ranging over TR = 0, 1, 2, 3, 4.

Computational Results (PBSPCC)

308 Paths: P05_E12

Paths: P06_E12 23 22

13

Number of Paths

Number of Paths

14

12 11

Replenish = 0 Replenish = 1

10

Replenish = 2

20 19 18 17 16

Replenish = 3

9

21

15

Replenish = 4 8

14 10

15

20

25

30

35

40

45

50

55

10

60

15

20

25

Planning Period Length

30

35

40

45

50

Planning Period Length

Paths: P05_E15

Paths: P06_E15

13

20 19

Number of Paths

Number of Paths

12

11

10

18 17 16 15

9 14

8

13

10

15

20

25

30

35

40

45

50

55

10

60

15

20

Planning Period Length

25

30

35

40

45

50

55

60

Planning Period Length

Paths: P06_E18

Paths: P05_E18 20

13

19

Number of Paths

Number of Paths

12

11

10

18 17 16 15

9

14 13

8 15

20

25

30

35

Planning Period Length

Fig. E.9 Values of Test Problem 6.

P

p∈P

40

45

15

20

25

30

35

40

45

Planning Period Length

λp in column generation solutions for Test Problem 5 and

E.1 Column Generation Performance

309 Runtime:UP07_E12

Columns:UP07_E12 700.00

4,500

Replenish = 0

4,000

Replenish = 1

3,500

Replenish = 2

3,000

Replenish = 3

2,500

Replenish = 4

RuntimeU(CPUUseconds)

NumberUofUColumns

5,000

2,000 1,500 1,000

600.00 500.00 400.00 300.00 200.00 100.00

500

0.00

0 10

15

20

25

30

35

40

45

10

50

15

20

Columns:UP07_E15

30

35

40

45

50

Runtime:UP07_E15

4,500

450.00

4,000

400.00

3,500

350.00

RuntimeU(CPUUseconds)

NumberUofUColumns

25

PlanningUPeriodULength

PlanningUPeriodULength

3,000 2,500 2,000 1,500 1,000 500 0

300.00 250.00 200.00 150.00 100.00 50.00 0.00

10

15

20

25

30

35

40

45

50

55

60

10

15

20

25

30

35

40

45

50

55

60

PlanningUPeriodULength

PlanningUPeriodULength

Columns:UP07_E18

Runtime:UP07_E18 200.00

3,000

180.00 160.00

RuntimeU(CPUUseconds)

NumberUofUColumns

2,500 2,000 1,500 1,000 500 0

140.00 120.00 100.00 80.00 60.00 40.00 20.00 0.00

15

20

25

30

35

PlanningUPeriodULength

40

45

15

20

25

30

35

40

45

PlanningUPeriodULength

Fig. E.10 Column generation performance charts for Test Problem 7. Left: Number of columns generated for TE = 12 (top), TE = 15 (middle), TE = 18 (bottom), all ranging over TR = 0, 1, 2, 3, 4. Right: Runtime performance for TE = 12 (top), TE = 15 (middle), TE = 18 (bottom), all ranging over TR = 0, 1, 2, 3, 4.

Computational Results (PBSPCC)

310

Runtime:UP08_E12

Columns:UP08_E12 1,600

40.00

Replenish = 0 35.00

Replenish = 1

1,200

Replenish = 2

1,000

Replenish = 3

800

Replenish = 4

RuntimeU(CPUUseconds)

NumberUofUColumns

1,400

600 400

30.00 25.00 20.00 15.00 10.00 5.00

200

0.00

0 10

15

20

25

30

35

40

45

10

50

15

20

25

30

35

40

45

50

PlanningUPeriodULength

PlanningUPeriodULength

Columns:UP08_E15

Runtime:UP08_E15

2,000

60.00

1,800 50.00

RuntimeU(CPUUseconds)

NumberUofUColumns

1,600 1,400 1,200 1,000 800 600 400 200 0

40.00 30.00 20.00 10.00 0.00

10

15

20

25

30

35

40

45

50

55

60

10

15

20

Columns:UP08_E18

30

35

40

45

50

55

60

Runtime:UP08_E18

1,200

16.00 14.00

RuntimeU(CPUUseconds)

1,000

NumberUofUColumns

25

PlanningUPeriodULength

PlanningUPeriodULength

800 600 400 200 0

12.00 10.00 8.00 6.00 4.00 2.00 0.00

15

20

25

30

35

PlanningUPeriodULength

40

45

15

20

25

30

35

40

45

PlanningUPeriodULength

Fig. E.11 Column generation performance charts for Test Problem 8. Left: Number of columns generated for TE = 12 (top), TE = 15 (middle), TE = 18 (bottom), all ranging over TR = 0, 1, 2, 3, 4. Right: Runtime performance for TE = 12 (top), TE = 15 (middle), TE = 18 (bottom), all ranging over TR = 0, 1, 2, 3, 4.

E.1 Column Generation Performance

311 Paths: P08_E12 19

24

18

Number of Paths

Number of Paths

Paths: P07_E12 25

23 22 21

Replenish = 0

20

Replenish = 1

19

Replenish = 2

16 15 14 13 12

Replenish = 3

18

17

11

Replenish = 4

17

10 10

15

20

25

30

35

40

45

50

55

60

10

15

20

25

Planning Period Length

35

40

45

50

Paths: P08_E15

24

19

23

18

22

Number of Paths

Number of Paths

Paths: P07_E15

21 20 19 18

17 16 15 14 13 12

17

11 10

16 10

15

20

25

30

35

40

45

50

55

60

10

15

20

Planning Period Length

25

30

35

40

45

50

55

60

Planning Period Length

Paths: P07_E18

Paths: P08_E18

24

19

23

18

22

17

Number of Paths

Number of Paths

30

Planning Period Length

21 20 19 18

16 15 14 13

17

12

16

11

15

10

15

20

25

30

35

Planning Period Length

Fig. E.12 Values of Test Problem 8.

P

p∈P

40

45

15

20

25

30

35

40

45

Planning Period Length

λp in column generation solutions for Test Problem 7 and

Computational Results (PBSPCC)

312

Runtime:UP09_E12

Columns:UP09_E12 3,500

300.00

Replenish = 0 Replenish = 1

RuntimeU(CPUUseconds)

NumberUofUColumns

3,000

Replenish = 2

2,500

Replenish = 3

2,000

Replenish = 4

1,500 1,000 500

250.00 200.00 150.00 100.00 50.00 0.00

0 10

15

20

25

30

35

40

45

10

50

15

20

25

30

35

40

45

50

PlanningUPeriodULength

PlanningUPeriodULength

Columns:UP09_E15

Runtime:UP09_E15

2,200

60.00

2,000 50.00

RuntimeU(CPUUseconds)

NumberUofUColumns

1,800 1,600 1,400 1,200 1,000 800 600 400 200 0

40.00 30.00 20.00 10.00 0.00

10

15

20

25

30

35

40

45

50

55

10

60

15

20

25

30

35

40

45

50

55

60

PlanningUPeriodULength

PlanningUPeriodULength

Columns:UP09_E18

Runtime:UP09_E18

1,000

12.00

900 10.00

RuntimeU(CPUUseconds)

NumberUofUColumns

800 700 600 500 400 300 200 100 0

8.00 6.00 4.00 2.00 0.00

15

20

25

30

35

PlanningUPeriodULength

40

45

15

20

25

30

35

40

45

PlanningUPeriodULength

Fig. E.13 Column generation performance charts for Test Problem 9. Left: Number of columns generated for TE = 12 (top), TE = 15 (middle), TE = 18 (bottom), all ranging over TR = 0, 1, 2, 3, 4. Right: Runtime performance for TE = 12 (top), TE = 15 (middle), TE = 18 (bottom), all ranging over TR = 0, 1, 2, 3, 4.

E.1 Column Generation Performance

313 Runtime:cP10_E12

Columns:cP10_E12 1,800

35.00

Replenish = 0 Replenish = 1

1,400

Runtimec(CPUcseconds)

NumbercofcColumns

1,600

Replenish = 2

1,200

Replenish = 3

1,000

Replenish = 4

800 600 400

30.00 25.00 20.00 15.00 10.00 5.00

200

0.00

0 10

15

20

25

30

35

40

45

10

50

15

20

25

Columns:cP10_E15

35

40

45

50

Runtime:cP10_E15

2,200

100.00

2,000

90.00

1,800

80.00

Runtimec(CPUcseconds)

NumbercofcColumns

30

PlanningcPeriodcLength

PlanningcPeriodcLength

1,600 1,400 1,200 1,000 800 600 400 200 0

70.00 60.00 50.00 40.00 30.00 20.00 10.00 0.00

10

15

20

25

30

35

40

45

50

55

10

60

15

20

25

30

35

40

45

50

55

60

PlanningcPeriodcLength

PlanningcPeriodcLength

Columns:cP10_E18

Runtime:cP10_E18 25.00

1,400 1,200

Runtimec(CPUcseconds)

NumbercofcColumns

20.00 1,000 800 600 400 200 0

15.00

10.00

5.00

0.00 15

20

25

30

35

PlanningcPeriodcLength

40

45

15

20

25

30

35

40

45

PlanningcPeriodcLength

Fig. E.14 Column generation performance charts for Test Problem 10. Left: Number of columns generated for TE = 12 (top), TE = 15 (middle), TE = 18 (bottom), all ranging over TR = 0, 1, 2, 3, 4. Right: Runtime performance for TE = 12 (top), TE = 15 (middle), TE = 18 (bottom), all ranging over TR = 0, 1, 2, 3, 4.

Computational Results (PBSPCC)

314 Paths: P09_E12

Paths: P10_E12 29 28

19

Number of Paths

Number of Paths

20

18 17 Replenish = 0

16

Replenish = 1

15 14

27 26 25 24 23

Replenish = 2

22

Replenish = 3

21 20

Replenish = 4 13

19 10

15

20

25

30

35

40

45

50

55

10

60

15

20

25

Planning Period Length

Paths: P09_E15

35

40

45

50

Paths: P10_E15

18

25 24

Number of Paths

17

Number of Paths

30

Planning Period Length

16 15 14

23 22 21 20 19

13

18

12

17 10

15

20

25

30

35

40

45

50

55

60

10

15

20

Paths: P09_E18

30

35

40

45

50

55

60

Paths: P10_E18

18

23

17

22

Number of Paths

Number of Paths

25

Planning Period Length

Planning Period Length

16 15 14 13 12

21 20 19 18 17

11

16 15

20

25

30

35

Planning Period Length

Fig. E.15 Values of Test Problem 10.

P

p∈P

40

45

15

20

25

30

35

40

45

Planning Period Length

λp in column generation solutions for Test Problem 9 and

E.1 Column Generation Performance

315 Runtime:)P11_E12

Columns:)P11_E12 3,000

250.00

Replenish = 0 Replenish = 1

Runtime)(CPU)seconds)

Number)of)Columns

2,500

Replenish = 2 2,000

Replenish = 3 Replenish = 4

1,500 1,000 500

200.00

150.00

100.00

50.00

0.00

0 10

15

20

25

30

35

40

45

10

50

15

20

Columns:)P11_E15

30

35

40

45

50

Runtime:)P11_E15 300.00

4,000 3,500

250.00

3,000

Runtime)(CPU)seconds)

Number)of)Columns

25

Planning)Period)Length

Planning)Period)Length

2,500 2,000 1,500 1,000 500 0

200.00 150.00 100.00 50.00 0.00

10

15

20

25

30

35

40

45

50

55

60

10

15

20

25

30

35

40

45

50

55

60

Planning)Period)Length

Planning)Period)Length

Columns:)P11_E18

Runtime:)P11_E18

2,200

160.00

2,000

140.00

Runtime)(CPU)seconds)

Number)of)Columns

1,800 1,600 1,400 1,200 1,000 800 600 400 200 0

120.00 100.00 80.00 60.00 40.00 20.00 0.00

15

20

25

30

35

Planning)Period)Length

40

45

15

20

25

30

35

40

45

Planning)Period)Length

Fig. E.16 Column generation performance charts for Test Problem 11. Left: Number of columns generated for TE = 12 (top), TE = 15 (middle), TE = 18 (bottom), all ranging over TR = 0, 1, 2, 3, 4. Right: Runtime performance for TE = 12 (top), TE = 15 (middle), TE = 18 (bottom), all ranging over TR = 0, 1, 2, 3, 4.

Computational Results (PBSPCC)

316

Runtime:)P12_E12

Columns:)P12_E12 2,500

140.00

Replenish = 0

Number)of)Columns

Runtime)(CPU)seconds)

Replenish = 1

2,000

Replenish = 2 Replenish = 3

1,500

Replenish = 4 1,000

500

120.00 100.00 80.00 60.00 40.00 20.00 0.00

0 10

15

20

25

30

35

40

45

10

50

15

20

25

30

35

40

45

50

40

45

50

Planning)Period)Length

Planning)Period)Length

Columns:)P12_E15

Runtime:)P12_E15 80.00

2,500

70.00

Runtime)(CPU)seconds)

Number)of)Columns

2,000

1,500

1,000

500

0

60.00 50.00 40.00 30.00 20.00 10.00 0.00

10

15

20

25

30

35

40

45

10

50

15

20

25

Columns:)P12_E18

35

Runtime:)P12_E18

2,500

120.00 100.00

Runtime)(CPU)seconds)

2,000

Number)of)Columns

30

Planning)Period)Length

Planning)Period)Length

1,500

1,000

500

0

80.00 60.00 40.00 20.00 0.00

15

20

25

30

35

Planning)Period)Length

40

45

50

15

20

25

30

35

40

45

50

Planning)Period)Length

Fig. E.17 Column generation performance charts for Test Problem 12. Left: Number of columns generated for TE = 12 (top), TE = 15 (middle), TE = 18 (bottom), all ranging over TR = 0, 1, 2, 3, 4. Right: Runtime performance for TE = 12 (top), TE = 15 (middle), TE = 18 (bottom), all ranging over TR = 0, 1, 2, 3, 4.

E.1 Column Generation Performance

317

Paths: P11_E12

Paths: P12_E12

21

Number of Paths

Number of Paths

20 19 18 17

Replenish = 0

16

Replenish = 1

15

Replenish = 2 Replenish = 3

14

Replenish = 4

13 10

15

20

25

30

35

40

45

50

55

33 32 31 30 29 28 27 26 25 24 23 22 21 20 19 10

60

15

20

25

Planning Period Length

Paths: P11_E15

Number of Paths

Number of Paths

18 17 16 15 14 13 15

20

25

30

35

40

45

50

55

60

10

15

Paths: P11_E18

Number of Paths

Number of Paths

17 16 15 14 13 12 30

35

Planning Period Length

Fig. E.18 Values of Test Problem 12.

P

p∈P

50

20

25

30

35

40

45

50

Paths: P12_E18

18

25

45

Planning Period Length

19

20

40

33 32 31 30 29 28 27 26 25 24 23 22 21 20 19 18

Planning Period Length

15

35

Paths: P12_E15

19

10

30

Planning Period Length

40

45

33 32 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 15

20

25

30

35

40

45

50

Planning Period Length

λp in column generation solutions for Test Problem 11 and

Computational Results (PBSPCC)

318

Runtime:cP13_E12

Columns:cP13_E12 3,500

120.00

Replenish = 0 Replenish = 1

Runtimec(CPUcseconds)

NumbercofcColumns

3,000

Replenish = 2

2,500

Replenish = 3

2,000

Replenish = 4

1,500 1,000 500

100.00 80.00 60.00 40.00 20.00 0.00

0 10

15

20

25

30

35

40

45

10

50

15

20

25

30

35

40

45

50

PlanningcPeriodcLength

PlanningcPeriodcLength

Columns:cP13_E15

Runtime:cP13_E15 200.00

3,500

180.00

3,000

Runtimec(CPUcseconds)

NumbercofcColumns

160.00 2,500 2,000

1,500 1,000 500 0

140.00 120.00 100.00 80.00 60.00 40.00 20.00 0.00

10

15

20

25

30

35

40

45

50

55

60

10

15

20

25

30

35

40

45

50

55

60

PlanningcPeriodcLength

PlanningcPeriodcLength

Columns:cP13_E18

Runtime:cP13_E18

2,500

70.00 60.00

Runtimec(CPUcseconds)

NumbercofcColumns

2,000

1,500

1,000

500

0

50.00 40.00 30.00 20.00 10.00 0.00

15

20

25

30

35

PlanningcPeriodcLength

40

45

15

20

25

30

35

40

45

PlanningcPeriodcLength

Fig. E.19 Column generation performance charts for Test Problem 13. Left: Number of columns generated for TE = 12 (top), TE = 15 (middle), TE = 18 (bottom), all ranging over TR = 0, 1, 2, 3, 4. Right: Runtime performance for TE = 12 (top), TE = 15 (middle), TE = 18 (bottom), all ranging over TR = 0, 1, 2, 3, 4.

E.1 Column Generation Performance

319 Runtime:cP14_E12

Columns:cP14_E12 1,800

18.00

Replenish = 0

16.00

Replenish = 1

1,400

Runtimec(CPUcseconds)

NumbercofcColumns

1,600

Replenish = 2

1,200

Replenish = 3

1,000

Replenish = 4

800 600 400

14.00 12.00 10.00 8.00 6.00 4.00 2.00

200

0.00

0 10

15

20

25

30

35

40

45

10

50

15

20

25

30

35

40

45

50

PlanningcPeriodcLength

PlanningcPeriodcLength

Columns:cP14_E15

Runtime:cP14_E15

2,200

30.00

2,000 25.00

Runtimec(CPUcseconds)

NumbercofcColumns

1,800 1,600 1,400 1,200 1,000 800 600 400 200 0

20.00 15.00 10.00 5.00 0.00

10

15

20

25

30

35

40

45

50

55

10

60

15

20

PlanningcPeriodcLength

25

30

35

40

45

50

55

60

PlanningcPeriodcLength

Runtime:cP14_E18

Columns:cP14_E18 25.00

1,800

20.00

1,400

Runtimec(CPUcseconds)

NumbercofcColumns

1,600

1,200 1,000 800 600 400 200

15.00

10.00

5.00

0.00

0 15

20

25

30

35

PlanningcPeriodcLength

40

45

15

20

25

30

35

40

45

PlanningcPeriodcLength

Fig. E.20 Column generation performance charts for Test Problem 14. Left: Number of columns generated for TE = 12 (top), TE = 15 (middle), TE = 18 (bottom), all ranging over TR = 0, 1, 2, 3, 4. Right: Runtime performance for TE = 12 (top), TE = 15 (middle), TE = 18 (bottom), all ranging over TR = 0, 1, 2, 3, 4.

Computational Results (PBSPCC)

320 Paths: P13_E12

Paths: P14_E12

24

19

Number of Paths

Number of Paths

23 22 21 20 Replenish = 0

19

Replenish = 1

18

18 17 16 15

Replenish = 2

17

Replenish = 3

16

14

Replenish = 4

15

13 10

15

20

25

30

35

40

45

50

55

60

10

15

20

25

Planning Period Length

30

35

40

45

50

Planning Period Length

Paths: P13_E15

Paths: P14_E15 13

19

Number of Paths

Number of Paths

18 17 16 15

12

11

10 14 13

9 10

15

20

25

30

35

40

45

50

55

60

10

15

20

25

30

35

40

45

50

55

60

Planning Period Length

Planning Period Length

Paths: P13_E18

Paths: P14_E18

18

11

Number of Paths

Number of Paths

17 16 15 14

10

9

8 13 12

7 15

20

25

30

35

Planning Period Length

Fig. E.21 Values of Test Problem 14.

P

p∈P

40

45

15

20

25

30

35

40

45

Planning Period Length

λp in column generation solutions for Test Problem 13 and

E.1 Column Generation Performance

321 Runtime:)P15_E13

Columns:)P15_E13 300

0.45 0.40

Runtime)(CPU)seconds)

Number)of)Columns

250 200 150

Replenish = 0 Replenish = 1

100

Replenish = 2 Replenish = 3

50

0.35 0.30 0.25 0.20 0.15 0.10 0.05

Replenish = 4 0

0.00 10

15

20

25

30

35

40

45

50

55

10

15

20

25

Planning)Period)Length

30

35

40

45

50

55

55

60

Planning)Period)Length

Columns:)P15_E15

Runtime:)P15_E15

500

1.40

450

1.20

Runtime)(CPU)seconds)

Number)of)Columns

400 350 300 250 200 150 100 50

1.00 0.80

0.60 0.40 0.20 0.00

0 10

15

20

25

30

35

40

45

50

55

10

60

15

20

Planning)Period)Length

30

35

40

45

50

Planning)Period)Length

Runtime:)P15_E18

Columns:)P15_E18 0.80

300

0.70

Runtime)(CPU)seconds)

250

Number)of)Columns

25

200 150 100 50

0.60 0.50 0.40 0.30 0.20 0.10 0.00

0 15

20

25

30

35

Planning)Period)Length

40

45

15

20

25

30

35

40

45

Planning)Period)Length

Fig. E.22 Column generation performance charts for Test Problem 15. Left: Number of columns generated for TE = 13 (top), TE = 15 (middle), TE = 18 (bottom), all ranging over TR = 0, 1, 2, 3, 4. Right: Runtime performance for TE = 12 (top), TE = 15 (middle), TE = 18 (bottom), all ranging over TR = 0, 1, 2, 3, 4.

Computational Results (PBSPCC)

322

Runtime:cP16_E12

Columns:cP16_E12 35.00

1,800

Replenish = 0

1,600

Replenish = 1

1,400

Replenish = 2

1,200

Replenish = 3

1,000

Replenish = 4

Runtimec(CPUcseconds)

NumbercofcColumns

2,000

800 600 400

30.00 25.00 20.00 15.00 10.00 5.00

200

0.00

0 10

15

20

25

30

35

40

45

10

50

15

20

25

30

35

40

45

50

PlanningcPeriodcLength

PlanningcPeriodcLength

Columns:cP16_E15

Runtime:cP16_E15

3,000

90.00 80.00

Runtimec(CPUcseconds)

NumbercofcColumns

2,500 2,000 1,500 1,000 500 0

70.00 60.00 50.00 40.00 30.00 20.00 10.00 0.00

10

15

20

25

30

35

40

45

50

55

60

10

15

20

PlanningcPeriodcLength

30

35

40

45

50

55

60

PlanningcPeriodcLength

Runtime:cP16_E18

Columns:cP16_E18 1,400

16.00

1,200

14.00

Runtimec(CPUcseconds)

NumbercofcColumns

25

1,000 800 600 400 200

12.00 10.00 8.00 6.00 4.00 2.00 0.00

0 15

20

25

30

35

PlanningcPeriodcLength

40

45

15

20

25

30

35

40

45

PlanningcPeriodcLength

Fig. E.23 Column generation performance charts for Test Problem 16. Left: Number of columns generated for TE = 12 (top), TE = 15 (middle), TE = 18 (bottom), all ranging over TR = 0, 1, 2, 3, 4. Right: Runtime performance for TE = 12 (top), TE = 15 (middle), TE = 18 (bottom), all ranging over TR = 0, 1, 2, 3, 4.

E.1 Column Generation Performance

323 Paths: P16_E12 13

14

12

Number of Paths

Number of Paths

Paths: P15_E13 15

13 12 Replenish = 0 11

Replenish = 1 Replenish = 2

10

Replenish = 3

9

11 10 9 8

Replenish = 4 8

7 10

15

20

25

30

35

40

45

50

55

10

15

20

25

Planning Period Length

30

35

40

45

50

Planning Period Length

Paths: P15_E15

Paths: P16_E15 11

10.5

Number of Paths

Number of Paths

10 9.5 9 8.5 8

10

9

8

7.5

7

7 10

15

20

25

30

35

40

45

50

55

10

60

15

20

Planning Period Length

30

35

40

45

50

55

60

Planning Period Length

Paths: P15_E18

Paths: P16_E18

8

11

Number of Paths

Number of Paths

25

7

6

10

9

8

5

7

15

20

25

30

35

Planning Period Length

Fig. E.24 Values of Test Problem 16.

P

p∈P

40

45

15

20

25

30

35

40

45

Planning Period Length

λp in column generation solutions for Test Problem 15 and

Computational Results (PBSPCC)

324

Runtime:cP17_E12

Columns:cP17_E12 3,000

50.00

Replenish = 0

45.00

Replenish = 1

Runtimec(CPUcseconds)

NumbercofcColumns

2,500

Replenish = 2 2,000

Replenish = 3 Replenish = 4

1,500 1,000 500

40.00 35.00 30.00 25.00 20.00 15.00 10.00 5.00 0.00

0 10

15

20

25

30

35

40

45

10

50

15

20

25

30

35

40

45

50

PlanningcPeriodcLength

PlanningcPeriodcLength

Columns:cP17_E15

Runtime:cP17_E15

2,500

70.00 60.00

Runtimec(CPUcseconds)

NumbercofcColumns

2,000

1,500

1,000

500

0

50.00 40.00 30.00 20.00 10.00 0.00

10

15

20

25

30

35

40

45

50

55

10

60

15

20

PlanningcPeriodcLength

30

35

40

45

50

55

60

PlanningcPeriodcLength

Runtime:cP17_E18

Columns:cP17_E18 3,000

60.00

2,500

50.00

Runtimec(CPUcseconds)

NumbercofcColumns

25

2,000 1,500 1,000 500

40.00 30.00 20.00 10.00 0.00

0 15

20

25

30

35

PlanningcPeriodcLength

40

45

15

20

25

30

35

40

45

PlanningcPeriodcLength

Fig. E.25 Column generation performance charts for Test Problem 17. Left: Number of columns generated for TE = 12 (top), TE = 15 (middle), TE = 18 (bottom), all ranging over TR = 0, 1, 2, 3, 4. Right: Runtime performance for TE = 12 (top), TE = 15 (middle), TE = 18 (bottom), all ranging over TR = 0, 1, 2, 3, 4.

E.1 Column Generation Performance

325 Runtime:cP18_E12

Columns:cP18_E12 600

3.50

Replenish = 0 Replenish = 1

Runtimec(CPUcseconds)

NumbercofcColumns

500

Replenish = 2 400

Replenish = 3 Replenish = 4

300 200 100

3.00 2.50 2.00 1.50 1.00 0.50 0.00

0 10

15

20

25

30

35

40

45

10

50

15

20

25

Columns:cP18_E15

40

45

50

4.50 4.00

Runtimec(CPUcseconds)

600

NumbercofcColumns

35

Runtime:cP18_E15

700

500 400 300 200 100 0

3.50 3.00 2.50 2.00 1.50 1.00 0.50 0.00

10

15

20

25

30

35

40

45

50

55

10

60

15

20

PlanningcPeriodcLength

25

30

35

40

45

50

55

60

PlanningcPeriodcLength

Runtime:cP18_E18

Columns:cP18_E18 1.20

400 350

1.00

300

Runtimec(CPUcseconds)

NumbercofcColumns

30

PlanningcPeriodcLength

PlanningcPeriodcLength

250 200 150 100 50

0.80 0.60 0.40 0.20 0.00

0 15

20

25

30

35

PlanningcPeriodcLength

40

45

15

20

25

30

35

40

45

PlanningcPeriodcLength

Fig. E.26 Column generation performance charts for Test Problem 18. Left: Number of columns generated for TE = 12 (top), TE = 15 (middle), TE = 18 (bottom), all ranging over TR = 0, 1, 2, 3, 4. Right: Runtime performance for TE = 12 (top), TE = 15 (middle), TE = 18 (bottom), all ranging over TR = 0, 1, 2, 3, 4.

Computational Results (PBSPCC)

326 Paths: P17_E12

Paths: P18_E12 12

16

Number of Paths

Number of Paths

17

15 14

Replenish = 0 Replenish = 1

13

11

10

9

Replenish = 2 8

Replenish = 3

12

Replenish = 4 11

7 10

15

20

25

30

35

40

45

50

55

10

60

15

20

25

Planning Period Length

Paths: P17_E15

35

40

45

50

Paths: P18_E15 9

13

12

Number of Paths

Number of Paths

30

Planning Period Length

11

8

7

10

6

9 10

15

20

25

30

35

40

45

50

55

10

60

15

20

Planning Period Length

30

35

40

45

50

55

60

Planning Period Length

Paths: P17_E18

Paths: P18_E18

12

8

11

Number of Paths

Number of Paths

25

10

7

6

9

8

5

15

20

25

30

35

Planning Period Length

Fig. E.27 Values of Test Problem 18.

P

p∈P

40

45

15

20

25

30

35

40

45

Planning Period Length

λp in column generation solutions for Test Problem 17 and

E.1 Column Generation Performance

327 Runtime:cP19_E12

Columns:cP19_E12 3,500

180.00

Replenish = 0

160.00

Replenish = 1

Runtimec(CPUcseconds)

NumbercofcColumns

3,000

Replenish = 2

2,500

Replenish = 3

2,000

Replenish = 4

1,500 1,000 500

140.00 120.00 100.00 80.00 60.00 40.00 20.00 0.00

0 10

15

20

25

30

35

40

45

10

50

15

20

25

30

35

40

45

50

PlanningcPeriodcLength

PlanningcPeriodcLength

Columns:cP19_E15

Runtime:cP19_E15

4,000

250.00

200.00

3,000

Runtimec(CPUcseconds)

NumbercofcColumns

3,500

2,500 2,000 1,500 1,000 500 0

150.00

100.00

50.00

0.00

10

15

20

25

30

35

40

45

50

55

60

10

15

20

PlanningcPeriodcLength

25

30

35

40

45

50

55

60

PlanningcPeriodcLength

Runtime:cP19_E18

Columns:cP19_E18 70.00

2,000 1,800

60.00

Runtimec(CPUcseconds)

NumbercofcColumns

1,600 1,400 1,200 1,000 800 600 400 200

50.00 40.00 30.00 20.00 10.00 0.00

0 15

20

25

30

35

PlanningcPeriodcLength

40

45

15

20

25

30

35

40

45

PlanningcPeriodcLength

Fig. E.28 Column generation performance charts for Test Problem 19. Left: Number of columns generated for TE = 12 (top), TE = 15 (middle), TE = 18 (bottom), all ranging over TR = 0, 1, 2, 3, 4. Right: Runtime performance for TE = 12 (top), TE = 15 (middle), TE = 18 (bottom), all ranging over TR = 0, 1, 2, 3, 4.

Computational Results (PBSPCC)

328

Runtime:cP20_E12

Columns:cP20_E12 250

0.45

Replenish = 0

Runtimec(CPUcseconds)

NumbercofcColumns

0.40

Replenish = 1

200

Replenish = 2 Replenish = 3

150

Replenish = 4 100

50

0.35 0.30 0.25 0.20 0.15 0.10 0.05 0.00

0 10

15

20

25

30

35

40

45

10

50

15

20

25

35

40

45

50

Runtime:cP20_E15

180

0.45

160

0.40

140

0.35

Runtimec(CPUcseconds)

NumbercofcColumns

Columns:cP20_E15

120 100 80 60 40 20

0.30 0.25 0.20 0.15 0.10 0.05 0.00

0 10

15

20

25

30

35

40

45

50

55

60

10

15

20

PlanningcPeriodcLength

25

30

35

40

45

50

55

60

PlanningcPeriodcLength

Columns:cP20_E18

Runtime:cP20_E18

140

0.60

120

0.50

Runtimec(CPUcseconds)

NumbercofcColumns

30

PlanningcPeriodcLength

PlanningcPeriodcLength

100 80 60 40 20 0

0.40 0.30 0.20 0.10 0.00

15

20

25

30

35

PlanningcPeriodcLength

40

45

15

20

25

30

35

40

45

PlanningcPeriodcLength

Fig. E.29 Column generation performance charts for Test Problem 20. Left: Number of columns generated for TE = 12 (top), TE = 15 (middle), TE = 18 (bottom), all ranging over TR = 0, 1, 2, 3, 4. Right: Runtime performance for TE = 12 (top), TE = 15 (middle), TE = 18 (bottom), all ranging over TR = 0, 1, 2, 3, 4.

E.1 Column Generation Performance

329

Paths: P19_E12

Paths: P20_E12

24

13

Number of Paths

Number of Paths

23 22 21 20 19

Replenish = 0

18

Replenish = 1

17

Replenish = 2

16

Replenish = 3

15

12

11

10

9

Replenish = 4

14

8 10

15

20

25

30

35

40

45

50

55

60

10

15

20

25

Planning Period Length

30

35

40

45

50

Planning Period Length

Paths: P19_E15

Paths: P20_E15 10

21

Number of Paths

Number of Paths

20 19 18 17 16

9

8

7

15 14

6

10

15

20

25

30

35

40

45

50

55

10

60

15

20

Planning Period Length

25

30

35

40

45

50

55

60

Planning Period Length

Paths: P20_E18

Paths: P19_E18 8

23

21

Number of Paths

Number of Paths

22

20 19 18 17

7

6

16 15

5

14 15

20

25

30

35

Planning Period Length

Fig. E.30 Values of Test Problem 20.

P

p∈P

40

45

15

20

25

30

35

40

45

Planning Period Length

λp in column generation solutions for Test Problem 19 and

Computational Results (PBSPCC)

330

E.2

Comparison of Column Generation Strategies

Tables E.1, E.2 and E.3 display the results for the five column generation approaches listed in Table 5.2, Section 5.2.4. The results are summarized in terms of the number of columns generated at the root node (Col.) and the CPU time in seconds (Ti.). For each problem instance, the best result across the five approaches is highlighted in boldface red font for the number of columns generated and in boldface blue font for the CPU time. The five column generation approaches are summarized as follows: • C1: Greedy Shortest Path Heuristic (GSPH) and a Big M artificial variable for the seed columns, non-patrol time objective function, multiple negative reduced cost paths returned at each call to the subproblem. • C2: GSPH and Big M , non-patrol time objective function, single least negative reduced cost path returned. • N1: GSPH and Big M , fleet size objective function, multiple negative reduced cost paths returned. • N2: GSPH and Big M , fleet size objective function, single least negative reduced cost path returned. • N3: Single Big M artificial variable for the seed column, fleet size objective function, single least negative reduced cost path returned.2 The root node solutions for the minimum non-patrol time formulation (C) and the minimum fleet size formulation (N) are given in Tables E.4, E.5 and E.6. By root node solution, we mean the solution of the final primal linear program upon termination of the column generation procedure. The values given for the output data were returned from the solver correct to one decimal place. The headings used in these tables are summarized as follows: • • • • • •

Re. – Replenishment time, Tr. – Transit time, Po. – Port time, N.Pa. – Non-patrol time, Pa. – Patrol time, Bo. – Number of patrol boats.

Recall that the problem instances are summarized in Table 5.3. The computational tests were conducted using a 2.70 GHz dual-core processor on a 32-bit Operating System with 4.00 GB of RAM. All primal and dual solutions to the linear 2

A Big M value of 100, 000 is used in each case.

E.2 Comparison of Column Generation Strategies

331

programs were obtained with CPLEX 12.6. The column generation and shortest path algorithms, along with the required data structures for the master problem and the RST network, were coded using the Java programming language and the Eclipse Integrated Development Environment (IDE). In all but a few cases, strategy C1 outperforms the other strategies in terms of the CPU time. On the problem instances in which C1 does not give the best runtime, it is narrowly outperformed by C2. Strategy C2 consistently shows better CPU time performance than N1 over the range of test problem instances, with only a handful of cases in which N1 outperforms C2. The CPU time for strategy N1 is always better than that of N2 and N3. These last two strategies demonstrate significantly degraded performance over the range of test problem instances, especially on largescale problems with long planning horizons. It can be seen from Tables E.1 − E.3 that C1 is the most efficient strategy over the range of test problems in terms of the number of columns generated at the root node. On this criterion, strategy C1 demonstrates the best performance on approximately two thirds of the problem instances. On the problem instances for which C1 does not generate the least number of columns, it is marginally outperformed by strategy C2. Strategies N1, N2 and N3 exhibit comparable results over the range of test problems, generating many more columns at the root node than C1 and C2.

332

Table E.1 Results CG1_a − CG7_b for the number of generated columns and root node runtime. Inst.

94 308 674 141 210 164 181 119 255 85 70 138 56 73 252 573 558 137 253 180 525 190 577 308 841 247 808 356 879

108 318 1,094 119 246 155 172 111 259 115 39 113 54 76 304 772 573 137 284 204 552 202 589 283 851 264 811 319 966

156 844 1,050 324 894 425 901 245 912 216 100 274 64 140 672 1,670 1,403 867 2,974 528 1,499 646 1,641 790 2,349 887 2,739 937 2,035

155 722 983 259 702 381 879 201 662 195 69 209 73 118 645 1,644 1,362 906 3,191 477 1,344 517 1,485 762 2,135 774 2,575 588 1,883

291 1,052 3,185 519 1,167 498 1,268 311 990 314 171 384 126 252 1,118 2,733 1,573 1,068 3,494 673 1,633 736 1,788 970 2,525 1,113 2,954 880 2,138

C1.Ti. C2.Ti. 0.2 1.5 14.3 0.6 1.7 0.8 1.9 0.2 1.1 0.4 0.1 0.3 0.1 0.3 1.8 9.9 2.9 1.7 6.3 0.7 2.8 0.7 3.9 1.6 9.1 1.5 11.7 1.4 6.8

0.3 3.1 93.7 0.9 3.9 1.6 3.1 0.3 2.2 1.0 0.1 0.5 0.1 0.4 4.1 39.6 6.0 2.8 13.2 1.5 6.0 1.2 7.8 2.4 16.2 2.6 17.9 2.2 18.2

N1.Ti.

N2.Ti.

N3.Ti.

0.3 5.7 19.3 1.5 10.5 2.6 11.5 0.5 5.7 1.1 0.1 0.8 0.2 0.5 5.2 36.6 9.8 11.6 213.6 1.5 10.4 2.3 15.5 4.0 33.3 4.8 62.9 4.5 23.4

0.5 15.1 48.1 2.1 21.5 3.5 27.3 0.6 8.6 2.1 0.1 1.1 0.2 0.6 9.9 125.1 29.0 26.3 896.3 2.5 28.2 3.1 40.3 6.7 108.1 8.1 155.9 4.5 63.1

0.8 16.1 5,071.1 3.8 40.7 3.7 41.9 0.7 11.1 1.7 0.2 1.3 0.2 0.8 33.0 1,012.4 28.1 31.9 918.9 4.1 34.5 5.1 54.4 9.7 173.5 15.9 249.4 7.6 91.1

Computational Results (PBSPCC)

CG1_a CG1_b CG1_c CG1_d CG1_e CG1_f CG1_g CG2_a CG2_b CG2_c CG3_a CG3_b CG3_c CG3_d CG4_a CG4_b CG5_a CG5_b CG5_c CG6_a CG6_b CG6_c CG6_d CG6_e CG6_f CG6_g CG6_h CG7_a CG7_b

C1.Col. C2.Col. N1.Col. N2.Col. N3.Col.

Inst.

390 1,139 473 1,686 134 233 159 511 329 831 216 537 1,587 837 5,179 202 758 642 375 1,086 249 1,006 155 354 237 499 422 1,298 1,060

411 1,280 463 2,054 127 254 196 738 334 1,056 285 557 1,718 879 5,342 232 823 810 397 1,200 247 1,012 149 362 236 543 399 1,322 1,262

962 2,589 1,617 4,182 388 1,022 532 1,647 1,287 4,482 1,128 1,801 5,077 2,134 6,669 747 2,670 3,061 1,036 2,860 999 2,833 522 1,623 894 2,753 2,109 6,166 2,614

855 2,524 1,316 4,104 311 975 456 1,674 1,538 4,745 1,084 1,632 5,417 2,091 6,615 691 2,577 3,262 1,000 2,860 843 2,816 509 1,654 968 2,915 2,311 7,032 2,826

1,093 3,014 1,594 4,842 429 1,215 717 2,182 1,665 5,510 1,277 1,900 6,276 2,511 7,249 911 3,015 3,503 1,175 3,393 1,043 3,220 703 2,121 1,102 3,504 2,406 7,751 3,210

C1.Ti.

C2.Ti.

N1.Ti.

N2.Ti.

N3.Ti.

2.0 14.1 4.0 39.3 0.4 1.1 0.7 4.0 2.6 12.9 2.7 3.8 50.5 6.2 696.6 1.2 8.7 8.9 1.5 12.7 1.3 11.0 0.7 2.4 1.5 5.7 3.6 29.7 7.6

4.3 38.2 7.6 102.7 0.6 2.1 1.5 15.9 4.2 35.3 6.6 10.0 102.1 16.5 5,649.5 2.3 16.8 22.7 3.0 34.0 1.8 20.7 0.9 4.8 2.1 11.2 5.8 77.6 14.7

5.3 8.9 13.7 57.5 163.4 280.0 17.4 25.7 46.6 261.6 980.3 1,899.2 0.9 1.5 2.2 6.6 18.0 22.5 2.3 4.0 7.8 24.5 80.7 139.7 11.6 39.9 41.0 271.8 1,142.7 2,051.4 17.7 41.6 64.9 16.1 41.7 50.3 502.9 1,285.0 2,911.0 27.4 109.2 187.6 1,009.0 6,012.2 6,661.6 4.6 7.5 28.0 50.6 169.4 330.4 159.4 323.8 1,305.3 5.2 11.8 16.5 59.3 236.9 504.7 5.5 11.0 14.5 58.8 224.0 410.3 2.1 5.8 8.1 23.6 101.6 208.7 5.4 16.7 25.8 74.5 391.7 828.4 36.0 94.8 184.7 662.3 5,296.7 7,435.4 30.9 68.9 123.4

333

CG7_c CG7_d CG7_e CG7_f CG8_a CG8_b CG8_c CG8_d CG8_e CG8_f CG8_g CG9_a CG9_b CG10_a CG10_b CG10_c CG10_d CG10_e CG11_a CG11_b CG11_c CG11_d CG12_a CG12_b CG12_c CG12_d CG12_e CG12_f CG13_a

C1.Col. C2.Col. N1.Col. N2.Col. N3.Col.

E.2 Comparison of Column Generation Strategies

Table E.2 Results CG7_c − CG13_a for the number of generated columns and root node runtime.

334

Table E.3 Results CG13_b − CG20_c for the number of generated columns and root node runtime. Inst.

1,369 4,021 281 1,121 2,441 771 227 229 585 139 430 131 344 1,045 1,576 555 3,892 344 596 146 695 145 379 1,546 1,446 739 130 62 73

1,882 4,989 274 1,079 2,399 1,564 203 235 642 154 621 117 369 1,121 1,333 928 4,423 49 509 166 740 134 406 1,689 1,649 822 83 55 68

3,184 6,316 485 1,231 2,330 1,379 322 755 853 499 1,280 722 456 1,444 2,615 1,410 5,404 1,278 891 807 1,461 526 952 3,549 5,118 3,071 334 146 176

2,237 6,062 453 1,205 2,358 1,468 337 699 834 471 1,280 804 433 1,527 1,821 1,520 5,392 1,239 961 559 1,518 543 938 3,555 5,272 2,923 177 135 215

3,418 6,861 644 1,385 2,683 1,846 525 941 1,001 564 1,457 947 547 1,691 3,145 1,613 5,720 1,474 1,100 923 1,780 850 1,280 4,061 5,792 3,194 371 276 306

C1.Ti. C2.Ti.

N1.Ti.

N2.Ti.

35.9 902.3 1.0 10.2 78.2 25.3 1.2 2.9 4.3 0.8 6.6 1.4 1.6 13.6 20.9 14.6 862.7 1.1 3.7 1.3 13.4 2.4 3.2 50.3 55.1 18.8 0.2 0.3 0.6

65.0 868.6 1.0 6.1 37.7 11.5 1.6 8.6 2.7 1.5 9.3 6.7 1.1 10.5 40.0 16.7 683.9 29.8 4.2 5.5 23.0 8.1 5.3 103.5 401.0 74.4 0.7 0.7 1.0

74.8 255.6 3,767.5 4,015.2 1.7 2.5 18.2 17.9 121.4 146.9 22.1 37.4 3.0 3.3 13.9 17.6 8.8 10.7 3.1 3.4 25.9 32.3 16.6 25.7 2.1 3.2 31.9 39.9 46.3 142.0 45.1 47.5 2,820.4 3,035.4 69.8 109.4 15.4 13.7 4.6 12.6 68.1 63.2 16.3 24.0 14.3 28.8 594.3 848.2 2,169.6 2,414.2 173.7 300.1 0.7 0.9 0.8 1.1 1.6 1.8

13.3 225.3 0.7 6.1 34.5 3.8 1.2 2.2 2.0 0.5 2.9 1.1 1.0 6.0 21.5 5.9 334.4 6.0 2.4 0.7 7.4 2.0 1.7 20.6 23.0 8.9 0.2 0.3 0.6

N3.Ti.

Computational Results (PBSPCC)

CG13_b CG13_c CG14_a CG14_b CG14_c CG14_d CG15_a CG15_b CG16_a CG16_b CG16_c CG16_d CG17_a CG17_b CG17_c CG17_d CG17_e CG17_f CG18_a CG18_b CG18_c CG18_d CG19_a CG19_b CG19_c CG19_d CG20_a CG20_b CG20_c

C1.Col. C2.Col. N1.Col. N2.Col. N3.Col.

C.Re.

C.Tr.

CG1_a CG1_b CG1_c CG1_d CG1_e CG1_f CG1_g CG2_a CG2_b CG2_c CG3_a CG3_b CG3_c CG3_d CG4_a CG4_b CG5_a CG5_b CG5_c CG6_a CG6_b CG6_c CG6_d CG6_e CG6_f CG6_g CG6_h CG7_a CG7_b

0.0 0.0 192.0 40.0 80.0 0.0 0.0 0.0 0.0 0.0 78.9 158.8 0.0 0.0 34.0 68.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 14.5 30.1 0.0 0.0 39.8 83.5

59.7 178.0 288.0 59.0 119.4 48.0 95.6 47.7 96.0 20.0 62.3 126.3 16.0 31.8 135.5 269.0 74.5 20.0 39.4 44.7 97.2 44.3 94.8 44.4 95.5 41.8 86.3 56.8 126.6

C.Po. C.N.Pa. C.Pa. C.Bo. 0.3 2.0 0.0 1.0 0.6 0.0 0.4 0.3 0.0 0.0 2.8 2.9 0.0 0.2 0.5 3.0 0.0 0.0 0.6 0.4 0.4 0.0 0.0 0.5 0.2 0.0 0.5 0.0 0.2

60.0 180.0 480.0 100.0 200.0 48.0 96.0 48.0 96.0 20.0 144.0 288.0 16.0 32.0 170.0 340.0 74.5 20.0 40.0 45.1 97.6 44.3 94.8 59.4 125.8 41.8 86.8 96.6 210.3

100.0 300.0 576.0 180.0 360.0 176.0 352.0 96.0 192.0 130.0 96.0 192.0 56.0 112.0 255.0 510.0 218.0 204.0 408.0 143.8 297.7 154.0 319.6 187.0 385.7 198.0 413.1 182.0 374.0

10.0 10.0 12.0 10.0 10.0 8.0 8.0 6.0 6.0 5.0 8.0 8.0 4.0 4.0 17.0 17.0 9.8 8.0 8.0 14.5 15.2 14.2 14.8 14.5 15.0 13.3 13.9 19.9 20.9

N.Re.

N.Tr.

N.Po.

N.N.Pa.

N.Pa.

N.Bo.

0.0 0.0 193.5 40.0 79.4 0.0 0.0 0.0 0.0 0.0 80.3 159.0 0.0 0.0 32.9 67.3 0.0 0.0 0.0 0.0 0.0 0.0 0.0 14.5 29.7 0.0 0.0 38.8 82.4

60.2 185.3 318.4 63.5 136.1 49.5 107.5 47.3 95.9 26.0 64.7 127.9 15.0 33.7 136.1 274.8 77.1 27.2 55.1 44.7 103.0 44.3 100.0 43.9 100.9 41.8 91.5 56.8 130.6

0.4 2.9 7.2 1.5 2.6 0.0 0.2 0.7 0.1 0.0 2.5 10.4 2.0 1.1 3.7 5.8 0.3 0.5 0.4 0.4 0.2 0.0 0.0 1.0 0.2 0.0 0.0 1.0 0.6

60.6 188.2 519.2 104.9 218.1 49.5 107.7 48.0 96.0 26.0 147.5 297.3 17.0 34.8 172.6 347.9 77.3 27.6 55.5 45.1 103.2 44.3 100.0 59.4 130.8 41.8 91.5 96.6 213.6

99.4 291.8 536.8 175.1 341.9 174.5 340.3 96.0 192.0 124.0 92.5 182.7 55.0 109.2 252.4 502.1 210.2 196.4 392.5 143.0 286.7 154.0 308.3 187.0 374.2 198.0 396.3 182.0 364.6

10.0 10.0 12.0 10.0 10.0 8.0 8.0 6.0 6.0 5.0 8.0 8.0 4.0 4.0 17.0 17.0 9.6 8.0 8.0 14.5 15.0 14.2 14.6 14.5 14.9 13.3 13.6 19.9 20.7

335

Inst.

E.2 Comparison of Column Generation Strategies

Table E.4 Solution summary for CG1_a − CG7_b.

336

Table E.5 Solution summary for CG7_c − CG13_a. C.Re.

C.Tr.

CG7_c CG7_d CG7_e CG7_f CG8_a CG8_b CG8_c CG8_d CG8_e CG8_f CG8_g CG9_a CG9_b CG10_a CG10_b CG10_c CG10_d CG10_e CG11_a CG11_b CG11_c CG11_d CG12_a CG12_b CG12_c CG12_d CG12_e CG12_f CG13_a

37.4 76.8 34.5 70.7 0.0 0.0 56.0 111.8 22.0 44.0 48.0 0.0 108.6 36.7 256.0 0.0 0.0 65.3 30.0 61.3 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 53.9

53.9 118.8 50.0 104.4 22.3 44.0 28.0 56.0 22.0 44.0 24.0 82.9 84.9 169.6 294.6 71.6 146.3 73.3 38.0 85.3 34.3 69.7 39.1 79.0 37.0 76.0 35.6 71.9 50.9

C.Po. C.N.Pa. C.Pa. C.Bo. 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.2 0.0 0.0 0.0 0.3 0.0 1.3 1.4 0.4 1.1 0.0 0.0 0.0 0.0 0.0 0.9 1.0 1.0 0.0 0.4 0.1 0.0

91.4 195.6 84.5 175.1 22.3 44.0 84.0 168.0 44.0 88.0 72.0 83.2 193.5 207.6 552.0 72.0 147.4 138.7 68.1 146.7 34.3 69.7 40.0 80.0 38.0 76.0 36.0 72.0 104.8

208.0 418.8 260.0 532.1 109.7 220.0 168.0 336.0 198.0 396.0 288.0 306.2 566.6 416.7 728.0 232.0 467.9 384.0 187.2 374.7 176.0 360.0 200.0 400.0 228.0 456.0 288.0 576.0 231.9

18.7 19.2 17.2 17.7 11.0 11.0 14.0 14.0 11.0 11.0 12.0 13.0 13.6 18.4 21.3 16.0 16.2 16.4 15.0 15.3 13.1 13.4 20.0 20.0 19.0 19.0 18.0 18.0 13.5

N.Re.

N.Tr.

N.Po.

N.N.Pa.

N.Pa.

N.Bo.

36.2 76.7 34.4 69.9 0.0 0.0 56.0 111.5 21.8 44.0 48.0 0.0 108.1 36.2 256.0 0.0 0.0 63.6 29.7 61.2 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 53.0

53.9 120.7 50.0 109.5 24.0 47.9 32.2 67.3 21.3 44.0 40.3 86.1 88.7 172.2 302.0 74.6 150.7 72.6 37.5 86.0 34.3 74.5 45.9 94.2 40.9 83.6 35.8 71.2 53.0

1.2 0.4 0.2 0.3 0.0 0.0 0.8 0.7 0.8 0.0 0.9 0.4 0.1 1.3 1.4 0.7 1.1 3.1 0.9 0.2 0.0 0.0 0.1 1.4 0.5 0.2 0.2 0.8 0.0

91.4 197.7 84.5 179.6 24.0 47.9 89.0 179.6 44.0 88.0 89.1 86.5 197.0 209.7 559.4 75.2 151.8 139.3 68.2 147.4 34.3 74.5 46.0 95.6 41.4 83.8 36.0 72.0 106.0

208.0 416.7 260.0 520.4 108.0 216.1 163.0 324.4 198.0 396.0 270.9 300.3 560.1 408.2 720.6 228.8 456.4 384.0 187.0 374.0 176.0 352.2 194.0 384.4 224.6 448.2 288.0 576.0 225.0

18.7 19.2 17.2 17.5 11.0 11.0 14.0 14.0 11.0 11.0 12.0 12.9 13.5 18.2 21.3 16.0 16.0 16.4 15.0 15.3 13.1 13.3 20.0 20.0 19.0 19.0 18.0 18.0 13.2

Computational Results (PBSPCC)

Inst.

C.Re.

C.Tr.

CG13_b CG13_c CG14_a CG14_b CG14_c CG14_d CG15_a CG15_b CG16_a CG16_b CG16_c CG16_d CG17_a CG17_b CG17_c CG17_d CG17_e CG17_f CG18_a CG18_b CG18_c CG18_d CG19_a CG19_b CG19_c CG19_d CG20_a CG20_b CG20_c

50.4 106.7 18.4 37.7 56.6 29.7 20.0 0.0 143.8 0.0 32.8 0.0 20.4 42.0 33.1 32.0 66.7 0.0 45.6 22.0 45.3 0.0 51.0 103.1 62.2 61.3 54.0 25.0 0.0

49.2 119.3 48.4 112.0 175.7 34.9 83.9 67.6 103.5 22.9 24.4 22.0 47.3 105.3 34.5 34.0 78.7 33.0 119.3 23.0 53.6 44.0 42.0 92.8 78.2 38.7 214.5 40.0 32.0

C.Po. C.N.Pa. C.Pa. C.Bo. 0.0 0.0 0.0 0.0 0.0 0.0 0.1 0.4 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.5 0.0 0.0

99.6 226.0 66.7 149.7 232.2 64.6 104.0 68.0 247.3 22.9 57.2 22.0 67.7 147.3 67.6 66.0 145.3 33.0 164.9 45.0 98.9 44.0 93.0 195.9 140.4 100.0 270.0 65.0 32.0

253.2 521.1 107.7 208.3 305.1 158.3 186.0 228.0 184.0 96.0 156.0 167.0 115.9 231.0 180.5 206.0 421.3 261.0 199.9 131.0 263.8 316.0 230.0 457.3 544.0 360.0 135.0 120.0 128.0

12.6 13.3 9.2 9.4 9.4 7.4 5.0 4.0 14.4 7.4 8.2 7.0 10.2 10.5 8.3 8.0 8.3 7.0 7.6 5.5 5.7 5.0 17.0 17.2 15.6 15.3 9.0 5.0 4.0

N.Re.

N.Tr.

N.Po.

N.N.Pa.

N.Pa.

N.Bo.

50.0 105.8 17.3 37.1 55.7 28.9 20.0 0.0 143.7 0.0 32.7 0.0 19.7 41.5 33.1 32.0 65.9 0.0 45.6 21.7 44.9 0.0 51.0 103.1 61.1 61.3 53.8 25.0 0.0

50.4 130.6 52.0 125.1 188.3 38.0 93.1 73.0 107.4 22.9 24.4 26.6 49.3 115.4 35.1 35.8 86.4 41.6 125.9 24.0 58.4 68.1 43.6 94.0 83.1 38.6 209.4 43.7 34.5

0.4 0.0 0.0 0.0 0.0 0.1 0.5 0.3 0.0 0.0 0.1 0.0 0.0 0.0 0.0 0.1 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.1 6.8 1.0 0.0

100.9 236.3 69.3 162.2 244.0 67.0 113.6 73.4 251.2 22.9 57.2 26.6 68.9 156.8 68.2 67.9 152.3 41.6 171.5 45.7 103.3 68.1 94.6 197.2 144.2 100.0 270.0 69.7 34.5

252.0 504.1 95.0 190.1 285.1 150.0 176.4 222.6 180.1 96.0 156.0 162.4 108.1 216.3 180.0 204.1 408.0 252.4 193.3 128.0 256.0 291.9 228.4 456.1 528.1 360.0 135.0 115.3 125.5

12.6 13.2 8.6 9.3 9.3 7.2 5.0 4.0 14.4 7.4 8.2 7.0 9.8 10.4 8.3 8.0 8.2 7.0 7.6 5.4 5.6 5.0 17.0 17.2 15.3 15.3 9.0 5.0 4.0

337

Inst.

E.2 Comparison of Column Generation Strategies

Table E.6 Solution summary for CG13_b − CG20_c.

Computational Results (PBSPCC)

338

E.3

Computational Comparison of GSPH with an Alternative Construction Heuristic

A Greedy Shortest Path Heuristic (GSPH) was proffered as a seed column construction procedure in Algorithm 15, Section 5.2.1. However, this was not the only construction heuristic that we examined. In addition to the GSPH, we designed a heuristic based on the random selection of patrol arcs in the RST network. This alternative strategy is called a Random Patrol Arc Selection Shortest Path Heuristic (RPASSPH). The RPASSPH is designed to randomly identify a patrol arc (i, j) ∈ Apatrol in an uncovered patrol period ℓ ∈ L, find shortest paths from s ∈ VR to i ∈ VR and from j ∈ VR to τ ∈ VR , and repeat until all patrol periods are covered. There is, however, an important consideration for the randomized patrol arc selection procedure. A selected patrol arc might not be reachable from the source vertex and/or might not be able to reach the sink vertex. In cases such as these, the selected arc is identified as a prohibited arc and is placed in a list so that it cannot be selected again. The construction heuristic then proceeds to find another patrol arc in an uncovered patrol period which can be reached from the source vertex and from which the sink vertex can be reached. The entire procedure for RPASSPH is described in detail in Algorithm 27. The procedure also references a subroutine for the patrol arc selection process, which is described in Algorithm 26. Algorithm 26 PBSPCC: Get shortest path to/from the tail/head of a patrol arc 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14:

Input: An RST network GR = (VR , AR ), a weight function µ, a source s ∈ VR and sink τ ∈ VR , an arc (i, j) ∈ AR and a list of arcs Atemp procedure S ELECT(GR , µ, s, τ, i, j, Atemp ) (pi , δpi (s, i)) ← DAG-SP(GR , µ, s, i) (pj , δpj (j, τ )) ← DAG-SP(GR , µ, j, τ ) while (pi = NULL) ∨ (pj = NULL) do Atemp ← Atemp ∪ {(i, j)} Randomly select an arc (i, j) ∈ Apatrol \Atemp (pi , δpi (s, i)) ← DAG-SP(GR , µ, s, i) (pj , δpj (j, τ )) ← DAG-SP(GR , µ, j, τ ) end while p ← pi ⊔ (i, j) ⊔ pj ◃ Join pi , (i, j) and pj to create a path p. δp (s, τ ) ← δpi + µij + δpj return (p, δp (s, τ ), Atemp ) end procedure

E.3 Comparison of Seed Column Construction Heuristics

339

Algorithm 27 PBSPCC: Random patrol arc selection shortest path heuristic for column generation initialization 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27:

Input: An RST network GR = (VR , AR ) with source s ∈ VR and sink τ ∈ VR procedure RPASSPH(GR , s, τ ) for (i, j) ∈ AR \Apatrol do µij ← 0 end for for (i, j) ∈ Apatrol do µij ← −T end for P′ ← ∅ Atemp ← ∅ while Apatrol \Atemp ̸= ∅ do Randomly select an arc (i, j) ∈ Apatrol \Atemp (p, δp (s, τ ), Atemp ) ← S ELECT(GR , µ, s, τ, i, j, Atemp ) P ′ ← P ′ ∪ {p} for (u, v) ∈ p do if (u, v) ∈ Apatrol then for (x, y) ∈ Apatrol such that φ(x, y) = φ(u, v) do Atemp ← Atemp ∪ {(x, y)} end for end if end for if Apatrol \Atemp = ∅ then break while end if end while return P ′ end procedure

Computational Results (PBSPCC)

340

We tested the column generation (root node) performance of RPASSPH against GSPH on six separate test problems for a range of planning horizon lengths.3 The test problems considered were 7, 8, 9, 10, 13 and 17 (see Appendix D). By fixing TE = 15 and TR = 4, column generation was performed using both GSPH and RPASSPH by varying the planning horizon length from T = 19 to T = 57 in unit increments over the six test problems. Figure E.31 presents the comparison of the two construction heuristics with charts of the total column generation runtime in CPU seconds versus the planning horizon length. From these charts, the evidence suggests that the two procedures perform comparably when used as construction heuristics for column generation initialization. Comparison1of1Construction1Heuristics:1P07_E15_R4

Comparison1of1Construction1Heuristics:1P08_E15_R4

350

40 Greedy

35

Select

Runtime1(CPU1seconds)

Runtime1(CPU1seconds)

300 250 200 150 100 50

30 25 20 15 10 5

0

0 18

23

28

33 38 43 Planning1Period1Length

48

53

58

18

Comparison1of1Construction1Heuristics:1P09_E15_R4

33 38 43 Planning1Period1Length

48

53

58

Comparison1of1Construction1Heuristics:1P10_E15_R4 40

Runtime1(CPU1seconds)

30

Runtime1(CPU1seconds)

28

45

35

25 20 15 10 5

35 30 25 20 15 10 5

0

0 18

23

28

33 38 43 Planning1Period1Length

48

53

58

18

Comparison1of1Construction1Heuristics:1P13_E15_R4

23

28

33 38 43 Planning1Period1Length

48

53

58

Comparison1of1Construction1Heuristics:1P17_E15_R4 45

120

40

Runtime1(CPU1seconds)

100

Runtime1(CPU1seconds)

23

80 60 40 20

35 30 25 20 15 10 5

0

0 18

23

28

33 38 43 Planning1Period1Length

48

53

58

18

23

28

33 38 43 Planning1Period1Length

48

53

58

Fig. E.31 Computational comparison of the GSPH (Greedy) with RPASSPH (Select). 3

Column generation was performed using the minimum non-patrol time objective function.

E.4 Sensitivity Analysis Results

E.4

341

Sensitivity Analysis Results

This section provides detailed tabulated results pertaining to the sensitivity analyses conducted in Section 5.6. The column headings in Table E.7 through to Table E.12 are as follows: Bo. − the number of patrol boats, Pa. − the aggregate time spent on patrol, N.Pa. − the aggregate time spent on non-patrol activities, E.Pa. − the aggregate excess patrol time, r.Pa. − the fraction of the aggregate patrol time to the minimum patrol time required, r.N.Pa. − the fraction of the aggregate non-patrol time to the minimum patrol time required, t.Pa. − the fraction of the aggregate patrol time to the total time spent on all activities. Table E.7 Sensitivity analysis data for Test Problem 5 with TR = 0. TE

T

Bo.

Pa.

N.Pa.

E.Pa.

r.Pa.

r.N.Pa.

t.Pa.

N.Pa./Pa.

10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35

30 22 24 26 28 30 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35

10 10 10 10 9 9 9 9 9 9 9 9 9 9 9 9 9 9 8 8 8 8 8 8 8 8

215 165 186 205 199 217 116 124 131 142 151 159 167 177 186 194 203 214 196 205 211 220 229 236 244 252

85 55 54 55 53 53 28 29 31 29 29 30 31 30 30 31 31 29 28 27 29 28 27 28 28 28

5 11 18 23 3 7 4 5 5 9 11 12 13 16 18 19 21 25 0 2 1 3 5 5 6 7

102% 107% 111% 113% 102% 103% 104% 104% 104% 107% 108% 108% 108% 110% 111% 111% 112% 113% 100% 101% 100% 101% 102% 102% 103% 103%

40% 36% 32% 30% 27% 25% 25% 24% 25% 22% 21% 20% 20% 19% 18% 18% 17% 15% 14% 13% 14% 13% 12% 12% 12% 11%

72% 75% 78% 79% 79% 80% 81% 81% 81% 83% 84% 84% 84% 86% 86% 86% 87% 88% 88% 88% 88% 89% 89% 89% 90% 90%

40% 33% 29% 27% 27% 24% 24% 23% 24% 20% 19% 19% 19% 17% 16% 16% 15% 14% 14% 13% 14% 13% 12% 12% 11% 11%

Computational Results (PBSPCC)

342

Table E.8 Sensitivity analysis data for Test Problem 5 with TR = 1. TE

T

Bo.

Pa.

N.Pa.

E.Pa.

r.Pa.

r.N.Pa.

t.Pa.

N.Pa./Pa.

10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35

22 24 26 28 30 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36

12 11 11 10 10 10 10 10 10 10 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9

172 182 201 202 224 119 128 139 149 159 152 160 170 179 188 196 205 214 223 232 242 249 258 268 276 285

92 82 85 78 76 41 42 41 41 41 37 38 37 37 37 38 38 38 38 38 37 39 39 38 39 39

18 14 19 6 14 7 9 13 16 19 5 6 9 11 13 14 16 18 20 22 25 25 27 30 31 33

112% 108% 110% 103% 107% 106% 108% 110% 112% 114% 103% 104% 106% 107% 107% 108% 108% 109% 110% 110% 112% 111% 112% 113% 113% 113%

60% 49% 47% 40% 36% 37% 35% 33% 31% 29% 25% 25% 23% 22% 21% 21% 20% 19% 19% 18% 17% 17% 17% 16% 16% 15%

65% 69% 70% 72% 75% 74% 75% 77% 78% 80% 80% 81% 82% 83% 84% 84% 84% 85% 85% 86% 87% 86% 87% 88% 88% 88%

53% 45% 42% 39% 34% 34% 33% 29% 28% 26% 24% 24% 22% 21% 20% 19% 19% 18% 17% 16% 15% 16% 15% 14% 14% 14%

E.4 Sensitivity Analysis Results

343

Table E.9 Sensitivity analysis data for Test Problem 5 with TR = 2. TE

T

Bo.

Pa.

N.Pa.

E.Pa.

r.Pa.

r.N.Pa.

t.Pa.

N.Pa./Pa.

10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35

24 26 28 30 32 34 36 38 40 42 44 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37

12 12 11 11 11 10 10 10 10 10 10 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9

176 200 204 226 248 243 266 285 302 323 344 161 169 179 188 197 205 213 222 231 239 247 256 266 274 285

112 112 104 104 104 97 94 95 98 97 96 46 47 46 46 46 47 48 48 48 49 50 50 49 50 48

8 18 8 16 24 5 14 19 22 29 36 0 1 4 6 8 9 10 12 14 15 16 18 21 22 26

105% 110% 104% 108% 111% 102% 106% 107% 108% 110% 112% 100% 101% 102% 103% 104% 105% 105% 106% 106% 107% 107% 108% 109% 109% 110%

67% 62% 53% 50% 46% 41% 37% 36% 35% 33% 31% 29% 28% 26% 25% 24% 24% 24% 23% 22% 22% 22% 21% 20% 20% 19%

61% 64% 66% 68% 70% 71% 74% 75% 76% 77% 78% 78% 78% 80% 80% 81% 81% 82% 82% 83% 83% 83% 84% 84% 85% 86%

64% 56% 51% 46% 42% 40% 35% 33% 32% 30% 28% 29% 28% 26% 24% 23% 23% 23% 22% 21% 21% 20% 20% 18% 18% 17%

Computational Results (PBSPCC)

344

Table E.10 Sensitivity analysis data for Test Problem 5 with TR = 3. TE

T

Bo.

Pa.

N.Pa.

E.Pa.

r.Pa.

r.N.Pa.

t.Pa.

N.Pa./Pa.

10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35

26 28 30 32 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38

14 13 12 12 11 11 11 11 11 10 10 10 10 10 10 10 10 9 9 9 9 9 9 9 9 9

199 212 224 248 121 132 141 151 163 157 168 178 187 196 207 217 228 212 222 230 240 248 257 266 276 284

164 152 136 136 66 66 68 69 68 63 62 62 63 64 63 63 62 58 57 58 57 58 58 58 57 58

17 16 14 24 2 6 8 11 16 3 7 10 12 14 18 21 25 2 5 6 9 10 12 14 17 18

109% 108% 107% 111% 102% 105% 106% 108% 111% 102% 104% 106% 107% 108% 110% 111% 112% 101% 102% 103% 104% 104% 105% 106% 107% 107%

90% 78% 65% 61% 55% 52% 51% 49% 46% 41% 39% 37% 36% 35% 33% 32% 31% 28% 26% 26% 25% 24% 24% 23% 22% 22%

55% 58% 62% 65% 65% 67% 67% 69% 71% 71% 73% 74% 75% 75% 77% 78% 79% 79% 80% 80% 81% 81% 82% 82% 83% 83%

82% 72% 61% 55% 55% 50% 48% 46% 42% 40% 37% 35% 34% 33% 30% 29% 27% 27% 26% 25% 24% 23% 23% 22% 21% 20%

E.4 Sensitivity Analysis Results

345

Table E.11 Sensitivity analysis data for Test Problem 5 with TR = 4. TE

T

Bo.

Pa.

N.Pa.

E.Pa.

r.Pa.

r.N.Pa.

t.Pa.

N.Pa./Pa.

10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35

28 30 32 34 36 19 20 21 22 23 48 50 26 27 28 29 30 31 32 33 34 35 36 37 38 39

15 14 13 13 12 11 11 11 11 11 10 10 10 10 10 10 10 10 10 9 9 9 9 9 9 9

210 231 242 268 271 133 144 155 165 177 344 363 188 197 208 218 227 238 248 233 242 249 260 269 276 286

202 189 174 174 161 76 76 76 77 76 136 137 72 73 72 72 73 72 72 64 64 66 64 64 66 65

14 21 18 30 19 0 4 8 11 16 8 13 6 8 12 15 17 21 24 2 4 4 8 10 10 13

107% 110% 108% 113% 108% 100% 103% 105% 107% 110% 102% 104% 103% 104% 106% 107% 108% 110% 111% 101% 102% 102% 103% 104% 104% 105%

103% 90% 78% 73% 64% 57% 54% 52% 50% 47% 40% 39% 40% 39% 37% 35% 35% 33% 32% 28% 27% 27% 25% 25% 25% 24%

50% 55% 58% 61% 63% 64% 65% 67% 68% 70% 72% 73% 72% 73% 74% 75% 76% 77% 78% 78% 79% 79% 80% 81% 81% 81%

96% 82% 72% 65% 59% 57% 53% 49% 47% 43% 40% 38% 38% 37% 35% 33% 32% 30% 29% 27% 26% 27% 25% 24% 24% 23%

Computational Results (PBSPCC)

346

Table E.12 Sensitivity analysis data for Test Problem 5 with TR = 5. TE

T

Bo.

Pa.

N.Pa.

E.Pa.

r.Pa.

r.N.Pa.

t.Pa.

N.Pa./Pa.

10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35

30 32 34 36 38 40 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40

15 15 14 13 13 12 12 11 11 11 11 11 11 10 10 10 10 10 10 10 10 10 10 9 9 9

220 249 259 268 294 293 155 154 165 177 187 195 204 197 206 218 227 238 248 257 268 277 288 269 277 286

230 231 217 200 200 187 97 88 88 87 88 91 93 83 84 82 83 82 82 83 82 83 82 73 74 74

10 25 21 16 28 13 8 0 4 9 12 13 15 1 3 8 10 14 17 19 23 25 29 3 4 6

105% 111% 109% 106% 111% 105% 105% 100% 102% 105% 107% 107% 108% 101% 101% 104% 105% 106% 107% 108% 109% 110% 111% 101% 101% 102%

110% 103% 91% 79% 75% 67% 66% 57% 55% 52% 50% 50% 49% 42% 41% 39% 38% 37% 35% 35% 33% 33% 32% 27% 27% 26%

49% 52% 54% 57% 60% 61% 62% 64% 65% 67% 68% 68% 69% 70% 71% 73% 73% 74% 75% 76% 77% 77% 78% 79% 79% 79%

105% 93% 84% 75% 68% 64% 63% 57% 53% 49% 47% 47% 46% 42% 41% 38% 37% 34% 33% 32% 31% 30% 28% 27% 27% 26%

Appendix F Benchmark Problems for the PBSPCC F.1

Representation of Schedules

In this thesis, we introduce a notation for the diagrammatic representation of patrol schedules. The contextual setting for a patrol schedule, which encapsulates the activities of a patrol asset over a planning period, is a directed graph structure. The vertices of the graph define geographical locations, such as patrol regions and ports, while directed arcs specify allowable transitions. It is also assumed that the planning period length (T ) is an integer multiple of a discrete unit of time (∆t). Time markers, given by partitions |, are used to denote exact moments in time, according to the chosen discretization. Therefore, the first partition of a schedule is set at t = 0 (or the initial time) and the final partition marks the end state of the schedule. The time interval between two adjacent partitions is equal to the time discretization ∆t. Partitions do not exist in isolation. To the immediate right of a partition marker we append either a numeric reference to a geographical location (port or patrol region) or a collection of lower dots (similar to an ellipsis), specifying either a transition or a replenishment break. The appended item specifies where the asset is and what is doing at a particular moment in time. Ports are typed in grey font to distinguish them from patrol regions. Each patrol region is typed in a unique colour to aid visual discrimination between the patrol regions. Figure F.1 contains an example of a portion of a patrol schedule. The diagram shows a patrol boat beginning its schedule at patrol region 03. After patrolling region 03 for two time units, it makes a transition to port 02, which also takes two time units. Upon arrival at port 02, the patrol boat undergoes a mandatory replen-

Benchmark Problems for the PBSPCC

348

ishment break, with a duration of four time units. Once replenished, the patrol boat leaves port 02 and proceeds to patrol region 08, the journey taking three time units, and so forth. Δt = 2

Δt = 2

Δt = 4

Δt = 3

Δt = 2

|03|03|03|..|02|..|..|..|02|..|..|08|08|08| Patrol in region 03

Transit to port 02

Replenish at port 02

Transit to region 08

Patrol in region 08

Fig. F.1 Representation of a portion of a patrol boat schedule, with the key features labelled.

F.2

Benchmark Problems

For the purpose of completeness, the remainder of this appendix contains the diagrammatic schedule representations of the solutions to the benchmark problems outlined in Chapter 5. The solutions can also be cross-checked against the graph structures listed in Appendix F. The problem instance, planning period, endurance and replenishment break are given in the caption text below each schedule representation. In such cases where a cyclic solution exists, it is also indicated in the caption text.

F.2.1

Problem 1 T = 0 – 22: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.

|04|04|04|04|04|..|..|00|..|..|..|00|..|..|04|04|04|04|04|04|04|04 |05|05|05|05|05|..|..|00|..|..|..|00|..|..|05|05|05|05|05|05|05|05 |03|03|03|03|03|..|..|00|..|..|..|00|..|..|03|03|03|03|03|03|03|03 |06|06|06|06|06|..|..|00|..|..|..|00|..|..|06|06|06|06|06|06|06|06 |02|02|02|02|02|..|..|00|..|..|..|00|..|..|02|02|02|02|02|02|02|02 |01|01|01|01|01|..|..|00|..|..|..|00|..|..|01|01|01|01|01|01|01|01 |00|..|..|04|04|04|04|04|04|04|04|04|04|04|04|04|..|..|00|..|..|.. |00|..|..|05|05|05|05|05|05|05|05|05|05|05|05|05|..|..|00|..|..|.. |00|..|..|03|03|03|03|03|03|03|03|03|03|03|03|03|..|..|00|..|..|.. |00|..|..|06|06|06|06|06|06|06|06|06|06|06|06|06|..|..|00|..|..|.. |00|..|..|02|02|02|02|02|02|02|02|02|02|02|02|02|..|..|00|..|..|.. |00|..|..|01|01|01|01|01|01|01|01|01|01|01|01|01|..|..|00|..|..|..

Fig. F.2 Instance 1_a, T = 88, TE = 18, TR = 4, Cycle = (1) · · · (12).

F.2 Benchmark Problems

349

T = 0 – 28: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.

|03|03|03|03|03|03|03|03|03|03|..|..|..|05|05|05|05|05|..|..|00|..|..|..|00|..|..|02 |04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|..|..|00|..|..|..|00|..|..|06 |05|05|05|05|05|05|05|05|05|05|05|05|05|05|..|..|00|..|..|..|00|..|..|01|01|01|01|01 |06|06|06|06|06|06|06|06|06|06|..|..|00|..|..|..|00|..|..|03|03|03|03|03|03|03|03|03 |02|02|02|02|02|02|02|02|..|..|00|..|..|..|00|..|..|04|04|04|04|04|04|04|04|04|04|04 |01|01|01|01|01|01|01|01|..|..|00|..|..|..|00|..|..|05|05|05|05|05|05|05|05|05|05|05 |..|..|00|..|..|..|00|..|..|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06 |..|..|00|..|..|..|00|..|..|03|03|03|03|03|03|03|03|03|03|03|03|03|03|..|..|02|02|02 |00|..|..|..|00|..|..|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|..|.. |00|..|..|..|00|..|..|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|..|..

T = 28 – 56: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.

|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|..|..|00|..|..|..|00|..|..|03 |06|06|06|06|06|06|06|06|06|06|06|..|..|01|01|01|01|01|..|..|00|..|..|..|00|..|..|04 |01|01|01|01|01|01|01|01|01|01|01|01|01|01|..|..|00|..|..|..|00|..|..|05|05|05|05|05 |03|03|03|03|03|03|03|03|03|03|..|..|00|..|..|..|00|..|..|06|06|06|06|06|06|06|06|06 |04|04|04|04|04|04|04|04|..|..|00|..|..|..|00|..|..|02|02|02|02|02|02|02|02|02|02|02 |05|05|05|05|05|05|05|05|..|..|00|..|..|..|00|..|..|01|01|01|01|01|01|01|01|01|01|01 |..|..|00|..|..|..|00|00|..|..|06|06|06|06|06|06|06|06|06|06|..|..|05|..|..|04|04|04 |..|..|00|..|..|..|00|..|..|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03 |00|..|..|..|00|..|..|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|..|.. |00|..|..|..|00|..|..|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|..|..

Fig. F.3 Instance 1_c, T = 56, TE = 24, TR = 4, Cycle = (1) · · · (10).

T = 0 – 24: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.

|..|..|04|04|04|04|04|04|04|04|04|04|04|..|..|00|00|..|..|05|05|05|05|05 |..|..|01|01|01|01|01|01|01|01|01|01|01|..|..|00|00|..|..|06|06|06|06|06 |..|..|00|..|..|02|02|02|02|02|02|02|02|02|02|02|..|..|00|..|..|01|01|01 |..|..|00|..|..|03|03|03|03|03|03|03|03|03|03|03|..|..|00|..|..|04|04|04 |04|04|04|04|..|..|00|..|..|06|06|06|06|06|06|06|06|06|06|06|..|..|00|.. |01|01|01|01|..|..|00|..|..|05|05|05|05|05|05|05|05|05|05|05|..|..|00|.. |02|02|02|02|02|02|..|..|00|..|..|04|04|04|04|04|04|04|04|04|04|04|..|.. |03|03|03|03|03|03|03|..|..|00|..|..|01|01|01|01|01|01|01|01|01|01|01|.. |05|05|05|05|05|05|05|05|05|05|..|..|00|..|..|02|02|02|02|02|02|02|02|02 |06|06|06|06|06|06|06|06|06|06|..|..|00|..|..|03|03|03|03|03|03|03|03|03

T = 24 – 48: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.

|05|05|05|05|05|05|..|..|00|..|..|03|03|03|03|03|03|03|03|03|03|..|..|00 |06|06|06|06|06|06|..|..|00|..|..|02|02|02|02|02|02|02|02|02|02|..|..|00 |01|01|01|01|01|01|01|01|..|..|00|..|..|06|06|06|06|06|06|06|06|06|06|06 |04|04|04|04|04|04|04|04|..|..|00|..|..|05|05|05|05|05|05|05|05|05|05|05 |..|02|02|02|02|02|02|02|02|02|02|02|..|..|00|..|..|04|04|04|04|04|04|04 |..|03|03|03|03|03|03|03|03|03|03|03|..|..|00|..|..|01|01|01|01|01|01|01 |00|..|..|06|06|06|06|06|06|06|06|06|06|06|..|..|00|..|..|02|02|02|02|02 |..|00|..|..|05|05|05|05|05|05|05|05|05|05|05|..|..|00|..|..|03|03|03|03 |02|02|..|..|00|..|..|01|01|01|01|01|01|01|01|01|01|01|..|..|00|..|..|05 |03|03|..|..|00|..|..|04|04|04|04|04|04|04|04|04|04|04|..|..|00|..|..|06

Fig. F.4 Instance 1_b, T = 48, TE = 16, TR = 0, Cycle = (1) · · · (10).

Benchmark Problems for the PBSPCC

350 T = 0 – 28: 1. 2. 3. 4. 5. 6. 7. 8.

|..|00|..|..|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|..|..|00|..|.. |02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|..|..|00|..|..|03|03|03|03|03|03 |05|05|05|05|05|05|05|05|05|05|..|..|00|..|..|06|06|06|06|06|06|06|06|06|06|06|06|06 |03|03|03|03|03|..|..|00|..|..|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01 |00|..|..|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|..|..|00|..|..|05 |06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|..|..|00|..|..|04|04|04|04|04|04|04 |01|01|01|01|01|01|01|01|01|01|01|..|..|00|..|..|02|02|02|02|02|02|02|02|02|02|02|02 |04|04|04|04|..|..|00|..|..|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05

T = 28 – 56: 1. 2. 3. 4. 5. 6. 7. 8.

|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|..|..|00|..|..|02|02|02|02 |03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|..|..|00|..|..|05|05|05|05|05|05|05|05 |06|06|06|06|06|06|06|06|..|..|00|..|..|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03 |01|..|..|00|..|..|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|..|.. |05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|..|..|00|..|..|06|06 |04|04|04|04|04|04|04|04|04|04|04|04|04|..|..|00|..|..|01|01|01|01|01|01|01|01|01|01 |02|02|02|02|02|02|02|..|..|00|..|..|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04 |..|..|00|..|..|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|..

Fig. F.5 Instance 1_d, T = 58, TE = 28, TR = 0, Cycle = (1, 2, 3, 4, 5, 6, 7, 8).

F.2.2

Problem 2

T = 0 – 30: 1. 2. 3. 4. 5.

|04|04|04|04|04|04|04|04|04|04|..|00|..|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04 |03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|..|00|..|03|03|03|03|03|03|03|03|03 |..|00|..|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02 |02|02|02|02|..|..|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|..|00|..|02 |01|01|01|01|01|01|01|..|..|04|04|04|04|04|..|00|..|03|03|03|03|03|..|..|..|01|01|01|01|01

Fig. F.6 Instance 2_b, T = 30, TE = 30, TR = 0, Cycle = (1) · · · (5).

T = 0 – 24: 1. 2. 3. 4. 5. 6.

|00|..|02|02|02|02|02|02|02|02|02|..|00|..|04|04|04|04|04|04|04|04|04|.. |03|03|03|03|03|03|03|03|..|00|..|01|01|01|01|01|01|01|01|01|..|00|..|03 |04|04|04|04|04|04|04|..|00|..|02|02|02|02|02|02|02|02|02|..|00|..|04|04 |02|02|02|..|00|..|04|04|04|04|04|04|04|04|04|..|00|..|02|02|02|02|02|02 |01|01|01|01|..|00|..|03|03|03|03|03|03|03|03|03|..|00|..|01|01|01|01|01 |..|00|..|01|01|01|01|01|01|01|01|01|..|00|..|03|03|03|03|03|03|03|03|03

T = 24 – 48: 1. 2. 3. 4. 5. 6.

|00|..|02|02|02|02|02|02|02|02|02|..|00|..|04|04|04|04|04|04|04|04|04|.. |03|03|03|03|03|03|03|03|..|00|..|01|01|01|01|01|01|01|01|01|..|00|..|03 |04|04|04|04|04|04|04|..|00|..|02|02|02|02|02|02|02|02|02|..|00|..|04|04 |02|02|02|..|00|..|04|04|04|04|04|04|04|04|04|..|00|..|02|02|02|02|02|02 |01|01|01|01|..|00|..|03|03|03|03|03|03|03|03|03|..|00|..|01|01|01|01|01 |..|00|..|01|01|01|01|01|01|01|01|01|..|00|..|03|03|03|03|03|03|03|03|03

Fig. F.7 Instance 2_a, T = 48, TE = 12, TR = 0, Cycle = (1) · · · (6).

F.2 Benchmark Problems

F.2.3

351

Problem 3 T = 0 – 18: 1. 2. 3. 4.

|05|05|05|..|01|..|04|04|04|04|04|04|04|04|04|04|04|04 |02|..|05|05|05|05|05|05|05|05|05|05|05|05|05|..|01|.. |03|03|03|03|03|03|03|03|03|03|03|..|02|..|05|05|05|05 |04|04|04|04|04|04|04|..|00|..|03|03|03|03|03|03|03|03

T = 18 – 36: 1. 2. 3. 4.

|04|..|00|..|03|03|03|03|03|03|03|03|03|03|03|03|03|.. |04|04|04|04|04|04|04|04|04|04|04|04|04|..|00|..|03|03 |05|05|05|05|05|05|05|05|05|..|01|..|04|04|04|04|04|04 |03|03|03|03|03|..|02|..|05|05|05|05|05|05|05|05|05|05

Fig. F.8 Instance 3_b, T = 36, TE = 18, TR = 0, Cycle = (1, 2, 3, 4).

T = 0 – 30: 1. 2. 3. 4. 5. 6. 7. 8.

|..|01|..|..|..|..|01|..|05|05|05|05|05|05|05|..|02|..|..|..|..|02|..|03|03|03|03|03|03|03 |05|05|05|..|01|..|..|..|..|01|..|04|04|04|04|04|04|04|..|01|..|..|..|..|01|..|05|05|05|05 |03|03|03|03|03|..|00|..|..|..|..|00|..|03|03|03|03|03|03|03|..|00|..|..|..|..|00|..|03|03 |04|04|04|04|04|04|..|01|..|..|..|..|01|..|05|05|05|05|05|05|05|..|01|..|..|..|..|01|..|04 |01|..|05|05|05|05|05|05|05|..|01|..|..|..|..|01|..|04|04|04|04|04|04|04|..|01|..|..|..|.. |..|..|02|..|03|03|03|03|03|03|03|..|00|..|..|..|..|00|..|03|03|03|03|03|03|03|..|00|..|.. |..|..|..|01|..|04|04|04|04|04|04|04|..|01|..|..|..|..|01|..|05|05|05|05|05|05|05|..|01|.. |..|02|..|..|..|..|02|..|03|03|03|03|03|03|03|..|00|..|..|..|..|00|..|04|04|04|04|04|04|04

T = 30 – 60: 1. 2. 3. 4. 5. 6. 7. 8.

|..|02|..|..|..|..|02|..|05|05|05|05|05|05|05|..|01|..|..|..|..|01|..|04|04|04|04|04|04|04 |05|05|05|..|01|..|..|..|..|01|..|04|04|04|04|04|04|04|..|01|..|..|..|..|01|..|05|05|05|05 |03|03|03|03|03|..|00|..|..|..|..|00|..|03|03|03|03|03|03|03|..|00|..|..|..|..|00|..|03|03 |04|04|04|04|04|04|..|01|..|..|..|..|01|..|05|05|05|05|05|05|05|..|01|..|..|..|..|01|..|04 |01|..|05|05|05|05|05|05|05|..|01|..|..|..|..|01|..|04|04|04|04|04|04|04|..|01|..|..|..|.. |..|..|00|..|03|03|03|03|03|03|03|..|00|..|..|..|..|00|..|03|03|03|03|03|03|03|..|02|..|.. |..|..|..|01|..|04|04|04|04|04|04|04|..|01|..|..|..|..|01|..|05|05|05|05|05|05|05|..|01|.. |..|00|..|..|..|..|00|..|03|03|03|03|03|03|03|..|00|..|..|..|..|00|..|03|03|03|03|03|03|03

Fig. F.9 Instance 3_a, T = 60, TE = 10, TR = 5, Cycle = (1) · · · (8).

Benchmark Problems for the PBSPCC

352

F.2.4

Problem 4

T = 0 – 44: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.

|00|..|..|..|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|..|..|..|00|..|..|.. |..|..|..|00|..|..|..|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|..|..|..|00 |..|..|..|00|..|..|..|00|..|..|..|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02 |..|..|..|00|..|..|..|00|..|..|..|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03 |08|08|08|08|08|08|08|08|..|..|..|00|..|..|..|00|..|..|..|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01 |07|07|07|07|07|07|07|07|..|..|..|00|..|..|..|00|..|..|..|10|10|10|10|10|10|10|10|10|10|10|10|10|10|10|10|10|10|10|10|10|10|10|10|10 |02|02|02|02|02|02|02|02|02|02|02|02|..|..|..|00|..|..|..|00|..|..|..|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04 |03|03|03|03|03|03|03|03|03|03|03|03|..|..|..|00|..|..|..|00|..|..|..|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05 |01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|..|..|..|00|..|..|..|00|..|..|..|06|06|06|06|06|06|06|06|06|06|06|06|06 |10|10|10|10|10|10|10|10|10|10|10|10|10|10|10|10|10|10|10|10|..|..|..|00|..|..|..|00|..|..|..|09|09|09|09|09|09|09|09|09|09|09|09|09 |05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|..|..|..|00|..|..|..|00|..|..|..|07|07|07|07|07|07|07|07|07 |04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|..|..|..|00|..|..|..|00|..|..|..|08|08|08|08|08|08|08|08|08 |09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|..|..|..|00|..|..|..|00|..|..|..|02 |06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|..|..|..|00|..|..|..|00|..|..|..|03

T = 44 – 88: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.

|00|..|..|..|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|..|..|..|00|..|..|.. |..|..|..|00|..|..|..|10|10|10|10|10|10|10|10|10|10|10|10|10|10|10|10|10|10|10|10|10|10|10|10|10|10|10|10|10|10|10|10|10|..|..|..|00 |..|..|..|00|..|..|..|00|..|..|..|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04 |..|..|..|00|..|..|..|00|..|..|..|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05 |01|01|01|01|01|01|01|01|..|..|..|00|..|..|..|00|..|..|..|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06 |10|10|10|10|10|10|10|10|..|..|..|00|..|..|..|00|..|..|..|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09 |04|04|04|04|04|04|04|04|04|04|04|04|..|..|..|00|..|..|..|00|..|..|..|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07 |05|05|05|05|05|05|05|05|05|05|05|05|..|..|..|00|..|..|..|00|..|..|..|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08 |06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|..|..|..|00|..|..|..|00|..|..|..|03|03|03|03|03|03|03|03|03|03|03|03|03 |09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|..|..|..|00|..|..|..|00|..|..|..|02|02|02|02|02|02|02|02|02|02|02|02|02 |07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|..|..|..|00|..|..|..|00|..|..|..|01|01|01|01|01|01|01|01|01 |08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|..|..|..|00|..|..|..|00|..|..|..|10|10|10|10|10|10|10|10|10 |02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|..|..|..|00|..|..|..|00|..|..|..|04 |03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|..|..|..|00|..|..|..|00|..|..|..|05

T = 88 – 132: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.

|00|..|..|..|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|..|..|..|00|..|..|.. |..|..|..|00|..|..|..|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|..|..|..|00 |..|..|..|00|..|..|..|00|..|..|..|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07 |..|..|..|00|..|..|..|00|..|..|..|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08 |06|06|06|06|06|06|06|06|..|..|..|00|..|..|..|00|..|..|..|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03 |09|09|09|09|09|09|09|09|..|..|..|00|..|..|..|00|..|..|..|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02 |07|07|07|07|07|07|07|07|07|07|07|07|..|..|..|00|..|..|..|00|..|..|..|10|10|10|10|10|10|10|10|10|10|10|10|10|10|10|10|10|10|10|10|10 |08|08|08|08|08|08|08|08|08|08|08|08|..|..|..|00|..|..|..|00|..|..|..|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01 |03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|..|..|..|00|..|..|..|00|..|..|..|04|04|04|04|04|04|04|04|04|04|04|04|04 |02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|..|..|..|00|..|..|..|00|..|..|..|05|05|05|05|05|05|05|05|05|05|05|05|05 |01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|..|..|..|00|..|..|..|00|..|..|..|06|06|06|06|06|06|06|06|06 |10|10|10|10|10|10|10|10|10|10|10|10|10|10|10|10|10|10|10|10|10|10|10|10|..|..|..|00|..|..|..|00|..|..|..|09|09|09|09|09|09|09|09|09 |04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|..|..|..|00|..|..|..|00|..|..|..|07 |05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|..|..|..|00|..|..|..|00|..|..|..|08

T = 132 – 176: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.

|00|..|..|..|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|..|..|..|00|..|..|.. |..|..|..|00|..|..|..|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|..|..|..|00 |..|..|..|00|..|..|..|00|..|..|..|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01 |..|..|..|00|..|..|..|00|..|..|..|10|10|10|10|10|10|10|10|10|10|10|10|10|10|10|10|10|10|10|10|10|10|10|10|10|10|10|10|10|10|10|10|10 |03|03|03|03|03|03|03|03|..|..|..|00|..|..|..|00|..|..|..|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04 |02|02|02|02|02|02|02|02|..|..|..|00|..|..|..|00|..|..|..|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05 |10|10|10|10|10|10|10|10|10|10|10|10|..|..|..|00|..|..|..|00|..|..|..|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06 |01|01|01|01|01|01|01|01|01|01|01|01|..|..|..|00|..|..|..|00|..|..|..|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09 |04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|..|..|..|00|..|..|..|00|..|..|..|08|08|08|08|08|08|08|08|08|08|08|08|08 |05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|..|..|..|00|..|..|..|00|..|..|..|07|07|07|07|07|07|07|07|07|07|07|07|07 |06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|..|..|..|00|..|..|..|00|..|..|..|02|02|02|02|02|02|02|02|02 |09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|..|..|..|00|..|..|..|00|..|..|..|03|03|03|03|03|03|03|03|03 |07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|..|..|..|00|..|..|..|00|..|..|..|01 |08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|..|..|..|00|..|..|..|00|..|..|..|10

T = 176 – 220: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.

|00|..|..|..|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|..|..|..|00|..|..|.. |..|..|..|00|..|..|..|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|..|..|..|00 |..|..|..|00|..|..|..|00|..|..|..|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09 |..|..|..|00|..|..|..|00|..|..|..|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06 |04|04|04|04|04|04|04|04|..|..|..|00|..|..|..|00|..|..|..|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08 |05|05|05|05|05|05|05|05|..|..|..|00|..|..|..|00|..|..|..|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07 |06|06|06|06|06|06|06|06|06|06|06|06|..|..|..|00|..|..|..|00|..|..|..|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02 |09|09|09|09|09|09|09|09|09|09|09|09|..|..|..|00|..|..|..|00|..|..|..|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03 |08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|..|..|..|00|..|..|..|00|..|..|..|01|01|01|01|01|01|01|01|01|01|01|01|01 |07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|..|..|..|00|..|..|..|00|..|..|..|10|10|10|10|10|10|10|10|10|10|10|10|10 |02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|..|..|..|00|..|..|..|00|..|..|..|05|05|05|05|05|05|05|05|05 |03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|..|..|..|00|..|..|..|00|..|..|..|04|04|04|04|04|04|04|04|04 |01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|..|..|..|00|..|..|..|00|..|..|..|09 |10|10|10|10|10|10|10|10|10|10|10|10|10|10|10|10|10|10|10|10|10|10|10|10|10|10|10|10|10|10|10|10|..|..|..|00|..|..|..|00|..|..|..|06

Fig. F.10 Instance 4_b, TE = 40, TR = 4, Cycle = (1) · · · (14). Runs 2 − 6 are shown, where the planning block for each run is T = 44.

F.2 Benchmark Problems

353

T = 0 – 50: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.

|00|..|..|..|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|..|..|..|00|..|00|..|..|..|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|..|..|..|00|.. |00|..|..|..|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|..|..|..|00|..|00|..|..|..|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|..|..|..|00|.. |00|..|..|..|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|..|..|..|00|..|00|..|..|..|10|10|10|10|10|10|10|10|10|10|10|10|10|10|10|10|..|..|..|00|.. |..|..|00|..|00|..|..|..|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|..|..|..|00|..|00|..|..|..|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|.. |..|..|..|00|..|00|..|..|..|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|..|..|..|00|..|00|..|..|..|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09 |..|..|..|00|..|00|..|..|..|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|..|..|..|00|..|00|..|..|..|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04 |..|..|..|00|..|00|..|..|..|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|..|..|..|00|..|00|..|..|..|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07 |07|07|07|07|07|..|..|..|00|..|00|..|..|..|10|10|10|10|10|10|10|10|10|10|10|10|10|10|10|10|..|..|..|00|..|00|..|..|..|03|03|03|03|03|03|03|03|03|03|03 |04|04|04|04|04|..|..|..|00|..|00|..|..|..|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|..|..|..|00|..|00|..|..|..|08|08|08|08|08|08|08|08|08|08|08 |09|09|09|09|09|..|..|..|00|..|00|..|..|..|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|..|..|..|00|..|00|..|..|..|05|05|05|05|05|05|05|05|05|05|05 |02|02|02|02|02|02|02|02|02|..|..|..|00|..|00|..|..|..|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|..|..|..|00|..|00|..|..|..|02|02|02|02|02|02|02 |08|08|08|08|08|08|08|08|08|08|..|..|..|00|..|00|..|..|..|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|..|..|..|00|..|00|..|..|..|10|10|10|10|10|10 |05|05|05|05|05|05|05|05|05|05|..|..|..|00|..|00|..|..|..|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|..|..|..|00|..|00|..|..|..|01|01|01|01|01|01 |03|03|03|03|03|03|03|03|03|03|..|..|..|00|..|00|..|..|..|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|..|..|..|00|..|00|..|..|..|06|06|06|06|06|06 |06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|..|..|..|00|..|00|..|..|..|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|..|..|..|00|..|00|..|..|..|04 |01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|..|..|..|00|..|00|..|..|..|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|..|..|..|00|..|00|..|..|..|09 |10|10|10|10|10|10|10|10|10|10|10|10|10|10|10|..|..|..|00|..|00|..|..|..|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|..|..|..|00|..|00|..|..|..|07

T = 50 – 100: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.

|00|..|..|..|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|..|..|..|00|..|00|..|..|..|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|..|..|..|00|.. |00|..|..|..|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|..|..|..|00|..|00|..|..|..|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|..|..|..|00|.. |00|..|..|..|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|..|..|..|00|..|00|..|..|..|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|..|..|..|00|.. |..|..|00|..|00|..|..|..|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|..|..|..|00|..|00|..|..|..|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|.. |..|..|..|00|..|00|..|..|..|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|..|..|..|00|..|00|..|..|..|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05 |..|..|..|00|..|00|..|..|..|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|..|..|..|00|..|00|..|..|..|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03 |..|..|..|00|..|00|..|..|..|10|10|10|10|10|10|10|10|10|10|10|10|10|10|10|10|..|..|..|00|..|00|..|..|..|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08 |03|03|03|03|03|..|..|..|00|..|00|..|..|..|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|..|..|..|00|..|00|..|..|..|01|01|01|01|01|01|01|01|01|01|01 |08|08|08|08|08|..|..|..|00|..|00|..|..|..|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|..|..|..|00|..|00|..|..|..|06|06|06|06|06|06|06|06|06|06|06 |05|05|05|05|05|..|..|..|00|..|00|..|..|..|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|..|..|..|00|..|00|..|..|..|10|10|10|10|10|10|10|10|10|10|10 |02|02|02|02|02|02|02|02|02|..|..|..|00|..|00|..|..|..|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|..|..|..|00|..|00|..|..|..|02|02|02|02|02|02|02 |10|10|10|10|10|10|10|10|10|10|..|..|..|00|..|00|..|..|..|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|..|..|..|00|..|00|..|..|..|04|04|04|04|04|04 |01|01|01|01|01|01|01|01|01|01|..|..|..|00|..|00|..|..|..|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|..|..|..|00|..|00|..|..|..|09|09|09|09|09|09 |06|06|06|06|06|06|06|06|06|06|..|..|..|00|..|00|..|..|..|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|..|..|..|00|..|00|..|..|..|07|07|07|07|07|07 |04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|..|..|..|00|..|00|..|..|..|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|..|..|..|00|..|00|..|..|..|08 |09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|..|..|..|00|..|00|..|..|..|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|..|..|..|00|..|00|..|..|..|03 |07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|..|..|..|00|..|00|..|..|..|10|10|10|10|10|10|10|10|10|10|10|10|10|10|10|10|..|..|..|00|..|00|..|..|..|05

T = 100 – 150: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.

|00|..|..|..|10|10|10|10|10|10|10|10|10|10|10|10|10|10|10|10|..|..|..|00|..|00|..|..|..|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|..|..|..|00|.. |00|..|..|..|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|..|..|..|00|..|00|..|..|..|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|..|..|..|00|.. |00|..|..|..|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|..|..|..|00|..|00|..|..|..|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|..|..|..|00|.. |..|..|00|..|00|..|..|..|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|..|..|..|00|..|00|..|..|..|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|.. |..|..|..|00|..|00|..|..|..|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|..|..|..|00|..|00|..|..|..|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06 |..|..|..|00|..|00|..|..|..|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|..|..|..|00|..|00|..|..|..|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01 |..|..|..|00|..|00|..|..|..|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|..|..|..|00|..|00|..|..|..|10|10|10|10|10|10|10|10|10|10|10|10|10|10|10|10 |01|01|01|01|01|..|..|..|00|..|00|..|..|..|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|..|..|..|00|..|00|..|..|..|09|09|09|09|09|09|09|09|09|09|09 |06|06|06|06|06|..|..|..|00|..|00|..|..|..|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|..|..|..|00|..|00|..|..|..|07|07|07|07|07|07|07|07|07|07|07 |10|10|10|10|10|..|..|..|00|..|00|..|..|..|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|..|..|..|00|..|00|..|..|..|04|04|04|04|04|04|04|04|04|04|04 |02|02|02|02|02|02|02|02|02|..|..|..|00|..|00|..|..|..|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|..|..|..|00|..|00|..|..|..|02|02|02|02|02|02|02 |04|04|04|04|04|04|04|04|04|04|..|..|..|00|..|00|..|..|..|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|..|..|..|00|..|00|..|..|..|05|05|05|05|05|05 |09|09|09|09|09|09|09|09|09|09|..|..|..|00|..|00|..|..|..|10|10|10|10|10|10|10|10|10|10|10|10|10|10|10|10|..|..|..|00|..|00|..|..|..|03|03|03|03|03|03 |07|07|07|07|07|07|07|07|07|07|..|..|..|00|..|00|..|..|..|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|..|..|..|00|..|00|..|..|..|08|08|08|08|08|08 |08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|..|..|..|00|..|00|..|..|..|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|..|..|..|00|..|00|..|..|..|06 |03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|..|..|..|00|..|00|..|..|..|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|..|..|..|00|..|00|..|..|..|10 |05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|..|..|..|00|..|00|..|..|..|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|..|..|..|00|..|00|..|..|..|01

T = 150 – 200: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.

|00|..|..|..|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|..|..|..|00|..|00|..|..|..|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|..|..|..|00|.. |00|..|..|..|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|..|..|..|00|..|00|..|..|..|10|10|10|10|10|10|10|10|10|10|10|10|10|10|10|10|..|..|..|00|.. |00|..|..|..|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|..|..|..|00|..|00|..|..|..|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|..|..|..|00|.. |..|..|00|..|00|..|..|..|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|..|..|..|00|..|00|..|..|..|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|.. |..|..|..|00|..|00|..|..|..|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|..|..|..|00|..|00|..|..|..|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09 |..|..|..|00|..|00|..|..|..|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|..|..|..|00|..|00|..|..|..|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02 |..|..|..|00|..|00|..|..|..|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|..|..|..|00|..|00|..|..|..|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07 |09|09|09|09|09|..|..|..|00|..|00|..|..|..|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|..|..|..|00|..|00|..|..|..|03|03|03|03|03|03|03|03|03|03|03 |07|07|07|07|07|..|..|..|00|..|00|..|..|..|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|..|..|..|00|..|00|..|..|..|05|05|05|05|05|05|05|05|05|05|05 |04|04|04|04|04|..|..|..|00|..|00|..|..|..|10|10|10|10|10|10|10|10|10|10|10|10|10|10|10|10|..|..|..|00|..|00|..|..|..|08|08|08|08|08|08|08|08|08|08|08 |02|02|02|02|02|02|02|02|02|..|..|..|00|..|00|..|..|..|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|..|..|..|00|..|00|..|..|..|01|01|01|01|01|01|01 |05|05|05|05|05|05|05|05|05|05|..|..|..|00|..|00|..|..|..|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|..|..|..|00|..|00|..|..|..|04|04|04|04|04|04 |03|03|03|03|03|03|03|03|03|03|..|..|..|00|..|00|..|..|..|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|..|..|..|00|..|00|..|..|..|10|10|10|10|10|10 |08|08|08|08|08|08|08|08|08|08|..|..|..|00|..|00|..|..|..|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|..|..|..|00|..|00|..|..|..|06|06|06|06|06|06 |06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|..|..|..|00|..|00|..|..|..|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|..|..|..|00|..|00|..|..|..|09 |10|10|10|10|10|10|10|10|10|10|10|10|10|10|10|..|..|..|00|..|00|..|..|..|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|..|..|..|00|..|00|..|..|..|07 |01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|..|..|..|00|..|00|..|..|..|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|..|..|..|00|..|00|..|..|..|02

T = 200 – 250: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.

|00|..|..|..|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|..|..|..|00|..|00|..|..|..|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|..|..|..|00|.. |00|..|..|..|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|..|..|..|00|..|00|..|..|..|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|..|..|..|00|.. |00|..|..|..|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|..|..|..|00|..|00|..|..|..|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|..|..|..|00|.. |..|..|00|..|00|..|..|..|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|..|..|..|00|..|00|..|..|..|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|.. |..|..|..|00|..|00|..|..|..|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|..|..|..|00|..|00|..|..|..|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08 |..|..|..|00|..|00|..|..|..|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|..|..|..|00|..|00|..|..|..|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05 |..|..|..|00|..|00|..|..|..|10|10|10|10|10|10|10|10|10|10|10|10|10|10|10|10|..|..|..|00|..|00|..|..|..|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03 |03|03|03|03|03|..|..|..|00|..|00|..|..|..|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|..|..|..|00|..|00|..|..|..|06|06|06|06|06|06|06|06|06|06|06 |05|05|05|05|05|..|..|..|00|..|00|..|..|..|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|..|..|..|00|..|00|..|..|..|10|10|10|10|10|10|10|10|10|10|10 |08|08|08|08|08|..|..|..|00|..|00|..|..|..|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|..|..|..|00|..|00|..|..|..|04|04|04|04|04|04|04|04|04|04|04 |01|01|01|01|01|01|01|01|01|..|..|..|00|..|00|..|..|..|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|..|..|..|00|..|00|..|..|..|07|07|07|07|07|07|07 |04|04|04|04|04|04|04|04|04|04|..|..|..|00|..|00|..|..|..|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|..|..|..|00|..|00|..|..|..|09|09|09|09|09|09 |10|10|10|10|10|10|10|10|10|10|..|..|..|00|..|00|..|..|..|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|..|..|..|00|..|00|..|..|..|01|01|01|01|01|01 |06|06|06|06|06|06|06|06|06|06|..|..|..|00|..|00|..|..|..|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|..|..|..|00|..|00|..|..|..|02|02|02|02|02|02 |09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|..|..|..|00|..|00|..|..|..|10|10|10|10|10|10|10|10|10|10|10|10|10|10|10|10|..|..|..|00|..|00|..|..|..|03 |07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|..|..|..|00|..|00|..|..|..|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|..|..|..|00|..|00|..|..|..|08 |02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|..|..|..|00|..|00|..|..|..|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|..|..|..|00|..|00|..|..|..|05

Fig. F.11 Instance 4_c, TE = 23, TR = 2. Runs 2 − 11 are shown, where the planning block for each run is T = 25.

Benchmark Problems for the PBSPCC

354 T = 0 – 25: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18.

|07|07|07|07|07|..|..|..|00|..|00|..|..|..|10|10|10|10|10|10|..|..|..|08|08 |02|02|02|02|02|02|02|02|02|..|..|..|00|..|00|..|..|..|04|04|04|04|04|04|04 |08|08|08|08|08|08|08|08|08|08|..|..|..|00|..|00|..|..|..|10|10|10|10|10|10 |05|05|05|05|05|05|05|05|05|05|05|..|..|..|00|..|00|..|..|..|02|02|02|02|02 |09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|..|..|..|00|..|00|..|..|..|05 |00|..|..|..|07|07|07|07|07|07|07|07|07|..|06|06|06|06|06|06|..|..|..|00|.. |00|..|..|..|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|..|..|..|00|.. |00|..|00|..|..|..|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|..|..|.. |..|..|..|00|..|00|..|..|..|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05 |..|..|..|00|..|00|..|..|..|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01 |10|10|10|10|10|10|10|10|10|10|10|10|10|10|10|..|..|..|00|..|00|..|..|..|07 |06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|..|..|..|00|..|00|..|..|..|01 |01|01|01|01|01|01|01|01|01|01|..|..|..|00|..|00|..|..|..|06|06|06|06|06|06 |03|03|03|03|03|03|03|..|..|..|00|..|00|..|..|..|03|03|03|03|03|03|03|03|03 |04|04|04|04|04|..|..|..|00|..|00|..|..|..|09|09|09|09|09|09|09|09|09|09|09 |09|09|09|..|..|..|00|..|00|..|..|..|07|07|07|07|07|07|07|07|07|07|07|07|07 |..|..|..|00|..|00|..|..|..|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08 |00|..|00|..|..|..|03|03|03|03|03|03|03|03|03|03|03|..|..|..|00|..|00|..|..

T = 25 – 50: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18.

|08|08|08|08|08|..|..|..|00|..|00|..|..|..|07|07|07|07|07|07|07|07|07|07|07 |04|04|04|04|04|04|04|04|04|..|..|..|00|..|00|..|..|..|02|02|02|02|02|02|02 |10|10|10|10|10|10|10|10|10|10|..|..|..|00|..|00|..|..|..|08|08|08|08|08|08 |02|02|02|02|02|02|02|02|02|02|02|..|..|..|00|..|00|..|..|..|05|05|05|05|05 |05|05|05|05|05|05|05|..|04|04|04|04|04|04|04|..|..|..|00|..|00|..|..|..|09 |00|..|..|..|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|..|..|..|00|.. |00|..|..|..|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|..|..|..|00|.. |00|..|00|..|..|..|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|..|..|.. |..|..|..|00|..|00|..|..|..|10|10|10|10|10|10|10|10|10|10|10|10|10|10|10|10 |..|..|..|00|..|00|..|..|..|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06 |07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|..|..|..|00|..|00|..|..|..|06 |01|01|01|01|01|01|01|01|01|01|01|..|..|..|00|..|00|..|..|..|01|01|01|01|01 |06|06|06|06|06|06|06|06|06|06|..|..|..|00|..|00|..|..|..|03|03|03|03|03|03 |03|03|03|03|03|..|..|..|00|..|00|..|..|..|04|04|04|04|04|04|04|04|04|04|04 |09|09|09|09|09|..|..|..|00|..|00|..|..|..|09|09|09|09|09|09|09|09|09|09|09 |..|..|..|00|..|00|..|..|..|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02 |..|..|..|00|..|00|..|..|..|01|01|01|01|01|01|01|01|01|01|01|01|01|..|..|.. |..|09|09|09|09|09|09|09|09|09|09|09|09|09|09|..|..|..|00|..|00|..|..|..|10

Fig. F.12 Instance 4_a, T = 50, TE = 23, TR = 2, Cycle = (1) · · · (10)(11, 12, 13, 14, 15, 16, 17, 18).

F.2.5

Problem 5

T = 0 – 30: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.

|05|05|05|05|05|05|05|05|00|06|06|06|06|06|06|06|06|06|00|04|04|04|04|04|04|04|04|04|00|05 |00|06|06|06|06|06|06|06|06|06|00|04|04|04|04|04|04|04|04|04|00|05|05|05|05|05|05|05|05|05 |07|07|07|07|07|07|..|01|09|09|09|09|09|09|02|..|08|08|08|08|08|08|08|..|02|09|09|09|09|09 |09|09|09|09|01|04|04|04|04|04|04|04|04|04|00|05|05|05|05|05|05|05|05|05|00|06|06|06|06|06 |06|06|00|..|08|08|08|08|08|08|08|..|02|09|09|09|09|09|09|09|09|01|..|07|07|07|07|07|07|07 |..|01|09|09|09|09|09|09|09|01|..|07|07|07|07|07|07|07|..|01|09|09|09|09|09|09|02|..|08|08 |08|08|08|08|08|..|00|05|05|05|05|05|05|05|05|05|00|06|06|06|06|06|06|06|06|06|00|04|04|04 |04|04|04|04|04|04|01|03|03|03|03|03|03|03|03|01|..|07|07|07|07|07|07|07|..|01|03|03|03|03 |03|03|03|01|..|07|07|07|07|07|07|07|..|01|03|03|03|03|03|03|02|..|08|08|08|08|08|08|08|.. |02|03|03|03|03|03|03|03|02|..|08|08|08|08|08|08|08|..|02|03|03|03|03|03|03|03|03|01|..|07

Fig. F.13 Instance 5_a, T = 30, TE = 10, TR = 0, Cycle = (1)(2)(3, 4, 5, 6, 7, 8, 9, 10).

F.2 Benchmark Problems T = 0 – 28: 1. 2. 3. 4. 5. 6. 7. 8.

|02|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03 |03|03|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|01|..|07|07|07|07 |09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|01|04|04|04|04|04|04|04 |07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|..|01|09|09|09|09|09|09|09|09|09|09 |05|05|05|05|05|05|05|05|05|05|05|05|00|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06 |08|08|08|08|08|08|08|08|08|..|00|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05 |06|06|06|06|06|06|00|..|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08 |04|04|04|04|00|06|06|06|06|06|06|06|06|06|..|07|07|07|07|07|07|07|07|07|07|..|01|03

T = 28 – 56: 1. 2. 3. 4. 5. 6. 7. 8.

|02|02|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09 |07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|..|01|03|03|03|03|03 |04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|01|..|07|07|07|07|07|07|07|07|07 |09|09|09|09|08|08|08|08|08|08|08|08|08|..|00|05|05|05|05|05|05|05|05|05|05|05|05|05 |06|06|06|06|06|06|06|06|06|06|00|..|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08 |05|05|05|05|05|05|05|05|00|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06 |08|08|08|08|08|..|00|05|05|05|05|05|05|05|05|05|04|04|04|04|04|04|04|04|04|04|04|04 |03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|02|09|09|09

Fig. F.14 Instance 5_b, T = 56, TE = 28, TR = 0, Cycle = (1)(2)(3, 4, 5, 6, 7, 8).

F.2.6

Problem 6 T = 0 – 18: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.

|06|06|06|06|06|06|00|..|05|05|05|05|05|05|05|05|05|05 |11|11|11|11|11|11|..|02|..|07|07|07|07|07|07|07|07|07 |07|07|07|07|07|07|07|07|07|07|..|02|..|11|11|11|11|11 |05|05|05|05|05|05|05|05|05|05|05|..|00|09|09|09|09|09 |08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|01|..|12 |13|13|13|..|03|10|10|10|10|10|10|10|10|10|10|10|10|10 |14|14|14|03|..|..|04|04|04|04|04|04|04|04|04|04|04|04 |..|11|11|11|11|11|11|11|11|11|11|11|11|11|..|02|..|.. |14|14|14|14|14|14|14|14|14|14|14|03|..|13|13|13|13|13 |12|12|12|12|12|12|12|12|12|..|01|08|08|08|08|08|08|08 |10|10|10|10|10|10|03|..|12|12|12|12|12|12|12|12|12|12 |..|..|13|13|13|13|13|13|13|13|13|13|13|13|..|03|10|10 |04|04|04|04|04|04|04|..|..|03|14|14|14|14|14|14|14|14 |09|09|00|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06 |00|09|09|09|09|09|09|09|09|09|09|09|09|09|00|06|06|06

T = 18 – 36: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.

|05|05|05|05|05|..|00|06|06|06|06|06|06|06|06|06|06|06 |07|07|07|07|07|07|..|02|..|11|11|11|11|11|11|11|11|11 |11|11|11|11|11|11|11|11|11|11|..|02|..|07|07|07|07|07 |09|09|09|09|09|09|09|09|09|09|09|09|00|..|05|05|05|05 |12|12|12|12|12|12|12|12|12|12|12|12|12|12|..|01|08|08 |10|10|10|10|03|03|14|14|14|14|14|14|14|14|14|14|14|14 |04|..|..|02|..|07|07|07|07|07|07|07|07|07|07|07|..|02 |04|04|04|04|04|04|04|04|04|04|04|04|04|..|..|03|14|14 |13|13|13|13|13|13|13|13|13|13|..|03|..|12|12|12|12|12 |08|08|08|08|08|08|01|..|10|10|10|10|10|10|10|10|10|10 |12|12|12|..|01|08|08|08|08|08|08|08|08|08|08|08|08|01 |10|10|10|10|10|10|10|10|10|03|..|..|04|04|04|04|04|04 |14|14|14|14|14|14|14|03|..|13|13|13|13|13|13|13|13|13 |06|00|..|05|05|05|05|05|05|05|05|05|05|05|05|05|05|.. |06|06|06|06|06|06|06|06|06|06|00|09|09|09|09|09|09|09

Fig. F.15 Instance 6_d, T = 36, TE = 18, TR = 0, Cycle = (1) · · · (5)(6, 7, 8, 9, 10, 11, 12, 13)(14, 15).

355

Benchmark Problems for the PBSPCC

356 T = 0 – 28: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.

|..|02|..|07|07|07|07|07|07|07|07|07|07|07|..|02|..|11|11|11|11|11|04|04|04|04|04|.. |08|01|..|12|12|12|12|12|12|12|12|12|12|12|..|01|08|08|08|08|08|08|08|08|08|08|01|08 |14|14|03|..|13|13|13|13|13|13|13|13|13|13|13|..|03|10|10|10|10|10|10|10|10|10|10|03 |07|07|07|07|..|02|..|..|04|04|04|04|04|04|04|04|04|..|..|02|..|07|07|07|07|07|07|07 |11|11|11|11|..|02|..|11|11|11|11|11|11|11|11|11|11|11|..|02|..|11|11|11|11|11|11|11 |12|12|12|12|12|..|01|08|08|08|08|08|08|08|08|08|08|08|08|08|01|..|12|12|12|12|12|12 |13|13|13|13|13|13|..|03|10|10|10|10|10|10|10|10|10|10|10|10|10|03|..|13|13|13|13|13 |04|04|04|11|11|11|11|11|..|02|..|07|07|07|07|07|07|07|07|07|07|07|..|02|..|..|04|04 |08|08|08|08|08|08|08|08|08|08|01|..|12|12|12|12|12|12|12|12|12|12|12|..|01|08|08|08 |10|10|10|10|10|10|10|10|10|10|10|03|14|14|14|..|04|04|04|04|04|04|04|..|..|03|10|10 |14|14|14|14|14|14|14|14|14|14|14|03|..|13|13|13|13|13|13|13|13|13|13|13|..|03|14|14 |..|..|04|04|04|04|04|04|04|..|14|14|14|03|14|14|14|14|14|14|14|14|14|14|14|14|14|03 |00|..|05|05|05|05|05|05|05|05|05|05|..|00|06|06|06|06|06|06|06|06|06|06|06|00|09|09 |09|09|09|09|09|09|09|09|09|00|..|05|05|05|05|05|05|05|05|05|05|05|..|00|06|06|06|06 |06|06|06|06|06|06|06|00|09|09|09|09|09|09|09|09|09|09|09|00|..|05|05|05|05|05|05|05 |05|05|05|..|00|06|06|06|06|06|06|06|06|06|06|00|09|09|09|09|09|09|09|09|09|09|09|09

Fig. F.16 Instance 6_b, T = 28, TE = 14, TR = 0, Cycle = (1) · · · (12)(13, 14, 15, 16).

T = 0 – 34: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.

|03|14|14|14|14|14|14|14|14|14|14|14|14|14|14|14|03|03|14|14|14|14|14|14|14|14|14|14|14|14|14|14|14|03 |00|00|..|05|05|05|05|05|05|05|05|05|05|05|05|05|..|00|00|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09 |..|02|02|..|07|07|07|07|07|07|07|07|07|07|07|07|07|..|02|02|..|11|11|11|11|11|11|11|11|11|11|11|11|11 |12|12|12|12|12|..|01|01|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|01|01|..|12|12|12|12|12|12|12|12 |05|05|05|05|05|..|00|00|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|00|00|..|05|05|05|05|05|05|05|05 |13|13|13|13|13|13|13|13|..|03|03|10|10|10|10|10|10|10|10|10|10|10|10|10|10|10|03|03|..|13|13|13|13|13 |04|04|04|04|11|11|11|11|11|11|..|02|02|..|07|07|07|07|07|07|07|07|07|07|07|07|07|..|02|02|..|..|04|04 |08|08|08|08|08|08|08|08|08|08|08|01|01|..|12|12|12|12|12|12|12|12|12|12|12|12|12|..|01|01|08|08|08|08 |14|14|..|04|04|04|04|04|04|04|04|..|..|03|03|14|14|14|14|..|04|04|04|04|04|04|04|04|..|..|03|03|14|14 |10|10|10|10|10|10|10|10|10|10|10|10|10|10|03|03|..|13|13|13|13|13|13|13|13|13|13|13|13|13|..|03|03|10 |07|07|07|07|07|..|02|02|..|..|04|04|04|04|04|04|04|04|04|04|04|..|..|02|02|..|..|04|04|04|04|04|04|11 |11|11|11|11|11|..|02|02|..|11|11|11|11|11|11|11|11|11|11|11|11|11|..|02|02|..|07|07|07|07|07|07|07|07 |03|03|..|12|12|12|12|12|12|12|12|12|12|12|12|12|..|01|01|08|08|08|08|08|08|08|08|08|08|08|08|01|01|08 |08|08|01|01|..|..|13|13|13|13|13|13|13|13|13|13|13|13|..|03|03|10|10|10|10|10|10|10|10|10|10|10|10|10 |06|06|06|06|06|06|06|06|06|00|00|09|09|09|09|09|09|09|09|09|00|00|06|06|06|06|06|06|06|06|06|00|00|09 |09|09|09|09|09|09|09|09|09|09|09|09|00|00|..|05|05|05|05|05|05|05|05|05|05|05|05|..|00|00|06|06|06|06

Fig. F.17 Instance 6_c, T = 34, TE = 16, TR = 1, Cycle = (1) · · · (10)(11, 12)(13, 14)(15, 16).

T = 0 – 26: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.

|..|02|..|07|07|07|07|07|07|07|07|07|07|..|02|..|11|11|11|11|11|11|11|11|11|11 |08|01|..|12|12|12|12|12|12|12|12|12|12|..|01|08|08|08|08|08|08|08|08|08|01|08 |..|..|03|..|..|04|04|04|04|04|04|04|04|..|..|02|..|..|04|04|04|04|04|04|04|04 |12|12|12|12|..|01|08|08|08|08|08|08|08|08|08|08|08|08|01|..|12|12|12|12|12|12 |07|07|07|07|07|..|02|..|11|11|11|11|11|11|11|11|11|11|..|02|..|07|07|07|07|07 |11|11|11|11|11|11|11|11|11|..|02|..|07|07|07|07|07|07|07|07|07|07|..|02|..|11 |08|08|08|08|08|08|08|08|08|01|..|12|12|12|12|12|12|12|12|12|12|..|01|08|08|08 |09|09|09|09|09|09|09|09|09|00|06|06|06|06|06|06|06|06|06|06|00|..|05|05|05|05 |05|05|05|05|05|..|00|09|09|09|09|09|09|09|09|09|09|09|00|06|06|06|06|06|06|06 |06|06|00|..|05|05|05|05|05|05|05|05|05|05|..|00|09|09|09|09|09|09|09|09|09|09 |00|06|06|06|06|06|06|06|06|06|06|00|..|05|05|05|05|05|05|05|05|05|05|..|00|09 |13|13|13|13|13|13|..|03|10|10|10|10|10|10|10|10|10|03|14|14|14|14|14|14|14|14 |14|14|03|..|13|13|13|13|13|13|13|13|13|13|..|03|10|10|10|10|10|10|10|10|10|10 |03|14|14|14|14|14|14|14|14|14|14|03|..|13|13|13|13|13|13|13|13|13|13|..|03|10 |10|10|10|10|10|10|10|10|10|03|..|..|04|04|04|04|04|04|04|..|..|02|..|11|11|04 |04|04|04|04|04|04|..|..|03|14|14|14|14|14|14|14|14|14|14|14|03|..|13|13|13|13

Fig. F.18 Instance 6_a, T = 26, TE = 13, TR = 0, Cycle = (1) · · · (7)(8, 9, 10, 11)(12, 13, 14, 15, 16).

F.2 Benchmark Problems

F.2.7

357

Problem 7

T = 0 – 28: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23.

|..|03|11|11|11|11|11|11|11|11|11|11|11|03|..|03|11|11|11|11|11|11|11|11|11|11|11|03 |11|11|11|11|11|03|..|03|11|11|11|11|11|11|11|11|11|11|11|03|..|03|11|11|11|11|11|11 |13|13|13|13|13|..|04|..|04|..|13|13|13|13|13|13|13|13|13|..|04|..|04|..|13|13|13|13 |..|04|..|13|13|13|13|13|13|13|13|13|..|04|..|04|..|13|13|13|13|13|13|13|13|13|..|04 |17|17|17|17|17|17|17|17|..|05|..|05|18|18|18|18|18|18|18|18|18|18|18|05|..|05|..|17 |..|05|..|05|..|17|17|17|17|17|17|17|17|17|..|05|..|05|..|17|17|17|17|17|17|17|17|17 |15|15|15|15|15|15|..|04|..|04|..|14|14|14|14|14|14|14|14|14|..|04|..|04|..|15|15|15 |..|05|..|05|..|15|15|15|15|15|15|15|15|15|..|04|..|04|..|15|15|15|15|15|15|15|15|15 |14|14|14|14|14|14|14|14|..|04|..|04|..|15|15|15|15|15|15|15|15|15|..|04|..|04|..|14 |..|04|..|04|..|14|14|14|14|14|14|14|14|14|..|04|..|04|..|14|14|14|14|14|14|14|14|14 |01|..|01|09|09|09|09|09|09|09|09|09|09|09|01|..|01|10|10|10|10|10|10|10|10|10|10|10 |10|10|10|10|10|10|10|10|10|10|01|..|01|09|09|09|09|09|09|09|09|09|09|09|01|..|01|10 |09|09|09|09|09|01|..|01|10|12|12|12|12|12|12|12|12|12|10|01|..|01|09|09|09|09|09|09 |16|16|16|16|16|16|16|05|..|05|..|17|17|17|17|17|17|17|17|17|..|05|..|05|16|16|16|16 |18|18|18|05|..|05|16|16|16|16|16|16|16|16|16|16|16|05|..|05|05|05|18|18|18|18|18|18 |..|05|18|18|18|18|18|18|18|18|18|18|18|05|..|05|..|12|12|12|12|12|12|12|12|12|..|05 |18|12|12|12|12|12|12|12|12|12|..|05|..|05|16|16|16|16|16|16|16|16|16|16|16|05|..|05 |08|08|08|08|08|00|..|00|08|08|08|08|08|08|08|08|08|08|08|00|..|00|08|08|08|08|08|08 |12|12|..|..|08|08|01|..|01|10|10|10|10|10|10|10|10|10|10|10|01|..|01|10|12|12|12|12 |07|07|07|07|07|08|08|00|..|00|..|06|06|06|06|06|06|06|06|06|..|00|..|00|..|07|07|07 |06|06|06|06|07|07|08|08|08|00|..|00|..|07|07|07|07|07|08|08|08|08|08|00|..|00|..|06 |..|02|..|02|..|07|07|07|07|07|07|07|07|07|..|00|..|00|..|06|06|06|06|06|06|06|06|06 |..|02|..|06|06|06|06|06|06|06|06|06|..|00|..|00|..|07|07|07|07|07|07|07|07|07|..|02

Fig. F.19 Instance 7_a, T = 28, TE = 12, TR = 2, Cycle = (1) · · · (23).

T = 0 – 32: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21.

|01|..|01|10|10|10|10|10|10|10|10|10|10|10|10|10|01|..|01|10|10|10|10|10|10|10|10|10|10|10|10|10 |01|..|01|..|11|11|11|11|11|11|11|11|11|11|11|11|03|..|03|..|09|09|09|09|09|09|09|09|09|09|09|09 |01|..|01|08|08|08|08|08|08|08|08|08|08|08|08|08|00|..|00|08|08|08|08|08|08|08|08|08|08|08|08|08 |..|04|..|04|04|..|14|14|14|14|14|14|14|14|14|14|14|..|04|..|04|..|14|14|14|14|14|14|14|14|14|14 |13|13|13|13|13|..|04|..|04|..|13|13|13|13|13|13|13|13|13|13|13|..|04|..|04|..|13|13|13|13|13|13 |11|11|11|11|11|11|03|..|03|..|09|09|09|09|09|09|09|09|09|09|09|..|03|..|03|11|11|11|11|11|11|11 |14|14|14|14|14|14|14|14|14|..|04|..|04|..|15|15|15|15|15|15|15|15|15|15|15|..|04|..|04|..|14|14 |09|09|09|09|09|09|09|09|09|09|09|..|03|..|03|11|11|11|11|11|11|11|11|11|11|11|11|..|01|..|01|09 |10|10|10|07|06|06|06|06|06|06|06|..|00|..|00|08|08|08|08|08|07|07|07|07|07|07|07|..|01|..|01|10 |15|15|15|15|15|..|05|..|05|18|18|18|18|18|18|18|18|18|18|18|18|18|05|..|05|..|17|17|17|17|17|17 |17|17|17|17|17|..|05|..|05|16|16|16|16|16|16|16|16|16|16|16|16|16|05|..|05|..|12|12|12|12|12|12 |12|12|10|10|10|10|01|..|01|..|07|07|07|07|07|07|07|07|07|07|07|..|00|..|00|..|07|07|07|07|07|07 |07|07|07|07|07|..|00|..|00|..|06|06|06|06|06|06|06|06|06|06|06|..|00|..|00|..|06|06|06|06|06|06 |06|06|06|06|06|..|02|..|02|..|12|12|12|12|12|12|12|12|12|12|12|..|05|..|05|..|15|15|15|15|15|15 |05|..|05|..|15|15|15|15|15|15|15|15|15|15|15|..|04|..|04|..|13|13|13|13|13|13|13|13|13|13|..|04 |..|04|..|13|13|13|13|13|13|13|13|..|04|..|04|..|14|14|14|14|14|14|14|..|15|15|15|..|05|..|05|18 |18|18|18|18|18|18|18|18|18|18|18|18|05|..|05|..|17|17|17|17|17|17|17|17|17|17|17|..|05|..|05|16 |16|16|16|16|16|16|16|16|16|16|05|..|05|..|17|17|17|..|05|..|05|16|16|16|16|16|16|16|16|16|16|16 |05|..|05|..|17|17|17|17|17|17|17|17|17|17|17|..|05|..|05|18|18|18|18|18|18|18|18|18|18|18|18|18 |16|12|12|12|12|12|12|12|12|12|12|..|02|..|02|..|06|06|06|06|06|06|06|06|06|06|06|..|00|..|00|08 |08|08|08|08|07|07|07|07|07|07|07|..|01|..|01|10|10|10|10|10|12|12|12|12|12|12|12|..|05|..|05|16

Fig. F.20 Instance 7_b, T = 32, TE = 14, TR = 2, Cycle = (1) · · · (9)(10, 11, 12, 13, 14)(15, 16, 17, 18, 19)(20, 21).

Benchmark Problems for the PBSPCC

358

T = 0 – 20: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.

|..|03|11|11|11|11|11|11|11|11|11|11|11|11|11|11|11|11|11|03 |15|15|15|15|15|..|05|..|05|18|18|18|18|18|18|18|18|18|18|18 |18|18|18|18|05|..|05|..|17|17|17|17|17|17|17|17|17|17|17|17 |05|..|05|..|15|15|15|15|15|15|15|15|15|15|15|15|15|15|15|.. |01|..|01|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|01|.. |..|12|12|12|12|12|12|12|12|12|12|12|12|12|12|..|05|..|05|.. |16|16|16|16|16|16|16|16|16|16|16|16|16|16|05|..|05|..|15|15 |14|14|14|14|14|14|14|14|14|14|14|14|14|14|..|04|..|04|..|13 |11|11|11|11|11|11|11|11|11|11|03|..|03|11|11|11|11|11|11|11 |09|09|09|09|01|..|01|..|07|07|07|07|07|07|07|07|07|07|07|07 |10|10|10|10|10|10|10|10|10|10|10|10|10|10|01|..|01|09|09|09 |12|12|12|18|18|18|18|18|18|18|05|..|05|..|12|12|12|12|12|12 |17|17|17|17|17|17|17|17|17|..|05|..|05|16|16|16|16|16|16|16 |08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|00|..|00|.. |..|04|..|04|..|13|13|13|13|13|13|13|13|13|13|13|13|13|13|13 |08|08|08|08|00|..|00|..|06|06|06|06|06|06|06|06|06|06|06|06 |13|13|13|13|13|13|..|04|..|04|..|14|14|14|14|14|14|14|14|14 |06|06|06|06|06|06|06|06|06|..|00|..|00|08|08|08|08|08|08|08 |07|07|07|07|07|07|07|07|07|..|01|..|01|10|10|10|10|10|10|10

T = 20 – 40: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.

|..|03|11|11|11|11|11|11|11|11|11|11|11|11|11|11|11|11|11|03 |18|18|18|18|18|18|05|..|05|18|18|18|18|18|18|18|18|18|18|18 |17|17|17|..|05|..|05|16|16|16|16|16|16|16|16|16|16|16|16|16 |05|..|05|..|12|12|12|12|12|12|12|12|12|12|12|10|10|10|10|10 |01|..|07|07|07|07|07|07|07|07|07|07|07|07|07|07|..|02|..|02 |17|17|17|17|17|17|17|17|17|17|17|17|17|17|17|..|05|..|05|16 |15|15|15|15|15|15|15|15|15|15|15|15|15|..|04|..|04|04|..|14 |13|13|13|13|13|13|13|13|13|13|13|13|13|..|..|03|..|03|11|11 |11|11|11|11|11|..|01|..|01|09|09|09|09|09|09|09|09|09|09|09 |07|07|07|..|01|..|01|10|10|10|10|10|10|10|10|10|01|..|01|10 |09|09|09|09|09|09|09|09|09|09|01|..|01|..|12|12|12|12|12|12 |12|12|12|12|12|18|18|18|18|18|05|..|05|..|17|17|17|17|17|17 |16|16|16|16|16|16|16|16|05|..|05|..|15|15|15|15|15|15|15|15 |06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|..|00|..|00|08 |..|04|..|04|..|14|14|14|14|14|14|14|14|14|14|14|14|14|14|14 |06|06|06|..|00|..|00|00|00|08|08|08|08|08|08|08|08|08|08|08 |14|14|14|14|14|14|..|04|..|04|..|13|13|13|13|13|13|13|13|13 |08|08|08|08|08|08|08|08|08|08|00|..|00|..|06|06|06|06|06|06 |10|10|10|10|10|10|10|10|10|10|01|..|01|..|07|07|07|07|07|07

Fig. F.21 Instance 7_c, T = 40, TE = 18, TR = 2, Cycle = (1)(2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)(14) · · · (19).

F.2 Benchmark Problems

F.2.8

359

Problem 8

T = 0 – 30: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.

|00|..|..|..|00|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04 |03|..|..|..|03|11|11|11|11|11|11|11|11|11|10|10|10|10|10|10|10|10|10|10|10|10|10|10|10|10 |02|..|..|..|02|12|12|12|12|12|12|12|12|12|..|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09 |12|12|12|12|12|12|12|12|02|..|..|..|02|12|12|12|12|12|12|12|12|12|12|12|12|12|12|12|12|12 |11|11|11|11|11|11|11|11|03|..|..|..|03|11|11|11|11|11|11|11|11|11|11|11|11|11|11|11|11|11 |07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|01|..|..|..|01|07|07|07|07|07|07|07|07|07 |08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|02|..|..|..|02|08|08|08|08|08|08|08 |05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|00|..|..|..|00|05|05|05|05|05|05|05 |10|10|10|10|10|10|10|10|10|10|10|10|10|10|10|07|07|07|07|07|07|07|07|07|03|..|..|..|03|10 |09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|..|05|05|05|05|05|05|05|00|..|..|..|00|04 |04|04|04|04|04|04|06|06|06|06|06|06|06|06|..|08|08|08|08|08|08|08|08|08|02|..|..|..|02|09

Fig. F.22 Instance 8_d, T = 30, TE = 26, TR = 4, Cycle = (1) · · · (9)(10, 11).

T = 0 – 22: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.

|00|..|00|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05 |04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|00|..|00|05|05 |12|12|12|12|12|12|12|12|12|12|12|12|12|12|12|12|02|..|02|09|09|09 |08|08|08|08|08|08|08|08|08|08|08|08|02|..|02|12|12|12|12|12|12|12 |11|11|11|11|11|11|11|11|11|11|11|11|03|..|03|07|07|07|07|07|07|07 |10|10|10|10|03|..|03|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06 |03|..|03|10|10|10|10|10|10|10|10|10|10|10|10|10|10|10|10|10|10|10 |06|06|06|06|06|06|06|06|03|..|03|11|11|11|11|11|11|11|11|11|11|11 |09|09|09|09|09|09|09|09|02|..|02|08|08|08|08|08|08|08|08|08|08|08 |05|05|05|05|05|05|05|05|05|05|05|05|05|00|..|00|04|04|04|04|04|04 |07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|03|..|03|10 |..|02|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|02

T = 22 – 44: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.

|00|..|00|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|00|..|00|04 |05|05|05|05|05|05|05|08|08|08|08|08|08|08|08|08|08|02|..|02|12|12 |09|09|09|09|09|09|09|09|09|09|09|09|09|02|..|02|08|08|08|08|08|08 |12|12|12|12|12|12|12|11|11|11|11|11|03|..|03|11|11|11|11|11|11|11 |07|07|07|07|07|07|07|07|03|..|03|11|11|11|11|11|11|10|10|10|10|10 |06|06|06|06|01|..|01|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07 |03|..|03|06|06|06|06|06|06|06|06|06|04|04|04|04|04|04|04|04|04|04 |11|11|11|11|11|11|11|11|03|..|03|06|06|06|06|06|06|06|06|06|06|06 |08|08|08|08|08|08|08|08|02|..|02|09|09|09|09|09|09|09|09|09|09|09 |04|04|04|04|04|04|04|04|04|04|04|04|04|00|..|00|05|05|05|05|05|05 |10|10|10|10|10|10|10|10|10|10|10|10|10|10|10|10|10|10|03|..|03|07 |..|02|12|12|12|12|12|12|12|12|12|12|12|12|12|12|12|12|12|12|12|02

Fig. F.23 Instance 8_c, T = 44, TE = 20, TR = 2, Cycle = (1, 2, 3, 4, 5, 6, 7)(8) · · · (12).

Benchmark Problems for the PBSPCC

360

T = 0 – 24: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.

|00|05|05|05|05|05|05|05|05|05|05|05|00|..|06|06|06|06|06|04|04|04|04|04 |06|06|06|06|06|03|07|07|07|07|07|07|07|07|07|07|07|03|06|06|06|06|06|06 |05|05|05|05|05|05|05|05|00|04|04|04|04|04|04|04|04|04|04|04|00|05|05|05 |04|04|04|04|04|04|04|04|04|04|00|05|05|05|05|05|05|05|05|05|05|05|00|04 |11|11|11|11|11|11|11|11|11|11|11|03|10|10|10|10|10|10|10|10|10|10|10|03 |07|07|07|07|07|07|07|03|10|10|10|10|10|10|10|10|10|03|11|11|11|11|11|11 |11|11|11|03|06|06|06|06|06|06|06|06|06|06|06|03|07|07|07|07|07|03|10|10 |10|10|10|10|10|10|10|10|10|03|11|11|11|11|11|11|11|11|11|03|07|07|07|07 |12|02|08|08|08|08|08|08|08|08|02|09|09|09|09|09|09|09|09|09|09|02|12|12 |12|12|12|12|12|12|12|12|02|08|08|08|08|08|08|08|08|08|08|02|09|09|09|09 |09|09|09|09|09|02|12|12|12|12|12|12|12|12|12|12|12|02|08|08|08|08|08|08 |08|08|08|02|09|09|09|09|09|09|09|09|02|02|12|12|12|12|12|12|12|12|12|12

Fig. F.24 Instance 8_a, T = 24, TE = 12, TR = 0, Cycle = (1) · · · (5)(6, 7, 8)(9, 10, 11, 12).

T = 0 – 18: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.

|03|..|..|..|03|10|10|10|10|10|10|10|10|10|10|10|10|10 |03|..|..|..|03|11|11|11|11|11|11|11|11|11|11|11|11|11 |02|..|..|..|02|08|08|08|08|08|08|08|08|08|08|08|08|08 |00|..|..|..|00|05|05|05|05|05|05|05|05|05|05|05|05|05 |05|05|05|05|05|05|00|..|..|..|00|04|04|04|04|04|04|04 |08|08|08|08|08|08|02|..|..|..|02|09|09|09|09|09|09|09 |09|09|09|09|09|09|02|..|..|..|02|12|12|12|12|12|12|12 |10|10|10|10|10|10|03|..|..|..|03|07|07|07|07|07|07|07 |11|11|11|11|11|11|03|..|..|..|03|06|06|06|06|06|06|06 |04|04|04|04|04|04|04|04|04|04|04|04|00|..|..|..|00|05 |06|06|06|06|06|06|06|06|06|06|06|06|03|..|..|..|03|10 |12|12|12|12|12|12|12|12|12|12|12|12|02|..|..|..|02|08 |07|07|07|07|07|07|07|07|07|07|07|07|03|..|..|..|03|11 |12|12|12|..|09|09|09|09|09|09|09|09|02|..|..|..|02|09

T = 18 – 36: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.

|03|..|..|..|03|06|06|06|06|06|06|06|06|06|06|06|06|06 |03|..|..|..|03|07|07|07|07|07|07|07|07|07|07|07|07|07 |02|..|..|..|02|12|12|12|12|12|12|12|12|12|12|12|12|12 |00|..|..|..|00|04|04|04|04|04|04|04|04|04|04|04|04|04 |04|04|04|04|04|04|00|..|..|..|00|05|05|05|05|05|05|05 |09|09|09|09|09|09|02|..|..|..|02|08|08|08|08|08|08|08 |12|12|12|12|12|12|02|..|..|..|02|09|09|09|09|09|09|09 |07|07|07|07|07|07|03|..|..|..|03|10|10|10|10|10|10|10 |06|06|06|06|06|06|03|..|..|..|03|11|11|11|11|11|11|11 |05|05|05|05|05|05|05|05|05|05|05|05|00|..|..|..|00|04 |10|10|10|10|10|10|10|10|10|10|10|10|03|..|..|..|03|06 |08|08|08|08|08|08|08|08|08|08|08|08|02|..|..|..|02|12 |11|11|11|11|11|11|11|11|11|11|11|11|03|..|..|..|03|07 |09|09|09|09|09|09|09|09|09|09|09|09|02|..|..|..|02|12

Fig. F.25 Instance 8_b, T = 36, TE = 14, TR = 4, Cycle = (1) · · · (14).

F.2 Benchmark Problems

F.2.9

361

Problem 9

T = 0 – 30: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.

|03|10|10|10|10|10|10|10|10|10|10|10|10|10|10|03|03|10|10|10|10|10|10|10|10|10|10|10|10|10 |..|..|07|..|16|16|16|16|16|16|16|16|16|16|16|16|16|00|..|..|15|15|15|15|15|15|15|15|15|15 |11|11|11|11|11|04|11|11|11|11|11|11|11|11|11|11|11|11|11|11|04|11|11|11|11|11|11|11|11|11 |16|16|16|16|16|00|..|..|15|15|15|15|15|15|15|15|15|15|..|..|00|16|16|16|16|16|16|16|16|16 |13|13|13|13|13|..|06|..|13|13|13|13|13|13|13|13|13|13|13|13|..|06|..|13|13|13|13|13|13|13 |12|..|13|13|13|13|13|13|13|..|06|..|12|12|12|..|13|13|13|13|13|13|13|13|..|06|..|12|12|12 |15|15|15|15|15|15|15|15|15|..|..|00|..|17|17|17|17|17|17|17|17|17|17|17|17|..|00|..|..|15 |08|08|08|08|08|08|08|08|08|08|08|01|..|..|09|09|09|09|09|09|09|09|09|09|09|..|02|..|08|08 |10|10|11|11|11|11|11|11|11|11|11|11|..|03|10|10|10|11|11|11|11|11|11|11|11|11|11|..|03|10 |14|14|14|14|14|14|14|14|14|14|14|14|..|07|..|14|14|14|14|14|14|14|14|14|14|14|14|..|07|.. |12|12|12|12|12|12|12|12|12|12|12|12|12|05|12|12|12|12|12|12|12|12|12|12|12|12|12|12|05|12 |17|17|17|17|17|17|..|00|00|..|..|14|14|14|14|14|..|15|15|15|15|..|..|07|..|14|14|14|14|14 |14|..|..|00|..|17|17|17|17|17|17|17|17|17|..|00|16|16|16|16|16|16|00|..|17|17|17|17|17|17 |..|..|09|09|09|09|09|..|02|..|08|08|08|08|08|08|08|08|08|08|08|..|02|..|09|09|09|09|09|09 |09|09|09|..|02|..|09|09|09|09|09|09|09|09|09|09|09|..|02|..|08|08|08|08|08|08|08|08|08|01

Fig. F.26 Instance 9_ab, T = 30, TE = 15, TR = 0, Cycle = (1) · · · (11)(12, 13)(14, 15).

T = 0 – 28: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.

|10|10|10|10|03|..|..|..|03|10|10|10|10|10|10|10|10|10|10|10|10|10|10|10|10|10|10|10 |13|13|13|13|..|06|..|..|..|06|..|13|13|13|13|13|13|13|13|13|13|13|13|13|13|13|13|13 |09|09|09|09|09|..|02|..|..|..|02|..|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09 |15|15|15|15|15|15|15|..|..|07|..|..|..|07|..|14|14|14|14|14|14|14|14|14|14|14|14|14 |17|17|17|17|17|17|17|17|..|00|..|..|..|00|16|16|..|15|15|15|15|15|15|15|15|15|15|15 |11|11|11|11|11|11|11|11|11|11|11|04|..|..|..|04|11|11|11|11|11|11|11|11|11|11|11|11 |12|..|13|13|13|13|13|13|13|13|13|13|..|06|..|..|..|06|..|12|12|12|12|12|12|12|..|13 |08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|01|..|..|..|01|08|08|08|08|08|08|08 |12|12|12|12|12|12|12|12|12|12|12|12|12|12|12|12|12|12|12|12|05|..|..|..|05|12|12|12 |..|..|09|09|09|09|09|09|09|09|09|09|09|..|..|08|08|08|08|08|08|08|08|01|..|..|..|01 |11|10|10|10|10|10|10|10|10|10|11|11|11|11|11|11|11|11|11|11|11|11|11|04|..|..|..|04 |..|..|..|07|..|..|15|15|15|15|15|15|15|15|15|15|15|15|..|16|16|16|16|16|16|16|..|07 |..|..|..|00|..|17|17|17|17|17|17|17|17|17|17|17|17|17|17|17|17|17|17|17|17|17|..|00 |16|16|16|16|16|16|16|16|16|16|16|16|16|16|16|16|16|16|16|16|00|..|..|..|00|16|16|16 |14|14|14|14|14|14|14|14|14|14|14|14|14|14|14|14|14|..|..|00|..|..|..|00|..|17|17|17

T = 28 – 56: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.

|10|10|10|10|03|..|..|..|03|10|10|10|10|10|10|10|10|10|10|10|10|10|10|10|10|10|10|10 |13|13|13|13|..|06|..|..|..|06|..|13|13|13|13|13|13|13|13|13|13|13|13|13|13|13|13|13 |09|09|09|09|09|..|02|..|..|..|02|02|02|..|09|09|09|09|09|09|09|09|09|09|09|09|09|09 |14|14|14|14|14|14|14|14|..|07|..|..|..|07|..|..|15|15|15|15|15|15|15|15|15|15|15|15 |15|15|15|15|15|15|15|..|..|00|..|..|..|00|..|17|17|17|17|17|17|17|17|17|17|17|17|17 |11|11|11|11|11|11|11|11|11|11|11|04|..|..|..|04|11|11|11|11|11|11|11|11|11|11|11|11 |13|13|13|13|13|13|13|13|13|13|13|13|..|06|..|..|..|06|..|12|12|12|12|12|12|12|12|12 |08|..|..|09|09|09|09|09|09|09|09|09|09|09|09|..|02|..|..|..|02|..|08|08|08|08|08|08 |12|12|12|12|12|12|12|12|12|12|12|12|12|12|12|12|12|12|12|12|05|..|..|..|05|12|12|12 |08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|01|..|..|..|01 |11|11|11|10|10|10|10|10|10|10|11|11|11|11|11|11|11|11|11|11|11|11|11|04|..|..|..|04 |..|..|..|07|..|14|14|14|14|14|14|14|14|14|14|14|14|14|14|14|14|14|14|14|14|14|..|07 |..|..|..|00|16|16|16|16|16|16|16|16|16|16|16|16|16|16|16|16|16|16|16|16|16|16|16|00 |16|16|16|16|16|..|15|15|15|15|15|15|15|15|15|15|15|..|..|07|..|..|..|07|..|14|14|14 |17|17|17|17|17|17|17|17|17|17|17|17|17|17|17|17|17|17|..|00|..|..|..|00|00|00|16|16

Fig. F.27 Instance 9_cd, T = 56, TE = 24, TR = 4, Cycle = (1) · · · (13)(14, 15).

Benchmark Problems for the PBSPCC

362

F.2.10

Problem 10 T = 0 – 19: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.

|..|01|..|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08 |..|02|..|..|14|14|14|14|14|14|14|14|14|14|14|14|14|14|.. |..|..|00|..|..|03|03|03|03|03|03|03|03|03|03|03|03|03|03 |14|14|14|14|14|14|..|..|02|..|..|12|12|12|12|12|12|12|12 |08|08|08|08|08|08|08|08|08|08|08|..|01|..|09|09|09|09|09 |12|12|12|12|12|12|12|12|12|12|12|12|..|..|02|..|..|14|14 |09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|..|01|..|08 |07|07|07|07|07|07|07|07|07|07|07|07|07|..|00|..|04|04|04 |06|06|06|06|06|06|06|06|..|00|..|..|05|05|05|05|05|05|05 |03|03|03|03|03|03|..|..|00|..|07|07|07|07|07|07|07|07|07 |04|04|04|04|..|00|..|06|06|06|06|06|06|06|06|06|06|06|06 |..|00|..|04|04|04|04|04|04|04|04|04|04|04|04|04|04|..|00 |05|05|05|05|05|05|05|05|05|05|05|05|05|..|..|00|..|..|03 |..|02|..|11|11|11|11|11|11|11|11|11|11|11|11|11|..|02|.. |13|13|13|13|13|13|13|13|13|13|13|13|..|02|..|11|11|11|11 |10|10|10|10|10|10|10|10|..|02|..|13|13|13|13|13|13|13|13 |11|11|11|11|..|02|..|10|10|10|10|10|10|10|10|10|10|10|10

T = 19 – 38: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.

|..|01|..|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09 |..|02|..|13|13|13|13|13|13|13|13|13|13|13|13|13|13|13|13 |..|..|00|..|..|05|05|05|05|05|05|05|05|05|05|05|05|05|05 |12|12|12|12|12|12|..|..|02|..|..|14|14|14|14|14|14|14|14 |09|09|09|09|09|09|09|09|09|09|09|..|01|..|08|08|08|08|08 |14|14|14|14|14|14|14|14|14|14|14|14|..|..|02|..|..|12|12 |08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|..|01|..|09 |04|04|04|04|04|04|04|04|04|04|..|00|..|06|06|06|06|06|06 |05|05|05|05|05|05|..|..|00|..|..|03|03|03|03|03|03|03|03 |07|07|07|07|07|07|..|00|..|04|04|04|04|04|04|04|04|04|04 |06|06|..|00|..|07|07|07|07|07|07|07|07|07|07|07|07|07|07 |..|06|06|06|06|06|06|06|06|06|06|06|06|06|..|00|..|..|05 |03|03|03|03|03|03|03|03|03|03|03|03|..|..|00|..|07|07|07 |10|10|10|10|10|10|10|10|10|10|10|10|10|10|10|..|02|..|13 |11|11|11|11|11|11|11|11|11|11|..|02|..|10|10|10|10|10|10 |13|13|13|13|13|13|..|02|..|11|11|11|11|11|11|11|11|11|11 |10|..|02|..|..|12|12|12|12|12|12|12|12|12|12|12|12|12|..

Fig. F.28 Instance 10_a, T = 38, TE = 19, TR = 0, Cycle = (1) · · · (7)(8, 9, 10, 11, 12, 13)(14, 15, 16, 17). T = 0 – 34: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.

|00|..|..|05|05|05|05|05|05|05|05|05|05|05|..|..|00|00|..|..|03|03|03|03|03|03|03|03|03|03|03|..|..|00 |..|00|00|..|07|07|07|07|07|07|07|07|07|07|07|07|07|..|00|00|..|06|06|06|06|06|06|06|06|06|06|06|06|06 |..|00|00|..|04|04|04|04|04|04|04|04|04|04|04|04|04|..|00|00|..|04|04|04|04|04|04|04|04|04|04|04|04|04 |05|05|05|05|..|..|00|00|..|06|06|06|06|06|06|06|06|06|06|06|06|06|..|00|00|..|..|05|05|05|05|05|05|05 |07|07|07|07|07|..|00|00|..|..|03|03|03|03|03|03|03|03|03|03|03|..|..|00|00|..|07|07|07|07|07|07|07|07 |03|03|03|03|03|03|03|..|..|00|00|..|..|05|05|05|05|05|05|05|05|05|05|05|..|..|00|00|..|..|03|03|03|03 |04|04|04|04|04|..|03|03|03|03|03|..|..|00|00|..|07|07|07|07|07|07|07|07|07|07|07|07|07|..|00|00|..|04 |06|06|06|06|06|06|06|06|06|06|06|06|..|00|00|..|04|04|04|04|04|04|..|05|05|05|05|05|..|..|00|00|..|06 |09|..|01|01|..|08|08|08|08|08|08|08|08|08|08|08|08|08|..|01|01|..|09|09|09|09|09|09|09|09|09|09|09|09 |08|08|08|08|08|08|..|01|01|..|09|09|09|09|09|09|09|09|09|09|09|09|09|..|01|01|..|08|08|08|08|08|08|08 |09|09|09|09|09|09|09|09|09|09|09|..|01|01|..|08|08|08|08|08|08|08|08|08|08|08|08|08|..|01|01|..|09|09

Fig. F.29 Instance 10_bc*, T = 34, TE = 16, TR = 1, Cycle = (1) · · · (11). The solution for boats 1 − 8 can be duplicated for patrol regions 10 − 14 by symmetry.

F.2 Benchmark Problems

363

T = 0 – 30: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.

|..|00|..|07|07|07|07|07|07|07|07|07|07|07|07|07|..|00|..|..|..|00|..|04|04|04|04|04|04|04 |..|..|00|..|..|03|03|03|03|03|03|03|03|03|03|03|..|..|00|..|..|..|00|..|..|03|03|03|03|03 |00|..|..|..|00|..|..|05|05|05|05|05|05|05|05|05|05|05|..|..|00|..|..|..|00|..|..|05|05|05 |..|00|..|..|..|00|..|06|06|06|06|06|06|06|06|06|06|06|06|06|..|00|..|..|..|00|..|07|07|07 |07|07|07|07|..|00|..|..|..|00|..|04|04|04|04|04|04|04|04|04|04|04|04|04|..|00|..|..|..|00 |03|03|03|03|03|03|..|..|00|..|..|..|00|..|..|03|03|03|03|03|03|03|03|03|03|03|..|..|00|.. |06|06|06|06|06|06|06|06|..|00|..|..|..|00|..|07|07|07|07|07|07|07|07|07|07|07|07|07|..|00 |05|05|05|05|05|05|05|05|..|..|00|..|..|..|00|..|..|05|05|05|05|05|05|05|05|05|05|05|..|.. |04|04|04|04|04|04|04|04|04|04|04|04|..|00|..|..|..|00|..|06|06|06|06|06|06|06|06|06|06|06 |08|..|01|..|..|..|01|..|08|08|08|08|08|08|08|08|08|08|08|08|08|..|01|..|..|..|01|..|08|08 |09|..|01|..|..|..|01|..|09|09|09|09|09|09|09|09|09|09|09|09|09|..|01|..|..|..|01|..|09|09 |08|08|08|08|08|08|08|08|08|08|..|01|..|..|..|01|..|08|08|08|08|08|08|08|08|08|08|08|08|08 |09|09|09|09|09|09|09|09|09|09|..|01|..|..|..|01|..|09|09|09|09|09|09|09|09|09|09|09|09|09

T = 30 – 60: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.

|04|04|04|04|04|04|..|00|..|..|..|00|..|06|06|06|06|06|06|06|06|06|06|06|06|06|..|00|..|.. |03|03|03|03|03|03|..|..|00|..|..|..|00|..|..|03|03|03|03|03|03|03|03|03|03|03|..|..|00|.. |05|05|05|05|05|05|05|05|..|..|00|..|..|..|00|..|..|05|05|05|05|05|05|05|05|05|05|05|..|.. |07|07|07|07|07|07|07|07|07|07|..|00|..|..|..|00|..|04|04|04|04|04|04|04|04|04|04|04|04|04 |..|06|06|06|06|06|06|06|06|06|06|06|06|06|..|00|..|..|..|00|..|07|07|07|07|07|07|07|07|07 |..|..|00|..|..|03|03|03|03|03|03|03|03|03|03|03|..|..|00|..|..|..|00|..|..|03|03|03|03|03 |..|..|..|00|..|04|04|04|04|04|04|04|04|04|04|04|04|04|..|00|..|..|..|00|..|06|06|06|06|06 |00|..|..|..|00|..|..|05|05|05|05|05|05|05|05|05|05|05|..|..|00|..|..|..|00|..|..|05|05|05 |06|06|..|00|..|..|..|00|..|07|07|07|07|07|07|07|07|07|07|07|07|07|..|00|..|..|..|00|..|04 |08|08|08|08|08|08|08|08|08|08|08|..|01|..|..|..|01|..|08|08|08|08|08|08|08|08|08|08|08|08 |09|09|09|09|09|09|09|09|09|09|09|..|01|..|..|..|01|..|09|09|09|09|09|09|09|09|09|09|09|09 |..|01|..|..|..|01|..|08|08|08|08|08|08|08|08|08|08|08|08|08|..|01|..|..|..|01|..|08|08|08 |..|01|..|..|..|01|..|09|09|09|09|09|09|09|09|09|09|09|09|09|..|01|..|..|..|01|..|09|09|09

Fig. F.30 Instance 10_de*, T = 60, TE = 16, TR = 4, Cycle = (1) · · · (13). The solution for boats 1 − 9 can be duplicated for patrol regions 10 − 14 by symmetry.

Benchmark Problems for the PBSPCC

364 T = 0 – 32: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.

|00|..|..|..|00|..|..|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|..|.. |03|03|03|03|03|03|03|03|..|..|00|..|..|..|00|..|..|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05 |04|04|04|04|04|04|04|04|..|00|..|..|..|00|..|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06 |..|00|..|..|..|00|..|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04 |07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|..|00|..|..|..|00|..|04 |06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|..|00|..|..|..|00|..|07|07|07|07|07|07|07|07|07 |05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|..|..|00|..|..|..|00|..|..|03|03|03|03|03 |08|08|08|08|08|08|08|08|..|01|..|..|..|01|..|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08 |09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|..|01|..|..|..|01|..|09|09|09|09 |01|..|..|..|01|..|08|08|08|08|08|08|08|08|08|08|..|..|..|09|09|09|09|09|09|09|09|09|09|09|09|..

T = 32 – 64: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.

|00|..|..|..|00|..|..|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|..|.. |05|05|05|05|05|05|05|05|..|..|00|..|..|..|00|..|..|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03 |06|06|06|06|06|06|06|06|..|00|..|..|..|00|..|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07 |..|00|..|..|..|00|..|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06 |04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|..|00|..|..|..|00|..|06 |07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|..|00|..|..|..|00|..|04|04|04|04|04|04|04|04|04 |03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|..|..|00|..|..|..|00|..|..|05|05|05|05|05 |08|08|08|08|08|08|08|08|..|01|..|..|..|01|..|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08 |09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|..|01|..|..|..|01|..|09|09|09|09 |01|..|..|..|01|..|08|08|08|08|08|08|08|08|08|08|..|..|..|09|09|09|09|09|09|09|09|09|09|09|09|..

T = 64 – 96: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.

|00|..|..|..|00|..|..|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|..|.. |03|03|03|03|03|03|03|03|..|..|00|..|..|..|00|..|..|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05 |07|07|07|07|07|07|07|07|..|00|..|..|..|00|..|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04 |..|00|..|..|..|00|..|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07 |06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|..|00|..|..|..|00|..|07 |04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|..|00|..|..|..|00|..|06|06|06|06|06|06|06|06|06 |05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|..|..|00|..|..|..|00|..|..|03|03|03|03|03 |08|08|08|08|08|08|08|08|..|01|..|..|..|01|..|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08 |09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|..|01|..|..|..|01|..|09|09|09|09 |01|..|..|..|01|..|08|08|08|08|08|08|08|08|08|08|..|..|..|09|09|09|09|09|09|09|09|09|09|09|09|..

T = 96 – 128: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.

|00|..|..|..|00|..|..|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|..|.. |05|05|05|05|05|05|05|05|..|..|00|..|..|..|00|..|..|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03 |04|04|04|04|04|04|04|04|..|00|..|..|..|00|..|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06 |..|00|..|..|..|00|..|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04 |07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|..|00|..|..|..|00|..|04 |06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|..|00|..|..|..|00|..|07|07|07|07|07|07|07|07|07 |03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|..|..|00|..|..|..|00|..|..|05|05|05|05|05 |08|08|08|08|08|08|08|08|..|01|..|..|..|01|..|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08 |09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|..|01|..|..|..|01|..|09|09|09|09 |01|..|..|..|01|..|08|08|08|08|08|08|08|08|08|08|..|..|..|09|09|09|09|09|09|09|09|09|09|09|09|..

T = 128 – 160: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.

|00|..|..|..|00|..|..|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|..|.. |03|03|03|03|03|03|03|03|..|..|00|..|..|..|00|..|..|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05 |06|06|06|06|06|06|06|06|..|00|..|..|..|00|..|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07 |..|00|..|..|..|00|..|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06 |04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|..|00|..|..|..|00|..|06 |07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|..|00|..|..|..|00|..|04|04|04|04|04|04|04|04|04 |05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|..|..|00|..|..|..|00|..|..|03|03|03|03|03 |08|08|08|08|08|08|08|08|..|01|..|..|..|01|..|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08 |09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|..|01|..|..|..|01|..|09|09|09|09 |01|..|..|..|01|..|08|08|08|08|08|08|08|08|08|08|..|..|..|09|09|09|09|09|09|09|09|09|09|09|09|..

T = 160 – 192: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.

|00|..|..|..|00|..|..|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|..|.. |05|05|05|05|05|05|05|05|..|..|00|..|..|..|00|..|..|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03 |07|07|07|07|07|07|07|07|..|00|..|..|..|00|..|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04 |..|00|..|..|..|00|..|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07 |06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|..|00|..|..|..|00|..|07 |04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|..|00|..|..|..|00|..|06|06|06|06|06|06|06|06|06 |03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|..|..|00|..|..|..|00|..|..|05|05|05|05|05 |08|08|08|08|08|08|08|08|..|01|..|..|..|01|..|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08 |09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|..|01|..|..|..|01|..|09|09|09|09 |01|..|..|..|01|..|08|08|08|08|08|08|08|08|08|08|..|..|..|09|09|09|09|09|09|09|09|09|09|09|09|..

Fig. F.31 Instance 10_gf*, T = 32, TE = 28, TR = 4, Cycle = (1) · · · (10). The solution for boats 1 − 7 can be duplicated for patrol regions 10 − 14 by symmetry. Runs 2 − 7 are shown for the 10_f cluster.

F.2 Benchmark Problems

F.2.11

365

Problem 11

T = 0 – 32: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.

|10|10|10|10|00|10|10|10|10|10|10|10|10|10|10|10|10|10|10|10|00|10|10|10|10|10|10|10|10|10|10|10 |09|09|09|09|00|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|00|09|09|09|09|09|09|09|09|09|09|09 |08|08|09|09|09|09|00|..|11|11|11|11|11|11|11|11|11|11|10|10|10|10|00|..|08|08|08|08|08|08|08|08 |04|04|04|04|04|04|04|04|04|01|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|01|04|04|04|04|04|04 |07|07|07|07|07|07|07|07|07|..|00|..|08|08|08|08|08|08|08|08|08|08|08|08|08|..|00|..|07|07|07|07 |11|11|11|11|11|11|11|11|11|..|00|..|12|12|12|12|12|12|12|12|12|12|12|12|12|..|00|..|11|11|11|11 |03|03|03|02|02|02|02|02|02|02|02|01|05|05|05|05|05|05|05|04|04|04|04|04|04|04|04|01|03|03|03|03 |..|11|10|10|10|10|00|..|07|07|07|07|07|07|07|07|07|07|..|09|09|09|00|..|12|12|12|12|12|12|12|12 |12|12|12|12|12|..|01|04|04|04|04|04|04|04|04|04|04|04|04|04|01|06|06|06|06|06|06|06|06|06|06|06 |06|01|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|01|05|05|05|05|05|05|05|05|05|05|05|05|05|01 |06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|01|03|03|03|03|03|03|03|03|03|03|03|03|03|01|05|05 |05|05|05|05|05|05|05|05|05|05|05|05|05|01|06|06|06|06|06|06|06|06|06|01|02|02|02|02|02|02|02|02 |02|02|02|02|12|12|12|12|12|12|12|12|12|..|00|..|11|11|11|11|11|11|11|11|11|11|11|11|11|..|00|.. |08|08|08|08|08|08|08|08|08|08|08|08|08|..|00|..|07|07|07|07|07|07|07|07|07|07|07|07|07|..|01|02

Fig. F.32 Instance 11_b, T = 32, TE = 16, TR = 0, Cycle = (1) · · · (7)(8, 9, 10, 11, 12)(13, 14).

T = 0 – 34: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.

|00|..|00|10|10|10|10|10|10|10|10|10|10|10|10|10|10|00|..|00|09|09|09|09|09|09|09|09|09|09|09|09|09|09 |00|..|00|09|09|09|09|09|09|09|09|09|09|09|09|09|09|00|..|00|10|10|10|10|10|10|10|10|10|10|10|10|10|10 |01|..|01|04|04|04|04|04|04|04|04|04|04|04|04|04|04|01|..|01|03|03|03|03|03|03|03|03|03|03|03|03|03|03 |01|..|01|..|07|07|07|07|07|07|07|06|06|06|06|06|06|01|..|01|..|07|07|07|07|07|07|07|06|04|04|04|04|04 |01|..|01|..|12|12|12|12|12|12|12|12|02|02|02|02|02|01|..|01|05|05|05|05|05|05|05|05|05|05|05|05|05|05 |02|02|02|02|02|01|..|01|06|06|06|06|05|05|05|05|05|05|05|05|05|05|01|..|01|02|02|02|02|02|02|02|02|02 |11|11|11|11|11|..|00|..|00|..|07|07|07|07|07|07|07|07|07|07|07|07|..|00|..|00|..|11|11|11|11|11|11|11 |07|07|07|07|07|..|00|..|00|..|11|11|11|11|11|11|11|11|11|11|11|11|..|00|..|00|..|07|07|07|07|07|07|07 |08|08|08|08|08|..|00|..|00|..|08|08|08|08|08|08|08|08|08|08|08|08|..|00|..|00|..|08|08|08|08|08|08|08 |12|12|12|12|12|12|..|00|..|00|..|12|12|12|12|12|12|12|12|12|12|12|12|..|00|..|00|..|12|12|12|12|12|12 |06|06|06|06|06|06|06|06|06|01|..|01|03|03|03|03|03|03|03|03|03|02|02|02|02|02|01|..|01|06|06|06|06|06 |10|10|10|10|11|11|11|11|11|11|11|11|..|00|..|00|09|09|09|09|09|08|08|08|08|08|08|08|08|..|00|..|00|10 |09|09|09|09|08|08|08|08|08|08|08|08|..|00|..|00|10|10|10|10|10|11|11|11|11|11|11|11|11|..|00|..|00|09 |04|04|04|04|02|02|02|02|02|02|02|02|02|01|..|01|02|02|02|02|02|02|12|12|12|12|12|12|12|..|01|..|01|04 |05|05|05|05|05|05|05|05|05|05|05|05|05|01|..|01|04|04|04|04|04|04|04|04|04|04|04|04|04|04|01|..|01|05 |03|03|03|03|03|03|03|03|03|03|03|03|03|01|..|01|06|06|06|06|06|06|06|06|06|06|06|06|06|06|01|..|01|03

Fig. F.33 Instance 11_a, T = 34, TE = 15, TR = 2, Cycle = (1) · · · (16).

F.2.12

Problem 12

1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20.

|20|20|20|20|20|20|20|20|20|20|03|21|21|21|21|21|21|21|21|21|02|23|23|23|23|23|23|23|23|23|23|23|02|18|18|18|18|18|18|18|18|18|18|18|01|14|14|14|14|14|14|14|14|14|01|16|16|16|16|16 |15|15|15|15|15|15|04|19|19|19|19|19|19|19|19|19|19|19|04|21|21|21|21|21|21|21|21|21|21|21|02|23|23|23|23|23|23|23|23|23|23|23|02|18|18|18|18|18|18|18|18|18|01|14|14|14|14|14|14|14 |11|11|11|11|11|11|11|11|00|14|14|14|14|14|14|14|14|14|01|16|16|16|16|16|16|16|16|16|16|16|02|22|22|22|22|22|22|22|22|22|03|20|20|20|20|20|20|20|20|20|20|20|04|19|19|19|19|19|19|19 |13|13|13|13|13|13|06|09|09|09|09|09|09|09|09|09|09|09|07|10|10|10|10|10|10|10|10|10|10|10|00|12|12|12|12|12|12|12|12|12|00|11|11|11|11|11|11|11|11|11|11|11|07|09|09|09|09|09|09|09 |17|17|17|17|05|13|13|13|13|13|13|13|13|13|13|13|06|08|08|08|08|08|08|08|08|08|08|08|06|15|15|15|15|15|15|15|15|15|05|17|17|17|17|17|17|17|17|17|17|17|05|13|13|13|13|13|05|15|15|15 |02|21|21|21|21|21|21|21|21|21|21|21|04|17|17|17|17|17|17|17|17|17|05|13|13|13|13|13|13|13|13|13|13|13|06|08|08|08|08|08|08|08|08|08|08|08|06|10|10|10|10|10|10|10|10|10|00|12|12|12 |09|09|09|09|09|09|09|09|06|08|08|08|08|08|08|08|08|08|06|15|15|15|15|15|15|15|15|15|15|15|05|17|17|17|17|17|17|17|17|17|17|17|05|13|13|13|13|13|13|13|13|13|06|08|08|08|08|08|08|08 |18|18|18|18|18|18|18|18|18|18|02|22|22|22|22|22|22|22|22|22|22|22|03|20|20|20|20|20|20|20|20|20|20|20|04|19|19|19|19|19|19|19|19|19|19|19|04|21|21|21|21|21|21|21|21|21|04|17|17|17 |08|08|08|08|08|08|08|08|08|08|06|10|10|10|10|10|10|10|10|10|00|12|12|12|12|12|12|12|12|12|12|12|00|11|11|11|11|11|11|11|11|11|07|09|09|09|09|09|09|09|09|09|09|09|07|10|10|10|10|10 |14|14|14|14|14|14|14|14|14|14|01|16|16|16|16|16|16|16|16|16|02|22|22|22|22|22|22|22|22|22|22|22|03|20|20|20|20|20|20|20|20|20|20|04|19|19|19|19|19|19|19|19|19|19|04|21|21|21|21|21 |22|22|02|23|23|23|23|23|23|23|23|23|23|23|02|18|18|18|18|18|18|18|18|18|18|18|01|14|14|14|14|14|14|14|14|14|01|16|16|16|16|16|16|16|16|16|16|16|02|22|22|22|22|22|22|22|22|22|22|22 |23|23|23|23|23|23|23|02|18|18|18|18|18|18|18|18|01|14|14|14|14|14|14|14|14|14|14|14|01|16|16|16|16|16|16|16|16|16|02|22|22|22|22|22|22|22|22|22|22|22|03|20|20|20|20|20|20|20|20|20 |01|16|16|16|16|16|16|16|16|16|16|16|02|23|23|23|23|23|23|23|23|23|23|02|18|18|18|18|18|18|18|18|18|18|01|14|14|14|14|14|14|14|14|14|14|14|01|16|16|16|16|16|16|16|16|16|02|23|23|23 |06|10|10|10|10|10|10|10|10|10|10|10|00|12|12|12|12|12|12|12|12|12|12|12|00|11|11|11|11|11|11|11|11|11|07|09|09|09|09|09|09|09|09|09|09|09|06|15|15|15|15|15|15|15|15|15|15|15|06|08 |21|21|04|17|17|17|17|17|17|17|17|17|17|17|05|13|13|13|13|13|13|13|13|13|13|13|06|08|08|08|08|08|08|08|08|08|06|10|10|10|10|10|10|10|10|10|10|10|00|12|12|12|12|12|12|12|12|12|00|11 |03|22|22|22|22|22|22|22|22|22|22|22|03|20|20|20|20|20|20|20|20|20|20|20|04|19|19|19|19|19|19|19|19|19|19|19|04|21|21|21|21|21|21|21|21|21|21|21|02|23|23|23|23|23|23|23|23|23|02|22 |19|19|19|19|19|19|19|19|04|20|20|20|20|20|04|15|15|15|15|15|05|17|17|17|17|17|17|17|17|17|17|17|05|13|13|13|13|13|13|13|13|13|13|13|06|08|08|08|08|08|08|08|08|08|06|13|13|13|13|13 |10|10|10|10|06|15|15|15|15|15|15|15|15|15|15|15|04|19|19|19|19|19|19|19|19|19|19|19|04|21|21|21|21|21|21|21|21|21|21|21|02|23|23|23|23|23|23|23|23|23|02|18|18|18|18|18|18|18|18|18 |12|12|12|12|12|00|11|11|11|11|11|11|11|11|11|11|07|09|09|09|09|09|09|09|09|09|09|09|07|10|10|10|10|10|10|10|10|10|00|12|12|12|12|12|12|12|12|12|12|12|00|11|11|11|11|11|11|11|11|11 |16|16|16|00|12|12|12|12|12|12|12|12|12|12|00|11|11|11|11|11|11|11|11|11|11|11|07|09|09|09|09|09|09|09|09|09|06|15|15|15|15|15|15|15|15|15|15|15|05|17|17|17|17|17|17|17|17|17|17|17

366

T = 0 – 60:

T = 60 – 120: |16|16|16|16|16|16|00|12|12|12|12|12|12|12|12|12|12|00|11|11|11|11|11|11|11|11|11|11|00|14|14|14|14|14|14|14|14|14|14|14|01|16|16|16|16|16|16|16|16|16|00|11|11|11|11|11|11|11|11|11 |14|14|14|14|01|16|16|16|16|16|16|16|16|16|00|12|12|12|12|12|12|12|12|12|12|12|00|11|11|11|11|11|11|11|11|11|11|11|00|14|14|14|14|14|14|14|14|14|01|16|16|16|16|16|16|16|16|16|16|16 |19|19|19|19|04|21|21|21|21|21|21|21|21|21|21|21|02|23|23|23|23|23|23|23|23|23|23|23|02|22|22|22|22|22|22|22|22|22|22|22|02|21|21|21|21|21|21|21|21|21|21|21|02|23|23|23|23|23|23|23 |09|09|09|09|06|13|13|13|13|13|13|13|13|13|13|13|05|17|17|17|17|17|17|17|17|17|17|17|04|19|19|19|19|19|19|19|19|19|19|19|04|17|17|17|17|17|17|17|17|17|04|15|15|15|15|15|15|15|15|15 |15|15|15|15|15|15|15|15|06|08|08|08|08|08|08|08|08|08|08|08|06|09|09|09|09|09|09|09|09|09|07|10|10|10|10|10|10|10|10|10|10|10|06|13|13|13|13|13|13|13|13|13|13|13|06|08|08|08|08|08 |12|12|12|12|12|12|12|12|00|11|11|11|11|11|11|11|11|11|11|11|00|14|14|14|14|14|14|14|14|14|01|16|16|16|16|16|16|16|16|16|16|16|00|12|12|12|12|12|12|12|12|12|12|12|00|14|14|14|14|14 |08|08|08|08|06|10|10|10|10|10|10|10|10|10|10|10|06|08|08|08|08|08|08|08|08|08|08|08|06|09|09|09|09|09|09|09|09|09|09|09|07|10|10|10|10|10|10|10|10|10|06|13|13|13|13|13|13|13|13|13 |17|17|17|17|17|17|17|17|04|20|20|20|20|20|20|20|20|20|20|20|04|19|19|19|19|19|19|19|19|19|04|17|17|17|17|17|17|17|17|17|17|17|05|15|15|15|15|15|15|15|15|15|15|04|20|20|20|20|20|20 |10|10|10|10|10|10|06|15|15|15|15|15|15|15|06|13|13|13|13|13|13|13|13|13|13|13|06|08|08|08|08|08|08|08|08|08|06|09|09|09|09|09|09|09|09|09|09|09|07|10|10|10|10|10|10|10|10|10|10|10 |21|21|21|21|21|21|02|23|23|23|23|23|23|23|23|23|23|23|02|22|22|22|22|22|22|22|22|22|22|22|03|21|21|21|21|21|21|21|21|21|21|21|02|23|23|23|23|23|23|23|23|23|23|23|02|18|18|18|18|18 |02|18|18|18|18|18|18|18|18|18|18|18|02|21|21|21|21|21|21|21|21|21|21|21|04|20|20|20|20|20|20|20|20|20|20|20|04|19|19|19|19|19|19|19|19|19|19|19|04|17|17|17|17|17|17|17|17|17|17|17 |20|20|04|19|19|19|19|19|19|19|19|19|04|15|15|15|15|15|15|15|15|15|15|15|05|13|13|13|13|13|13|13|13|13|06|08|08|08|08|08|08|08|08|08|08|08|06|09|09|09|09|09|09|09|09|09|09|09|07|10 |23|23|23|23|23|23|23|23|02|22|22|22|22|22|22|22|22|22|22|22|02|18|18|18|18|18|02|23|23|23|23|23|23|23|23|23|23|23|02|22|22|22|22|22|22|22|22|22|02|21|21|21|21|21|21|21|21|21|21|21 |08|08|08|08|08|08|08|08|08|08|06|09|09|09|09|09|09|09|09|09|09|09|06|15|15|15|15|15|15|15|15|15|15|15|04|20|20|20|20|20|20|20|20|20|20|20|04|19|19|19|19|19|19|19|19|19|19|19|04|17 |11|11|11|11|11|11|11|11|11|11|00|14|14|14|14|14|14|14|14|14|14|14|00|10|10|10|10|10|10|10|10|10|06|13|13|13|13|13|13|13|13|13|13|13|06|08|08|08|08|08|08|08|08|08|08|08|06|09|09|09 |22|22|22|22|22|22|22|22|22|22|02|18|18|18|18|18|18|18|18|18|18|18|01|16|16|16|16|16|16|16|16|16|00|12|12|12|12|12|12|12|12|12|12|12|00|11|11|11|11|11|11|11|00|12|12|12|12|12|12|12 |13|13|13|13|13|13|05|17|17|17|17|17|17|17|17|17|17|17|04|20|20|20|20|20|20|20|04|17|17|17|17|17|05|15|15|15|15|15|15|15|15|15|15|15|04|20|20|20|20|20|20|20|20|20|20|04|19|19|19|19 |18|18|01|14|14|14|14|14|14|14|14|14|01|16|16|16|16|16|16|16|16|16|16|16|01|18|18|18|18|18|18|18|18|18|18|18|02|23|23|23|23|23|23|23|02|18|18|18|18|18|18|18|18|18|18|18|02|22|22|22 |11|11|07|09|09|09|09|09|09|09|09|09|07|10|10|10|10|10|10|10|10|10|10|10|00|12|12|12|12|12|12|12|12|12|12|00|11|11|11|11|11|11|11|11|11|11|00|14|14|14|14|14|14|14|14|14|14|14|00|16 |04|20|20|20|20|20|20|20|20|20|04|19|19|19|19|19|19|19|19|19|19|19|04|21|21|21|21|21|21|21|21|21|21|21|02|18|18|18|18|18|18|18|18|18|18|18|02|22|22|22|22|22|22|22|22|22|22|22|03|21

T = 120 – 180: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20.

|11|11|00|12|12|12|12|12|12|12|12|12|12|12|00|14|14|14|14|14|14|14|00|12|12|12|12|12|12|12|12|12|12|12|00|16|16|16|16|16|16|16|16|16|16|16|02|22|22|22|22|22|22|22|22|22|03|20|20|20 |00|11|11|11|11|11|11|11|11|11|11|11|00|12|12|12|12|12|12|12|12|12|12|12|00|16|16|16|16|16|16|16|16|16|16|16|02|22|22|22|22|22|22|22|22|22|22|22|03|20|20|20|20|20|20|20|20|20|04|19 |23|23|23|23|02|18|18|18|18|18|18|18|18|18|18|18|02|23|23|23|23|23|23|23|23|23|23|23|02|18|18|18|18|18|18|18|18|18|18|18|01|14|14|14|14|14|14|14|14|14|14|14|01|16|16|16|16|16|16|16 |15|15|04|20|20|20|20|20|20|20|20|20|20|20|04|19|19|19|19|19|19|19|19|19|04|15|15|15|15|15|15|15|15|15|15|15|04|17|17|17|17|17|17|17|17|17|17|17|05|13|13|13|13|13|13|13|13|13|06|08 |08|08|08|08|08|08|06|10|10|10|10|10|10|10|10|10|10|10|06|13|13|13|13|13|13|13|13|13|13|13|06|08|08|08|08|08|08|08|08|08|08|08|06|15|15|15|15|15|15|15|15|15|15|15|05|17|17|17|17|17 |14|14|14|14|14|14|01|16|16|16|16|16|16|16|16|16|16|16|00|11|11|11|11|11|11|11|11|11|11|11|00|14|14|14|14|14|14|14|14|14|14|14|01|16|16|16|16|16|16|16|16|16|16|16|02|23|23|23|23|23 |13|13|06|09|09|09|09|09|09|09|09|09|09|09|06|08|08|08|08|08|08|08|06|09|09|09|09|09|09|09|09|09|09|09|07|10|10|10|10|10|10|10|10|10|00|12|12|12|12|12|12|12|12|12|12|12|00|11|11|11 |20|20|20|20|04|19|19|19|19|19|19|19|19|19|19|19|04|15|15|15|15|15|15|15|15|15|05|17|17|17|17|17|17|17|17|17|17|17|05|13|13|13|13|13|13|13|13|13|13|13|06|08|08|08|08|08|08|08|08|08 |06|13|13|13|13|13|13|13|13|13|13|13|06|09|09|09|09|09|09|09|09|09|09|09|07|10|10|10|10|10|10|10|10|10|10|10|00|12|12|12|12|12|12|12|12|12|12|12|00|11|11|11|11|11|11|11|11|11|07|09 |18|18|18|18|18|18|02|23|23|23|23|23|23|23|23|23|23|23|02|21|21|21|21|21|21|21|21|21|21|21|04|20|20|20|20|20|20|20|20|20|04|19|19|19|19|19|19|19|19|19|19|19|04|21|21|21|21|21|21|21 |05|15|15|15|15|15|15|15|05|17|17|17|17|17|17|17|17|17|17|17|04|20|20|20|20|20|20|20|20|20|20|20|04|19|19|19|19|19|19|19|19|19|04|21|21|21|21|21|21|21|21|21|21|21|03|22|22|22|22|22 |10|10|10|10|10|10|10|10|06|13|13|13|13|13|13|13|13|13|13|13|06|08|08|08|08|08|08|08|08|08|08|08|06|09|09|09|09|09|09|09|09|09|07|10|10|10|10|10|10|10|10|10|10|10|00|12|12|12|12|12 |03|22|22|22|22|22|22|22|22|22|22|22|02|18|18|18|18|18|18|18|18|18|18|18|02|23|23|23|23|23|23|23|23|23|23|23|02|21|21|21|21|21|21|21|02|23|23|23|23|23|23|23|23|23|23|23|02|18|18|18 |17|17|17|17|17|17|17|17|17|17|04|20|20|20|20|20|20|20|20|20|20|20|04|19|19|19|19|19|19|19|19|19|19|19|04|15|15|15|15|15|15|15|15|15|05|17|17|17|17|17|17|17|17|17|17|17|05|13|13|13 |09|09|09|09|06|08|08|08|08|08|08|08|08|08|08|08|06|10|10|10|10|10|10|10|10|10|10|10|07|11|11|11|11|11|11|11|11|11|11|11|07|09|09|09|09|09|09|09|09|09|09|09|06|15|15|15|15|15|15|15 |12|12|12|12|00|14|14|14|14|14|14|14|14|14|14|14|01|16|16|16|16|16|16|16|16|16|02|22|22|22|22|22|22|22|22|22|22|22|03|20|20|20|20|20|20|20|20|20|20|20|04|19|19|19|19|19|19|19|19|19 |19|19|19|19|19|19|04|15|15|15|15|15|15|15|15|15|15|15|05|17|17|17|17|17|17|17|17|17|05|13|13|13|13|13|13|13|13|13|13|13|06|08|08|08|08|08|08|08|08|08|08|08|06|10|10|10|10|10|10|10 |22|22|02|23|23|23|23|23|02|21|21|21|21|21|21|21|21|21|21|21|03|22|22|22|22|22|22|22|03|21|21|21|21|21|21|21|21|21|02|18|18|18|18|18|18|18|18|18|18|18|01|14|14|14|14|14|14|14|14|14 |16|16|16|16|16|16|16|16|00|11|11|11|11|11|11|11|11|11|11|11|00|14|14|14|14|14|14|14|14|14|14|14|00|12|12|12|12|12|00|11|11|11|11|11|11|11|11|11|11|11|07|09|09|09|09|09|09|09|09|09 |21|21|21|21|21|21|21|21|21|21|03|22|22|22|22|22|22|22|22|22|22|22|02|18|18|18|18|18|18|18|18|18|18|18|02|23|23|23|23|23|23|23|23|23|23|23|02|18|18|18|18|18|18|18|18|18|18|18|01|14

Fig. F.34 Instance 12_d, TE = 12, TR = 0. Runs 2 − 11 are shown, where the planning block for each run is T = 18.

Benchmark Problems for the PBSPCC

1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20.

F.2 Benchmark Problems

367

T = 0 – 24: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21.

|17|17|17|05|13|13|13|13|13|13|13|13|13|13|13|06|10|10|10|10|10|10|10|10 |10|10|00|12|12|12|12|12|12|12|12|12|12|12|00|14|14|14|14|14|14|14|00|11 |11|11|11|11|11|11|11|11|11|11|00|12|12|12|12|12|12|12|12|12|00|14|14|14 |14|14|14|14|14|14|00|11|11|11|11|11|11|11|11|11|11|11|00|12|12|12|12|12 |12|12|12|12|12|12|00|16|16|16|16|16|16|16|16|16|16|02|22|22|22|22|22|22 |22|22|22|22|22|02|18|18|18|18|18|18|18|18|18|18|18|02|23|23|23|23|23|23 |23|23|23|02|22|22|22|22|22|22|22|22|22|22|22|02|16|16|16|16|16|16|02|23 |23|23|23|23|23|23|23|23|23|23|02|18|18|18|18|18|18|18|18|18|18|02|21|21 |21|21|21|21|21|21|21|21|21|04|15|15|15|15|15|15|15|15|15|15|04|20|20|20 |20|20|17|17|17|17|17|17|04|19|19|19|19|19|19|19|04|17|17|17|17|17|17|17 |03|20|20|20|20|20|20|20|20|20|20|20|04|04|19|19|19|19|19|19|19|19|19|19 |04|15|15|15|15|15|15|15|15|15|15|04|21|21|21|21|21|21|21|21|21|21|21|03 |18|18|18|18|18|18|18|02|21|21|21|21|21|22|22|22|22|22|22|02|18|18|18|18 |16|16|16|16|16|16|16|16|02|23|23|23|23|23|23|23|23|23|23|23|02|16|16|16 |13|13|13|13|13|06|10|10|10|10|10|10|10|10|10|10|10|06|13|13|13|13|13|13 |06|10|10|10|10|10|10|09|09|09|09|09|06|06|08|08|08|08|08|08|08|08|08|08 |08|08|08|08|08|08|08|08|08|08|06|09|09|09|09|09|09|09|09|09|09|09|06|08 |09|09|09|09|09|09|09|09|06|08|08|08|08|08|13|13|13|13|13|13|06|09|09|09 |11|11|11|11|00|14|14|14|14|14|14|14|14|14|14|14|00|11|11|11|11|11|11|11 |19|19|19|19|19|19|19|19|19|19|04|20|20|20|20|20|20|20|20|20|20|20|04|19 |15|15|15|15|15|15|04|17|17|17|17|17|17|17|17|17|17|17|04|15|15|15|15|15

Fig. F.35 Instance 12_a, T = 24, TE = 12, TR = 0, Cycle = (1, 2, 3, 4, 5, 6, 7, 8, 9, 10)(11, 12)(13) · · · (21).

T = 0 – 28: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20.

|06|15|15|15|15|15|15|15|15|13|13|13|13|13|06|06|08|08|08|08|08|08|08|08|08|08|08|08 |21|21|21|21|04|17|17|17|17|17|17|17|17|17|17|17|17|17|04|21|21|21|21|21|21|21|21|21 |15|15|15|15|06|08|08|08|08|08|08|08|08|08|08|08|08|08|06|15|15|15|15|15|15|15|15|15 |18|18|18|18|02|22|22|22|22|22|22|22|22|22|22|22|22|22|02|18|18|18|18|18|18|18|18|18 |22|22|22|22|22|22|02|18|18|18|18|18|18|18|18|18|18|18|18|18|02|22|22|22|22|22|22|22 |19|19|19|19|19|19|19|19|19|04|20|20|20|20|20|20|20|17|17|17|17|17|17|04|19|19|19|19 |13|13|13|13|13|13|13|13|13|13|06|09|09|09|09|09|09|09|09|09|09|09|09|09|06|13|13|13 |20|20|20|20|20|20|20|20|20|20|20|04|19|19|19|19|19|19|19|19|19|19|19|19|19|04|20|20 |08|08|08|08|08|08|09|09|09|09|09|09|06|13|13|13|13|13|13|13|13|13|13|13|13|13|06|08 |07|10|10|10|10|10|10|10|10|10|10|10|10|07|11|11|11|11|11|11|11|11|11|11|11|11|11|07 |16|16|16|16|16|16|16|16|16|00|14|14|14|14|14|14|14|14|14|14|14|14|14|00|12|12|12|12 |12|12|12|12|12|12|12|00|16|16|16|16|16|16|16|16|16|16|16|16|16|00|14|14|14|14|14|14 |14|14|14|14|14|00|12|12|12|12|12|12|12|12|12|12|12|12|12|00|16|16|16|16|16|16|16|16 |16|02|23|23|23|23|23|23|23|23|23|23|02|22|22|22|22|22|22|22|22|22|02|23|23|23|23|23 |23|23|23|18|18|18|18|18|02|21|21|21|21|21|21|21|21|21|21|21|21|04|17|17|17|17|17|17 |17|17|17|17|17|17|04|19|19|19|19|19|19|19|04|04|20|20|20|20|20|20|20|20|20|20|20|20 |03|21|21|21|21|21|21|21|21|21|02|23|23|23|23|23|23|23|23|23|23|23|23|23|02|16|16|16 |09|09|09|09|09|09|09|06|15|15|15|15|15|15|15|15|15|15|15|15|06|10|10|10|10|10|10|10 |10|10|07|11|11|11|11|11|11|11|11|11|11|11|11|11|00|12|12|12|12|12|12|12|12|00|11|11 |11|11|11|11|14|14|14|14|14|14|14|00|10|10|10|10|10|10|10|10|10|10|06|09|09|09|09|09

Fig. F.36 Instance 12_b, T = 28, TE = 14, TR = 0, Cycle = (1) · · · (10)(11, 12, 13, 14, 15, 16, 17)(18, 19, 20).

Benchmark Problems for the PBSPCC

368

T = 0 – 18: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.

|14|14|14|14|14|14|14|14|14|14|14|14|14|14|00|12|12|12 |11|10|10|10|10|10|10|10|10|10|10|10|10|07|09|09|09|09 |10|10|06|13|13|13|13|13|13|13|13|06|10|10|10|10|10|10 |12|12|12|12|12|00|16|16|16|16|16|16|16|16|16|16|16|16 |23|23|23|02|21|21|21|21|21|21|21|21|21|21|21|21|21|21 |20|20|20|20|20|20|20|20|20|20|20|20|20|20|20|03|22|22 |16|16|16|16|16|16|16|18|18|18|18|18|01|14|14|14|14|14 |03|22|22|22|22|22|22|22|22|22|22|22|22|22|22|22|22|03 |07|11|11|11|11|11|11|11|11|11|11|11|11|11|11|11|11|07 |13|13|13|13|13|06|08|08|08|08|08|08|08|08|08|08|08|08 |21|21|21|21|21|04|17|17|17|17|17|17|15|15|15|15|15|15 |17|17|17|17|17|17|17|04|19|19|19|19|19|19|19|19|19|19 |08|08|08|08|08|08|08|06|13|13|13|13|13|13|13|13|13|13 |18|18|18|18|18|18|18|18|02|23|23|23|23|23|23|23|23|23 |19|19|19|19|19|19|19|19|19|04|17|17|17|17|17|17|17|17 |22|22|23|23|23|23|23|23|23|23|02|18|18|18|18|18|18|18 |15|15|15|15|15|15|15|15|15|15|15|15|15|04|20|20|20|20 |09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|07|11|11 |11|11|12|12|12|12|12|12|12|12|12|12|12|12|12|12|00|14

T = 18 – 36: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.

|12|12|12|12|12|12|12|12|12|12|12|12|12|00|11|11|11|11 |09|09|09|09|08|08|08|08|08|06|10|10|10|10|10|10|10|10 |10|10|10|10|10|10|10|10|10|10|10|00|12|12|12|12|12|12 |16|16|16|16|16|02|23|23|23|23|23|23|23|23|23|23|23|23 |21|21|04|15|15|15|15|15|15|15|15|15|15|15|15|04|20|20 |22|22|22|22|22|22|22|22|22|22|22|22|02|16|16|16|16|16 |01|01|16|16|16|16|16|16|16|16|16|16|16|16|01|14|14|14 |20|20|20|20|20|20|20|20|20|20|20|20|20|20|20|20|20|03 |09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|07 |08|08|08|08|08|06|13|13|13|13|13|13|13|13|13|13|13|13 |15|15|15|15|15|04|19|19|19|19|19|04|21|21|21|21|21|21 |19|19|19|19|19|19|19|04|17|17|17|17|17|17|17|17|17|17 |13|13|13|13|13|13|13|06|08|08|08|08|08|08|08|08|08|08 |23|23|23|23|23|23|23|23|02|18|18|18|18|18|18|18|18|18 |17|17|17|17|17|17|17|17|17|04|19|19|19|19|19|19|19|19 |18|18|18|18|18|18|18|18|18|18|02|22|22|22|22|22|22|22 |20|21|21|21|21|21|21|21|21|21|21|21|21|04|15|15|15|15 |11|11|11|11|11|11|11|11|11|11|11|11|11|11|11|07|09|09 |14|14|14|14|14|14|14|14|14|14|14|14|14|14|14|14|00|11

Fig. F.37 Instance 12_c, T = 36, TE = 18, TR = 0, Cycle = (1, 2, 3, 4, 5, 6, 7)(8) · · · (19).

F.2 Benchmark Problems

F.2.13

369

Problem 13

T = 0 – 28: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.

|00|..|..|..|00|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04 |..|..|00|..|..|..|00|..|..|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08 |..|..|00|..|..|..|00|..|..|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02 |..|..|..|00|..|..|..|00|..|07|07|08|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09 |..|..|..|00|..|..|..|00|..|..|..|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01 |05|05|05|05|05|05|05|05|05|05|00|..|..|..|00|05|05|05|05|05|05|05|05|05|05|05|05|05 |07|07|07|07|07|07|07|07|07|07|..|00|..|..|..|00|..|07|07|07|07|07|07|07|07|07|07|07 |03|03|03|03|03|03|03|03|03|03|03|..|00|..|..|..|00|..|03|03|03|03|03|03|03|03|03|03 |08|08|08|08|08|08|08|08|08|08|07|07|07|07|07|..|00|..|..|..|00|06|06|06|06|06|07|08 |09|09|09|09|09|09|09|09|09|09|09|09|09|08|07|07|07|07|..|00|..|..|..|00|..|..|..|09 |01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|..|..|..|00|..|..|..|00|..|..|..|01 |06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|00|..|..|..|00|06|06|06 |02|02|02|02|02|02|02|02|02|02|03|03|03|03|03|03|03|03|03|..|00|..|..|..|00|..|..|02 |04|04|04|04|04|04|04|05|05|05|05|05|05|05|05|05|06|06|06|06|06|06|00|..|..|..|00|04

Fig. F.38 Instance 13_b, T = 28, TE = 24, TR = 4, Cycle = (1) · · · (14).

T = 0 – 25: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.

|00|..|..|..|00|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06 |00|..|..|..|00|04|04|03|03|03|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04 |..|..|00|..|..|..|00|..|..|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08 |..|..|00|..|..|..|00|..|..|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02 |..|..|..|00|..|..|..|00|..|03|03|02|01|01|01|01|01|01|01|01|01|01|01|01|01 |..|..|..|00|..|..|..|00|..|..|..|09|09|09|09|09|09|09|09|09|09|09|09|09|09 |03|03|03|03|03|03|03|03|..|00|..|..|..|00|..|07|07|07|07|07|07|07|07|07|07 |07|07|07|07|07|07|07|07|..|00|..|..|..|00|..|03|03|03|03|03|03|03|03|03|03 |04|04|04|04|04|04|04|04|04|04|04|04|00|..|..|..|00|05|05|05|05|05|05|05|04 |09|09|09|09|09|09|09|09|09|09|09|09|..|..|..|00|..|..|..|00|..|..|..|09|09 |01|01|01|01|01|01|01|01|01|01|01|01|01|..|..|..|00|..|..|..|00|..|..|..|01 |08|08|08|08|08|08|08|08|08|08|08|08|07|07|07|07|..|00|..|..|..|00|..|..|02 |02|02|02|02|02|02|02|02|02|02|03|03|03|03|03|03|..|00|..|..|..|00|..|..|08 |06|06|06|06|06|06|07|07|07|07|07|07|07|07|06|06|06|06|00|..|..|..|00|06|06 |05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|00|..|..|..|00|05|05

Fig. F.39 Instance 13_a, T = 25, TE = 21, TR = 4, Cycle = (1) · · · (6)(7, 8)(9)(10)(11)(12, 13)(14)(15).

F.2.14

Problem 14

T = 0 – 30: 1. 2. 3. 4. 5. 6. 7. 8.

|00|..|..|..|00|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01 |..|..|..|00|..|..|..|00|..|..|..|..|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|.. |..|..|..|00|..|..|..|00|00|..|02|02|02|02|02|02|03|04|04|04|04|04|04|04|04|04|04|04|04|04 |02|02|02|02|02|02|02|02|02|02|..|00|..|..|..|00|..|02|02|02|02|02|02|02|02|02|02|02|02|02 |03|03|03|03|03|03|03|03|03|02|02|..|00|..|..|..|00|..|..|03|03|03|03|03|03|03|03|03|03|03 |05|05|05|05|05|05|05|05|05|05|05|05|05|04|03|02|02|02|..|00|..|..|..|00|..|..|..|..|05|05 |04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|..|..|..|00|..|..|..|00|..|..|..|04 |01|01|01|01|01|01|02|02|03|03|03|03|03|03|03|03|03|03|03|03|03|..|..|00|..|..|..|00|01|01

Fig. F.40 Instance 14_b, T = 30, TE = 26, TR = 4, Cycle = (1) · · · (8).

Benchmark Problems for the PBSPCC

370

T = 0 – 19: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.

|00|..|00|..|..|..|04|04|04|04|03|03|03|03|03|03|03|..|.. |..|..|00|..|00|..|02|02|02|02|02|02|02|02|02|02|02|02|02 |..|..|..|00|..|00|..|..|..|04|04|05|05|05|05|05|05|05|.. |..|..|..|..|00|..|00|..|..|..|04|04|04|04|04|04|04|04|04 |02|02|02|02|02|02|02|..|00|..|00|01|01|01|01|01|01|01|01 |05|05|05|05|05|05|..|..|..|..|00|..|00|..|..|..|..|05|05 |04|04|04|04|04|04|04|..|..|..|00|..|00|..|..|03|03|03|03 |03|03|03|03|03|03|03|03|03|03|03|..|..|00|..|00|..|..|.. |01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|00|..|00|.. |..|..|..|..|05|05|05|05|05|05|05|05|..|..|..|..|00|..|00

T = 19 – 38: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.

|00|..|00|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01 |02|..|00|..|00|..|..|03|03|03|03|03|03|03|03|03|03|03|03 |..|..|..|00|..|00|..|..|..|04|04|04|04|04|04|04|04|04|04 |04|..|..|..|00|..|00|..|..|..|..|05|05|05|05|05|05|05|05 |01|01|01|01|01|01|01|01|00|..|00|..|02|02|02|02|02|02|02 |05|05|05|05|05|05|..|..|..|..|00|..|00|..|..|..|..|05|05 |03|03|03|03|03|03|03|03|..|..|00|..|00|..|..|..|04|04|04 |04|04|04|04|04|04|04|04|04|04|..|..|..|00|..|00|..|..|03 |02|02|02|02|02|02|02|02|02|02|02|02|02|02|..|00|..|00|01 |..|..|..|..|05|05|05|05|05|05|05|05|..|..|..|..|00|..|00

Fig. F.41 Instance 14_a, T = 38, TE = 17, TR = 2, Cycle = (1) · · · (10).

F.2.15

Problem 15

T = 0 – 25: 1. 2. 3. 4.

|00|..|..|..|..|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02 |02|02|02|02|02|02|..|..|..|..|00|..|..|..|..|03|03|03|03|03|03|03|03|03|03 |01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|..|..|00|..|..|01 |03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|..|..|01|01|01|01|01|01|01

T = 25 – 50: 1. 2. 3. 4.

|02|02|02|02|02|02|02|02|..|..|..|..|00|..|..|..|..|03|03|03|03|03|03|03|03 |03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|..|..|..|..|00|..|.. |01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01 |..|..|00|..|..|..|..|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02

T = 50 – 74: 1. 2. 3. 4.

|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|..|..|..|.. |..|..|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02 |01|01|01|01|01|01|..|..|00|..|..|01|01|01|01|01|01|01|01|01|01|01|01|01 |02|02|02|..|..|01|01|01|01|01|01|01|..|..|00|..|..|..|..|03|03|03|03|03

Fig. F.42 Instance 15_b, T = 74, TE = 37, TR = 0, Cycle = (1) · · · (4).

F.2 Benchmark Problems

371

T = 0 – 29: 1. 2. 3. 4. 5.

|..|..|00|..|00|..|..|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01 |00|..|..|..|..|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|..|..|..|..|00|.. |03|03|03|03|03|03|..|..|..|..|00|..|00|..|..|..|..|02|02|02|02|02|02|02|02|02|02|02|02 |02|02|02|02|02|02|02|02|02|02|02|..|..|..|..|00|..|00|..|..|..|..|03|03|03|03|03|03|03 |01|01|01|01|01|01|01|01|..|..|02|02|02|02|02|02|02|02|..|..|..|..|00|..|00|..|..|01|01

T = 29 – 58: 1. 2. 3. 4. 5.

|..|..|00|..|00|..|..|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01 |00|..|..|..|..|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|..|..|..|..|00|.. |02|02|02|02|02|02|..|..|..|..|00|..|00|..|..|..|..|03|03|03|03|03|03|03|03|03|03|03|03 |03|03|03|03|03|03|03|03|03|03|03|..|..|..|..|00|..|00|..|..|..|..|02|02|02|02|02|02|02 |01|01|01|01|01|01|01|01|..|..|03|03|03|03|03|03|03|03|..|..|..|..|00|..|00|..|..|01|01

Fig. F.43 Instance 15_a, T = 58, TE = 27, TR = 2, Cycle = (1) · · · (5).

F.2.16

Problem 16

T = 0 – 32: 1. 2. 3. 4. 5. 6. 7. 8.

|00|..|05|05|05|05|05|05|05|05|05|05|05|04|04|04|00|..|05|05|05|05|05|05|05|05|05|05|05|04|04|04 |01|01|01|01|00|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|00|01|01|01|01|01|01|01|01|01|01|01 |05|05|05|01|01|00|..|02|02|02|02|02|05|05|05|05|05|05|05|01|01|00|..|02|02|02|02|02|05|05|05|05 |06|06|06|..|01|01|00|..|..|06|06|06|06|06|06|06|06|06|06|..|01|01|00|..|..|06|06|06|06|06|06|06 |02|02|02|02|02|02|02|02|..|00|..|02|02|02|02|02|02|02|02|02|02|02|02|02|..|00|..|02|02|02|02|02 |03|03|03|03|03|03|03|03|03|03|03|03|03|00|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|00|03|03 |04|04|04|04|04|04|04|04|04|04|04|04|04|04|00|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|00|04 |..|..|06|06|06|06|06|06|06|06|..|..|03|03|03|00|..|..|06|06|06|06|06|06|06|06|..|..|03|03|03|00

Fig. F.44 Instance 16_b, T = 16, TE = 16, TR = 0, Cycle = (1) · · · (8).

T = 0 – 26: 1. 2. 3. 4. 5. 6. 7. 8. 9.

|00|..|..|..|00|01|01|01|01|01|01|01|01|01|04|04|04|04|04|03|03|03|03|03|03|03 |..|00|..|..|..|00|..|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02 |..|..|00|..|..|..|00|..|..|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06 |01|01|01|01|01|01|01|01|00|..|..|..|00|01|01|01|01|01|01|01|01|01|01|01|01|01 |02|02|02|02|02|02|02|02|..|00|..|..|..|00|..|05|05|05|05|05|05|05|05|05|05|02 |06|06|06|06|06|06|06|06|06|06|..|..|00|..|..|..|00|04|04|04|04|04|04|04|..|06 |04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|00|..|..|..|00|04|04|04|04|04|04 |05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|..|00|..|..|..|00|..|05|05 |03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|00|..|..|..|00|03

Fig. F.45 Instance 16_c, T = 26, TE = 22, TR = 4, Cycle = (1) · · · (9).

T = 0 – 27: 1. 2. 3. 4. 5. 6. 7.

|00|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01 |04|04|04|04|04|04|00|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04 |06|06|06|06|..|04|04|04|00|..|..|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06 |05|05|05|05|05|05|05|05|05|05|05|05|05|..|00|..|05|05|05|05|05|05|05|05|05|05|05 |03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|00|03|03|03|03|03|03|03 |02|02|02|06|06|06|06|06|06|06|06|06|05|05|05|05|05|..|03|03|03|00|..|02|02|02|02 |01|01|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|..|00|01

Fig. F.46 Instance 16_d, T = 27, TE = 27, TR = 0, Cycle = (1) · · · (7).

Benchmark Problems for the PBSPCC

372 T = 0 – 30: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.

|..|00|..|02|02|02|02|02|02|02|..|00|..|..|..|..|00|01|01|01|01|01|01|01|01|01|00|..|..|.. |..|..|00|..|..|06|06|06|06|06|..|..|00|..|..|..|..|00|..|05|05|05|05|05|05|01|01|00|..|.. |..|..|..|00|01|01|01|01|01|01|01|01|01|00|..|..|..|..|00|..|..|06|06|06|06|06|..|..|00|.. |..|..|..|..|00|03|03|03|03|03|03|03|03|03|00|..|..|..|..|00|03|03|03|03|03|03|03|03|03|00 |..|..|..|..|00|04|04|04|04|04|04|04|04|04|00|..|..|..|..|00|..|02|02|02|02|02|02|02|..|00 |00|..|..|..|..|00|..|05|05|05|05|05|05|05|..|00|..|..|..|..|00|04|04|04|04|04|04|04|04|04 |..|00|..|..|..|..|00|..|..|06|06|06|06|06|..|..|00|..|..|..|..|00|..|05|05|05|05|05|05|05 |..|..|00|..|..|..|..|00|..|02|02|02|02|02|02|02|..|00|..|..|..|..|00|..|..|06|06|06|06|06 |02|02|02|02|..|00|..|..|..|..|00|..|..|06|06|06|06|06|..|..|00|..|..|..|..|00|..|02|02|02 |01|01|01|01|01|00|..|..|..|..|00|01|01|01|01|01|01|01|01|01|00|..|..|..|..|00|01|01|01|01 |06|06|06|..|04|04|00|..|..|..|..|00|..|05|05|05|05|05|05|05|..|00|..|..|..|..|00|..|..|06 |05|05|05|05|05|05|..|00|..|..|..|..|00|03|03|03|03|03|03|03|03|03|00|..|..|..|..|00|..|05 |03|03|03|03|03|03|03|00|..|..|..|..|00|04|04|04|04|04|04|04|04|04|00|..|..|..|..|00|03|03 |04|04|04|04|04|05|05|..|00|..|..|..|..|00|..|02|02|02|02|02|02|02|..|00|..|..|..|..|00|04 |..|..|06|06|06|06|05|05|..|00|..|..|..|..|00|..|..|06|06|06|06|06|..|..|00|..|..|..|..|00

Fig. F.47 Instance 16_a, T = 30, TE = 10, TR = 5, Cycle = (1) · · · (15).

F.2.17

Problem 17 T = 0 – 18: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.

|00|..|00|..|..|..|06|06|06|06|06|06|06|06|06|..|..|.. |..|..|00|..|00|01|01|01|01|01|01|01|01|01|01|01|01|01 |..|..|00|..|00|..|..|05|05|05|05|05|05|05|05|05|05|05 |..|..|..|00|..|00|00|..|..|05|03|03|03|03|03|03|03|03 |02|02|02|01|01|01|00|..|00|..|02|02|02|05|06|06|06|06 |06|06|06|06|06|06|06|..|..|..|00|..|00|04|04|04|04|04 |03|03|03|03|03|03|03|..|..|..|00|..|00|..|02|02|02|05 |05|05|05|05|05|05|05|05|05|05|..|..|00|..|00|..|..|.. |01|01|02|02|02|02|02|02|02|02|02|..|00|..|00|..|02|02 |04|04|04|04|04|04|04|04|04|04|04|04|04|04|00|..|00|.. |00|01|01|01|02|..|03|03|03|03|03|..|02|02|02|..|00|..

T = 18 – 36: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.

|00|..|00|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04 |01|01|00|..|00|..|..|..|03|03|03|03|03|03|03|03|03|.. |..|..|00|..|00|..|..|05|05|05|05|05|05|05|05|05|05|05 |03|..|..|..|00|..|00|..|..|..|06|06|06|06|06|06|06|06 |06|06|06|..|..|..|00|..|00|..|02|02|02|02|02|02|02|02 |04|04|04|04|04|04|04|04|04|04|00|..|00|..|..|..|06|06 |05|05|05|05|05|05|05|05|..|..|00|..|00|..|..|..|03|03 |03|03|03|03|03|03|03|03|03|..|..|..|00|..|00|..|..|05 |02|02|02|02|02|02|02|02|02|02|02|..|00|..|00|01|01|01 |..|..|06|06|06|06|06|06|06|06|06|..|..|..|00|..|00|04 |00|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|00|..

Fig. F.48 Instance 17_a, T = 36, TE = 16, TR = 2, Cycle = (1) · · · (11).

F.2 Benchmark Problems

373

T = 0 – 34: 1. 2. 3. 4. 5. 6. 7. 8. 9.

|..|..|00|..|..|05|05|05|05|05|05|05|05|05|05|05|..|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|00|.. |02|02|04|04|04|04|04|00|..|..|..|00|04|04|04|04|04|04|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02 |05|05|05|05|05|05|..|..|00|..|..|..|00|..|..|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05 |06|06|06|06|05|..|04|04|04|04|04|04|04|00|..|..|..|00|..|..|..|06|06|06|06|06|06|06|06|06|06|06|06|06 |03|03|03|03|03|03|03|03|03|03|03|..|..|..|00|..|..|..|00|..|..|..|03|03|03|03|03|03|03|03|03|03|03|03 |01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|00|..|..|..|00|01|01|01|01|01|01|01|01|01 |04|04|04|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|01|01|01|01|01|01|00|..|..|..|00|00|04|04|04 |04|02|02|02|02|02|02|02|..|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|..|..|..|00|..|..|..|00|04|04 |04|..|05|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|05|..|01|01|01|00|..|..|..|00|04|04

Fig. F.49 Instance 17_c, T = 34, TE = 30, TR = 4, Cycle = (1) · · · (9).

T = 0 – 21: 1. 2. 3. 4. 5. 6. 7.

|00|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04 |01|01|01|01|01|01|01|01|01|01|00|01|01|01|01|01|01|01|01|01|01 |05|05|05|05|05|05|05|05|..|01|01|01|00|..|..|05|05|05|05|05|05 |03|03|03|03|03|03|03|05|05|05|05|05|05|05|05|05|..|..|00|..|.. |06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06 |02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02 |04|04|02|..|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03

T = 21 – 42: 1. 2. 3. 4. 5. 6. 7.

|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04 |01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01 |05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05 |..|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03 |06|06|06|06|..|..|..|00|..|..|..|06|06|06|06|06|06|06|06|06|06 |02|02|02|02|02|02|02|02|02|02|02|02|02|02|..|00|..|02|02|02|02 |03|03|05|06|06|06|06|06|06|06|06|06|05|02|02|02|02|02|..|00|04

Fig. F.50 Instance 17_d, T = 42, TE = 42, TR = 0, Cycle = (1) · · · (7).

T = 0 – 30: 1. 2. 3. 4. 5. 6. 7. 8. 9.

|..|..|00|..|..|..|06|06|06|06|06|06|06|06|06|06|06|06|06|06|05|..|01|01|01|01|01|01|00|.. |..|..|..|00|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|00 |..|..|..|00|..|..|..|00|..|02|02|02|02|02|02|02|..|03|03|03|03|03|03|03|03|03|03|03|03|03 |02|02|02|02|02|02|02|02|..|00|..|..|..|00|..|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02 |05|05|05|05|05|05|05|02|02|..|00|..|..|..|00|04|04|04|..|05|05|05|05|05|05|05|05|05|05|05 |06|06|06|06|06|06|06|05|02|02|..|00|..|..|..|00|..|..|..|06|06|06|06|06|06|06|06|06|06|06 |03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|..|..|..|00|..|..|..|00|..|..|..|03 |01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|00|..|..|..|00|01|01|01 |04|04|04|04|04|..|05|05|05|05|05|05|05|05|05|05|05|05|05|05|..|01|01|00|..|..|..|00|04|04

Fig. F.51 Instance 17_b, T = 30, TE = 26, TR = 4, Cycle = (1) · · · (9).

Benchmark Problems for the PBSPCC

374

F.2.18

Problem 18

T = 0 – 32: 1. 2. 3. 4. 5. 6.

|..|..|00|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|00|.. |02|02|02|..|00|..|..|..|00|..|..|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03 |04|04|04|04|04|04|04|04|04|..|..|..|00|..|..|..|00|..|..|..|04|04|04|04|04|04|04|04|04|04|04|04 |03|03|03|03|03|03|03|03|03|03|03|03|..|..|00|..|..|..|00|..|02|02|02|02|02|02|02|02|02|02|02|02 |01|01|01|01|..|..|..|04|04|04|04|04|04|04|04|04|04|04|04|04|04|..|..|..|00|..|..|..|00|01|01|01 |02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|..|00|..|..|..|00|..|..

T = 32 – 64: 1. 2. 3. 4. 5. 6.

|..|..|00|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|00|.. |03|03|..|..|00|..|..|..|00|00|00|..|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02 |04|04|04|04|04|04|04|04|04|..|..|..|00|..|..|..|00|..|..|..|04|04|04|04|04|04|04|04|04|04|04|04 |02|02|02|02|02|02|02|02|02|02|02|02|02|..|00|..|..|..|00|..|..|03|03|03|03|03|03|03|03|03|03|03 |01|01|01|01|..|..|..|04|04|04|04|04|04|04|04|04|04|04|04|04|04|..|..|..|00|..|..|..|00|01|01|01 |03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|..|..|00|..|..|..|00|..|02

Fig. F.52 Instance 18_b, T = 64, TE = 28, TR = 4, Cycle = (1) · · · (6).

T = 0 – 24: 1. 2. 3. 4. 5.

|00|..|..|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|..|.. |03|03|03|03|..|..|00|..|..|..|04|04|04|04|04|04|04|04|04|04|04|04|04|04 |04|04|04|04|04|04|04|04|04|04|04|..|..|..|00|..|02|02|02|02|02|02|02|02 |02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|..|00|..|..|03|03|03 |01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01

T = 24 – 48: 1. 2. 3. 4. 5.

|00|01|01|01|01|01|01|..|..|..|04|04|04|04|04|04|04|04|04|04|04|04|04|04 |04|04|04|04|04|04|04|04|04|04|04|04|04|..|..|..|00|..|02|02|02|02|02|02 |02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|..|00|..|..|03 |03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03 |01|01|01|01|00|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01

T = 48 – 72: 1. 2. 3. 4. 5.

|04|04|04|04|04|04|04|..|..|..|00|01|01|01|01|01|01|01|..|02|02|02|02|02 |02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|.. |03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03 |..|..|00|..|..|..|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04 |01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|01|00|01|01|01|01|01|01|01

Fig. F.53 Instance 18_c, T = 72, TE = 36, TR = 0, Cycle = (1) · · · (5).

F.2 Benchmark Problems

375

T = 0 – 24: 1. 2. 3. 4. 5. 6. 7. 8.

|..|..|00|..|00|..|..|03|03|03|03|03|03|03|03|03|..|..|00|..|00|..|..|03 |..|..|..|00|..|00|..|..|..|04|04|04|04|04|04|04|..|..|..|00|..|00|..|.. |03|03|03|03|03|03|03|03|..|..|00|..|00|..|..|03|03|03|03|03|03|03|03|03 |..|00|..|00|01|01|01|01|01|01|01|01|01|01|01|00|..|00|..|02|02|02|02|02 |00|..|..|..|04|04|04|04|04|04|..|..|..|00|..|00|00|..|..|..|04|04|04|04 |02|02|02|02|02|02|02|02|02|02|..|00|..|00|01|01|01|01|01|01|01|01|01|01 |04|04|04|04|04|..|..|..|00|..|00|..|..|..|04|04|04|04|04|04|04|..|..|.. |01|01|01|01|01|00|..|00|..|02|02|02|02|02|02|02|02|02|02|02|..|00|..|00

T = 24 – 48: 1. 2. 3. 4. 5. 6. 7. 8.

|03|03|03|03|03|03|03|03|..|..|00|..|00|..|..|03|03|03|03|03|03|03|03|03 |..|04|04|04|04|04|04|04|..|..|..|00|..|00|..|..|..|04|04|04|04|04|04|04 |..|..|00|..|00|..|..|03|03|03|03|03|03|03|03|03|..|..|00|..|00|..|..|03 |02|02|02|02|02|..|00|..|00|..|..|..|04|04|04|04|04|04|04|..|..|..|00|.. |04|04|..|..|..|00|..|00|01|01|01|01|01|01|01|01|01|01|01|00|..|00|..|02 |01|00|..|00|..|..|..|04|04|04|04|04|04|..|..|..|00|..|00|..|..|..|04|04 |00|..|00|..|02|02|02|02|02|02|02|02|02|02|..|00|..|00|01|01|01|01|01|01 |01|01|01|01|01|01|01|01|01|00|..|00|..|02|02|02|02|02|02|02|02|02|02|02

Fig. F.54 Instance 18_a, T = 48, TE = 14, TR = 2, Cycle = (1)(2)(3)(4, 5, 6, 7, 8).

F.2.19

Problem 19

T = 0 – 22: 1. 2. 3. 4. 5. 6. 7. 8.

|02|..|02|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09 |03|..|03|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05 |05|05|05|05|05|05|03|..|03|..|04|04|04|04|04|04|04|04|04|04|04|04 |07|07|07|07|07|07|07|..|02|..|02|..|07|07|07|07|07|07|07|07|07|07 |04|04|04|04|04|04|04|04|04|04|04|..|03|..|03|06|06|06|06|06|06|06 |09|09|09|09|08|07|07|07|07|07|07|07|07|..|02|..|02|08|08|08|08|08 |06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|03|..|03|05 |08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|02|..|02|09

T = 22 – 44: 1. 2. 3. 4. 5. 6. 7. 8.

|02|..|02|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08 |03|..|03|05|05|05|05|05|05|05|05|06|06|06|06|06|06|06|06|06|06|06 |04|04|04|04|04|..|03|..|03|03|05|05|05|05|05|05|05|05|05|05|05|05 |07|07|07|07|07|07|07|..|02|..|02|..|07|07|07|07|07|07|07|07|07|07 |06|06|06|06|06|06|06|06|06|06|06|06|03|..|03|..|04|04|04|04|04|04 |08|08|08|08|07|07|07|07|07|07|07|07|07|..|02|..|02|09|09|09|09|09 |05|05|05|05|04|04|04|04|04|04|04|04|04|04|04|04|04|..|03|..|03|06 |09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|02|..|02|08

Fig. F.55 Instance 19_c*, T = 44, TE = 20, TR = 2, Cycle = (1) · · · (8). The solution is duplicated for patrol regions 10 − 15 by symmetry.

Benchmark Problems for the PBSPCC

376 T = 0 – 30: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.

|03|..|..|..|03|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05 |02|..|..|..|02|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09 |00|..|..|..|00|..|15|15|15|15|15|15|15|15|15|15|15|15|15|15|15|15|15|14|14|14|14|14|14|14 |01|..|..|..|01|..|12|12|12|12|12|12|12|12|12|12|12|12|12|12|12|12|12|11|11|11|11|11|11|11 |13|13|13|13|13|13|13|13|13|13|00|..|..|..|00|13|13|13|13|13|13|13|13|13|13|13|13|13|13|13 |10|10|10|10|10|10|10|10|10|10|01|..|..|..|01|10|10|10|10|10|10|10|10|10|10|10|10|10|10|10 |06|06|06|06|06|06|06|06|06|06|03|..|..|..|03|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06 |08|08|08|08|08|08|08|08|08|08|02|..|..|..|02|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08 |04|04|04|04|04|04|04|05|06|06|06|06|06|06|06|06|03|..|..|..|03|..|04|04|04|04|04|04|04|04 |07|07|07|07|07|07|07|07|07|08|08|08|08|08|08|08|02|..|..|..|02|..|07|07|07|07|07|07|07|07 |15|15|15|15|15|15|15|14|13|13|13|13|13|13|13|13|00|..|..|..|00|..|15|15|15|15|15|15|15|15 |12|12|12|12|12|12|12|11|10|10|10|10|10|10|10|10|01|..|..|..|01|..|12|12|12|12|12|12|12|12 |09|09|09|09|09|09|08|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|..|02|..|..|..|02|09 |05|05|05|05|05|05|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|..|03|..|..|..|03|05 |14|14|14|14|14|14|14|14|14|14|14|14|14|14|14|14|14|14|14|14|14|14|14|14|00|..|..|..|00|14 |11|11|11|11|11|11|11|11|11|11|11|11|11|11|11|11|11|11|11|11|11|11|11|11|01|..|..|..|01|11

Fig. F.56 Instance 19_b, T = 30, TE = 26, TR = 4, Cycle = (1) · · · (16).

T = 0 – 19: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18.

|..|..|02|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|02 |..|..|01|10|10|10|10|10|10|10|10|10|10|10|10|10|10|10|01 |..|..|00|14|14|14|14|14|14|14|14|14|14|14|14|14|14|14|00 |00|..|..|00|13|13|13|13|13|13|13|13|13|13|13|13|13|13|13 |03|..|..|03|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06 |03|..|..|03|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05 |10|10|10|10|10|01|..|..|01|11|11|11|11|11|11|11|11|11|11 |07|07|07|07|07|..|02|..|..|02|09|09|09|09|09|09|09|09|09 |15|15|15|15|15|..|00|..|..|00|..|12|12|12|12|12|12|12|12 |08|08|08|08|07|07|..|03|..|..|03|..|07|07|07|07|07|07|07 |12|12|12|12|12|12|..|00|..|..|00|..|15|15|15|15|15|15|15 |04|04|04|04|04|04|..|03|..|..|03|..|04|04|04|04|04|04|04 |11|11|11|11|11|11|11|11|11|11|01|..|..|01|10|10|10|10|10 |09|09|09|09|09|09|09|09|09|09|09|09|02|..|..|02|08|08|08 |13|13|13|13|13|12|12|12|12|12|12|12|..|00|..|..|00|14|14 |06|06|06|06|06|07|07|07|07|07|07|07|07|..|03|..|..|03|05 |14|14|14|14|15|15|15|15|15|15|15|15|15|..|00|..|..|00|13 |05|05|05|05|05|04|04|04|04|04|04|04|04|..|03|..|..|03|06

T = 19 – 38: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18.

|..|..|02|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|02 |..|..|01|11|11|11|11|11|11|11|11|11|11|11|11|11|11|11|01 |..|..|00|13|13|13|13|13|13|13|13|13|13|13|13|13|13|13|00 |00|..|..|00|14|14|14|14|14|14|14|14|14|14|14|14|14|14|14 |03|..|..|03|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05 |03|..|..|03|..|07|07|07|07|07|07|07|07|06|06|06|06|06|06 |11|11|11|11|11|01|..|..|01|10|10|10|10|10|10|10|10|10|10 |09|09|09|09|09|09|02|..|..|02|..|07|07|07|07|07|07|07|07 |12|12|12|12|12|..|00|..|..|00|..|15|15|15|15|15|15|15|15 |07|07|07|07|07|07|..|02|..|..|02|08|08|08|08|08|08|08|08 |15|15|15|15|15|15|..|00|..|..|00|..|12|12|12|12|12|12|12 |04|04|04|04|04|04|..|03|..|..|03|..|04|04|04|04|04|04|04 |10|10|10|10|10|10|10|10|10|10|01|..|..|01|11|11|11|11|11 |08|08|08|08|08|08|08|08|08|08|08|08|02|..|..|02|09|09|09 |14|14|14|14|14|15|15|15|15|15|15|15|..|00|..|..|00|13|13 |05|05|05|05|05|04|04|04|04|04|04|04|04|..|03|..|..|03|06 |13|13|13|13|12|12|12|12|12|12|12|12|12|..|00|..|..|00|14 |06|06|06|06|06|06|06|06|06|06|06|06|06|06|03|..|..|03|05

Fig. F.57 Instance 19_a, T = 38, TE = 16, TR = 3, Cycle = (1) · · · (18).

F.2 Benchmark Problems

377

T = 0 – 30: 1. 2. 3. 4. 5. 6. 7. 8.

|04|04|04|04|04|04|04|04|04|04|..|03|03|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|03|03 |06|06|06|06|06|06|03|03|..|04|04|04|04|04|04|04|04|04|04|04|04|04|05|05|03|03|05|05|05|05 |07|07|07|07|..|02|02|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|02|02|08|08|08|08 |09|09|09|09|09|09|09|09|09|02|02|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|02|02|09 |08|08|08|08|08|08|08|08|08|08|08|08|08|02|02|..|07|07|07|07|07|07|08|09|09|09|09|09|09|09 |03|05|05|05|05|05|05|05|05|05|05|05|05|05|03|03|06|06|06|06|06|06|06|06|06|06|06|06|06|06 |05|05|03|03|06|06|06|06|06|06|06|06|06|06|06|06|06|06|03|03|..|04|04|04|04|04|04|04|04|04 |02|..|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|..|03|03|..|07|07|07|07|07|07|07|07|07

T = 30 – 60: 1. 2. 3. 4. 5. 6. 7. 8.

|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|03|03|05|05|05|05|05|05|05|05|05|05|05|05 |05|05|05|05|05|05|05|05|05|05|05|05|05|03|03|06|06|06|06|06|06|06|06|06|06|06|06|06|06|03 |08|08|08|08|08|08|08|08|08|08|08|08|08|02|02|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09 |09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|02|02|08|08|08|08|08|08|08|08|08|08|08|08 |02|02|..|07|07|07|07|07|07|07|07|08|08|08|08|08|08|08|08|02|02|..|07|07|07|07|07|07|07|07 |06|03|03|05|05|04|04|04|04|04|04|04|05|05|05|05|05|05|05|03|03|05|05|05|04|04|04|04|04|04 |04|04|04|04|04|04|..|03|03|..|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|..|03|03|..|07 |07|07|07|07|07|07|..|03|03|..|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|..|03|03|06|06

T = 60 – 90: 1. 2. 3. 4. 5. 6. 7. 8.

|05|05|05|03|03|..|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|..|03|03|06|06|06|06|06|06 |03|05|05|05|05|05|05|05|05|05|05|05|05|05|05|03|03|..|07|07|07|07|07|07|07|07|07|07|07|07 |09|09|02|02|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09|02|02|09|09|09|09|09|09|09 |08|09|09|09|09|02|02|08|08|08|08|08|08|07|07|07|07|07|07|08|09|09|09|09|02|02|08|08|08|08 |08|08|08|08|08|08|08|08|02|02|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|02|02|08 |04|04|04|04|04|04|04|..|03|03|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|03|03|05|05|05 |07|07|07|07|07|07|07|07|07|07|07|07|07|07|..|03|03|..|04|04|04|04|04|04|04|04|04|04|04|04 |06|06|06|06|06|06|06|06|06|06|06|06|03|03|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|03

T = 90 – 120: 1. 2. 3. 4. 5. 6. 7. 8.

|06|06|06|06|06|06|06|06|06|06|03|03|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|03 |07|07|07|..|02|02|..|07|07|07|07|07|07|07|07|07|07|07|07|07|06|06|06|03|03|..|04|04|04|04 |09|09|09|09|09|09|09|09|09|09|02|02|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|02 |08|08|07|07|07|07|07|07|08|08|08|08|08|02|02|09|09|09|09|09|09|09|09|09|09|09|09|09|09|09 |08|08|08|08|08|08|08|08|08|09|09|09|09|09|09|09|02|02|..|07|07|07|07|07|07|07|07|08|08|08 |05|05|05|05|05|05|05|05|05|05|05|05|05|03|03|..|04|04|04|04|04|04|04|04|04|04|04|04|05|05 |04|04|04|..|03|03|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|03|03|..|07|07|07|07 |03|..|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|..|03|03|06|06|06|06|06|06|06|06|06|06

T = 120 – 150: 1. 2. 3. 4. 5. 6. 7. 8.

|03|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|05|03|03|06|06|06|06|06|06|06|06|06|06 |04|04|04|04|04|04|04|04|04|04|04|..|03|03|..|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04 |02|09|09|09|09|09|09|09|09|09|09|09|09|09|09|02|02|08|08|08|08|08|08|08|08|08|08|08|08|08 |09|09|02|02|08|08|08|08|08|08|08|08|08|08|08|08|08|08|08|02|02|..|07|07|07|07|07|07|07|07 |08|08|08|08|08|02|02|..|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|..|02|02|09|09|09|09 |05|05|03|03|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|06|03|03|05|05|05|05|05|05|04 |07|07|07|07|07|07|07|07|07|08|08|08|02|02|09|09|09|09|09|09|09|09|09|09|09|09|09|02|02|08 |06|06|06|06|06|06|03|03|..|04|04|04|04|04|04|04|05|05|05|05|05|05|05|05|03|03|05|05|05|05

T = 150 – 171: 1. 2. 3. 4. 5. 6. 7. 8.

|06|06|06|06|06|06|06|03|03|06|06|06|06|06|06|06|06|06|06|06|06 |..|03|03|..|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|..|03 |08|02|02|..|07|07|07|07|07|07|07|07|07|07|07|07|07|07|07|..|03 |07|07|07|07|07|08|08|02|02|08|08|08|08|08|08|08|08|08|08|08|08 |09|09|09|09|09|09|09|09|09|09|09|09|09|02|02|..|07|07|07|07|07 |04|04|04|04|04|05|06|06|06|06|03|03|05|05|05|05|05|04|04|04|04 |08|08|08|08|08|08|08|08|08|08|02|02|09|09|09|09|09|09|09|09|09 |05|05|05|05|05|05|05|05|05|05|05|05|05|03|03|05|05|05|05|05|05

Fig. F.58 Instance 19_d*, TE = 18, TR = 1. Runs 2 − 10 are shown, where the planning block for each run is T = 19. The solution is duplicated for patrol regions 10 − 15 by symmetry.

Benchmark Problems for the PBSPCC

378

F.2.20

Problem 20 T = 0 – 20: 1. 2. 3. 4.

|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02 |..|..|..|00|..|..|..|03|03|03|03|03|03|03|03|03|03|03|03|03 |03|03|03|03|03|03|03|03|..|..|..|04|04|04|04|04|04|04|04|04 |04|04|04|04|04|04|04|04|04|04|04|04|..|..|..|01|..|..|..|04

T = 20 – 40: 1. 2. 3. 4.

|02|02|02|02|02|02|02|02|02|02|02|02|..|..|..|00|..|..|..|02 |03|03|03|03|03|03|03|03|..|..|..|02|02|02|02|02|02|02|02|02 |..|..|..|01|..|..|..|03|03|03|03|03|03|03|03|03|03|03|03|03 |04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04

Fig. F.59 Instance 20_c, T = 40, TE = 40, TR = 0, Cycle = (1) · · · (4).

T = 0 – 15: 1. 2. 3. 4. 5. 6. 7. 8. 9.

|02|02|02|02|02|..|..|..|00|..|00|..|..|..|02 |03|03|03|03|03|..|..|..|01|..|01|..|..|..|03 |04|04|04|04|04|..|..|..|01|..|01|..|..|..|04 |00|..|..|..|02|02|02|02|02|02|..|..|..|00|.. |00|..|..|..|03|03|03|03|03|03|..|..|..|00|.. |01|..|..|..|04|04|04|04|04|04|..|..|..|01|.. |..|..|..|00|..|00|..|..|..|02|02|02|02|02|02 |..|..|..|01|..|01|..|..|..|03|03|03|03|03|03 |..|..|..|01|..|01|..|..|..|04|04|04|04|04|04

T = 15 – 30: 1. 2. 3. 4. 5. 6. 7. 8. 9.

|02|02|02|02|02|..|..|..|00|..|00|..|..|..|02 |03|03|03|03|03|..|..|..|01|..|01|..|..|..|03 |04|04|04|04|04|..|..|..|01|..|01|..|..|..|04 |00|..|..|..|02|02|02|02|02|02|..|..|..|00|.. |00|..|..|..|03|03|03|03|03|03|..|..|..|00|.. |01|..|..|..|04|04|04|04|04|04|..|..|..|01|.. |..|..|..|00|..|00|..|..|..|02|02|02|02|02|02 |..|..|..|01|..|01|..|..|..|03|03|03|03|03|03 |..|..|..|01|..|01|..|..|..|04|04|04|04|04|04

T = 30 – 45: 1. 2. 3. 4. 5. 6. 7. 8. 9.

|02|02|02|02|02|..|..|..|00|..|00|..|..|..|02 |03|03|03|03|03|..|..|..|01|..|01|..|..|..|03 |04|04|04|04|04|..|..|..|01|..|01|..|..|..|04 |00|..|..|..|02|02|02|02|02|02|..|..|..|00|.. |00|..|..|..|03|03|03|03|03|03|..|..|..|00|.. |01|..|..|..|04|04|04|04|04|04|..|..|..|01|.. |..|..|..|00|..|00|..|..|..|02|02|02|02|02|02 |..|..|..|01|..|01|..|..|..|03|03|03|03|03|03 |..|..|..|01|..|01|..|..|..|04|04|04|04|04|04

Fig. F.60 Instance 20_b, T = 45, TE = 13, TR = 2, Cycle = (1) · · · (9).

F.2 Benchmark Problems T = 0 – 19: 1. 2. 3. 4. 5.

|00|..|..|..|..|00|..|..|..|03|03|03|03|03|03|03|03|..|.. |..|..|..|01|..|..|..|..|01|..|..|..|04|04|04|04|04|04|04 |03|03|03|03|03|03|03|03|03|03|..|..|..|01|..|..|..|..|01 |02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02|02 |04|04|04|04|04|04|04|04|04|04|04|04|04|..|..|..|03|03|03

T = 19 – 37: 1. 2. 3. 4. 5.

|..|02|02|02|02|02|02|02|02|02|02|02|02|02|02|..|..|.. |04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04|04 |..|..|..|03|03|03|03|03|03|03|03|03|03|03|03|03|03|03 |02|02|..|..|..|00|..|..|..|..|00|..|..|..|02|02|02|02 |03|03|03|03|03|..|..|..|01|..|..|..|..|01|..|..|..|04

Fig. F.61 Instance 20_a, T = 37, TE = 32, TR = 5, Cycle = (1) · · · (5).

379

Appendix G Benchmark Problems for the MCPRP G.1

Summary of Computational Results

This section contains the computational results for the full range of test problem instances introduced in Section 7.10 for the MCPRP. There are 478 test problem instances in total, which are summarized in groups according to the number of hotspots. There are 40 tables listed here, corresponding to the 40 randomly generated test problems introduced in Table 7.1. The column headings used in the tables are summarized below. • Car − The number of patrol vehicles. • R.Obj. − The objective function value at the root node. • R.Ti. − The CPU time (seconds) at the root node. • R.Col. − The number of columns generated at the root node. • No. − The number of nodes explored (fathomed) in the branch-and-price tree. • F. − The number of nodes pruned (fails) in the branch-and-price tree. • A.Col. − The average number of columns generated per node. • Ti. − The CPU time (seconds) taken to find the integer solution. • Pa. − The aggregate time (minutes) spent on active patrol. This is also the objective function value of the optimal integer solution. • Tr. − The aggregate transit time (minutes). • Wa. − The aggregate waiting time (minutes). • Hot. − The number of hotspots visited.

Benchmark Problems for the MCPRP

382

G.2

40 Hotspots MCNFP: 40 Hotspots Runtime (CPU seconds)

0.06 0.05 H40_a 0.04

H40_b H40_c

0.03

H40_d 0.02

H40_e H40_f

0.01

H40_g 0.00

H40_h 1

2

3

4

5

6

7

8

9

10 11 12 13 14 15 16

Number of Cars

Fig. G.1 Runtimes for the range of H40 test problem instances solved with the MCNFP model.

Table G.1 Test Problem H40_a: 40 locations, 40 hotspots, grid size 30, 1 minute time windows. Car

R.Obj.

R.Ti.

R.Col.

No.

F.

A.Col.

Ti.

Pa.

Tr.

Wa.

Hot.

2 3 4

31.0 38.0 40.0

0.2 0.3 0.0

26 52 5

0 0 0

0 0 0

0.0 0.0 0.0

0.2 0.3 0.0

31 38 40

380 592 610

549 810 1,270

31 38 40

Table G.2 Test Problem H40_b: 40 locations, 40 hotspots, grid size 60, 1 minute time windows. Car

R.Obj.

R.Ti.

R.Col.

No.

F.

A.Col.

Ti.

Pa.

Tr.

Wa.

Hot.

2 3 4 5 6

23.0 29.0 35.0 38.0 40.0

0.1 0.1 0.2 0.3 0.0

20 25 42 61 7

0 0 0 0 0

0 0 0 0 0

0.0 0.0 0.0 0.0 0.0

0.1 0.1 0.2 0.3 0.0

23 29 35 38 40

507 775 984 1,017 987

430 636 901 1,345 1,853

23 29 35 38 40

G.2 40 Hotspots

383

Table G.3 Test Problem H40_c: 40 locations, 40 hotspots, grid size 30, 5 − 15 minute time windows. Car

R.Obj.

R.Ti.

R.Col.

No.

F.

A.Col.

Ti.

Pa.

Tr.

Wa.

Hot.

2 3 4 5

263.0 340.0 370.0 379.0

0.3 0.9 1.2 0.7

36 98 146 108

1 13 20 26

0 0 0 0

36.0 30.9 44.4 68.8

0.7 15.5 38.8 81.5

263 340 370 379

397 637 780 859

300 463 770 1,162

28 36 39 40

Table G.4 Test Problem H40_d: 40 locations, 40 hotspots, grid size 60, 5 − 15 minute time windows. Car

R.Obj.

R.Ti.

R.Col.

No.

F.

A.Col.

Ti.

Pa.

Tr.

Wa.

Hot.

2 3 4 5 6 7 8

213.0 294.0 347.0 384.0 405.0 415.0 420.0

0.1 0.2 0.3 0.4 0.4 0.4 0.3

15 53 78 100 92 77 79

0 1 5 10 15 27 37

0 0 0 0 0 0 0

0.0 53.0 28.0 29.2 23.9 17.4 14.4

0.1 0.7 1.7 4.7 6.2 10.1 13.6

213 294 347 384 405 415 420

473 760 953 1,178 1,357 1,637 1,700

274 386 620 838 1,118 1,308 1,720

19 28 33 37 39 39 40

Table G.5 Test Problem H40_e: 40 locations, 40 hotspots, grid size 30, 30 minute time windows. Car

R.Obj.

R.Ti.

R.Col.

No.

F.

A.Col.

Ti.

2 3 4 5 6 7 8 9 10

514.0 671.0 803.0 921.0 1,019.0 1,099.0 1,160.0 1,197.0 1,200.0

0.2 0.2 0.4 0.6 0.7 0.8 0.9 0.8 0.6

24 47 76 114 138 168 176 164 148

1 3 8 8 11 13 6 18 34

0 0 0 0 0 0 0 0 4

24.0 23.0 23.9 26.9 25.5 26.2 44.0 25.8 18.4

0.3 0.9 2.7 2.5 3.9 4.9 2.8 9.7 17.5

Pa.

Tr.

514 328 671 424 803 538 921 646 1,019 795 1,099 869 1,160 917 1,197 948 1,200 1,032

Wa.

Hot.

118 345 579 833 1,066 1,392 1,763 2,175 2,568

20 26 31 35 38 40 40 40 40

Benchmark Problems for the MCPRP

384

Table G.6 Test Problem H40_f: 40 locations, 40 hotspots, grid size 60, 30 minute time windows. Car

R.Obj.

R.Ti.

R.Col.

No.

F.

A.Col.

Ti.

Pa.

Tr.

Wa.

Hot.

2 3 4 5 6 7 8 9 10 11 12 13

436.0 598.0 754.0 891.0 988.0 1,072.0 1,135.0 1,165.0 1,185.0 1,194.0 1,198.0 1,200.0

0.2 0.2 0.2 0.3 0.5 0.7 0.7 0.6 0.5 0.6 0.5 0.5

22 33 42 70 102 121 136 119 122 132 126 120

0 0 2 1 4 8 9 19 20 26 19 39

0 0 0 0 0 0 0 5 2 2 0 2

0.0 0.0 23.5 70.0 38.3 26.1 24.8 18.7 15.6 14.3 15.3 9.4

0.2 0.2 0.6 0.6 1.6 2.6 3.1 7.1 4.9 7.9 5.0 9.7

436 598 754 891 988 1,072 1,135 1,165 1,185 1,194 1,198 1,200

401 587 837 931 1,180 1,278 1,427 1,653 1,654 1,759 1,941 2,031

123 255 329 578 712 1,010 1,278 1,502 1,961 2,327 2,621 3,009

17 23 28 33 36 38 39 40 40 40 40 40

Table G.7 Test Problem H40_g: 40 locations, 40 hotspots, grid size 30, 30 − 90 minute time windows. Car

R.Obj.

R.Ti.

R.Col.

No.

F.

A.Col.

Ti.

Pa.

Tr.

Wa.

Hot.

2 3 4 5 6 7 8 9 10 11 12 13 14

777.0 1,110.0 1,419.0 1,695.0 1,927.0 2,066.0 2,164.0 2,251.0 2,328.0 2,384.0 2,437.0 2,464.0 2,465.0

0.2 0.2 0.3 0.5 0.9 0.9 0.9 0.7 0.9 1.0 0.8 0.8 0.9

24 34 61 98 145 153 148 146 158 164 146 154 150

0 0 1 1 0 3 6 10 0 22 9 0 13

0 0 0 0 0 0 0 0 0 0 0 0 0

0.0 0.0 61.0 98.0 0.0 71.0 37.5 23.5 0.0 14.3 30.0 0.0 22.8

0.2 0.2 0.6 0.7 0.9 2.3 2.5 3.0 0.9 5.9 3.2 0.8 4.1

777 1,110 1,419 1,695 1,927 2,066 2,164 2,251 2,328 2,384 2,437 2,464 2,465

158 255 356 479 562 639 655 730 734 780 829 816 968

25 75 145 226 391 655 1,021 1,339 1,738 2,116 2,494 2,960 3,287

16 22 26 31 34 36 37 38 39 40 40 40 40

G.3 60 Hotspots

385

Table G.8 Test Problem H40_h: 40 locations, 40 hotspots, grid size 60, 30 − 90 minute time windows. Car

R.Obj.

R.Ti.

R.Col.

No.

F.

A.Col.

Ti.

Pa.

Tr.

Wa.

Hot.

2 3 4 5 6 7 8 9 10 11 12 13 14 15

614.0 898.0 1,163.0 1,394.0 1,618.0 1,810.0 1,958.0 2,080.0 2,170.0 2,231.0 2,270.0 2,298.0 2,321.0 2,340.0

0.1 0.1 0.2 0.3 0.3 0.6 0.6 0.7 0.7 1.3 0.7 0.6 0.7 0.6

14 17 33 48 58 85 110 113 130 144 135 126 129 130

0 0 0 0 0 1 4 3 8 7 17 27 22 24

0 0 0 0 0 0 0 0 0 2 2 2 5 0

0.0 0.0 0.0 0.0 0.0 85.0 36.3 47.7 24.1 29.9 17.4 12.3 11.9 11.1

0.1 0.1 0.2 0.3 0.3 0.9 1.6 1.4 2.9 3.2 6.1 8.8 5.8 7.4

614 898 1,163 1,394 1,618 1,810 1,958 2,080 2,170 2,231 2,270 2,298 2,321 2,340

278 431 577 759 905 1,078 1,245 1,364 1,479 1,745 1,665 1,990 1,951 2,039

68 111 180 247 357 472 637 876 1,151 1,304 1,825 1,952 2,448 2,821

11 17 21 25 29 34 36 38 39 40 40 40 40 40

G.3

60 Hotspots MCNFP: 60 Hotspots Runtime (CPU seconds)

0.30 0.25 H60_a 0.20

H60_b H60_c

0.15

H60_d 0.10

H60_e H60_f

0.05

H60_g 0.00

H60_h 1

2

3

4

5

6

7

8

9

10 11 12 13 14 15 16 17

Number of Cars

Fig. G.2 Runtimes for the range of H60 test problem instances solved with the MCNFP model.

Benchmark Problems for the MCPRP

386

Table G.9 Test Problem H60_a: 60 locations, 60 hotspots, grid size 30, 1 minute time windows. Car

R.Obj.

R.Ti.

R.Col.

No.

F.

A.Col.

Ti.

Pa.

Tr.

Wa.

Hot.

2 3 4 5 6 7

38.0 49.0 54.0 57.0 59.0 60.0

0.4 0.8 1.1 1.0 1.2 0.0

33 90 115 107 113 8

0 0 0 0 0 0

0 0 0 0 0 0

0.0 0.0 0.0 0.0 0.0 0.0

0.4 0.8 1.1 1.0 1.2 0.0

38 49 54 57 59 60

448 645 681 890 902 1,026

474 746 1,185 1,453 1,919 2,274

38 49 54 57 59 60

Table G.10 Test Problem H60_b: 60 locations, 60 hotspots, grid size 60, 1 minute time windows. Car

R.Obj.

R.Ti.

R.Col.

No.

F.

A.Col.

Ti.

Pa.

Tr.

Wa.

Hot.

2 3 4 5 6 7 8

32.0 44.0 52.0 56.0 58.0 59.0 60.0

0.2 0.7 0.5 0.8 0.6 0.8 0.8

26 73 73 96 80 85 83

0 5 16 0 0 0 0

0 0 0 0 0 0 0

0.0 24.0 26.2 0.0 0.0 0.0 0.0

0.2 2.5 12.5 0.8 0.6 0.8 0.8

32 44 52 56 58 59 60

597 862 1,241 1,357 1,487 1,673 1,811

331 534 627 987 1,335 1,628 1,969

32 44 52 56 58 59 60

Table G.11 Test Problem H60_c: 60 locations, 60 hotspots, grid size 30, 5 − 15 minute time windows. Car

R.Obj.

R.Ti.

R.Col.

No.

F.

A.Col.

Ti.

2 3 4 5 6 7

298.0 385.0 461.0 509.0 530.0 535.0

0.8 1.5 2.4 2.7 2.7 1.8

78 117 194 217 226 186

2 11 18 30 41 58

0 0 0 0 2 3

54.5 45.1 62.4 69.4 71.1 53.9

2.8 22.4 65.5 189.2 387.0 309.0

Pa.

Tr.

298 431 385 573 461 723 509 913 530 991 535 1,151

Wa.

Hot.

231 482 736 978 1,359 1,674

35 46 53 58 59 60

G.3 60 Hotspots

387

Table G.12 Test Problem H60_d: 60 locations, 60 hotspots, grid size 60, 5 − 15 minute time windows. Car

R.Obj.

R.Ti.

R.Col.

No.

F.

A.Col.

2 3 4 5 6 7 8 9 10 11

267.0 357.0 429.0 493.0 534.0 563.0 585.0 590.0 595.0 597.0

0.2 0.8 1.2 1.5 1.4 1.1 1.3 1.2 1.6 1.3

21 93 141 161 174 165 177 156 165 161

1 2 11 9 15 37 40 53 60 52

0 0 4 0 0 2 0 0 2 6

21.0 56.5 29.0 41.2 45.6 39.0 33.1 32.4 29.5 30.5

Ti.

Pa.

Tr.

Wa.

0.5 267 572 121 1.8 357 783 300 8.4 429 1,069 422 8.3 493 1,268 639 20.0 534 1,486 860 78.5 563 1,517 1,280 73.1 585 1,875 1,380 117.5 590 1,904 1,826 116.7 595 2,049 2,156 101.4 597 2,227 2,456

Hot. 27 36 43 49 54 55 58 59 60 60

Table G.13 Test Problem H60_e: 60 locations, 60 hotspots, grid size 30, 30 minute time windows. Car

R.Obj.

R.Ti.

R.Col.

No.

F.

A.Col.

2 3 4 5 5 6 7 8 9 10 11 12

590.0 852.0 1,051.0 1,231.0 1,231.0 1,403.0 1,550.0 1,666.0 1,741.0 1,782.0 1,796.0 1,800.0

0.2 0.6 1.0 1.3 1.3 2.1 3.1 3.5 2.4 2.1 2.6 2.4

20 55 122 150 150 196 246 328 295 255 246 225

0 0 0 1 1 6 8 19 21 37 30 50

0 0 0 0 0 0 0 0 0 0 0 2

0.0 0.0 0.0 150.0 150.0 50.0 66.8 52.9 44.8 43.0 35.2 25.3

Ti.

Pa.

0.2 590 0.6 852 1.0 1,051 2.0 1,231 2.0 1,231 6.7 1,403 14.9 1,550 39.5 1,666 39.5 1,741 86.1 1,782 45.9 1,796 88.6 1,800

Tr.

Wa.

295 75 445 143 596 273 762 407 762 407 900 577 1,017 793 1,105 1,069 1,203 1,376 1,362 1,656 1,386 2,098 1,562 2,398

Hot. 23 34 41 47 47 54 59 60 60 60 60 60

Benchmark Problems for the MCPRP

388

Table G.14 Test Problem H60_f: 60 locations, 60 hotspots, grid size 60, 30 minute time windows. Car

R.Obj.

R.Ti.

R.Col.

No.

F.

A.Col.

Ti.

Pa.

Tr.

Wa.

Hot.

2 3 4 5 6 7 8 9 10 11 12 13

531.0 758.0 971.0 1,161.0 1,330.0 1,481.0 1,612.0 1,716.0 1,772.0 1,788.0 1,798.0 1,800.0

0.2 0.3 0.6 1.2 1.7 2.2 3.2 3.5 4.1 2.2 2.9 2.8

16 30 57 105 136 194 250 282 300 225 209 204

0 0 0 1 2 5 6 18 19 29 37 36

0 0 0 0 0 0 2 2 0 6 1 0

0.0 0.0 0.0 105.0 80.0 61.2 76.7 42.4 53.9 37.4 25.2 19.8

0.2 0.3 0.6 2.0 3.6 6.4 11.8 33.8 46.7 52.2 53.1 42.1

531 758 971 1,161 1,330 1,481 1,612 1,716 1,772 1,788 1,798 1,800

368 515 719 932 1,085 1,338 1,582 1,639 1,809 2,093 2,272 2,497

61 167 230 307 465 541 646 965 1,219 1,399 1,690 1,943

22 31 39 45 49 55 60 60 60 60 60 60

Table G.15 Test Problem H60_g: 60 locations, 60 hotspots, grid size 30, 30 − 90 minute time windows. Car

R.Obj.

R.Ti.

R.Col.

No.

F.

A.Col.

Ti.

Pa.

Tr.

Wa.

Hot.

2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

767.0 1,138.0 1,500.0 1,831.0 2,120.0 2,403.0 2,665.0 2,890.0 3,067.0 3,213.0 3,305.0 3,349.0 3,361.0 3,371.0 3,372.0

0.1 0.2 0.2 0.6 0.7 1.1 2.0 3.1 3.9 3.2 3.1 2.7 1.6 2.1 2.4

10 20 31 65 87 128 207 287 357 319 303 263 224 230 227

0 0 0 0 1 0 1 0 0 2 16 26 33 23 57

0 0 0 0 0 0 0 0 0 0 0 0 0 0 4

0.0 0.0 0.0 0.0 87.0 0.0 207.0 0.0 0.0 176.5 43.6 37.4 28.9 27.2 21.8

0.1 0.2 0.2 0.6 1.2 1.1 2.8 3.1 3.9 5.8 22.8 38.9 41.0 19.6 74.6

767 1,138 1,500 1,831 2,120 2,403 2,665 2,890 3,067 3,213 3,305 3,349 3,361 3,371 3,372

157 254 339 421 523 627 719 831 958 1,027 1,203 1,276 1,320 1,440 1,531

36 48 81 148 237 330 456 599 775 1,040 1,252 1,615 2,039 2,389 2,777

16 22 29 36 41 47 51 54 56 59 60 60 60 60 60

G.4 80 Hotspots

389

Table G.16 Test Problem H60_h: 60 locations, 60 hotspots, grid size 60, 30 − 90 minute time windows. Car

R.Obj.

R.Ti.

R.Col.

No.

F.

A.Col.

Ti.

Pa.

Tr.

Wa.

Hot.

2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

682.0 1,008.0 1,319.0 1,620.0 1,902.0 2,157.0 2,403.0 2,618.0 2,814.0 2,984.0 3,127.0 3,237.0 3,302.0 3,342.0 3,351.0

0.1 0.1 0.3 0.4 0.7 1.0 1.1 1.4 1.7 2.2 2.3 2.3 2.4 2.2 1.6

9 12 27 39 63 78 105 165 199 240 254 262 271 237 210

0 0 0 0 0 0 0 0 0 0 1 2 6 16 27

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 254.0 143.0 74.0 39.7 20.2

0.1 0.1 0.3 0.4 0.7 1.0 1.1 1.4 1.7 2.2 3.3 3.9 8.3 18.5 19.4

682 1,008 1,319 1,620 1,902 2,157 2,403 2,618 2,814 2,984 3,127 3,237 3,302 3,342 3,351

257 343 492 608 773 913 1,061 1,208 1,378 1,556 1,707 1,780 1,979 2,112 2,287

21 89 109 172 205 290 376 494 608 740 926 1,223 1,439 1,746 2,042

14 20 24 30 36 41 47 51 54 57 59 60 60 60 60

G.4

80 Hotspots MCNFP: 80 Hotspots Runtime (CPU seconds)

0.80 0.70 H80_a

0.60

H80_b

0.50

H80_c

0.40

H80_d 0.30

H80_e

0.20

H80_f

0.10

H80_g

0.00

H80_h 1

3

5

7

9

11

13

15

17

19

21

23

Number of Cars

Fig. G.3 Runtimes for the range of H80 test problem instances solved with the MCNFP model.

Benchmark Problems for the MCPRP

390

Table G.17 Test Problem H80_a: 80 locations, 80 hotspots, grid size 30, 1 minute time windows. Car

R.Obj.

R.Ti.

R.Col.

No.

F.

A.Col.

Ti.

Pa.

2 3 4 5 6

45.0 59.0 70.0 79.0 80.0

1.2 1.9 3.4 5.4 3.9

34 66 120 201 171

7 0 0 54 0

3 0 0 2 0

13.1 0.0 0.0 131.4 0.0

6.8 1.9 3.4 4,586.6 3.9

45 59 70 79 80

Tr.

Wa.

606 309 821 560 1,040 810 1,203 1,118 1,206 1,594

Hot. 45 59 70 79 80

Table G.18 Test Problem H80_b: 80 locations, 80 hotspots, grid size 60, 1 minute time windows. Car

R.Obj.

R.Ti.

R.Col.

No.

F.

A.Col.

Ti.

Pa.

Tr.

Wa.

Hot.

2 3 4 5 6 7 8 9

33.0 47.0 59.0 66.0 73.0 76.0 79.0 80.0

0.2 0.4 1.2 1.4 2.4 1.9 1.8 0.1

11 21 97 94 150 131 148 10

0 0 12 0 45 0 0 0

0 0 2 0 0 0 0 0

0.0 0.0 20.0 0.0 35.3 0.0 0.0 0.0

0.2 0.4 9.1 1.4 184.1 1.9 1.8 0.1

33 47 59 66 73 76 79 80

657 801 1,192 1,355 1,770 1,939 2,134 2,629

270 592 669 979 1,037 1,345 1,627 1,611

33 47 59 66 73 76 79 80

Table G.19 Test Problem H80_c: 80 locations, 80 hotspots, grid size 30, 5 − 15 minute time windows. Car

R.Obj.

R.Ti.

R.Col.

No.

F.

A.Col.

Ti.

Pa.

Tr.

Wa.

Hot.

2 3 4 5 6 7 8

356.0 493.0 579.0 651.0 698.0 723.0 735.0

0.8 1.8 3.9 5.3 7.0 6.0 4.9

59 144 258 307 351 371 313

1 7 12 27 38 53 66

0 0 0 0 0 0 0

59.0 53.3 77.9 104.6 163.2 127.9 120.7

1.4 13.9 47.1 802.8 2,545.1 2,901.1 3,770.6

356 493 579 651 698 723 735

441 694 847 1,047 1,105 1,186 1,292

163 253 494 702 1,077 1,451 1,813

39 56 65 75 77 79 80

G.4 80 Hotspots

391

Table G.20 Test Problem H80_d: 80 locations, 80 hotspots, grid size 60, 5 − 15 minute time windows. Car

R.Obj.

R.Ti.

R.Col.

No.

F.

A.Col.

Ti.

Pa.

Tr.

Wa.

Hot.

2 3 4 5 6 7 8 9 10 11 12 13 14

277.0 379.0 468.0 548.0 622.0 679.0 719.0 750.0 761.0 768.0 773.0 777.0 778.0

0.2 0.7 1.3 1.5 1.9 3.0 2.9 2.5 2.5 3.1 3.3 3.2 3.2

18 72 112 137 172 238 240 231 228 217 229 230 226

0 0 1 5 7 19 31 26 42 62 77 78 77

0 0 0 0 0 0 0 0 0 0 6 2 2

0.0 0.0 112.0 45.4 50.3 40.9 38.8 50.8 43.3 38.3 32.7 34.8 26.8

0.2 0.7 1.9 5.7 9.5 40.4 90.3 74.2 146.6 280.6 618.1 397.3 271.2

277 379 468 548 622 679 719 750 761 768 773 777 778

446 737 1,042 1,290 1,534 1,797 1,976 2,275 2,465 2,510 2,871 2,916 3,195

237 324 410 562 724 884 1,145 1,295 1,574 2,002 2,116 2,547 2,747

26 37 47 55 64 69 74 79 80 80 80 80 80

Table G.21 Test Problem H80_e: 80 locations, 80 hotspots, grid size 30, 30 minute time windows. Car

R.Obj.

R.Ti.

R.Col.

No.

F.

A.Col.

Ti.

2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17

653.0 949.0 1,223.0 1,486.0 1,722.0 1,939.0 2,088.0 2,184.0 2,237.0 2,276.0 2,306.0 2,336.0 2,363.0 2,382.0 2,397.0 2,400.0

0.4 1.1 1.9 4.8 7.3 8.2 7.3 6.2 7.6 6.2 4.9 3.9 4.1 4.5 4.3 4.1

19 70 127 285 405 562 519 435 354 364 323 321 345 346 341 340

0 1 1 1 2 3 10 26 42 49 53 50 62 61 66 85

0 0 0 0 0 0 0 0 3 0 4 0 2 0 4 6

0.0 70.0 127.0 285.0 225.0 241.3 104.5 97.1 75.1 59.9 51.6 58.9 50.0 45.1 54.9 37.8

0.4 2.4 3.4 7.2 11.8 20.5 53.5 320.9 604.1 494.2 286.7 397.0 370.1 350.9 715.1 508.3

Pa.

Tr.

653 260 949 406 1,223 565 1,486 712 1,722 883 1,939 982 2,088 1,090 2,184 1,172 2,237 1,275 2,276 1,291 2,306 1,441 2,336 1,487 2,363 1,503 2,382 1,643 2,397 1,649 2,400 1,590

Wa.

Hot.

47 85 132 202 275 439 662 964 1,288 1,713 2,013 2,417 2,854 3,175 3,634 4,170

27 37 49 58 64 70 73 74 76 78 79 80 80 80 80 80

Benchmark Problems for the MCPRP

392

Table G.22 Test Problem H80_f: 80 locations, 80 hotspots, grid size 60, 30 minute time windows. Car

R.Obj.

R.Ti.

R.Col.

No.

F.

A.Col.

Ti.

Pa.

Tr.

Wa.

Hot.

2 3 4 5 6 7 7 8 9 10 11 12 13 14 15 16

607.0 850.0 1,085.0 1,309.0 1,519.0 1,696.0 1,696.0 1,850.0 1,989.0 2,102.0 2,201.0 2,281.0 2,341.0 2,375.0 2,390.0 2,400.0

0.8 1.0 1.3 2.7 3.9 6.3 6.3 6.7 7.1 10.5 20.5 9.2 8.6 6.7 6.1 5.1

20 51 79 120 214 297 297 352 372 448 453 441 458 338 329 306

0 0 0 0 0 2 2 4 9 7 8 20 16 33 48 84

0 0 0 0 0 0 0 0 3 0 1 2 0 2 0 18

0.0 0.0 0.0 0.0 0.0 178.5 178.5 125.8 71.8 103.1 97.9 71.3 50.1 39.4 42.7 34.7

0.8 1.0 1.3 2.7 3.9 12.6 12.6 18.3 28.3 36.3 48.2 124.0 44.1 110.7 212.9 490.6

607 850 1,085 1,309 1,519 1,696 1,696 1,850 1,989 2,102 2,201 2,281 2,341 2,375 2,390 2,400

314 481 658 798 989 1,214 1,214 1,450 1,728 1,914 2,083 2,063 2,313 2,517 2,698 3,044

39 109 177 293 372 450 450 540 603 784 996 1,416 1,586 1,828 2,112 2,236

25 34 42 49 56 63 63 68 74 77 78 80 80 80 80 80

G.4 80 Hotspots

393

Table G.23 Test Problem H80_g: 80 locations, 80 hotspots, grid size 30, 30 − 90 minute time windows. Car

R.Obj.

R.Ti.

R.Col.

No.

F.

A.Col.

Ti.

Pa.

Tr.

Wa.

Hot.

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

764.0 1,136.0 1,480.0 1,821.0 2,152.0 2,475.0 2,769.0 3,038.0 3,273.0 3,488.0 3,698.0 3,888.0 4,061.0 4,202.0 4,310.0 4,398.0 4,459.0 4,512.0 4,553.0 4,570.0 4,572.0

0.2 0.2 0.5 0.7 0.8 1.8 2.7 3.1 4.6 4.2 4.5 4.9 6.0 6.8 6.8 5.6 5.0 6.1 5.0 4.1 4.2

11 20 40 56 71 134 172 229 295 297 329 332 414 446 448 422 405 394 372 347 340

0 0 0 0 0 0 0 0 0 0 1 3 6 4 19 27 44 45 60 73 68

0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 6 2 10 6 11 4

0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 329.0 134.0 90.2 143.8 47.2 40.7 28.2 33.0 29.9 28.5 22.7

0.2 0.2 0.5 0.7 0.8 1.8 2.7 3.1 4.6 4.2 6.4 8.9 14.9 12.6 36.3 51.0 83.6 126.7 153.8 232.1 151.4

764 1,136 1,480 1,821 2,152 2,475 2,769 3,038 3,273 3,488 3,698 3,888 4,061 4,202 4,310 4,398 4,459 4,512 4,553 4,570 4,572

158 241 332 425 505 609 702 805 908 1,047 1,124 1,235 1,270 1,423 1,483 1,604 1,674 1,818 1,788 1,831 1,975

38 63 108 154 223 276 369 477 619 745 938 1,117 1,389 1,575 1,887 2,158 2,507 2,790 3,259 3,679 4,013

16 23 30 38 44 49 54 58 64 67 71 74 76 75 77 78 79 80 80 80 80

Benchmark Problems for the MCPRP

394

Table G.24 Test Problem H80_h: 80 locations, 80 hotspots, grid size 60, 30 − 90 minute time windows. Car

R.Obj.

R.Ti.

R.Col.

No.

F.

A.Col.

Ti.

Pa.

Tr.

Wa.

Hot.

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

695.0 1,037.0 1,365.0 1,677.0 1,986.0 2,282.0 2,572.0 2,852.0 3,110.0 3,364.0 3,600.0 3,830.0 4,054.0 4,225.0 4,387.0 4,523.0 4,631.0 4,708.0 4,748.0 4,776.0 4,781.0

0.1 0.1 0.2 0.4 0.5 0.8 0.8 1.4 2.0 3.0 3.3 4.3 6.0 6.7 7.5 7.7 7.2 7.2 6.2 6.9 6.2

7 9 22 32 45 60 74 106 121 155 180 223 282 331 390 399 390 384 330 307 321

0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 3 6 21 39 41

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0

0.0 0.0 0.0 0.0 0.0 0.0 74.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 173.0 104.5 52.0 32.9 29.3

0.1 0.1 0.2 0.4 0.5 0.8 1.4 1.4 2.0 3.0 3.3 4.3 6.0 6.7 7.5 7.7 16.4 23.0 91.4 144.4 103.6

695 1,037 1,365 1,677 1,986 2,282 2,572 2,852 3,110 3,364 3,600 3,830 4,054 4,225 4,387 4,523 4,631 4,708 4,748 4,776 4,781

220 325 431 545 673 813 948 1,056 1,194 1,329 1,493 1,652 1,736 1,945 2,114 2,267 2,493 2,697 2,770 2,961 3,055

45 78 124 178 221 265 320 412 496 587 667 758 930 1,030 1,179 1,370 1,516 1,715 2,082 2,343 2,724

14 19 26 31 38 44 48 53 57 63 66 71 74 76 77 79 80 80 80 80 80

G.5 80 Hotspots (Extension)

G.5

395

80 Hotspots (Extension) MCNFP: 80 Hotspots (Extension) Runtime (CPU seconds)

0.70 0.60 H80_i 0.50

H80_j

0.40

H80_k

0.30

H80_l H80_m

0.20

H80_n 0.10

H80_o

0.00

H80_p 1

3

5

7

9

11

13

15

17

19

21

23

Number of Cars

Fig. G.4 Runtimes for the range of H80 (extension) test problem instances solved with the MCNFP model.

Table G.25 Test Problem H80_i: 40 locations, 80 hotspots, grid size 30, 1 minute time windows. Car

R.Obj.

R.Ti.

R.Col.

No.

F.

A.Col.

Ti.

Pa.

2 3 4 5 6

44.0 60.0 71.0 77.0 80.0

0.2 0.4 1.2 1.5 1.0

25 60 134 152 94

0 0 32 56 0

0 0 0 0 0

0.0 0.0 50.2 109.4 0.0

0.2 0.4 116.2 1,662.7 1.0

44 60 71 77 80

Tr.

Wa.

499 417 725 655 1015 834 1128 1195 1237 1563

Hot. 44 60 71 77 80

Benchmark Problems for the MCPRP

396

Table G.26 Test Problem H80_j: 40 locations, 80 hotspots, grid size 60, 1 minute time windows. Car

R.Obj.

R.Ti.

R.Col.

No.

F.

A.Col.

Ti.

Pa.

Tr.

Wa.

Hot.

2 3 4 5 6 7 8 9 10

34.0 48.0 59.0 67.0 72.0 75.0 77.0 79.0 80.0

0.3 0.3 0.8 0.8 0.9 1.1 1.0 1.1 0.0

26 36 110 95 93 103 102 110 12

0 0 13 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0

0.0 0.0 27.7 0.0 0.0 0.0 0.0 0.0 0.0

0.3 0.3 10.4 0.8 0.9 1.1 1.0 1.1 0.0

34 48 59 67 72 75 77 79 80

544 901 1,143 1,475 1,648 1,861 2,063 2,242 2,313

382 491 718 858 1,160 1,424 1,700 1,999 2,407

34 48 59 67 72 75 77 79 80

Table G.27 Test Problem H80_k: 40 locations, 80 hotspots, grid size 30, 5 − 15 minute time windows. Car

R.Obj.

R.Ti.

R.Col.

No.

F.

A.Col.

Ti.

Pa.

Tr.

Wa.

Hot.

2 3 4 5 6 7 8 9

344.0 486.0 598.0 658.0 695.0 711.0 722.0 729.0

0.4 1.5 5.3 4.0 4.5 3.2 2.5 2.6

44 155 391 333 369 263 268 253

2 0 11 27 38 58 84 74

0 0 0 0 2 0 6 0

25.5 0.0 117.7 104.6 118.2 97.4 105.9 104.1

1.0 1.5 78.3 368.2 857.2 1,619.0 3,683.3 4,153.1

344 486 598 658 695 711 722 729

389 600 777 1,047 1,183 1,308 1,416 1,459

227 354 545 695 1,002 1,341 1,702 2,132

39 55 67 74 76 78 79 80

Table G.28 Test Problem H80_l: 40 locations, 80 hotspots, grid size 60, 5 − 15 minute time windows. Car

R.Obj.

R.Ti.

R.Col.

No.

F.

A.Col.

2 3 4 5 6 7 8 9 10

264.0 370.0 465.0 540.0 605.0 658.0 697.0 720.0 730.0

0.2 0.5 1.0 1.5 2.0 2.0 1.9 1.9 1.4

25 57 117 156 231 258 251 227 187

0 1 3 8 11 20 19 32 60

0 0 0 0 0 0 0 0 0

0.0 57.0 49.7 60.1 57.9 51.0 52.6 59.0 40.2

Ti.

Pa.

0.2 264 1.1 370 2.5 465 12.3 540 15.7 605 44.4 658 36.7 697 102.9 720 250.0 730

Tr.

Wa.

Hot.

436 645 938 1,176 1,403 1,676 1,933 2,353 2,493

260 425 517 684 872 1,026 1,210 1,247 1,577

29 41 53 60 66 71 76 79 80

G.5 80 Hotspots (Extension)

397

Table G.29 Test Problem H80_m: 40 locations, 80 hotspots, grid size 30, 30 minute time windows. Car

R.Obj.

R.Ti.

R.Col.

No.

F.

A.Col.

Ti.

2 3 4 5 6 7 8 9 10 11 12 13

693.0 1,009.0 1,300.0 1,561.0 1,790.0 1,974.0 2,129.0 2,241.0 2,334.0 2,375.0 2,395.0 2,400.0

0.1 0.4 1.2 2.7 5.0 5.2 4.9 5.4 5.1 4.2 3.7 3.2

12 29 137 256 419 444 477 490 427 401 358 331

0 0 0 1 2 13 20 24 31 46 47 62

0 0 0 0 0 0 0 2 2 2 0 0

0.0 0.0 0.0 256.0 232.0 89.4 101.2 89.5 68.5 61.4 53.7 47.6

0.1 0.4 1.2 4.4 9.6 47.0 118.7 132.8 146.9 309.0 212.4 486.7

Pa.

Tr.

693 224 1,009 346 1,300 484 1,561 627 1,790 774 1,974 985 2,129 1,037 2,241 1,090 2,334 1,188 2,375 1,306 2,395 1,480 2,400 1,520

Wa.

Hot.

43 85 136 212 316 401 674 989 1,278 1,599 1,885 2,320

30 42 53 64 70 75 78 79 80 80 80 80

Table G.30 Test Problem H80_n: 40 locations, 80 hotspots, grid size 60, 30 minute time windows. Car

R.Obj.

R.Ti.

R.Col.

No.

F.

A.Col.

Ti.

Pa.

Tr.

Wa.

Hot.

2 3 4 5 6 7 8 9 10 11 12 13 14

569.0 813.0 1,057.0 1,298.0 1,513.0 1,712.0 1,903.0 2,076.0 2,205.0 2,293.0 2,357.0 2,385.0 2,400.0

0.3 0.3 0.6 0.9 2.0 2.4 3.6 5.0 6.7 5.1 5.2 3.8 3.0

20 31 57 85 173 217 301 390 481 412 416 337 299

0 0 1 0 1 0 1 1 4 22 17 26 40

0 0 0 0 0 0 0 0 0 0 0 0 0

0.0 0.0 57.0 0.0 173.0 0.0 301.0 390.0 157.0 48.6 57.6 40.6 35.4

0.3 0.3 1.0 0.9 3.4 2.4 5.2 6.6 13.5 54.9 36.9 47.8 121.9

569 813 1,057 1,298 1,513 1,712 1,903 2,076 2,205 2,293 2,357 2,385 2,400

329 504 670 818 987 1,209 1,355 1,571 1,625 1,826 2,131 2,445 2,541

62 123 193 284 380 439 582 673 970 1,161 1,272 1,410 1,779

22 31 40 49 57 64 69 74 76 79 80 80 80

Benchmark Problems for the MCPRP

398

Table G.31 Test Problem H80_o: 40 locations, 80 hotspots, grid size 30, 30 − 90 minute time windows. Car

R.Obj.

R.Ti.

R.Col.

No.

F.

A.Col.

Ti.

Pa.

Tr.

Wa.

Hot.

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

786.0 1,152.0 1,507.0 1,851.0 2,191.0 2,514.0 2,817.0 3,092.0 3,351.0 3,584.0 3,801.0 4,002.0 4,171.0 4,311.0 4,415.0 4,463.0 4,501.0 4,526.0 4,545.0 4,562.0 4,563.0

0.1 0.3 0.3 0.5 0.7 1.1 1.9 2.4 2.6 3.2 3.1 3.9 4.7 3.4 5.0 4.5 3.9 3.2 3.1 3.4 3.4

10 24 37 63 73 126 193 234 258 279 301 354 399 382 426 397 359 336 316 322 326

0 0 0 0 0 1 0 1 1 2 0 3 13 16 28 31 48 33 58 77 101

0 0 0 0 0 0 0 0 0 0 0 0 2 0 6 0 2 0 2 8 7

0.0 0.0 0.0 0.0 0.0 126.0 0.0 234.0 258.0 154.5 0.0 135.0 51.5 44.4 32.4 29.9 21.5 25.4 18.1 19.6 16.5

0.1 0.3 0.3 0.5 0.7 1.8 1.9 3.8 3.5 5.1 3.1 6.9 16.8 21.0 39.3 43.6 56.3 44.7 65.9 130.2 149.0

786 1,152 1,507 1,851 2,191 2,514 2,817 3,092 3,351 3,584 3,801 4,002 4,171 4,311 4,415 4,463 4,501 4,526 4,545 4,562 4,563

159 233 327 435 560 690 823 890 1,020 1,168 1,354 1,431 1,470 1,688 1,849 1,878 2,066 2,237 2,277 2,254 2,405

15 55 86 114 129 156 200 338 429 528 605 807 1,079 1,201 1,416 1,819 2,073 2,357 2,778 3,264 3,592

15 23 29 36 42 50 56 59 63 66 71 74 78 79 79 80 80 80 80 80 80

G.5 80 Hotspots (Extension)

399

Table G.32 Test Problem H80_p: 40 locations, 80 hotspots, grid size 60, 30 − 90 minute time windows. Car

R.Obj.

R.Ti.

R.Col.

No.

F.

A.Col.

Ti.

Pa.

Tr.

Wa.

Hot.

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

661.0 962.0 1,258.0 1,537.0 1,814.0 2,088.0 2,360.0 2,607.0 2,846.0 3,058.0 3,266.0 3,453.0 3,627.0 3,780.0 3,907.0 4,017.0 4,113.0 4,198.0 4,266.0 4,314.0 4,325.0

0.1 0.1 0.2 0.3 0.4 0.7 0.7 0.9 1.2 1.5 2.4 2.5 3.0 3.6 3.6 3.5 3.4 3.3 3.0 3.1 2.7

10 12 26 36 49 63 77 106 144 184 241 264 307 342 346 364 375 361 350 347 330

0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 2 1 17 19 24 48

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3 0 2 0

0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 307.0 342.0 0.0 202.5 375.0 37.1 31.5 31.0 20.2

0.1 0.1 0.2 0.3 0.4 0.7 0.7 0.9 1.2 1.5 2.4 2.5 4.2 4.6 3.6 5.1 4.1 14.4 15.3 20.8 44.6

661 962 1,258 1,537 1,814 2,088 2,360 2,607 2,846 3,058 3,266 3,453 3,627 3,780 3,907 4,017 4,113 4,198 4,266 4,314 4,325

241 382 508 685 845 1,015 1,136 1,238 1,394 1,597 1,766 2,029 2,288 2,351 2,533 2,829 3,093 3,317 3,358 3,619 3,838

58 96 154 178 221 257 344 475 560 625 728 758 805 1,069 1,240 1,314 1,434 1,605 1,976 2,147 2,397

12 19 25 32 38 45 50 54 57 61 65 69 72 75 76 77 78 79 80 80 80

Benchmark Problems for the MCPRP

400

G.6

100 Hotspots MCNFP: 100 Hotspots Runtime (CPU seconds)

2.50 2.00

H100_a H100_b

1.50

H100_c H100_d

1.00

H80_e H100_f

0.50

H100_g 0.00

H100_h 1

3

5

7

9 11 13 15 17 19 21 23 25 27 29 31 33 35

Number of Cars

Fig. G.5 Runtimes for the range of H100 test problem instances solved with the MCNFP model.

Table G.33 Test Problem H100_a: 100 locations, 100 hotspots, grid size 30, 1 minute time windows. Car

R.Obj.

R.Ti.

R.Col.

No.

F.

A.Col.

2 3 4 5 6 7 8

54.0 70.0 82.0 91.0 96.0 98.0 100.0

1.3 2.9 3.5 4.7 5.1 4.4 3.2

39 107 105 128 192 179 146

0 0 0 0 0 0 0

0 0 0 0 0 0 0

0.0 0.0 0.0 0.0 0.0 0.0 0.0

Ti.

Pa.

1.3 54 2.9 70 3.5 82 4.7 91 5.1 96 4.4 98 3.2 100

Tr.

Wa.

Hot.

567 339 881 489 979 859 1,173 1,136 1,384 1,400 1,328 1,934 1,364 2,376

54 70 82 91 96 98 100

G.6 100 Hotspots

401

Table G.34 Test Problem H100_b: 100 locations, 100 hotspots, grid size 60, 1 minute time windows. Car

R.Obj.

R.Ti.

R.Col.

No.

F.

A.Col.

2 3 4 5 6 7 8 9 10

39.0 55.0 66.0 77.0 84.0 90.0 96.0 99.0 100.0

0.5 0.9 1.1 3.1 2.2 2.1 2.9 3.1 0.0

23 64 73 163 126 105 134 142 11

0 0 14 20 39 0 0 0 0

0 0 0 4 0 0 0 0 0

0.0 0.0 22.4 39.7 71.2 0.0 0.0 0.0 0.0

Ti.

Pa.

0.5 39 0.9 55 16.2 66 53.8 77 387.0 84 2.1 90 2.9 96 3.1 99 0.0 100

Tr.

Wa.

Hot.

552 369 819 566 1,142 712 1,386 937 1,793 1,003 2,003 1,267 2,205 1,539 2,423 1,798 2,508 2,192

39 55 66 77 84 90 96 99 100

Table G.35 Test Problem H100_c: 100 locations, 100 hotspots, grid size 30, 5 − 15 minute time windows. Car

R.Obj.

R.Ti.

R.Col.

No.

F.

A.Col.

Ti.

Pa.

Tr.

Wa.

Hot.

2 3 4 5 6 7

392.0 539.0 658.0 754.0 836 889.0

1.7 4.1 11.2 11.7 14.1 10.6

53 148 332 314 481 436

1 3 12 27 24 44

0 0 0 0 0 0

53.0 66.7 90.9 124.1 181.3 187.3

3.4 11.4 136.7 959.3 1,050.8 6,285.6

392 539 658 754 836 889

405 633 812 1,018 1,202 1,442

163 268 450 628 842 1,029

41 56 70 79 89 95

Benchmark Problems for the MCPRP

402

Table G.36 Test Problem H100_d: 100 locations, 100 hotspots, grid size 60, 5 − 15 minute time windows. Car

R.Obj.

R.Ti.

R.Col.

No.

F.

A.Col.

Ti.

Pa.

Tr.

Wa.

Hot.

2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

294.0 409.0 510.0 603.0 679.0 750.0 805.0 846.0 876.0 892.0 903.0 909.0 912.0 914.0 916.0

0.5 0.9 1.3 3.1 4.7 5.4 6.3 5.4 5.3 6.4 5.9 8.0 7.0 5.5 6.7

22 57 89 190 256 285 339 349 329 291 302 292 294 286 322

0 2 6 5 11 13 22 33 58 66 82 104 92 106 100

0 0 0 0 0 0 0 0 0 0 0 6 0 0 4

0.0 34.5 34.3 60.6 63.9 63.2 76.0 80.1 60.3 72.1 76.5 64.7 58.0 53.5 48.8

0.5 2.4 7.7 10.4 38.1 57.7 193.0 302.9 811.9 1,417.4 2,878.8 3,234.4 1,610.5 2,001.5 1,299.4

294 409 510 603 679 750 805 846 876 892 903 909 912 914 916

498 734 986 1,287 1,542 1,854 2,040 2,259 2,580 2,915 3,065 3,543 3,664 3,861 3,766

168 297 424 510 659 756 995 1,215 1,344 1,473 1,792 1,788 2,144 2,425 2,998

27 40 52 62 74 82 88 93 97 99 100 100 100 100 100

Table G.37 Test Problem H100_e: 100 locations, 100 hotspots, grid size 30, 30 minute time windows. Car

R.Obj.

R.Ti.

R.Col.

No.

F.

A.Col.

Ti.

Pa.

2 3 4 5 6 7 8 9 10 11 12 13

706.0 1,036.0 1,348.0 1,642.0 1,908.0 2,148.0 2,359.0 2,543.0 2,697.0 2,828.0 2,908.0 2,966.0

0.6 0.6 1.4 3.8 6.4 9.8 15.2 28.4 28.3 21.7 15.4 13.6

20 37 79 193 312 441 590 803 731 862 674 603

0 0 3 2 1 2 0 4 16 27 39 55

0 0 0 0 0 0 0 0 0 0 0 0

0.0 0.0 39.0 113.0 312.0 235.0 0.0 261.8 109.1 150.4 106.7 115.9

0.6 0.6 4.8 7.5 9.7 18.2 15.2 70.6 181.1 634.1 769.2 2,465.5

706 1,036 1,348 1,642 1,908 2,148 2,359 2,543 2,697 2,828 2,908 2,966

Tr.

Wa.

Hot.

214 40 352 52 449 123 574 184 722 250 862 350 980 501 1,149 628 1,324 779 1,445 1,007 1,526 1,326 1,597 1,677

28 43 54 64 74 83 90 95 99 100 100 100

G.6 100 Hotspots

403

Table G.38 Test Problem H100_f: 100 locations, 100 hotspots, grid size 60, 30 minute time windows. Car

R.Obj.

R.Ti.

R.Col.

No.

F.

A.Col.

Ti.

Pa.

Tr.

Wa.

Hot.

2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

598.0 862.0 1,119.0 1,365.0 1,589.0 1,809.0 2,022.0 2,203.0 2,368.0 2,522.0 2,653.0 2,767.0 2,838.0 2,892.0 2,929.0 2,957.0 2,976.0 2,990.0 2,996.0

0.3 0.6 1.2 1.4 2.8 3.5 6.4 7.5 10.2 13.9 15.5 18.6 11.5 11.5 10.3 14.2 16.2 11.3 11.5

11 22 41 68 127 157 261 288 341 455 521 653 524 532 467 464 418 394 391

0 0 0 0 0 0 2 3 7 8 7 12 29 29 44 53 67 54 73

0 0 0 0 0 0 0 0 0 0 0 0 0 0 4 2 2 0 2

0.0 0.0 0.0 0.0 0.0 0.0 153.5 113.0 78.9 104.8 106.9 93.0 57.8 60.9 52.9 49.9 42.7 38.5 39.5

0.3 0.6 1.2 1.4 2.8 3.5 12.1 14.8 34.1 55.8 45.2 73.9 184.2 172.8 401.6 500.1 638.4 346.0 690.4

598 862 1,119 1,365 1,589 1,809 2,022 2,203 2,368 2,522 2,653 2,767 2,838 2,892 2,929 2,957 2,976 2,990 2,996

236 403 574 770 913 1,096 1,299 1,412 1,585 1,835 1,942 2,081 2,385 2,408 2,687 2,588 2,950 3,035 3,043

126 175 227 265 378 455 519 705 847 923 1,165 1,392 1,497 1,900 2,064 2,615 2,714 3,095 3,561

23 33 43 52 61 69 76 82 88 93 97 99 100 100 100 100 100 100 100

Benchmark Problems for the MCPRP

404

Table G.39 Test Problem H100_g: 100 locations, 100 hotspots, grid size 30, 30 − 90 minute time windows. Car

R.Obj.

R.Ti.

R.Col.

No.

F.

A.Col.

Ti.

Pa.

Tr.

Wa.

Hot.

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

773.0 1,143.0 1,509.0 1,872.0 2,227.0 2,579.0 2,926.0 3,264.0 3,590.0 3,906.0 4,207.0 4,473.0 4,715.0 4,935.0 5,140.0 5,303.0 5,438.0 5,552.0 5,643.0 5,706.0 5,739.0 5,762.0 5,770.0

0.3 0.2 0.4 0.7 0.9 2.0 4.5 3.0 4.1 4.9 8.0 9.0 12.0 12.1 16.4 14.9 15.8 10.9 8.6 11.1 8.4 9.3 6.6

11 16 28 48 59 80 140 159 192 251 343 390 491 511 574 593 533 525 517 497 471 457 420

0 0 0 0 0 0 0 0 0 0 0 1 0 3 3 8 17 21 29 34 71 60 70

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 2 12 2 4

0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 390.0 0.0 201.0 225.3 124.0 63.4 59.0 58.4 53.4 34.0 48.8 41.3

0.3 0.2 0.4 0.7 0.9 2.0 4.5 3.0 4.1 4.9 8.0 11.4 12.0 22.9 27.4 53.4 66.0 81.5 120.0 186.2 342.6 506.8 532.9

773 1,143 1,509 1,872 2,227 2,579 2,926 3,264 3,590 3,906 4,207 4,473 4,715 4,935 5,140 5,303 5,438 5,552 5,643 5,706 5,739 5,762 5,770

165 243 339 435 530 638 710 829 960 1,082 1,199 1,323 1,445 1,625 1,707 1,881 2,033 2,218 2,215 2,395 2,549 2,674 2,806

22 54 72 93 123 143 204 227 250 292 354 444 560 640 833 976 1,169 1,350 1,742 1,979 2,272 2,604 2,944

15 20 28 34 40 49 55 61 67 72 79 84 88 93 95 98 99 100 100 100 100 100 100

G.6 100 Hotspots

405

Table G.40 Test Problem H100_h: 100 locations, 100 hotspots, grid size 60, 30 − 90 minute time windows. Car

R.Obj.

R.Ti.

R.Col.

No.

F.

A.Col.

Ti.

Pa.

Tr.

Wa.

Hot.

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

658.0 974.0 1,285.0 1,593.0 1,885.0 2,172.0 2,459.0 2,741.0 3,011.0 3,272.0 3,526.0 3,777.0 4,012.0 4,243.0 4,459.0 4,665.0 4,862.0 5,042.0 5,190.0 5,325.0 5,451.0 5,566.0 5,648.0 5,722.0 5,781.0 5,825.0 5,866.0 5,903.0 5,935.0 5,961.0 5,973.0 5,981.0 5,987.0 5,990.0

0.0 0.2 0.3 0.3 0.6 0.6 0.8 1.2 1.7 1.8 2.4 2.5 2.9 3.5 4.1 4.7 4.8 7.3 6.9 8.2 6.1 8.9 6.5 7.4 8.1 7.2 7.1 8.7 7.2 7.1 6.5 6.7 6.5 6.4

5 14 21 28 46 45 59 87 113 118 159 171 190 220 249 296 323 391 404 411 419 473 441 410 418 388 402 406 400 384 375 379 370 369

0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 2 1 17 9 19 12 30 54 34 38 51 59 79 65

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 10 2 6 2 6 9 4

0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 249.0 0.0 0.0 391.0 0.0 0.0 235.5 473.0 49.1 62.8 38.2 48.2 29.1 21.8 25.4 28.5 26.0 22.2 22.2 21.2

0.0 0.2 0.3 0.3 0.6 0.6 0.8 1.2 1.7 1.8 2.4 2.5 2.9 3.5 6.0 4.7 4.8 10.2 6.9 8.2 9.6 11.3 31.0 17.7 38.3 20.8 46.6 110.1 59.7 84.8 128.5 138.7 201.6 139.1

658 974 1,285 1,593 1,885 2,172 2,459 2,741 3,011 3,272 3,526 3,777 4,012 4,243 4,459 4,665 4,862 5,042 5,190 5,325 5,451 5,566 5,648 5,722 5,781 5,825 5,866 5,903 5,935 5,961 5,973 5,981 5,987 5,990

237 359 489 577 721 839 973 1,121 1,288 1,476 1,652 1,757 1,915 2,084 2,271 2,391 2,538 2,660 2,829 2,963 3,154 3,341 3,528 3,668 3,931 4,064 4,118 4,401 4,569 4,782 4,845 4,902 5,126 5,405

65 107 146 230 274 349 408 458 501 532 582 706 793 873 950 1,104 1,240 1,418 1,581 1,792 1,955 2,133 2,344 2,610 2,768 3,071 3,456 3,616 3,896 4,137 4,542 4,957 5,207 5,405

12 16 23 28 33 40 44 49 55 60 65 69 72 77 81 84 88 90 92 94 96 96 97 98 99 99 99 99 100 100 100 100 100 100

References [1] R. Ahuja, T. Magnanti, and J. Orlin. Network Flows: Theory, Algorithms, and Applications. Prentice Hall, 1993. [2] Z. Akca, T. K. Ralphs, and R. T. Berger. Solution methods for the multi-trip elementary shortest path problem with resource constraints. Technical report, COR@ L Laboratory, Lehigh University, Bethlehem, Pennsylvania, 2010. [3] B. An, F. Ordóñez, M. Tambe, E. Shieh, R. Yang, C. Baldwin, J. DiRenzo III, K. Moretti, B. Maule, and G. Meyer. A deployed quantal response-based patrol planning system for the US Coast Guard. Interfaces, 43(5):400–420, 2013. [4] J. Andersen, M. Christiansen, T. G. Crainic, and R. Grønhaug. Branch and price for service network design with asset management constraints. Transportation Science, 45(1):33–49, 2011. [5] L. H. Appelgren. A column generation algorithm for a ship scheduling problem. Transportation Science, 3(1):53–68, 1969. [6] C. Archetti, D. Feillet, A. Hertz, and M. G. Speranza. The undirected capacitated arc routing problem with profits. Computers & Operations Research, 37 (11):1860–1869, 2010. [7] C. Archetti, M. G. Speranza, and D. Vigo. Chapter 10: Vehicle routing problems with profits. In P. Toth and D. Vigo, editors, Vehicle Routing: Problems, Methods, and Applications, MOS-SIAM Series on Optimization, pages 273–297. Society for Industrial and Applied Mathematics, 2014. [8] F. Ayres. Schaum’s Outline of Modern Abstract Algebra. McGraw Hill Companies, Inc., 1965. [9] M. P. Bailey, K. D. Glazebrook, and R. F. Dell. Simulation-based dynamic optimization: planning United States Coast Guard law enforcement patrols. In Proceedings of the 26th Conference on Winter Simulation, pages 392–398. Society for Computer Simulation International, 1994. [10] R. Baldacci, E. Bartolini, A. Mingozzi, and R. Roberti. An exact solution framework for a broad class of vehicle routing problems. Computational Management Science, 7(3):229–268, 2010. ISSN 1619-697X. [11] C. Barnhart, N. L. Boland, L. W. Clarke, E. L. Johnson, G. L. Nemhauser, and R. G. Shenoi. Flight string models for aircraft fleeting and routing. Transportation Science, 32(3):208–220, 1998.

408

References

[12] C. Barnhart, E. L. Johnson, G. L. Nemhauser, M. W. P. Savelsbergh, and P. H. Vance. Branch-and-price: column generation for solving huge integer programs. Operations Research, 46(3):316–329, 1998. [13] B. Baumslag and B. Chandler. Schaum’s Outline of Group Theory. McGraw-Hill Companies, Inc., 1968. [14] R. E. Bellman. On a routing problem. Quarterly of Applied Mathematics, 16: 87–90, 1958. [15] H. Ben Amor and J. Valério de Carvalho. Cutting stock problems. In G. Desaulniers, J. Desrosiers, and M. M. Solomon, editors, Column Generation, pages 131–161. Springer US, 2005. ISBN 978-0-387-25485-2. [16] D. Bertsimas and J. N. Tsitsiklis. Introduction to Linear Optimization, volume 6 of Athena Scientific Series in Optimization and Neural Computation. Athena Scientific, 1997. [17] G. G. Brown, R. F. Dell, and R. A. Farmer. Scheduling Coast Guard district cutters. Interfaces, 26(2):59–72, 1996. ˙ Çapar, B. B. Keskin, and P. A. Rubin. An improved formulation for the [18] I. maximum coverage patrol routing problem. Computers & Operations Research, 59:1–10, 2015. [19] A. A. Chaves and L. A. N. Lorena. Hybrid metaheuristic for the prize collecting travelling salesman problem. In J. van Hemert and C. Cotta, editors, Proceedings of the 8th European Conference on Evolutionary Computation in Combinatorial Optimization, Naples, Italy, pages 123–134, Berlin, Heidelberg, 2008. Springer Berlin Heidelberg. ISBN 978-3-540-78604-7. [20] D.-S. Chen, R. G. Batson, and Y. Dang. Applied Integer Programming: Modeling and Solution. John Wiley & Sons, 2011. [21] P. A. Chircop, T. J. Surendonk, M. H. L. van den Briel, and T. Walsh. A column generation approach for the scheduling of patrol boats to provide complete patrol coverage. In J. Piantadosi, R. S. Anderssen, and J. Boland, editors, Proceedings of the 20th International Congress on Modelling and Simulation, pages 1110–1116. Modelling and Simulation Society of Australia and New Zealand, 2013. ISBN 978-0-9872143-3-1. [22] M. Christiansen and B. Nygreen. A method for solving ship routing problems with inventory constraints. Annals of Operations Research, 81:357–378, 1998. [23] M. Christiansen, K. Fagerholt, and D. Ronen. Ship routing and scheduling: status and perspectives. Transportation Science, 38(1):1–18, 2004. [24] V. Chvatal. Linear Programming. Macmillan, 1983. [25] A. Clark. Elements of Abstract Algebra. Courier Corporation, 1984.

References

409

[26] M. Conforti, G. Cornuéjols, and G. Zambelli. Integer Programming, volume 271 of Graduate Texts in Mathematics. Springer, 2014. ISBN 978-3-319-11008-0. [27] G. B. Dantzig and P. Wolfe. Decomposition principle for linear programs. Operations Research, 8(1):101–111, 1960. [28] K. Darby-Dowman, R. K. Fink, G. Mitra, and J. W. Smith. An intelligent system for US Coast Guard cutter scheduling. European Journal of Operational Research, 87(3):574–585, 1995. [29] S. Dasgupta, C. H. Papadimitriou, and U. Vazirani. Algorithms. McGraw-Hill, Inc., 2006. [30] R. Dechter. Constraint Processing. Morgan Kaufmann, 2003. [31] G. Desaulniers, J. Desrosiers, and M. M. Solomon. Accelerating strategies in column generation methods for vehicle routing and crew scheduling problems. In Essays and Surveys in Metaheuristics, volume 15 of Operations Research/Computer Science Interfaces Series, pages 309–324. Springer US, 2002. ISBN 978-1-4613-5588-5. [32] M. Desrochers. La fabrication d’horaires de travail pour les conducteurs d’autobus par une méthode de génération de colonnes. Université de Montréal, Centre de recherche sur les transports, 1986. [33] M. Desrochers and F. Soumis. A generalized permanent labeling algorithm for the shortest-path problem with time windows. Information Systems and Operations Research, 26(3):191–212, 1988. [34] M. Desrochers, J. Desrosiers, and M. Solomon. A new optimization algorithm for the vehicle routing problem with time windows. Operations Research, 40 (2):342–354, 1992. [35] J. Desrosiers and M. E. Lübbecke. A primer in column generation. In G. Desaulniers, J. Desrosiers, and M. M. Solomon, editors, Column Generation, pages 1–32. Springer US, 2005. ISBN 978-0-387-25485-2. [36] J. Desrosiers, F. Soumis, and M. Desrochers. Routing with time windows by column generation. Networks, 14(4):545–565, 1984. [37] J. Desrosiers, Y. Dumas, M. M. Solomon, and F. Soumis. Chapter 2: Time constrained routing and scheduling. In M. O. Ball, T. L. Magnanti, C. L. Monma, and G. L. Nemhauser, editors, Network Routing, volume 8 of Handbooks in Operations Research and Management Science, pages 35–139. Elsevier, 1995. [38] R. Dewil, P. Vansteenwegen, D. Cattrysse, and D. V. Oudheusden. A minimum cost network flow model for the maximum covering and patrol routing problem. European Journal of Operational Research, 247(1):27–36, 2015. [39] E. W. Dijkstra. A note on two problems in connexion with graphs. Numerische Mathematik, 1(1):269–271, 1959.

410

References

[40] A. Drozdek. Data Structures and Algorithms in Java. Cengage Learning, 2004. [41] O. du Merle, D. Villeneuve, J. Desrosiers, and P. Hansen. Stabilized column generation. Discrete Mathematics, 194(1):229–237, 1999. [42] K. Easton, G. Nemhauser, and M. Trick. CP based branch-and-price. In M. Milano, editor, Constraint and Integer Programming, volume 27 of Operations Research/Computer Science Interfaces Series, pages 207–231. Springer US, 2004. ISBN 978-1-4613-4719-4. [43] N. A. El-Sherbeny. Vehicle routing with time windows: an overview of exact, heuristic and metaheuristic methods. Journal of King Saud University - Science, 22(3):123–131, 2010. [44] I. Elhallaoui, A. Metrane, F. Soumis, and G. Desaulniers. Multi-phase dynamic constraint aggregation for set partitioning type problems. Mathematical Programming, 123(2):345–370, 2010. [45] G. Erdogan, ˘ E. Erkut, A. Ingolfsson, and G. Laporte. Scheduling ambulance crews for maximum coverage. Journal of the Operational Research Society, 61(4): 543–550, 2010. [46] A. T. Ernst, H. Jiang, M. Krishnamoorthy, and D. Sier. Staff scheduling and rostering: a review of applications, methods and models. European Journal of Operational Research, 153(1):3–27, 2004. [47] F. Fang, P. Stone, and M. Tambe. When security games go green: designing defender strategies to prevent poaching and illegal fishing. In International Joint Conference on Artificial Intelligence (IJCAI), 2015. [48] M. Fischetti, A. Lodi, S. Martello, and P. Toth. A polyhedral approach to simplified crew scheduling and vehicle scheduling problems. Management Science, 47(6):833–850, 2001. [49] M. Fisher. Chapter 1: Vehicle routing. In M. O. Ball, T. L. Magnanti, C. L. Monma, and G. L. Nemhauser, editors, Network Routing, volume 8 of Handbooks in Operations Research and Management Science, pages 1–33. Elsevier, 1995. [50] L. R. Ford and D. R. Fulkerson. A suggested computation for maximal multicommodity network flows. Management Science, 5(1):97–101, 1958. [51] L. R. Ford and D. R. Fulkerson. Flows in Networks. Princeton University Press, 1962. [52] P. M. Francis, K. R. Smilowitz, and M. Tzur. The period vehicle routing problem and its extensions. In The Vehicle Routing Problem: Latest Advances and New Challenges, pages 73–102. Springer, 2008. [53] M. Galati. Decomposition Methods for Integer Linear Programming. PhD thesis, Lehigh University, 2010.

References

411

[54] M. Gamache, F. Soumis, G. Marquis, and J. Desrosiers. A column generation approach for large-scale aircrew rostering problems. Operations Research, 47 (2):247–263, 1999. [55] M. R. Garey and D. S. Johnson. Computers and Intractability: A Guide to the Theory of NP-Completeness. W. H. Freeman and Company, New York, 1979. [56] A. M. Geoffrion. Lagrangean relaxation for integer programming. In M. L. Balinski, editor, Approaches to Integer Programming, pages 82–114. Springer Berlin Heidelberg, 1974. ISBN 978-3-642-00740-8. [57] P. C. Gilmore and R. E. Gomory. A linear programming approach to the cutting-stock problem. Operations Research, 9(6):849–859, 1961. [58] P. C. Gilmore and R. E. Gomory. A linear programming approach to the cutting stock problem — Part II. Operations Research, 11(6):863–888, 1963. [59] A. Goel and V. Gruhn. A general vehicle routing problem. European Journal of Operational Research, 191(3):650–660, 2008. ISSN 0377-2217. [60] J.-L. Goffin and J.-P. Vial. Convex nondifferentiable optimization: a survey focused on the analytic center cutting plane method. Optimization Methods and Software, 17(5):805–867, 2002. [61] B. L. Golden, S. Raghavan, and E. A. Wasil. The Vehicle Routing Problem: Latest Advances and New Challenges, volume 43. Springer Science & Business Media, 2008. [62] M. T. Goodrich and R. Tamassia. Data Structures and Algorithms in Java. John Wiley & Sons, 2008. [63] S. Gualandi and F. Malucelli. Constraint programming-based column generation. 4OR, 7(2):113–137, 2009. [64] R. A. Hahn and A. M. Newman. Scheduling United States Coast Guard helicopter deployment and maintenance at Clearwater Air Station, Florida. Computers & Operations Research, 35(6):1829–1843, 2008. [65] K. J. Hastings. Introduction to the Mathematics of Operations Research with Mathematica®. CRC Press, 2006. [66] F. He and R. Qu. A constraint programming based column generation approach to nurse rostering problems. Computers & Operations Research, 39(12): 3331–3343, 2012. [67] J. Herbers. Models and Algorithms for Ground Staff Scheduling on Airports. PhD thesis, Universitätsbibliothek, 2005. [68] J. B. Hiriart-Urruty and C. Lemaréchal. Convex Analysis and Minimization Algorithms II: Advanced Theory and Bundle Methods, volume 306 of Grundlehren der mathematischen Wissenschaften. Springer-Verlag, New York, 1993.

412

References

[69] J. Hooker. Integrated Methods for Optimization. Springer, 2007. [70] M. E. T. Horn, H. Jiang, and P. Kilby. Scheduling patrol boats and crews for the Royal Australian Navy. Journal of the Operational Research Society, 58(10): 1284–1293, 2006. [71] Y. C. Hsieh, P. S. You, P. J. Lee, and Y. C. Lee. A novel encoding scheme based evolutionary approach for the bi-objective grid patrol routing problem with multiple vehicles. Scientia Iranica. Transaction B, Mechanical Engineering, 22(4): 1576–1585, 2015. [72] S. Irnich and G. Desaulniers. Shortest path problems with resource constraints. In G. Desaulniers, J. Desrosiers, and M. M. Solomon, editors, Column Generation, pages 33–65. Springer US, 2005. ISBN 978-0-387-25485-2. [73] M. Jain, E. Kardes, C. Kiekintveld, F. Ordóñez, and M. Tambe. Security games with arbitrary schedules: a branch and price approach. In Proceedings of the Twenty-Fourth AAAI Conference on Artificial Intelligence (AAAI-10), pages 792– 797. The AAAI Press, 2010. [74] M. Jain, J. Tsai, J. Pita, C. Kiekintveld, S. Rathi, M. Tambe, and F. Ordóñez. Software assistants for randomized patrol planning for the LAX Airport police and the federal air marshal service. Interfaces, 40(4):267–290, 2010. [75] B. Kallehauge, J. Larsen, O. B. G. Madsen, and M. Solomon. Vehicle routing problem with time windows. In G. Desaulniers, J. Desrosiers, and M. M. Solomon, editors, Column Generation, pages 67–98. Springer US, 2005. ISBN 978-0-387-25485-2. [76] R. M. Karp. Reducibility among combinatorial problems. In R. E. Miller, J. W. Thatcher, and J. D. Bohlinger, editors, Complexity of Computer Computations: Proceedings of a Symposium on the Complexity of Computer Computations, pages 85–103. Springer US, 1972. ISBN 978-1-4684-2001-2. [77] B. B. Keskin, S. Li, D. Steil, and S. Spiller. Analysis of an integrated maximum covering and patrol routing problem. Transportation Research Part E: Logistics and Transportation Review, 48(1):215–232, 2012. [78] P. Kilby and P. Shaw. Chapter 23: Vehicle routing. In F. Rossi, P. van Beek, and T. Walsh, editors, Handbook of Constraint Programming, volume 2 of Foundations of Artificial Intelligence, pages 801 – 836. Elsevier, 2006. [79] J. Kim and J. R. Morrison. On the concerted design and scheduling of multiple resources for persistent UAV operations. Journal of Intelligent & Robotic Systems, 74(1-2):479–498, 2014. [80] J. Kim, B. D. Song, and J. R. Morrison. On the scheduling of systems of UAVs and fuel service stations for long-term mission fulfillment. Journal of Intelligent & Robotic Systems, 70(1-4):347–359, 2013. [81] Z. Király and P. Kovács. Efficient implementations of minimum-cost flow algorithms. Acta Universitatis Sapientiae, Informatica, 4(1):67–118, 2012.

References

413

[82] L. S. Lasdon. Optimization Theory for Large Systems. Courier Dover Publications, 1970. [83] E. L. Lawler. Combinatorial Optimization: Networks and Matroids. Courier Dover Publications, 1976. [84] M. Lübbecke. Engine Scheduling by Column Generation. PhD thesis, Braunschweig University of Technology, 2001. [85] M. E. Lübbecke and J. Desrosiers. Selected topics in column generation. Operations Research, 53(6):1007–1023, 2005. [86] C. E. Leiserson, R. L. Rivest, C. Stein, and T. H. Cormen. Introduction to Algorithms. The MIT Press, 2001. [87] R. Li. Vehicle Routing Models in Public Safety and Health Care. PhD thesis, The University of Alabama TUSCALOOSA, 2012. [88] S. R. Li and B. B. Keskin. Bi-criteria dynamic location-routing problem for patrol coverage. Journal of the Operational Research Society, 2013. [89] V. Mak and A. T. Ernst. New cutting-planes for the time- and/or precedenceconstrained ATSP and directed VRP. Mathematical Methods of Operations Research, 66(1):69–98, 2007. [90] M. Milano, editor. Constraint and Integer Programming, volume 27 of Operations Research/Computer Science Interfaces Series. Springer US, 2004. ISBN 978-1-4613-4719-4. [91] H. H. Millar and S. N. Russell. A model for fisheries patrol dispatch in the Canadian Atlantic offshore fishery. Ocean & Coastal Management, 60(0):48–55, 2012. [92] D. Montana. How to make scheduling research relevant. In Proceedings of the Genetic and Evolutionary Computation Conference, GECCO, volume 2, 2002. [93] G. L. Nemhauser and L. A. Wolsey. Integer and Combinatorial Optimization. Wiley-Interscience Series in Discrete Mathematics and Optimization. John Wiley & Sons, Inc., 1988. [94] N. Nethercote, P. J. Stuckey, R. Becket, S. Brand, G. J. Duck, and G. Tack. MiniZinc: Towards a standard CP modelling language. In C. Bessière, editor, Proceedings of the 13th International Conference of Principles and Practice of Constraint Programming – CP 2007, pages 529–543. Springer Berlin Heidelberg, 2007. ISBN 978-3-540-74970-7. [95] W. G. Nulty and H. D. Ratliff. Interactive optimization methodology for fleet scheduling. Naval Research Logistics (NRL), 38(5):669–677, 1991. [96] C. H. Papadimitriou and K. Steiglitz. Combinatorial Optimization: Algorithms and Complexity. Courier Dover Publications, 1998.

414

References

[97] A.-S. Pepin, G. Desaulniers, A. Hertz, and D. Huisman. A comparison of five heuristics for the multiple depot vehicle scheduling problem. Journal of Scheduling, 12(1):17–30, 2009. [98] A. Pessoa, M. P. de Aragão, and E. Uchoa. Robust branch-cut-and-price algorithms for vehicle routing problems. In B. Golden, S. Raghavan, and E. Wasil, editors, The Vehicle Routing Problem: Latest Advances and New Challenges, pages 297–325. Springer US, 2008. ISBN 978-0-387-77778-8. [99] A. Pessoa, R. Sadykov, E. Uchoa, and F. Vanderbeck. In-out separation and column generation stabilization by dual price smoothing. In V. Bonifaci, C. Demetrescu, and A. Marchetti-Spaccamela, editors, Proceedings of the 12th International Symposium on Experimental Algorithms, pages 354–365. Springer Berlin Heidelberg, 2013. ISBN 978-3-642-38527-8. [100] J. Pita, M. Jain, J. Marecki, F. Ordóñez, C. Portway, M. Tambe, C. Western, P. Paruchuri, and S. Kraus. Deployed ARMOR protection: the application of a game theoretic model for security at the Los Angeles International Airport. In Proceedings of the 7th International Joint Conference on Autonomous Agents and Multiagent Systems: Industrial Track, pages 125–132. International Foundation for Autonomous Agents and Multiagent Systems, 2008. [101] J. Pita, M. Jain, F. Ordónez, C. Portway, M. Tambe, C. Western, P. Paruchuri, and S. Kraus. Using game theory for Los Angeles Airport security. AI Magazine, 30(1):43–57, 2009. [102] J. Puchinger, P. J. Stuckey, M. G. Wallace, and S. Brand. Dantzig-Wolfe decomposition and branch-and-price solving in G12. Constraints, 16(1):77–99, 2011. [103] C. R. Reeves. Modern Heuristic Techniques for Combinatorial Problems. John Wiley & Sons, Inc., 1993. [104] M. Rosenshine. Contributions to a theory of patrol scheduling. Operational Research Quarterly, pages 99–106, 1970. [105] F. Rossi, P. Van Beek, and T. Walsh, editors. Handbook of Constraint Programming. Elsevier, 2006. [106] S. Ruan, C. Meirina, F. Yu, K. R. Pattipati, and R. L. Popp. Patrolling in a stochastic environment. Technical report, DTIC Document, 2005. [107] D. M. Ryan and B. A. Foster. An integer programming approach to scheduling. Computer Scheduling of Public Transport Urban Passenger Vehicle and Crew Scheduling, pages 269–280, 1981. [108] M. Savelsbergh. A branch-and-price algorithm for the generalized assignment problem. Operations Research, 45(6):831–841, 1997. [109] M. W. P. Savelsbergh and M. Sol. The general pickup and delivery problem. Transportation Science, 29(1):17–29, 1995.

References

415

[110] A. Schrijver. Theory of Linear and Integer Programming. Wiley-Interscience Series in Discrete Mathematics and Optimization. John Wiley & Sons, Inc., 1986. [111] X. Shi, L. Wang, Y. Zhou, and Y. Liang. An ant colony optimization method for prize-collecting traveling salesman problem with time windows. In Fourth International Conference on Natural Computation, ICNC’08, volume 7, pages 480–484. IEEE, 2008. [112] E. Shieh, B. An, R. Yang, M. Tambe, C. Baldwin, J. DiRenzo, B. Maule, and G. Meyer. PROTECT: a deployed game theoretic system to protect the ports of the United States. In Proceedings of the 11th International Conference on Autonomous Agents and Multiagent Systems - Volume 1, pages 13–20. International Foundation for Autonomous Agents and Multiagent Systems, 2012. [113] E. Shieh, B. An, R. Yang, M. Tambe, C. Baldwin, J. DiRenzo, B. Maule, G. Meyer, and K. Moretti. PROTECT in the Ports of Boston, New York and Beyond: Experiences in Deploying Stackelberg Security Games with Quantal Response, pages 441–463. Springer, 2013. [114] E. Shieh, M. Jain, A. X. Jiang, and M. Tambe. Efficiently solving joint activity based security games. In Proceedings of the Twenty-Third International Joint Conference on Artificial Intelligence, pages 346–352. AAAI Press, 2013. [115] O. J. Smith, N. Boland, and H. Waterer. Solving shortest path problems with a weight constraint and replenishment arcs. Computers & Operations Research, 39(5):964–984, 2012. [116] B. D. Song, J. Kim, J. Kim, H. Park, J. R. Morrison, and D. H. Shim. Persistent UAV service: an improved scheduling formulation and prototypes of system components. Journal of Intelligent & Robotic Systems, 74(1-2):221–232, 2014. [117] M. Tambe. Security and Game Theory: Algorithms, Deployed Systems, Lessons Learned. Cambridge University Press, 2011. [118] T. Tsiligirides. Heuristic methods applied to orienteering. Journal of the Operational Research Society, 35(9):797–809, 1984. [119] P. H. Vance, C. Barnhart, E. L. Johnson, and G. L. Nemhauser. Solving binary cutting stock problems by column generation and branch-and-bound. Computational Optimization and Applications, 3(2):111–130, 1994. ISSN 0926-6003. [120] P. H. Vance, C. Barnhart, E. L. Johnson, and G. L. Nemhauser. Airline crew scheduling: a new formulation and decomposition algorithm. Operations Research, 45(2):188–200, 1997. [121] F. Vanderbeck. Decomposition and Column Generation for Integer Programs. PhD thesis, Universite Catholique de Louvain, 1994. [122] F. Vanderbeck. On Dantzig-Wolfe decomposition in integer programming and ways to perform branching in a branch-and-price algorithm. Operations Research, 48(1):111–128, 2000.

416

References

[123] F. Vanderbeck. Implementing mixed integer column generation. In G. Desaulniers, J. Desrosiers, and M. M. Solomon, editors, Column Generation, pages 331–358. Springer US, 2005. ISBN 978-0-387-25485-2. [124] F. Vanderbeck. Branching in branch-and-price: a generic scheme. Mathematical Programming, 130(2):249–294, 2011. [125] F. Vanderbeck and M. W. P. Savelsbergh. A generic view of Dantzig-Wolfe decomposition in mixed integer programming. Operations Research Letters, 34 (3):296–306, 2006. [126] F. Vanderbeck and L. A. Wolsey. An exact algorithm for IP column generation. Operations Research Letters, 19(4):151–159, 1996. [127] F. Vanderbeck and L. A. Wolsey. Reformulation and decomposition of integer programs. In 50 Years of Integer Programming 1958-2008, pages 431–502. Springer, 2010. [128] P. Vansteenwegen, W. Souffriau, and D. Van Oudheusden. The orienteering problem: a survey. European Journal of Operational Research, 209(1):1–10, 2011. [129] M. R. Wagner and Z. Radovilsky. Optimizing boat resources at the US Coast Guard: deterministic and stochastic models. Operations Research, 60(5):1035– 1049, 2012. [130] W. E. Wilhelm. A technical review of column generation in integer programming. Optimization and Engineering, 2(2):159–200, 2001. [131] L. A. Wolsey. Integer Programming. Wiley-Interscience Series in Discrete Mathematics and Optimization. John Wiley & Sons, Inc., 1998. [132] H. S. Zadeh, I. Storey, and J. Lenarcic. NaMOS; scheduling patrol boats and crews for the Royal Australian Navy. In Aerospace Conference, pages 1–12. IEEE, 2009.