Eindhoven University of Technology

MASTER

Facility location optimization and maintenance routing in a railway network

Kho, M.L.

Award date: 2016

Link to publication

Disclaimer This document contains a student thesis (bachelor's or master's), as authored by a student at University of Technology. Student theses are made available in the TU/e repository upon obtaining the required degree. The grade received is not published on the document as presented in the repository. The required complexity or quality of research of student theses may vary by program, and the required minimum study period may vary in duration.

General rights Copyright and moral rights for the publications made accessible in the public portal are retained by the authors and/or other copyright owners and it is a condition of accessing publications that users recognise and abide by the legal requirements associated with these rights.

• Users may download and print one copy of any publication from the public portal for the purpose of private study or research. • You may not further distribute the material or use it for any profit-making activity or commercial gain Eindhoven, September 2016

Facility Location Optimization and Maintenance Routing in a Railway Network

By Mei Li Kho

Student identity number 0740938

in partial fulfilment of the requirements for the degree of

Master of Science in Operations Management and Logistics

Supervisors: dr. T.G. Martagan, TU/e dr. ir. J.J. Arts, TU/e D.D. Tonissen¨ MSc, NedTrain ir. B. Huisman, NedTrain

Abstract

In this master thesis, we construct and implement a mixed integer linear programming (MILP) problem to solve a maintenance location routing (MLR) problem for NedTrain. NedTrain is responsible for the maintenance of all trains in the and is therefore interested in the optimal location, size and number of their maintenance facilities. Since in the near future the train fleet will be expanded with additional trains of different types, it is important to have a general approach for solving the MLR problem, to have clear insight in the optimal solution in the current situation and to see how the current situation might be improved. We collect data from various sources within NedTrain, and adapt it such that it can be used as input for the model. Among these input parameters are train routes, train stations and train types, and several cost and capacity parameters. Via a flow graph model, we derive a total cost function and a set of linear constraints, that we implement and solve in Java using the CPLEX package. An extensive sensitivity analysis is performed to obtain an overview of the importance of the input parameters. We found that the possibility to interchange train units can reduce the total cost, and significant increases in deadheading cost per kilometer or the number of maintenance visits leads to opening more facilities. We show that having the possibility of opening Multiple facility sizes has a large influence on the optimal solution. We explore an extension of the model that takes into account the limitations of maintenance facilities regarding the number of different train types that can be maintained. The possible benefits of this extension are illustrated, but a full analysis of the possibilities of this extension is left for future work.

Preface

At this moment, I can hardly believe that in only a few days, I will not be a student anymore. It has been a little bit more than six years ago when I started my student life, and now I am just writing the last words of my master thesis project. I am thankful for everything I learned during my time at the TU/e and the many great people I met.

First of all, I would like to thank Tugce Martagan, my first supervisor of the TU/e. We met many times at the TU/e and also via Skype. Her clear opinion and insights helped me a lot during the last 8 months. When I was trying to do too many things at one time, she helped me to structure everything again. I would also like to thank Denise T¨onissen.First of all, she gave me the opportunity to do this project and consequently introduced me at NedTrain. Denise helped me a lot with understanding the model, my programming issues and designing the experiments. Furthermore, I would like to thank my second supervisor form the TU/e, Joachim Arts, for his valuable input and remarks on my thesis. Finally, I would like to thank Bob Huisman from NedTrain, for giving me the opportunity to execute this research at NedTrain.

I would also like to thank the employees at NedTrain, especially the other interns of the Maintenance Development team. I have spent many hours working on my thesis, but I was very grateful for all the breaks in between, including lunches, coffee and tea breaks, and fruit moments.

Additionally, I will send some more personal thank you notes to all my friends to express my gratitude. For now, I can only say: Thank you all so much for your support and inspira- tion.

Finally, I would not have been able to complete my studies without the support of my family. Thank you for everything papa, mama, Mei Siu and Mei Ying! Last but not least, I have to find a way to thank my boyfriend Jorg. Jorg, I think you read almost every word of this thesis. Thank you for helping, encouraging and loving me. You are the best, I love you.

Mei Li

2 Executive Summary

Problem Description This research is conducted at NedTrain. NedTrain is a maintenance company and a subsidiary of the Dutch Railways (the NS). Besides cleaning, repairing, revising and modernizing train units or their components, NedTrain is responsible for the planned maintenance activities that are performed in one of the maintenance facilities (OBs) regularly. Since NedTrain’s main customer NS Reizigers (NSR) is expanding the rolling stock fleet with new train units, the planned maintenance activities that NedTrain has to perform will increase in the near future. Therefore, the company is interested in the number maintenance facilities, their locations and their sizes that it needs in order to meet NSR’s demand. More specifically, NedTrain is interested in whether to expand one of the OBs or build a new one, given the existing OBs. In this thesis, we explain our Maintenance Location Routing model that is used to find the optimal number, size and location of the maintenance facilities by minimizing the total annual cost. The decision variables are whether a facility is opened or closed and the routing of the train units through the network. Opening a facility has an associated fixed OB cost which can depend on the size, when multiple facility sizes are included: the MLR-MFS model. The train units that need maintenance are routed from a train line to an OB. The maintenance routing of train units can occur in different ways, having different cost. Conclusions We tested our model with input data that was gathered at NedTrain and NSR or estimated. We made different test cases in order to perform a sensitivity analysis under different cir- cumstances. Next to that, we constructed a few practical cases to model NedTrain’s actual situation and to approach the problem statement. One of our main findings, is that from a green field approach, the annual costs are minimized by building one OB in the middle of the network. Furthermore, the transportation cost can be reduced up to 40% if the number of interchanges that can be performed yearly is not restricted, compared to the scenario where no interchanges are allowed at all. We tested the model with data concerning the current Dutch railway network. Although there are several uncertainties regarding the costs the solutions are feasible. Our model can be used for strategic location planning decisions in a railway network. The model is programmed in Java and uses the optimization tool CPLEX. The program is linked to Excel sheets from which the parameter values are imported. Many of these values can be easily changed. Also new train types or changes in the line planning schedule can be adjusted. Our model, where the option of including multiple facility sizes is implemented, gives insight in expanding the existing OBs or building one or more new OBs when the demand for maintenance is increased. Based on our assumptions, our experiments indicate that building one or two additional ‘small’ OBs, located in Zl and Almo, is beneficial over expanding the current OBs. Having additional locations reduces the deadheading cost significantly. Further research should be done on both the model level and on the specific situation of NedTrain. It would be valuable to look into an extension with resources, for which we already made a start. Specifically for NedTrain, a thorough validation of the deadheading and fixed cost is needed, and a more detailed examination of the possibilities regarding candidate locations and interchange locations.

3 Contents

1 Introduction 11 1.1 Company Background ...... 11 1.1.1 NS ...... 11 1.1.2 NedTrain ...... 11 1.2 Current Railway Network and Maintenance Locations ...... 12 1.3 Research Questions and Project Goals ...... 14 1.4 Structure of the Thesis ...... 15

2 Literature Review/Previous Research 16 2.1 Maintenance and reliability ...... 16 2.1.1 Maintenance Strategy at NedTrain ...... 17 2.1.2 Performance Centered Maintenance ...... 17 2.2 Strategic location planning ...... 18 2.3 Maintenance routing ...... 19 2.4 Maintenance Routing in an Aircraft Environment ...... 21 2.5 Maintenance routing and location planning for NedTrain ...... 21 2.6 Mixed Integer Linear Programming Models with applications in transportation problems ...... 22 2.6.1 Rolling Stock Rostering Optimization Under Maintenance Constraints 22 2.6.2 Model and a solution algorithm for the dynamic resource allocation problem for large-scale transportation network evacuation ...... 22

3 Problem Formulation and Mathematical Model 24 3.1 Processes and definitions at NedTrain ...... 24 3.1.1 The Maintenance Depots ...... 24 3.1.2 Planning process ...... 25 3.1.3 Maintenance routing ...... 26 3.2 Railway Network Input ...... 27 3.3 Transition from Network to Flow Graph ...... 28 3.4 Maintenance Location Routing Model with Multiple Facility Sizes ...... 30 3.4.1 Decision variables and parameters ...... 30 3.4.2 Objective and constraints ...... 32

4 Data Analysis 34 4.1 Train Units ...... 34 4.2 Train Lines ...... 37

4 4.3 End Stations and Candidate Facility Locations ...... 39

5 Numerical Analysis 42 5.1 Theoretical Cases ...... 42 5.1.1 Base Case ...... 43 5.1.2 Varying Maintenance Visits Case ...... 45 5.1.3 Varying Facility Cost Case ...... 46 5.1.4 Varying OB Capacity Case ...... 47 5.1.5 Varying Budget Case ...... 48 5.1.6 Varying Deadheading Cost Case ...... 51 5.2 Varying combinations of two parameters ...... 52 5.2.1 Combining Deadheading and Fixed Cost ...... 52 5.2.2 Combining Deadheading and Budget ...... 54 5.2.3 Combining Deadheading and Maintenance Visits ...... 55 5.3 Practical Cases with Three Facility Sizes ...... 57 5.3.1 Adaptation of the Green Field Case ...... 58 5.3.2 Combined Case ...... 59 5.3.3 Variations on the Combined Case ...... 60 5.3.4 NedTrain Case ...... 61

6 Model Extensions 64 6.1 Type-specific Maintenance Depots ...... 64 6.1.1 Train type distribution ...... 64 6.1.2 Adjustable capacity per train type ...... 66 6.1.3 Limited Resources per OB ...... 68 6.2 Unplanned Maintenance ...... 69

7 Conclusions, Recommendations, and Further Research 71 7.1 Summary and Conclusions ...... 71 7.2 Recommendations and Further Research ...... 74

A Model Implementation 75 A.1 Data Read-In and Case Construction ...... 75 A.1.1 TrainLine Class ...... 75 A.1.2 Problem Class ...... 76 A.2 Objects, Flow Graph and Cplex ...... 79 A.2.1 Main ...... 79 A.2.2 NTrProblem Class ...... 79 A.2.3 MixedInteger Class ...... 81

B Supporting Graphics 86

C Supporting Tables 88 C.1 Distance Matrix ...... 88 C.2 List of end stations ...... 89 C.3 Results VBC, Section 5.1 ...... 90 C.4 Results Section 5.3.2: Combined Case Variations ...... 90

5 D Confidential Appendix 92

6 List of Figures

1.1 Organogram of the NS ...... 12 1.2 The Dutch railway network and NedTrain’s locations. The red dots are the OBs, the orange ones the TCs and the white ones all other locations, mostly SBs...... 13

3.1 The Dutch railway network and NedTrain’s locations. The red dots are the OBs, the orange ones the TCs and the white ones all other locations, mostly SBs...... 25 3.2 A small example of the network, with three end stations that are connected by train lines. There are three different train types that serve the train lines. Interchanging two SLT train units is possible...... 28 3.3 A small example of the flow graph. Apart from the source and the sink, we have the four bluish colored vertices representing train lines v ∈ VT and three yellow colored vertices representing candidate facilities v ∈ VF . The blue arcs between the train line vertices are representing an interchange. The dashed arcs are for the flow from train lines to the OB...... 30

4.1 Deadheading cost per kilometer ...... 37 4.2 Scaled fixed OB cost, dependent on the average price per m2 ground in the province where the candidate facility is located, [website Grondprijzen, 2016]. 40

5.1 An overview of the cases used for the sensitivity analysis. In each of the cases one parameter in the model is varied, creating a number of different scenarios for each case...... 43 5.2 BC: Circle diagrams presenting total annual cost distribution on the left and more specific distribution of the flow on the right...... 45 5.3 Number of interchanges in the solution of the VBC. The budget is increased in steps of 1000 until 10,000...... 49 5.4 A graphical overview of the number of interchanges at each end station per scenario of the VBC. Note that the budget is e500 in scenario 1 and increased with e500 in each step. Until scenario 8, the budget is always fully used, only in scenario 9 it is not...... 50 5.5 A graphical representation of the number of OBs that are opened with four fixed OB cost settings and increasing the deadheading cost per km...... 53 5.6 A graphical representation of the total transportation cost with four fixed OB cost settings and increasing the deadheading cost per km...... 53 5.7 Schematic overview of the practical cases...... 57

7 6.1 The distribution of the train types in the OBs, when the budget is 0 and all train types can and cannot go to each OB and in Figure 6.1a and Figure 6.1b respectively. Furthermore, when the budget is unlimited, and all train types can and cannot go to each OB in Figure 6.1c and Figure 6.1d, respectively. . 66

B.1 Railway Map Netherlands 2016 ...... 86 B.2 An overview of scenario 9 of the VBC: Interchanges in each end station are colored yellow. The bigger the dot the more interchanges are done yearly. The blue dot in Ut represents the location of the OB that is opened. See the corresponding results in Table 4.3...... 87

8 List of Tables

4.1 Input parameters for the train units. These numbers are based on estimates, [van Uden, 2015] and [Smit, 2015]...... 35 4.2 An example of 9 out of 15290 lines of raw data regarding train lines . . . . . 37 4.3 An example of 6 out of 96 train lines, with both end stations, the train type, the length in km and the average number of maintenance visits per year that originate from the train line...... 39

5.1 BaseCase: Input Transportation Cost per Train Type ...... 44 5.2 Overview of the input parameters per case...... 44 5.3 VMCV: Input and Results ...... 46 5.4 VMVC: Solution ...... 46 5.5 VFCC: Input and Results ...... 47 5.6 VFCC: Number of maintenance visits for each open facility per scenario . . . 47 5.7 VOBCC: Input and Results ...... 48 5.8 VOBCC: Number of maintenance visits in one year for each open facility per scenario ...... 48 5.9 VBC: Input and Results ...... 50 5.10 VDCC: Input and results ...... 51 5.11 VDCC: Solution ...... 52 5.12 An overview of the locations that are chosen against the optimal number of OBs. For each number of OBs the locations that are chosen are the same. . . 54 5.13 An overview of the input and the results when varying deadheading cost with- out limiting the interchange budget. The point of reference for these results is scenario 9 of the VBC, see Table 5.9...... 55 5.14 The solution when varying deadheading cost without limiting the interchange budget...... 55 5.15 An overview of the total cost as a result of doubling the number of maintenance visits and increasing the factor of the deadheading cost per km...... 56 5.16 Overview of the input parameter settings of the Green Field Case ...... 58 5.17 Solution of the GFC with n =3...... 58 5.18 Solution of the GFC with province dependent fixed OB cost ...... 59 5.19 NedTrain’s existing OBs get a medium OB for free...... 59 5.20 Overview of the input parameter settings of the Green Field Case ...... 60 5.21 CC: Solution on the number of OBs and their sizes...... 60 5.22 Overview of the input parameter settings of the NedTrain Case ...... 62 5.23 Solution NedTrain Case ...... 62

9 5.24 End stations where interchanges are performed, for the NedTrain case including increases in the number of maintenance visits with 20% and 40%...... 63

6.1 Number of train units of each train type and associated last train lines where the units came from...... 65 6.2 Overview of the number of maintenance visits per type in the OBs Gn, Gvc andMt ...... 66 6.3 The total cost per case as explained in 6.1...... 68 6.4 Number of broken train units that were towed to an OB in 2015 ...... 70

C.1 A small section (13 by 13 instead of the original 407 by 407 matrix) of the distance matrix between train stations in the Netherlands ...... 88 C.2 Abbreviations of the 57 end stations that are used as input...... 89 C.3 Number of interchanges per end station per scenario in the VBC...... 90 C.4 The solution for CC-a, where the factor that is multiplied with the deadheading cost per kilometer is increased up to 6...... 91 C.5 The solution for CC-b. In this case we increased the number of maintenance visits per year up to 150%...... 91 C.6 The solution for CC-c, where the budget is increased up to 3000 interchanges per year (for higher values of the budget the solution remains the same). On the left side of the vertical line, we present the results without interchange capacity restrictions on the end stations. On the right side, we present the results including the interchange capacity per end station. This means that in some of the end stations no interchanges are possible...... 91

10 Chapter 1

Introduction

The research in this Master thesis is conducted in NedTrain, a company that is responsible for the maintenance of most of the trains in the Dutch railway system. This thesis is not so much concerned with the maintenance process itself, but rather focuses on a location planning problem related to the maintenance activities. We start this introduction by providing a brief background of the NS in Section1.1.1 and NedTrain in Section 1.1.2. Then we describe the current situation in Section 1.2, and define the problem statement. Furthermore, we state the research goals and questions that are central in this thesis in Section 1.3. Finally, we explain the the structure of the thesis in Section 1.4.

1.1 Company Background

1.1.1NS The NS is the principal passenger railway operator in the Netherlands and is fully owned by the state. The company was founded in 1938 when the two largest Dutch railway compa- nies merged [website NS, 2016]. Nowadays, NS’ vision is to organize comfortable, easy and efficient door-to-door transportation for her customers and keep them up-to-date with travel information to provide smart travel options. The NS can be divided into Hub Development & Exploitation, and Passenger Transportation, see Figure 1.1 represents the organogram of the NS. Within Passenger Transportation there are again two sub departments: Transportation and Maintenance. NS Reizigers (NS Passengers), from now on abbreviated NSR, and Abel- lio are responsible for national passenger transportation within the Netherlands and outside the Netherlands (mostly Germany and the UK), respectively. Furthermore, NS International operates the international train connections from the Netherlands to Belgium, Germany and France. On the other hand, NedTrain focuses on the maintenance of the trains of the NS, and is the company where this research is conducted. Therefore we provide background information of NedTrain in the next section.

1.1.2 NedTrain NedTrain is owned by the NS Group (Dutch Railway Group) and has its headquarters in . The main activities that NedTrain performs, include daily cleaning activities, short- term and regular inspections, and on the longer term modernizing and refurbishing the trains [website NedTrain, 2016]. Besides the main customer NSR, NedTrain also maintains the

11 Figure 1.1: Organogram of the NS rolling stock for other passenger transportation companies in the Netherlands. Since NSR and NedTrain are both subsidiaries of the NS group, and they have a ‘customer-supplier’- relationship, they work closely together. Their shared goal is to help more than 1.2 million people to get to their destinations safely every day. Apart from this, they both have their own core goals. For NSR, this includes making sure that the train units ride on time, that there are enough train units available, providing good service and clear travel information and managing adequate solutions in case of disturbances. In case of availability of train units, NedTrain plays a significant role, because in order to perform maintenance, inspections, and for educational purposes and other projects, train units are taken out of service. NedTrain’s goal is minimizing the maintenance cost under the constraint that a sufficient number of train units is available for NSR. The 2900 employees of NedTrain are roughly divided over four business units, which are Fleet Services, Refurbishment & Overhaul, Operations & Services, and Business & De- velopment. Fleet Services takes care of development, monitoring and improvement of the maintenance schedules, requirements and concepts. Within Fleet Services there are three sub-departments: Maintenance Management, Fleet Management and Projects. This thesis is conducted within the Maintenance Development group, which is part of the Maintenance Management department.

1.2 Current Railway Network and Maintenance Locations

The rail network in the Netherlands consists of around 7000 km of rails and more than 400 sta- tions. Currently, NedTrain has 30 maintenance facilities spread over the Netherlands. There are five different types of facilities: Service Companies (SBs), Maintenance Depots (OBs), Re- furbishment and Overhaul Workshops, Components Companies and Technical Centers (TCs). Every train needs a check-up every 48 hours. The SBs take care of this daily maintenance and also do the cleaning activities. In the OBs the planned maintenance activities are performed, which is also called short cyclic maintenance. In the Refurbishment and Overhaul Workshop

12 Figure 1.2: The Dutch railway network and NedTrain’s locations. The red dots are the OBs, the orange ones the TCs and the white ones all other locations, mostly SBs. extensive revision of the material is done. Furthermore, train components are repaired and refurbished in the Components Companies. In 2014, TCs were introduced and built in two cities close to the train stations. The main reason for NedTrain was maintaining the trains close by the passenger transportation circulation in order to maximize the availability of the trains [website NedTrain, 2016]. In Figure 1.2 the railway network and the locations of Ned- Train are depicted. The red colored dots are the OBs and the orange ones are the TCs. The white vertices are other maintenance locations of NedTrain, most of them are SBs. Within three years from now, NSR is expanding the fleet with three new train types, to respond to the forecast of a grow in the number of train passengers for the Dutch Railway network [NS and ProRail, 2014]. All those new trains need planned maintenance as well. As a result NedTrain has to anticipate to process around 40% more maintenance visits. At the moment, they expect that the current maintenance facilities do not have sufficient capacity to handle this change. NedTrain is considering three main options: building a

