Shortest Path - Capacitated Maximum Covering ... - OhioLINK ETD

7 downloads 0 Views 1MB Size Report
I would also like to thank Dr. David A. Schilling and his colleague to provide me ...... Estivill-Castro and Velazquez (1999) propose a hybrid genetic algorithm .... Delmaire, Dıaz and Fernández (1999) solve the single source capacitated plant.
Shortest Path - Capacitated Maximum Covering Problems Dissertation

Presented in Partial Fulfillment of the Requirements for the Degree Doctor of Philosophy in the Graduate School of The Ohio State University By Liyan Hua, B.A., M.S. Graduate Program in Business Administration The Ohio State University 2010

Dissertation Committee: John R. Current, Advisor David A. Schilling Keely L. Croxton

Copyright by Liyan Hua 2010

Abstract

I study the shortest path - capacitated maximum covering problem (SP-CMCLP). Current, ReVelle and Cohon (1985) first studied the un-capacitated version of this problem. The two objectives of the problem are the minimization of the path length from a predetermined starting node to a predetermined terminal node and the maximization of the total demand covered by the facilities located at the nodes in the path. They solved a special case in which a demand can be covered only if it is located on the path. I solve the general model. I also introduce facility capacity constraints, new algorithms and new demand coverage structures to this problem. I decompose the problem into a k-shortest path problem (kSP) and a capacitated maximum covering problem (CMCLP). The k-shortest path problem is solved by a path deletion algorithm (refer to Azevedo, et al., 1993, 1994). The capacitated maximum covering problem is solved by various heuristics and meta-heuristics including lagrangian relaxation, two versions of Tabu search and a simulated annealing method. To the knowledge of the author, the Tabu search and simulated annealing methods introduced are the first meta-heuristics developed for the capacitated maximum covering problem. In these meta-heuristics, I use four neighborhood structures. These are 1) one-interchange which exchanges an selected facility with an unselected facility, 2) client shift which shifts a satisfied demand from one selected facility to another selected facility, 3) demand swap (or demand reallocation) which swaps one (or more) ii

assigned demand node (nodes) with one (or more) unassigned demand node (nodes) within the coverage distance of a selected facility site, 4) demand addition which adds one or more unassigned demand to a selected facility. These neighborhoods are at different levels and are used in different stages of the meta-heuristics. I design an embedded meta-heuristic procedure which has inner loops of single neighborhoods and an outer loop of multiple alternate inner loops for different neighborhoods. I design a heuristic method and a penalty method for the demand allocation sub-problem in the embedded Tabu search. In the penalty method, I use surrogate relaxation and add a penalty term to the objective function for the violated capacity constraints. An embedded simulated annealing method with temperature vibration is also designed using heuristic demand allocation. I also solve a new version of the shortest path - capacitated maximum covering problem with tree coverage structure (SP-CMCLP-TREE). Demand is supplied by sub-paths on a minimum spanning tree constructed from an underlying network. A demand is counted as covered if the total arc length of a path from the demand to a facility site is within coverage distance and the demand can be satisfied only if all the intermediate demand nodes on the path are satisfied. Computational results for networks selected from literature show the effectiveness of the heuristics designed. Tabu search performs the best in solution quality, while Lagrangian relaxation and simulated annealing generate solutions of satisfactory quality using less time. Different path-coverage structures are used based on the properties of the networks. Tree demand coverage structure works better than traditional coverage structure for large partial networks. The impact of different network parameters are also studied. iii

Acknowledgements

This dissertation is independently finished by Liyan Hua under the guidance of my dissertation committee members. I would like to give thanks to Dr. John R. Current, Dr. David A. Schilling and Dr. Keely L. Croxton for their help and valuable advice during my doctoral study. I appreciate Dr. John R. Current’s fully support during difficult periods of my doctoral study. Without his help and insights, it is impossible for me to finish this dissertation. I would like to thank Dr. John R. Current and his colleague to give me permission to use their data sets in facility location and transportation network design problems. I would also like to thank Dr. David A. Schilling and his colleague to provide me with the 681-node data set of Baltimore, Maryland. I would also like to give thanks to Dr. Jo˜ao M. Coutinho-Rodrigues and his colleagues to give me permission to use their 756-node network of trash collection in Coimbra in Protugal and other related data sets in capacitated arc routing problems. Dr. Countiho-Rodriges also shares with me the computer programs for the k-shortest path problem. I thank Dr. John R. Current and Dr. Richard L. Church to discuss with me the idea on the tree coverage structure. I appreciate the Department of Management Sciences to offer me the opportunity of doctoral study in the area of Decision Sciences.

iv

Vita

September 1995 . . . . . . . . . . . . . . . . . . . . . . . . . . . . Tianjin Number Three High School, China 1999 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B.A. Economics, Nankai University, China 2002 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . M.S. Statistics, The Ohio State University, USA 2004-present . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Graduate Teaching/Research Associate, Department of Management Sciences, The Ohio State University.

Fields of Study

Major Field: Business Administration - Decision Sciences Minor Field: Logistics

v

Contents

Page Abstract . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

ii

Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

iv

Vita . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

v

List of Tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

x

List of Figures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiii Chapters: 1.

Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.1 1.2

1.3

1.4

Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Literature Review . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2.1 Literature in Maximum Covering Problems . . . . . . . . . 1.2.2 Literature in Meta-Heuristics in Facility Location Problems 1.2.3 Literature in Shortest Path Problems . . . . . . . . . . . . . 1.2.4 Literature in Facility Location and Transportation Network Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Contributions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.3.1 New Solution Methods for the Capacitated Maximum Covering Problem (CMCLP) . . . . . . . . . . . . . . . . . . . 1.3.2 Decomposition Method for the Shortest Path - Capacitated Maximum Covering Problem (SP-CMCLP) . . . . . . . . . 1.3.3 Shortest Path - Capacitated Maximum Covering Problem with Tree Coverage Structure (SP-CMCLP-TREE) . . . . . Content of This Dissertation . . . . . . . . . . . . . . . . . . . . . .

vi

1 1 6 6 13 26 27 32 32 34 35 36

2.

Capacitated Maximum Covering Problem (CMCLP) with Different Heuristics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.1

2.2

2.3

2.4

2.5

3.

Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.1.1 Variables and Parameters . . . . . . . . . . . . . . . . . . . 2.1.2 Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Lagrangian Relaxation (LR) Using New Heuristic Bound . . . . . . 2.2.1 Solution Method . . . . . . . . . . . . . . . . . . . . . . . . 2.2.2 Computational Complexity of Lagrangian Relaxation . . . . Tabu Search (TS) . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3.1 Initial Solution Generation Methods . . . . . . . . . . . . . 2.3.2 Local Search Procedures . . . . . . . . . . . . . . . . . . . . 2.3.3 Tabu Search Procedures . . . . . . . . . . . . . . . . . . . . 2.3.4 Computational Complexity of Tabu Search: . . . . . . . . . Simulated Annealing (SA) . . . . . . . . . . . . . . . . . . . . . . . 2.4.1 Simulated Annealing Procedure . . . . . . . . . . . . . . . . 2.4.2 Computational Complexity of Simulated Annealing . . . . . Summary of the Four Algorithms for the Capacitated Maximum Covering Problem . . . . . . . . . . . . . . . . . . . . . . . . . . .

37 38 38 39 40 40 47 47 49 54 82 92 93 93 98 98

Shortest Path - Capacitated Maximum Covering Problem (SP-CMCLP)

100

3.1

100 100 101 103 104 104

3.2

3.3

Model and Solution Methods . . . . . . . . . . . . . . . . . . . . . 3.1.1 Variables and Parameters . . . . . . . . . . . . . . . . . . . 3.1.2 Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.1.3 Solution Methods . . . . . . . . . . . . . . . . . . . . . . . . Decomposition Method . . . . . . . . . . . . . . . . . . . . . . . . 3.2.1 The Decomposition . . . . . . . . . . . . . . . . . . . . . . . 3.2.2 Shortest Path - Capacitate Maximum Covering Problem Overall Algorithm . . . . . . . . . . . . . . . . . . . . . . . 3.2.3 Shortest Path - Maximum Covering: Selection of the Final Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2.4 Computational Complexity of SP-CMCLP . . . . . . . . . . Computation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.3.1 Path Selection - Demand Coverage Structure and Comparison Standards . . . . . . . . . . . . . . . . . . . . . . . . . . 3.3.2 Selected Networks from Literature: . . . . . . . . . . . . . . 3.3.3 Generation of Partial Networks Based on Complete Networks 3.3.4 Explanation for Computation Results . . . . . . . . . . . . 3.3.5 Computation Results for Existing Partial Networks . . . . . 3.3.6 Computation Results for MST-Generated Partial Networks vii

107 109 110 110 111 114 122 131 134 158

3.3.7

3.4

4.

Shortest Path - Capacitated Maximum Covering Problem with Tree Coverage Structure (SP-CMCLP-TREE) . . . . . . . . . . . . . . . . . . . . 172 4.1

4.2

4.3

4.4

4.5

5.

Comparison of the k-Shortest Path-Capacitated Maximum Covering Algorithms for Different Network Structures and Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . 170 Summary of the Shortest Path - Capacitated Maximum Covering Problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171

Model for the Shortest Path - Capacitated Maximum Covering Problem with Tree Demand Coverage Structure (SP-CMCLP-TREE) . 4.1.1 Variables and Parameters . . . . . . . . . . . . . . . . . . . 4.1.2 Model 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.1.3 Model 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Solution Method . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2.1 Decomposition . . . . . . . . . . . . . . . . . . . . . . . . . 4.2.2 Greedy Algorithm for Capacitated Maximum Covering Problem with Tree Coverage Structure (CMCLP-TREE) . . . . 4.2.3 Demand Allocation Algorithm for a Single Added Facility in the CMCLP-TREE Problem . . . . . . . . . . . . . . . . . Overall Algorithm for the SP-CMCLP-TREE Problem . . . . . . . 4.3.1 Algorithm for the SP-CMCLP-TREE Problem . . . . . . . 4.3.2 Stopping Criteria and Generation of Non-Inferior Solutions . 4.3.3 Computational Complexity . . . . . . . . . . . . . . . . . . Computation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.4.1 Selected Networks from Literature . . . . . . . . . . . . . . 4.4.2 Computation Results . . . . . . . . . . . . . . . . . . . . . . 4.4.3 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . Summary of the Shortest Path - Capacitated Maximum Covering Problem with Tree Coverage Structure . . . . . . . . . . . . . . . .

173 175 177 180 186 186 188 189 199 199 200 200 203 203 203 213 215

Conclusion and Future Research Directions . . . . . . . . . . . . . . . . . 216 5.1

5.2

Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.1.1 Capacitated Maximum Covering Problem (CMCLP) . . . . 5.1.2 Shortest Path - Capacitated Maximum Covering Problem (SP-CMCLP) . . . . . . . . . . . . . . . . . . . . . . . . . . 5.1.3 Shortest Path - Capacitated Maximum Covering Problem with Tree Coverage Structure (SP-CMCLP-TREE) . . . . . Future Research . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.2.1 Other Decomposition Methods . . . . . . . . . . . . . . . . 5.2.2 Other Algorithms for SP-CMCLP . . . . . . . . . . . . . . viii

216 216 217 219 220 220 221

5.2.3 5.2.4 5.2.5 5.2.6 5.2.7

Extension of SP-CMCLP . . . . . . . . . . . . . . . . . . . Hybrid Heuristics for the Capacitated Maximum Covering Sub-Problem . . . . . . . . . . . . . . . . . . . . . . . . . . Computation Tests by Randomly Generated Networks . . . Extension to Other Routing Structures . . . . . . . . . . . . Extension to Other Location Problems . . . . . . . . . . . .

223 225 225 228 228

Bibliography . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229

ix

List of Tables

Table

Page

3.1

The Demand (Node Population) and Generated Facility Capacities of the 15-Node Network (in 1000’s) . . . . . . . . . . . . . . . . . . . . . 116

3.2

Parameters of 24 Scenarios for the 15-Node Network (Capacities in 1000’s) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118

3.3

Parameters of 24 Scenarios for the BB-Network . . . . . . . . . . . . 120

3.4

Parameters of 8 Scenarios for the Coimbra 756-Node Network . . . . 121

3.5

The Demand and Capacities (in 1000’s) of the 20-Node Network in Current, ReVelle and Cohon (1984) . . . . . . . . . . . . . . . . . . . 122

3.6

Parameters of 12 Scenarios for the 20-Node Network (Capacities in 1000’s) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125

3.7

The Demand (in 1000’s) of the 21-Node Network in Church, Current and Storbeck (1991) . . . . . . . . . . . . . . . . . . . . . . . . . . . 126

3.8

Parameters of 12 Scenarios for the 21-Node Network (Capacities in 1000’s) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127

3.9

Parameters of 12 Scenarios for the 55-Node Network . . . . . . . . . . 129

3.10 Parameters of 8 Scenarios for the 681-Node Network . . . . . . . . . . 130 3.11 Best Solutions of the SP-CMCLP Problem for the 15-Node Network (Time in Seconds) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137

x

3.12 Comparison of Average Performances for the 15-Node Network (Time in Seconds) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138 3.13 Percent of Demand Coverage over Total Actual Capacity for Scenarios 9-16 of the 15-Node Network . . . . . . . . . . . . . . . . . . . . . . . 139 3.14 Number of Paths Generated for Scenarios 1-8 of the 15-Node Network(1a)140 3.15 Non-Inferior Solutions of Lagrangian Relaxation for Scenario 1 of the 15-Node Partial Network . . . . . . . . . . . . . . . . . . . . . . . . . 146 3.16 Best Solutions of the SP-CMCLP Problem for the BB-Network (Time in Seconds) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152 3.17 Average Performances for the BB-Network (Time in Seconds) . . . . 153 3.18 Best Solutions of the SP-CMCLP Problem for the 20-Node Network (Time in Seconds) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156 3.19 Average Performances for the 20-Node Partial Network (Time in Seconds) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157 3.20 Percent of Demand Coverage Over Total Actual Capacity for Scenarios 5-8 of the 20-Node Network . . . . . . . . . . . . . . . . . . . . . . . 158 3.21 Best Solutions of the SP-CMCLP Problem for the 21-Node Network (Time in Seconds) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159 3.22 Average Performances for the 21-Node Partial Network (Time in Seconds) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160 3.23 Percent of Demand Coverage over Total Actual Capacity for Scenarios 5-8 of the 21-Node Network . . . . . . . . . . . . . . . . . . . . . . . 162 3.24 Best Solutions of the SP-CMCLP Problem for the 55-Node Network (Time in Seconds) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163 3.25 Average Performances for the 55-Node Partial Network (Time in Seconds) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164

xi

3.26 Percentage Coverage Demand over Total Actual Capacity for Scenarios 5-8 of the 55-Node Network . . . . . . . . . . . . . . . . . . . . . . . 165 3.27 Best Solutions of the SP-CMCLP Problem for the 681-Node Network (Time in Seconds) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168 3.28 Average Performances of the 681-Node Partial Network (Time in Seconds) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169 4.1

Solution of the SP-CMCLP-TREE Problem for the 15-Node Network (Time in Seconds) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206

4.2

Comparison Between Tree and Arc Coverage Structures for the 15Node Network . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206

4.3

Solution of the SP-CMCLP-TREE Problem for the 20-Node Network (Time in Seconds) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208

4.4

Comparison Between Tree and Arc Coverage Structures for the 20Node Network . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208

4.5

Solution of the SP-CMCLP-TREE Problem for the 21-Node Network (Time in Seconds) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209

4.6

Comparison Between Tree and Arc Coverage Structures for the 21Node Network . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209

4.7

Comparison of Tree versus Arc Coverage Structures for the 756-Node Network . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212

5.1

Information for the Randomly Generated Networks . . . . . . . . . . 227

xii

List of Figures

Figure

Page

2.1

1-Interchange : Exchange Selected Facility 2 with Unselected Facility 3 54

2.2

Client Shift : Shift Demand 3 from Facility 2 to 1 and Add Demand 6 to Facility 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

55

Demand Swap (Reallocation) : Remove Demand 3 and 4 from and Add Demand 5 to Facility 1 . . . . . . . . . . . . . . . . . . . . . . .

56

2.4

Demand Addition : Add Demand 4 and 5 to Facility 1 . . . . . . . .

57

2.5

Embedded Tabu Search with Outer and Inner Loops Using 4 Neighborhood Structures . . . . . . . . . . . . . . . . . . . . . . . . . . . .

83

1-Interchange Tabu Search (One Inner Loop of the Embedded Tabu Search) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

84

2.3

2.6

3.1

Algorithm for the Shortest Path - Capacitated Maximum Covering Problem (SP-CMCLP) . . . . . . . . . . . . . . . . . . . . . . . . . . 108

3.2

The 15-Node Network in Current, ReVelle and Cohon (1984, 1985)

3.3

The 20-Node Network in Current, ReVelle and Cohon (1984) . . . . . 123

3.4

The 21-node Network in Current, ReVelle and Cohon (1984) . . . . . 124

4.1

Shortest Path - Capacitated Maximum Covering Problem with Tree Coverage Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174

xiii

. 115

4.2

Greedy Algorithm for the Shortest Path - Capacitated Maximum Covering Problem with Tree Coverage Structure (SP-CMCLP-TREE) . . 190

4.3

Algorithm for CMCLP-TREE Demand Allocation . . . . . . . . . . . 191

4.4

Algorithm for CMCLP-TREE Demand Allocation when the Demand at the Current Facility Site Has Already Been Assigned to Another Site197

xiv

Chapter 1

Introduction

The research of this dissertation is motivated by the close relationship of transportation network and facility network design. Both of the areas are important for companies or organizations which seek to satisfy customers with reasonable costs. Optimization of one of the problem may have adverse impact on the other. Multi objective models are natural selections for such problems. Although literature exists for these problems, many realistic situations such as facility capacity and demand supply routing design have not been studied. Solving these problems can help decision makers to allocate funding or effort more efficiently. My research focuses on the combined optimization of shortest path and capacitated maximum covering problems.

1.1

Motivation

Current, ReVelle and Cohon (1985) first modeled this problem as the maximum covering - shortest path problem (MCSP). They introduce a bi - objective integer programming model which tries to balance the minimization of the path length from a predetermined starting node to a predetermined terminal node and the maximization

1

of the total demand covered by the facilities located at the nodes in the path within a service distance. They give the general formulation of the MCSP model, but they only solve a special case of the problem where demand can be satisfied only if the path passes through the demand. In another word, the service distance is zero. They name this special case as the maximum population - shortest path problem (MPSP). They solve the MPSP by combining the two objectives into one by assigning different weights to the two objectives. They use linear relaxation with branch and bound to solve the problem. I solve a general model allowing demand to be satisfied if it is within a specified service distance of facilities located in the path. I design multiple algorithms to solve the problem. They assume that the facilities have unlimited capacity. In reality facility capacity can prevent some demand within service distance of a facility from being satisfied. I extend the MCSP to situations where facilities are capacitated. I further introduce a new demand coverage structure which allows the demand to be supplied by sub-paths on a minimum spanning tree of the original network instead of Euclidean distance coverage. It will be explained in detail by some examples. I also compare the results for different algorithms, path-demand coverage structures and network parameters. They solve a 15-node network with 34 non-directed arcs. I solve problems up to 756 nodes and 2102 arcs. My algorithms have potential to solve large networks well. The new demand coverage structure is called tree coverage structure. Demand will be satisfied by a tree network structure of roads. Roads do not need to exist between any pair of facility site and demand location. Instead, sub-paths built by roads on a tree structure constructed from an underlying network can be used to 2

supply demand. A demand can be served if the path on this tree structure from this the demand location to a facility site has a distance less than the service distance. This model can be applied to many areas. Some examples are discussed as follows. Water supply pipeline construction design can be modeled as described above. There are big differences of the cost between different pipelines. It is cost effective to differentiate usages between major pipelines and sub-pipelines. It is reasonable to supply water from an initial location to a terminal location in the underlying water supply network by major pipelines. The whole network is connected by these major pipelines. The goal is to minimize the construction cost of major pipelines, which is equivalent to finding a shortest path based on major pipeline cost. Sub-pipelines can be built easily from the facilities located in the path. Demand within service distance by a sub-pipeline can be satisfied. Due to technology limitation, it is reasonable to assume that there are capacity limit for each connection spot of the major pipelines in the path. There are usually some facilities in these connection spots which make demand supply using sub-pipelines possible. I call this demand supply limitation the facility capacity. Capacities of the facilities located in the path have great impact on the solution of the problem. It is also reasonable to supply demand by using sub-paths consisting sub-pipelines. These sub-paths can be built on a predetermined minimum spanning tree of sub-pipelines. In another word, I will connect the whole network by the most efficient way so that all locations of the original network can be connected by sub-pipelines. I will use the sub-pipelines in this constructed tree network to supply demand. This will save cost of building excessive number of sub-pipelines between many pairs of facility and demand locations. This tree service structure has not been studied in the literature. 3

Similarly, this problem can be applied to gas transmission and power transmission design, bus and light rail network design. Another application of this model is the WiFi network design in a given area. The growing usage of wireless internet connection and technology improvement in computer, mobile phones and other accessories makes WiFi network design important. In WiFi network, access points or antennas are connected to the network through optical fiber buses. Minimization of the construction cost of this network is necessary. It is important to find a path or route that connects all access points in a most efficient way. The antennas can be considered as the facilities in the path which will serve the voice and data traffic of fixed or mobile devices within a distance limit. The amount of information transmitted by an antenna is typically limited (capacitated) at a fixed time frame. The second natural objective is to maximize the amount of demand covered by the antennas located in the connection locations of the WiFi network. The model can also help to design bi-level distribution systems such as newspaper delivery system. In a bi-level newspaper delivery system, delivery trucks from a printing factory drop off newspapers at sub-stations (the facilities) for delivery personnel to pick up and deliver to individual homes. The capacity of the facilities is based upon how much the delivery person can carry, and the service distance depends on delivery person’s delivery method or time limitation allowed for newspaper to reach individual homes. Minimization of truck delivery cost from printing factory to sub-stations and maximization of covered demand of individual homes are natural objectives. The coverage by sub-paths of the delivery personnel using tree structure is also useful to reduce unnecessary sub-paths between facilities and individual homes.

4

The new coverage structure is also motivated by “timber harvesting”. In timber harvesting, there are access points of the forest connected by major roads. It is expensive to build the major roads and economical road design will help to save cost. These access points are close to major landing locations of timber which will prepare the timber to be transported out of the forest area through the major roads to sawmills or paper mills. Clearly there are capacity limits due to topographic structure of the major landing area. The timber in the major access points is transported by small (sometimes dirt) roads from smaller landing locations (sub-landing locations or harvest area). Usually these sub-landing locations will be connected by networks of small roads similar to a “tree structure”. This is because of the high cost to build a road between two locations in the forest. Harvesting areas also change from time to time. A tree structure to connect all harvest areas at a certain time period is most efficient. Besides minimizing the construction cost of major roads, a second natural objective is to maximize the demand of transportation of harvested timber from sublanding locations to major landing areas through the small roads on a tree network structure. It is important to design the timber collection sub-paths from sub-landing areas to major landing areas for timber harvest. Similarly as timber harvest, it is necessary to design tours in national parks to minimize the major traveling distance to access major scenery spots and also maximize the gain in sub-tours in each major scenery spots. The previous examples are just a few among many applications of this model and algorithms to be introduced. I will review the relevant literature in the next section.

5

1.2

Literature Review

I will review related papers in the area of maximum covering problem (including un-capacitated maximum covering problem and capacitated maximum covering problem), general meta-heuristics with a concentration in the application of metaheuristics in facility location problems, shortest path problems (including k-shortest path problem), and combined optimization of facility location and transportation network design.

1.2.1

Literature in Maximum Covering Problems

I will first discuss about the un-capacitated maximum covering problem. (I) Un-capacitated maximum covering problems (MCLP): Church and ReVelle (1974) first model the maximum covering location problem (MCLP) in an integer programming (IP) formulation. They propose the greedy adding (GA) and greedy adding with substitution (GAS) heuristic methods. GA adds facilities one by one up to p facilities and selects the next facility which can cover the greatest additional demand coverage. GAS further add the facilities in the same way as GA, except after addition of each facilities, it explores the possibility to improve the demand coverage by substituting one facility in the selected facility site with one unselected free facility site. If improvement in demand coverage is possible, substitution is done for the pair of facilities that yields the greatest increase in demand coverage. At the same year of Church and ReVelle (1974), White and Case (1974) give a specific version of MCLP which maximizes the number of demand nodes covered. In

6

this model all nodes are weighted equally without regard to the population or size of demand. A lot of algorithms have been designed for MCLP problems since the introduction of the problem in the literature. There are basically four classes of solution methods for MCLP: 1. Greedy adding (GA) and substitution (GAS) 2. Mathematical relaxation method including LP-relaxation with branch and bound, lagrangian-relaxation, surrogate-relaxation 3. Dual-based methods 4. Meta-heuristics, including Tabu search (TS), simulated annealing (SA), genetic algorithm (GA), greedy randomized adaptive search procedure (GRASP), and heuristic concentration (HC). I will discuss these methods as follows. 1. Greedy adding (GA) and substitution (GAS): Besides the basic GA and GAS methods introduced by Church and ReVelle (1974), Hochbaum and Pathria (1998) design a greedy heuristic for MCLP and prove that the solution is within a factor of 1 − 1/e of the optimal solution. This gives a measure of how good the obtained solution is. They show that if an a-approximate best solution is selected at each stage, then the overall solution is within a factor of 1 − 1/ea of the optimal solution. Khuller, Moss and Naor (1999) solve a budgeted maximum coverage problem in which total weight of elements covered is maximized and the relevant total cost of the 7

total selected set does not exceed a certain limit. They propose an adjusted greedy algorithm with (1-1/e)-approximation performance. 2. Mathematical relaxation method including LP-relaxation with branch and bound, lagrangian-relaxation, and surrogate-relaxation: Galvao and ReVelle (1996) introduce a lagrangian relaxation heuristic for MCLP which minimize negative coverage. They develop an upper bound by greedy interchange heuristic and a lower bound by sub-gradient optimization. The lagrangian heuristic interacts between upper and lower bounds while these bounds are improved in each iteration of the algorithm. Galvao, Espejo and Boffey (2000) compare the heuristics based on lagrangian and surrogate relaxations of the MCLP. In both methods, they dualize the constraints. The lagrangian relaxation yields a problem with integrality property. The surrogate relaxation solves a resulting single constraint 0-1 knapsack problem using linear programming (LP) relaxation algorithm. Extensive computation shows that that the gaps obtained with both heuristics are very low and computing time does not differ very much. Lorena and Pereira (2002) design a lagrangian surrogate heuristic for MCLP borrowing idea from p-median problem. They modify the distance of a p-median problem to reflect the demand coverage requirement. 3. Dual-based methods: Downs and Camm (1996) solve the MCLP by a dual-based solution method and greedy heuristics in branch and bound. This hybrid algorithm is shown to work effectively for different datasets.

8

Pereira, Lorena and Senne (2007) reformulated maximal covering location problem to p-median problem and design new column generation approach to solve the problem. 4. Meta-heuristics, including Tabu search (TS), simulated annealing (SA), genetic algorithm (GA), greedy randomized adaptive search procedure (GRASP), and heuristic concentration (HC): Meta-heuristics, including Tabu search (TS), simulated annealing (SA), genetic algorithm (GA), GRASP, and heuristic concentration (HC) have been designed to solve the un-capacitated MCLP. I will discuss more details of meta-heuristics in the next section. Several genetic algorithms has been applied to set covering problem. Beasley and Chu (1996) apply genetic algorithm (GA) in set-covering problem and their paper is widely cited in the literature of genetic algorithm. Jaramillo, Bhadury and Batta (2002) design a genetic algorithm for MCLP which sets up the basis of genetic algorithm in MCLP for future research. Aytug and Saydam (2002) design a genetic algorithm which improves on the encoding of chromosomes for maximum expected MCLP. Park and Ryu (2004) introduce an improved genetic algorithm using unexpressed genes besides the general evolved population. Their algorithm works well for large scale MCLP restricted to the case of the same demand for each demand location. Mladenov´ıc, Moreno and Moreno-Vega (2003) design a chain interchange Tabu search method for p-facility location allocation problem. The difference of this algorithm with the general 1-interchange method is that this Chain-Interchange method interchanges four solution attributes rather than two. In general 1-interchange, one 9

attribute in the solution is interchanged with another attribute not in the solution. In the chain interchange method, there are two Tabu lists and two free lists for facilities available to interchange. They make the interchange in an order so that interchange is made and Tabu list is updated. I will design a Tabu search (TS) algorithm for the capacitated maximum covering problem. I use multiple local search neighborhoods structure rather than one neighborhood as is used in the literature and I design an embedded Tabu search algorithm with different inner search loops for different neighborhoods. To my best knowledge, none meta-heuristic method has been designed for capacitated version of maximum covering problem. Capacity limitation makes the problem much harder to be solved. Murray and Church (1996) introduce a simulated annealing (SA) algorithm for general p-facility solution without facility capacity limit. Resende (1998) designs a greedy randomized adaptive search procedure (GRASP) for the maximum covering problem. A lot of solutions are constructed in greedy nature with randomness feature in the first stage and a 2-exchange local search are used to improve the solution in the second stage. The best solution is used as the final solution. The GRASP meta-heuristic finds very good solutions. ReVelle, Scholssberg and Williams (2008) solve the large scale MCLP by heuristic concentration (HC). The version of heuristic concentration applied is the gammaheuristic introduced by Rosing, ReVelle and Schilling (1999) to solve the p-median problem. The result of this meta-heuristic is compared with that of branch and bound using LP relaxation. The heuristic finds near optimal solutions for the data sets used. Computation comparison among different meta-heuristics for MCLP is a potential research area. 10