13 new OB, expanding the existing ones, or decreasing the throughput time per maintenance visit such that enough capacity is left for new trains. In this project, we focus on location strategy to discover the possibilities for the first option to tackle the future capacity problem. Furthermore, the second option is included in the model that we explain in Chapter 3. Since we modeled the possibility of Multiple facility sizes, we can investigate whether expanding the existing OBs is a advantageous regarding total annual costs.

1.3 Research Questions and Project Goals

NedTrain is interested in finding the optimal location for building a new Maintenance De- pot (OB), where the planned maintenance activities are carried out, due to expansion of the rolling stock fleet in the near future. Moreover, they are interested in the optimal number of facilities and the locations in general. Therefore the research in this thesis is driven by the question:

How many maintenance facilities are needed in the Dutch railway network and where should these be located?

In [T¨onissenet al., 2016] a Maintenance Location Routing (MLR) model to find the optimal number and the locations of maintenance facilities in a railway network is introduced. This model forms the basis of our approach. In this model, it is currently only possible to open facilities that all have the same size and every facility can perform maintenance on all train types. Furthermore, the model is extensively tested on theoretical networks with parameters with a stochastic nature, but it is not yet applied to real data of the current railway network. There is a large amount of data available at NedTrain, but it is not straightforward to include it in the model. To progress in these directions, we formulate the following subquestions:

1. How can the MLR model be adapted to include the possibility of opening facilities with different sizes and how does this change the optimal solution?

2. What raw data is needed and how should this data be manipulated to make it suitable as input for the MLR model?

3. Using the current railway network situation, what is the effect on the optimal solution of each of the model input parameters separately? How do various input values of the network interact with each other and what is the effect on the optimal solution?

4. Under the assumption of an increased number of maintenance visits in the near future, is it better for NedTrain to open a new OB or to expand the existing OBs?

5. Is it possible and beneficial to extend the model such that maintenance facilities become type-specific?

In order to answer these questions, we need to implement the model using the program- ming language Java, in combination with the optimization package CPLEX. The data should be gathered from different business units within NedTrain and NSR. We aim to make the Java implementation compatible with Excel data, to make the use of data clear and flexible.

14 Regarding the model extensions to multiple facility sizes and type-specific maintenance facilities, the goal is to describe them in mathematical terms, include them in the imple- mentation and explore how they influence the solution. By testing the model with various different cases and parameter choices, with and without the extensions, we aim to obtain an overview of which parameters are valuable and how useful these extensions are.

1.4 Structure of the Thesis

The remainder of this thesis is structured as follows. In Chapter 2, we discuss the existing literature and preliminary research which is related to this project. We explain the main strategies that NedTrain uses to maintain many different systems and parts of the trains. Furthermore, we explain the contribution of this thesis to the literature. In Chapter 3, we introduce the Maintenance Location Routing Model with Multiple Facility Sizes. In this chapter we first explain how the original railway network is and how we translate it to a more mathematical flow graph. Then we formulate the mathematical model in full detail. In Chapter 4 we describe, validate and analyze the data, that is gathered from various sources within NedTrain and NSR. Afterwards, in Chapter 5, we set up a number of theoretical cases to test the solution to its sensitivity and we also present the results of more practice based cases. We work towards a case which reflects the situation of NedTrain. Furthermore, we explain how we extend the model in Chapter 6. Finally, in Chapter 7 we summarize the answers on the research questions, and draw our final conclusions of the research. We give our recommendations to NedTrain and suggestions for further research.

15 Chapter 2

Literature Review/Previous Research

In this chapter, we provide a review of literature related to the maintenance problem of NedTrain that is central in this thesis. We start on a quite generic level, describing the concepts of maintenance and strategic location planning in Section 2.1 and why they are important in industrial engineering. After this, we discuss a number of papers that are more closely related to the project.

2.1 Maintenance and reliability

There are multiple factors that are considered important for the quality of a product. Re- liability and maintainability are two of those factors, and therefore they play an important role for many companies. Better reliability and maintainability leads to better availability. According to [Ebeling, 1997], the definition of availability is the probability that a system is performing its required function at a given point in time. Reliability is the probability that a system performs a required function for a certain period of time and maintainability is the probability that a failed system is repaired within a period of time. NedTrain is not responsible for the production of the rolling stock, but they are responsible for the maintenance of the train units. This means that they cannot influence the reliability of the fleet that much, but NedTrain’s maintenance strategy does have major influence on the availability. Reliability models are mathematical descriptions of the reliability behavior of products. Based on the model that is used, different choices for the maintenance strategy can be made. In general, these strategies can be either reactive or proactive. These days, it becomes more and more important to companies that the products they produce or the services they deliver are of high quality. As mentioned earlier, one way to im- prove that is by replacing reactive maintenance styles by proactive ones, such as preventive or predictive maintenance or even an aggressive strategy such as total productive maintenance as suggested in [Swanson, 2001]. As also described in last mentioned paper, the difference between reactive and proactive maintenance is that with a reactive maintenance approach, items are repaired when its broken, or when it is not functioning as required. By using this approach, companies can minimize the amount of manpower and money spent on maintenance according to [Vanzile and Otis, 1992]. On the other hand, there is the proactive approach,

16 where items are checked upon and undergo maintenance in order to prevent them from failing. This can be done in fixed maintenance cycles of any time interval (time based maintenance), or after a fixed amount of operating kilometers or produced items (use based maintenance). In the category of proactive maintenance policies, there are some slight differences between preventive maintenance and predictive maintenance. Preventive maintenance focuses on op- eration days of a machine or machine usage, so it is also referred to as time-based or use-based maintenance respectively. Next to this, predictive maintenance is also referred to as conditioned-based maintenance. In the latter approach, the physical condition of the equipment determines when maintenance activities are applied. Proactive maintenance approaches aim to minimize the amount of breakdowns and with monitoring techniques one can detect the current state of a product or machine. Therefore, it is easier to predict when the machine should be maintained in general or which specific parts should be replaced. All this decreases the probability of unexpected equipment failures, which eventually results in maintenance cost reductions.

2.1.1 Maintenance Strategy at NedTrain At NedTrain in general, a combination of different maintenance policies is used. The man- ager of the department ‘Maintenance Systems Management’, wrote a reference work on the maintenance systematics (Dutch: Naslagwerk instandhoudingssystematiek) where he explains the purpose of maintenance and the conservation of the maintenance control system [van de Velpen, 2013]. Furthermore, he describes the maintenance policies and rules. NedTrain maintains the trains of main operator NSR, as well as some other railway opera- tors. Therefore, there are many requirements NedTrain has to meet. There are requirements regarding the Dutch government policy and international (European Union) policies. Besides that, NedTrain has performance agreements with the railway operators (who own the trains) regarding life cycle costs, safety, punctuality, cleanliness and durability.

2.1.2 Performance Centered Maintenance Since a train consists of many parts and systems, it is important for NedTrain to have a solid maintenance strategy to keep the quality and safety of the trains as high as possible. NedTrain classifies its maintenance strategy as Performance Centered Maintenance (PCM) [van de Velpen, 2013]. This means NedTrain focuses on the clients’ requirements and its own company targets when the maintenance strategies are developed and improved. It is based on both Risk Based Maintenance (RBM) and Reliability Centered Maintenance (RCM). In short, the RBM strategy can be broken down into three steps according to [Khan and Haddara, 2003]. The first step includes risk determination of manageable units, where the risks are identified and estimated one unit at a time. In the second step, the risks are evaluated and acceptance risk criteria are set up. In the last step, a maintenance planning is developed based upon the risk criteria and the maintenance is scheduled. Besides using RBM, NedTrain also uses the RCM strategy, which is a high-level preventive maintenance strategy that focuses on system and equipment functions [Duffuaa and Raouf, 2015]. It is derived from studies in the aviation sector and uses the failure mode, effect, and criticality analysis (FMECA) tool. In this technique the critical parts of a system are identified as well as all possible ways in which they can fail. After that, the effects of failure are assessed and determined whether they are

17 acceptable or not. Similar to this strategy, NedTrain uses tools (FMECA and a PCM optimization tool) to determine which maintenance strategy fits best to specific functions or subfunctions of a system that needs maintenance. The maintenance policies that are used and classified by NedTrain are Use Base Maintenance, Condition Based Maintenance and Failure Based Maintenance. Use Base Maintenance relates to the number of operating days of a train, where each train type has its own ‘maximum’ number of days, before it has to visit a maintenance facility. Failure based maintenance is the policy that is used when defects occur. This is also referred to as reactive or unplanned maintenance and is much harder to predict, because of the stochastic nature of failures. The PCM tool, which is a mathematical optimization tool, can test different maintenance policies and parameters and calculates the best solution for a maintenance concept. With the FMECA tool, the solution provided by the PCM tool tests different requirements that NedTrain has to meet according to contracts.

2.2 Strategic location planning

After a more general introduction about maintenance, we now introduce the concept of lo- cation planning and discuss literature regarding this topic. Many papers are written in this field. For example in [Aikens, 1985], the facility location models for distribution planning are discussed. Also [Melo et al., 2009] address strategic facility location decisions. They focus on the relevance of location planning problems in supply chain network design. One paper where facility location is combined with maintenance routing is [Van Ommeren et al., 2006]. The authors study a location problem for repair shops. They focus on the situation where the location of a central repair shop is fixed and the goal is to determine the locations of several local repair shops. Factors that play a role are e.g. the cost of opening a facility, the distance that customers need to travel before arriving at a repair shop and the cost of transportation between the local and central repair shops. The authors present a model that takes cost criteria and quality criteria into account. The model is not completely deterministic: it uses deterministic transportation times (between local and central repair shops), but it uses M/M/k queues to model the repair shops. This means that there are k repair shops, the arrival times are Poisson distributed and the service time of each server is exponentially distributed. They consider the following costs: opening a repair shop, unit cost of holding stock, server cost per unit, and external transportation cost of customers. Furthermore, they show a possibility of combining a local search heuristic and the procedure for facility location problems in order to find a solution to the problem. A limitation of the model is that at any location, an unlimited number of servers can be installed, although in practice the number of servers and thereby the capacity of a repair shop is limited. Moreover, they assume that customers always bring their product to the closest repair shop, but in practice this does not have to be the case. A big difference between this model and the model presented in our research is that in the model only corrective maintenance is applied, while we focus on planned preventive main- tenance. Another difference is that the authors take spare parts management into account as they focus on the inventory of items at the local repair shops. We combine the loca- tion strategy problem with maintenance routing and assume unlimited spare parts in stock

18 at the facilities. In our model, this assumption is reasonable because we are dealing with planned maintenance. Consequently, it is much easier to predict which items need to be in stock. Moreover, we aim to solve the model and find the optimal solution under specified assumptions while [Van Ommeren et al., 2006] use heuristics to find feasible solutions. An interesting approach is taking the details of the stock levels of the repair shops into account. In our project, it could be useful to use similar strategies by modeling capacity limitations regarding resources. Another paper about facility location applied on a railroad network is [Xie et al., 2016], where research is done about optimizing location and capacity for multiply types of locomo- tive maintenance shops. The object of interest is the railroad network in North America, where locomotives must receive periodic maintenance service. Locomotives can break down during shipment operations and demand repair and as a result they need to be repaired in a maintenance shop. A maintenance shop is characterized by the types of locomotives it can maintain, and the level of service it can provide. The authors present a mixed integer linear programming model to optimize the location and capacity of these locomotive maintenance shops. The objective of this model is to minimize the sum of the costs for building new (or shutting down existing) maintenance shops, the costs for capacity expansion (or reduction), and the costs for shipping broken locomotives to a suitable shop. The cost for opening a facility depends on the type of the facility, which is can be an interesting approach for our project while considering multiple facilities sizes. [Xie et al., 2016] use a shortest path algorithm to route the locomotives from their shipment destinations to the maintenance shops. Moreover, a new network reduction and multigraph transformation method is proposed to assess the least-cost option among multiple ways to transport broken locomotives. The authors perform a numerical study and conclude that they have found a quite robust solution to the construction cost of the facilities, but travel cost has much more significant influence on the solution.

2.3 Maintenance routing

Next to location planning, an important concept in the thesis is maintenance routing. The two papers [Mar´otiand Kroon, 2005, Mar´otiand Kroon, 2007] are among the first papers that describe the maintenance routing problem for the Dutch railway operator NSR. As explained in [Pˆeniˆcka et al., 2003], maintenance routing is one of the two options of adding maintenance to the rolling stock plans. It means that train units can have so-called ‘maintenance oppor- tunities’ instead of fixing the physical train unit into a certain maintenance schedule. The drawback of planning maintenance visits in advance is that, due to disruptions, it is hard to meet the planning, and rescheduling gives a lot of extra work. As for maintenance routing, the approach for planning maintenance visits is based on statistics of actually elapsed kilometers and operating hours or days. NedTrain uses the latter approach and thus set a maximum mileage and a maximum number of operating days per train type. All train units are monitored on those two criteria and as soon as one of those criteria reached is maximum, the train unit is marked as urgent. This means, it will be routed to a maintenance depot to undergo maintenance. Now that we explained in more detail what maintenance routing is, we continue with the two papers [Mar´otiand Kroon, 2005, Mar´otiand Kroon, 2007]. Mar´otiand Kroon conducted their research at NSR. One of the main findings is that the bottleneck in maintenance routing

19 in a railroad network are the possible shunting movements. Local shunting crews decide how they plan the shunting movements on the moment the short term planning is known. The authors’ suggestion is to use a decision support system for judging the feasibility and difficulty of the by the model suggested interchange options. They present a different model in each of their papers. The first model, the ‘Transition model’, is based on a multi depot vehicle routing problem and has similar methods and results as those in [Carraresi and Gallo, 1984] and [Bertossi et al., 1987]. Similar to our MLR model, the Transition Model is a directed flow graph with the objective of minimizing cost. The input of the model consists of more detailed data, such as the rolling stock schedule including the tasks of each train unit. The shunting movements are evaluated with estimated cost values of the practicability of the interchange. The authors conclude that the Transition model is an appropriate basis for a decision support system for NSR. In their second paper they introduce the ‘Interchange model’ with the goal to develop an interactive decision support system. This system should support NSR’s planners with making adjustments for maintenance routing planners by proposing all interchange possibilities. The Interchange model focuses even more on the details of the shunting process, which usually is the key factor of interchanging train units. Since the authors take these details into account, the solutions have higher probability of success in practice than with the Transition model. An important result the authors have found, is that there are usually enough interchange possibilities, but delays and disruptions cause problems for the shunting crew to actually in- terchange train units. This is why in practice few interchanges or more expensive maintenance routings (for example empty train rides) are performed. Though the Interchange model is concluded to be a supportive and useful tool for main- tenance planners, it has some drawbacks. First, the amount of required input data makes it hard to collect. Next to that, the operational nature of the research requires more precise information on the physical location of train units. When an interchange possibility is cre- ated, the authors only take into account the amount of available time. Besides the time, it is important that the train unit that needs to be interchanged is free to shunt, i.e., not located in between two other train units. The Transition and the Interchange Model are related to the Maintenance Location Rout- ing model that we propose in this project, since the possibility to interchange train units is modeled. However, our model focuses on strategic location optimization while the Transition and Interchange Model address the operational problem regarding shunting movements that are needed for interchanging train units. Another recently published article on this topic, discusses an optimization method for motor train set assignment and maintenance scheduling problem, see [Li et al., 2016]. The authors first investigated the special maintenance items of motor train sets and the associated maintenance cycles. They propose a binary integer programming model for the assignment of the motor train sets and the maintenance scheduling, where the objective is to maximize the accumulated mileage before each maintenance visit and minimize the number of train sets at the same time. Since the model is not linear it is not possible to directly solve it with software. Therefore, the authors have designed a heuristic solution strategy to tackle the problem. Also they perform a case study with partial actual data of the Chinese high-speed railway. They conclude that a satisfactory optimization can be achieved by the mathematical model and the proposed solution strategy, but there are still many complex factors that influence the train set assignment and maintenance scheduling in reality.

20 2.4 Maintenance Routing in an Aircraft Environment

A comparative field of interest, is maintenance routing for aircrafts. An important similarity is that performing maintenance is crucial for the safety of the passengers. Also optimal maintenance routing strategies can lead to minimized withdrawal of aircrafts or train units from the circulation. In [Talluri, 1998] a four-day aircraft maintenance routing problem is described. Since the aircraft utilization should be high, routine maintenance is only done at night. Within four days of flying since the last check, an aircraft has to visit a maintenance station. The maintenance requirements are specific for each equipment type and can also differ from airline to airline. In this case, the problem is modeled as a directed graph with maintenance stations and non maintenance stations as nodes. Aircrafts are routed to a station (node) each night, where at most the fourth night this must be a maintenance station. The author aims to solve this four-day periodic visit problem as a bipartite matching problem, and presents heuristics for a certain balance-check requirement. Strongly related to this paper, is the paper [Gopalan and Talluri, 1998], where a similar problem is investigated. Instead of the four-day version, they solve a three-day aircraft main- tenance routing problem and conclude that it is easier to solve. They introduce a polynomial- time algorithm and implement it in the three-day routing system. The result is that lines of flying (which specify the origin and destination of an airplane on one day) are created which are feasible in practice and satisfy the conditions for maintenance routing. The papers discussed in this section so far, are mainly focusing on maintenance routing and the locations of the maintenance stations are fixed. However, there are two examples of papers in the aircraft field, that combine maintenance routing and facility location which we shortly discuss. In [Feo and Bard, 1989], the authors model a maintenance base location problem as a min-cost, multi-commodity flow network. This means that each airplane represents a separate commodity in the network. The underlying flow graph takes into account the number of days of the planning horizon and the number of cities where maintenance bases can be opened or not. A two-phase heuristic is executed, where the first phase covers the scheduling without taking into account the maintenance requirements and in the second phase a stochastic heuristic is used to involve pairwise exchanges in the best schedules of the first phase. Another similar model on aircraft maintenance base locations, is described in the paper of [Gopalan, 2014]. The author aims to find the optimal number of maintenance bases in a network, while ensuring all required maintenance activities for the aircrafts can be performed. The performance of four different heuristics is tested, when they are used to find feasible solutions to the aircraft maintenance base location problem.

2.5 Maintenance routing and location planning for NedTrain

Very closely related to this project, is [T¨onissenet al., 2016]. T¨onissendoes a PhD research project in cooperation with NedTrain about location strategy for maintenance facilities for rolling stock. The main focus of her research is combining maintenance facility location while taking maintenance routing into account. She also introduces stochastic and robust variants of the problem, and solves the problem in two stages. In the research the goal is to run the average and the robust cases for many scenarios and optimize the average case and the worst case, respectively.

21 The MLR (maintenance location routing) model described in the paper of [T¨onissen et al., 2016], allows one facility size at each end station only. In order to get insights in the influence of allowing multiple facility sizes, we include this in our model. Another difference is that one of the goals in this research is applying and testing the model with real data acquired at NedTrain and NSR, while the model of T¨onissenis tested with theoretical networks where the parameters are randomly generated. The data gathered in this research is also used Besides performing a sensitivity analysis with theoretical cases, we also test our model with practical cases to give insights in the actual situation at NedTrain.

2.6 Mixed Integer Linear Programming Models with applica- tions in transportation problems

Mixed Integer Linear Programming models (MILP models) are used to model many differ- ent problems in Operations Research fields, such as planning and scheduling problems, see [Floudas and Lin, 2005], distribution problems, and other network problems. Also trans- portation problems are described as network problems in many papers, such as [Yang and Feng, 2007] and [Baidya et al., 2016]. We highlight two papers in detail in the next sections. Those papers are also using MILP models applied in transportation problems. The first one regards a rolling stock problem, and the second one addresses a dynamic resource allocation problem for large-scale transportation network evacuation.

2.6.1 Rolling Stock Rostering Optimization Under Maintenance Constraints Another similar problem is addressed in [Giacco et al., 2014]. In this research, they focus on integrating short-term maintenance planning in a network-wide railway rolling stock circu- lation problem. Like in our project, the authors formulate the problem as a mixed-integer linear-programming problem. Besides that, they perform experiments with real-world scenar- ios from the main Italian railway company. The model is formulated as a minimal cost Hamiltonian cycle in a graph with service parings, empty runs, and maintenance tasks. A Hamiltonian cycle is a path in an undirected or directed graph where each each node is visited exactly once and which returns in the node where it started. The graph consists of nodes and arcs, where the nodes correspond to train services and the arcs to scheduling decisions, shot-term maintenance operations, and empty train runs. The goal is to minimize the number of train units to cover all services mentioned. They succeeded in improving practical solutions regarding the number of required trains to cover all services, and regarding the number of empty runs and the maintenance efficiency. Their research differs from ours because they approach the problem mainly on short-term maintenance planning. Therefore the model is more detailed and requires more input on maintenance tasks duration, waiting times and travel times. Another difference is that in our MLR model, we do not have fixed locations for maintenance facilities but we include the possibility to build extra maintenance facilities against high cost.