While many algorithms have been designed for un-capacitated version of maximum covering problem, not many algorithms have been applied to the capacitated version of the problem. (II) Capacitated maximum covering problems (MCLP): Capacitated maximum covering problem (CMCLP) is NP-hard (Megiddo, Zemel and Hakimi 1983), and it can be reformulated as capacitated p-median problem (CPMP) or as a generalized assignment problem (GAP) (Current and Storbeck, 1988). Methods to solve CMCLP include general heuristic and substitution, greedyadding heuristic and lagrangian relaxation. Chung, Schilling and Carbone (1983) extend the max covering problem to include the constraints for facility capacity. They add facilities one by one from the remaining free facility sites and satisfy the capacity for each added single facilities. After p sites have been selected, they adjust the facilities by improving the desired total facility utilization rate (u*). The total facility utilization rate is calculated using total assigned demand divided by the total capacity of selected facility sites. They explore the possibility to improve coverage or utilization rate by exchanging an selected facility of lowest utilization rate with a random selected free facility. If improvement can be achieved, the interchange is made, otherwise pick the selected facility with the next lowest utilization rate and check if any interchange can improve the coverage. The algorithm is terminated if all of the facilities with a lower utilization rate than the desired utilization rate (u*) level have been explored for possibility of interchange with improvement.

11

Current and Storbeck (1988) formulated the capacitated set covering location problem and the capacitated maximal covering location problem. They also study the theoretical links between the capacitated covering problems and capacitated plant location problem, the capacitated p-median problem, and the generalized assignment problem. Pirkul and Schilling (1988, 1989) study the problem of siting emergency service facilities with workload capacities and backup service. Backup service is used if the closest facility for primary service is busy. They formulate the problem as a medianlike model. They use a lagrangian relaxation method with sub-gradient optimization. Pirkul and Schilling (1991) provide a median-like formulation for the capacitated MCLP and an extended formulation which assigns the demand (covered or uncovered) to the closest facility. They give a lagrangian relaxation and break the problem into p sub-problems which are single constrained knapsack problems. This gives me some insight in designing a lagrangian relaxation algorithm. But my problem setting of capacitated maximum covering problem is different from their median-like model. They require all demand to be satisfied, but the demand in my model is not required to be satisfied. Instead, we maximize the total coverage. The demand allocation in their model can be fractional, but we solve a problem with non-fractional demand allocation. My model has different structure from their model. This makes my lagrangian relaxation method different from theirs in the problem being solved and lower bound generated method. We further use this to solve a path - capacitated maximum covering problem. I also introduce several other meta-heuristic algorithms to solve the capacitated maximum covering problem. The main purpose of designing a lagrangian relaxation method is for comparison with other algorithms. 12

Haghani (1996) gives two formulations for capacitated maximum covering location problem. The demand can be partially covered by different facilities. They solve the problem with two heuristic methods. The first one is based on greedy adding technique. When a facility is added, demand allocation is re-optimized. The second one is based on lagrangian relaxation. My model and lagrangian relaxation method are different from Haghani (1996). Their demand allocation can be fractional, which makes the problem easier to be solved than the case of non-fractional demand allocation. They relax the capacity constraint, while I relax multiple coverage constraint. Although lagrangian relaxation is a widely used solution procedure for facility location problem, my lagrangian relaxation method is new for capacitated maximum covering problem with non-fractional demand allocation. And I introduce some other new algorithms for this problem. I solve a path - capacitated maximum covering problem using the above algorithm as sub-algorithms. In addition, I solve the capacitated maximum covering sub-problem with a new tree-coverage structure.

1.2.2

Literature in Meta-Heuristics in Facility Location Problems

Since many facility location problems are very difficult to solve optimally and meta-heuristics have been successfully applied to some combinatorial optimization problems, I am interested in reviewing the application of meta-heuristic in facility location problems. My emphasis is on Tabu search (TS), simulated annealing (SA) and genetic algorithm (GA). I will also briefly discuss about variation neighborhood search (VN), heuristic concentration (HC), gamma heuristic (GH) and scatter search (SS).

13

I will briefly introduce the general meta-heuristic methods before discussing the application of meta-heuristics in facility location problem. I. General meta-heuristics: 1. Tabu search (TS): Tabu search (TS) is a meta-heuristic to solve global optimization problems, especially combinatorial problems. Tabu search improves on local search by providing a way to break out of local optima and explore other regions of the solution space. Tabu search uses flexible memory to control the search process. It uses a tabu list in short term memory which prohibits certain moves and use aspiration criteria which allows very good solutions to overcome tabu status for items in tabu list. Intermediate and long-term memory helps to carry out the intensification and diversification. Intensification introduces the solution features which yield good solutions during previous iterations. Diversification tries to bring the local search to the un-searched region of the solution space. Tabu search is introduced by Glover (1986) and independently by Hansen (1986). It has been applied to a lot of combinatorial optimization problems and it has also been applied to some facility location problems such as p-median, p-center problem, set covering problem, un-capacitated facility location problem, and some other problems in business and industry. 2. Simulated annealing (SA): Simulated annealing (SA) algorithm simulates the optimization problem as a physical annealing process. The value of the objective function is compared with the state of the body and its internal energy. It can escape from a local optimal solution. It searches new solutions by randomly selecting a solution in the neighborhood of the 14

current solution. If the new solution yields better objective value, the move is accepted and the algorithm moves to the new solution. Otherwise, the new solution is accepted with a probability. A temperature variable is used to adjust the acceptance probability. As the temperature decreases, the acceptance probability decreases. This is similar to the physical annealing process in which the state gets more stabilized as temperature decreases. Simulated annealing can be combined with the parallel computation technique and other heuristic methods. Simulated annealing algorithm has been applied to some facility location problems including p-median problem, un-capacitated facility location problem, set covering problem, etc. 3. Genetic algorithm (GA): Genetic algorithms mimic the natural evolution process. It keeps a population of solutions for each generation. New generation of solutions are created similar to interaction of genes. Crossover and mutations occur from generation to generation. The overall direction of the solution population is towards a direction of improving the solution quality. Genetic algorithms have been successfully used in the p-median problem, set-covering problem, un-capacitated location problem and some other relevant applications since 1990’s. There is a lot of variation in genetic algorithm in encoding, crossover, mutation,etc. Well designed genetic algorithms often outperforms other heuristics, however, for certain facility location problems (such as capacitated fixed charge models), it performs very poorly. 4. Ant colony optimization (AC): Ant colony optimization is introduced by Dorigo (1991). Ant colony optimization simulates the behavior of ants who determine the shortest path from ant hill to

15

location of food. Ants move on a certain route leaving a trace of pheromone, which affects the probability of choosing the route for later trips. 5. Greedy randomized adaptive search procedure (GRASP): GRASP is introduced by Feo and Resende (1995). This heuristic has many independent stages, and in each stage a greedily generated solutions is generated and then improved by some local search heuristic. The best solution is kept among different stages. This meta-heuristic has been applied to many combinatorial optimization problems. It has also been used in p-median problems and maximum covering problems. 6. Other meta-heuristics: Variation neighborhood search (VNS), heuristic concentration (HC), gamma Heuristic (GH), scatter search (SS), parallel meta-heuristics are also effective tools to improve the quality and the time of the location problems especially for the p-median problem. Variation neighborhood search sometimes outperform, usually as good as tabu search and simulated annealing especially for large problems. Some parallelization and cooperation algorithms perform even better. 7. General comparison of meta-heuristics in facility location problems: Each meta-heuristic has its merits and restrictions. Tabu search (TS) uses short, medium or long term memories for different iterations, which is not in simulated annealing (SA). TS searches the neighborhood in a more systematic way than SA, the later is more random. TS searches the neighborhood in multiple threshold while SA use the single threshold of temperature. In a Sense, TS uses multi-direction and SA uses single direction search. Genetic algorithm (GA) has a population in each stage, so it might use more computer memory than others. There are a lot of ways to 16

keep the algorithm random and there are a lot of choices for different parameters and operators in GA. Experimental design needs to be carried out to get good parameters and operators. There is no memory in GA as in TS. GA and SA are stochastic, but TS is more deterministic. There are also a lot of variations for TS. It usually gives good results. GRASP and HC is more structured and easy to implement. Sub-local-search algorithms can be embedded in the search stage of them. GRASP has a large number of random starts based on greedy random generated solutions, and this makes the local search to search different areas of the solution set. It typically gives good results. HC generates a lot of solutions based on some local search methods, and use these solutions to construct concentration set from which a good solution is constructed. Arostegui, Kadipasaoglu and Khumawala (2006) make an empirical comparison on Tabu search (TS), simulated annealing (SA) and genetic algorithms (GA) for facility location problems. They conclude that TS shows good performance in most situations. The performance of SA and GA depends on the problem type and criterion used. They suggest exploring TS first in facility location problems. II. Application of meta-heuristics in facility location problems: 1. Meta-heuristics for p-median problems: The p-median problem belongs to the NP-hard problems. P-median problem is one of the few problems for which many different meta-heuristics have been designed. Heuristics for solving p-median problem may be divided into two groups: Classical heuristics and Meta-heuristics. For more detailed classification please refer to Mladenov´ıc, Brimberg, Hansen and Moreno-P´erez (2007). A lot of meta-heuristics are designed for p-median problem. 17

(a) Un-capacitated p-median problem (PMP): For un-capacitated p-median problem, the meta-heuristics designed include: tabu search, simulated annealing, genetic algorithm, ant colony system, heuristic concentration (gamma heuristic), parallel and scatter search, variable neighborhood search and hybrid heuristics. For capacitated p-median problem, meta-heuristics designed include simulated annealing & tabu search, bionomic heuristic and genetic algorithms. Rolland, Schilling and Current (1996) introduce Tabu search for the p-median problem. They include short term and long term memory, strategic oscillation and tabu list with random list size. Their tabu search gives better solutions than the interchange heuristic which yields good solutions among other heuristics. Mlandenov´ıc, Moreno and Moreno-vega (2003)’s tabu search for p-facility location problems can also be used to solve the p-median problem. Osman and Christofides (1994) design a hybrid simulated annealing and Tabu search heuristic for the capacitated clustering problem. They use a new non-monotonic cooling schedule for the simulated annealing to improve computation performance. They use λ-interchange for local search. A basic simulated annealing heuristic for p-median problem has been proposed in Murray and Church (1996). They use the elements of the vertex substitution method of Teitz and Bart (1968) in simulated annealing for p-median problem. Chiyoshi and Galvao (2000) use a cooling schedule that incorporates the notion of temperature adjustment instead of just temperature reduction. Levanova and Loresh (2004) propose algorithms of ant system and simulated annealing for the p-median Problem.

18

Several genetic algorithms have been proposed for p-median problem. Hosage and Goodchild (1986) first apply genetic algorithm to the p-median problem. They encode the solutions as n binary digits (genes). This does not guarantee the selection of exactly p facilities in each solution. Penalty is used to impose the constraint of p facilities. The performance of this genetic algorithm is not very good. Dibbe and Densham (1993) provide a better encoding, with p genes representing the p facilities. Moreno-Perez, Roda Garcia and Moreno-Vega (1994) design a parallelized genetic algorithm for the p-median problem. Each gene represents a facility index as. Beside conventional GA operators, they use multiple population groups (colonies), which exchange candidate solutions with each other (via migrations). They claim that their method helps to avoid premature convergence to a local optimal solution. Without comparing with other meta-heuristics, it is difficult to say how cost-effective the algorithm is. Estivill-Castro and Velazquez (1999) propose a hybrid genetic algorithm which uses characteristics of a hill-climber and also use a mechanism which invokes previous steps. Bozkaya, Zhang and Erkut (2002) describe a complex genetic algorithm and report the results of extensive computational experiments. Their algorithm provides good solutions but the computation takes a long time. Alp and Erkut (2003) designs an efficient genetic algorithm for the p-median problem. This algorithm is simple and produces good solutions very quickly. In the crossover step, they combine all the genes in both parents and drop genes in a greedy manner. This might be the reason of the efficiency of their algorithm. Lim and Xu (2003) apply fixed-length subset genetic algorithm for p-median problem. Chaudhry and Chaudhry (2003) apply genetic algorithm to the p-median problem with distance constraint, which

19

is called constrained p-median problem (Moon and Chaudhry, 1984). Their computation results show that genetic algorithm provides good solutions for p-median problem. Fathali (2006) designs a genetic algorithm for the p-median problem with positive/ and negative weights. This is a semi-obnoxious case in which the sum of the minimum weighted distances and the sum of the weighted minimum distances are minimized. Rosing and ReVelle (1997) give a heuristic concentration method to p-median problem. Some solutions are obtained in stage one to form the concentration set. Then in stage two, the set of potential facilities will be selected from this concentration set. Rosing, ReVelle, Rolland, Schilling and Current (1998) compare the heuristic concentration and Tabu search for the p-median problem. They found superior solutions by heuristic concentration in 95% of the cases studied. Rosing and Hodgson (2002) also propose heuristic concentration method to p-median problem. In the first stage, they repeatedly use some random start interchange heuristic to produce a number of solutions. Rosing, ReVelle and Schilling (1999) propose a gamma heuristic for the p-median problem which is an extension of the heuristic concentration. This paper uses two sequentially active heuristics in the second stage of the heuristic concentration. Garcia-Lopez, Melian-Batista, Moreno-Perez and Moreno-Vega (2003) design an algorithm with a parallelization of the scatter search for the p-median problem. They develop several strategies for the parallelization of the meta-heuristic called scatter search.

20

Dom´ınguez, Meri˜ no and Mu˜ noz Perez (2002) design a neural network algorithm for p-median problem. Dom´ınguez and Muoz (2008) provide a new formulation for p-median problem and solve the problem by neural network algorithm. Hansen and Mladenov´ıc (1997) give a variable neighborhood search heuristic for the p-median problem. Garcia-Lopez and Melian-Batista (2002) introduce the parallel variable neighborhood search(VNS) for the p-median problem. Crainic, Gendrequ, Hansen and Mladenovc (2004) introduce a cooperative parallel variable neighborhood search for the p-median problem using central-memory mechanism. Resende and Werneck (2004) design a multi-start hybrid heuristic which uses the elements of several meta-heuristics (GRASP, Tabu search, scatter search) to find near-optimal solutions. Resende and Werneck (2007) give a fast swap-based local search algorithm which improves on computation time from the general swap method for the p-median problem. (b) Capacitated p-median problem (CPMP): Mulvey and Beck (1984) provide two heuristics to solve CPMP problem. The first one randomly generates p facility sites and assigns the demand in decreasing regret values to get initial solution, and use the assignment/reassignment method to improve the solution. The second method uses the lagrangian relaxation algorithm. Osman and Ahmadi (2007) give a guided construction search meta-heuristic for the capacitated p-median problem with single source constraint. An interchange neighborhood based on interchange restricted to adjacent clusters is used.

21

Maniezzo (1998) gives a bionomic approach to capacitated p-median problem. Bionomic approach update a whole set of solutions at each main cycle. This is different from genetic algorithms. Correa, Steiner, Freitas and Carnieri (2004) design a genetic algorithm for the capacitated p-median problem. Capacities are allocated by a priority list to get the initial solution and they use an exchange improvement procedure to improve the solution. Besides the properties of general genetic algorithms, they introduce “hyper-mutation” operator in genetic algorithm. With some probability, the heuristic select a percentage of the individuals in the population. Improved solution is obtained using exchange method to these selected individuals. This Genetic algorithm is compared with a Tabu search algorithm. Hansen and Mladenov´ıc (2008) provide complementary results for a comparison analysis of meta-heuristics for the p-median problem. 2. Meta-heuristics for maximum covering problems: Tabu search, genetic algorithm, simulated annealing, greedy randomized adaptive search procedure (GRASP), and heuristic concentration (gamma heuristic) have been applied to the un-capacitated maximum covering problem. To the best of my knowledge, no meta-heuristic algorithm has been designed for the capacitated maximum covering problem. Mladenov´ıc, Moreno and Moreno-Vega (2003) design a general Tabu Search algorithm for p-facility location problems. They design a chain interchange Tabu search method in solving p-facility location-allocation problems. The algorithm can be applied to a large number of location problem which uses neighborhood structure obtained by 1-interchange move. Although the example is not MCLP, it can be applied to MCLP problem. 22

Murray and Church (1996) introduces simulated annealing algorithm for general p-facility location problems without capacity. Jaramillo, Bhadury and Batta (2002) design a genetic algorithm for MCLP. They use binary string of length equal to the number of potential facility sites. A value of 1 (0) means a facility will (not) be located at the location under consideration. Crossover and mutation may make the number of facility not equal to the number of facilities to locate (p). The encoding is a little cumbersome. Aytug and Saydam (2002) design a genetic algorithm for the maximum expected MCLP. They show that at least one of the two purposed genetic algorithms yields optimal or nearoptimal solution in a reasonable amount of time. Besides the binary encoding similar to Jaramillo, Bhadury and Batta (2002), Aytug and Saydam also provide integer value encoding using a p digit string. This is an improvement from the previous paper. Park and Ryu (2004) design a genetic algorithm for large scale max covering problem (MCP). The problem is to selecting q columns from a given binary m*n matrix to maximize the number of rows each of which is covered by at least one 1. This corresponds to the case of MCLP with uniform weight of each demand point. This is a simplified version of the MCLP. They introduce a genetic algorithm using unexpressed genes to solve large-scaled maximal covering problems efficiently Resende (1998) designs a greedy randomized adaptive search procedure (GRASP) for MCLP. At each construction iteration, the algorithm adds the p facilities one by one. The choice of the next facility to be added is determined by randomly selecting an element in a restricted candidate list (RCL), which is ordered with respect to a greedy function. Computation test shows that GRASP can produce near optimal solution for large scale MCLP 23

3. Meta-heuristics for facility location problems: Uncapacitated facility location problem (UFLP) minimizes the total cost of facility and demand assignment cost. Al-Sultan and Al-Fawzan (1999) design the first Tabu search for the un-capacitated facility location problem (UFLP). They use a random mechanism to get the neighborhood and use the standard Tabu search procedure. Ohlemuller (1997) apply tabu search for large location-allocation problems. Aydin, Yigit and Fogarty (2002) design a simulated annealing heuristics for UFLP. Sun (2006) designs a tabu search heuristic for the un-capacitated facility location problem. The paper incorporates short, medium and long term memory in their procedure. Their heuristic dominates most other existing heuristics both in solution quality and computation time. Yigit, Aydin and Turkbey (2006) design an evolutionary simulated annealing heuristic for the large scale un-capacitated facility location problem. Their algorithm combines the power of simulated annealing in local search and the power of evolutionary approach in global search. They embed a shortened simulate annealing algorithm in the genetic algorithm, while genetic algorithm does not use other reproduction operators. Resende and Werneck (2006) design a hybrid multi-start heuristic for the uncapacitated facility location problem. Computation experiment shows the effectiveness of the algorithm. When facilities have capacity limits, we have capacitated facility location problem (CFLP). When the demand cannot be supplied by more than one facility, the problem is called a single source capacitated facility location problem (SSCPLP).

24

Meta-heuristic solving single source capacitated facility location problem include: hybrid heuristic using lagrangian relaxation and ant colony system, reactive GRASP&Tabu search, and scatter search. Chen and Ting (2008) design a hybrid meta-heuristic combining lagrangian heuristic and colony system (LH-ACS) for the single source capacitated facility location problem. Lagrangian heuristic is used to select the facility locations, while the ant colony system is used to allocate customers to selected facility locations. Delmaire, D´ıaz and Fern´andez (1999) solve the single source capacitated plant location problem using reactive GRASP and Tabu search based heuristics. They use 5 kinds of neighborhood structure for the local search. Once the facility sites have been fixed, they solve the demand allocation problem with a relaxed problem by using surrogate relaxation for the capacity constraints and use penalty function for capacity violation. This is a very good way to tackle the capacitated problem. Their algorithm incorporate a lot of variations of the basic GRASP and Tabu search and give superior solutions than previous heuristics. I get some insight to design multiple neighborhoods for in the searching algorithm for capacitated maximum covering problem. I also design a Tabu search method using penalty term for violated capacities. In addition, I design a Tabu search using heuristic method. My Tabu search incorporates an embedded structure with different levels of inner search loops. This is an improvement from their paper. Contreras and Diaz (2008) design a scatter search algorithm for the single source capacitated facility. They use GRASP to get an initial reference set. Then the solutions of the reference set are combined using an initialization phase and an improvement phase. 25

4. Meta-heuristics for the p-center problems: Mladenov´ıc, Labbe, Hansen (2003) apply Tabu search to P-center problem. Keskin and Uster (2007) design a scatter search heuristic for two stage capacitated transshipment (fixed charge) problem. Lari, Ricca and Scozzari (2008) design a Tabu search for the median path problem with bounded path length. 5. New elements in my meta-heuristic method for capacitated maximum covering problems: Although some meta-heuristics have been designed for un-capacitated version of the MCLP, no meta-heuristic has been proposed for capacitated version of MCLP. Facility capacity makes the problem much more difficult to be solved. In this dissertation, we will propose some meta-heuristic methods to capacitated maximum covering problem. We also introduce new features of meta-heuristics. This problem will be used as a sub-problem in the path-maximum covering problem to be studied.

1.2.3

Literature in Shortest Path Problems

A lot of algorithms have been designed for shortest path problem and k-shortest path problem respectively. Deo and Pang (1984) give a thorough classification for shortest-path algorithms based on different criteria. One of the most widely used method for shortest path algorithm is Dijkstra’s algorithm. I will use this algorithm to generate the shortest path in our shortest path-capacitated maximum covering problem (SP-CMCLP). Besides the shortest path, my overall SP-CMCLP problem is solved by a decomposition method. Many paths in non-decreasing order of length will be generated, and for each path, a capacitated maximum covering problem is solved based on the potential facility sites selected from the locations in the path. 26

The k - shortest paths problem has been studied by Clarke, Yen, Lawler, Shier, Katoh, etc. Eppstein (1998) gives a sequential algorithm which computes an implicit representation of the k-shortest paths for a given source node and destination node in O(m + nlogn + K) time. Hadjiconstantinou and Christofides (1999) give an efficient algorithm for k- shortest paths (KSP) based on Katoh (1982). This is applicable for undirected graph with non-negative arc lengths. I use the method in Azevedo, Santos Costa, Silvestre Madeira and Vieira Martins (1993) and Azevedo, Silvestre Madeira, Vieira Martins and Pires (1994) to solve a k-shortest path problem. They first generate a shortest path by Dijkstra’s algorithm. Then they eliminate this path by eliminating the first or last arc in the path and create an extended network by adding some artificial nodes representing the repetition of some arcs in the original network. By this method, all the other paths besides the current eliminated paths can be generated later. This algorithm is very efficient to generate multiple paths.

1.2.4

Literature in Facility Location and Transportation Network Design

I. Covering and median path problems: Current, ReVelle and Cohon (1984) introduce the shortest covering path problem (SCPP). The problem is to “identify the minimal cost path on a network from a prespecified starting node to a pre-specified terminus node. The path must cover all the nodes on the network. A node is considered covered if it is within some pre-specified maximal covering distance of a node on the path”. The model is a combination of set covering and shortest path problems. They provide solution methods for small networks. 27

Current, Pirkul and Rolland (1994) further give heuristic and exact solution methods to use SCPP to solve large scale problems. The heuristic is based on Lagrangian relaxation, while the exact method is based on branch and bound method which uses the bounds generated by Lagrangian relaxation. Boffey and Narula (1998) further extends SCPP to multi-path covering-routing problems in which multiple paths can be located instead of a single path. The previous papers are combination of set covering and shortest path problem. Current, ReVelle and Cohon (1985) extends it to maximum covering/shortest path problem (MC-SPP), which maximizes the total coverage and minimize the costs of the path. They use bi-objective model and weighted method (Zadeh 1963) to generate non-inferior solutions. When optimizing the weighted objective, they use LPrelaxation and branch-bound method. A restricted version of the problem is given to the case in which demand can be covered if the location is on the path. I solve a general version of this problem in which demand can be covered within a service distance of a facility site. I further consider facility capacity limit and use a decomposition method to solve the new version of the problem. Current, ReVelle and Cohon (1988) study the minimum covering/shortest path problem (MinCSP) which minimizes the population negatively impacted by the path and minimizes the total path length. Different coverage conditions are discussed and corresponding problem formulations are given. Wu and Marray (2005) extend Current, ReVelle and Cohon (1985) to the case of multiple routes, multiple origin and destinations. Current, ReVelle and Cohon (1985) formulate the Median Shortest Path Problem (MSPP) which combines the median problem and shortest path problem. They 28

minimize the total length of the path and also minimize the total travel time for demand to reach a node on the path. This problem is important if both operator cost and user cost are important. Tradeoffs for these two objectives are discussed. Nepal and Park (2005) propose a vector labeling algorithm for the MSPP problem. Lari, Ricca and Scozzari (2008) study the bounded length median path problem (BLMPP) which minimizes the sum of the accessibility cost from the demand points to the closest facility points by locating a path with constrained length. They propose two local search meta-heurisics: Tabu search and Old bachelor acceptance method. Comparison of the two meta-heuristics is given. II. Covering salesman problems: Current and Schilling (1989) introduce the covering salesman problem (CSP) and give the mathematical formulation. CSP seeks to identify the minimum cost tour of a subset of given cities such that every city not on the tour is covered by a city on the tour within some predetermined distance. This is a combination of the TSP and set covering problem. Binary integer programming formulation and a heuristic is proposed for this NP-hard problem. Current and Schilling (1994) extends the previous paper to median tour problem (MTP) and maximal covering tour problem (MCTP). The paper tries to find a tour of minimal length which needs to visit p of the n nodes on a network. MTP also minimizes the total travel distance for the demand at the nodes to reach their nearest node on the tour. And MCTP maximize the total demand within some pre-specified distance. Heuristics are given for the two NP hard problems. Gendrequ, Laporte and Semet (1997) extend the covering problem to a bi-objective covering tour problem (CTP). Tour nodes need to be selected from a set of nodes V 29

(requiring the selection of a subset of the nodes T), while all nodes in another set (W) of nodes need to be covered within a pre-specified distance by a node on the tour. A new formulation is given. Both exact and heuristic methods are given. Hodgson, Laporte and Semet extends the covering tour problem to mobile health care facilities planning in Suhum district Ghana. Jozefowiez, Semet and Talbi (2007) construct an algorithm which combines genetic algorithm and branch-and-cut algorithm for the two objective CTP. III. Maximal covering tree problems: Hutson and ReVelle (1989) introduce the minimum cost covering tree problem (MCCS) on a spanning tree network in which a tree is located on the network to cover all nodes. This is an extension of the set covering problem. They also introduce the maximal indirect covering tree problem (MICS). This problem tries to find a sub-tree of a tree which maximizes the total demand at the nodes covered by the sub-tree while minimizing the total cost of the sub-tree. This is an extension of maximal covering problem. Kim, Lowe, Ward and Francis (1990) study the minimum cost partial covering sub-tree of a tree, in which uncovered demand is given a penalty cost. Church and Current (1993) study the maximal covering tree problem given a tree network. They present a new bi-criterion formulation of the maximal direct covering tree problem and give a O(n2 ) algorithm. The case with budget constraints for the tree cost is also considered. George, ReVelle and Current (2002) further study the maximum utilization subtree problem (MUSP) which minimizes the cost for building a sub-tree from the tree network, and maximize the utilization at the same time. If a node is on the sub-tree, 30

all demand on this node is added to the objective function. If a node is not on the sub-tree, demand attenuated by a function of the distance from the node to a node on a tree is added to the objective function. Williams (2003) relaxes the assumption of single parent spanning tree of the previous models to multiple candidate parent spanning trees. IV. Hierarchical network design: Current, ReVelle and Cohon (1986) introduce the hierarchical network design problem (HNDP) which is a combination of shortest path and minimum spanning tree problem. The problem identifies a primary path from a predetermined starting node to a terminus node. Every node not on the path must be connected to some node on the path. Integer programming formulation and a heuristic solution method by integrating the algorithms for the K-shortest path problem and minimum spanning tree problem are given. Pirkul, Current and Nagarajan (1991) reformulate the problem of hierarchical network design in Current, ReVelle and Cohon (1986) and design a better heuristic method. Their new heuristic is based on lagrangian relaxation with branch and bound method. The problem is decomposed into shortest path and minimum spanning tree problems. Current (1988) extends Current, ReVelle and Cohon (1986) to include the fixed charge for the transshipment facilities located at the intersections of the primary and secondary paths. Current and Pirkul (1991) reformulate Current (1988) and designs a lagrangian relaxation methods. The heuristics uses the solution methods for the shortest path and minimum spanning tree problems. Balakrishnan and Arnold (1993) extend the hierarchical networks to minimize the sum of its weighted length of primary link and secondary link where the weight of 31

the secondary link from a point depends on the location of that point. Ignacio, Fillho and Galvao (2008) develop a tabu search meta-heuristic for a two level hierarchical location problem in computer networks for concentrators and routers. Sancho (1995) gives a suboptimal solution to HNDP using dynamic programming. Duin and Volgenant (1996) propose some potential extensions of HNDP. Sancho (1997) further extends to the problem and solution methods to the HNDP with multiple primary paths. Cruz, Smith and Mateus (1999) give algorithms based on branch and bound with lagrangian relaxation to multi-level network optimization problem. Obreque and Marianov (2007) design an optimal solution method for HNDP. Obreque, Marianov and Rios (2008) give a two-stage procedure for finding an optimal solution that solves a version of the HNDP in which both extremes are unknown a priori. The extreme nodes must belong to sets of origin node candidates and destination node candidates. Sahin and Sural (2007) give a review of hierarchical facility location models.

1.3

Contributions

Major contributions of my dissertation are as follows.

1.3.1

New Solution Methods for the Capacitated Maximum Covering Problem (CMCLP)

I. New heuristic methods: I design several heuristics (based on 3 initial solution generation methods) for the capacitated maximum covering problem in which non-fractional demand allocation is required. These heuristic methods include lagrangian relaxation (LR), two versions of 32