2.6.2 Model and a solution algorithm for the dynamic resource allocation problem for large-scale transportation network evacuation In [He et al., 2015], a mixed integer linear program model is used for the dynamic resource allocation problem for efficiently transporting evacuees during emergencies, such as natural

22 disasters. It is not particularly related to rail road network problems, but it regards dynamic traffic flow where resources are movable. The resource allocation problem is divided in two stages. The first sub-problem identifies a feasible dynamic resource allocation plan, and the second sub-problem models dynamic traffic assignment in the network given the plan of the first sub-problem. The model’s objective is minimizing the total system travel time of all evacuees in the evacuation process. The most important constraints are that only one resource can be assigned to a location, resources have a minimum time to be assigned to a location in order to reduce the resource reallocation frequency, and there is a required transition time to move resources from one location to the other. In this paper, the authors use heuristics to approach the solution, in contrary to what we do in this research, which is solving models with exact solutions.

23 Chapter 3

Problem Formulation and Mathematical Model

In this section, we work towards answering the first subquestion:

How can we adapt the MLR model as described in [T¨onissenet al., 2016], to include the possibility of opening facilities with different sizes and how does this change the optimal solution?

We explain in Section 3.1 in more detail some of the terminology used at NedTrain and we describe current processes at NedTrain that play a role in the model. Then, we outline the input to the railway network in Section 3.2. From there, we explain the transition to a so- called flow graph, in Section 3.3. Furthermore, this flow graph allows us to come to the MLR model that we model as a mixed integer linear programming (MILP) optimization problem with an objective function representing a total annual cost, and a number of constraints in Section 3.4. Finally, we introduce an extension to the MLR model in order to answer the research questions.

3.1 Processes and definitions at NedTrain

3.1.1 The Maintenance Depots A maintenance depot or OB is a location where all planned (preventive) maintenance is performed for all train units. At the Dutch Railways, train units visit an OB on average around four times a year, in order to keep traveling by train safe for passengers and to prevent failures and disruptions. Unplanned (corrective) maintenance is needed when a failure happens before the train unit has gone to the OB for its planned maintenance. Normally, unplanned maintenance activities are performed in service locations (SBs). Only when the type of failure is too complex, the train unit is sent to the OB where the mechanics are specialized in fixing that type of train. This is called an additional entry (Dutch: extra binnenkomst or EBK) for the OB and has to be planned in between the planned maintenance schedule. For now, we only consider planned maintenance and disregard unplanned maintenance, and related to this, we are only interested in the OBs (in contrast to the SBs or technical

24 Figure 3.1: The Dutch railway network and NedTrain’s locations. The red dots are the OBs, the orange ones the TCs and the white ones all other locations, mostly SBs. centers). This is a simplification, because as mentioned, the OBs have to deal with some of the unplanned maintenance. Later we make a suggestion for how the unplanned maintenance visits might be included in the model.

3.1.2 Planning process Several major elements are taken into account in the planning process of NedTrain: the train line system, the timetable, the OBs, the rolling stock, crew, maintenance and shunting planning [Huisman et al., 2005]. Shunting includes all movements that are required to change the formation of a train (rearranging its units), or transporting it from or to a holding yard. A holding yard is the place where the train units stay overnight. There are four levels at which the planning is made for the different types of maintenance. For the long-term decisions a strategic planning is made. This concerns among others predict- ing the required train units and the number of employees needed in the future. On a tactical

25 level, of which the time horizon is one or a few years, the line system planning and the basic timetable are made. Once a year, the 8 o’clock rolling stock assignment is established, which consists of allocating the rolling stock to train lines during the busiest part of a (week)day. This is the basis of the timetable and still tactical level. After that, they plan all time slots and days to create the more detailed timetable. Also the platform assignment is done in this step, and both regard planning on operational level and are done bimonthly. The same holds for the rolling stock planning and crew scheduling. The last planning level is on the short-term and is adjusted daily. It includes modifying the actual planning due to, for example, speed limitations, maintenance on particular tracks, use of extra trains for events, disruptions, etc. The strategic timetable consists of duties, that itself consists of all tasks of a train unit in one day. Such a task can be a train service in which passengers are transported, or a maintenance task. For a duty only the train type is determined, not yet the actual train unit that will carry out this duty. This is done only a few days in advance. The reason for this is that the timetables and rolling stock schedules in the Netherlands are dense, and that there are many disturbances. In the model, we do not take into account any part of the planning process. It is assumed that all maintenance visits can be scheduled when needed and the model does not give an answer how this should be planned. However, the fact that actual train units are assigned to duties quite late in the planning process, will be used to enable interchanges between train units as we explain in the next section. Furthermore, the model could give an indication to which OB the maintenance visits of certain train lines should go, that can be used in the planning process.

3.1.3 Maintenance routing When exactly a train needs to undergo maintenance, depends on the number of kilometers and the number of operating days since the last maintenance visit. These characteristics are combined in the so-called C-state. More specifically, the C-state of a train is reached when either the maximum C-state mileage or the maximum C-state number of operating days is exceeded. These mileages and number of operating days are available for all train units. Obviously, the units that are closest to their C-state, the so-called urgent units, have the highest priority and are assigned to an OB first. Typically, maintenance routing planners schedule a train’s route to the OB a couple of days before the C-state is actually reached. This route is called the maintenance path, which ends in the end station closest to the OB. A train unit that has reached its C-state is no longer allowed to transport passengers until its maintenance visit. While constructing a maintenance path, the goal is to maximize the availability of the train. Therefore, the logistic planner preferably assigns tasks to the train units such that they end the last ride of the day in the end station which is the closest to the OB. The train units that need maintenance drive empty from the end station to the OB, undergo maintenance, go back to the end station and go back in the rolling stock circulation. One way to get an urgent unit to the OB is by interchanging duties with a train unit that was supposed to go in the direction of the OB. This is possible when two train units of the same type are at the same end station at the same time. Their duties can be interchanged in order to get the urgent unit as close as possible to the OB [Mar´otiand Kroon, 2007]. An interchange is defined as switching two trains of the same length and type, such that their duties are exchanged. An interchange between two trains can only happen if they are at the

26 same end station at the same time, and there is enough time for the shunting movements. We assume it cannot happen in other stations than end station for two reasons. First we assume there is not enough time at a regular station (no end station) and secondly we do not want to force passengers to switch trains in another station than an end station. When the urgent unit cannot reach the OB by interchanges only, for example because of limited personnel or time, a train needs to cover the remaining path to the OB without passengers (from now on referred to as deadheading). This results in additional unwanted transportation cost. Deadheading also occurs when a train unit has reached its C-state before it has reached an OB. The process of interchanging and deadheading will play an important role in the model. As we will see later, both come with a certain cost and they give rise to certain constraints.

3.2 Railway Network Input

The Maintenance Location Routing model that we start our research with is based on the closely related model of [T¨onissen et al., 2016]. We model the railway network in the Nether- lands by defining a set of end stations S and a set of train lines L, in combination with train units that need to visit an OB to undergo maintenance. A train unit is defined as the smallest entity of a train that can be considered separately which means that it can drive independently and transport passengers. In this definition a train exists of one or more train units. Train units of NSR are divided in different types, and each type has its own characteristics such as average driving speed and which train lines it serves. Here we choose to exclude any international trains, as well as end stations that are not located in the Netherlands. We include all train units that are owned or leased by NSR and maintained by NedTrain at the same time. However, additional train types or end stations could easily be added to the model, if this would be desirable and if there is sufficient data available. At NedTrain, a train line l ∈ L is defined as a track with an origin s1 ∈ S and a destination s2 ∈ S that is served by one or more train types. When a train is performing a service task, it means that it drives from the origin of a train line until its destination. Passengers can enter and leave the train not only at the beginning and end station, but also in any other regular train station on that train line. The regular train stations are ignored when we model the problem, since we assume trains can only finish their task when reaching the destination of the train line. From there, a train can proceed serving that train line by going back to the origin, serve a train line with another destination or undergo maintenance. Therefore, regular stations are not part of the set S. Candidate maintenance facilities F ⊆ S, represent the set of possible OBs, that in practice are located close to end stations. In that way, train units that have a planned maintenance task on their schedule have to be routed to the closest end station and from there continue to the OB without any passengers. We leave the exact locations of the candidate facilities out of scope. However, the way of routing a train unit to an end station is important and thus included in the model, since cost can be saved when trains are kept in service as long as possible in contrast to allowing empty train rides. In Figure 3.2 we show a small example of the model with three end stations S of three Dutch cities: (Asd), Utrecht (Ut) and ‘s Hertogenbosch (Ht). Furthermore, there are train lines {Asd, Ut}, {Asd, Ht} and {Ut, Ht} which connect the end stations with each

27 Figure 3.2: A small example of the network, with three end stations that are connected by train lines. There are three different train types that serve the train lines. Interchanging two SLT train units is possible. other. In order to explain the model we use three different train types which are stated on the arcs of the train lines they serve. A VIRM serves the train line {Asd, Ht}, an SLT serves {Ut, Ht}, and both an SGM and an SLT serve the train line {Asd, Ut}. In this example, maintenance routing via an interchange is possible between the train lines which are both served by a the train type SLT. When two train units of this type are at the matching end station (Ut in the example) at the same time, their tasks can be interchanged. Altogether, the problem is modeled as a combination of a facility location problem and a maintenance routing problem. The objective is to select a number of OBs in F that will be opened and to assign all train units to these maintenance facilities, while minimizing the sum of the fixed facility cost and the transportation cost. In the next section, we explain how we use the input of the railway network and construct the associated flow graph.

3.3 Transition from Network to Flow Graph

We transform the railway network to a flow graph such that afterwards we are able to formu- late the mixed integer programming model and solve it using CPLEX. First, we explain how the flow graph G(V,A) with vertices V and arcs A, is constructed. All candidate facilities of F ⊆ S are converted to vertices of the type VF in the flow graph. All train lines l ∈ L are converted to vertices of the type VL. We slightly adjust NedTrain’s definition of a train line by allowing exactly one train type instead of multiple types that serve a particular train line. Therefore, train lines in the railway network that are served by multiple train types are split up in unique train lines in the flow graph. Next to the candidate facility vertices and train line vertices, we introduce two extra vertices: a source S and a sink T . These are needed to close the flow graph. In summary, we define the set of all vertices as V = {S} ∪ VL ∪ VF ∪ {T }. The source is connected to all train lines by arcs from the set AS. These arcs are used to assign a fixed number of maintenance visits to each train line VL. Interchanges are modeled by the set of arcs AI that connect train lines with each other. Only for train lines with one matching end station and the same train type, an interchange arc is constructed. Furthermore, we connect all train lines to each of the candidate facilities with a set of arcs AF . Finally,

28 arcs of AT connect all candidate facilities to the sink. In summary, the set of all arcs is given by A = AS ∪ AI ∪ AF ∪ AT . The flow z(v, w) represents the number of train units that move from v ∈ V to w ∈ V and is called flow from now on. Later in this section, we will elaborate on the flow in more detail. In summary, we have a directed flow graph G(V,A) with the set of vertices V = {S, T } ∪ VL ∪ VF and set of arcs A = AS ∪ AI ∪ AF ∪ AT . Each subset has a different purpose which we list again below.

• S is the source

• T is the sink

• VL is the set of train line vertices

• VF is the set of candidate facility vertices

• AS includes arcs that leave the source – Flow over these arcs is free of cost

• AI includes arcs that connect train lines for interchanging – Flow over these arcs costs e1 per train unit

• AF includes all arcs that leave the train lines and enter the facilities

– Flow over these arcs costs CF per train unit

• AT includes arcs that leave the facilities and enter the sink – These arcs have either cost zero when a candidate facility is connected with a train line that has the associated end station of the facility (free arcs) or they have high cost due to deadheading when the train line is not connected to the end station in the underlying railway network (deadheading arcs).

• a = (v, w), where a ∈ A is leaving vertex v ∈ V and entering vertex w ∈ V .

In Figure 3.3 we show an example of the flow graph model that is constructed out of the railway network example that we introduced in Figure 3.2. In this example we modeled vertices representing the source and the sink. The blue vertices represent train lines including their end stations S and serving train type. The yellow vertices represent the candidate facilities VF ⊂ S. Those are equivalent to the end stations of the railway network. The interchange arcs AI are blue and the arcs from the train lines to the candidate candidate facilities AF , are dashed. We distinguish black arcs that represent the free arcs and yellow arcs that represent deadheading arcs.

29 Figure 3.3: A small example of the flow graph. Apart from the source and the sink, we have the four bluish colored vertices representing train lines v ∈ VT and three yellow colored vertices representing candidate facilities v ∈ VF . The blue arcs between the train line vertices are representing an interchange. The dashed arcs are for the flow from train lines to the OB.

3.4 Maintenance Location Routing Model with Multiple Fa- cility Sizes

Based on the flow graph, we can formulate the MLR model with the Multiple Facility Sizes as a mixed integer linear programming type of problem.

3.4.1 Decision variables and parameters

The model has two types of decision variables, yi and z. First we have binary variables yi, where yi(v) = 1 means that a facility v ∈ VF is opened and yi(v) = 0 otherwise. We extended the original MLR model of [T¨onissenet al., 2016], by introducing the adjusted decision variable yi where the index i ∈ IN+ is used to be able to take into account a number of n Multiple facility sizes. The size of the OB relates to the number of maintenance visits it can handle per year, i.e., the capacity. Furthermore, the fixed facility price is different for each size such that bigger OBs are more expensive and smaller OBs are less expensive. For n = 1, the model is equivalent to the original model and for n > 1 there are OBs with n fixed sizes that can be opened close to one end station, although at most 1 in total at each location. We extended the model with this possibility since in reality we are not limited with one facility size only. On the other hand, we had to fix the number of different sizes to

30 prevent the model of becoming non-linear. The other type of decision variables z(v, w) represents the average maintenance frequency of the train units that flow on arc (v, w). In the previous section we explained how the train units flow through the graph.that need to undergo planned maintenance in an OB (the flow) In more mathematical terms, we have:

• yi : VF → {0, 1}, the decision variable for opening an OB of size i,

• z : A → IR+, the flow of the average maintenance frequency of the train units per year. Furthermore, we define the parameters that are needed to represent the costs, maximum capacities and number of maintenance visits:

• cF,i : VF → IR+ is the average facility cost of facility size i per year,

• cT : AI ∪ AF → IR+ is the transportation cost per unit of flow,

• κF,i : VF → IR+ is the capacity of facility size i at the candidate facility location v ∈ VF ,

• κI : VF → IR+ is the maximum number of interchanges through end station s ∈ S per year,

• B : VF → IR+ is the budget or the maximum number of interchanges through all end stations per year,

• m : VL → IR+ is the number of maintenance visits per year that originates from train line v ∈ VL. At this point, we assume that there are unlimited resources available at all facilities, meaning that there is always a sufficient amount of mechanics, machines and other required equipment to perform maintenance. This implies that the capacity κF,i is not train type- specific. In practice this is not the case: not all train types can be maintained in all OBs. Later we explain how the model can be extended in order to deal with this fact.

31 3.4.2 Objective and constraints Using the variables and parameters defined above, we come to the following minimization problem:

n X X X Minimize the total annual cost T = cF,i(v)yi(v) + cT (a)z(a),

v∈VF i=1 a∈AI ∪AF subject to

z(S, w) = m(w) ∀(S, w) ∈ AS (3.1) X X z(x, w) = z(v, x) ∀x ∈ VL ∪ VF (3.2)

w∈VL∪VF v∈VL∪VF X z(v, w) ≤ κI (s) ∀s ∈ S (3.3) (v,w)∈ϕ−1(s) X X z(v, w) ≤ B (3.4) s∈S (v,w)∈ϕ−1(s) n X X z(v, w) ≤ yi(w)κF,i(w) ∀w ∈ VF (3.5)

v∈VL i=1 n X yi(v) ≤ 1 ∀v ∈ VF (3.6) i=1

yi(v) ∈ {0, 1} ∀v ∈ VF , 1 ≤ i ≤ n (3.7) z(v, w) ≥ 0 ∀(v, w) ∈ A (3.8)

The objective is to minimize the average annual cost. The first part of the objective is the sum over all candidate facilities v ∈ VF,i of the fixed cost cF (v) multiplied with the decision variable yi(v). This results in the total building cost for the facilities that are opened. The second part represents the transportation cost cT (a) for all flow z(a) using the arcs either through interchanges or deadheading. The only other arcs in the model are the arcs that leave the source or enter the sink. This type of flow does not have any associated costs and thereby does not contribute to the objective. From all the train lines v ∈ VL, a number of maintenance visits m(v) is originated yearly. This means that each train unit that has to undergo planned maintenance is routed from a specific train line to an OB. The number of maintenance visits that start from each train line are computed as in Section 4.2, and assigned from the source to each train line vertex in the flow graph. This is stated in the constraints 3.1. Constraints 3.2 are flow conservation constraints, where for each vertex v in the flow graph that represents either a train line (v ∈ VL) or a facility (v ∈ VF ), the incoming flow should be equal to the outgoing flow. Therefore, the annual total number of train units that has to visit an OB is fixed. No train units can enter or leave the network because of these constraints. For Constraints 3.3, we need to define an additional function ϕ : AI → S. It returns the common end station b ∈ S, of two train lines that are connected by an interchange arc (v, w) ∈ AI . In other words, given such an arc, where v and w are train line vertices, it means −1 that ϕ(v, w) = b and ϕ(w, v) = b, b ∈ S. Then the preimage of ϕ, ϕ : S → P(AI ) (the power set of AI ), gives for each end station the associated interchange arcs back. Similar to

32 the interchange capacity constraints, there is a budget constraint, see 3.4. This constraint assures that the sum of the number of interchanges performed at all end stations in one year does not exceed the budget B. Constraints 3.5 assure the maximum number of maintenance visits a facility can handle is not exceeded. This way zero flow can be assigned to the facilities that are closed. Constraints 3.6 make sure only one OB can be opened per end station, when we allow n ∈ IN+ facility sizes. Constraints 3.7 enforce that yi is a binary variable and the last set of constraints, Constraints 3.8, make sure the flow is nonnegative. This summarizes the mathematical description of the MLR model. In the next two chap- ters we will explain how we gathered data at NedTrain and NSR and we show the results of running the model in a numerical analysis. We use the data as input for the original MLR model first and later with the Multiple Facility Sizes extension to find answers on the research questions.

33 Chapter 4

Data Analysis

In this section, we analyze the data that is used as input for the model, in order to work towards the second subquestion:

What raw data is needed and how should this data be manipulated to make it suitable as input for the MLR model?

In the previous section, we have seen that the model makes use of a set of train lines, end stations and train types and associated costs and capacity parameters. The data is gathered from different business units of both NedTrain and NSR. Section 4.1 describes the different train types and their characteristics. Also the associated costs for transportation are discussed. Furthermore, in Section 4.3, we outline the characteristics of the end station set. Moreover, we explain the subtle difference between end stations and candidate facilities. At last in Section 4.2, the train lines and their characteristics are discussed.

4.1 Train Units

Train units need maintenance regularly in order to assure safe train rides for the passengers. Therefore, train units are important input parameters of the network. Moreover, their yearly planned maintenance visits to the OBs directly appear in the model as the decision variable z, as explained in Section 3.4.1 and shown in Section 3.4.2. Since we modeled the average number of maintenance visits per year as a characteristic of a train line, we will explain more about maintenance visits further in this chapter. First of all, NSR has a heterogeneous fleet, which means that NedTrain is in charge of performing maintenance activities on different train types. We did not include all train types that exists within the NedTrain and NSR culture to limit the scope of the project; all the international trains are not considered. International trains have their end stations outside the Netherlands and are connected to other international train lines, which would be too complex to take into account. Since all international trains that are owned by NS International are currently maintained in one particular OB (Watergraafsmeer), it can easily be excluded from the data. Also the high speed domestic trains and locomotives such as the TRAXX-LOC and the ICR are excluded, since their planned maintenance is performed in Watergraafsmeer as well. The seven train types that we do include in this research are listed in Table 4.1 together

34 with several cost parameters. In this section we explain how the average speed, the deadhead- ing factor, the time dependent cost and the distance dependent cost effect the deadheading cost per kilometer. The deadheading cost appears in the MLR model in the transportation cost term cT , as part of the total annual cost.

Train Type ICM VIRM SLT SGM DM90 DDZ DD-AR Time dependent cost (e/h) 368.4 445.8 367.9 271.7 251.2 673.6 466.8 Average speed (km/h) 83 80 60 50 75 56 57 Deadheading factor (-) 1.2 1.2 1.2 1.2 1.2 1.2 1.2 Distance dependent cost (e/km) 5.42 5.42 12.17 4.42 6.00 7.24 6.21 Deadheading cost (e/km) 10.7 12.1 19.5 10.9 10.0 21.7 16.5

Table 4.1: Input parameters for the train units. These numbers are based on estimates, [van Uden, 2015] and [Smit, 2015].

Deadheading cost per km We use the following formula to calculate the deadheading cost per km:

Deadheading cost per km = Time dependent cost ∗ Deadheading factor + Distance dependent cost (4.1) Average speed In this formula, the first term presents the cost per kilometer when a train unit is dead- heading. It consists of time dependent cost, the average speed and a deadheading factor. However, this first term does not include the transportation cost yet. Therefore, the second term is added. It presents the distance dependent cost, which reflects the transportation cost of a train unit. All of these parameters are explained in more detail.

Time dependent cost The time dependent cost are calculated as follows:

Time dependent cost = 2 ∗ (Fixed Maintenance + Insurance + Total Capital Cost + Train Driver) (4.2)

The time dependent cost consists of the costs that are given in time units instead of per km. It includes fixed maintenance cost, insurance, total capital cost and the cost of a train driver. The total capital cost consists of depreciation and interest. These costs are all converted to cost per hour. Train units operate on average around 18 hours per day, so we assume 18 hours instead of 24 hours per day. Besides that, the train driver cost are set at e55 per hour and include all direct labor cost, [Smit, 2015]. Finally, we multiply with a factor 2, to account for the fact that a train unit that goes to an OB needs to drive back as well. Table ?? in the Appendix presents an overview of the standstill cost of each train type [van Uden, 2015]. When a train type consists of two ‘sub-types’ such as SLT-IV and SLT-VI, we aggregated the cost for those types by taking the weighted average using the total number of coaches in the fleet for that type. Note that SLT-IV and SLT-VI means that a train unit of the SLT type consists of respectively 4 or 6 coaches.

35 Average speed In the calculation for the deadheading cost per km, we also use the average speed in km per hour. The average speed, which differs per train type, is determined by taking the length of each train line and dividing it by the duration in hours. The length of a train line is assessed by using a data matrix [webblog Rijden de Treinen, 2016]. Furthermore, the associated duration is assessed by the route planner of the NS, [NS, 2016]. Thereby, the waiting times at regular stations, i.e., any other station than the end station, were included. Per train type, we added up all average speed values and divided it by the total number of train lines that are served by this train type to calculate the average speed.

Deadheading factor We assume that deadheading train units take longer to get to an OB, which implies that the deadheading factor is greater than 1. On the one hand, empty train units do not have to stop at any intermediate train stations which will save waiting time. On the other hand, the Dutch Railway network is very dense and one of the busiest in Europe [NS and ProRail, 2014]. Deadheading units might have to wait for other train units that are in service and do stop at some train stations. Therefore, we assume that the probability that train units can drive to an OB continuously, is low. Altogether, we estimate the disadvantage of the latter higher than the time saving of not stopping in intermediate train stations. Such an explicit factor is not used in practice at NedTrain and thus estimated to simulate the stochastic nature of the time that an empty train unit needs to get to an OB. We estimate the factor to be 1.2 for all train units. We chose this value because some of the empty rides are planned on beforehand, when interchange possibilities are limited. Deadheading train units are unavoidable in some cases, so planners can take this into account. Since this estimation is not verified but effects the deadheading cost per kilometer, we test the influence of the latter on the solution in Chapter 5.

Distance dependent cost The distance dependent cost (expressed in e/km) includes energy costs, track fee (Dutch: infraheffing, fee paid to another company for using the tracks), variable maintenance cost and variable cleaning cost [Smit, 2015]. An overview of the cost is given in the Table ?? in the Appendix. Remarkable is the high variable maintenance cost of the SLT-IV and the SLT-VI compared to the other train types. We could not find a verified reason for this. The SLT, is the newest train type of the fleet and might therefore have higher variable maintenance cost.

Interchange cost The interchange cost appears, just as the deadheading cost, in the MLR model in the transportation cost term cT , as the other part of the total annual cost.

36 Figure 4.1: Deadheading cost per kilometer

4.2 Train Lines

After explaining the input data required regarding train units, end stations and candidate facilities, we use this section to describe the transformation of a raw data set with a lot of information to a data set with so-called train lines. This information, which is collected around is provided by a business consultant of NSR, department ‘Knowledge Center’ (Dutch: Kenniscentrum). The data includes the frequency of train units of specific types on each possible route in one whole year (2015). Initially, each route has a series number, a direction, a begin point and an end point (which are train stations), a certain time slot, a rolling stock type, a number of coaches and the frequency in the year 2015. So the frequency states how many times it occurred that a certain train type had to drive from one station to another in one year. From the 15290 lines in the raw data set, we present an example of 9 lines in Table 4.2.

Route Series Direction Time slot Begin End Mat Type # coaches Freq Ah-Ed 7500 0 00-01 Ah Ed SGM 3 18 Ah-Ed 7500 1 00-01 Ed Ah SGM 3 17 Asd-Ut-Ah-K¨oln-Frankfurt 70120 0 00-01 Asd Wgm ICE 8 1 Lls-Alm-Wp-Shl-Hfd-Ledn 4300 0 00-01 Almo Hfd SLT 4 15 Lls-Alm-Wp-Shl-Hfd-Ledn 4300 1 00-01 Hfd Lls SLT 10 2 Lls-Alm-Wp-Shl-Hfd-Ledn 4300 0 08-09 Almo Hfd SLT 6 1 Ut-Amf-Zl 5600 0 07-08 Zl Ut DDZ 8 26 Vs-Rsd-Rtd-Gv-Shl-Asd-Lls 2600 1 07-08 Rsd Lls VIRM 8 8 Vs-Rsd-Rtd-Gv-Shl-Asd-Lls 2600 1 07-08 Rsd Lls VIRM 10 42

Table 4.2: An example of 9 out of 15290 lines of raw data regarding train lines

Of those attributes, we did not use the series number, the direction and the time slot, so we excluded them from the data set. The series number is not needed since this is a general number for the route and it does not indicate the exact begin and end point as the fourth

37 and fifth line in the table show. The direction, which is set to either 0 or 1 to specify it, is neglected as well. We assume a route can always be used in two directions, so we added up the number of coaches times their frequencies of the train lines when they had exactly the same begin and end points. These begin and end points are called the end stations of a train line. For that reason, the first two lines in the table that both have ‘Ah’ and ‘Ed’ as end stations, are combined as one train line. The time slot indicates in which hour the train started his service task. Since our goal is to find the frequencies of each train line in a year, we use average numbers regarding the coaches and we neglect the specific time slot of the occurrence on a day. In the table, the fourth and sixth line are thus combined. They have the same end stations and train type, and the different time slots are neglected as explained.

End Stations End stations are part of train lines as well as they are input data on their selves. Train lines where one of the two end stations is located outside the Netherlands are excluded from the raw data set, as discussed in Section 4.1. Furthermore, train lines with one of the two end stations being not a passenger station, but for example a train yard or a service location, are excluded as well. In this case trains are not performing a service task but they are empty and we do not consider them for calculating the maintenance visits.

Train Types On each unique train line in the adjusted data set, we allow only one train type. Non-Dutch trains, for example the Thalys, the ICE and the ICRs are excluded from the data set. Those train types are not maintained at the OBs in , Onnen or Leidschendam and since we used data of those three OBs, other train types are excluded. After all, we included the frequencies and the number of coaches of the train types: SGM, SLT, DDZ, DD-AR, VIRM, ICM and DM90.

Length of the train line The length of each train line in kilometer is needed as input as well. We define the length of a train line as the distance of the rails between the two end stations of the train line. In order to do this, we use the data of the distance matrix from [webblog Rijden de Treinen, 2016]. In Table C.1 in the Appendix, we show a small part of this matrix. The table presents the distances in kilometers between all train stations in the Netherlands. To calculate the length of a train line, we start with one of its end stations and add up the distances between each of the next stations until the other end station is reached.

Maintenance Visits The goal in the Maintenance Location Routing model with Multiple Facility Sizes is to route the maintenance frequencies that are assigned to the train lines, to an OB under minimized cost. Therefore, we explain an important input parameter, the number of maintenance visits of each train line per year. We also call this the maintenance frequency. The maintenance frequency is calculated using data of two different sets. The first set is the extracted data set with the frequencies and the number of coaches per train line and the second set consists of the number of maintenance visits that are done in the existing OBs in 2015, see Table ??. In the latter, the data is collected of all three OBs for each train type. First, we calculated the total number of coaches that serve each train line in one year. After that, the total number of coaches was multiplied by the length of the train line, and we call this results the coach kilometers. We calculate the percentage of the coach kilometers of a train line of the total amount of coach kilometers of all train lines of that train type. Finally, the same percentage of the maintenance visits of that type is allocated as the maintenance

38 frequency to the train line. In summary, we estimated the number of yearly maintenance visits that depart from each train line. In the MLR model with Multiple Facility Sizes, the maintenance visits are given by m(v) in Constraints 3.1.

The extracted data set of train lines In summary, we made 858 unique train lines with a general route, two specific end stations, the length in kilometers, a specific train type, and a maintenance frequency that represents the average number of train units that has to be routed from that train line to an OB yearly. However, this is not the input data yet. Train lines that are either too short or not frequently enough used, result in few maintenance visits per year. We excluded the train lines with less than 5 maintenance visits per year. To compensate for the omitted number of maintenance visits, we increased the other maintenance visits This resulted in 96 train lines, see Table 4.3 for an example.

EndStation1 EndStation2 Type Length Mvisits 1 Nm Zp DD-AR 48 31 2 Bd Ht SLT 43 43 3 Asd Gvc VIRM 63 38 4 Rtd Ut ICM 125 79 5 Ut Rtd VIRM 125 52 5 Ledn Ut DDZ 50 6 6 Zl Es DM90 67 66 ......

Table 4.3: An example of 6 out of 96 train lines, with both end stations, the train type, the length in km and the average number of maintenance visits per year that originate from the train line.

4.3 End Stations and Candidate Facility Locations

There are more than 400 train stations in the Dutch Railway network. Roughly, there are around 100 so-called main stations and around 300 other stations, see e.g. [NS-api, 2016]. They differ in size, but also in the available facilities for passengers and the number of trains that pass by and stop at the station. We selected from all the main stations exactly those stations that were either begin or end station of one of the 96 train lines as described in the previous section. The resulting list of 57 stations is given in Table C.2 in the appendix and visualized in e.g. Fig. B.2. This list of stations forms the set S as described in Section 3.2. The set of candidate facilities F is a subset of S. The most important difference between an end station and a candidate facility, is that interchanges can happen in both, but only the candidate facilities appear in the flow graph as part of the set VF . This way, the number of vertices and arcs can be decreased compared to the case where all end stations are considered candidates. This is useful when more detail is added to the model (more train lines and end stations), but was not needed in the current setup. End stations are identified with a name (which is the city where they are located), fixed OB cost, OB capacity on the number of maintenance visits per year and an interchange capacity. We explain these parameters shortly.

39 Province Price in e/m2 OB cost Utrecht 450 1569767 Noord-H 450 1569767 Zuid-H 450 1569767 Gelderland 320 1116279 Noord-Brabant 320 1116279 Flevoland 260 906977 Overijssel 260 906977 Zeeland 230 802326 Limburg 195 680233 Friesland 195 680233 Drenthe 170 593023 Groningen 140 488372

Figure 4.2: Scaled fixed OB cost, dependent on the average price per m2 ground in the province where the candidate facility is located, [website Grondprijzen, 2016].

Fixed OB cost The fixed cost for building the OB is based on only building an empty warehouse, including side buildings, waste storage facility, and infrastructure. This parameter is referred to as cF,i in the objective function of the mathematical model, see Section 3.4.2. We assume the fixed cost includes all the above named factors. We also assume that the total fixed OB cost value is only dependent on the location and the size. We start with a fixed facility cost of e1 million for all facilities. A maintenance facility project leader of NedTrain indicated that building a new OB costs around e25 million. This amount is depreciated in 25 years, and for this reason we use the estimation of e1 million yearly. As this a very rough estimate, we include this parameter in the sensitivity analysis in Section 5.1. Furthermore, when using the option of multiple facility sizes (n > 1), the fixed OB cost is dependent on the size as well. In a later case, we want to examine the effect of geographically dependent location costs on the solution. In practice, it is presumable that building an OB is not equally expensive in each part of the Netherlands. The Netherlands is divided in twelve provinces and we use online data to distinguish differences in the average land price per province, see Figure 4.2. The OB cost for each end station is then scaled by a factor computed using the land price of the corresponding province. The average remains e1 million, but as expected the fixed cost to open an OB are higher in more urban provinces and lower in the more rural ones. Since we model the network on strategic level with annual averages, this estimation can give an indication for optimal locations when taking into account location dependent fixed OB cost.

OB Capacity In Section 3.4, the OB capacity κF,i was defined as the maximum number of maintenance visits the facility can process in one year, which appeared in Constraints 3.5 of the MLR-MFS model. At this point, there is no data available about how the capacity is

40 related to the prize of the OB. Therefore, we usually set the capacity such that it is not a limiting factor in the model. However, when considering multiple facility sizes, we estimate that medium sized facility that cost 1 million as described above, have a capacity of 1000 maintenance visits a year. By investigating empirical data on the number of maintenance visits done in each of the existing OBs in 2015, see Table ?? in the appendix, OBs of such size are realistic. This data was provided by a NedTrain employee from the Business Intelligence department. To obtain a better founded estimate for the OB capacity depending on the location, we suggest to look into the possibility for shunting movements, as this was shown to be an important limiting factor in maintenance routing according to [Mar´otiand Kroon, 2005]. Shunting is the process of sorting train units into complete trains or the reverse. Also the movements needed to get train units from an end station to an OB or another type of facility are called shunting movements. In the shunting process, there are typically two restrictions. The first one is the existing infrastructure, or in other words the tracks. Sometimes it is physically not possible to go from one place to the other, when there are no connecting tracks. The second one is the track occupation. Some of the tracks cannot be used by NSR, since they are reserved by other railway operators. When this data is available, the estimate for the capacities can be made more accurate.

Interchange capacity The interchange capacity is the number of interchanges that can be performed in each end station. The parameter κI in Constraints 3.3, represents the interchange capacity. This parameter is dependent on the existing tracks and their availability, as well as the number of possibilities for the interchanging. The latter includes available personnel, matching train types at the same time in the same end station and enough time for shunting movements needed for the interchange. On the biggest main stations in the network the traffic density is high. Therefore, the number of possibilities for interchanges is lower than at less busy end stations. Because the interchange capacity per end station is influenced by so many different factors, we did not find a way to determine an estimate based on actual data. For this reason, we preferred to use a total budget rather than an individual parameter for each station. Using the budget parameter B, we show that the interchanges have a significant influence on the solution and on the total cost.

41 Chapter 5

Numerical Analysis

In the previous chapter, we described the data set that is needed to test the model. In this chapter, we perform numerical analyses while focusing on the next three subquestions:

Using the current railway network situation, what is the effect on the optimal solution of each of the model input parameters separately?

How do various input values of the network interact with each other and what is the effect on the optimal solution?

Under the assumption of an increased number of maintenance visits in the near future, is it better for NedTrain to open a new OB or to expand the existing OBs?

Starting with one base case, referred to as the Base Case (BC) from now on, we made different scenarios to validate the model. The BC is set up without using the possibility of multiple facility sizes, so n = 1. We test the estimated parameters by performing a sensitivity analysis in Section 5.1, where we address the first subquestion of this section. We verify the MLR model and research the influence of certain parameters on the solution. For each separate case, we present the input parameters and discuss the results. In Section 5.2, we address the second subquestion. We test three combinations in order to find how the input values interact and influence the solution. Finally in Section 5.3, we elaborate on the MLR-MFS model by testing cases where at each end station three different OB sizes (n = 3) can be opened. The last case, which is called the NedTrain Case, addresses the last subquestion.

5.1 Theoretical Cases

The fixed input parameters are the number, the number of train types, their average speed and the total number of maintenance visits in a year. The input parameters that we change to test the model are the number of maintenance visits, the fixed OB cost, the OB capacity, the budget on the interchanges at the end stations, and the transportation cost for each train type. For each of the test cases we vary only one of the parameters at the time compared to the BC, as presented in Figure 5.1. The number of new scenarios created is stated above or under the name of the case.

42 Figure 5.1: An overview of the cases used for the sensitivity analysis. In each of the cases one parameter in the model is varied, creating a number of different scenarios for each case.

We discuss the BC in Section 5.1.1. The different cases we use for the sensitivity analysis are referred to as:

• the Varying Maintenance Visits Case (VMVC) (Section 5.1.2)

• the Varying Fixed Cost Case (VFCC) (Section 5.1.3)

• the Varying OB Capacity Case (VOBCC) (Section 5.1.4)

• the Varying Budget Case (VBC) (Section 5.1.5)

• the Varying Deadheading Cost Case (VDCC) (Section 5.1.6)

5.1.1 Base Case Input BC The BC has 96 train lines and there are 57 end stations. As discussed in more detail in Section 4.3, only those stations are considered as candidate facilities. From the data we learned that in 2015, 2930 train units had to visit an OB to undergo planned maintenance. We use this number as a starting point for the BC. The BC has the end station input as presented in Table 5.2. There are 57 end stations spread over the Netherlands. They all have the same fixed cost of e1 million. The capacity is the number of maintenance visits a facility can process in one year. This value is set to infinity for all end stations, because we do not want to influence the number of facilities the model has to open. Furthermore, the budget B is set to 0 per year. This means that no interchanges are allowed in any of the end stations. As a result, train units that are originated from a train line that is not connected to an OB, can only reach the OB via deadheading. The reason that we choose for a budget of 0 in the BC, is that we want to start with an extreme

43 parameter value. In this way we can investigate the influence of deadheading cost compared to other parameters, separately. Later in this section, we will loosen this restriction and allow interchanges. The transportation cost per train type is again presented in Table 5.1. We explain how we calculated these numbers in Section 4.1.

Type ICM VIRM SLT SGM DM90 DDZ DD-AR Cost per km 10.7 12.1 19.5 10.9 10.0 21.7 16.5

Table 5.1: BaseCase: Input Transportation Cost per Train Type

Case MVisits Fixed Cost Capacity Budget Deadheading Cost BC 2930 1,000,000 2930 0 *Table 5.1 VMVC *Table 5.3 1,000,000 ∞ 0 *Table 5.1 VFCC 2930 *Table 5.5 2930 0 *Table 5.1 VOBCC 2930 1,000,000 *Table 5.7 0 *Table 5.1 VBC 2930 1,000,000 2930 *Table 5.9 *Table 5.1 VDCC 2930 1,000,000 2930 0 *Table 5.10

Table 5.2: Overview of the input parameters per case.

Results BC Running the BC results in opening one facility in Utrecht with a total cost of e2,772,280. This includes fixed OB cost of e1 million and transportation cost of e1,772,280, which is from deadheading cost only, since interchanging is not allowed. In Figure 5.2a, the total annual cost for the BC are depicted. In the BC around one third of the total annual cost is fixed OB cost and two third is resulting from costs of empty train rides. In Figure 5.2b, we show how the transportation flow of train units is split in both deadheading and free flow. Of all times train units went to an OB, 23% originated from any train line connected to the OB in Utrecht, and do not bring any cost. Therefore, we refer to this flow type as free flow from now on. The other 77% of the total flow are deadheading train units and cause all transportation cost.

44 (a) Total Annual Cost (b) Distribution of the maintenance visit flow

Figure 5.2: BC: Circle diagrams presenting total annual cost distribution on the left and more specific distribution of the flow on the right.