Tabu Search (TS) and a Simulated Annealing (SA) method. To my best knowledge there is no existing literature of meta-heuristics in capacitated maximum covering problem, although there is some research of meta-heuristics in un-capacitated maximum covering problem. Facility capacity limit makes the demand allocation much more difficult to solve. Although there are lagrangian relaxation methods in the literature, this relaxation is different. I compare the newly designed heuristics in computation quality and time. II. New methods for demand allocation sub-problem: In the capacitated maximum covering problem, demand allocation is needed when facilities are located or demand allocation of some facilities has been changed in neighborhood moves. Efficient and effective demand allocation is important for the performances of the heuristics. I design a heuristic method and a penalty method for the demand allocation sub-problem. In penalty method, a penalty term is added to the objective function for the violated capacities. These two methods are compared with each other. I use both of these methods in Tabu search, the resulting methods are named as Tabu search with heuristic demand allocation (TSH) and Tabu search with penalty method in demand allocation (TSP). Only heuristic demand allocation is used in the simulated annealing method. III. New meta-heuristic features: I propose an embedded Tabu search (simulated annealing) algorithm with alternating inner search loops for three different neighborhood structures, and outer search loops. The alternation of different neighborhood structure increases the possibility of getting good demand coverage. I also use many variations of different elements in Tabu search and simulated annealing. 33

1.3.2

Decomposition Method for the Shortest Path - Capacitated Maximum Covering Problem (SP-CMCLP)

I contribute to the literature by solving the general shortest path - capacitated maximum covering problem (SP-CMCLP) using a decomposition method which combines the techniques for routing and max covering problems. I generate paths with non-decreasing order of path length, and for each path, I solve a capacitated maximum covering problem. The locations on a path will be the potential facility location sites for the capacitated maximum covering problem. I also generate the non-inferior solution set for the path objective and covering objective value. Decision makers can select from the non-inferior solutions according to different needs. Different decomposition methods are also discussed. In computation, I consider four path-coverage structures. The four path-coverage structures include PA (paths are generated out of a partial network and arc coverage is used), CE (paths are generated out of a complete network and Euclidean distance coverage is used), PE (paths are generated out of a partial network and Euclidean distance coverage is used) and PTREE (paths are generated out of a partial network and coverage by sub-paths on a tree network structure is used). One or more pathcoverage structures work the best for different networks. Besides different pathcoverage structures, I also compare the four new algorithms for CMCLP, SP-CMCLP and SP-CMCLP-TREE problems. Impacts of different network parameters are also studied. Data-sets used in the literature are used to test the effectiveness of the four new algorithms (LR, TSH, TSP and SA), four path-coverage structures and different

34

network parameters for CMCLP, SP-CMCLP and SP-CMCLP-TREE problems. The number of nodes of the test networks range from 15 to 756.

1.3.3

Shortest Path - Capacitated Maximum Covering Problem with Tree Coverage Structure (SP-CMCLP-TREE)

The idea of coverage by sub-paths on a tree structure is new in the area of facility location problems. To the knowledge of the author, there is no existing literature on the capacitated maximum covering problem with tree coverage structure. And the consideration of facility capacity makes this problem more close to real world problem, and at the same time the task is more challenging to solve this problem. A demand cannot be covered unless the demand is within a pre-specified coverage distance from a facility through a path on a tree. The distance from a demand to a facility site is calculated by the total length of tree arcs on the path from the demand to the facility. A demand is covered only if all other demand nodes on this path are covered during the connection of minor pipeline. In another word, if any demand on this path is not covered, this current demand cannot be covered due to technical limitations. A greedy algorithm is designed for the capacitated maximum covering problem with tree coverage structure. Tree search, demand cut, demand addition and demand swap are used to allocate capacities of facilities. The algorithm is tested by some networks in the literature. The maximum network solved has 756 nodes and 2102 arcs.

35

1.4

Content of This Dissertation

Chapter 2 introduces 4 algorithms to solve the capacitated maximum covering problem. Chapter 3 introduces the shortest path - capacitated maximum covering problem and solves the problem by a decomposition method. Computation results using networks in the literature are given. Results of different algorithms, different path-coverage structures and network parameters are compared with each other. Chapter 4 introduces the capacitated maximum covering problem with tree coverage structure. A greedy algorithm is designed. Computation comparison is provided. Chapter 5 discusses about conclusions and future research.

36

Chapter 2

Capacitated Maximum Covering Problem (CMCLP) with Different Heuristics

In this section, several new heuristics to solve the capacitated maximum covering problem (CMCLP) are designed. Some algorithms have already been designed by researchers for capacitated maximum covering problem. However, to the best of my knowledge, no meta-heuristic algorithms have been designed for the capacitated version of the problem. I introduce a lagrangian relaxation algorithm for this problem which is different from those in the literature. I will use these algorithms including lagrangian relaxation, two versions of Tabu search and a simulated annealing method as sub-algorithms to solve the problem in Chapter 3. The Tabu search and simulated annealing effectively use different neighborhood structures. This will contribute to the decomposition algorithm for the problem in chapter 3. Assume there is a network with n nodes. Demand exists at all nodes except node 1 and node n. A main path will be built from node 1 to n in the next Chapter. Typically, the headquarters of services will be located at the initial and terminal locations. I assume they will serve the local demand and also supply demand to other locations through a path in the network. Demand exists at each node from node 2 to node n-1. The algorithms to be introduced can work for any version of 37

capacitate maximum covering problem with non-fractional demand coverage. I will select a set of locations from node 2 to n-1 as potential facility sites. In Chapter 3, potential facility sites will be the locations on the path with node 1 as the initial node and node n as the terminal node (potential facility sites does not include node 1 and n for the same reason as above).

2.1

Model

2.1.1

Variables and Parameters

I. Variables:

yjk = the fraction of demand at location k served by facility location j,or ½ 1 if demand at location k is covered by facility location j yjk = 0 otherwise. No partial coverage is allowed ½ 1 if a capacitated facility is located in facility location j zj = 0 otherwise

Although I will focus on the non-fractional demand allocation case, my model can include the capacitated maximum covering problem with fractional demand allocation case when yjk is fractional. II. Parameters: 1. n is the number of nodes in the network. 2. dij is the distance from node i to j. dij = ∞ if there is no arc between node i and j. 3. hk is the demand at node k. 38

4. cj is the capacity of a facility at location j. 5. S is the service distance. The demand beyond this distance cannot be covered. 6. ajk = 1 if demand at location k is within distance S of facility at location j. ajk = 0 otherwise. 7. P is the set of potential facility sites selected from node 2 to n-1. 8. p is the number of facilities affordable.

2.1.2

Model

CMCLP:

M aximize

n−1 XX

ajk hk yjk

(2.1)

j∈P k=2

St

X

zj = p

(2.2)

ajk yjk ≤ 1 ∀k = 2, ..., n − 1

(2.3)

hk yjk ≤ cj zj ∀j ∈ P.

(2.4)

j∈P

X j∈P n−1 X k=2

yjk = (0, 1) ∀ k = 2, ..., n − 1, j ∈ P

(2.5)

zj = (0, 1) ∀ j ∈ P

(2.6)

The objective function (2.1) maximizes the total coverage. Constraint (2.2) requires p facilities to be built from the potential facility sites. Constraint set (2.3) requires the demand at node k be covered by at most 1 facility. Constraint set (2.4) 39

requires total demand covered by facility site j to be within the total capacity of the facility at location j. Constraint set (2.5) requires the demand allocation variable to be binary. Constraint set (2.6) requires the facility variables to be binary. If demand can be partially satisfied, constraint set (2.5) can be changed to 0 ≤ yjk ≤ 1 ∀ k = 2, ..., n − 1, j ∈ P .

2.2

Lagrangian Relaxation (LR) Using New Heuristic Bound

The first heuristic I introduce is the lagrangian relaxation with sub-gradient optimization. The method is similar to Pirkul and Schilling (1991), but I provide a different lower bound with better heuristics to generate feasible solutions. Their method is for median-like problems and the problem setting is different from mine. This algorithm will be used to compare with other algorithms.

2.2.1

Solution Method

I. Relaxation method I will relax constraint set (2.3), and break the problem to subproblems according to facility index. Although the p subproblems are linked by the constraint (2.2), I can solve these subproblems separately and then combine them later. Each of the subproblems will be solved by a 0-1 knapsack problem. Similarly as in Pirkul and Schilling (1991), I solve the continuous version of the knapsack subproblem to get the upper bound at each iteration of the lagrangian relaxation. Denote the objective function to be Π2 . The relaxed problem is:

40

CMCLP(λ):

M aximize

ΠL2 (λ)

=

n−1 XX

ajk hk yjk +

j∈P k=2

X

St

n−1 X

λk (1 −

k=2

X

ajk yjk )

(2.7)

j∈P

zj = p

(2.8)

hk yjk ≤ cj zj ∀j ∈ P

(2.9)

j∈P n−1 X k=2

yjk = (0, 1) ∀ k = 2, .., n − 1, j ∈ P

(2.10)

zj = (0, 1) ∀ j ∈ P

(2.11)

The best upper bound for problem CMCLP is:

ΠL2 (λ∗ ) = minλ {ΠL2 (λ)}

(2.12)

For each λ value, we solve the problem ΠL2 (λ). Reorganize the objective function we get:

M aximize ΠL2 (λ) =

n−1 XX

ajk (hk − λk )yjk +

j∈P k=2

St

X

n−1 X

λk

(2.13)

k=2

zj = p

(2.14)

hk yjk ≤ cj zj ∀j ∈ P.

(2.15)

j∈P n−1 X k=2

yjk = (0, 1) ∀ k = 2, ..., n − 1, j ∈ P

(2.16)

zj = (0, 1) ∀ j ∈ P

(2.17)

41

II. Knapsack sub-problems: To get an upper bound, I will break it to n subproblems ignoring constraint 2.14, and then pick the p subproblems which yields the top p greatest objective values and assign the facilities to these sites, i.e., set zj = 1. The subproblem for facility location j ∈ P is:

M aximize

ΠLj 2 (λ)

=

St

n−1 X k=2 n−1 X

ajk (hk − λk )yjk

(2.18)

hk yjk ≤ cj zj

(2.19)

k=2

yjk = (0, 1) ∀k = 2, ..., n − 1.

(2.20)

For location j, if zj = 0, I will set yjk = 0 for all k = 2, ..., n − 1, then the objective value 2.18 is 0. If zj = 1 and ajk = 0, we will set yjk = 0. Also if ajk = 1 and hk − λk ≤ 0, I will set yjk = 0. If I denote the set with yjk = 0 to be Kj0 (either due to ajk = 0 or due to ajk hk − λk ≤ 0) , then the complement will be Kjy = {k|k = 2, ..., n − 1, k ∈ / Kj0 }. Notice for k ∈ Kjy , all hk − λk > 0 and ajk = 1. Then the sub-problem for location j will become:

M aximize ΠLj = 2

X

(hk − λk )yjk

(2.21)

hk yjk ≤ cj

(2.22)

yjk = (0, 1) ∀k ∈ Kjy

(2.23)

k∈Kjy

St

X

k∈Kjy

42

I will solve the LP-relaxation of the knapsack problem (2.21). I can use any LP software to solve the simplex linear programming relaxation. It can also be solved by greedy heuristic by ranking the ratio of (hk − λk )/hk in nonincreasing order, then select the yjk ’s until cj capacity has been reached. Say this is the rth yjk . Set all the first (t − 1) yjk ’s to 1, and all those after rth yjk to be 0. Set the rth yjk accordingly to:

cj −

Pt−1 k=1

hk

hk

(2.24)

I will use this method to solve the knapsack LP-relaxation. Once these knapsack problems have been solved for all potential facility sites, I will select p of them which yield the largest knapsack LP-relaxation objective value, assign zj = 1 for these problems. If there are ties, I give priority to the facility with greater capacities. Further ties can be broken by the natural index order of the P facilities. Calculate the sum of the p objective functions and n−1 k=2 λk , then use this sum as the upper bound for our lagrangian relaxation problem for CMCLP. A feasible solution is generated based on the previous information as a lower bound for this iteration of lagrangian relaxation. III. Feasible solution generation procedure: Step 1: Use the solutions for the sites with zj = 1, and the corresponding solutions of yjk as a starting point. Round down y’s so that all remaining y’s are either 0 or 1. Denote this solution as (z, y). Check if the solution is feasible for the CMCLP, i.e., ¯ ¯

43

check if

P j∈P

yjk ≤ 1∀k. If this is satisfied, go to step 3 for further improvement.

Otherwise, go to step 2. Step 2: For each demand node k in which

P j∈P

yjk > 1. Find the set of facility

sites which cover k, denote this set as sk . Rule 1: release the demand assignment (set yjk = 0) except the facility location which is closest to k in set sk . Rule 2: release the facilities except the one which has smallest remaining capacity, so additional demand might be covered by some facilities with larger remaining capacity for the improvement algorithm in step 3. We will use the rule which gives better objective value after step 3 and 4. Step 3: Obtain a list for uncovered demand for the solution from the previous steps ListD in nonincreasing order of demand (If there is a tie, use the natural order of demand index number). Obtain a list ListF for facilities which has remaining capacity in nonincreasing order of remaining capacity (if there is a tie, use nonincreasing order of total demand within coverage distance; if there is still a tie, use the natural order of the facility index number). Remove the demand from ListD one by one and check if the current demand can be covered by any facility in the order of ListF (i.e. check if the demand is within the coverage distance of the facility and the facility has sufficient remaining capacity to cover the demand). If so, assign the demand to the corresponding facility node, update related variables (assignment variable Y’s), resort the facility list with remaining capacities, and go to the next demand. Otherwise, check the next facility for the current demand. If the facility list has been used up and the current demand has not been covered, drop the demand and go to the next demand. Stop when all demand in ListD has been considered.

44

Step 4: For each site where a facility is located (zj = 1) and which has remaining capacity (in nonincreasing order of remaining capacity, if there is a tie, use the nonincreasing order to total demand covered, if there still a tie, use increasing order of index number), check if swapping any of the demand covered (in nondecreasing order of demand, if there is tie, use increasing order of index number) by j with any uncovered demand (in nonincreasing order of demand, if there is a tie, use increasing order of index number) within the coverage distance of j will improve the coverage value without violating the capacity constraint of j. Make the swap whenever improvement is possible. After each exchange, update demand assignment, used capacity, and re-sort the list of uncovered demand. Check the next demand in the list of demand covered. When all demand has been considered in this list, stop. Step 5: Repeat step 3 and 4 for one more time. IV. Subgradient optimization for the lagrangian relaxation: We will use the subgradient method to optimize the lagrangian multiplier. The rth iteration for the multiplier is:

λr+1 = max{0, λr − tr (1 − k

X

yjk )} ∀ k = 2, ..., n − 1.

(2.25)

j∈P

tr is the step size, where

αr (ΠL2 (λr ) − LB) t = Pn−1 P 2 k=2 (1 − j∈P yjk ) r

45

(2.26)

α0 = 2, and αr is halved when the upper bound does not improve in 20 consecutive iterations. V. Termination condition of the lagrangian relaxation method: The lagrangian relaxation iteration terminates if any of the following happens: • The number of iteration reaches an upper limit ItMax (we use 2700 in our computation experiment). • Lower bound is within 0.01% of the best upper bound. Percentage gap is calculated by: (best upper bound-lower bound)/best upper bound. • α < 0.0001. • All subgradients are 0. If the lagrangian relaxation solution is feasible, then we have the optimal solution, otherwise, we have an upper bound when this happens. VI. Overall algorithm for capacitated maximum covering problem using lagrangian relaxation: Step 1: Generate an initial solution using completely random, greedy, or greedy adapted heuristic (to be introduced in the section 2.3). Step 2: When the stopping criteria above is not satisfied, generate upper bound by selecting the best p objective values for the knapsack problems in objective (2.21). Step 3: Generate a lower bound by the feasible solution generation procedure. Step 4: Adjust the multiplier by constraint set (2.25) and constraint (2.26). Step 5: Check stopping condition. If stopping criteria is not satisfied, repeat step 2 to 5. Otherwise stop. Use the best feasible solution as the final solution. 46

2.2.2

Computational Complexity of Lagrangian Relaxation

For each lagrangian iteration, upper bound needs O(n2 logn) computation time. In feasible solution generation step, step 1 takes O(n) time, step 2 takes O(n) time, step 3 takes O(nlogn) time and step 4 takes O(n2 ) time. So lagrangian relaxation takes O(n2 logn) time.

2.3

Tabu Search (TS)

There is no existing literature in meta-heuristics for the capacitated MCLP (CMCLP). The reason might be that the capacity makes the updating rules for local searches more difficult. Mladenovic, Moreno and Marcos Moreno (2003) design a Tabu search algorithm with a special chain structure for general p-facility problems. No capacity is considered in this paper. The capacity constraint makes the local search more difficult to update the demand assignment. Delmaire, D´ıaz and Fern´andez (1999) design a reactive GRASP and Tabu search based heuristic for the single source capacitated plant location problem. In the neighborhood local search phase, they use a relaxed version of the problem with a penalty function for violated capacity constraint. Chen and Ting (2008) also use a penalty method in the location search for violated capacity constraint. I will also use a penalty method to handle the capacity constraint in one of my Tabu search algorithms. Osman and Christofides (1994) designs a hybrid simulated annealing and Tabu search algorithm for the capacitated clustering problem. They use λ−interchange for local search neighborhood. But they do not mention specifically how to keep capacity feasibility in the local search process. Fleszar and Hindi (2008) design a variable neighborhood search for

47

the capacitated p-median problem. They use GAP (generalized assignment problem) in neighborhood search. The major difficulty in the capacitated maximum covering problem is to allocate the capacity for demand once facility sites are fixed. And change of facilities will also need the change of demand assignment due to both coverage and capacity constraint. I can either solve a demand assignment problem using integer programming softwares, or relax the capacity constraints using a penalty function for violation of capacities. I will also design a heuristic method for demand assignment. In summary, one of the following three ways can be used to deal with the difficulty of demand assignment induced by capacity constraint: • Solve a demand allocation problem for capacity assignment by integer programming software (this is only feasible for very small problems). • Use heuristic method to allocate the demand for capacity assignment. • Use infeasible neighborhood relaxing capacity constraints and use penalty term in the objective function for violated capacities. In tabu search, this is also called strategic oscillation. Before I discuss the details of the algorithm, I will first introduce a heuristic for building a feasible solution from scratch and also introduce the neighborhood structure. This will be iteratively used in the Tabu search.

48

2.3.1

Initial Solution Generation Methods

I propose 3 heuristics to build an initial feasible solution: • Completely random initial solution • Greedy initial solution • Greedy random adapted initial solution I. Completely random initial solution: Completely random generated solution is good for thorough exploration of the solution area. (i) Randomly select one location in potential facility sites to build a facility. If there is just one potential facility location, build a facility at this location. (i-1) Once we add a facility j, we build a list of demand node that could be covered by this facility yet uncovered by any facilities so far, and we call this set of nodes to be the region of this facility and is denoted as Rj . Let the remaining capacity in this facility be CRj (this is equal to capacity Cj if firstly considered). Arrange the demand in region Rj in the order of index order of demand nodes. (i-2) Check the sum of demand assigned to j and denote it as T Dj . If T Dj is smaller than the capacity Cj , add all the demand to this facility and update the remaining capacity CRj , and set the remaining demand for all covered node to be 0 (i.e., set DRk = 0 for demand k). Update the objective value by adding the total demand covered by facility at site j. Go to step (ii). If T Dj > CRj and the number of demand within coverage distance of j is greater than one, then add the demand (if the demand is less than CRj ) from the list randomly until no demand can be added to facility site j as in (i-3). 49

(i-3) Randomly pick a demand node (not assigned yet) to be served by location j. If the remaining capacity CRj is greater than or equal to the demand, then allocate the demand to facility j. Update the remaining capacity for location j, and update the remaining demand of the just covered demand to 0 (i.e., set DRk = 0 for demand k). If there is no sufficient capacity, drop the current selected demand and repeat step (i-3) until all demand has been considered. (ii) Add facilities one by one randomly until p facilities have been added. At each step, a facility is randomly selected from the unselected sites (with equal probability) and is added to the selected sites. When a facility j is added to the selected facility set, we check its region Rj , ignoring the demand nodes with 0 remaining demand. And we assign demand to the added facility site as in step (i-1)−(i-3). II. Greedy initial solution: The basic steps are similar to the completely randomly generated initial solution. The difference lies in the order of facilities to be select and the order of demand to be added to a given facility. (i) Arrange the potential location sites in nonincreasing order of the minimum value of capacity and total uncovered demand within coverage distance of each facility (M in(Cj , T Dj )). If there is a tie, use a second ranking criteria based on the weighted P total demand (T Djw = k (hk /nFk )), where hk is the demand quantity of the kth node covered by facility at j, while nFk is the number of facilities which covers the demand. If there is a tie again, then use the natural index order of the facility location sites. If there is only one potential facility location, we will skip the previous consideration and build a facility at this location. (ii) Facility selection and demand assignment. 50

Select the first facility in the list of (i) if there is more than one potential facility sites. (ii-1) After a facility is selected, a list of demand nodes within coverage distance of this facility is built. Call this set of nodes to be the region of this facility and is denoted as Rj . Let the remaining capacity in this facility be CRj (this is equal to capacity Cj if the facility is firstly considered). Arrange the demand in region Rj in non-increasing order of

hk , nFk

(hk is the demand for node k, nFk is the number

of potential facility sites (unselected yet) covering k) and break ties by using the non-increasing order of demand. If there is still a tie, use natural index order of demand. (ii-2) Check if the capacity of j can cover all the demand in the list (i.e., Cj ≥ T Dj ). If so assign all the demand to facility j. Update remaining capacity CRj , and set the remaining demand for all the covered demand to 0. If the total number of selected facility is equal to p, stop, otherwise select the next facility from the list in (i) and repeat step (ii). If Cj < T Dj , go to step (ii-3). (ii-3) Assign the demand in Rj to location j in the arranged order until the total demand is over the capacity. Add the next demand node in the list and check if the capacity is exceeded. If the capacity is exceeded, delete this newly added demand node and check the next demand node. Repeat until all the demand nodes have been checked. At each time some capacity is allocated to some demand location, the remaining capacity is updated for CRj and the remaining demand is set to 0. (ii-4) When demand allocation for the current facility is assigned, resort the list of unselected facility in the order as in (i). Pick the first facility in the list and repeat step (ii) until p facilities have been selected. 51

III. Greedy random adapted initial solution: This is a combination of initialization method (I) and (II). The random selection of facility nodes allows more areas of the solution set to be explored. The greedy nature allows the random generated solution to have some basic quality. The generated solution can be used as an initial solution for tabu search. (0)If there is only one potential facility location, build a facility at this location and go to step (iii-1). Otherwise go to step (i). (i) (same as (II)) Arrange the potential location sites in nonincreasing order of the minimum of capacity and total demand covered (M in(Cj , T Dj )). If there is a tie, use a second ranking criteria based on the weighted total demand (T Djw = P k (hk /nFk )), where hk is the demand for the kth node covered by facility at j, while nFk is the number of facilities which covers the demand (nonincreasing order). If there is still a tie, then use the natural index order of the facility location sites. (ii) Calculate the reserved value for facilities to be added by R∗ = minj {M in(Cj , T Dj )}+ α{maxj {M in(Cj , T Dj )} − minj {M in(Cj , T Dj )}}. (iii) Select the facilities randomly from the facility sites which has M in(Cj , T Dj ) ≥ R∗ one by one until p facilities have been added. When demand allocation for a facility has been made, resort the facility list as in (i) and recalculate the reserve value as in (ii) ignoring the selected facility. If after selecting facilities using reserve value method, the number of facilities is less than p (this is possible only if none of the remaining facility can cover any positive uncovered demand). Select the rest of the facilities from the unselected facility sites randomly. (iii-1) After we select each facility, we build a list of uncovered demand node that could be covered by this facility, and we call this set of nodes to be the region of 52

this facility and is denoted as Rj . Let the remaining capacity in this facility be CRj (this is equal to capacity Cj if the facility is firstly considered). Arrange the demand in region Rj in nonincreasing order of

hk ,(hk nFk

is the demand for node k, nFk is the

number of potential facility sites (unselected yet) covering k) and break ties by using the nonincreasing order of demand. If there is still a tie, use natural index order for demand. (iii-2) Check if the capacity of j can cover all the demand in the list (i.e., Cj ≥ T Dj ). If so assign all the demand to facility j. Update remaining capacity CRj , and set the remaining demand for all the covered demand to 0. Go to step (iii). If the capacity of j cannot cover all the demand in the list and the number of demand in the list is greater than one, go to step (iii-3). hk (iii-3) Calculate a reserve value for the demand to be added. R∗∗ = mink { nF }+ k hk hk β{maxk { nF } − mink { nF }). Assign the demand in Rj to location j for randomly k k

picked demand which has a

hk nFk

≥ R∗∗ . If the demand can be covered by the remaining

capacity CRj , update the remaining capacity for j and remaining demand for k. Otherwise, drop this demand and randomly select another unconsidered demand. This is repeated until for all the demand node has been considered (either assigned to the facility or dropped). Once an initial solution is obtained, solutions in the neighborhood of this initial solution are searched and the best solution is updated if there is an improvement in objective value. Next I will introduce the procedures in this local search procedure.

53

7

5

7

5

3

3 6

6

4

4 2

2

3 1

3 2

1

1

2 1

Figure 2.1: 1-Interchange : Exchange Selected Facility 2 with Unselected Facility 3

2.3.2

Local Search Procedures

I. Neighborhood structure: The neighborhood structures I will use are 1-interchange, client-shift, demand swap (demand reallocation, a modified version of demand swap) and demand addition. The details are as follows. • 1-interchange: interchange one selected facility site with one unselected facility site. This is to improve the facility selection decisions. The demand allocation problem needs to be considered as a subproblem. This neighborhood is illustrated in figure 2.1. • Client shift: if a demand can be covered by multiple selected facilities, the client shift moves a demand from one selected facility to another selected facility. This improves the solution by exploring the possibility to allocate demand to different 54

4

5

4

5

2

2 6

6 3

3

1

1 1

1

2

2

Figure 2.2: Client Shift : Shift Demand 3 from Facility 2 to 1 and Add Demand 6 to Facility 2

selected facilities. The capacity released for the first facility can be allocated to other demand. This neighborhood is illustrated in figure 2.2. • Demand swap (reallocation): this helps to improve the previous two neighborhood moves. Demand swap exchanges a satisfied demand with an unsatisfied demand within coverage distance of a selected facility. Demand reallocation releases all the demand satisfied by a selected facility and reassign the unsatisfied demand to the selected facility. This might involve exchanging one or more satisfied demand with one or more unsatisfied demand for a selected facility. Demand reallocation explores the possibility to improve the solution for a selected facility by exchanging some large unassigned demand with some smaller assigned demand. This neighborhood is illustrated in figure 2.3.

55

4

4

3

3 5

5 1

1

2

2 1

1

Figure 2.3: Demand Swap (Reallocation) : Remove Demand 3 and 4 from and Add Demand 5 to Facility 1

• Demand Addition: this is to explore the possibility to add some unsatisfied demand to a facility within coverage distance after the previous moves. This neighborhood is illustrated in figure 2.4. The four neighborhood structures are in different levels. 1-interchange involves swapping facilities and demand allocation. While client shift, demand swap and demand addition do not change the facility selection decisions. Client shift change the allocation of a demand node from one selected facility to another selected facility. While demand swap (reallocation) only involves the demand assigned and demand unassigned to a specific selected facility site. Demand addition is to add demand to a facility if possible. I will alternate among these neighborhood structures in the local search and the meta-heuristics in later sections. For each of these neighborhoods, I need to allocate the demand with restricted capacity once the facilities have been selected. 56

3

3 4

4

1

1 5

5

2

2 1

1

Figure 2.4: Demand Addition : Add Demand 4 and 5 to Facility 1

II. Demand allocation subproblem: For Tabu search or any other local search procedure, I need to improve the solution in one way or another. The neighborhood structure and local search method is important. For the capacitated maximum covering problem, the demand allocation is more complicated due to facility capacity constraints. So given a set of selected facilities, we need find a reasonable way to solve the demand allocation subproblem in the previous neighborhood moves. I propose 3 ways to do the local search: • Heuristic demand allocation • Exact demand allocation (work for only small problems by integer programming software packages) • Penalty method: relaxation with penalty cost for violated capacities

57

I will introduce these demand allocation methods in all neighborhood moves as follows. 1. Heuristic demand allocation: (a) Heuristic demand allocation - 1 interchange: Exchange a selected facility with an unselected facility and allocate the demand with capacity constraint by heuristic method. (0) For each selected facility site and each unselected site, we do the 1-interchange and see if any improvement will be achieved. Interchange is made for the best improvement made, and then the next iteration of interchange will be carried out. I determine if it is desirable to exchange unselected facility, t, for selected facility, s, with the following steps. (i)For the demand assigned to the leaving facility s, do the following: (i-1) Check the demand list Ds (demand assigned to selected facility s) in the order of nonincreasing demand (if there is a tie, use the natural index order for demand) for the leaving facility s. (i-2) List the other selected facilities (not including s) in nonincreasing order of remaining capacity. If there is a tie, use the nonincreasing order of total demand within coverage distance. If there is still a tie, use the natural facility index order. (i-3) For each demand list in the order of (i-1), check the facilities in the order of (i-2). If a demand can be covered by a facility site which has remaining capacity sufficient to cover the demand, allocate the demand to it and update the remaining capacity and set the remaining demand for the satisfied demand to 0. Update the objective function. Resort the facilities using the updated capacity.

58

(i-4) If no facility can cover the demand, drop the demand from the list and check the next demand node. When all demand nodes in region of s has been checked, remove s from selected facilities. (ii) From the unassigned demand which can be covered by t, construct the list of demand Rt , list the demand in nonincreasing order (if there is a tie, use the natural index order of demand). (ii-1) If the sum of the demand is not greater than the capacity, i.e., T Dt ≤ Ct , then allocate all demand in the list to the incoming facility t. Update the remaining capacity, remaining demand and objective value. (ii-2) If T Dt > Ct , try to take the sum with increasing index order (nonincreasing demand) until it is just above the capacity, remove the last demand, and denote the sum to be T Dtl , check the next demand and see if it can be covered with the remaining capacity, if so, cover the demand and update T Dtl and set the remaining demand to 0 and go on to check the next demand, otherwise remove the demand and check the next demand in the list until every demand has been considered. (ii-3) Take the sum with decreasing index order until it is just above the capacity, remove the last demand and denote the sum as T Dtr . Use max{T Dtl , T Dtr } as the demand coverage for incoming facility t. Record the demand assigned. Update the objective value. (iii) Among all interchanges, select the one with the greatest objective value. If there is no feasible interchange, stop the current step of neighborhood search for one-interchange. (iv) (Required for 1-interchange Tabu search, not required for a single 1-interchange move) If an interchange move is finished, start a new iteration of 1-interchange from 59