5.1.2 Varying Maintenance Visits Case In the Varying Maintenance Visits Case (VMVC) we increase the number of maintenance visits, because we are interested how the parameter influences the optimal solution. In the BC the number of maintenance visits per year was set to 2930. In this theoretical case we could both decrease and increase the number but we choose to only increase it. In practice, this could mean that NSR has bought new train units such that the total number of train units increases. As a results the number of maintenance visits per year increases as well. In each scenario, we increase the number with 20% of the original value, until we reach the scenario with 8790 maintenance visits. This is three times the BC value and gives us insight in the behavior of the model. In Table 5.3 the input of the number of maintenance visits is presented, as well as the output regarding costs and flow distribution. A higher number of maintenance visits results in higher total cost over all scenarios. The deadheading cost is increasing up to and including scenario 6, where only Ut is opened. The solution is presented in Table 5.4. In scenario 7 and 8 Shl is opened next to Ut and handles almost half of the maintenance visits. The deadheading cost are lower in both those cases compared to the deadheading cost in scenario 6. Also in scenario 9 and 10, the deadheading cost are lower again because a third OB is opened in Zl. Under the assumptions of the BC, we can conclude that from 6500 maintenance visits per year it is economically more interesting to open a new OB than paying cost for empty train rides. That is approximately 2.2 times more than the BC value.

45 Input Output Cost Flow Scenario MVisits Total Cost Transport Deadheading Interchange Free Deadheading BC 2930 2,772,280 1,772,280 1,772,280 0 687 2243 1 3516 3,126,736 2,126,736 2,126,736 0 824 2692 2 4102 3,481,192 2,481,192 2,481,192 0 962 3140 3 4688 3,835,648 2,835,648 2,835,648 0 1099 3589 4 5274 4,190,104 3,190,104 3,190,104 0 1237 4037 5 5860 4,544,560 3,544,560 3,544,560 0 1374 4486 6 6446 4,899,016 3,899,016 3,899,016 0 1511 4935 7 7032 5,170,861 3,170,861 3,170,861 0 2190 4842 8 7618 5,435,099 3,435,099 3,435,099 0 2373 5245 9 8204 5,672,857 2,672,857 2,672,857 0 3432 4772 10 8790 5,863,776 2,863,776 2,863,776 0 3677 5113

Table 5.3: VMCV: Input and Results

Scenario MVisits # OBs Locations Ut Shl Zl BC 2930 1 2930 1 3516 1 3516 2 4102 1 4102 3 4688 1 4688 4 5274 1 5274 5 5860 1 5860 6 6446 1 6446 7 7032 2 3693 3339 8 7618 2 4000 3618 9 8204 3 3139 3571 1494 10 8790 3 3228 3826 1737

Table 5.4: VMVC: Solution

5.1.3 Varying Facility Cost Case In Table 5.2 we show an overview of the different cases and in Table 5.5 the detailed scenarios for the Varying Facility Cost Case (VFCC) are presented. We vary the fixed facility cost to examine the effect on the solution compared to the BC. The parameter, which was introduced in Section 3.1.1, is an estimated value and consists of many different costs. In the BC it was set to e1,000,000 per OB. For the VFCC we made 5 scenarios, varying the cost from e500,000 until e100,000 in steps of 100,000. With a fixed OB cost of e500,000, the facilities that are opened and also the transportation cost and the flow distribution remain the same compared to the BC. The only difference is the total cost, due to the different fixed OB value. However when the value decreases to e400,000 or lower, the optimal solution changes. In the scenarios 2 until 5, more OBs can be opened which results in lower deadheading cost since more train

46 lines are directly connected to an end station where an OB is opened. Therefore the total cost decreases in those scenarios. The results of this case are presented in Table 5.6. Ut is chosen in four out of five scenarios, and next to that Shl and Zl are chosen three times. The choices are only based on the minimization of the total deadheading cost.

Input Output Cost Flow Scenario Fixed OB Total Transport Deadheading Interchange Free Deadheading BC 1,000,000 2,772,280 1,772,280 1,772,280 0 687 2,243 1 500,000 2,272,280 1,772,280 1,772,280 0 687 2,243 2 400,000 2,121,192 1,321,192 1,321,192 0 913 2,017 3 300,000 1,854,592 954,592 954,592 0 1,226 1,704 4 200,000 1,484,864 684,864 684,864 0 1,343 1,587 5 100,000 984,868 384,868 384,868 0 1,866 1,064

Table 5.5: VFCC: Input and Results

Scenario Fixed Cost # OBs Locations Ut Shl Zl Gvc Ht Asd Amr BC 1,000,000 1 2930 1 500,000 1 2930 2 400,000 2 1539 1391 3 300,000 3 1042 1275 613 4 200,000 4 496 815 500 1119 5 100,000 6 746 598 480 449 320 337

Table 5.6: VFCC: Number of maintenance visits for each open facility per scenario

5.1.4 Varying OB Capacity Case The next input parameter that we test for sensitivity, is the maximum capacity of the can- didate facilities. In the Varying OB Capacity Case (VOBCC) we set up different values for the capacity for planned maintenance. In the BC we started with an OB capacity of 2930 maintenance visits per year, equal for every candidate facility. Since this is the average num- ber of maintenance visits in total in one year, the capacity constraint is non-restrictive. In 2930 scenario 1 until scenario 9 we decrease the capacity with 10 of the value in the BC. When the capacity becomes smaller than 293 per OB more than 10 facilities are required to handle the planned maintenance activities for one year. The input, as well as the results regarding costs and flow distribution, is presented in Table 5.7. The facilities that are opened in the optimal solution of the VOBCC for each scenario, are presented in Table 5.8. The OB capacity is directly related to the number of OBs that are needed, and therefore opened. Furthermore, the OBs that are opened determine which train units are deadheading and the associated deadheading cost.

47 Input Output Cost Flow Scenario OB capacity Total Transport Deadheading Interchange Free Deadheading BC 2930 2,772,280 1,772,280 1,772,280 0 687 2,243 1 2637 3,321,192 1,321,192 1,321,192 0 913 2,017 2 2344 3,321,192 1,321,192 1,321,192 0 913 2,017 3 2051 3,321,192 1,321,192 1,321,192 0 913 2,017 4 1758 3,321,192 1,321,192 1,321,192 0 913 2,017 5 1465 3,322,083 1,322,083 1,322,083 0 913 2,017 6 1172 3,966,987 966,987 966,987 0 1,226 1,704 7 879 4,696,089 696,089 696,089 0 1,334 1,596 8 586 5,535,374 535,374 535,374 0 1,674 1,256 9 293 10,284,410 284,410 284,410 0 2,166 764

Table 5.7: VOBCC: Input and Results

Scenario OB capacity # OBs Locations Ut Shl Zl Gvc Ht Asd Amr Ah Almo Hfd BC 2930 1 2930 1 2637 2 1539 1391 2 2344 2 1539 1391 3 2051 2 1539 1391 4 1758 2 1539 1391 5 1465 2 1465 1465 6 1172 3 1145 1172 613 7 879 4 879 610 865 576 8 586 5 586 586 586 586 586 9 293 10 293 293 293 293 293 293 293 293 293 293

Table 5.8: VOBCC: Number of maintenance visits in one year for each open facility per scenario

5.1.5 Varying Budget Case Another parameter that we test, is the budget. This parameter corresponds to the B in Constraint 3.4 in the mathematical model. In the Varying Budget Case (VBC), we investigate the influence of the number of interchange possibilities on the optimal solution. We have one budget for performing all interchanges in one year, which is the maximum number of train units that are interchanging in all end stations together. First we investigate the maximum possible number of interchanges. We show in Figure 5.3, that for a budget higher than 4437 the number of interchanges is stable. Therefore, we choose to investigate 9 scenarios with a budget varying from 500 until 4500 with steps of 500. The results are presented in Table 5.9. We can conclude that due to having the possibility to reach end stations by interchanging train units, the transportation cost are significantly lower. Comparing scenario 1 with the BC, only 500 interchanges per year in all end stations together, leads to a decrease in deadheading cost of around 31%. The more interchanges are allowed, the lower the transportation cost

48 Figure 5.3: Number of interchanges in the solution of the VBC. The budget is increased in steps of 1000 until 10,000. and also the total cost. Maximal of 1942 out of 2930 maintenance visits in one year can reach an OB while being in service, see scenario 9. We know that 687 of those units originated from a train line that is connected to an OB already, but still 1255 (around 43% of the total maintenance visits) train units are interchanged in order to reach the OB. This is possible when the budget is at least 4437. An overview of the number of interchanges per end station per year for all scenarios of the VBC is presented in Figure 5.4 and a geographical representation can be found Figure B.2 in the Appendix. The associated numbers are presented in Table C.3, in the Appendix as well. Gvc (green) is the end station where most interchanges are performed in each scenario. Next to that, in Asd (orange) many interchanges are performed as well. Furthermore, in scenario 9 the maximum number of interchanges are performed and it is either not possible to interchange more, or interchanging more would not improve the solution anymore. Up until a budget of 4000 (scenario 8) it is always fully used.

49 Input Output Cost Flow Scenario Budget Total Transport Deadheading Interchange Free Deadheading BC 0 2,772,280 1,772,280 1,772,280 0 687 2243 1 500 2,224,354 1,224,354 1,223,854 500 1164 1766 2 1000 1,988,547 988,547 987,547 1000 1321 1609 3 1500 1,870,429 870,429 868,929 1500 1437 1493 4 2000 1,752,894 752,894 750,894 2000 1687 1243 5 2500 1,657,749 657,749 655,249 2500 1795 1135 6 3000 1,586,049 586,049 583,049 3000 1837 1093 7 3500 1,520,352 520,352 516,852 3500 1895 1035 8 4000 1,483,936 483,936 479,936 4000 1942 988 9 4500 1,477,575 477,575 473,138 4437 1942 988

Table 5.9: VBC: Input and Results

Figure 5.4: A graphical overview of the number of interchanges at each end station per scenario of the VBC. Note that the budget is e500 in scenario 1 and increased with e500 in each step. Until scenario 8, the budget is always fully used, only in scenario 9 it is not.

50 5.1.6 Varying Deadheading Cost Case In the Varying Deadheading Cost Case, we test the last parameter which is the deadheading cost per kilometer of each train type. Those are set for the BC as shown in 5.1. We want to examine the effect of higher deadheading cost per km, since the values used in the BC are a lower bound. Each scenario, we multiplied each of the deadheading cost per km per train type with a factor. We examine until the deadheading cost per km are 6 times higher than in the BC, with steps of 0.5. In Table 5.10 we show the input factors and the results of running the VDCC. In scenario 1 and 2, the deadheading (and thus transportation) cost are respectively 1.5 and 2 times higher than in the BC. In scenario 3, a second OB is opened, as shown in Table 5.11. Therefore, deadheading cost are e3,302,980 instead of 2.5 times the value of the BC, i.e., e1,772,208 × 2.5 = e4,430,700. The latter, including the cost of opening a single OB, would result in a total cost of e5,430,700. Here e127,720 per year can be saved by opening a second OB. Furthermore, from scenario 4 on, more OBs are opened to compensate high deadheading cost. We can conclude that under the assumptions of the BC, and the estimations for the deadheading cost per km are at most 2 times to low, the solution is not influenced by this parameter.

Input Output Cost Flow Scenario Factor Total Cost Transport Deadheading Interchange Free Deadheading BC 1 2772280 1772280 1772280 0 687 2243 1 1.5 3658420 2658420 2658420 0 687 2243 2 2 4544560 3544560 3544560 0 687 2243 3 2.5 5302980 3302980 3302980 0 913 2017 4 3 5863776 2863776 2863776 0 1226 1704 5 3.5 6341072 3341072 3341072 0 1226 1704 6 4 6739457 2739457 2739457 0 1343 1587 7 4.5 7081889 3081889 3081889 0 1343 1587 8 5 7424321 3424321 3424321 0 1343 1587 9 5.5 7692421 2692421 2692421 0 1734 1196 10 6 7937187 2937187 2937187 0 1734 1196

Table 5.10: VDCC: Input and results

51 Scenario Factor # OBs Locations Ut Shl Zl Gvc Ht Asd BC 1 1 2930 1 1.5 1 2930 2 2 1 2930 3 2.5 2 1539 1391 4 3 3 1121 1275 534 5 3.5 3 1042 1275 613 6 4 4 409 729 509 1283 7 4.5 4 482 782 500 1166 8 5 4 482 782 500 1166 9 5.5 5 705 741 489 595 400 10 6 5 730 741 560 544 355

Table 5.11: VDCC: Solution

5.2 Varying combinations of two parameters

In the previous section we performed a sensitivity analysis to show the effect of changing a single parameter on the solution. In this section we want to show the relation between two different parameters on the solution. We explain three cases where deadheading cost per km are increased such as in the VDCC, but for different input parameters of the fixed OB cost, the budget and the number of maintenance visits.

5.2.1 Combining Deadheading and Fixed Cost In this section, we vary the deadheading cost per km against different set fixed cost, in the CDFC (Combining Deadheading and Fixed Cost) case. Where the fixed cost was set to e1,000,000 earlier, we now analyze the results when the cost is increased to e2,000,000 or decreased to e700,000 and e400,000. In Figure 5.5, we show the number of the OBs that are opened when combining different values of the deadheading cost per km and the fixed OB cost. We observe that regarding the number of OBs that are opened, the lower the fixed OB cost the sooner an increase in deadheading cost per km causes the model to open more OBs. In some cases where the fixed OB cost is e700,000 or e400,000, two extra OBs are opened when the factor of the deadheading cost per km is increased with 0.5.

52 Figure 5.5: A graphical representation of the number of OBs that are opened with four fixed OB cost settings and increasing the deadheading cost per km.

The transportation cost for each scenario is directly influenced by the factor of the dead- heading cost per km and is also effected by the number of OBs that are opened, see Figure 5.6. In this figure we show the transportation cost when combining different values of the deadheading cost per km and the fixed OB cost. It consists of deadheading cost only, since the interchange budget is set to 0 so no interchanges can be done.

Figure 5.6: A graphical representation of the total transportation cost with four fixed OB cost settings and increasing the deadheading cost per km.

We notice that when we know the number of OBs that are opened, the locations of the OBs are nearly always the same, see Table 5.12. The location Ut is chosen when only one OB is opened, and Shl is added when a second OB is required to minimize the total cost. From there on we conclude that Zl is always included when three or more OBs are opened. The reason why OBs are opened in those locations in all scenarios, is that they are located centrally in the network and moreover they are connected to many train lines. In this way, those train units can travel to the OB including passengers and the total deadheading cost is

53 minimized. Train lines are fixed input for the network and are thus the same in each scenario.

# of OBs Locations of the OBs 1 Ut 2 Ut Shl 3 Ut Shl Zl 4 Zl Asd Gvc Ht 5 Ut Shl Zl Gvc Ht 6 Ut Shl Zl Gvc Ht Amr 7 Ut Shl Zl Gvc Ht Ah Mt 8 Ut Shl Zl Gvc Ht Ah Mtr Lls

Table 5.12: An overview of the locations that are chosen against the optimal number of OBs. For each number of OBs the locations that are chosen are the same.

5.2.2 Combining Deadheading and Budget In the VDCC, we varied the deadheading cost per km compared to the BC, where the budget for interchanges was set to 0. We are also interested in the influence of this parameter when interchanges are allowed. Therefore, we vary the deadheading cost per km in the CDB (Combining Deadheading and Budget) case where the budget for interchanges is unlimited, which is the best case scenario. In Table 5.13, we show 10 scenarios where the deadheading cost per km is increased by a factor compared to the BC. The results show that the maximum number of interchange possibilities (4437 per year) are used up to and including scenario 7, where the deadheading cost are 4.5 times higher than in the BC. From scenario 8 until scenario 10, an extra facility is opened in Dv. As a result, the deadheading cost is lowering again. We can conclude that when the deadheading cost per km is at most 4.5 times higher than in the BC, the same OBs are opened. Compared to the VDCC where the critical factor was in between 2 and 3, we conclude that the deadheading cost per km has less influence in the solution when the number of interchanges is not restricted by a budget.

54 Input Output Cost Flow Scenario Factor Total Transport Deadheading Interchange Free Deadheading VBC sc 9 1 1,477,575 477,575 473,138 4437 1942 988 1 1.5 1,714,144 714,144 709,708 4437 1942 988 2 2 1,950,713 950,713 946,277 4437 1942 988 3 2.5 2,187,283 1,187,283 1,182,846 4437 1942 988 4 3 2,423,852 1,423,852 1,419,415 4437 1942 988 5 3.5 2,660,421 1,660,421 1,655,984 4437 1942 988 6 4 2,896,990 1,896,990 1,892,554 4437 1942 988 7 4.5 3,133,559 2,133,559 2,129,123 4437 1942 988 8 5 3,342,545 1,342,545 1,338,690 3855 2273 657 9 5.5 3,476,414 1,476,414 1,472,559 3855 2273 657 10 6 3,610,283 1,610,283 1,606,428 3855 2273 657

Table 5.13: An overview of the input and the results when varying deadheading cost without limiting the interchange budget. The point of reference for these results is scenario 9 of the VBC, see Table 5.9.

Scenario Factor Locations Ut Dv BC 1 2930 1 1.5 2930 2 2 2930 3 2.5 2930 4 3 2930 5 3.5 2930 6 4 2930 7 4.5 2930 8 5 2252 678 9 5.5 2252 678 10 6 2289 641

Table 5.14: The solution when varying deadheading cost without limiting the interchange budget.

5.2.3 Combining Deadheading and Maintenance Visits In Table 5.15, we show the total cost when increasing the factor of the deadheading cost per km in this CDMV (Combining Deadheading and Maintenance Visits) case. We compare the scenarios of the original number of maintenance visits with the scenarios where they are doubled. The total cost is the same in the scenarios where the number of maintenance visits is doubled and the deadheading factor remains 1, and where the number of maintenance visits is still 2930 but the deadheading cost per kilometer is doubled. In the table, the scenarios with the same total cost is presented in the same color. We conclude that increasing

55 the deadheading cost with a factor x has the same results as multiplying the number of maintenance visits with x. Note that the capacity of each OB is infinity and that the number of interchanges per year is restricted to 0.

Deadheading factor Total Cost 1 2,772,280 4,544,560 1.5 3,658,420 5,863,776 2 4,544,560 6,739,457 2.5 5,302,980 7,424,321 3 5,863,776 7,937,187 3.5 6,341,072 8,426,718 4 6,739,457 8,916,249 4.5 7,081,889 9,405,780 5 7,424,321 9,848,678 5.5 7,692,421 10,208,533 6 7,937,187 10,485,904 # of mvisits 2930 5860

Table 5.15: An overview of the total cost as a result of doubling the number of maintenance visits and increasing the factor of the deadheading cost per km.

56 5.3 Practical Cases with Three Facility Sizes

In this section, we focus on the Multiple Facility Sizes extension by taking n = 3, resulting in 3 different sizes. For convenience we define them as small, medium and large OBs from now on, so i = {small, medium, large}. The size of the OBs should be reflected in both the fixed cost and the capacity of the OB. Compared to the BC in Section 5.1, we can no longer set the OB capacity to infinity. We start this section with a Green Field Case (GFC) which is similar to the Base Case of Section 5.1. We use basic settings to show the influence of allowing three facility sizes. From there on, we test two variations separately. First, we change the fixed OB cost from being independent on geographical location to dependent on provinces in the Netherlands, see Figure 4.2. Secondly, we include the current existing OBs, which are located in Gn, Gvc and Mt (which are the closest end stations of the OBs in Onnen, Leidschendam and Maastricht, respectively). From now on, we will use these end stations as the locations of the existing OBs. After testing those two cases, we combine both of them to the Combined Case. From there on we perform a second sensitivity analysis where we test four parameters the solution. See Figure 5.7 for an overview of the practical cases.

Figure 5.7: Schematic overview of the practical cases.

Input parameter settings Green Field Case We choose to set the input parameters of the Green Field Case (GFC) as presented in Table 5.16. Compared to the BC, the fixed OB cost, the deadheading cost, the budget, the number of maintenance visits and the candidate facility set remain unchanged. Since we have multiple facility sizes, a fixed OB cost factor is needed to indicate the relative cost difference between the OBs. Assuming this factor is called ε, then the large OB is ε times as expensive as a medium sized one. The latter is also ε times as expensive as the small OB. Furthermore, we choose to set the capacity of a medium sized OB at 1000 maintenance visits per year, and allow double and half the amount in a large and small sized OB, respectively. We choose 1 < ε < 2, because we assume that building an OB that can handle double the amount of maintenance visits yearly cost at most twice the amount. When the factor is 2, opening two medium OBs is always preferred over building one large OB since more deadheading cost can be saved. Testing ε = 1 will not give any useful results, since then the prices are equal while the capacities are not.

57 Input Parameters Settings

Fixed OB Cost cF,i Independent on provinces Fixed OB Cost factor 1 < ε < 2 OB capacity κF,small = 500, κF,medium = 1000, κF,large = 2000 Deadheading cost standard Budget B = 0 Maintenance Visits 2930 Candidate facilities All end stations (F = S)

Table 5.16: Overview of the input parameter settings of the Green Field Case

The solution of the locations and the size of the OBs for the GFC, is given in Table 5.17. In contrast to the way we present the solution tables earlier, we choose to show the locations and the sizes of the OBs,rather than the cost results and the exact number of maintenance visits that the OB processes. From the results in this table, we can establish that when the fixed OB cost factor is small (and thus a small prize difference between OB sizes), one large OB in Ut and one medium OB in Asd are opened. As ε increases, the number of OBs that are opened increases as well. Moreover, the number of small OBs increases until no other than small OBs are opened in scenario 9. For ε = 1.5, the total cost is e3.8 million.

Scenario # OBs ε Locations Ut Asd Gvc Zl Ht Amr 1 2 1.1 large medium 2 2 1.2 large medium 3 2 1.3 large medium 4 2 1.4 large medium 5 3 1.5 large small small 6 3 1.6 large small small 7 5 1.7 small medium small small small 8 5 1.8 small medium small small small 9 6 1.9 small small small small small small

Table 5.17: Solution of the GFC with n = 3

5.3.1 Adaptation of the Green Field Case Province dependent fixed OB cost In Table 5.18, we show the optimal solution when we include province dependent fixed OB cost. Similar to the GFC, we choose 1 < ε < 2. The most important result is that scenario 1 and 2, two other locations than Ut and Asd are opened. Due to the higher ground price in the provinces where Ut and Asd (Utrecht and Noord-Holland respectively) are located, Almo and Wt are opened now. The latter are located in Flevoland and Noord-Brabant, and have significantly lower fixed OB cost, see Figure 4.2. Where Ut was chosen consistently in the GFC, Almo is opened in every scenario now. Both locations are central in the Netherlands. For ε = 1.5, the total cost is e4.1 million.

58 Scenario no # OBs Factor Locations Almo Wt Zl Gvc Ht Std 1 2 1.1 large medium 2 2 1.2 large medium 3 3 1.3 large small small 4 3 1.4 large small small 5 3 1.5 large small small 6 3 1.6 large small small 7 3 1.7 large small small 8 5 1.8 medium small small small small 9 5 1.9 medium small small small small

Table 5.18: Solution of the GFC with province dependent fixed OB cost

Including existing OBs In Table 5.19, we simulate an input that reflects NedTrain’s current situation, regarding the existing OBs. The existing OBs that are located near Gn, Gvc and Mt have fixed OB cost of cF,medium = 0. As the results in the table show, a medium OB is opened at those locations in every scenario. The most remarkable result is that the capacity in total is much more than the total number of maintenance visits of 2930. Three medium sized OBs with a capacity of 1000 maintenance per year each, are theoretically enough to process the given 2930 maintenance visits in a year. When ε < 1.4, a large OB in Ut is opened. This means the deadheading cost can be reduced significantly by opening a large OB in the middle of the country instead of deadheading to the existing OBs. For ε = 1.5, the total cost is e2.5 million. Later in Section 5.3.2 Case CC-c, we will increase the budget to show the effect on the solution.

Scenario no # OBs Factor Locations Gn Gvc Mt Ut Zl Ht 1 4 1.1 medium medium medium large 2 4 1.2 medium medium medium large 3 4 1.3 medium medium medium large 4 4 1.4 medium medium medium medium 5 5 1.5 medium medium medium medium small 6 5 1.6 medium medium medium medium small 7 5 1.7 medium medium medium medium small 8 6 1.8 medium medium medium small small small 9 6 1.9 medium medium medium small small small

Table 5.19: NedTrain’s existing OBs get a medium OB for free.

5.3.2 Combined Case In this case we combine both variations on the GFC that we have seen in the previous section. In summary it means we include the province dependent fixed OB cost, and also three medium sized OBs in Gn, Gvc and Mt. The current OBs are included in the model

59 by setting cF,medium = 0 for F = {Gn, Gvc, Mt}. Besides that, their capacities are set to 1000 maintenance visits per year. The current OBs also have the option to upgrade from medium to large against lower cost than the original cost of a large OB at that end station. We estimated this upgrade cost as cF,large − cF,medium. We summarize the input settings of the CC in Table 5.20. For ε = 1.5, the total cost is e2.6 million.

Input Parameters Settings

Fixed OB Cost cF,i Dependent on provinces and cF,medium=0 for F = {Gn, Gvc, Mt} Fixed OB Cost factor 1 < ε < 2 OB capacity κF,small = 500, κF,medium = 1000, κF,large = 2000 Deadheading cost standard Budget B = 0 Maintenance Visits 2930 Candidate facilities All end stations (F = S)

Table 5.20: Overview of the input parameter settings of the Green Field Case

In Table 5.21, the solution of the CC is shown. Remarkable is that in the scenarios where ε ≤ 1.3, the OB in Gvc is upgraded from medium to large, while the current OBs should have enough capacity to handle all maintenance visits in one year (3 × 1000 = 3000 > 2930). Gvc seems to be most interesting for an upgrade, and Gn and Mt are not fully utilized. Gn is located in the very north of the Netherlands and Mt in the most southern point. Deadheading to those locations is usually because of the average distances that train units travel to get in those OBs are longer. Since interchanges are not allowed by our budget setting, the deadheading cost has a big effect on the solution in this case. Furthermore, Zl is the first location where an extra OB is opened, then Almo and Ht only in scenario 6 (1.6 ≤ ε ≤ 1.9 have the same solution). In the next case, we will investigate the effect when the budget is increased.

Scenario no # OBs ε Locations Gn Gvc Mt Zl Almo Ht 1 3 1.1 medium large medium 2 3 1.2 medium large medium small 3 4 1.3 medium large medium small 4 5 1.4 medium medium medium small large 5 5 1.5 medium medium medium small large 6 6 1.6, 1.7, 1.8, 1.9 medium medium medium small small small

Table 5.21: CC: Solution on the number of OBs and their sizes.

5.3.3 Variations on the Combined Case For the following cases, we take the Combined Case as a reference point. In each of the cases, we consider three different values for the factor that describes the relation between the fixed OB cost of the different sizes: ε = 1.25 − 1.5 − 1.75. In the Tables C.4-C.6, we present the

60 sizes and locations of the OBs that are opened in the optimal solutions using the same order. For example M-M-S means a medium size OB is opened in case ε = 1.25 and ε = 1.5, while a small OB is opened in that location when ε = 1.75.

Deadheading Cost per km: Case CC-a In the first variation on the CC, we test the influence of the deadheading cost per km on the solution (similar to what we did in Section 5.1.6, but using the CC as a reference point). We present the results in Table C.4. The results show again that the number of OBs is increased with in general small sized OBs. When ε = 1.25, initially 4 OBs are opened with Almo next to the existing ones. When the deadheading cost per km is doubled (scenario 3), a medium OB in Zl is opened. Furthermore, when ε = 1.5 and the deadheading cost per km is increased, at least 6 OBs are needed. Next to the current OBs, the solution indicates opening three small ones in Almo, Zl and Ht. In the last variation ε = 1.75. Up to an increase of 4.5 times the deadheading cost per km, the solution is again opening three small OBs in Almo, Zl and Ht.

Maintenance Visits: Case CC-b Furthermore, we increase the number of maintenance visits with 50% from the original 2930, in case CC-b. We present the results in Table C.5. From the results, we notice that ε has much influence on the number of OBs that are opened. The higher we set this factor, the more OBs are opened in the solution. For ε = 1.25 the number of OBs is 4 and for ε = 1.5 5 OBs are opened. Here we can conclude that when the number of maintenance visits is increased, no extra OBs are opened but their sizes are increased (such that the total capacity of the OBs is increased). Altogether, we can conclude that to take into account more maintenance visits than our current estimate of 2930 per year, at least one extra OB is desirable. We cannot draw any conclusion on the best location, but from our results Zl is chosen most often.

Budget: Case CC-c We increase the budget to allow up to 3000 interchanges in total in all end stations per year. We present the results in the Table C.6. The results show that Zl is chosen in all cases where an extra is opened apart from the current existing ones. Next to Zl, Almo is chosen once when ε = 1.5 and in every scenario where ε = 1.75. The reason for this is that in general, more small OBs can be opened against relatively low cost when ε is closer to 2. Compared to the CC where the budget was 0, less OBs are needed when the budget is increased, because by interchanging instead of deadheading, costs are saved. Total costs are decreased to e1.1 million when the interchanges are not restricted by the interchange budget.

5.3.4 NedTrain Case The final case of this section is set up, in order answer the question: Is it better for NedTrain to open a new OB or to expand the existing OBs? Taking into account the results of the previous cases, we tried to choose the parameters values that we think are most suitable in NedTrain’s case, see Table 5.22. We handle the existing OBs in the same way as in the ‘including existing OBs’-case in Section 5.3. We distinguish two scenarios with a different number of maintenance visits, which are presented in Table 5.23. When the number of maintenance visits is increased with 20%, two small OBs located in Almo and Zl are opened. In the second scenario, where the number of maintenance visits is increased with 40%, even a third small OB in Vl is opened besides those in Almo and Zl.

61 In Table 5.24, we show the number of interchanges that are performed in the end stations for the two scenarios that are tested.

Input Parameters Settings

Fixed OB Cost cF,i Dependent on provinces Fixed OB Cost factor ε = 1.5 OB capacity κF,small = 500, κF,medium = 1000, κF,large = 2000 Deadheading cost per km original cost ×2 Budget B = 3000 Maintenance Visits 3516(= 2930 + 20%) and 4102(= 2930 + 40%) Candidate facilities All end stations (F = S)

Table 5.22: Overview of the input parameter settings of the NedTrain Case

Input Locations of Facilities Mvisits Increase Compared to BC Total Cost Gn Gvc Mt Almo Zl Vl 3516 20% 2.0 ·106 MMMSS- 4102 40% 2.4 ·106 MMMSSS

Table 5.23: Solution NedTrain Case

62 Increase in mvisits End station 20% 40% Ah 163 190 Amr 247 288 Asd 176 284 Dv 39 46 Ehv 192 224 Ekz 41 48 Es 10 12 Gvc 244 253 Hfd 59 69 Hlm 8 9 Hrl 105 122 Ht 113 172 Nm 73 44 Rsd 79 93 Ut 599 668 Vs 90 184 Zl 93 30 Total 2329 2733

Table 5.24: End stations where interchanges are performed, for the NedTrain case including increases in the number of maintenance visits with 20% and 40%.

63 Chapter 6

Model Extensions

In practice it is likely that maintenance facilities have type-specific resources, such as equip- ment and machines but also operators have specialized knowledge. In the MLR model it is assumed that each train type can be maintained in every OB. In this chapter we focus on the last subquestion:

Is it possible and beneficial to extend the MLR model such that maintenance facilities become type-specific?

6.1 Type-specific Maintenance Depots

Resources are indispensable in maintenance companies and many decisions that managers need to make are related to resources. Those maintenance facilities are characterized by the number of inspection sheds, machines and employees that are needed to perform the maintenance activities. Big resources such as inspection sheds (pit between the rails such that mechanics can do inspections and maintenance under the train) determine directly how many train units can be maintained at the same time. A number of mechanics is needed to perform a certain maintenance task. Most mechanics are specialized in maintaining a few different train types only. Similarly, machinery and other non-human resources are sometimes not able to maintain all train types. When this extension is implemented in the model, different train types automatically go to maintenance locations where the right resources are located. To explore the possible benefits of having a train type-dependent model, we first investigate the train type distribution of the MLR model without implementing a model extension in Section 6.1.1. Furthermore, we examine a case where we can adjust the capacity per train type in Section 6.1.2. Finally, we propose a way to implement a limiting number of train types per OB in Section 6.1.3. The results in this section only consider one facility size, since we were not yet able to implement type dependent facilities together with the Multiple Facility Sizes.

6.1.1 Train type distribution In the first extension regarding resources, we are interested in which different train types are routed to which OB. For the MLR model, we assumed that an OB had unlimited resources and

64 moreover the required equipment to maintain all train types. We implement this extension to the MLR model and run it with input data of the BC. However, when allowing the OB capacity to be unlimited, we cannot investigate the distribution of the train types on different OBs, since only one facility (Ut) is opened. Therefore, we set the OB capacity to 1000 maintenance visits per year for every candidate facility. Next to this, we include the three existing OBs to create one instance to analyze the effect of the train type distribution. The results are presented in Table 6.1. In this table, we show the three OBs that are open. For each OB, we know the last train line where the train units came from, the type and the number of train units. There is no information kept on whether, and if so how many times, train units have been interchanged before they end up in the last train line, before heading to an OB. When train units came from a train line where one of the end stations is equal to the OB, it either originated from that train line or it managed to get there via interchanges. On the other hand, when neither end station of the train line is the OB itself, the train unit was deadheading.

Gn Gvc Mt Train Line Type Train Units Train Line Type Train Units Train Line Type Train Units Apd-Aml DD-AR 35 Asd-Zvt DDZ 12 Ehv-Wt SLT 15 Zl-Gn ICM 75 Gdg-Gvc SLT 12 Hrl-Std SGM 8 Kpn-Zl DM90 9 Ut-Gvc SLT 335 Ehv-Mt VIRM 89 Gn-Gvc VIRM 298 Gvc-Hlm SLT 46 Mtr-Rm SGM 23 Hfd-Avat SGM 32 Hfd-Amf SGM 28 Tbu-Ehv DDZ 19 Gn-Ut ICM 124 Hld-Rtd SGM 12 Hrl-Ehv ICM 154 Asd-Zl SLT 79 Bd-Gvc SLT 89 Hrl-Shl ICM 176 Zl-Es DM90 66 Gvc-Rsd SLT 62 Dn-Ht DD-AR 92 Gn-Ut VIRM 212 Hfd-Avat SGM 17 Mt-Amr VIRM 243 Ledn-Ut DDZ 175 Mt-Asd VIRM 169 Rtd-Utg SGM 203 Mt-Sgn VIRM 14 Rtd-Utg SLT 10 Total 930 Total 1000 Total 1000

Table 6.1: Number of train units of each train type and associated last train lines where the units came from.

In Table 6.2 we give an overview of the number of train units per type. This case corre- sponds to Figure 6.1a, where no restriction is set on specific types and the budget B = 0. The ICM and the DDZ are both directed to Gvc with a small percentage of their maintenance visits. On the other hand, the SLT is maintained in Gvc mostly, but still it is optimal to route around 30% to the other two OBs. In practice, it has the disadvantage that type-specific maintenance equipment and mechanics have to be available in all different locations which usually results in higher costs. Furthermore, the resources’ utility is lower than desired when only few train units are visiting a facility that use the resources. Therefore, we introduce two other variations on this extension in the next sections.

65 Gn Gvc Mt ICM 209 9 311 VIRM 354 336 335 SLT 79 446 121 SGMM 78 180 65 DM90 75 0 0 DDZ 140 29 38 DD-AR 66 0 60

Table 6.2: Overview of the number of maintenance visits per type in the OBs Gn, Gvc and Mt

(a) (b)

(c) (d)

Figure 6.1: The distribution of the train types in the OBs, when the budget is 0 and all train types can and cannot go to each OB and in Figure 6.1a and Figure 6.1b respectively. Furthermore, when the budget is unlimited, and all train types can and cannot go to each OB in Figure 6.1c and Figure 6.1d, respectively.

6.1.2 Adjustable capacity per train type For this variation of the resource extension, we change the constraint of the OB capacity. For each train type we set a maximum capacity restriction in each of the candidate facilities. In this way, we can enforce maintenance visits to go to OBs where the required resources are located. In the green field approach it is hard to estimate which resources are available at which locations, since the assumption is that initially there are no facilities at all. We could

66 choose to make estimations based on the number of the resources that are available in the existing OBs. Another approach is to initiate ‘random’ capacity restrictions for all candidate facilities and investigate the outcome after running the model. Therefore, we combine the flow into each OB per train type and check whether they exceed their maximum. To ensure the model can find a feasible solution, the total number of train units per type should be at least the number that exists times the average number of times that type undergoes maintenance per year.

Mathematical implementation: For the mathematical implementation of this extension, we define a set with the train types T ={ICM, VIRM, SLT, SGM, DM90, DDZ, DD-AR}. Each train line in the model corresponds to exactly one train type. We introduce a new function τ, that gives the train type of the associated train line:

• τ : VL → T .

We have to adjust the OB capacity κF in Constraint (3.5) of the MLR model, such that we can define a different capacity for different train types. Therefore we define the parameter κ˜F (we use the tilde to distinguish it from κF ) as the OB capacity per train type t ∈ T :

• κ˜F : VF × T → IR+. The adjusted constraint is the following: X z(v, w) ≤ y(w)˜κF (w, t) ∀w ∈ VF , ∀t ∈ T, (6.1) v∈τ −1(t)

where τ −1 is again the preimage. Due to this constraint, the flow over all arcs from all train lines to an OB is per type not more than the OB’s capacity for each type. The implementation still allows to take into account the original capacity constraint to limit the total flow in addition to the capacity constraint per type. However, here we only test the new constraints separately.

Adjustable Capacity Case We introduce a test case named Adjustable Capacity Case (ACC) to demonstrate how this extension can be applied. We use the outcome of Table 6.2, to manipulate the number of train units of each type that can enter an OB. Accordingly, we adjust the capacityκ ˜F to 1000 for each type in the existing OBs. In Figure 6.1a and Figure 6.1b, we present the outcome regarding the distribution of the train type to each of the OBs when allowing all types and not allowing every type in the OBs, respectively. In the second case, we set the capacity of the ICM and the DDZ in Gvc to zero. As a result, the distribution is slightly adjusted and the cost are increased around e100,000, see Table 6.3. In Figure 6.1c and Figure 6.1d, we present the outcome of similar cases as described above. The difference is that for those cases the budget was set to 0 and now we set it to ∞. When interchanges are allowed as in the two cases discussed now, we can see a different ‘train type - OB’- distribution. In case (c), train types go to less different OBs compared to case (a), while the only difference is the budget. In case (c), we conclude that most of the maintenance visits of the SLT, SGM and DDZ are routed to Gvc, and only a few to Mt and Gn. We set the capacity of these train types in Mt and Gn to zero and case (d) is the result. The total

67 cost after including the restriction is around e270,000 higher than when all train types are allowed in every OB, see Table 6.3. As explained, resource cost should be included to see whether it could be beneficial.

Case Total Cost 6.1a 6,255,306 6.1b 6,355,612 6.1c 3,887,902 6.1d 4,153,752

Table 6.3: The total cost per case as explained in 6.1.

6.1.3 Limited Resources per OB In this extension, we want to show that the model allows us to include more detailed in- formation on the train types and their required resources. For now, we make a start by including information about which train type can go to which maintenance facility. Whereas in the second variation we could only set a different capacity for different train types, we now change the objective function to have additional cost for resources. This means the more train types are maintained in a certain place, the higher the cost. The advantage of this variation, is that we are able investigate future scenarios as well. When we include the rolling stock assignment plan for next year where the fleet is different, we can take this into account by making strategic decisions on facility locations.

Mathematical implementation: To include the resources in the model and to implement the constraint of having a limited number of train types per facility, without specifying before- hand which train types, requires to adjust the decision variables. To this end, we introduce the following additional decision variables:

• yR(w, t): VF × T → {0, 1},

where the set T is the set of train types as before. The objective function needs to be adjusted and a realistic way to do so, is by splitting the OB cost into a fixed cost and a cost depending on the number of resources. The new objective becomes:

X X X X Minimize T = cF (v)y(v) + cR(v, t)yR(v, t) + cT (a)z(a), (6.2)

v∈VF t∈T v∈VF a∈AI ∪AF

where cR : VF × T → R+ is a cost for resources for a certain train type. This means there is a fixed cost associated to opening an OB, and adding resources for certain train types comes with additional cost. The capacity constraint should be changed accordingly. This changes into the following: X z(v, w) ≤ κ˜F (w, t)yR(w, t), ∀w ∈ VF , ∀t ∈ T. (6.3) v∈τ −1(t) This means that the sum of the flow from train lines with train type t to candidate facility w should not exceed its capacity if it has the resources for that type, or the flow should be

68 0 when there are no resources. An additional hard constraint could be included to require a limited number of different train types per OB: X yR(w, t) ≤ NT (w), ∀w ∈ VF ,NT (w) ∈ N. (6.4) t∈T The original capacity constraint should still be maintained, to ensure that there is flow to a candidate location only when an OB is opened: X z(v, w) ≤ κF (w)y(w), ∀w ∈ VF . (6.5)