step (0) while stopping condition is not satisfied. If no improvement can be made for all pairs of selected site and unselected site in a certain number of iterations, or the total number of iterations exceeds a certain level, terminate the 1-interchange heuristic Tabu search and use the current solution as the final solution. The 1-interchange algorithm borrows the idea from Chung, Schilling and Carbone (1983) and improves the algorithm by (1) filling the capacity using large demand nodes first, and then fill in the rest with smaller demands in the increasing index direction; and take summation rather than single demand node in the decreasing index direction in (ii). (2) and by checking for existing demand covered before dropping the facility s in (i). (b) heuristic demand allocation - Client shift neighborhood: Besides 1-interchange, we also introduce client shift neighborhood similar to Delmaire, D´ıaz and Fern´andez (1999). They use penalty method, but we use heuristic method here. They do not have coverage distance restriction and our problem has it. So the usage and procedure of this neighborhood is different from theirs. And it is thus more complicated than their method. The 1-interchange algorithm exchanges facilities, and facilities carries over the covered demand. Client shift neighborhood exchange demand from one facility to another when both facilities are open and can cover the demand. The procedure is as follows: (i) Check the demand already assigned in nonincreasing order of demand. If a demand node k can be covered by more than one selected facilities, we create a list of selected facilities Lk which can cover node k in nonincreasing order of remaining capacity of facilities. If the demand is covered by only one facility, then check the 60

next demand node. If all demand nodes have been considered and there is no demand node covered by more than one selected facilities, stop. No client shift is possible. (ii) Suppose the demand k is being considered and currently covered by node s, we will explore the possibility to remove the demand k from site s to another selected site t. (ii-1) Remove demand k from facility s, update the objective value and the remaining capacity of facility s. (ii-2) For each of the remaining selected facility site t from Lk /s: • Assign the demand to facility site t (facility sites ordered by nonincreasing order of remaining capacity) if there is sufficient remaining capacity. • If there is not sufficient remaining capacity, check if the demand quantity for demand k is greater than the original capacity for facility site t. – If so, no client shift is possible for this client shift. Repeat step (ii) if there is still unconsidered facility site from Lk /s. – If the demand of k is less than or equal to the original capacity of facility site t, create a list of demand (ListDtQ) currently satisfied by facility site t and sort it in nonincreasing order of demand (if there is a tie, use the natural index order for demand). Release these demand from facility site t. Add the demand k to node t. Then add the demand in ”ListDtQ” and assign remaining capacity to this list of demand by the method in (ii) in “(a.1) Heuristic demand allocation: 1-interchange” (summation is done in two directions).

61

(ii-3) Check if any unassigned demand will be covered by the remaining capacity of facility at s. Add the these demand to facility s in nonincreasing order of demand (similar to step (ii) in “(a) Heuristic demand allocation: 1-interchange”). Demand assignment variable, remaining capacity and objective value will be updated. (iii) Select the facility from Lk /s which yields the greatest value in the objective function for each demand k. When all the demands with multiple coverage have been considered, make the client shift for the demand with multiple coverage which yields the greatest objective value. If no such shift exists, go to step (iv). (iv) (Required for client shift Tabu search, not required for a single client shift move). When a client shift move is finished, restart client shift in step (i) and go through step (iii) if stopping condition is not satisfied. When no improvement can be made for all possible client shift demand node in a number of iterations or the total number of iterations exceed a certain level, stop the client shift heuristic Tabu search and use the current solution as the final solution. (c) heuristic demand allocation - demand swap (reallocation): Demand swap (reallocation) has the potential to improve the solution after 1interchange and client shift. In 1-interchange, I release the demand assigned to the leaving facility and assign them to other selected facilities, which might need demand swap (reallocation) to improve the obtained solution. In client-shift, after demand is removed from a facility, this facility might need demand swap (reallocation). When the demand is moved to a new selected facility, this new facility might need demand swap (reallocation).

62

(i) Arrange the selected facilities with nonincreasing remaining capacity (if there is a tie, use nonincreasing order of total demand covered by the facility. If there is still a tie, use the natural demand index order), denote it as Lf . Do demand-reallocation in (ii) and demand-swap in (iii) respectively: (ii) Demand-reallocation: (ii-1) Remove one facility s at a time from the list Lf . For this facility, remove all the demand assigned to this facility. Note: step (ii) will be adjusted if some of the assigned demand is Tabu to be removed, then the remaining capacity might be smaller than the full capacity. (ii-2) Create a list of unsatisfied demand Dsu . Order the list in nonincreasing order of demand (if there is a tie, use the natural order of demand index). (ii-3) Check if any unassigned demand in the list of Dsu can be assigned by the capacity of facility s. Add the unassigned demand to facility s in nonincreasing order of demand (similar to step (ii) in “(a) Heuristic demand allocation: 1-interchange”). Assignment variable, remaining capacity and objective value will be updated. (ii-4) Select the demand reallocation which results in the greatest objective value if such an demand reallocation exists. A demand reallocation is said to be done if a selected facility changes at least one demand assigned to this facility. (ii-5) (Required for demand reallocation in Tabu search; not required for a single demand reallocation move). When a demand reallocation move is finished, restart demand reallocation in step (ii) if stopping condition is not satisfied. When no improvement can be made for all selected facilities or the total number of iterations exceed a certain level, stop the demand reallocation heuristic Tabu search and use the current solution as the first possible final solution. 63

Note: the sorting in (i) and (ii) is to select a better solution if there is a tie in the objective value. (iii) Demand swap: (iii-1) Ignore the previous steps in (ii), arrange the selected facilities with nonincreasing remaining capacity (if there is a tie, use nonincreasing order of total demand covered by the facility. If there is still a tie, use the natural demand index order), denote it as Lf . (iii-2) Remove one facility at a time from the list Lf . For this facility, create a list of satisfied and another list of unsatisfied demand. Order the first list in nondecreasing order of demand (if there is a tie, use the natural demand index number). Order the second list in nonincreasing order of demand (if there is a tie, use the natural order of demand index). (iii-3) For each facility j, calculate the improved demand coverage by swapping each demand satisfied by j and each demand not satisfied but within coverage distance of j. Only swaps within capacity limit are considered. (iii-4) Select the swap which results in the greatest objective value if such an swap exists. Otherwise search for possible improvement again for the next facility sites in Lf until every facility sites are considered. Finally swap is made only for the facility which yields the best objective value. (iii-5) (Required for demand swap in Tabu search local search; not required for a single demand swap move). When a demand swap move is finished, restart demand swap in step (iii). When no improvement can be made for all possible demand swaps in a number of iterations or the total number of iterations exceeds a certain level, stop the demand swap move. 64

(iv) In each Tabu search step, choose the move demand swap or demand reallocation that results in the largest objective function improvement. If there is a tie, select demand-reallocation move. (d) heuristic demand allocation - demand addition: This neighborhood is used to improve the first 3 heuristics. We will not give Tabu restriction for heuristic demand addition. This is used in the Tabu search from time to time to improve the quality of the solution. (i) Arrange the selected facilities with nonincreasing remaining capacity, denote it as Lf . (ii) Check one facility at a time from the list Lf . For each facility j, create a list of unsatisfied demand which is within coverage distance of this facility. Sort this demand list in nonincreasing demand value. Check if filling the remaining capacity by the demand in the list by the method as in “(a) Heuristic demand allocation: 1-interchange” will improve the objective value. Only addition within capacity limit is considered. Repeat this for each facility in the list Lf and repeat step (ii). II. exact demand allocation -1-interchange: For capacitated MCLP, once the facilities are selected, then a demand allocation problem can be solved using integer programming software package. Suppose the set for the selected facilities is J s . Clearly |J s | = p. Then the problem will be

65

CMCLP-Demand Assignment:

M aximize Π2 =

n−1 XX

ajk hk yjk

(2.27)

j∈J s k=2

St

X

yjk ≤ 1 ∀k = 2, ..., n − 1

(2.28)

hk yjk ≤ cj ∀j ∈ J s .

(2.29)

j∈P n−1 X k=2

yjk = 0 ∀j ∈ P/J s , k = 2, ..., n − 1

(2.30)

yjk = (0, 1) ∀j ∈ J s , k = 2, ..., n − 1

(2.31)

This can be transformed to a restricted case of generalized assignment problem (GAP). This is possible for only small problems. I will focus on the heuristic method and penalty method. III. Relaxation with penalty cost for violated capacity: Delmaire, D´ıaz and Fern´andez (1998) use surrogate relaxation with penalty cost for single source capacitated plant location problem. I will also use the penalty method to handle the capacity constraint of CMCLP problem. I take the sum for constraint set (2.4), and the relaxed problem is:

66

RCMCLP:

M aximize Π2 =

n−1 XX

ajk hk yjk − P enalty(Y, Z)

(2.32)

j∈P k=2

St

X

zj = p

(2.33)

yjk ≤ 1 ∀k = 2, ..., n − 1

(2.34)

j∈P

X j∈P

n−1 XX

hk yjk ≤

j∈P k=2

X

cj zj

(2.35)

j

yjk = (0, 1) ∀ (j, k)

(2.36)

zj = (0, 1) ∀ j = 1, 2, ..., n.

(2.37)

During the local search, constraint (2.33) and constraint set (2.34) are kept as satisfied. Constraint (2.35) is a relaxation from the facility constraints, and this just ensures that the total demand assigned is smaller than the total capacity of the selected facilities. In the penalty local search, I will further relax constraint (2.35) P P P such that j∈P n−1 k=2 hk yjk ≤ f actor ∗ j cj zj (factor can be greater than 1). This is a further relaxation for the previous surrogate relaxation of the capacity constraints and keeps the violation of total capacity within a certain level. This will also make the local search to explore more possible neighborhood. I will construct a feasible solution for the original problem in the end of the Tabu search for penalty method.

67

I subtract a penalty term in the objective function (2.1) for the violated capacities and get the relaxed objective function (2.32), where

P enalty(Y, Z) =

X

ρj vj

(2.38)

j∈J

Where vj is the violated capacity for facility j when facility site j is selected, and:

vj

n−1 X = max{ hk yjk − cj , 0}

(2.39)

k=2

Note, if facility site j is not selected, vj = 0, so no penalty is given to site j. When we do local search, feasibility (capacity constraint) can be violated, but the penalty term will drive the solution search to the feasible region. We adjust the penalty coefficient ρj in the same way as in Gendreau, Laporte and S´eguin (1996). Initially ρj = 2 and then it is multiplied by 2[

nin j −1] 5

in every 10 iterations. Where

nin j is the number of iterations with infeasible constraint for facility j in the previous 10 iterations. Gendreau, Laporte and S´eguin (1996) use a single penalty coefficient ρ P in the penalty term ρ j∈J vj . We consider different penalty coefficient for different facility capacity constraint and this can make more flexible adjustment. We further require that the move can be made if the total demand is within a certain factor of the total capacity (for example, if the factor is 1.2, then the move is feasible if total demand≤ 1.2*total capacity). Initially we set factor to be equal to 1. We may set factor to be equal to levels greater than 1 for diversification purpose in certain iterations in the Tabu search. This allows the total capacity to 68

be violated and makes the search to explore into more diversified neighborhood. The detailed 1-interchange, client shift, demand swap (reallocation), and demand addition algorithms for the relaxed problem with penalty cost are as follows. (a) Relaxation with penalty cost for violated capacity - 1-interchange: Exchange a selected facility with an unselected facility and allocate the demand with penalty cost for violated capacity. (0) For each selected facility site and each unselected site, we explore the possibility of 1-interchange. Interchange with the best objective value is selected if at least one 1-interchange move is possible. If we remove a facility s in the selected site and add a facility t in the unselected site, calculate the new objective value by the following steps. (i) Record all remaining capacity to be CRj and capacity violation to be vj for facility at j. (Note: at least one of these two quantities is zero.) Record the total demand for the current solution to be TD and total capacity to be TC. (ii) Record the list of demand currently assigned to the leaving facility s and denote the list to be Ds . Sort this list of demand in the order of nonincreasing demand (if there is a tie, use the natural index order for demand). Check if the demand in Ds (in the above order) can be covered by other open facilities, if so assign the demand, if not, drop the demand. Details are as follows: (ii-0) Release the demand in list Ds and update total demand by T D = T D −T Ds (where T Ds is the sum of demand satisfied by node s). Update total capacity by T C = T C − cs + ct . Subtract the objective value by T Ds .

69