v∈VL

Data: To add this extension to the model, we need more information on resources. We want to know what type of resources existing and the number of resources available on each location. Next to this, we need data regarding the physical space available of each candidate facilities in order to estimate the maximum amount of inspection sheds and big machines. Besides that, we want to estimate the costs per train type per time period. Mechanics have different skills and are usually specialized in fixing a specific train type. Therefore, we need to know what the capabilities of the existing resources are. Consequently, we can estimate the resource cost for one maintenance visit for each train type and calculate the total resource cost per year.

6.2 Unplanned Maintenance

Next to extensions regarding resources and variable plant size, an interesting extension would be including unplanned maintenance activities (EBKs). Since we are interested in location strategy of the OBs, it is important find determine what kind of jobs or activities are done in an OB. It is directly linked to the number of maintenance activities that are done in the OBs in total (demand). In practice, not only planned maintenance is done in the OBs as we assumed in the basic model. As explained in Section 3.1.1 a part of the broken train units are fixed in the OBs as well. Data analysis shows that around half of the activities done in an OB are due to planned maintenance and the other half is work caused by EBKs [de Jonge, 2014]. We verified this with data of 2015, see Table ?? in the Appendix. A NedTrain employee of the Business Intelligence department explained that the numbers provided in this data set are a lower bound, because most likely not all EKS are registered in the OBs.

EBKs: Next to the planned maintenance policy, which is Condition Based (mileage) and Time Based, a Failure Based Maintenance (FBM) policy is needed for rolling stock mainte- nance. In NedTrain’s case, FBM means that a failure or defect in a train unit occurs between two planned maintenance visits. NedTrain considers four urgency levels to classify the defects [Smit, 2015]. The so classified ‘urgency level 3’ failures influence the operations and planning within the OB and the maintenance routing operations to the OB, and are called EBKs (extra entry). For now, we consider only EBKs, since the other defects are not repaired in an OB and this is the facility type of interest. Defects can be divided in two types. Type I train units can still safely transport passengers for a few days. Therefore, they can be treated as normal urgent units that are routed to the OB for planned maintenance. Type II train units are not

69 allowed to transport passengers, so they travel empty (deadheading). They either drive to the OB themselves or they are towed by another train when needed. In Table 6.4 the total number of train units that were towed in 2015 is given.

Type Towed Units DDAR 6 DDZ 17 DM90 4 ICM 39 SGM 19 SLT 17 VIRM 29 Total 131

Table 6.4: Number of broken train units that were towed to an OB in 2015

The deadheading cost covers the average cost for all the type II units. The repair activities can be clustered with the planned maintenance activities. If this is done, the disadvantage is that the total time in the OB for that unit will be longer. On the other hand, if the broken unit was close to its C-state, it does not have to go to the OB twice in a short period. If it just had the planned maintenance, it might be too time consuming to do those activities again. Then it might be better to only fix the defects and send the unit back in circulation as soon as possible.

70 Chapter 7

Conclusions, Recommendations, and Further Research

In this chapter, we first summarize our findings and we extensively discuss the research questions, that were introduced in Section 1.3 in Section 7.1. After that, we conclude this thesis with recommendations and suggestions for further research in Section 7.2.

7.1 Summary and Conclusions

In Chapter 3, we have worked towards an optimization problem formulation that is an ex- tension of the Maintenance Location Routing (MLR) model. As a first modeling step, we introduced the railway network in terms of end stations and connecting train lines. The lo- cations of these end stations are candidate locations for opening maintenance depots. Train units of different types need to visit these OBs several times a year to undergo planned main- tenance. The next step was to convert the railway network into a flow graph, where the flow over the arcs is associated with the maintenance visits of train units. Vertices roughly consists of two sets: a set of train lines and a set of candidate facilities. Here we make the assumption that the amount of maintenance visits is proportional to the amount of kilometers the train units ride on a certain train line in one year. All maintenance visits that originate in this way from the train lines, should eventually flow to one of the candidate facilities that is opened. We have shown that this flow graph setting can be used to define a minimization problem, by putting a cost on opening an OB and on flow. The total cost is then minimized under a number of constraints and the solution tells us where the OBs should be opened and therefore also the number of OBs. We have added to this model the possibility of choosing between multiply OB sizes and called this the MLR with Multiple Facility Sizes (MLR-MFS) model. The decision variable yi in this model, determines whether a facility of size i should be opened at a certain location. The constraints (3.5) and (3.7) are adjusted such that they are size-specific, and Constraints (3.6) are added to make sure that at each location at most one facility can be opened.

In Chapter 4, we described the raw data that was needed to solve the MLR model. Train units, end stations and the connecting train lines are the three most important input sets. We included deadheading cost per kilometer for each train type. The cost are estimated based on calculations of [van Uden, 2015] and [Smit, 2015]. We included 7 train types that are

71 maintained by NedTrain. Other train types can be added, when the train lines that they serve are included as well. Furthermore, the fixed cost for opening an OB is derived from interviews with NedTrain experts and set to e1 million per year. Since the cost depends on many unknown factors such as infrastructure to the candidate facility, and also its size and location, it is hard to verify the estimate. For this reason, we tested the influence of this parameter on the solution in a sensitivity analysis. Furthermore, we simulated the effect of making the fixed cost location dependent using data on land prices per province. The data is organized in a series of Excel sheets, that can easily be imported to setup the model in Java. This also allows to adjust the data if the railway network, train services/types or other parameters change.

We performed numerical analyses to test the model in Chapter 5. We introduced a Base Case (BC) with input parameters as in Table 4.1. We vary five of the input parameters of the BC separately: the number of maintenance visits, the fixed OB cost, the OB capacity, the budget and the deadheading cost per kilometer. The optimal solution of the BC is opening one OB that is located in Ut, with a total cost of e2.8 million. In this BC, we consider only one OB size. The total cost is determined by sum of the price of opening one OB and the price of deadheading. When the number of maintenance visits in the BC is increased by a factor of ±2.2, two OBs are opened, located in Ut and Shl. In general, the deadheading cost term is directly proportional to the number of maintenance visits. Increasing the number of maintenance visits more and more will gradually increase the number of OBs opened. Decreasing the fixed cost to 40% (e4.0 ×105) results in opening two OBs (Ut, Shl), whereas decreasing it to 10% or lower leads to opening 6 or more OBs. The OB capacity appears in a hard constraint and thereby directly influences the number of OBs. This stresses the importance of the MLR-MFS model, that allows the solution to choose the optimal sizes depending on the relation between capacity and cost, while otherwise this is greatly determined by the user input. Increasing the interchange budget can only lead to opening less OBs, so it cannot change the optimal solution compared to the BC. However, it does have a large influence on the transportation cost, since interchange flow has much lower cost than deadheading flow. When the budget is infinite (or at least non-restrictive), the total cost is decreased by almost 50%. This indicates that the interchange budget can have an influence on the optimal solution in a situation where without interchanges multiple OBs would have been opened. As can be expected, increasing the deadheading cost with a certain factor has exactly the same result as increasing the number of maintenance visits by the same factor, when no interchanges are allowed (which is the case in the BC). For example, either exactly twice the amount of maintenance visits lead to deadheading against normal cost, or the original number of maintenance visits lead to deadheading against double the cost.

Next to these single input variation cases, we investigated three cases where two input parameters were changed simultaneously in Section 5.2.1. We focused on the deadheading cost per kilometer, and tested it together with the fixed OB cost (CDFC case), the budget (CDB case) and the number of maintenance visits (CDMV case). Both the CDFC case and the CDMV did not show surprising results: the lower the fixed OB cost, the sooner the increase in the deadheading cost results in a different optimal solution. Furthermore, the number of maintenance visits and deadheading cost both have a similar effect and this does

72 not change when they are combined. More interesting is the CDB case, in which we allowed unlimited number of interchanges by setting B = ∞, as well as increasing the deadheading cost. In this case, a second OB is opened in Dv (and not Shl), in the case that the deadheading cost per km are 5 times higher compared to the BC settings. When we compare this with the VDCC, we see that in that case 2 OBs were opened already when the deadheading factor was increased with a factor 2.5. Taking a factor 5 resulted in 4 OBs, compared to 2 OBs when interchanges are allowed. This shows that the interchange budget is a crucial parameter in the model.

In Section 5.3, we did make full use of the MLR with Multiple Facility Sizes model. We illustrated the effect of including this option with cases where three different sizes (large, medium, small) can be chosen in each location. We started with an equivalent case to the BC, which we called the Green Field Case (GFC). To include multiple facility sizes, we could not set the OB capacity to infinity anymore. Therefore, we adjusted the capacity such that the size reflected the number of maintenance visits the OB could handle yearly. Also the fixed OB cost is adjusted to reflect the different sizes. When the size of an OB doubles, the cost is multiplied with a factor ε.

The next two cases that were described in Section 5.3.1, are adaptations on the GFC. In the first case, the influence of the province dependent fixed OB cost is investigated. We conclude that the influence of different cost is high, since the two most chosen locations are Almo and Wt instead of Ut and Asd. More small OBs are opened when ε is increased, because then it is relatively inexpensive to open a small sized OBs. The location that are popular as third, fourth and fifth facility, in both the GFC and the province dependent GF, are Zl, Gvc and Ht. Gvc is located in an expensive region, but Zl and Ht in more averaged land price provinces. This means that from a logistics perspective these locations are interesting. Total costs are slightly higher when including the province dependency. In the second variation of the GVC, the existing OBs are included by setting their cost to zero for a medium sized facility. A capacity of 1000 maintenance visits per year is an estimate based on the data of 2015. We also assumed that the current OBs can be expanded against an upgrade cost, that is equal to the difference in cost of a large OB and a medium OB in a particular end station. The exact numbers are then again dependent on the province.

Next, in Section 5.3.2, we combined the previous two cases into the Combined Case (CC). The results of this case show that the influence of the factor ε is high and the solution highly depends on the factor’s value. The existing OBs in Gn (which is the end station of OB Onnen) and Mt (Maastricht), are opened and have size medium. Gvc (which is the end station of OB Leidschendam), is upgraded to large for ε ≤ 1.3, and also medium otherwise. Even though the existing (medium sized) OBs have enough capacity to handle all yearly maintenance visits, an extra OB or more extra OBs are opened. The fact that in almost all scenarios extra OBs are opened, shows that the locations of Gn and Mt are not optimal. We can also verify this from the results: the number of maintenance visits that is assigned to Gn and Mt is low, whereas the capacity of Gvc and the extra OBs is reached.

The last case of the numerical analysis is the NedTrain Case that is described in Section 5.3.4. The most important assumptions we made, are an increase in the number of main- tenance visits and higher deadheading cost per kilometer. Also, we assume that 3000 train

73 units can be interchanged in total yearly. Under the assumptions we made, two small OBs are required next to the existing ones when the number of maintenance visits increase with 20%. Besides that, opening three small OBs next to the existing ones is optimal when the maintenance visits are increased with 40%.

We have shown in Chapter 6.1, that it is possible to extend the model such that different capacities for different train types are used in each OB, in a similar way as the multiply facility sizes were included. In fact, since in the current MLR-MFS model a train line already includes the train type (i.e., the same route with a different train type is modeled with a different train line), it is already possible to see the distribution of different train type maintenance visits over each of the OBs, as was done in Table 6.2. The table showed that all OBs handle all train types, but this can be avoided in some cases by replacing just a few maintenance visits. We adapted the code such that the capacity can be different for different train types, but only for the case where all facilities have the same size. We could show that with minor additional cost the number of different train types per OB can be reduced.

7.2 Recommendations and Further Research

We have seen that the MLR-MFS forms a useful addition to the MLR model. In many cases, the optimal solution includes 2 or more different facility sizes. So far we considered a maximum of three sizes, but it would be useful to look into the effect of having four or more different sizes. The railway network as extracted from the data (train lines, end stations, train types) provide a realistic and feasible setup to perform experiments on. We think it is good to include location/region dependent cost for building facilities, but ideally more than just the land prize should be included. Both the deadheading cost and the fixed OB cost require additional research, although the sensitivity analysis show that the optimal solution is not extremely sensitive for deviations in these costs, especially when we consider ‘existing OB’- cases. Furthermore, the variable maintenance cost of the SLT train deviates from the other train types. Although we checked for some cases that it only influences the total cost slightly, but not the optimal solution itself, it should be checked if this is correct or not. It is more important to gather information about the number of interchanges that can occur in different stations and the total interchange budget. Our experiments have shown that the interchanges have a large influence on the total cost and it has a significant influence on the optimal solution. However, validated estimations of the number of interchanges are not included at this point. We believe that the model and implementation in its current form can serve as a tool for location planning experts. The generic setup and simple connection between Excel and Java allows them to change certain parameters according to their own expertise. We think future research should focus on the effect of resources and EBKs, as briefly described in Sections 6.1 and 6.2. We have made a start on the modeling and implementation of resources/type-dependent facilities and it shows that more realistic results can be obtained once resources are taken into account properly. We did not consider the EBKs in any of our experiments, but in reality they form a large part of the maintenance done in OBs. However, including EBKs might result in the same solutions as when the number of planned maintenance visits is increased.

74 Appendix A

Model Implementation

In this section we explain how the model is programmed in Java, how ilog CPLEX is used for the optimization problem, and how the program is linked to MS Excel. The mathematical model is programmed in Java, an object oriented computer programming language. The reason for modeling in this language is mainly the compatibility with the existing model for this problem, specifically at NedTrain ([T¨onissenet al., 2016]). Furthermore, it is practical since there are possibilities for using add-ins of CPLEX and MS Excel, which were useful for the research. The Java code can be split up into two parts: the first part reads in the input data from an excel file, and outputs another excel file containing necessary parameters for the base case. The second part reads in the base case and creates all objects, sets up the rest of the model and performs the computation. Since programming the model in Java was one of the research goals, we think it is im- portant to provide a clear overview of the content of the code. In the next two sections we describe using pseudocode the two parts of the program.

A.1 Data Read-In and Case Construction

Here we discuss the first part of the code, where input data from an Excel file is converted into an Excel file that is suitable for the second part of the code. We use the jxl package to read in from Excel. The Excel file in this case is a list of train routes, that consists of begin and end station, distance of the route, the train type, and the number of occurrences in 2015.

A.1.1 TrainLine Class This data is summarized in the TrainLine objects as below. One of the most important parameters is the coachkm, that is the total distances covered by all coaches in a year. This parameter is used later to determine the number of maintenance visits that should be planned for trains on a certain train line. import java.util.ArrayList;

public class TrainLine {

private String traintype, route, beginpoint, endpoint; private double km, coachkm, seriesnumber, average, maxinterchange, mvisit; private ArrayList ncoaches; private ArrayList yearfreq; private String time; private int index;

75 public TrainLine(String route, double seriesnumber, String time, String beginpoint, String endpoint, String traintype , double nc, int yf){ //set TrainLine parameters }

public void setAverage(){ //computes average number of coaches on this trainline }

public void setCoachKM(){ //computes the total distance of all coaches on this trainline

}

A.1.2 Problem Class In the following piece of (pseudo)code the data is imported, using a file containing all distances between all stations in the model, a file containing empirical data of 2015 of train lines and a file containing data about maintenance visits in 2015. From this data a new Excel file is constructed, that can be used as input for the base case. The jxl package can handle cells with various datatype, as long as they are consistently used in Java. import jxl.*; import java.io.*; import java.util.*; public class Problem {

int[][] distancematrix; String[] stationnames; private ArrayList trainLine; private ArrayList traintypes; private ArrayList uniquetypes; double[] totalcoachkmpertype ;

public Problem(){ //Constructor }

public void MakeProblem(){

//Read in distancematrix for.txt file ...

76 //Read in Excel file with train line information: Workbook wrk1 = Workbook.getWorkbook(new File ("ModelLines.xls"));

int nsheets = 3; Sheet[] sheets = new Sheet[nsheets]; for(int i=0; i

//Loop over all rows of file for(int i=1; i< sheets[2].getRows(); i++){ //Store trainline properties, such as route, serial number, time of day, begin station, end station, train type, number of coaches and nr of occurrences. LabelCell route = (LabelCell)sheets[2].getCell(0,i); NumberCell seriesnumber = (NumberCell)sheets[2].getCell(1,i); ...

//Loop over all train lines and add new trainlines or add data to existing train lines. }

//Compute the length of each train line using the route and the distance matrix.

//Compute unique train types, nr of coaches per type and import maintenance visit data: uniquetypes = DetermineTypes(); computeTotalCoachesperType(); maintenancevisits();

//Export to Excel WriteToExcel();

}

//Determines the unique types of trains ina arraylist trainline public ArrayList DetermineTypes(){ ... return new ArrayList(new HashSet(traintypes)); }

77 //Determines the total number of coaches*km per type, given an arraylist trainline and an arraylist with all unique types public double[] computeTotalCoachesperType(){ ... return totalcoachkmpertype; }

//Read Excel file with maintenance visits data per train type and compute maintenance visits for each trainline. public void maintenancevisits(){ int[] mvisitspertype = new int[uniquetypes.size()];

Workbook wrk2 = Workbook.getWorkbook(new File ("MaintenancevisitsData.xls"));

//Add data to train lines ...

}

//Export begin station, end station, train type, distance, nr of maintenancevisits and maximum nr of interchanges of each trainline. public void WriteToExcel(){ File exlFile = new File("JavaOutput.xls"); WritableWorkbook writableWorkbook = Workbook.createWorkbook(exlFile);

WritableSheet writableSheet = writableWorkbook.createSheet("Sheet1", 0);

//Write labels Label bp = new Label(0, 0,"BeginPoint"); writableSheet.addCell(bp); Label ep = new Label(1, 0,"EndPoint"); writableSheet.addCell(ep); ...

for(int i=0; i

writableSheet.addCell(beginpnt); ... }

78 System.out.println("Your file is in:"+ exlFile.toString()); } }

A.2 Objects, Flow Graph and Cplex

The first part of code was mainly intended to import data from various sources and construct a suitable Excel file to be used for later computations.

A.2.1 Main In the Main class of the code, different cases can be selected. Choosing sc = 0 runs the base case. It constructs an object NTrProblem, a Cplex object and a MixedInteger object. We briefly discuss the contents of these objects, after the following summary of Main class code: import ilog.cplex.IloCplex; import java.io.File;

public class Main {

public static void main(String[] args) throws Exception { //Select case int sc = 0;

//Base case if(sc == 0){ NTrProblem p = new NTrProblem(); p.MakeProblem(sc, 0); IloCplex cplex = new IloCplex();

String outputfilename ="Output.xls"; MixedInteger m = new MixedInteger(p, cplex,sc,outputfilename); }

//Other cases if(sc == i){ ... } } }

A.2.2 NTrProblem Class The Class NtrProblem is where the Excel file is imported and the necessary objects are created. Among those are:

79 • Train objects: with a name (type), average speed, a deadheading factor, cost per km

• End station (Estation) objects: with a name, cost for opening an OB at this location, with corresponding capacity, and the interchange capacity.

• TrainLine objects: with begin/end station, length, train type, total number of coaches and the total number of coach kilometers.

The necessary data is imported in the following code, based on the datasets as explained in Chapter 4. public class NTrProblem { //Import data from Excel file(that was created before) public void MakeProblem(int sc, double instance){ Workbook wrk1 = Workbook.getWorkbook(new File ("BaseCase.xls"));

//Read number of stations and train types NumberCell nstations = (NumberCell)sheets[0].getCell(1, 0); NumberCell ntypes = (NumberCell)sheets[0].getCell(1, 2);

//Createa list of Train and Estation(end station) objects and store data Train[] trains = new Train[(int) ntypes.getValue()]; ... Estation[] stations = new Estation [(int)nstations.getValue()]; ...

ArrayList trainLine = new ArrayList(); //Loop over lines in Excel file and store data in TrainLine objects. ...

//Determine candidate facilities ...

Set exchanges = new HashSet(); //Loop over all lines to check if interchanges are possible for(int i=1; i< nroflines; i++){ for(int j=1; j

80 } }

A.2.3 MixedInteger Class The Train, Estation and TrainLine objects form the basis of the model. However, all computa- tions are done using the associated flow graph as explained in Section 3.3. In the MixedInteger class the flow graph is constructed, creating arcs and vertices corresponding to the end sta- tions and train lines. It consists of two imported methods: BuildFlowGraph (in which the graph is constructed) and MIP (in which all constraints are added and the Cplex code). In between the code, the comments indicate how the code relates to the theory and constraints as discussed in Section 3.4. public class MixedInteger2 {

private Graph graph; private int opened, Fnodes, rows, columns, nodes, edges; private String outputfilename;

public MixedInteger2(NTrProblem p, IloCplex cplex, int sc, String outputfilename) throws IloException { ... BuildFlowGraph(p); MIP(cplex, p);

}

//Method where flow graph is constructed using the objects in p. private void BuildFlowGraph(NTrProblem p){

ArrayList vertices = new ArrayList(); ArrayList arcs = new ArrayList();

//Adda sink and source to the graph Vertex S = new Vertex("S", 0); vertices.add(S); Vertex T = new Vertex("T", 1); vertices.add(T);

Vertex[] facilities = new Vertex[p.getCandidates().length];

//EI consists of interchange edges, Efd is an array that for all facilities consists of the set of interchange edges connected to it. Set EI = new HashSet();

81 Set[] Efd = new HashSet[p.getFacilities().length]; EI = new HashSet(); for(int f = 0; f(); }

//Add vertices for all candidate facilities. for (Estation e : p.getCandidates()) { ... }

//Add vertices corresponding to the TrainLines and add arcs from the source. Vertex[] lnodes = new Vertex[lmax]; for(TrainLine l : p.getLNetwork().getTrainLines()) { ... }

//Add interchange arcs toEI, obtained fromp for(Exchange e : p.getLNetwork().getExchanges()) { ... }

//Add arcs from TrainLine-vertices to Facility-vertices. for (Vertex v : lnodes) { ... }

//Add arcs from Facility-vertices to the sink. for (Vertex es : facilities) { ... }

//Create Graph object with all arcs and vertices. graph = new Graph(arcs, vertices, facilities, lnodes, EI, Efd ); } public void MIP(IloCplex cplex, NTrProblem p) throws IloException{ //Decision variables: //Array with candidate facilities either opened or closed IloNumVar[] y = cplex.boolVarArray(p.getCandidates().length);

//Array with all arcs in the graph. should be >=0 for alla.

82 IloNumVar[] z = new IloNumVar[graph.getArcs().size()]; for (Arc a : graph.getArcs()){ z[a.getIndex()]= cplex.numVar(0, Double.POSITIVE_INFINITY); }

//Add constraints: //Constraint 1: flow to opened facilities should not exceed capacity. for(int f = 0; f < graph.getFvertices().length; f++){ IloLinearNumExpr expr1 = cplex.linearNumExpr(); for (Arc a : graph.getFvertices()[f].getIn()){ expr1.addTerm(1.0, z[a.getIndex()]); } expr1.addTerm(-graph.getFvertices()[f].getFacility().getCapacity(), y[f]); cplex.addLe(expr1, 0); }

//Constraint 2: flow conservation(excluding source en sink (ifv.getIndex()>1.) for (Vertex v : graph.getVertices()) { if (v.getIndex() > 1){ IloLinearNumExpr expr2 = cplex.linearNumExpr(); for (Arc a : v.getIn()){ expr2.addTerm(1, z[a.getIndex()]); } for (Arc a : v.getOut()){ expr2.addTerm(-1, z[a.getIndex()]); } cplex.addEq(expr2, 0); } }

//Constraint 3: fix the flow from source to nodes associated with TrainLines. for (Arc a : graph.getVertices().get(0).getOut()) { //vertex0 is the source. so for all arcsa that leave the source to the line vertices(in the heads of the arcs) we assign there associated flow. Vertex v = a.getHead(); cplex.addEq(z[a.getIndex()], p.getN(v.getTrainLine().getIndex())); }

//Constraint 4: Endstation interchange capacity constraint. for(int f = 0; f < p.getFacilities().length; f++){

83 // als0 interchanges al verwijderden preprocessing en als-1 dan is er geen station cap if (p.getFacilities()[f].getInterchangecap() >0 ){ //if(p.getFacilities()[f].getInterchangecap() >0&& p.getLNetwork().getEstations()[f].getUsed()){ IloLinearNumExpr expr4 = cplex.linearNumExpr(); for (Arc a : graph.getEfd()[p.getFacilities()[f].getIndex()]) { expr4.addTerm(1, z[a.getIndex()]); } cplex.addLe(expr4, p.getFacilities()[f].getInterchangecap()); } }

//Constraint 5: total budget for interchanges IloLinearNumExpr expr5 = cplex.linearNumExpr(); for (Arc a : graph.getEI()) { expr5.addTerm(1, z[a.getIndex()]); } cplex.addLe(expr5, budget);

//Objective function: IloLinearNumExpr obj = cplex.linearNumExpr(); //Cost for opening facilityy[f] for(int f = 0; f < graph.getFvertices().length; f++) { Estation es = graph.getFvertices()[f].getFacility(); obj.addTerm(es.getCost(), y[f]); }

//Interchange cost for (Arc a : graph.getEI()) { if (a.getCost() > 0){ obj.addTerm(a.getCost(), z[a.getIndex()]); } }

//Deadheading cost for (Vertex v : graph.getFvertices()) { for (Arc a : v.getIn()) { if (a.getCost() > 0) { obj.addTerm(a.getCost(), z[a.getIndex()]); } } }

84 cplex.addMinimize(obj);

if (cplex.solve()) { //Let cplex solve and export to Excel ...

WriteToExcel(...);

} else{ System.err.println("infeasible"); } }

public void WriteToExcel(double cost, double flow, double transpo , double deadc, double freefl, double deadfl, String obmvisit){ ... } }

85 Appendix B

Supporting Graphics

Figure B.1: Railway Map Netherlands 2016

86 Figure B.2: An overview of scenario 9 of the VBC: Interchanges in each end station are colored yellow. The bigger the dot the more interchanges are done yearly. The blue dot in Ut represents the location of the OB that is opened. See the corresponding results in Table 4.3.

87 Appendix C

Supporting Tables

C.1 Distance Matrix

Station ac ah ahp ahpr ahz akm alm almb almm almo almp amf amfs ... ac 0 82 83 85 90 186 28 34 28 36 30 45 48 ... ah 82 0 1 3 8 153 93 99 93 101 95 79 82 ... ahp 83 1 0 2 9 152 94 100 94 102 96 80 83 ... ahpr 85 3 2 0 11 150 96 102 96 104 98 82 85 ... ahz 90 8 9 11 0 161 101 107 101 109 103 87 90 ... akm 186 153 152 150 161 0 158 152 158 150 156 143 140 ... alm 28 93 94 96 101 158 0 6 0 8 2 33 36 ... almb 34 99 100 102 107 152 6 0 6 2 4 39 42 ... almm 28 93 94 96 101 158 0 6 0 8 2 33 36 ... almo 36 101 102 104 109 150 8 2 8 0 6 41 44 ... almp 30 95 96 98 103 156 2 4 2 6 0 35 38 ... amf 45 79 80 82 87 143 33 39 33 41 35 0 3 ... amfs 48 82 83 85 90 140 36 42 36 44 38 3 0 ...... 0

Table C.1: A small section (13 by 13 instead of the original 407 by 407 matrix) of the distance matrix between train stations in the Netherlands

88 C.2 List of end stations

End station Full Name End station Full Name Ah Arnhem Hrl Heerlen Almo Almere Oostvaarders Ht ’s-Hertogenbosch Amf Amersfoort Kpn Kampen Amfs Amersfoort Schothorst Ledn Leiden Centraal Aml Almelo Lls Lelystad Centrum Amr Alkmaar Lw Leeuwarden Apd Apeldoorn Mt Maastricht Apn Alphen a/d Rijn Mtr Maastricht Randwyck Asd Amsterdam Centraal Nm Nijmegen Avat Amersfoort Vathorst Rhn Rhenen Bd Breda Rm Roermond Bkl Breukelen Rsd Roosendaal Brn Baarn Rtd Centraal Ddr Dordrecht Sgn Schagen Dn Deurne Shl Schiphol Dv Deventer Std Sittard Ehv Eindhoven Tb Tilburg Ekz Enkhuizen Tbu Tilburg Universiteit Es Enschede Tl Tiel Gd Gouda Ut Utrecht Centraal Gdg Gouda Goverwelle Utg Uitgeest Gn Groningen Vl Venlo Gvc ’s-Gravenhage Vs Vlissingen Hdr Den Helder Wd Woerden Hfd Hoofddorp Wt Weert Hld Hoek van Holland Haven Zl Hlm Zp Zutphen Hn Hoorn Zvt Zandvoort aan Zee Hnk Hoorn Kersenboogerd

Table C.2: Abbreviations of the 57 end stations that are used as input.

89 C.3 Results VBC, Section 5.1

Scenario 1 2 3 4 5 6 7 8 9 Budget 500 1000 1500 2000 2500 3000 3500 4000 4437 Gvc 229 311 427 671 777 819 959 1006 1006 Asd 0 0 60 301 434 598 647 703 703 Ekz 0 13 13 13 13 13 24 119 330 Dv 19 11 11 11 11 11 23 117 328 Shl 0 0 176 176 197 197 291 281 295 Mt 14 68 68 68 68 163 209 257 257 Zl 135 165 221 219 221 221 221 221 221 Amr 0 0 6 0 53 95 141 188 188 Ehv 0 85 73 85 160 94 188 188 188 Rhn 0 22 22 22 46 168 171 180 180 Almo 50 106 106 112 114 114 114 114 114 Hfd 0 49 49 49 49 49 49 98 98 Utg 0 0 0 0 86 86 89 97 97 Vs 9 46 75 66 75 75 75 75 75 Ah 0 0 0 0 0 46 24 72 72 Rsd 0 10 66 75 66 66 66 66 66 Hdr 0 0 0 6 0 42 64 64 64 Ht 43 63 63 63 63 63 63 63 63 Nm 0 31 31 31 31 31 31 31 31 Ledn 0 6 6 13 14 14 14 14 14 Hrl 0 0 12 0 0 12 12 12 12 Rtd 0 0 0 0 0 0 3 12 12 Es 0 9 9 9 9 9 9 9 9 Gd 0 0 0 0 8 8 8 8 8 Hlm 0 6 6 0 6 6 6 6 6 Lw 0 0 0 11 0 0 0 0 0

Table C.3: Number of interchanges per end station per scenario in the VBC.

C.4 Results Section 5.3.2: Combined Case Variations

In the next three tables, the solutions are presented of the CC variations. For convenience we abbreviated the OB sizes such that we present L, M or S instead of large, medium and small. Furthermore, we included three values of ε such that the results are stated as 1.25-1.5-1.75 for each scenario and location.

90 Deadheading # of OBs Locations Gn Gvc Mt Zl Almo Ht Shl Ah Ut 1 4-5-6 M-M-M L-M-M M-M-M S-S-S -M-S –S – – – 1.5 4-6-6 M-M-M L-M-M M-M-M S-S-S -S-S -S-S – – – 2 5-6-6 M-M-M M-M-M M-M-M S-S-S -S-S M-S-S – – – 2.5 6-6-6 M-M-M M-M-M M-M-M S-S-S S-S-S S-S-S – – – 3 6-6-6 M-M-M M-M-M M-M-M S-S-S S-S-S S-S-S – – – 3.5 6-6-6 M-M-M M-M-M M-M-M S-S-S S-S-S S-S-S – – – 4 6-6-6 M-M-M M-M-M M-M-M S-S-S S-S-S S-S-S – – – 4.5 6-6-6 M-M-M M-M-M M-M-M S-S-S S-S-S S-S-S – – – 5 6-6-7 M-M-M M-M-M M-M-M S-S-S S-S-S S-S-S –S – – 5.5 6-7-8 M-M-M M-M-M M-M-M S-S-S S-S- S-S-S -S-S –S –S 6 6-7-8 M-M-M M-M-M M-M-M S-S-S S-S- S-S-S -S-S –S –S

Table C.4: The solution for CC-a, where the factor that is multiplied with the deadheading cost per kilometer is increased up to 6.

Mvisits # of OBs Locations Gn Gvc Mt Almo Zl Ht Dv 2930 4-5-6 M-M-M L-M-M M-M-M S-M-S -S-S –S – 3223 4-5-6 M-M-M L-M-M M-M-M M-M-S -S-S –S – 3516 4-5-6 M-M-M L-M-M M-M-M M-M-M -M-S –S – 3809 4-5-6 M-M-M L-M-M M-M-M M-M-M -M-S –S – 4102 4-5-7 M-M-M L-M-M M-M-M L-L-M -S-S –S –S 4395 4-5-7 M-M-M L-M-M M-M-M L-L-M -S-S –S –S

Table C.5: The solution for CC-b. In this case we increased the number of maintenance visits per year up to 150%.

Budget # of Obs Locations Gn Gvc Mt Zl Almo Ht 0 4-5-6|4-5-6 M-M-M|M-M-M L-M-M|L-M-M M-M-M|M-M-M S-S-S|S-S-S -M-S|-M-S –S|–S 500 4-4-5|4-4-5 M-M-M|M-M-M M-M-M|M-M-M M-M-M|M-M-M M-M-S|M-M-S –S|–S –|– 1000 3-4-4|3-4-4 M-M-M|M-M-M L-M-M|L-M-M M-M-M|M-M-M -S-S|-S-S –|––|– 1500 4-4-4|3-3-4 M-M-M|M-M-M M-M-M|L-M-M M-M-M|M-M-M S-S-S|–S –|––|– 2000 4-4-4|3-3-4 M-M-M|M-M-M M-M-M|L-M-M M-M-M|M-M-M S-S-S|–S –|––|– 2500 3-4-4|3-3-4 M-M-M|M-M-M M-M-M|M-M-M M-M-M|M-M-M -S-S|–S –|––|– ≥3000 3-3-4|3-3-4 M-M-M|M-M-M M-M-M|M-M-M M-M-M|M-M-M –S|–S –|––|–

Table C.6: The solution for CC-c, where the budget is increased up to 3000 interchanges per year (for higher values of the budget the solution remains the same). On the left side of the vertical line, we present the results without interchange capacity restrictions on the end stations. On the right side, we present the results including the interchange capacity per end station. This means that in some of the end stations no interchanges are possible.

91 Appendix D

Confidential Appendix

92 Bibliography

[Aikens, 1985] Aikens, C. H. (1985). Facility location models for distribution planning. Eu- ropean journal of operational research, 22(3):263–279.

[Baidya et al., 2016] Baidya, A., Bera, U. K., and Maiti, M. (2016). The grey linear pro- gramming approach and its application to multi-objective multi-stage solid transportation problem. OPSEARCH, pages 1–23.

[Bertossi et al., 1987] Bertossi, A. A., Carraresi, P., and Gallo, G. (1987). On some matching problems arising in vehicle scheduling models. Networks, 17:271–281.

[Carraresi and Gallo, 1984] Carraresi, P. and Gallo, G. (1984). Network models for vehicle and crew scheduling. European Journal of Operational Research, 16:139–151.

[de Jonge, 2014] de Jonge, T. (2014). The facility location problem applied to a train mainte- nance environment. Master’s thesis, School of Industrial Engineering, Eindhoven University of Technology.

[Duffuaa and Raouf, 2015] Duffuaa, S. and Raouf, A. (2015). Reliability-centered mainte- nance. In Planning and Control of Maintenance Systems, pages 245–260. Springer.

[Ebeling, 1997] Ebeling, C. E. (1997). An Introduction to Reliability and Maintainability Engineering. Waveland Press, Inc.

[Feo and Bard, 1989] Feo, T. A. and Bard, J. F. (1989). Flight scheduling and maintenance base planning. Management Science, 35(12):1415–1432.

[Floudas and Lin, 2005] Floudas, C. A. and Lin, X. (2005). Mixed integer linear program- ming in process scheduling: Modeling, algorithms, and applications. Annals of Operations Research, 139(1):131–162.

[Giacco et al., 2014] Giacco, G., DAriano, A., and Pacciarelli, D. (2014). Rolling stock ros- tering optimization under maintenance constraints. Journal of Intelligent Transportation Systems, 18(1):95–105.

[Gopalan, 2014] Gopalan, R. (2014). The aircraft maintenance base location problem. Euro- pean Journal of Operational Research, 236(2):634–642.

[Gopalan and Talluri, 1998] Gopalan, R. and Talluri, K. T. (1998). The aircraft maintenance routing problem. Operations Research, 46(2):260–271.

[He et al., 2015] He, X., Zheng, H., and Peeta, S. (2015). Model and a solution algorithm for the dynamic resource allocation problem for large-scale transportation network evacuation. Transportation Research Part C: Emerging Technologies, 59:233–247.

[Huisman et al., 2005] Huisman, D., Kroon, L., Lentink, R., and Vromans, M. (2005). Oper- ations research in passenger railway transportation. Statistica Neerlandica, 59:467–497.

93 [Khan and Haddara, 2003] Khan, F. and Haddara, M. (2003). Risk-based maintenance (rbm): a quantitative approach for maintenance/inspection scheduling and planning. Jour- nal of Loss Prevention in the Process Industries, 16(6):561–573.

[Li et al., 2016] Li, J., Lin, B., Wang, Z., Chen, L., and Wang, J. (2016). A pragmatic optimization method for motor train set assignment and maintenance scheduling problem. Discrete Dynamics in Nature and Society, 2016.

[Mar´otiand Kroon, 2005] Mar´oti,G. and Kroon, L. (2005). Maintenance routing for train units: The transition model. Transportation Science, 39(4):518–525.

[Mar´otiand Kroon, 2007] Mar´oti,G. and Kroon, L. (2007). Maintenance routing for train units: The interchange model. Computers & Operations Research, 34(4):1121–1140.

[Melo et al., 2009] Melo, M. T., Nickel, S., and Saldanha-da Gama, F. (2009). Facility lo- cation and supply chain management–a review. European journal of operational research, 196(2):401–412.

[NS and ProRail, 2014] NS and ProRail (2014). Beter en meer.

[NS, 2016] NS, R. (2016). Route planning. http://www.ns.nl/reisplanner/.

[NS-api, 2016] NS-api (2016). Stationslijst ns. http://www.ns.nl/reisinformatie/ns-api.

[Pˆeniˆcka et al., 2003] Pˆeniˆcka, M., Strupchanska, A., and Bjørner, D. (2003). Train mainte- nance routing. Formal Methods for Railway Operation and Control Systems.

[Smit, 2015] Smit, J. (2015). Defective trains handling: What are the real costs? Bachelor’s thesis, Eindhoven University of Technology.

[Swanson, 2001] Swanson, L. (2001). Linking maintenance strategies to performance. Inter- national journal of Production Economics.

[Talluri, 1998] Talluri, K. T. (1998). The four-day aircraft maintenance routing problem. Transportation Science, 32(1):43–53.

[T¨onissenet al., 2016] T¨onissen,D., Arts, J., and Shen, Z. (2016). Rolling stock maintenance location routing: Robust and stochastic programming formulations. Unpublished.

[van de Velpen, 2013] van de Velpen, T. (2013). Naslagwerk instandhoudingssystematiek bij nedtrain. Technical report, NedTrain. in Dutch.

[Van Ommeren et al., 2006] Van Ommeren, J. C., Bumb, A. F., and Sleptchenko, A. V. (2006). Locating repair shops in a stochastic environment. Computers & Operations Re- search, 33:1575–1594.

[van Uden, 2015] van Uden, M. (2015). An analysis of the transportation process of train units to maintenance depots for planned maintenance. Bachelor’s thesis, Eindhoven University of Technology.

[Vanzile and Otis, 1992] Vanzile, D. and Otis, I. (1992). Measuring and controlling machine performance. Handbook of Industrial Engineering, John Wiley, New York, NY.

94 [webblog Rijden de Treinen, 2016] webblog Rijden de Treinen (2016). Distance matrix de- cember 2015. https://blog.rijdendetreinen.nl/2015/12/afstandenmatrix-december-2015/.

[website Grondprijzen, 2016] website Grondprijzen (2016). Landprijzen bouwgrond. http://landprijzen.nl/bouwgrond-2/.

[website NedTrain, 2016] website NedTrain (2016). About nedtrain. http://www.nedtrain.nl/diensten/onderhoudenservice/.

[website NS, 2016] website NS (2016). About ns / history. http://www.ns.nl/over- ns/geschiedenis-van-ns.

[Xie et al., 2016] Xie, W., Ouyang, Y., and Somani, K. (2016). Optimizating location and capacity for multiple types of locomotive maintenance shops. Computer-Aided Civil and Infrastructure Engineering, 31:163–175.

[Yang and Feng, 2007] Yang, L. and Feng, Y. (2007). A bicriteria solid transportation prob- lem with fixed charge under stochastic environment. Applied Mathematical Modelling, 31(12):2668–2683.

95