P (ii-1) If vs = max{ n−1 k=2 hk ysk − cs , 0} > 0 before releasing all demand in Ds , then add ρs vs back to the objective function. For all cases of vs , reset the remaining capacity of facility s to be cs (original capacity of facility s) and violation vs = 0. (ii-2) Check all the demand in the order in the list Ds . If any of the demand k in Ds can be covered by other sites in the selected facilities (in the list of Fk∈Ds ), select one of these sites s’ (selected facilities for each demand other than s is sorted in nonincreasing order of remaining capacity CRs0 . If remaining capacity is 0, sort in nondecreasing order of violation vs0 . If there is still a tie, use the natural facility index order). Allocate the demand to it if possible as follows. (ii-2a)If CRs0 ≥ 0, vs0 = 0, f actor ∗ T C ≥ (T D + hk ), and (hk − ρs0 max{hk − CRs0 , 0}) ≥ 0, update the solution as follows: new remaining capacity of s’ is CRs0 = max{CRs0 − hk , 0} and violation is vs0 = max{hk − CRs0 , 0}. Subtract ρs0 vs0 from and add hk to the objective function (the objective function increase by hk − ρs0 vs0 ). T D = T D + hk . If CRs0 ≥ 0, vs0 = 0, and (f actor ∗ T C < (T D + hk ) or (hk − ρs0 max{hk − CRs0 , 0}) < 0), ignore this facility s’ and check the next facility in Fk∈Ds which can covered demand k. (ii-2b)If vs0 > 0, f actor ∗ T C ≥ (T D + hk ) and (hk − ρs0 hk ) ≥ 0 , then the new remaining capacity CRs0 = 0 and the new violation vs0 = vs0 + hk , subtract additional penalty ρs0 hk from and add hk to the objective value (i.e. objective value increase by hk − ρs0 hk . T D = T D + hk . If vs0 > 0 and (f actor ∗ T C < (T D + hk ) or (hk − ρs0 hk ) < 0), then ignore this facility s’ and check the next facility in Fk∈Ds which can covered demand k.

70

(ii-3) If demand k cannot be assigned to node s’, check the next facility in the list of Fk∈Ds . If no facility can satisfy the demand, ignore the demand k and check the next demand in list Ds until all demand has been considered. (iii) Demand allocation to the incoming facility t. Initialize the remaining capacity of t by CRt = ct and violation by vt = 0. From the unsatisfied demand which can be covered by t and has not been satisfied, construct the list of demand Rt , list the demand in nonincreasing order of demand quantity (if there is a tie, use the natural index order). When trying to assign the demand in the list Rt to facility at t, do the following: (iii-1) If vt > 0 and f actorT C ≥ (T D + hk ), then violation will increase by hk , demand coverage will increase by hk , so the objective function will increase by (1 − ρt )hk . The new violation will be vt = vt + hk , the new remaining capacity CRt will be 0. Total demand is updated by T D = T D + hk . Demand k is assigned to facility t and the previous quantities updated if the increase in objective function (1 − ρt )hk ≥ 0. If vt > 0 and (f actorT C < (T D + hk ) or (1 − ρt )hk < 0), ignore demand k and check the next demand node in list Lt . (iii-2) If vt = 0, CRt < ht , and f actorT C ≥ (T D + hk ), then the new violation will be vt = hk − CRt , and new capacity remaining CRt will be 0. Objective function will increase by hk − ρt vt . Total demand is updated by T D = T D + ht . Demand k is assigned to facility s and the previous quantities updated if the increase in objective function ht − ρt vt ≥ 0. If vt = 0, CRt < hk , and (f actorT C < (T D + hk ) or hk − ρt vt < 0), ignore demand k and check the next demand node in list Lt . (iii-3) If vt = 0, CRt ≥ hk , and f actorT C ≥ (T D + hk ), new violation will be vt = 0, new remaining capacity will be CRt = CRt −hk . Objective value will increase 71

by hk . Total demand is updated by T D = T D + hk . Demand k is assigned to facility t since the increase in objective function is positive. If initially vt = 0, CRt ≥ hk , and f actorT C < (T D + hk ), ignore demand k and check the next demand node in list Lt . (iii-4) Repeat (iii-1) to (iii-3) in reverse (backward) order of demand list Lt . (iii-5) Assign the demand in Lt to node t by using the better of forward and backward order. (iv) Among all interchanges, select the one with the greatest objective value. If there is no feasible interchange, stop the current step of neighborhood search for one-interchange. (v) (Required for one-interchange Tabu search, not required for a single 1-interchange move) If an interchange is finished, start a new iteration of 1-interchange from step (0) if stopping condition is not satisfied. If no improvement can be made for all pairs of selected site and unselected site in a number of iterations or the total number of iterations exceeds a certain level, terminate the 1-interchange Tabu search and use the current solution as the final solution. (b) Relaxation with penalty cost for violated capacity - Client shift: Client shift neighborhood exchanges demand from one opened facility to another when both facilities cover the demand and the demand is satisfied by one of these facilities. (0) Record all remaining capacity or capacity violation. Let the remaining capacity for facility at j be CRj and capacity violation be vj . Record the total demand for the current solution to be TD and total capacity to be TC.

72

(i) Check the demand already assigned in nonincreasing order of demand (or hk , nFk

where nFk is the number of facilities covering k, in our program, we use the

nonincreasing order of demand). If a demand node k can be covered by more than one selected facilities, we create a list of facilities Lk which can cover node k in nonincreasing order of remaining capacity of facilities. If the demand is covered by only one facility, then go to the next demand node. If all demand nodes are considered and there is no demand node covered by more than one of the selected facilities, stop. (ii) Suppose the demand k is being considered and currently covered by node s, we will explore the possibility to remove the demand k from node s and move it to another facility site. (ii-1) If initially vs = max{

Pn−1 k=2

hk ysk − cs , 0} ≥ hk , then add (ρs − 1)hk to the

objective function for penalty and demand for node k. Remove hk from the facility s, reset the violation vs = vs − hk , and remaining capacity CRs = 0. (ii-2) If initially 0 < vs < hk ,then add ρs vs − hk back to the objective function, remove hk from facility s, reset the remaining capacity CRs to hk − vs and violation vs to 0. (ii-3) If initially vs = 0, subtract hk from the objective function, remove hk from facility s, violation vs keeps at 0, and remaining capacity is reset by CRs = CRs + hk . (ii-4) Total capacity to T C does not change, and total demand to be T D = T D − hk for all situations in (ii-1) to (ii-3). (iii) Check the remaining facility sites Lk /s for demand k one by one. For each of these sites s’, check the impact on objective value by allocating the demand k to it if feasible (i.e. f actorT C ≥ (T D + hk )) and check if any improvement can be made.

73

(iii-1) If initially vs0 = max{

Pn−1 k=2

hk ys0 k − cs0 , 0} > 0 and f actorT C ≥ (T D + hk ),

then violation will increase by hk , demand covered will increase by hk , so the objective function will increase by (1 − ρs0 )hk . The new violation will be vs0 = vs0 + hk , the new remaining capacity CRs0 will be 0. Update the total demand to T D = T D + hk . If P vs0 = max{ n−1 k=2 hk ys0 k − cs0 , 0} > 0 and f actorT C < (T D + hk ), then do not assign demand k to location s’. (iii-2) If initially vs0 = 0, CRs0 < hk , and f actorT C ≥ (T D + hk ) then the new violation will be vs0 = hk − CRs0 , and new capacity remaining CRs0 will be 0. Objective function will increase by hk − ρvs0 . Update the total demand to T D = T D + hk . If vs0 = 0, CRs0 < hk , and f actorT C < (T D + hk ), do not assign demand k to location s’. (iii-3) If initially vs0 = 0, CRs0 ≥ hk , and f actorT C ≥ (T D + hk ). New violation will be vs0 = 0, new remaining capacity will be CRs0 = CRs0 −hk . Objective value will increase by hk . Update the total demand to T D = T D + hk . If vs0 = 0, CRs0 ≥ hk , and f actorT C < (T D + hk ), do not assign demand k to location s’. (iv) Check if any unassigned demand can be assigned to the remaining capacity of facility at s if the client shift is feasible in (iii). Let Ls be the list of unassigned demand which can be assigned to facility s other than node k, and arrange this list in nonincreasing order of demand (similar to step (ii) in (a) relaxation with penalty cost for violated capacity: 1-interchange). Consider the demand one by one and let the demand under consideration be demand k’. (iv-1) If vs > 0 and f actorT C ≥ (T D + hk0 ), then violation will increase by hk0 , demand covered will increase by hk0 , so the objective function will increase by (1 − ρs )hk0 . The new violation will be vs = vs + hk0 , the new remaining capacity 74

CRs will be 0. Total demand is updated by T D = T D + hk0 . Demand k’ is assigned to facility s and the previous quantities updated if increase in objective function (1 − ρs )hk0 ≥ 0. If vs > 0 and (f actorT C < (T D + hk0 )or(1 − ρs )hk0 < 0), ignore demand k’ and check the next demand node in list Ls . (iv-2) If vs = 0, CRs < hk0 , and f actorT C ≥ (T D + hk0 ), then the new violation will be vs = hk0 −CRs , and new capacity remaining CRs will be 0. Objective function will increase by hk0 − ρs vs . Total demand is updated by T D = T D + hk0 . Demand k’ is assigned to facility s and the previous quantities are updated if the increase in objective function hk0 − ρs vs ≥ 0. If vs = 0, CRs < hk0 , and (f actorT C < (T D + hk0 ) or hk0 − ρs vs < 0), ignore demand k’ and check the next demand node in list Ls . (iv-3) If vs = 0, CRs ≥ hk0 , and f actorT C ≥ (T D + hk0 ), new violation will be vs = 0, new remaining capacity will be CRs = CRs − hk0 . Objective value will increase by hk0 . Total demand is updated by T D = T D + hk0 . Demand k’ is assigned to facility s and the previous quantities are updated since the increase in objective function is positive. If initially vs = 0, CRs ≥ hk0 , and f actorT C < (T D + hk0 ), ignore demand k’ and check the next demand node in list Ls . (iv-4) Repeat (iv-1) to (iv-3) in reverse (backward) order of demand list Ls . (iv-5) Assign the demand in Ls to node s by using the better of forward and backward order. (v) For each demand node k covered by multiple facilities, select s0 ∈ Lk /s which causes greatest objective function in objective function. If no feasible s’ is found, then drop the current demand k and consider the next demand node covered by multiple facilities in Lk in (i). Client shift is made for the demand k which yields the greatest objective value. 75

(vi) (Required for client shift Tabu Search, not required for a single client shift move) When a client shift move is finished, restart client shift in step (i) and go through step (ii) to (v) if stopping condition is not satisfied. When no improvement can be made for all possible client shift node in a certain number of iterations or the total number of iteration exceeds a certain level, stop client shift Tabu search and use the current solution as the final solution. (c) Relaxation with penalty cost for violated capacity - demand swap and demand reallocation: I will try demand reallocation and demand swap respectively, and choose the better one for the final move. (c.1) Demand reallocation: For each of the selected facilities (in nonincreasing order of remaining capacity), release the currently assigned demand to this facility and reallocate the unsatisfied demand within coverage distance to this facility. (0) Record all remaining capacity to be CRj , and capacity violation to be vj for facility site j. Record the total demand for the current solution to be TD and total capacity to be TC. (i) Arrange the selected facilities with nonincreasing order of remaining capacity in a list, denote it as Lf . If there is a tie, order the facilities using nondecreasing order of violation. If there still is a tie, use natural index order of facilities. (ii) Remove one facility at a time from the list Lf . For each facility s in Lf , calculate the potential improved demand coverage by reallocating demand. (ii-1) Release all the demand currently assigned to facility s. When we release one demand d from facility s, we update the total demand by T D = T D − Dd (where Dd 76

is the demand quantity for demand d). Subtract the objective value by Dd . Total capacity remains unchanged. P (ii-2) If vs = max{ n−1 k=2 hk ysk − cs , 0} > 0 before releasing all demand covered by facility s, then add ρs vs back to the objective function. (ii-3)For all cases of vs , reset the remaining capacity of facility s to be cs (original capacity of facility s) and violation vs = 0. Note: step (ii-1)-(ii-3) will be adjusted if some of the assigned demand is Tabu to be removed, then the remaining capacity might be greater than 0. For a demand that is non-Tabu, remove the demand from s and update the corresponding quantities as in ”relaxation with penalty cost for violated capacity: client shift” in step (ii) of section (b). (iii) Demand reallocation to facility s. Initialize the remaining capacity of s by CRs = cs and violation by vs = 0 (adjustment will be done if any demand is Tabu to be removed in (ii)). From the unsatisfied demand which is within coverage distance of facility s, construct a list of demand Rs , list the demand in nonincreasing order of demand quantity (if there is a tie, use the natural index order). For each of the demand in the list Rs , do the following: (iii-1) If vs > 0 and f actorT C ≥ (T D + hk ), then violation will increase by hk , demand covered will increase by hk , so the objective function will increase by (1 − ρs )hk . The new violation will be vs = vs + hk , the new remaining capacity CRs will be 0. Total demand is updated by T D = T D + hk . Demand k is assigned to facility s and the previous quantities updated if increase in objective function (1 − ρs )hk ≥ 0. If vt > 0 and (f actorT C < (T D + hk ) or (1 − ρs )hk < 0), ignore demand k and check the next demand node in list Ls . 77

(iii-2) If vs = 0, CRs < hk , and f actorT C ≥ (T D + hk ), then the new violation will be vs = hk − CRs , and new capacity remaining CRs will be 0. Objective function will increase by hk − ρs vs . Total demand is updated by T D = T D + hk . Demand k is assigned to facility s and the previous quantities updated if increase in objective function hk − ρs vs ≥ 0. If vs = 0, CRs < hk , and (f actorT C < (T D + hk ) or hk − ρs vs < 0), ignore demand k and check the next demand node in list Ls . (iii-3) If vs = 0, CRs ≥ hk , and f actorT C ≥ (T D + hk ), new violation will be vs = 0, new remaining capacity will be CRs = CRs −hk . Objective value will increase by hk . Total demand is updated by T D = T D + hk . Demand k is assigned to facility s since the increase in objective function is positive. If initially vs = 0, CRs ≥ hk , and f actorT C < (T D + hk ), ignore demand k and check the next demand node in list Ls . (iii-4) Repeat (iii-1) to (iii-3) in reverse (backward) order of demand list Ls . (iii-5) Assign the demand in Ls to node s by using the better of forward and backward order. (iii-6) If all selected facilities have been considered go to step (iv), otherwise, check the next facility in the list Lf and repeat step (iii) until all the facility sites in Lf has been checked. (iv) Make the demand reallocation for the facility which yields the greatest objective value. (v) (Required for demand reallocation Tabu search, not required for a single demand reallocation move). When a demand reallocation move is finished, restart demand reallocation in step (i) and go through step (iv) if the stopping condition is not satisfied. When no improvement can be made for all selected facilities within a 78

certain number of iterations, or the total number of iterations exceeds a certain level, terminate the demand reallocation in the Tabu search and use the current solution as the final solution. (c.2) Demand swap: For each of selected facilities, swap a demand assigned to the facility with a demand not assigned to the facility but within the coverage distance. (0) Record remaining capacity to be CRj , and capacity violation to be vj (for facility j) for all facilities. Record the total demand for the current solution to be TD and total capacity to be TC. (i) Arrange the selected facilities with nonincreasing remaining capacity, denote it as Lf . If there is a tie, order the facilities using nonincreasing order of total demand within coverage distance. (ii) Remove one facility at a time from the list Lf . For each facility j, calculate the improved demand coverage by swapping each demand k satisfied by j and each demand k’ not satisfied but within coverage distance of j. Record all the swaps which yield improved objective function for this facility. For each facility, satisfied demand is in nondecreasing order of demand quantity, and unsatisfied demand is in nonincreasing order of demand quantity. P (ii-1) If initially vj = max{ n−1 k=2 hk yjk − cj , 0} > 0, hk0 ≥ hk , f actorT C ≥ T D + (hk0 − hk ), then new vj = vj + (hk0 − hk ), remaining capacity is 0. Total demand covered will increase by (hk0 − hk ). Objective value increase by (1 − ρj )(hk0 − hk ), and if this quantity is nonnegative, Record it as a potential swap. If vj > 0,hk0 ≥ hk and f actorT C < T D + (hk0 − hk ) then do not record this swap. Go to the next possible swap. 79

P (ii-2) If initially vj = max{ n−1 k=2 hk yjk − cj , 0} > 0, hk0 ≤ hk , vj ≥ (hk − hk0 ) then, we have vj = vj − (hk − hk0 ), remaining capacity is 0. Total demand covered will decrease by (hk − hk0 ). Objective value will decrease by (1 − ρj )(hk − hk0 ). If this quantity is nonpositive, Record it as a potential swap. If vj ≥ (hk − hk0 ) and hk0 ≤ hk and (1 − ρj )(hk − hk0 ) > 0, then do not record this swap. Go to the next possible swap. (ii-3) If initially vj = max{

Pn−1 k=2

hk yjk − cj , 0} > 0, hk0 ≤ hk , and vj < (hk − hk0 ),

total demand covered will decreases by (hk − hk0 ), new remaining capacity is (hk − hk0 ) − vj . Violation will decrease by vj and new violation will be 0. Objective value decrease by hk − hk0 − ρj vj . Record it as a potential swap. (ii-4) If initially vj = 0 (remaining capacity CRj = max{cj −

Pn−1 k=2

hk yjk , 0} ≥ 0)

and hk0 ≤ hk , total demand covered will decrease by (hk − hk0 ), new violation is still vj = 0, objective value decreases by (hk − hk0 ) and new remaining capacity is CRj = CRj + (hk − hk0 ). Do not record it as a potential swap. Go to the next possible swap. (ii-5) If initially vj = 0 (remaining capacity CRj = max{cj −

Pn−1 k=2

hk yjk , 0} ≥ 0),

hk0 > hk , CRj ≥ (hk0 − hk ), and f actorT C ≥ T D + (hk0 − hk ), total demand covered will increase by (hk0 − hk ), new violation is still vj = 0, objective value increases by (hk0 − hk ) and new remaining capacity is CRj = CRj − (hk0 − hk ). We will record it as a potential swap. If vj = 0, hk0 > hk , remaining capacity CRj ≥ (hk0 − hk ) and f actorT C < T D + (hk0 − hk ), do not record it as a potential swap. Go to the next possible swap. (ii-6) If initially vj = 0 (remaining capacity CRj = max{cj −

Pn−1 k=2

hk yjk , 0} ≥ 0),

hk0 > hk , CRj < (hk0 −hk ) and f actorT C ≥ T D+(hk0 −hk ), total demand covered will 80

increase by (hk0 −hk ), new violation vj = (hk0 −hk )−CRj , new remaining capacity is 0. Objective value increases by (hk0 −hk )−ρj ∗vj (vj is the new violation).We will record it as a potential swap. If vj = 0, hk0 > hk , remaining capacity 0 ≤ CRj < (hk0 −hk ),and f actorT C < T D + (hk0 − hk ) do not record it as a potential swap. Go to the next possible swap. (ii-7)Swap is made for the biggest improvement in objective function. If there is no swap with improved objective function, go to (iii). (iii) check the next demand in the list Lf and repeat step (ii) until all the facility sites in Lf has been checked. (iv) (Required for demand swap (reallocation) Tabu search local search, not required for a single demand exchange move). When a demand swap (reallocation) move is finished, restart demand swap (reallocation) in step (i) and go through step (iii). When no improvement can be made for all possible demand swap (reallocation) in a number of iterations or the total number of iterations exceeds a certain level, stop the demand exchange move. (d) Relaxation with penalty cost for violated capacity: Demand addition Similar to the heuristic demand addition, this neighborhood is used to improve the first 3 neighborhood moves. We will not give Tabu restriction for demand addition by penalty method. This is used in the Tabu search from time to time to improve the quality of the solution. (i) Arrange the selected facilities with nonincreasing remaining capacity. If there is a tie, order the facilities with nondecreasing order of capacity violation. Denote the ordered list of facilities as Lf .

81

(ii) Remove one facility at a time from the list Lf . For each facility j, create a list of unassigned demand within coverage distance of this facility j. Sort this demand list in nonincreasing demand value. Calculate the improved demand coverage by adding each demand in the list. Only addition which satisfy the constraint for total capacity and total demand and which does not reduce the objective value is accepted. If this condition is not satisfied, drop the demand and consider the next demand for the current facility. Repeat this for each facility in the list Lf and repeat step (ii).

2.3.3

Tabu Search Procedures

I will name the Tabu search using heuristic (penalty) demand allocation by Tabu search with heuristic (penalty) demand allocation (TSH, TSP). Compared with Mladenovic, Moreno and Moreno-Vega (2003), my algorithm extends to the capacitated case and makes some further improvement. The initialization method is new and not existing in Mladenovic (2003). I will compare the results from the 3 kinds of initial solutions (completely random generated initial solution, greedy generated initial solution, and greedy random adapted initial solution). Compared with the Tabu search for SSCPLP in Delmaire, D´ıaz and Fern´andez (1998), I use both penalty method and heuristic method in neighborhood move and comparison of the two methods is given. In addition, I will change both the facilities and the demand allocation in neighborhood move. This is important when the initial facility selection is not close to optimal. I also alternatively use 3 kinds of neighborhood move in an embedded Tabu search. Sub-Tabu search is used for each of the 3 neighborhoods. These sub-Tabu searches are used alternately in a certain order as inner loops of the

82

Generate an initial solution using one of the three initialization methods

Start the outer loop of the Tabu search using the current solution

Has the total number of iterations or the number of iterations without improvement in demand coverage reached the upper limit?

No One-interchange Tabu search (inner loop) starting from the current solution

Yes

Stop the outer loop

Output the best solution as the final solution

Client shift Tabu search (inner loop) starting from the current solution

Demand swap (reallocation) Tabu search (inner loop) starting from the current solution

Demand addition to explore the possibility to improve the current solution before next outer loop

Generate the set of non-inferior solutions of path and coverage combination

End this outer loop of the Tabu search

Figure 2.5: Embedded Tabu Search with Outer and Inner Loops Using 4 Neighborhood Structures 83

Start the one-interchange inner loop of the Tabu search using the current solution

Has the total number of iterations or the number of iterations without improvement in demand coverage reached the upper limit of the one-interchange Tabu search ?

Yes

Move to the clientshift inner loop of the Tabu Search

No

Intensification or diversification for this iteration? No For every pair of selected and unselected facilities, get the objective value for this one interchange if the move is not Tabu or the move yields objective value better than the best solution in history although it is Tabu (aspiration)

Stop the oneinterchange loop

Yes Use the interchange for the pair of facilities according to intensification or diversification criteria

Select the best interchange of facilities for the next move

Execute the interchange for the obtained pair of selected and unselected facilities

Update Tabu list

End this iteration for one-interchange Tabu search

Figure 2.6: 1-Interchange Tabu Search (One Inner Loop of the Embedded Tabu Search) 84

overall Tabu search, the overall Tabu search loops are used for the outer cycle of these 3 neighborhoods. Figure 2.5 gives the flow chart of the embedded Tabu search with inner loops and outer loops. Figure 2.6 gives the flow chart of the one-interchange Tabu search (one inner loop in the embedded Tabu search). Detailed explanation of the Tabu search is given as follows. I. Neighborhoods: I will use the following 3 kinds of neighborhoods in the tabu search. • 1-interchange neighborhood • Client-shift neighborhood • Demand-swap (reallocation) Either heuristic method or relaxation method for demand allocation can be used to calculate the objective functions when exploring the solutions in these neighborhoods. Since the 3 kinds of neighborhood change the solution in different scales, one way is to use a fixed ratio of γ1 : γ2 : γ3 for the 3 neighborhoods. This means, I do the 1-interchange for γ1 iterations, do client-shift for γ2 iterations, and do demandreallocation for γ3 iterations if the stopping condition is not satisfied. After a cycle, demand-addition is done. This repeats until the stopping condition for the outer cycle is satisfied. The alternation of different neighborhood move is new in the literature. In the computation, I use the embedded Tabu search with inner loop Tabu searches for different neighborhoods. Within each outer loop, I use the order of 1-interchange,

85

client-shift and demand-reallocation (demand-addition in the end of a cycle) for embedded Tabu searches. If one of the 3 neighborhood move stops to improve the solution in a certain number of iterations (ItMaxNonImprove1,ItMaxNonImprove2,ItMaxNonImprove3 for these 3 neighborhood respectively), or the total number of iterations reaches an upper limit (ItMax1, ItMax2 and ItMax3 for these 3 neighborhood respectively), I will go to the next neighborhood move. The Embedded Tabu search stops when the solution is not improved within a fixed number of cycles (ItMaxNonImprove) of neighborhood move, or the total number of outer cycles reaches an upper limit (ItMax ). II. Tabu list: I keep 3 tabu lists (T L1 , T L2 , T L3 ) corresponding to the above 3 neighborhoods respectively. Tabu condition is added to the previous neighborhood moves. I use random tabu time for the tabu status. • For 1-interchange, I use a 2 dimensional array T T1 (NF*NF dimension, NF is the number of potential facility sites) to record the tabu time in which the exchange cannot go backward, i.e., the backward exchange is tabu. For example, T L1 [2][4] = 5 means when we remove facility from site 4 and exchange it for site 2, we can not remove facility from site 2 and exchange it for site 4 in the next 5 1-interchange iterations. The tabu time is randomly generated from a 1 1 ]. , Tmax range in the interval [Tmin

• For client-shift, I use a 2 dimensional array T T2 (NF*NL dimension, NF is the number of potential facility sites, NL is the number of demand sites) to record the tabu time in which the client shift cannot go backward. For example, 86

T L1 [2][4] = 5 means when we remove demand 4 from facility 2, we cannot add demand 4 to facility 2 by client shift within 5 swap moves. The tabu time is 2 2 randomly generated from a range in the interval [Tmin , Tmax ].

• For demand swap (reallocation), I use a 2-dimensional array T T3 (NF*NL dimension, NF is the number of potential facility sites, NL is the number of demand sites) to record the tabu time in which the demand reallocation cannot go backward. For example, T L3 [2][4] = 5 means when we add demand 4 to facility 2, we can not remove demand 4 from facility 2 by demand reallocation within 5 moves. The tabu time is randomly generated from a range in the in3 3 terval [Tmin , Tmax ]. Tabu list is updated after each move (the better of demand-

reallocation and demand swap will be used). III. Aspiration: If the new solution is better than the best solution found, then make the move even if it is on one of the Tabu lists. This aspiration level does not exist in Mladenovic (2003). I will do combined aspiration for the tabu move of demand reallocation. I will make the joint aspiration for the assigned demand for a given selected facility. This means if overriding the tabu status for all the assigned demand for a facility leads to an objective value that is better than the current best solution, I will make the move in existence of Tabu status for one or more assigned demand node. This means, I drop all the assigned demand for the current facility, and reassign the demand to this facility. If this is not true, I will keep the assigned demand node which are Tabu, and release all other assigned demand before reassigning the demand to this facility. This is reasonable, since if overriding all tabu status for a facility does not yield a good 87

solution, there is no need to override any tabu status for one or multiple demand nodes. This idea of joint aspiration is also new. IV. Intensification: I will bring in solution attribute which contribute to a good solution to drive our search to more promising areas. This is done only for 1-interchange neighborhood. By the previous solutions found so far, record the frequency of each of the facility to be introduced to the selected facility sites. Introduce the closed facility which has the highest frequency (frequency count does not include intensification and diversification iterations) to the selected facilities in the 1-interchange (If there are ties for the frequency values, randomly pick one which has the largest frequency value). Remove the facility that yields the greatest objective value in the 1-interchange. This is done in every 20 1-exchanges. V. Diversification: I will drive our search to some unvisited area by diversification. I will do diversification only for 1-interchange neighborhood. There are 3 ways to do this. • I can bring in the facility that has been out for the longest time (frequency count does not include intensification and diversification iterations). I will use this way to diversify the solution in my computation. • I can also bring in the facility with the smallest frequency (not including intensification and diversification iterations) in the previous solutions if it is not in the current solution. • I can also do this by introducing a penalty function k ∗ F req(v) to the objective function for the facility site v just added to the selected facility site. Freq(v) 88

is the frequency of node v which has been added during the past 1-exchanges. k is a coefficient assigned to this penalty term. So if a facility is added too frequently, the penalty term will drive the search to the facilities not frequently added. This will diversify the searching area. Rolland, Schilling, and Current (1996) use a penalty method to diversify the searching area. • Perturb capacity to get the best demand assignment as in Delmaire (1998). Delmaire (1998) increases facility capacity with certain increment periodically to explore to more area for demand assignment. The first three methods diversify the search area in terms of facility, while the last method diversifies the search area in terms of demand assignment. The facility with the smallest frequency might not yield a good solution although diversifying the search area. I will not use penalty function for the violated capacity. More computation effort is needed to find the best penalty term coefficient for diversification when I already have a penalty term in the penalty method. I will use the first method (add the facility that has been out for the longest time) in our computation. Diversification is done in every 10 exchanges (this parameter is similar to Mladenovic (2003)). I use different starting time for intensification and diversification so intensification and diversification will not happen at the same iteration in general. In very rare cases, intensification and diversification might be required in the same iteration. I will do neither in such cases.

89

VI. Move decision: For all solutions in the neighborhood that is non-tabu, take the one with the best objective value. If the move will result in a solution that is better than the best solution we will also make the move even though the move is tabu. VII. Termination: Terminate the overall Tabu search if the objective value of the last ItMaxNonImprove outer cycles does not make any improvement or the total number of iterations of outer cycles exceeds a specified level (ItMax ). I further require the inner 1-interchange, client-shift and demand swap (reallocation) Tabu search will terminate if the last ItM axN onImprovei (i = 1, 2, 3 for the three neighborhood respectively) inner loops does not make any improvement or the total number of iterations of inner loops exceeds a specified level (ItM axi , i = 1, 2, 3). VIII. Overall algorithm for Tabu search: Step 1: Generate an initial solution using completely random, greedy, or greedy random adapted heuristic. Step 2: Outer loop Start outer loop (cycle): (2-1) One-interchange Tabu Search loop (2-2) Client-shift Tabu Search loop (2-3) Demand swap (reallocation) Tabu search loop (2-4) Demand-addition to improve the solution before next outer loop

90

End outer loop Terminate the outer loop if the objective value of the last ItMaxNonImprove outer cycles does not make any improvement or the total number of iterations of outer cycles exceeds a specified level (ItMax ). Inner loop in (2-1) to (2-3): Start inner loop (i) From the current solution, search in the current neighborhood structure. Select the best move in this neighborhood which is not Tabu. Tabu status of a move can be overridden if the resulting move yields a solution which is better than the best recorded solution in history. (ii) Intensification is done for every 20 iterations, and diversification is done for every 10 iterations. This is only done for one-interchange neighborhood structure. (iii) End inner loop if the last ItM axN onImprovei (i = 1, 2, 3 for the three neighborhood respectively) inner loops does not make any improvement or the total number of iterations of inner loops exceeds a specified level (ItM axi , i = 1, 2, 3). IX. Construct a feasible solution for the Tabu search using penalty method (TSP) in the end: After the tabu search is terminated, I need to construct a feasible solution in the end if penalty method of demand allocation is used. First get a feasible solution, then use 1-interchange, client-shift and demand swap (reallocation) to improve the solution. Only the moves that does not yield infeasibility (vj0 s > 0, capacity for facility at j is violated) will be considered. Alternate between 1-interchange, client-shift and demand swap (reallocation) until no improvement could be made. The detailed steps are: (0)First for each of the facility which has positive violation (vj > 0,total demand assigned greater than capacity, facilities ordered in natural index order), drop the 91

demand assigned in nondecreasing order of the demand quantity until the violation reaches 0. If there is a tie in demand quantity, drop the demand in nonincreasing order of the distance between the demand and facility. If there is still a tie, use the natural index order of the demand. (i) Do one-interchange local search by heuristic method. Stop when no further improvement could be made for one-interchange or the total number of iterations reaches a certain level. (ii) Do client shift local search by heuristic method. Stop when no further improvement could be made for client shift or the total number of iterations reaches a certain level. (iii) Do the demand swap (reallocation) local search. Stop when no further improvement could be made for demand swap (reallocation) or the total number of iterations reaches a certain level. (iv) Do demand addition. (v) Repeat (i)-(iv) until no improvement could be made for a certain number of outer cycles or the total number of outer cycles exceeds a certain level. Note: in step (i)-(iii), the move is different from that of the tabu search. There is no Tabu restriction. Move to the best neighborhood if the best neighborhood improves the current solution. This is similar to the typical local search. I will restrict the maximum number of iterations to be below that of the Tabu search.

2.3.4

Computational Complexity of Tabu Search:

To generate initial solutions, I need O(n) time for completely random generated solution, and O(nlogn) time for greedy generated solution and greedy random

92

adapted solution. One-interchange move needs O(n2 logn) computation time, clientshift needs O(n2 logn) computation time, demand-swap (or reallocation) needs O(n2 ) (or O(nlogn)) computation time, and demand addition needs O(nlogn) computation time. This holds for both heuristic and penalty demand assignment. In both the intensification and diversification, the one interchange will take O(nlogn) computation time. The computational complexity for the overall embedded Tabu search algorithm is O(n2 logn). For the Tabu search with penalty method, all steps have the same computational complexity. The only difference is the final step to create feasible solution, which does not have a higher computational complexity. So the computation complexity is also O(n2 logn).

2.4

Simulated Annealing (SA)

I use the basic simulated annealing and compare my algorithm with Murray and Church (1996). The new algorithm extends to capacitated case and I use embedded simulated annealing with temperature vibration in different outer cycles. I also make some modification of basic simulated annealing.

2.4.1

Simulated Annealing Procedure

The detailed explanation of the algorithm is as follows. I. Initialization: • Initial solution: Use one of the three methods (completely random, greedy or greedy adapted solution) to build an initial solution. Set it to be the current

93

solution and denote the objective function to be Oold . This extends Murray and Church (1996) to capacitated CMLP. • Initial temperature: Set initial temp T0 , select a temperature reduction function α(t) = µt.(0 < µ < 1). These values can be obtained by pilot experiment. II. New solution generation: Iteratively use the three neighborhoods in the sequence of 1-interchange, client shift, demand swap (reallocation). 1-interchange: Randomly choose a selected facility and an unselected facility. Exchange the two facilities and update the solution as in the 1-interchange algorithm in Tabu search. Let the new objective value be Onew . This extends to capacitated case. Client-shift: Obtain the list of demand which is satisfied by more than one facility. Randomly select one demand and shift it to the best other selected locations if possible. If the move is not possible, keep the current solution and go to the next iteration of client-shift. Demand-swap (reallocation): Obtain the list of the selected facilities. Randomly select one facility, and try the demand swap (reallocation). III. Solution update: If the objective value of the new solution is greater than or equal to the old solution, carry out the move. Reset count = 0. If not, check the count. If the count exceeds a specified limit LIMIT, the temperature T, is cooled to µT and count is reset to zero. If count is less than LIMIT, the new solution objective value is accepted by probability e[−(Oold −Onew )/T ] . This is done by generating a random number in uniform 94

distribution in [0,1], if this number is smaller than the above probability, accept the new solution. Otherwise, reject. IV. Embedded simulated annealing: Similarly to Tabu search, I use embedded simulated annealing using outer loops and inner loops of different neighborhood structure. Within each outer loop, I do simulated annealing in the order of 1-interchange, client-shift and demand-swap (reallocation). Then I do demand-addition in the end of an outer loop to check for solution improvement potential. V. Temperature vibration: Once an new inner loop neighborhood simulated annealing starts after the previous neighborhood (either within a cycle or after the previous cycle), I increase the temperature and begin to search good solutions from there. The nonmonotonic cooling structure has been used by Osman and Christofides (1994). They reset the temperature to a higher level to escape from a cycle without accepting any change. I reset the temperature to a higher level due to the change of neighborhood structure. This also helps to explore a larger neighborhood area. With the new neighborhood structure, it is possible to move to better solutions at a higher temperature than the stopping temperature of the previous neighborhood. This can improve the solution by the interaction of different neighborhoods. It gives opportunity to find better neighborhood solution for different neighborhood structures. Initially, I set the new temperature to T0 for all neighborhoods. In the second cycle, we calculate the new temperature by Tir = µi T0 (i=1,2,3 for the 3 neighborhood respectively, 0 < µi < 1). In later cycles, I will calculate the new temperature by Tir = r µi Ti−1 . Similar to Osman and Christofides (1994), I will set the new temperature

95

by Tir if it is greater than the previous stopping temperature; otherwise, I set the temperature to the temperature at which the best solution has been found in the current neighborhood. VI. Feature of Tabu search: For small data sets, neighborhood is small, so randomly generated solution can visit recently visited solution when the objective value of them are equal to each other. We add a Tabu time for each move made (this is done only for one-interchange and client-shift). The Tabu time is set to be a constant value (for example 3). This is used only for the case in which the newly generate solution has an equal objective value as the old solution. VII. Termination: For the 3 neighborhood moves, if the solution improvement is below 0.01% in a certain number of iterations (ItMaxNonImprove1,ItMaxNonImprove2,ItMaxNonImprove3 for these 3 neighborhood respectively), or the total number of iterations reaches an upper limit (ItMax1, ItMax2 and ItMax3 for these 3 neighborhood respectively), or the temperature fall below a lower limit (T end ), I will go to the next neighborhood move. This improves the termination schedule from Murray and Church (1996) which uses pre-specified temperature tolerance level. This improves the possibility to find good value solutions. The overall algorithm stops when solution improvement is below 0.01% within a fixed number of outer loops (ItMaxNonImprove) of neighborhood move, or the total number of outer loops reaches an upper limit (ItMax ).

96

VIII. Overall algorithm: Step 1: Generate an initial solution using completely random, greedy, or greedy random adapted heuristic. Initialize the temperature to T0 . Step 2: Outer loop Start outer loop: Reset temperature by the rule in step (c) above at the beginning of (2-1) to (2-3) below. (2-1) One-interchange simulated annealing loop (2-2) Client-shift simulated annealing loop (2-3) Demand-swap (reallocation) simulated annealing loop (2-4) Demand-addition to improve the solution before the next outer loop. End outer loop if solution improvement is below 0.01% in the last ItMaxNonImprove outer loops, or the total number of iterations of outer loop exceeds the specified level (ItMax ). Inner loop in (2-1) to (2-3): Start inner loop (i) Reset temperature by the method in step (c) above. (ii) Randomly select a solution in the current neighborhood for the current neighborhood structure. Increase count by one. (iii)If the new solution in step (ii) is better than the old solution, update the current solution by the new solution and record the best solutions found so far. Record the temperature of the best solution. Reset count to 0. If the new solution is not better, check the count. If the count is below LIMIT, accept the new solution with probability e[−(Oold −Onew )/T ] , and update the current solution, best solution and temperature of the best solution. If the count reaches LIMIT, then update the temperature by µT , and reset count to 0. 97

(iv) End inner loop if solution improvement is below 0.01% in the last ItM axN onImprovei inner loops, or the total number of iterations of inner loops exceeds the specified level (ItM axi ), or temperature fall below a specified value (Tlow ). IX. Contribution: To my knowledge, simulated annealing has not been applied to the capacitated maximum covering problem in the literature. I design the embedded simulated annealing algorithm for three neighborhood structures. This algorithm is new in simulated annealing. I also use the temperature vibration for different neighborhood structures to improve solutions by neighborhood interaction. Tabu feature is also introduced.

2.4.2

Computational Complexity of Simulated Annealing

To generate initial solutions, I need O(n) time for completely random generated solution, and O(nlogn) time for greedy generated solution and greedy random adapted solution. One-interchange move needs O(nlogn) computation time, client-shift needs O(nlogn) computation time, demand-swap (or reallocation) needs O(n2 )(or O(nlogn)) computation time, and demand addition needs O(nlogn) computation time. The embedded simulated annealing with heuristic demand allocation has a computational complexity of O(nlogn).

2.5

Summary of the Four Algorithms for the Capacitated Maximum Covering Problem

In this chapter, I introduce four algorithms to solve the capacitated maximum covering problem, namely lagrangian relaxation (LR), Tabu search with heuristic 98

demand allocation (TSH), Tabu search with penalty demand allocation (TSP) and simulated annealing (SA). The lagrangian relaxation method is different from the literature in the problem solved and in the detailed steps. Tabu search and simulated annealing are the first try of meta-heuristics for capacitated maximum covering problem. I design 3 initial solution generation methods and 2 demand allocation methods. I also design the embedded meta-heuristics for different neighborhood structures. These four algorithms are compared as subproblems in the shortest path - capacitated maximum covering problem using networks in the literature in section 3.3. I will discuss more about the computation difference among LR, TSH, TSP and SA in later chapters.

99

Chapter 3

Shortest Path - Capacitated Maximum Covering Problem (SP-CMCLP)

The two objectives are to minimize the total distance of the path from a predetermined initial node to a predetermined terminal node and maximize the total demand coverage by the facilities located in the path. I will provide a decomposition method to solve the shortest path-capacitated maximum covering (SP-CMCLP). This decomposition method will use the algorithms in Chapter 2 as sub-algorithms.

3.1

Model and Solution Methods

3.1.1

Variables and Parameters

I. Variables:

½ xij =

1 if the arc is in the major path 0 otherwise

yjk = the fraction of demand at location k served by facility in location j,or ½ 1 if demand at location k is covered yjk = 0 otherwise, no partial coverage is allowed ½ 1 if there is a facility with the given capacity in the path zj = 0 otherwise

100

II. Parameters: 1. n is the number of nodes in the network. 2. dij is the distance from node i to j. dij = ∞ if there is no arc between node i and j. 3. Mi = {j|(i, j) is an existing arc}. 4. Nj = {i|(i, j) is an existing arc}. 5. S is the service distance. The demand beyond this distance can not be covered. 6. ajk = 1 if demand at demand location k is within distance S of a facility at j. akj = 0 otherwise. 7. hk is the demand at demand location k. 8. cj is the capacity of a facility at location j 9. p is the number of facilities affordable is p.

3.1.2

Model

Assume that the budget can only afford p facilities in the path. I will minimize the path length and maximize total demand coverage with p capacitated facilities.

101

SP-CMCLP Problem

M aximize Π = {Π1 = − St

n−1 X X

dij xij , Π2 =

i=1 j∈Mi

X

n−1 X n−1 X

ajk hk yjk }

(3.1)

j=2 k=2

x1j = 1

(3.2)

xin = 1

(3.3)

j∈M1

X

i∈Nn

X

X

xij −

i∈Nj

XX

xjk = 0 ∀j, j 6= 1, n

(3.4)

k∈Mj

xij ≤ |Q| − 1 ∀Q ∈ V such that |Q| ≥ 2

(3.5)

i∈Q j∈Q n−1 X

zj = p

j=2

zj −

X

(3.6)

xij ≤ 0 ∀j = 2, ..., n − 1

(3.7)

i∈Nj n−1 X

ajk yjk ≤ 1 ∀k = 2, ..., n − 1

(3.8)

hk yjk ≤ cj zj ∀j = 2, ..., n − 1

(3.9)

j=2 n−1 X k=2

xij = (0, 1) ∀ (i, j)

(3.10)

yjk = (0, 1) ∀ j, k = 2, ..., n − 1

(3.11)

zj = (0, 1) ∀ j = 2, ..., n − 1

(3.12)

There are two objective functions in (3.1). The first one Π1 is the negative of the path length, and the second one Π2 is the total demand coverage. Constraint (3.2), (3.3), (3.4), (3.5) and (3.10) defines the path from node 1 to node n. Constraint sets (3.6), (3.7) and (3.12) require p facilities to be built at nodes on the path. Constraint set (3.8) limits the demand at node k to be covered by at most 1 facility. 102

Constraint set (3.9) limits the total capacity of the facility in location j. Constraint set (3.11) defines the coverage variables. If demand can be partially satisfied, constraint set (3.11) can be changed to 0 ≤ yjk ≤ 1 ∀ j, k = 2, ..., n.

3.1.3

Solution Methods

The shortest path - capacitated maximum covering problem (SP-CMCLP) is a hard problem to solve. The sub-problem of capacitated maximum covering problem (CMCLP) itself is hard to solve, as it belong to the class of NP-Hard problems. I propose 3 kinds of methods to solve the problem as follow: I. Path-capacitated max covering decomposition: Solve k-shortest path problem first, the k-shortest path problem find k paths with non-decreasing order of length in an underlying network. Then solve a capacitated maximum covering problem with the restriction of the facility sites to be on the paths found in the first step. This generates k solutions of path length and demand coverage combination. Non-inferior solutions will be selected in the end. II. Capacitated max covering-path decomposition: Solve capacitated maximum covering problem first, then for the obtained solution, build a path as short as possible which goes through the facility sites. Algorithms need to be designed to solve a restricted shortest path problem. III. Weighted average: Assign different weights to the two objective values. Solve the problem by using some algorithms such as lagrangian relaxation method.

103

Although there are different possible ways to solve the problem, I will focus on the path-capacitated max covering decomposition method.

3.2

Decomposition Method

I decompose the problem into a k-shortest path problem (kSP) and a capacitated maximum covering problem (CMCP). The kSP problem is solved by a path deletion algorithm. The capacitated maximum covering problem is solved by various heuristics including Lagrangian relaxation, Tabu search and simulated annealing. These heuristics are compared with each other in the effectiveness to solve the capacitated maximum covering sub-problem and the overall shortest path - capacitated maximum covering problem (SP-CMCLP). To the knowledge of the author, the Tabu search and Simulated Annealing are the first meta-heuristics developed for the capacitated maximum covering problem. And the decomposition of SP-CMCLP to path and coverage problem has not been studied before.

3.2.1

The Decomposition

The detailed steps for the decomposition follow. I. k-shortest path problem: Solve k-shortest path problem first. I will use the algorithm of Azevedo, Costa, Madeira and Martins (1993) and Azevedo, Madeira, Costa, Martins and Pires (1994) to solve a k-shortest path problem. This k-shortest path (kSP) algorithm has been used by Santos, Coutinho-Rodrigues and Current (2007) and has been proved to be very efficient. Their assumption is that the network does not have non-positive cycles. This is a very reasonable assumption for most real world problems. Integer distance

104

is assumed also. Typically the distances are moderately large numbers, and it does not change much of the total path distance and coverage if I round up the non-integer numbers. This makes the solution a little more conservative in both path distance and coverage distance. k paths with non-decreasing order of path lengths will be generated. The locations in the path will be used as the potential facility locations for the covering problem. In the first stage, the path problem is: SP-CMCLP-Path:

M aximize Π1 = −

n−1 X X

dij xij

(3.13)

i=1 j∈Mi

St

X

x1j = 1

(3.14)

xin = 1

(3.15)

j∈M1

X

i∈Nn

X

xij −

i∈Nj

X

xjk = 0 ∀j, j 6= 1, n

(3.16)

k∈Mj

xij = (0, 1) ∀ (i, j) ∈ A

(3.17)

II. Capacitated maximum covering problem: For each generated shortest path, a capacitated maximum covering problem is solved using locations on the path as the potential facility locations. Denote the set of P to be the nodes (i = 2, ..., n − 1) in the path (not including the initial and terminal nodes). Then I will restrict our potential facility sites to be set P. For each of the k-shortest path, solve the following capacitated maximum covering problem. 105

SP-CMCLP-Covering:

M aximize Π2 =

n−1 XX

ajk hk yjk

(3.18)

j∈P k=2

St

X

zj = p

(3.19)

yjk ≤ 1 ∀k = 2, ..., n − 1

(3.20)

hk yjk ≤ cj zj ∀j ∈ P.

(3.21)

j∈P

X j∈P n−1 X k=2

yjk = (0, 1) ∀ j, k = 2, ..., n − 1

(3.22)

zj = (0, 1) ∀ j = 2, ..., n − 1.

(3.23)

The solution algorithms for the capacitated maximum covering problem are those designed in Chapter 2. They are: 1. Lagrangian relaxation (LR) using the improved heuristic bound: Relax

Pn−1 j=2

yjk =

1 (constraint 3.20). This is similar to the method in Pirkul and Schilling (1991). The problem is decomposed to (n − 1) subproblems for each potential facility site. Each of these subproblems is reduced to a single constraint knapsack problem. Sites which give the p top knapsack value are selected as facility sites. Then demand allocations are assigned. The model is different theirs and new feasible solution generation method is used. 2. Tabu search with heuristics demand allocation (TSH) 3. Tabu search with penalty demand allocation (TSP) 4. Simulated annealing (SA) 106

3.2.2

Shortest Path - Capacitate Maximum Covering Problem - Overall Algorithm

New paths are generated and a capacitated maximum covering problem is solved for each path until at least one of the following stopping conditions is satisfied. 1. The percentage of demand satisfied by the capacitated maximum covering problem over total demand exceeds an upper limit (for example 90%). 2. The number of paths generated besides the shortest path exceeds the prespecified upper limit (kSPItMax). 3. The number of total nodes and arcs exceeds their upper limit respectively in the k-shortest path algorithm. 4. The number of paths with cycles generated consecutively exceeds an upper limit (for example 1000). This is an indicator that most of the possible paths has been explored. The detailed steps for this path-covering decomposition method is as follows. The flowchart for the algorithm is in figure 3.1. STEP 1: Generate a shortest path; use the facility sites in the path (not including initial node and terminal node) as the potential facility location site. Set ST OP = 0. STEP 2: Use the Lagrangian relaxation (LR), or Tabu Search (TSH, TSP), or simulated annealing (SA) to solve the capacitated maximum covering problem. Record the total coverage. If the percentage of demand covered exceeds a pre-specified upper limit, set ST OP = 1. Stop the overall algorithm. STEP 3: Paths generation. 107

Generate a path

Find the potential facility location sites based on the path

Solve the capacitated maximum covering problem (CMCLP)

Does the total coverage exceeds a percentage of the total demand

Yes Stop

No

Does the number of paths generated exceeds the upper limit, or are the other stopping conditions of kSP algorithm satisfied?

Yes Stop

No

Generate the set of non-inferior solutions of path and coverage combination

Figure 3.1: Algorithm for the Shortest Path - Capacitated Maximum Covering Problem (SP-CMCLP) 108

STEP 3.1: If the number of path generated exceed the upper limit kSPItMax. set ST OP = 1. Stop the overall algorithm. STEP 3.2: Try to generate next path in kSP algorithm without cycle. If the path generated has cycle, drop the path and regenerate until a path without cycle is obtained. If during the process, the total number of nodes or number of arcs exceed the pre-specified limit, set ST OP = 1. Stop the overall algorithm. If path without cycle cannot be generated within 1000 path generated, set ST OP = 1. Stop the overall algorithm. STEP 3.3: If path without cycle has been generated, use the facility sites in the path (not including initial node and terminal node) as the potential facility location site. Repeat (STEP 2-3).

3.2.3

Shortest Path - Maximum Covering: Selection of the Final Solution

Based on the path length and objective value of the corresponding capacitated maximum covering problem for all the paths generated, scatter plots can be created with horizontal axis representing the path length and vertical axis representing the total demand covered. The coverage does not necessarily increase as the path length increases. A frontier in the upper left corner of the plot can be found as an approximate tradeoff curve. Final solution can be selected from this set of solutions. This set consist the non-inferior solutions (NonInf). Typically as the path length increases, the demand coverage increases in the tradeoff curve, but the incremental amount is decreasing. And after a certain point, as the path increases, demand coverage will increase very slowly. At a certain point, coverage stops increasing as path length increases. There is no point of increasing 109

the path length for tiny amount of potential demand coverage increase. Then this turning point can be a good final solution for this problem. I will report the path - coverage combination in which the best demand coverage is obtained among all paths generated. However decision makers can also select any reasonable combination of the path length and coverage in the non-inferior solution set as the final solution.

3.2.4

Computational Complexity of SP-CMCLP

The computational complexity for the kSP algorithm is O(km). k is the number of paths generated and it is a constant. m is the number of arcs in the network. (Azevedo, et al., 1993, 1994). A single lagrangian or Tabu search has computational complexity of O(n2 logn). A single simulated annealing has computational complexity of O(nlogn). The computational complexity for the overall kSP-CMCLP is O(k(m+n2 logn)) if lagrangian relaxation or Tabu search is used, and is O(k(m+nlogn)) if simulated annealing is used. m is at most O(n2 ). Eliminating the constant k. The computational complexity for the overall kSPCMCLP is O(n2 logn) if lagrangian relaxation or Tabu search is used, and is O(n2 ) if simulated annealing is used.

3.3

Computation

I test the four new algorithms by some selected data sets in the literature. Some data sets have complete network in which an arc exists between any pair of node, while other data sets have incomplete (partial) network in which only part of the arcs

110

in the complete network exist. Coordinates of nodes exist for some data sets, but only arc distances exist for other data sets. I will divide different cases by path-coverage structure. Paths can be generated in complete networks or partial networks. Demand can be covered by facilities by existing arcs, Euclidean distances if node coordinates exist, or by sub-paths on a tree structure. I will first introduce these path-coverage structures and comparison standards used in computation.

3.3.1

Path Selection - Demand Coverage Structure and Comparison Standards

I. Path selection structure: To illustrate some properties of solution structures, I will generate some partial paths from existing data sets. Paths can be selected from complete networks or partial networks. We name these two cases as follows: 1. Complete network path selection (C) 2. Partial network path selection (P) II. Coverage structure: Traditionally a demand is covered if the Euclidean distance is within a service distance. But in many cases, only partial network exists and the coordinates of nodes are unknown. I will use 3 kinds of coverage structures. These structures are used based on the available information of the networks. The detailed explanation is as follows.

111

1. Euclidean distance coverage (E): This is the traditional coverage structure where Euclidean distance can be obtained for each pair of nodes. A demand can be covered if it is within Euclidean distance of a facility site. 2. Arc coverage (A): When Euclidean distance cannot be obtained, a demand can still be covered if there is an arc in the network between the demand and a facility site. This will be used if a partial network with only arc distances is given. 3. Tree coverage structure (TREE): Sometimes Euclidean distances cannot be obtained, but arc coverage yields poor demand coverage amount. I introduce a new coverage structure named tree coverage structure. A demand can be covered if a path on a tree network to a facility from this demand location has a distance smaller than the service distance. In another word, if the total distance of the arcs in the path is smaller than the service distance, the demand can be covered. This coverage structure will be studied in Chapter 4. III. Path - coverage structure: To simplify the notation, I will use the combination of the path and coverage structure in computation. 1. PA: Path is constructed on partial network, and coverage is by arc coverage. 2. CE: Both path and coverage problem use Euclidean distance on the complete network. 3. PE: Path is constructed on a partial network and coverage problem is solved by Euclidean distance of a complete network. 112

3. PTREE: Path is constructed on a partial network and coverage is by a path on a tree to facility site. IV. Comparison Standards: The comparisons of the different algorithms are based on the following factors: 1. Size of network (n). 2. Network density (δ). This quantity is obtained by dividing the number of existing arcs by the number of arcs in the complete network. 3. Number of facilities to locate (p). 4. Number of facilities per demand node (pave ). 5. Capacity ratio (Cratio ). This is calculated by dividing the total capacity available from the p facilities by the total demand in the network. If the capacities of facilities vary by locations, the total capacity cannot be obtained before I know where to locate the facilities. In this case, I take the summation of the capacity of all potential facility sites and divide it by the number of potential facility sites, and then multiply by the number of facilities to locate (p). In this case, the total capacity will be based on average capacities of difference potential facility sites. Intuitively as the capacity ratio increases, more demand will be covered. It will make the covering problem easier to be solved. d ). This is calculated by taking 6. Coverage distance demand ratio (CDratio

the coverage distance over the average distance between all pairs of nodes in the network. This is the relative coverage distance compared with the average

113

distance among demand. If this ratio is large, then there will be more chance of covering more demand. Factors used for comparison depends on the structure of the networks. Note: the kSP algorithm I use deals with the directed arcs. The algorithm easily adjusts to the network with undirected arcs. This is done by using two arcs with two different directions between any pair of nodes of the network if there is an undirected arc connecting the two nodes. If the underlying network is directed, I will count the demand to be covered by a certain facility location irrespective of the arc direction if there is an existing arc between the demand node and the facility location. Our algorithm can be easily adjusted to accommodate the case of one-way arcs. So I can use the path algorithm and capacitate maximum covering algorithm to solve the problems with network of both directed and undirected arcs. In our computation tests, I use network with undirected arcs.

3.3.2

Selected Networks from Literature:

I only picked the networks for which each node can be both demand node and potential facility node, although the new algorithms designed can be applied to many other cases of capacitated maximum covering problem. In my shortest pathcapacitated maximum covering (SP-CMCLP) algorithm, the potential facility locations are decided only after the path has been found, and it is hard to predict the potential facility nodes ahead of time. All nodes are possible to be potential facility nodes. So I will focus on the networks for which all nodes have demand and can be potential facility sites.

114

Figure 3.2: The 15-Node Network in Current, ReVelle and Cohon (1984, 1985)

Typically the network data sets in the literature include the distance matrix of a network (or node coordinates) and the demand quantity. If the problem does not have capacity limit for the potential facility sites, I will assign capacity limits accordingly. Some of the data sets correspond to complete network in which there is an arc between each pair of nodes. The other data sets correspond to partial networks in which only part of the arcs in the complete network exist. Most of the real world problems have partial networks. I will also introduce a way to generate partial networks out of complete networks if no partial network exists. In this section, I will introduce the networks selected from the literature. I will only provide the data information relevant to our computation experiment in the context of this dissertation.

115

Node 1 2 3 4 5 6 7 8

Demand 520 751 540 453 361 746 178 3,367

Capacity 2400 2000 2600 2200 2000 2600 2800 3000

Node 9 10 11 12 13 14 15

Demand 717 92 622 44.6 603 120 450

Capacity 3000 3200 3400 3600 3800 4000 4200

Table 3.1: The Demand (Node Population) and Generated Facility Capacities of the 15-Node Network (in 1000’s)

I. 15-node network in Current, ReVelle and Cohon (1984, 1985): There are two versions of the network. One is a partial network. The other is a complete network with an arc for each pair of nodes. I will consider 8 scenarios for each of the three path-coverage structures: path selection from partial network with arc coverage structure (PA), path selection from complete network with Euclidean coverage structure (CE) and path selection from partial network with Euclidean coverage structure (PE) (please refer to section 3.3.1 for detailed explanation of path coverage structure). I add the capacity limits. The capacity limits for scenario 1 and 5 of the 8 scenarios are different for each potential facility sites as listed in table 3.1. The same capacity limits for all potential sites will be used for all other scenarios. The capacity uses for scenarios 2 (and 6), 3 (and 7) , and 4 (and 8) are 3200, 3600 and 4000 respectively. The number of facilities to be located is 3. The network density (δ d ) for the partial network is 0.3143, while the density for the complete network is 1. Service distance levels are 400 and 450. The information of parameters are listed in table 3.2. Arc distances are in miles. Population demand and capacity are in 1000’s. Paths from 116

node 1 to 15 will be obtained. The nodes in the path will be the potential facility sites. Demand from 2 to 14 will be served according to the capacity availability. I assume node 1 and n will serve all local demand and demand at other locations through the path generated. I also borrow some networks from the capacitated arc routing problem literature. They are introduced in II. II. BB Network - 24 networks proposed in Belenguer and Benavent: (2003) These networks are based on real networks used by Li and Eglese (1996). Some parameters of these 24 networks can be found in table 3.3. I list the network notation used in the original paper, the number of nodes, the number of arcs, the density of the network (δ), the capacity of a single facility, the number of facilities, the capacity D ). ratio (Cratio ) and coverage distance ratio (CDratio

These networks are composed of a set of networks with 77 nodes (e-networks) and a second set of networks of 140 nodes (s-networks). The networks in each set vary in network structure (number of arcs are the same for each of the 77 and 140-node network), capacity of vehicle and number of vehicles. There are 4 network structures for e and s network (e1-e4, s1-s4). Each of these network structures have 3 sets of parameters (a,b,c) for different combinations of capacity and number of facilities. The capacity is adjusted for different number of facilities. The total capacity for each of e1-e4 and s1-s4 are the same for different combinations of capacity-facility number. There are 98-190 arcs in these created networks. These networks are good to compare the impact of different combinations of capacity and number of facilities. They typically use directed arcs, while I use undirected arcs. So for each of the arc, I use two arcs in both directions. 117

118

Table 3.2: Parameters of 24 Scenarios for the 15-Node Network (Capacities in 1000’s)

D Scenario Network Density δ Facility Capacity Coverage Distance Capacity Ratio Cratio Coverage Ratio CDratio 1 0.3143 In table 3.1 400 about 1.0733 1.8298 2 0.3143 3200 400 1.1170 1.8298 3 0.3143 3600 400 1.2566 1.8298 4 0.3143 4000 400 1.3962 1.8298 (I) 5 0.3143 In table 3.1 450 about 1.0733 2.0585 6 0.3143 3200 450 1.1170 2.0585 7 0.3143 3600 450 1.2566 2.0585 8 0.3143 4000 450 1.3962 2.0585 9 1 In table 3.1 400 about 1.0733 1.0001 10 1 3200 400 1.1170 1.0001 11 1 3600 400 1.2566 1.0001 12 1 4000 400 1.3962 1.0001 (II) 13 1 In table 3.1 450 about 1.0733 1.1260 14 1 3200 450 1.1170 1.1260 15 1 3600 450 1.2566 1.1260 16 1 4000 450 1.3962 1.1260 17 0.3143 In-table 3.1 400 1.0733 1.0001 18 0.3143 3200 400 1.1170 1.0001 19 0.3143 3600 400 1.2566 1.0001 20 0.3143 4000 400 1.3962 1.0001 (III) 21 0.3143 In-table 3.1 450 1.0733 1.1260 22 0.3143 3200 450 1.1170 1.1260 23 0.3143 3600 450 1.2566 1.1260 24 0.3143 4000 450 1.3962 1.1260 [1] (I) Scenarios 1-4 correspond to PA: path generated from partial networks with arc coverage distance [2] (II) Scenarios 5-8 correspond to CE: path generated from complete network with Euclidean coverage distance [3] (III) Scenarios 9-12 correspond to PE: path generated from partial networks with Euclidean coverage distance [4] Cratio is the ratio of total capacity over total demand D is the ratio of coverage distance over average distance of demand nodes [5] CDratio [6] The number of facilities to locate is 3

Structure

The demand they use refers to the arc demand in the original paper. For each of these arc demands, I split the demand into two equal parts and assign half to each of the end nodes of the arc. Some of the arcs have zero demand, I randomly generate a demand between the smallest and largest existing demand in the original network. They use capacitated vehicles to satisfy arc demand. I use the same capacity as the facility capacity. And I use the number of vehicles as the number of facilities to locate. I use 300 as the coverage distance. III. 756-node network in Santos, Coutinho-Rodrigues and Current (2008): This is the trash collection network in Coimbra in Portugal. The arcs are the roads in Coimbra which need trash collection. In the original network, most of the roads are two way roads, with a small number of roads of one way. If a road is one way in the original network; I will make it two way to be consistent with our other networks. There are also a few road turn restrictions in the original network, I will ignore these restrictions in our modified network. Their demand is in arcs, while our demand is in nodes of the network. I will split the demand in each arc into two equal parts, and assign half to each of the end nodes of this arc. The goal here is to check the new algorithms with some real world problem of a reasonable size, so I will not follow every detailed of the original network, which is designed to check the vehicle routing problems. The arc length in the original data set is not integer; I round it up to the next nearest integer. The numbers of facilities considered are 15 and 30. The coverage distances I consider are 400 and 800. The capacity level I use are 2000 and 4000. The best solution for this network can be found in table 3.4. There are 756 nodes and 2102 arcs. Network density is 0.0037. 119

120

Table 3.3: Parameters of 24 Scenarios for the BB-Network

Scenario Notation NO. Nodes NO. Arcs Network Density δ Capacity No. 1 e1 − a 77 196 0.0335 305 2 e1 − b 77 196 0.0335 220 3 e1 − c 77 196 0.0335 160 4 e2 − a 77 196 0.0335 280 77-node network 5 e2 − b 77 196 0.0335 200 6 e2 − c 77 196 0.0335 140 7 e3 − a 77 196 0.0335 280 8 e3 − b 77 196 0.0335 190 9 e3 − c 77 196 0.0335 135 10 e4 − a 77 196 0.0335 280 11 e4 − b 77 196 0.0335 180 12 e4 − c 77 196 0.0335 130 13 s1 − a 140 380 0.0195 210 14 s1 − b 140 380 0.0195 150 15 s1 − c 140 380 0.0195 103 16 s2 − a 140 380 0.0195 235 140-node network 17 s2 − b 140 380 0.0195 160 18 s2 − c 140 380 0.0195 120 19 s3 − a 140 380 0.0195 240 20 s3 − b 140 380 0.0195 160 21 s3 − c 140 380 0.0195 120 22 s4 − a 140 380 0.0195 230 23 s4 − b 140 380 0.0195 160 24 s4 − c 140 380 0.0195 120 [1] The path coverage structure is PA (path generated from partial networks with arc coverage distance) [2] Cratio is the ratio of total capacity over total demand D is the ratio of coverage distance over average distance of demand nodes [3] CDratio [4] Coverage distance is 300 for all networks

Network

Facilities 5 7 10 7 10 14 8 11 17 9 14 19 7 10 14 14 20 27 15 22 29 19 27 35

Cratio 0.4465 0.4509 0.4685 0.6510 0.6642 0.6509 0.8556 0.8709 0.8766 1.0273 1.0273 1.0069 0.1414 0.1443 0.1387 0.5071 0.4931 0.4993 0.6034 0.5900 0.5833 0.5220 0.5160 0.5016

D CDratio 12.0988 12.0988 12.0988 11.9853 11.9853 11.9853 11.9853 11.9853 11.9853 11.9853 11.9853 11.9853 13.6168 13.6168 13.6168 13.6168 13.6168 13.6168 13.6168 13.6168 13.6168 13.6331 13.6331 13.6331

121

Table 3.4: Parameters of 8 Scenarios for the Coimbra 756-Node Network

D Scenario No of Facilities Facility Capacity Coverage Distance Capacity Ratio Cratio Coverage Distance Ratio CDratio 1 15 2000 400 0.4482 4.1707 2 15 2000 800 0.4482 8.3414 3 15 4000 400 0.8961 4.1707 4 15 4000 800 0.8961 8.3414 5 30 2000 400 0.8964 4.1707 6 30 2000 800 0.8964 8.3414 7 30 4000 400 1.7923 4.1707 8 30 4000 800 1.7923 8.3414 [1] The path coverage structure is PA (path generated from partial network with arc coverage distance) [2] Cratio is the ratio of total capacity over total demand D [3] CDratio is the ratio of coverage distance over average distance of pairs of demand node [4] The network density is 0.0037

Node 1 2 3 4 5 6 7 8 9 10

Demand 520 751 540 453 361 746 178 3,367 717 92

Node 11 12 13 14 15 16 17 18 19 20

Demand 622 44.6 603 120 450 320 540 210 190 740

Table 3.5: The Demand and Capacities (in 1000’s) of the 20-Node Network in Current, ReVelle and Cohon (1984)

3.3.3

Generation of Partial Networks Based on Complete Networks

I also select some complete networks used in the literature. In the 20, 21, 55 and 681-node networks to be introduced, paths generated often have a few nodes in the path from the initial node to the terminal node with a lot of ties in path length. To better testing the effectiveness of our kSP-CMCLP algorithm, I generate some partial networks out of these complete networks. First I generate a minimum spanning tree based on the complete network to ensure the network is connected. Then based on required degrees of nodes, I add more arcs to obtain the partial networks. Detailed description of the generation method is as follows. Partial network generation method: 1. Generate a minimum spanning tree by prim’s algorithm. Add the starting node first. Then add one arc at each step. The node being added at each step is the node closest to the tree and the arc is constructed by connecting this node and 122

1 14 7

12

2

13 6 3 8 4 5

11 15

9

10 16

17

19 18 20

Figure 3.3: The 20-Node Network in Current, ReVelle and Cohon (1984)

the node in the tree which is closest to this node. I use the Euclidean distance as the arc cost. 2. Based on the minimum spanning tree, record the tree arcs in the matrix of ArcCovered. If the ith arc in the complete network has been covered, ArcCovered[i]=1, it is equal to 0 otherwise. Calculate the degree (number of arcs connecting this node) for each node and record it in the array of NodeDegree. ArcCovered and NodeDegree will be updated as each arc is added. 3. Assign the number of maximum degree of nodes for each node in the array of MaxNodeDegree. In the computation, I use maximum degree of 4 for the first one third and the last one third of the nodes (the number of nodes is round down to the next closest integer). For the rest of the nodes, which are typically in the center of the network, I use maximum degree of 6. 123

10 13

2

18 9 4 5 8

1

21

17

16

12

20 3 15 7 11 6

14 19

Figure 3.4: The 21-node Network in Current, ReVelle and Cohon (1984)

4. In the natural index order, I check for each node i. If the NodeDegree[i]≥ MaxNodeDegree[i], I check the next node. If NodeDegree[i] R ∗ Ccut , cut the smallest demand.

4.4-iii: Update the leaf nodes in LEAF by removing the selected demand k in (STEP 4.4 i-ii) from LEAF and insert the predecessor of this demand node to LEAF list if there is no successor of it in the current tree rooted at j. Add the removed leaf node r r − hk . to LEAFN. Update minimum demand to cut by Ccut = Ccut r r 4.5: If Ccut ≤ 0, update the total demand assigned by T D0 = C + Ccut . Stop (STEP

4), and go to (STEP 5). Otherwise repeat (STEP 4.3-4.5). 5: Demand addition. Explore the possibility to add a demand to the current facility.

195

5.1: For each node k in LEAFN, check if the remaining capacity of this facility can cover the demand. If such demand exist, add the demand which gives the greatest improvement in demand coverage. 5.2: If no demand can be added in (step 5.1), stop. Otherwise, repeat (step 5.1 and 5.2) until no demand can be added. 6: Demand swap. Explore the possibility to exchange an leaf node with an already cut immediate node (in LEAFN) to an leaf node. 6.1: If the number of iterations of demand swap exceeds an upper limit, stop. Otherwise, for each pair of demand node k1 in the leaf set LEAF and an already cut demand node k2 in LEAFN, calculate the change of the total demand by ∆ = hk2 − hk1 . If ∆ > 0 and T D0 +∆ ≤ C, a swap is found that can improve the total demand coverage while satisfying facility capacity constraint. If no swaps with improved coverage exist for all pairs of demand, stop. The overall algorithm ends. Otherwise, find the largest possible improvement among all swaps and make the final swap by this pair of demand. Let this pair be k1∗ and k2∗ , and the demand increase be ∆∗ . 6.2: Update the following quantities. T D0 = T D0 + ∆∗ = T D0 + hk2∗ − hk1∗ . Remove the node k1∗ from LEAF and add it to LEAFN. Add PRED[k1∗ ] and k2∗ to LEAF. ADD SUCC[k2∗ ][k’] (for all k’) to LEAFN. Return to (STEP 6.1). End “Algorithm for CMCLP-Tree Demand Allocation”

196

Search out for demand allocation tree from facility site i. Remove all the demand in this tree rooted at facility site j

Allocate demand for j by “Algorithm for CMCLPTree Demand Allocation”

Remove the demand allocated to facility site i and re-allocate demand for i by “Algorithm for CMCLP-Tree Demand Allocation”

Demand addition and swap for facility site j

Demand addition and swap for facility site i

Stop

j: current facility site i: demand at j has already been allocated to facility at i

Figure 4.4: Algorithm for CMCLP-TREE Demand Allocation when the Demand at the Current Facility Site Has Already Been Assigned to Another Site 197

III. Demand allocation algorithm for a facility when the demand at this facility site has already been assigned: In some of the cases, when the next facility site is selected, it is possible that the demand in this site has already been assigned to another facility site. If this is the case, I modify the CMCLP-tree demand allocation algorithm as follows. Assume the facility site to be located is at location j. And the demand at j has already been satisfied by some previously located facility at location i. This is possible when node j and i are close to each other in the main path. It is important to split the common demand covered by i and j. The flow chart for this demand allocation algorithm is in figure 4.4 and detailed explanation is as follows. STEP 1: Remove the demand assigned to location i if the demand is in the subtree rooted at j. STEP 2: Allocate demand to j as in Algorithm for CMCLP-Tree Demand Allocation. STEP 3: Remove the rest of the demand assigned to location i, and reallocate demand to facility site i as in Algorithm for CMCLP-Tree Demand Allocation. STEP 4: Check if demand addition and demand swap is possible for facility j as in Algorithm for CMCLP-Tree Demand Allocation. STEP 5: Check if demand addition and demand swap is possible for facility i as in Algorithm for CMCLP-Tree Demand Allocation.

198

4.3 4.3.1

Overall Algorithm for the SP-CMCLP-TREE Problem Algorithm for the SP-CMCLP-TREE Problem

The overall algorithm is similar to the algorithm in section 3.2.2. The only difference is that the capacitated maximum covering problem will have a tree coverage structure and it will be solved by the greedy algorithm in this chapter. STEP 1: Generate a shortest path; use the sites in the path (not including initial node and terminal node) as the potential facility location site. Set ST OP = 0. STEP 2: Use the greedy algorithm for CMCP-TREE problem to solve the capacitated maximum covering problem with tree coverage structure. Record the total coverage. If the percentage of demand covered exceeds a pre-specified upper limit, set ST OP = 1. Stop the overall algorithm. STEP 3: Paths generation. STEP 3.1: If the number of path generated exceed the upper limit kSPItMax. set ST OP = 1. Stop the overall algorithm. STEP 3.2: Try to generate next path in kSP algorithm without cycle. If the path generated has cycle, drop the path and regenerate until a path without cycle is obtained. If during the process, the total number of nodes or number of arcs exceed the pre-specified limit, set ST OP = 1. Stop the overall algorithm. If path without cycle cannot be generated within 1000 path generated, set ST OP = 1. Stop the overall algorithm. STEP 3.3: If path without cycle has been generated, use the facility sites in the path (not including initial node and terminal node) as the potential facility location site. Repeat (STEP 2-3). 199

4.3.2

Stopping Criteria and Generation of Non-Inferior Solutions

The stopping conditions for our overall algorithm are as follows. 1. The percentage of demand satisfied by the capacitated maximum covering problem with tree structure over the total demand exceeds an upper limit (for example 90%). 2. The number of paths used in covering problem besides the shortest path exceeds the upper limit (kSPItMax). 3. The number of total nodes or arcs exceeds their upper limit respectively. 4. The number of paths with cycles generated consecutively exceeds an upper limit (for example 1000). This is an indicator that most of the possible paths has been explored. As in Chapter 3, I will generate the non-inferior solution sets and propose a final solution combination of path and covering objectives.

4.3.3

Computational Complexity

I. Computational complexity of Algorithm of kSP algorithm: Fron Azevedo, Costa, Madeira and Martins (1993) and Azevedo, Madeira, Costa, Martins and Pires (1994), the kSP path algorithm takes O(km) computation time , where k is the maximum number of paths to be generated, and m is the number of arcs in the original network.

200

II. Computational complexity of Algorithm of MST: I use Prim’s algorithm to generate the minimum spanning tree, which starts at node 1 in the tree, and adds one arc a time to the tree. The arc to be added is from a node closest to the tree and the node in the tree by which the closest distance is obtained. Keeps an array of distance DIS, NODETO, and SELECTED for each node i (i ∈ {1, ..., n}). DIS[i] gives the distance of a node to a closest node already in the tree. NODETO[i] records the node number in the tree to which node i obtains DIS[i]. SELECTED[i] is i if node i is also connected to the tree, and 0 otherwise. The rough idea of the algorithm is as follows. Initialization: DIS[i] = ∞, SELECTED[i]=0 for each node i(i = 1, ..., n). Add first node: Add node 1 to the tree, and set SELECTED[1]=1. Update the distance DIS[i] = d[1][i] and N ODET O[i] = 1 if DIS[i] > d[1][i] for i=2,...,n. Iteration: Add a node to the tree at each iteration until all the nodes are on the tree. Use the following rule to do this. Search all nodes and find the closest node outside of the tree to the tree. I.e., find the minimum DIS[i] among nodes such that SELECT ED[i] = 0. This takes O(n) time. Add this node to the tree and update the DIS, NODETO and SELECTED. This takes constant time. STOP: Stop the algorithm if the all nodes have been added, or the number of arcs reachs (n-1). Prim’s algorithm runs (n-1) iterations for adding arcs, when an arc is added, I need to find the closest nodes to the tree, which takes O(n) computation, so the total 201

computation time is O(n2 ). Martel (2002) shows that Prim’s algorithm often beats other MST algorithms of better worst-case run time. III. Computational complexity of CMCLP-Tree-Demand-Allocation: Step 1 takes O(1) time. Step 2.1 takes O(n2 ) to get the MST. Step 2.2 takes O(n2 ) time since there are at most (n-1) nodes to be searched, and at each node reached, at most (n-1) nodes can be connected by the MST arcs with this current node. Step 3 take O(n) time to assign demand if T D0 ≤ C. Step 4 takes O(n2 logn) time. This is because step 4 has at most (n-1) demand cut iterations. A single iteration of step 4.2 takes O(nlogn) time to order the leaf nodes, 4.3-4.5 takes constant time after 4.2. Step 5 takes O(n) time. Step 6 takes O(n2 ) to explore each pair of nodes in LEAF and LEAFN. So the Algorithm for CMCP-Tree-Allocation takes O(n2 logn) time. When a site is considered to locate a facility, if the demand of this site has already been assigned to another facility site, the demand allocation also has computation time of O(n2 logn). IV. Computational complexity of the Greedy algorithm for CMCP-TREE: Step 1 takes O(n) time to get all potential facility sites. By step 2, the overall algorithm has at most p large iterations (when p is greater than the number of potential facility sites, I will reduce p to the number of the potential facility sites). For each of these iterations, at most (n-2) CMCP-Tree-Demand Allocation problems needs to be solved, each of which takes O(n2 logn) time. Therefore, the greedy algorithm for CMCP-Tree takes O(n3 logn) time. V. Computational complexity of the Overall algorithm of SP-CMCP-Tree: In summary, getting the underlying MST takes O(n2 ) time, kSP takes O(km) time, and the Greedy algorithm for CMCP-Tree in k paths iterations need O(kn3 logn) time, 202

the overall algorithm of SP-CMCP-Tree takes O(km + n2 + kn3 logn) time. Since m is less than n2 , and we can remove the constant k. The overall algorithm of SP-CMCPTree takes O(n3 logn) computation time.

4.4

Computation

4.4.1

Selected Networks from Literature

Since the tree coverage structure is designed for the cases in which only existing arcs in partial networks can be used to supply demand or for the cases in which demand is supplied by sub-paths to make the supply network more economical, I will focus on some selected partial networks from chapter 3. This applies to the cases in which no node coordinates are known. The networks I use are: • 15-node network in Current, ReVelle and Cohon (1984, 1985) • 20-node network in Current, ReVelle and Cohon (1984) and 21-node network in Church, Current and Storbeck (1991) • 756-node network in Santos, Coutinho-Rodrigues and Current (2008)

4.4.2

Computation Results

I. 15-node network in Current, ReVelle and Cohon (1984, 1985): I will report the results for the first 8 scenarios of the 15-node partial network introduced in chapter 3. The path coverage structure is PTREE. Namely path is generated from partial network and demand is covered by sub-paths on a tree. Table 4.1 gives the information of the best solution and average performance among all paths. The solution pattern is very similar to the direct arc coverage 203

structure. It is expected that the total demand coverage is higher by the tree coverage structure using sub-paths than by direct arc coverage in partial networks. This happens in some scenarios of the networks studied including the 20, 21 and 756node networks. It does not happen for the 15-node partial network. One reason may be that the network is too small to generate the benefit of the tree coverage structure. For small networks like the 15-node network, tree coverage structure may be an un-necessary complication. Table 4.1 and 4.2 give the results of the SP-CMCLP-TREE algorithm and comparison of average performance with the best algorithm in chapter 3. For scenario 3, 501 paths are generated and 2 non-inferior solutions of pathcoverage combination are obtained. Non-inferior solutions are obtained in paths 1 and 3, a very early stage of algorithm. The average demand covered by all paths is 85.47%. The percentage of the best coverage is generated in path 3 and the coverage is 91.65% of the total demand. The performance is similar to the algorithms in chapter 3. Some specific observations are as follows. • As capacity limit or coverage distance increases, the SP-CMCLP-TREE algorithm yields better maximum (average) coverage among all paths. The impact of capacity is great than that of the coverage distance. Capacity allocation is crucial and small capacity makes the problem more difficult to be solved. • In most scenarios, the best coverage is obtained at very earlier stage of the path generation process.

204

• For this small network, the benefit of tree coverage structure is not evident. The best algorithm in chapter 3 yields better demand coverage. The CMCLPTREE-greedy algorithm is a first try to solve coverage problem by tree coverage structure. There are a lot of well-designed neighborhood moves for the algorithms in chapter 3. So the result is not surprising for this small network. • There are a few non-inferior solutions among all the path-coverage combinations. • The average CMCLP time is shorter than the best algorithm in chapter 3.

205

206

AvePTime 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000

AveCTime 0.0448 0.0484 0.0349 0.0417 0.0479 0.0540 0.0368 0.0376

Table 4.2: Comparison Between Tree and Arc Coverage Structures for the 15-Node Network

Best % Coverage over TD Best % Coverage over TC Ave % Coverage over TD Ave % Coverage over TC Ave CMCLP Time Scenario Best Tree Best Tree Best Tree Best Tree Best Tree Best 1 TSH 52.48 92.98 50.77 89.95 51.49 62.56 49.81 60.52 0.0448 0.4490 2 SA 60.82 60.82 54.45 54.45 52.68 55.89 47.16 50.03 0.0484 0.1855 3 LR 91.65 95.80 72.94 76.24 85.47 88.48 68.02 70.41 0.0349 0.1103 4 LR 91.66 98.60 65.65 70.62 85.47 89.18 61.22 63.87 0.0417 0.0227 5 TSH 52.48 92.98 50.77 89.95 51.49 63.86 49.81 61.77 0.0479 0.3731 6 SA 60.82 60.82 54.45 54.45 52.68 57.10 47.16 51.12 0.0540 0.4030 7 LR 91.66 95.80 72.94 76.24 85.47 89.34 68.02 71.10 0.0368 0.2294 8 LR 91.66 100 65.65 71.62 85.47 85.06 61.21 60.92 0.376 0.0016 [1] This table corresponds to the scenarios 1-8 in table 3.2 and (I) in table 3.11 [2] Column 2 is the best algorithm among LR, TSH,TSP and SA for case (I), PA: path generated from partial network using arc coverage [3] Comparison is between PT (path generated from partial network using tree coverage structure) and PA [4] Columns 3-6 give the percentage coverage over total demand and total capacity for the best coverage among all paths [5] Columns 7-10 give the percentage coverage over total demand and total capacity for the average coverage among all paths [6] Columns 11-12 give the average CMCLP computation time

Table 4.1: Solution of the SP-CMCLP-TREE Problem for the 15-Node Network (Time in Seconds)

Scenario NO. Paths % NonInf Best Path BestPathLength B%CD B%CC AvePathLength Ave %CD Ave %CC 1 501 0.20 1 985 52.48 50.77 1395.65 51.49 49.81 2 501 0.60 194 1381 60.82 54.45 1395.65 52.68 47.16 3 501 0.40 3 1043 91.65 72.94 1395.65 85.47 68.02 4 501 0.40 3 1043 91.66 65.65 1395.65 85.47 61.22 5 501 0.20 1 985 52.48 50.77 1395.65 51.49 49.81 6 501 0.60 194 1381 60.82 54.45 1395.65 52.68 47.16 7 501 0.40 3 1043 91.66 72.94 1395.65 85.47 68.02 8 501 0.40 3 1043 91.66 65.65 1395.65 85.47 61.21 [1] This table corresponds to the scenarios 1-8 in table 3.2 and (I) in table 3.11 [2] Columns 2-5 give the number of paths, percentage of non-inferior solutions generated, best path and path length [3] Columns 6-7 give the percentage of coverage over total demand and that over total capacity [4] Columns 8-9 give the average path lengths, average percentage coverage over total demand and total capacity among all paths [5] Columns 10-11 give the average time of path and coverage problem among all paths generated

II. 20-node network in Current, ReVelle and Cohon (1984) and 21-node network in Church, Current and Storbeck (1991): Table 4.3 and 4.5 give the results of the best solution of 4 scenarios for each of the 20 and 21-node networks. Table 4.4 and 4.6 give the corresponding comparison of average performance of CMCLP problem. The solution pattern is very similar to the direct arc structure. Some specific observations are as follows. • From table 4.4 and 4.6, CMCLP-TREE greedy algorithm performs better in the best coverage and the average coverage as a percentage of total demand and total capacity among all paths. In scenario 3 of table 4.4, the tree coverage structure generates 100% demand coverage of the total demand in the best solution among all paths, while the best algorithm for arc coverage only generates 86.88%. Similar results are obtained for the 21-node network. • CMCLP-TREE greedy algorithm takes shorter time on average than the best algorithm among LR, TSH, TSP and SA for the arc coverage structure. • As the capacity limit or coverage distance increases, the SP-CMCLP-TREE greedy algorithm stops with fewer number of paths and better maximum (average) coverage among all paths. The impact of capacity limit is more evident. • The tree coverage structure has a potential to generate more demand coverage in CMCLP, and to stop with fewer number of paths and better coverage in SP-CMCLP. • The tree coverage structure generates similar demand coverage as Euclidean distance. 207

208

AvePTime 0.0033 0.0000 0.0000 0.0000

AveCTime 0.0548 0.0768 0.0820 0.0845

Ave CMCLP Time Tree Best 0.0775 0.3132 0.0768 0.3089 0.0820 0.3492 0.0845 0.3421

Table 4.4: Comparison Between Tree and Arc Coverage Structures for the 20-Node Network

Best % Coverage over TD Best % Coverage over TC Ave % Coverage over TD Ave % Coverage over TC Scenario Best Tree Best Tree Best Tree Best Tree Best 1 TSH 54.48 53.81 93.56 92.41 54.03 52.81 92.79 90.71 2 TSH 54.48 53.81 93.56 92.41 54.03 52.81 92.79 90.71 3 TSH 100 86.88 85.87 74.61 100 83.99 85.87 72.12 4 TSH 100 86.88 85.87 74.61 100 83.99 85.87 72.12 [1] This table corresponds to the scenarios 1-8 in table 3.6 and (I) in table 3.18 [2] Column 2 is the best algorithm among LR, TSH,TSP and SA for case (I) [3] Comparison is between PT (path generated from partial network using tree coverage structure) and PA [4] Columns 3-6 give the percentage coverage over total demand and total capacity for the best coverage among all paths [5] Columns 7-10 give the percentage coverage over total demand and total capacity for the average coverage among all paths [6] Columns 11-12 give the average CMCLP computation time

Table 4.3: Solution of the SP-CMCLP-TREE Problem for the 20-Node Network (Time in Seconds)

Scenario NO. Paths % NonInf Best Path BestPathLength B%CD B%CC AvePathLength Ave %CD Ave %CC 1 501 0.20 2 2092 54.48 93.56 2313.73 54.03 92.79 2 501 0.20 2 2092 54.48 93.56 2313.73 54.03 92.79 3 1 100 1 2092 100 85.87 2313.73 100 85.87 4 1 100 1 2092 100 85.87 2313.73 100 85.87 [1] This table corresponds to the scenarios 1-4 in table 3.6 and (I) in table 3.18 [2] Columns 2-5 give the number of paths, percentage of non-inferior solutions generated, best path and path length [3] Columns 6-7 give the percentage of coverage over total demand and that over total capacity [4] Columns 8-9 give the average path lengths, average percentage coverage over total demand and total capacity among all paths [5] Columns 10-11 give the average time of path and coverage problem among all paths generated

209

AvePTime 0.0010 0.0000 0.0000 0.0000

AveCTime 0.0588 0.0661 0.476 0.0593

Ave CMCLP Time Tree Best 0.0588 0.2485 0.0661 0.2284 0.0476 0.1714 0.0593 0.1685

Table 4.6: Comparison Between Tree and Arc Coverage Structures for the 21-Node Network

Best % Coverage over TD Best % Coverage over TC Ave % Coverage over TD Ave % Coverage over TC Scenario Best Tree Best Tree Best Tree Best Tree Best 1 TSH 61.95 63.72 97.14 100 57.04 60.73 89.52 95.31 2 TSH 61.96 63.72 97.22 100 57.09 63.38 89.60 95.15 3 SA 100 84.96 78.48 66.67 65.87 79.33 51.69 54.41 4 SA 100 84.96 78.48 66.67 77.09 69.33 60.50 54.41 [1] This table corresponds to the scenarios 1-8 in table 3.8 and (I) in table 3.21 [2] Column 2 is the best algorithm among LR, TSH,TSP and SA for case (I) [3] Comparison is between PT (path generated from partial network using tree coverage structure) and PA [4] Columns 3-6 give the percentage coverage over total demand and total capacity for the best coverage among all paths [5] Columns 7-10 give the percentage coverage over total demand and total capacity for the average coverage among all paths [6] Columns 11-12 give the average CMCLP computation time

Table 4.5: Solution of the SP-CMCLP-TREE Problem for the 21-Node Network (Time in Seconds)

Scenario NO. Paths % NonInf Best Path BPathLength B%CD B%CC AvePathLength Ave %CD Ave %CC 1 501 0.80 100 11126 61.95 97.22 12200.8 57.04 89.52 2 501 0.60 17 9081 61.95 97.22 12200.8 57.09 89.60 3 56 4.00 56 10328 100 78.47 9346.21 65.87 51.69 4 35 8.57 35 9860 100 78.48 8888.86 77.09 60.50 [1] This table corresponds to the scenarios 1-4 in table 3.8 and (I) in table 3.21 [2] Columns 2-5 give the number of paths, percentage of non-inferior solutions generated, best path and path length [3] Columns 6-7 give the percentage of coverage over total demand and that over total capacity [4] Columns 8-9 give the average path lengths, average percentage coverage over total demand and total capacity among all paths [5] Columns 10-11 give the average time of path and coverage problem among all paths generated

III. 756-node network in Santos, Coutinho-Rodrigues and Current (2008): The computation results show that the algorithms for SP-CMCLP in Chapter 3 cannot satisfactorily solve the 756-node network problem. There are a couple of reasons for this. One reason is that the node coordinates are unknown. Euclidean distance can not be used for coverage problem. The arc coverage is very constrained for large networks. For many choices of initial node and terminal nodes, there are many pairs of nodes with short distance and node index far apart. As a result, it is very likely to generate paths passing through very limited number of nodes. This makes the demand coverage very limited. To overcome the limitation of arc coverage, I use tree coverage in the capacitated maximum covering problem. To overcome the limitation of paths with few potential facility sites, I randomly generated 50 potential facility location site from the 756 locations. I solve a capacitated maximum covering problem for this network using these 50 generated sites as potential facility sites. I compare the CMCLP-TREE-Greedy algorithm with the CMCLP LR, TSH, TSP and SA algorithms in chapter 3. The results are given in table 4.7. Columns 2-6 list the percentage demand coverage over total demand. Columns 7-11 list the percentage demand coverage over total capacity. Columns 12-16 list the percentage computation time in seconds. For most of the scenarios, the percentage coverage of the total demand (total capacity) for the tree coverage structure is much greater than for the arc coverage structure. For example for scenario 8, the percentage coverage of total demand for the tree coverage structure is 78.37, while that of the best algorithm among LR, TSH, TSP and SA is 20.75. Some observations for the 756-node problem are as follows. 210

• The percentage coverage of the total demand (total capacity) for the tree coverage structure is much greater than the LR, TSH, TSP and SA using arc coverage structure. Tree coverage structure probably works well in CMCLP for large partial networks. This is probably because there are a lot of sub-path choices for serving the demand. The tree coverage structure can reach demand which cannot be reached by direct arc coverage structure. • Tree coverage structure takes longer time to solve the CMCLP than other algorithms. When demand coverage is more important than computation time, it is worthwhile to invest more time to gain better coverage. • As the number of facilities or facility capacity increases, the percentage of coverage of total demand (capacity) increases. Computation time also increases. • As the the coverage distance ratio increases, the percentage of coverage of total demand (capacity) increases. Computation time also increases. • CMCLP-TREE Greedy algorithm is a good starting point for coverage-path decomposition of SP-CMCLP problem, in which a covering problem is solved first, then a constrained path problem is solve.

211

212

tree 1941.83 1999.77 2171.45 2165.01 2918.03 3267.41 3195.10 3438.61

CMCLP Time LR TSH TSP 0.50 240.116 242.96 13.02 243.98 246.39 0.489 246.78 245.30 12.5 245.39 243.59 43.44 288.43 284.62 27.63 285.92 279.58 43.84 289.57 287.65 27.34 286.35 284.00

Table 4.7: Comparison of Tree versus Arc Coverage Structures for the 756-Node Network

Percentage Demand Coverage over total demand Percentage Demand Coverage over total capacity Scenario tree LR TSH TSP SA tree LR TSH TSP SA 1 37.03 15.08 15.08 15.08 14.32 82.68 33.66 33.66 33.66 31.95 2 44.68 15.09 15.09 15.09 14.66 99.74 33.69 33.69 33.69 32.72 3 40.04 15.08 15.08 15.08 14.31 44.70 16.83 16.83 16.83 15.98 4 63.47 15.09 15.09 15.09 14.66 70.85 16.85 16.85 16.85 16.36 5 54.59 20.50 20.50 20.50 20.09 60.93 22.88 22.88 22.88 22.43 6 67.25 20.74 20.75 20.75 20.51 75.07 23.16 23.16 23.16 22.90 7 55.30 20.50 20.50 20.50 20.09 30.86 11.44 11.44 11.44 11.21 8 78.37 20.75 20.75 20.75 20.52 43.74 11.58 11.58 11.58 11.45 [1] This table corresponds to the 8 scenarios of the 756-node network [2] Path is generated using the partial network with tree or arc coverage structure [3] Columns 2-6 give the demand coverage over total demand [4] Columns 7-11 give the demand coverage over total capacity [5] Columns 12-16 give the computation time in seconds [6] 50 potential facility sites are randomly generated [7] 15 or 30 facilities are located

SA 9.94 9.31 9.77 10.24 10.68 10.77 10.34 10.30

4.4.3

Summary

I. SP-CMCLP-TREE problem: Based on the output for the previous computation results, I get the following observations. • Tree coverage structure on average yields greater best (average) demand coverage among all paths than algorithms using direct-arc coverage in partial networks. The advantage of tree coverage structure is more evident for large partial networks. When the network is very small, it is possible that arc coverage works slightly better. • Tree coverage structure provides a good starting point for other decomposition methods for SP-CMCLP. For the partial network structure of 756-node network, it is extremely difficult to generate main paths with good coverage. One possibility to solve this problem is to solve a maximum covering problem using tree coverage structure, then find a path passing the facility sites. • As the capacity increases, the number of facilities increases, and/or the coverage distance increases, fewer paths are needed to get a satisfactory solution. • As the capacity increases, the number of facilities increases, or the coverage distance increases, the percentage best (average) coverage of total demand (capacity) among different paths increases. • For partial networks without Euclidean distance, tree coverage structure has the best potential to cover more demand while generating reasonable number of paths. 213

• To solve SP-CMCLP, tree coverage structure is more likely to take longer time than arc coverage structure in large networks. When demand coverage is more important than computation time, it is worthwhile to invest more time to gain better coverage. • The percentage of non-inferior solutions varies a lot, but the total number of non-inferior solutions for different scenarios does not change much for the same network. II. CMCLP-TREE problem: • For partial networks without Euclidean distance, tree coverage structure has a potential to cover more demand in CMCLP. When the number of nodes is large, tree coverage structure can generate a greater percentage coverage of the total demand (total capacity) than the LR, TSH, TSP and SA algorithms using arc coverage structure. Tree coverage structure is a good choice in CMCLP especially for large partial networks without Euclidean distance. • As the capacity (or the number of facilities) increases the percentage coverage of total demand (capacity) increases. • As the coverage distance increases, the percentage coverage of total demand (capacity) increases. • Tree coverage structure takes longer time to solve the CMCLP than other algorithms using arc coverage. When demand coverage is more important than computation time, it is worthwhile to invest more time to gain better coverage.

214

4.5

Summary of the Shortest Path - Capacitated Maximum Covering Problem with Tree Coverage Structure

This chapter introduces the shortest path - capacitated maximum covering problem with tree coverage structure. This coverage structure is new in the literature. The problem is decomposed to the k-shortest path problem (kSP) and capacitated maximum covering problem with tree coverage structure (CMCLP-TREE). The CMCLPTREE problem is solved by a greedy algorithm. Computation results show that the tree coverage structure performs better than traditional coverage structure in CMCLP-TREE and SP-CMCLP-TREE problems for some networks.

215

Chapter 5

Conclusion and Future Research Directions

5.1

Conclusion

Summary observations are given as follows for the capacitated maximum covering problem (CMCLP), shortest path-capacitated maximum covering problem (SPCMCLP), and shortest path-capacitated maximum covering problem with tree coverage structure (SP-CMCLP-TREE).

5.1.1

Capacitated Maximum Covering Problem (CMCLP)

In Chapter 2, I design lagrangian relaxation (LR), Tabu search with heuristic demand allocation (TSH), Tabu search with penalty demand allocation (TSP) and simulated annealing (SA) algorithms for capacitated maximum covering problem (CMCLP) in which no fractional demand allocation is allowed. To the knowledge of the author, the Tabu Search and Simulated Annealing introduced are the first meta-heuristics developed for the capacitated maximum covering problem. For Tabu Search, I use a heuristic method and a penalty method to update the objective function value and to allocate the demand in the neighborhood search. In the penalty method, I use surrogate relaxation and add a penalty term to the objective function for the violated capacity constraints. 216

In these meta-heuristics, I use 3 neighborhood structures. These neighborhoods are at different levels and are used in different stages of the meta-heuristics. I design an embedded meta-heuristic procedure which has inner loops of single neighborhoods and outer loops of multiple alternate inner loops. These algorithms are compared with each other in Chapter 3.

5.1.2

Shortest Path - Capacitated Maximum Covering Problem (SP-CMCLP)

In Chapter 3, facility capacity constraints are introduced to the maximum covering - shortest path problem. Current, ReVelle and Cohon (1985) first studied the un-capacitated version of this problem. The two objectives of the problem are the minimization of the path length from a predetermined starting node to a predetermined terminal node and the maximization of the total demand covered by the nodes in the path. I decompose the problem into a k-shortest path problem (kSP) and a capacitated maximum covering problem (CMCLP). The kSP problem is solved by a path deletion algorithm (Azevedo, et al., 1993, 1994). The capacitated maximum covering problem is solved by various heuristics and meta-heuristics including Tabu search and simulated annealing developed in chapter 2. Computational results for networks selected from literature show the effectiveness of the heuristics designed. One or more of three path-coverage structures are used according to the properties of the networks. The three path-coverage structures include PA (paths are generated out of partial network and arc coverage is used), CE (paths are generated out of complete network and Euclidean distance coverage

217

is used) and PE (paths are generated out of partial network and Euclidean distance coverage is used). The impacts of different network parameters are also studied. Major findings are: 1. TSH often gives the best demand coverage with a little longer time than LR and SA. For large networks, LR and SA are good choices for demand coverage and solution time. TSP sometimes performs worse in solution quality and time than TSH. 2. Different network parameters have influence on the best demand coverage, the number of paths generated, and the path-coverage combination. It also affects the comparison of LR, TSH,TSP and SA. Details can be found in chapter 3. Some of the major parameters are the facility capacity, the number of facilities and service distance. When these levels increase, demand coverage increases in CMCLP and SP-CMCLP stops in fewer number of paths. 3. Different path-coverage structures have influence on the solutions of SP-CMCLP. PE is more likely to generate reasonable paths with good demand coverage. It is recommended to be used if both partial network for path selection and Euclidean distance for demand coverage can be obtained. If only partial networks without coordinates are given, PA can be used. For this case, more paths need to be generated to obtain a good solution as PE. If the main path is very expensive to be built, CE can be used to keep path length short and generates good demand coverage. 4. The number of non-inferior solutions is typically small. Decision makers can easily identify a satisfactory solution based on the set of non-inferior solutions. 218

5.1.3

Shortest Path - Capacitated Maximum Covering Problem with Tree Coverage Structure (SP-CMCLP-TREE)

I also solve a new version of the capacitated maximum covering problem with tree coverage structure. Demand are supplied by paths on a minimum spanning tree constructed from the underlying network. A demand is counted as covered if the total arc length of a path from the demand to a facility site is within service distance and demand can be satisfied if all the intermediate demand in the path is satisfied. A greedy algorithm is designed to solve the SP-CMCLP-TREE problem. When a facility site is decided, demand is allocated by searching out on the minimum spanning tree from the facility site. Demand cut, addition and swap are used to allocate capacity to demand. Computational results for networks selected from literature show the effectiveness of the heuristics designed. Details can be found in chapter 4. Major findings are: • Tree coverage structure on average yields greater demand coverage among all paths than algorithms using direct-arc coverage in partial networks of moderate size. The advantage of tree coverage structure is more evident for large partial networks without Euclidean distance. When the network is very small, it is possible that arc coverage works slightly better. • Tree coverage structure provides a good starting point for other decomposition methods of SP-CMCLP. For the partial network structure of 756-node network, it is extremely difficult to generate paths with good coverage due to the properties of this network. One possibility to solve this problem is to solve a maximum

219

covering problem using tree coverage structure first, then find a path passing the facility sites which has a distance as short as possible. • As the capacity increases, or the number of facilities increases, or the coverage distance increases, demand coverage will increase, and fewer paths are needed to get a satisfactory solution. • To solve SP-CMCLP, tree coverage structure is more likely to take longer time than arc coverage structure in large networks. When demand coverage is more important than computation time, it is worthwhile to invest more time to gain better coverage. • The percentage of non-inferior solutions varies a lot, but the total number of non-inferior solutions for different scenarios does not change much for the same network.

5.2

Future Research

5.2.1

Other Decomposition Methods

Different decomposition methods can be designed in the future. One example is as follows. Capacitated max covering-path decomposition: Solve capacitated maximum covering problem first, then for the obtained solution, build a shortest path which goes through the facility sites. Algorithms need to be designed to solve a restricted shortest path problem. • Add constraints (ex:

P i

xij = 1, j is a facility site) to the shortest path problem.

This can give cycles, which might make the problem difficult to be solved. 220

• Solve k-shortest path problem, increase k (the number of path) till covering these facilities. • Design a heuristic to generate a path passing through the facility sites. A potential algorithm: STEP 1: Solve the capacitated maximum covering problem using all the nodes in the network as potential facility sites. STEP 2: Solve the shortest path problem. STEP 3: STEP 3.1: If all selected facility sites are in the path, stop. Otherwise, insert the facility sites to the path in non-increasing order of total demand assigned. STEP 3.2: When inserting a facility site j to the path, select the two locations in the path which are closest to location j. Let two two locations be i1 and i2 . Remove the arc from these two locations , and insert one arc from j to these two locations respectively. That is remove arc i1 -i2 and insert arc i1 -j and i2 -j. Repeat step 3.1-3.2. Another possibility is to design an algorithm with path and covering iterations (continuous adjustment) which use path obtained as input of maximum covering problem and use maximum covering solution obtained as input of shortest path problem.

5.2.2

Other Algorithms for SP-CMCLP

Other methods to solve the problem can be designed. One example can be Lagrangian relaxation to the weighted average of the path and coverage objectives. Relax constraint set (3.7), two sub-problems are obtained.

221

The first sub-problem is:

M aximize Π

= {−

n−1 n XX

(dij − µj )xij }

(5.1)

i=1 j=2

X

St

x1j = 1

(5.2)

xin = 1

(5.3)

j∈M1

X

i∈Nn

X

xij −

i∈Nj

XX

X

xjk = 0 ∀j, j 6= 1, n

(5.4)

k∈Mj

xij ≤ |Q| − 1 ∀Q ∈ V such that |Q| ≥ 2

(5.5)

i∈Q j∈Q

xij = (0, 1) ∀ (i, j)

(5.6)

The second sub-problem is:

M aximize Π

= {λ

n−1 X n−1 X j=2 k=2

St

n−1 X

hk yjk −

n−1 X

µj zj }

(5.7)

j=2

zj = p

(5.8)

yjk ≤ 1 ∀k = 2, ..., n − 1

(5.9)

yjk ≤ ajk zj ∀j, k = 2, ..., n − 1.

(5.10)

j=2 n−1 X j=2

n−1 X

hk yjk ≤ Czj ∀j = 2, ..., n − 1.

(5.11)

k=2

yjk = (0, 1) ∀ (j, k) zj = (0, 1) ∀ j = 1, 2, ..., n.

(5.12) (5.13)

The first problem can be solved by the shortest path algorithm which can handle both positive and negative length arcs. The second problem is a capacitated maximum-covering problem. Some good solution procedures which give the best quality solution can be selected to solve this problem. 222

5.2.3

Extension of SP-CMCLP

Multiple extensions can be made to SP-CMCLP. One way to extend my research is to extend it to capacitated maximum covering shortest path problem with capacity increments (base capacity value) (SP-CMCLPCI). It is reasonable to assume the capacities of facilities are not necessarily the same. A capacity increment can be introduced and facilities can have capacities of multiples of the capacity increment. This new model will give us more flexibility to select facility sites and build facilities according to properties of different sites. The corresponding model is as follows. I. Variables and parameters: Variables: ½ xij =

1 if the arc is in the path 0 otherwise

yjk = the fraction of demand at location k served by facility j, or ½ 1 if demand at node k is covered, no partial coverage is allowed yjk = 0 otherwise ½ 1 if capacity unit l will be located at node j zlj = 0 otherwise

Additional parameters: 1. m is the maximum total capacity increments for the whole system. 2. C is the value of each capacity increment quantity. The total number of capacity increment quantities is m. The total capacity is mC. We assume it to be smaller P than the total demand n−1 k=2 hk . 223

II.Model: SP-CMCLP-CI:

M aximize Π = {Π1 = − St

n−1 X n X

dij xij , Π2 =

i=1 j=2

X

n−1 X n−1 X

hk ajk yjk }

(5.14)

j=2 k=2

x1j = 1

(5.15)

xin = 1

(5.16)

j∈M1

X

i∈Nn

X

xij −

i∈Nj

XX

X

xjk = 0 ∀j, j 6= 1, n

xij ≤ |Q| − 1 ∀Q ∈ V such that |Q| ≥ 2

i∈Q j∈Q m X

X

l=1

i∈Nj

zlj ≤ m

n−1 X

(5.17)

k∈Mj

xij ∀j = 2, ..., (n − 1).

yjk ≤ 1 ∀k = 2, ..., n − 1

(5.18) (5.19)

(5.20)

j=2 n−1 X

hk yjk ≤ C

k=2

m X

zlj ∀j = 2, ..., n − 1.

(5.21)

l=1

xij = (0, 1) ∀ (i, j)

(5.22)

yjk = (0, 1) ∀ (j, k)

(5.23)

zlj = (0, 1)

(5.24)

There are two objectives in objective functions in (5.14), the first one Π1 is the negative path length, and the second one Π2 is the total coverage. Constraint sets (5.15), (5.16), (5.17) and (5.22) defines the path from node 1 to node n. Constraint set (5.18) eliminates the sub-tours. Constraint sets (5.19) and (5.24) requires that at most m capacity increments to be built on nodes in the path. Constraint 224

set (5.20) prevents multiple coverage. This is for better allocation of capacities. Constraint set (5.21) limits the capacity of the facilities. Constraint set (5.23) requires the coverage variable to be binary variable. If fractional demand is allowed, constraint set (5.23) will be changed to 0 ≤ yjk ≤ 1 ∀ (j, k).

5.2.4

Hybrid Heuristics for the Capacitated Maximum Covering Sub-Problem

Hybrid heuristics and other meta-heuristics can be designed. Other heuristics can also be explored. One possible direction is to design GRASP algorithms to solve capacitated maximum covering sub-problem. In the first stage of GRASP, different algorithms can be used. And in stage two local search algorithms can be used to improve the solutions obtained.

5.2.5

Computation Tests by Randomly Generated Networks

More experiments can be done to further explore the effectiveness of the algorithms I designed. Well designed experiments with randomly generated networks can test and identify the factors influencing performance of the algorithms designed. I propose the following ways to generate random networks. Randomly generate the x and y coordinates of the node locations in a 50*100 area as in Current, Pirkul and Rolland (1994). They assign fixed degree for each node in the network and assemble the network by connecting each node to its nearest node until the degree is reached. If the resulting network is not connected, they discard the network and regenerate the network. Nodes are ordered by nondecreasing order of the x coordinates. Generate the network by fixing the density of the network (δ) as in 225

Galv˜ao and ReVelle (1996), where δ =NO. arcs in network/no. arcs in corresponding complete network. By changing the network density, the impact of the network density on the computation of our algorithms can be checked. By using density of overall network, more general conclusions than Current, Pirkul and Rolland (1994) can be obtained. They use the number of arcs for each node. If the calculated number of arcs is not integer, it can be rounded down to the closest even integer value (since I use undirected arcs, distance matrix is symmetric to the diagonal elements of the distance matrix). Galv˜ao and ReVelle (1996) randomly generate the two vertices and the length of each arc. I can only randomly generate the two vertices for each arc, and use the Euclidean distances ((rounded up to the nearest integer)) of the nodes randomly generated from the 50*100 area. In this way, the whole picture of the node locations can be easily obtained if I want to explore more properties of our method and the Euclidean distance is more close to real world situation. I can order the index by nondecreasing order of x coordinate, if there is a tie, I can use the nondecreasing order of y coordinate, if there is still a tie, I can use the natural order of the nodes generated (although ties are very unlikely). If the generated network is disconnected, I can discard the current network and regenerate a new network until a connected network is found. Randomly generate demand for each location from a uniform distribution in the interval [Dmin , Dmax ], where Dmin and Dmax are the lower limit and upper limit respectively. This method is also used by some other authors in facility location literature. We can use Dmin = 10 and Dmax = 50. Randomly generate facility capacity from a uniform distribution in the interval [Cmin , Cmax ], where Cmin and Cmax are the lower limit and upper limit. I can set 226

Network 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

No Nodes 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200 200

Network Density 0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01

No Facilities 10 10 10 10 20 20 20 20 10 10 10 10 20 20 20 20

Expected % coverage 0.85 0.85 0.95 0.95 0.85 0.85 0.95 0.95 0.85 0.85 0.95 0.95 0.85 0.85 0.95 0.95

CD 10 20 10 20 10 20 10 20 10 20 10 20 10 20 10 20

Table 5.1: Information for the Randomly Generated Networks

Cmin equal to Dmax as in Delmaire, D´ıaz and Fern´andez (1999). This ensures each facility has capacity to cover at least one demand. I will set the middle point of the interval [Cmin , Cmax ] as Cmid . Cmid = (T D ∗ Cover% )/(p), where TD is the total demand need to be covered. Cover% is the percentage of demand expected to be covered. p is the number of facilities to be located. So Cmid is an average estimation of capacity needed. Cmax = 2 ∗ Cmid and if it is non-integer, it is rounded down to the next integer. Expected coverage percentage of 85% and 95% can be used. For each set of parameters, I can randomly generate 100 networks, and calculate the final result by taking the average of the 100 randomly generated networks. Generate networks with 200, 400, 600 and 800 nodes. Network density δ is set as 0.005 and 0.01. I will use 5% and 10% as the percentage of facilities over total number of nodes. Expected coverage levels are 0.85 and 0.95. Coverage distance is set to 10 and 20. The information of these networks is summarized in table 5.2.5.

227

5.2.6

Extension to Other Routing Structures

The model can be extended to other routing structures besides shortest path. These include tour and tree structures. Tours and trees passing certain critical locations can be designed. And facilities can be located in the tour to supply demand nearby.

5.2.7

Extension to Other Location Problems

The model can be extended to other location problems such as median problems, center problems and fixed charge facility location problems.

228

Bibliography

[1] Ahmadi, S. and I.H. Osman. 2005. Greedy random adaptive memory programming search for the capacitated clustering problem. European Journal of Operational Research 162(1), 30-44. [2] Aickelin, U.. 2002. An indirect genetic algorithm for set covering problems. Journal of the Operational Research Society 53 (10), 1118-1126. [3] Alp, O., E. Erkut and Z. Drezner. 2003. An efficient genetic algorithm for the p-median problem. Annals of Operations Research 122, 21-42. [4] Al-Sultan, K.S. and M.A. Al-Fawzan. 1999. A tabu search approach to the uncapacitated facility location problem. Annals of Operations Research 86, 91-103. [5] Al-Sultan, K.S., M.F. Hussain and J.S. Nizami. 1996. A genetic algorithm for the set covering problem. Journal of Operational Research Society 47(5), 702-709. [6] Arostegui, M., S. Kadipasaoglu and B. Khumawala. 2006. An empirical comparison of Tabu Search, Simulated Annealing, and Genetic Algorithms for facilities location problems. International Journal of Production Economics 103(2), 742-754. [7] Aytug, H. and C. Saydam. 2002. Solving large-scale maximum expected covering location problems by genetic algorithms: A comparative study. European Journal of Operational Research 141(3), 480-494. [8] Azevedo, J. A., M.E.O. Santos Costa, J. J. E.R. Silvestre Madeira and E.Q. Vieira Martins. 1993. An algorithm for the ranking of shortest paths. European Journal of Operational Research 69, 97-106. [9] Azevedo, J. A., J. J. E.R. Silvestre Madeira, E.Q. Vieira Martins and P. M.A. Pires. 1994. A computational improvement for a shortest paths ranking algorithm. European Journal of Operational Research 73, 188-191. [10] Barcel´oJ., E. Ferna´ ndez and K. Jornsten. 1991. Computational results from a new Lagrangean relaxation algorithm for the capacitated plant location problem. European Journal of Operational Research 53, 38-45. 229

[11] Battiti, R. and G. Tecchiolli. 1994. The reactive Tabu search. ORSA Journal on Computing, 6(2), 126-140. [12] Battiti, R. and G. Tecchiolli. 1995. Local search with memory: benchmarking RTS. Operations Research Spektrum 17(2/3), 67-86. [13] Bautista, J. and J. Pereira. 2007. A GRASP algorithm to solve the unicost set covering problem. omputers & Operations Research 34(10), 3162-3173. [14] Beasley, J.E.. 1990. OR-Library: Distribution test problems by electronic mail. Journal of Operational Research Society 41, 1069-1072. [15] Beasley, J.E.. 1993. Lagrangian heuristics for location problems. European Journal of Operational Research Society 65, 383-399. [16] Beasley, J.E. and P.C. Chu. 1996. A genetic algorithm for the set covering problem. European Journal of Operational Research 94, 392-404. [17] Belenguer, J.M. and E.Benavent. 2003. A cutting plane algorith, for the capacitated arc routing problem. Computers and Operations Research 30(5),705-28. [18] Beullens, P., L. Muyldermans, D. Cattrysse and D. van Oudheusden. 2003. A guided local search heuristic for the capacitated arc routing problem. European Journal of Operational Research 147, 629-643. [19] Brusco, M.J., L.W. Jacobs and G.M.Thompson. 1999. A morphing procedure to supplement a simulated annealing heuristic for cost- and coverage-correlated set-covering problems. Annals of Operations Research 86, 611-627. [20] Ceselli A. and G. Righini. 2005. A branch-and-price algorithm for the capacitated p-median problem. Networks 45 125-142. [21] Chaudhry, S., S. He and P. Chaudhry. 2003. Solving a class of facility location problems using genetic algorithms. Expert Systems 20(2), 86-91. [22] Chen, C. and C. Ting. 2008. Combining Lagrangian heuristic and Ant Colony System to solve the Single Source Capacitated Facility Location Problem. Transportation Research Part E-Logistics and Transportation Review 44(6), 1099-1122. [23] Chiyoshi, F. and D.G. Roberto. 2000. A statistical analysis of simulated annealing applied to the p-median problem. Annals of Operations Research 96, 61-74. [24] Christopher, R.H., J.A. Joines and M.G. Kays. 1996. Comparison of genetic algorithms, random start and two-opt switching for solving large location-allocation problems. Computer Operations Research 23(6), 587-596.

230

[25] Chung, C.H., D.A. Schilling and R. Carbone. 1983. The capacitated maximal covering problem: a heuristic solution. Modeling and Simulation 14, 1383-1388. [26] Church, R.. 2008. BEAMR: An exact and approximate model for the p-median problem. Computers & Operations Research 35(2), 417-426. [27] Church, R.L. and J.R. Current. 1993. Maximal covering tree problems. Naval Research Logistics 40, 129-142. [28] Church, R.L. and C.S. ReVelle. 1974. The maximal covering location problem. Papers of the Regional Science Association 32, 101-118. [29] Church, R.L. and C.S. ReVelle. 1976. Theoretical and computational links between p-median, location set covering, and maximal covering location problem. Geographical Analysis 8(4), 406-415. [30] Church, R.L., Current, J. and J. Storbeck. 1991. The maximal covering location problem. Papers of the Regional Science Association 32, 101-118. [31] Church, R.L. and M.E. Meadows. 1977. Results of a new approach to solving the p-median problem with maximum distance constraints. Geographical Analysis 9, 364-378. [32] Church, R.L. and M.E. Meadows. 1979. Location modeling utilizing maximum service distance criteria. Geographical Analysis 11, 358-373. [33] Contreras, I.A. and J.A. Diaz. 2008. Scatter search for the single source capacitated facility location problem. Annals of Operations Research 157(1), 73-89. [34] Correa, E.S., M.T.A. Steiner, A.A. Freitas and C. Carnieri. 2004. A genetic algorithm for solving a capacitated p-median problem. Numerical Algorithms 35(24), 373-388. [35] Crainic, T.G., M. Gendrequ, P. Hansen and N. Mladenovic. 2004. The cooperative parallel variable neighborhood search for the p-median. Journal of heuristics 10,293-314. [36] Crainic, G., M. Gendreau, P. Soriano and M. Toulouse. 1993. A tabu search procedure for multicommodity location/allocation with balancing requirements. Annals of Operations Research 41, 359-383. [37] Current, J.R.. 1988 The design of a hierarchical transportation network with transshipment facilities. Transportation Science 22, 270-277. [38] Current, J.R.. 1993. Multiple objectives in transportation network design and routing. European Journal of Operational Research 65(1), 1-3. 231

[39] Current, J.R. and H. Pirkul. 1991. The hierarchical network design problem with transshipment facilities. European Journal of Operational Research 51, 338-347. [40] Current, J.R., H. Pirkul and E. Rolland. 1994. Efficient Algorithms for Solving the Shortest Covering Path Problem. Transportation Sciences 28(4), 317-327. [41] Current, J.R., C. ReVelle and J. Cohon. 1984. The shortest covering path problem - an application of locaitonal constraints to network design. Journal of Regional Science 24(2), 161-183. [42] Current, J.R., C.S. ReVelle and J.L. Cohon. 1985. The maximum covering/shortest path problem: a multiobjective network design and routing formulation. European Journal of Operational Research 21, 189-199. [43] Current, J.R., C.S. ReVelle and J.L. Cohon. 1986. The hierarchical network design problem. European Journal of Operational Research 27, 57-66. [44] Current, J.R., C.S. ReVelle and J.L. Cohon. 1987. The median shortest path problem: a multiobjective approach to analyze cost vs. accessibility in the design of transportation networks. Transportation Science 21, 188-197. [45] Current, J.R., C.S. ReVelle and J.L. Cohon. 1988. The minimum covering/shortest path problem. Decision Sciences 19, 490-503. [46] Current, J.R. and D.A. Schilling. 1989. The covering salesman problem. Transportation Science 23, 208-212. [47] Current, J.R. and D.A. Schilling. 1994. Median tour and maximal covering tour problems: formulations and heuristics. European Journal of Operational Research 73, 114-126. [48] Current, J.R. and J.E. Storbeck. 1988. Capacitated covering models. Environment and Planning B-Planning Design 15(2), 153-163. [49] Current, J.R. and Hasan Pirkul. 1991. The hierarchical network design problem with transshipment facilities. European Journal of Operational Research 51(3), 338347. [50] Delmaire, H., J.A. D´ıaz, E. Fern´andez and M. Ortega. 1999. Reactive GRASP and Tabu Search based heuristics for the single source capacitated plant location problem. INFOR 37 (3), 194-225. [51] Diaz, J.A. and E. Fernandez. 2006. Hybrid Scatter Search and Path Relinking for the Capacitated p-Median Problem. European Journal of Operational Research 169(2), 570-585. 232

[52] Dominguez-Merino and E., J. Munoz-Perez. 2002. An Efficient Neural Network Algorithm for the p-Median Problem. Lecture Notes in Computer Science 2527, 460-469. [53] Dominguez, E. and J. Munoz. 2008. A neural model for the p-median problem.Computers & Operations Research 35(2), 404-416. [54] Dorigo, M., V. Maniezzo and A. Colorny. 1991. Ant System: An Autocatalytic Optimizing Process, Report no. TR-91-016 , Milan: Politecnici di Milano, 1991. [55] Downs, B.T. and J.D. Camm. 1996. An exact algorithm for the maximal covering problem. Naval Research Logistics 43(3), 435-461. [56] Ermis, M., F. Ulengin, A. Hacioglu. 2002. Vibrational genetic algorithm (Vga) for solving continuous covering location problems. Lecture Notes in Computer Science 2457, 293-302. [57] Estivill-castro, V.. 1999. Hybrid genetic algorithm for solving the p-median problem.Simulated Evolution and Learning 1585, 18-25. [58] Fathali, M.. 2006. A genetic algorithm for the p-median problem with pos/neg weights.Applied Mathematics and Computation 183(2), 1071-1083. [59] Frana, Paulo M., M. S. Nelida and V. Pureza. 1999. An adaptive tabu search algorithm for the capacitated clustering problem. International Transactions in Operational Research 6(6), 665-678. [60] Galvao, R.D., L.G.A. Espejo and B. Boffey. 2000. A comparison of Lagrangean and surrogate relaxations for the maximal covering location problem. European Journal of Operational Research 124(2), 377-389. [61] Galvao, R.D. and C. ReVelle. 1996. A Lagrangean heuristic for the maximal covering location problem. European Journal of Operational Research 88(1), 114123. [62] Garcia-Lopez, Felix, Belen Melian-Batista, Jose A. Moreno-Perez and J. Marcos Moreno-Vega. 2002. The parallel variable neighborhood search for the p-median problem. Journal of Heuristics 8, 375-388. [63] Garcia-Lopez, Felix, Belen Melian-Batista, Jose A. Moreno-Perez and J. Marcos Moreno-Vega. 2003. Parallelization of the scatter search for the p-median problem. Parallel Computing 29, 575-589. [64] Gendron, B., J. Potvin and P. Soriano. 2003. A tabu search with slope scaling for the multicommodity capacitated location problem with balancing requirements. Annals of Operations Research 122(1-4), 193-217. 233

[65] Glover, F.. 1989. Tabu Search - Part I. ORSA Journal on Computing 1, 190-206. [66] Glover, F.. 1990. Tabu Search - Part II. ORSA Journal on Computing 2, 4-32. [67] Glover, F.. 1990. Tabu Search-a Tutorial. Interfaces 20(4), 74-94. [68] Glover, F. and G. Kochenberger. 2003. Handbook of Metaheuristics. Kluwer Academic Publisher, Dordrecht. [69] Glover, F., M. Laguna and R. Marty. 2000. Fundamentals of scatter search and path relinking. Control and Cybernetics 39(3), 653-684. [70] Haghani, A.. 1996. Capacitated maximum covering location models: Formulations and solution procedures. Journal of Advanced Transportation 30 (3), 101-136. [71] Hansen, P. and N. Mladenovic. 1997. variable neighborhood search for the pmedian.Location Science 5(4), 207-226. [72] Hansen, P. and N. Mladenovic. 2001. Variable neighborhood search: Principles and applications. European Journal of Operational Research 130 (3), 449-467. [73] Hansen, P. and N. Mladenovic. 2008. Complement to a comparative analysis of heuristics for the p-median problem.Statistics and Computing 18(1), 41-46. [74] Hansen, P., N. Mladenovic and D. Perez-Britos. 2001. Variable neighborhood decomposition search. Journal of Heuristics 7 (4), 335-350. [75] Hansen, P., N. Mladenovic and J. Moreno Perez. 2008. Variable neighbourhood search: methods and applications. 4OR-A Quarterly Journal of Operations Research 6(4), 319-360. [76] Hifi, M., V.T. Paschos and V. Zissimopoulos. 2000. A neural network for the minimum set covering problem. Chaos Solutions & Fractals 11 (13), 2079-2089. [77] Hochbaum, D.S. and A. Pathria. 1998. Analysis of the greedy approach in problems of maximum k-coverage. Naval Research Logistics 45 (6), 615-627. [78] Hosage, C.M. and M.F. Goodchild. 1986. Discrete space location allocation solutions from genetic algorithms. Annals of Operations Research 6, 35-46. [79] Li, L.Y.O. and R.W. Eglese. 1996. An interactive algorithm for vehicle routeing for winter-gritting. Journal of the Operational Research Society 47, 217-28. [80] Jacobs, L.W. and M.J. Brusco. 1995. A local search heuristic for large setcovering problems. Naval Research Logistics 52, 1129-1140.

234

[81] Jaramillo, Jorge H., Joy Bhadury and Rajan Batta. 2002. On the use of genetic algorithms to solve location problems. Computers & Operations Research 29, 761779. [82] Jones, J. G., J.F. C. Hyde III and M.L. Meacham. 1986. Four analytical approaches for integrating land management and transportation planning on forest lands. Research paer INT -361, U.S. Department of Agriculture, Forest Service, Intermountain Research Station, Ogden, UT. [83] Keskin, B. and H. Uster. 2007. A scatter search-based heuristic to locate capacitated transshipment points. Computers & Operations Research 34(10), 3112-3125. [84] Khuller, S., U. Vishkin and N. Young. 1994. A primal dual parallel approximation technique applied to weighted set and vertex cover. Journal of Algorithms 17(2), 280-289. [85] Khumawala, B.M.. 1972. Branch and bound algorithms for locating emergency service facilities. Krannert Institue Paper No. 355, Purdue University, 1972. [86] Klose, A. and S. Gortz. 2007. A branch-and-price algorithm for the capacitated facility location problem.European Journal of Operational Research 179(3), 11091125. [87] Kochetov, Y., E. Alekseeva, T. Levanova and N. Loresh. 2005. Large neighborhood search for the p-median problem. Yugoslav Journal of Operations Research 15(1), 53-63. [88] Kratica, J., Z. Stanimirovic, D. Tokic and V. Filipovic. (2007). Two Genetic Algorithms for Solving the Uncapacitated Single Allocation p-hub Median Problem. European Journal of Operational Research 182(1), 15-28. [89] Kratica, J, D. Tosic, V. Filipovic and I. Ljubic. 2001. Solving the simple plant location problems by genetic algorithm. RAIRO Operations Research 35, 127-142. [90] Lan, G.H. and G.W. DePuy. 2006. On the effectiveness of incorporating randomness and memory into a multi-start metaheuristic with application to the Set Covering Problem. Computers & Industrial Engineering 51(3), 362-374. [91] Lari, I., F. Ricca and A. Scozzari. 2008. Comparing different metaheuristic approaches for the median path problem with bounded length. European Journal of Operational Research 190(3), 587-597. [92] Laurent, Michel. and V.H. Pascal. 2004. A simple tabu search for warehouse location. European Journal of Operational Research 157, 576-591.

235

[93] Levanova, T.V. and M.A. Loresh. 2004. Algorithms of Ant System and Simulated Annealing for the p-median Problem. Automation and Remote Control 65(3), 431438. [94] Lim, A., Z. Xu. 2003. A Fixed-Length Subset Genetic Algorithm for the pMedian Problem. Lecture Notes in Computer Science 2724, 1596-1597. [95] Liu, C.M., R.L. Kao and A.H. Wang. 1994. Solving location-allocation problems with rectilinear distances by simulated annealing. The Journal of the Operational Research Society 45,1304-1315. [96] Lorena, L. and L. deSouza-Lopez.1997. Genetic algorithms applied to computationally difficult set covering problems. Journal of the Operational Research Society 48, 440-445. [97] Lorena, L.A.N. and M.A. Pereira. 2002. A lagrangean/surrogate heuristic for the maximal covering location problem using Hillsman’s edition. International Journal of Industrial Engineering - Theory Applications and Practice 9(1), 57-67. [98] Lorena, L. and E.Senne. 2004. A column generation approach to capacitated p-median problems. Computers & Operations Research 31(6), 863-876. [99] Maniezzo, V., A. Mingozzi and R. Baldacci. 1998. A Bionomic Approach to the Capacitated p-Median Problem. Journal of Heuristics 4, 263-280. [100] Mladenovic, N., M. Labbe and P. Hansen. 2003. Solving the p-Center problem with Tabu Search and Variable Neighborhood Search. Networks 42(1), 48-64. [101] Megiddo, N., E. Zemel and S.L. Hakimi. 1983. The maximum coverage location problem. SIAM Journal on Algebraic and Discrete Methods 4(2), 253-261. [102] Minzu, V. and L. Beldiman. 2007. Some aspects concerning the implementation of a parallel hybrid metaheuristic. Engineering Applications of Artificial Intelligence 20(7), 993-999. [103] Mladenovic, N. and P. Hansen. 1997. Variable neighborhood search. Computers & Operations Research 24(11), 1097-1100. [104] Mladenovic, N., J.A. Moreno and J. Marcos Moreno-Vega. 2003. A chain interchange tabu search method in solving p-facility location-allocation problems. Working Paper. [105] Mladenovic, N., J. Brimberg, P. Hansen and J.A. Moreno-Perez. 2007. The p-Median Problem: A Survey of Metaheuristic Approaches. European Journal of Operational Research 179(3), 927-939. 236

[106] Moreno-Perez, J.A., J.L. Garcia-Roda and J.M. Moreno-Vega. 1994. A Parallel Genetic Algorithm for the Discrete p-Median Problem. Studies in Locational Analysis 7, 131-141. [107] Mulvey, J. M. and M. P. Beck. 1984. Solving capacitated clustering problem.European Journal of Operational Research 18, 339-348. [108] Murray, A.T. and R.L. Church. 1996. Applying simulated annealing to planning-location models. Journal of Heuristics 2, 31-53. [109] Nepal, K. and D. Park. 2005. Solving the median shortest path problem in the planning and design of urban transportation networks using a vector labeling algorithm. Transportation Planning and Technology 28(2), 113-133. [110] Obreque, C. and V. Marianov. 2007. An optimal procedure for solving the hierarchical network design problem. IIE TRANSACTIONS 39(5), 513-524. [111] Obreque, C., V. Marianov and M. Rios, M. 2008. Optimal design of hierarchical networks with free main path extremes. Operations Research Letters 36(3), 366371. [112] Ohlemuller, M.. 1997. Tabu search for large location-allocation problems.Journal of the Operational Research Society 48, 745-750. [113] Osman I.H. and N. Christofides. 1994. Capacitated clustering problems by hybrid simulated annealing and tabu search.International Transactions in Operational Research 1, 317-336. [114] Osman, I.H. and S. Ahmadi. 2007. Guided Construction Search Metaheuristics for the Capacitated p-Median Problem with Single Source Constraint.The Journal of the Operational Research Society 58 (1), 100-114. [115] Osman, I. H. and N. Christodes. 1994. Capacitated Clustering Problems by Hybrid Simulated Annealing and Tabu Search.International Transactions in Operational Research 1, 317-336. [116] Park T. and K.R. Ryu. 2004. Exploiting unexpressed genes for solving largescaled maximal covering problems. Lecture notes in artificial intelligence 3157, 342-351. [117] Pham, D.T. and D. Karaboga. 2000. Intelligent optimization techniques: genetic algorithms, tabu search, simulated annealing and neural networks. SpringerVerlag London Limited. [118] Pirkul H. and D. A. Schilling. 1988. The siting of emergency service facilities with workload capacities and backup service. Management Science 34(7) 896-908. 237

[119] Pirkul, H., J.Current and V. Nagarajan. 1991. The Hierarchical Network Design Problem: A New Formulation and Solution Procedures. textitTransportation Science 25(3), 175-183. [120] Pirkul, H. and D. A. Schilling. 1989. The capacitated maximal covering location problem with backup service. Annals of Operations Research 18, 141-154. [121] Pirkul, H. and D. A. Schilling. 1991. The Maximal Covering Location Problem with Capacities on Total Workload. Management Science 37 (2), 233-248. [122] Reeves, C.R.. 1993. Modern heuristic techniques for combinatorial problems. Americas by Halsted Press. [123] Resende M.G.C.. 1998. Computing approximate solutions of the maximum covering problem with GRASP. Journal of Heuristics 4 (2), 161-177. [124] Resende, M.G.C. and R.F. Werneck. 2004. A hybrid heuristic for the p-median problem. Journal of Heuristics 10(1), 59-88. [125] Resende, M. and R. Werneck. 2006. A hybrid multistart heuristic for the uncapacitated facility location problem.European Journal of Operational Research 174(1), 54-68. [126] Resende, M.G.C. and R. F. Werneck. 2007. A fast swap-based local search procedure for location problems.Annals of Operations Research 150(1), 205-230. [127] ReVelle, C., M. Scholssberg and J. Williams. 2008. Solving the maximal covering location problem with heuristic concentration. Computers & Operations Research 35(2), 427-435. [128] Rolland, E., D.A. Schilling and J.R.Current. 1996. An efficient tabu search procedure for the p-Median Problem. European Journal of Operational Research 96(2), 329-342. [129] Rosing, K.. 2000. Heuristic concentration: a study of stage one. Environment and Planning B-Planning & Design 27(1),137-150. [130] Rosing, K.E. and M. J.Hodgson. 2002. Heuristic concentration for the p-median : an example demonstrating how and why it works. Computers and Operations Research 29, 1317-1330. [131] Rosing, K.E.,C.S. ReVelle and D.A. Schilling. 1999. Theory and Methodology: A gamma heuristic for the p-median problem. European Journal of Operational Research 117, 522-532.

238

[132] Salhi, S.. 2002. Defining tabu list size and aspiration criterion within tabu search methods. Computers and Operations Research 29, 67-86. [133] Salhi, S. and M.D.H.Gamal. 2003. A generic algorithm based approach for uncapacitated continuous location-allocation problem. Annals of Operations Research 123, 203-222. [134] Santos, L., J. Coutinho-Rodrigues and J. Current. 2008. Implementing a multivehicle multi-route spatial decision support system for efficient trash collection in Portugal. Transportation Research Part A: Policy and Practice 42(6), 922-934. [135] Sum, M. and P.G. McKeown. 1993. Tabu Search applied to the general fixed charge problem. Annals of Operations Research 41, 405-420. [136] Sun, M.H.. 2006. Solving the uncapacitated facility location problem using tabu search. Computers & Operations Research 33(9), 2563-2589. [137] Solar, M., V. Parada and R. Urrutia. 2002. A parallel genetic algorithm to solve the set-covering problem. Computers & Operations Research 29 (9), 1221-1235. [138] Sun, T.H., L.J.H. Lee and F.C. Tien. 2006. Solving Single Allocation Uncapacitated p-Hub Median Problem with Hybrid Genetic Algorithms. International Journal of Industrial Engineering-Theory Applications and Practice 13(3), 280-291. [139] Swain, R.. 1971. A decomposition algorithm for a class of facility location algorithms. Ph.D. Thesis, Cornell University, Ithaca, NR, 1971. [140] Toregas,C.. 1971. Location under maximal travel time constraints. Ph.D. dissertation, Cornell University. [141] Vasko, F.J., P.J. Knolle and D.S.Spiegel. 2005. An empirical study of hybrid genetic algorithms for the set covering problem. Journal of the Operational Research Society 56(10), 1213-1223. [142] Voss, S.. 1996. A reverse elimination approach for the p-median problem.Studies in Locational Analysis 8, 49-58. [143] Wang, R.L. and K. Okazaki. 2007. An improved genetic algorithm with conditional genetic operators and its application to set-covering problem.Soft Computing 11(7), 687-694. [144] Weaver, J.R. and R. L. Church 1984. A comparison of direct and indirect primal heuristic/dual bounding solution procedures for the maximal covering location problem. Unpublished paper.

239

[145] Rosing, K.E. and C.S. ReVelle. 1997. Heuristic concentration: Two stage solution construction. European Journal of Operational Research 97(1), 75-86. [146] Rosing, K.E., C.S. ReVelle, E. Rolland, D.A. Schilling and J.R. Current. 1998. Heuristic concentration and Tabu search: A head to head comparison. European Journal of Operational Research 104(1), 93-99. [147] Yaguira, M., T. Yamaguchi and T. Ibaraki. 1997. A variable Depth search Algorithm for the Generahzed Assignment Problem, Second Metaheuristic International Conference, Sophia-Antipolis. [148] Yigit, V., M.E. Aydin and O.Turkbey. 2006. Solving large-scale uncapacitated facility location problems with evolutionary simulated annealing. International Journal of Production Research 44(22), 4773-4791. [149] Zhuo, G., G. M. Hokey and G. Mitsuo. 2003. A genetic algorithm approach to the bi-criteria allocation of customers to warehouses. International Journal of Production Economics 86, 35-45.

240