Train Driver Recovery Problem Decision Support System Framework and Natalia J. Rezanova 1 David M. Ryan 2 1 DTU Management Engineering Technical University of Denmark and DSB S-tog A/S, Denmark 2 Department of Engineering Science University of Auckland New Zealand Presented at TRANSLOG Workshop - Chile, 2009
Outline 1 The S-Train Driver Recovery Problem 2 3 4 5 6
Introduction to DSB S-tog A/S Railway Planning Process Train Driver Schedule Disruptions in Daily Operations DSB S-tog A/S Passenger train operator in Copenhagen area in Denmark. S-train Network 2007 170 km double tracks 84 stations 11 train lines (6 main, 5 extra) 3 trains pr.hour pr.line in both directions (periodic schedule) 270 train drivers pr.weekday 1220 train tasks pr.weekday 3 train driver depots (1 main)
Introduction to DSB S-tog A/S Railway Planning Process Train Driver Schedule Disruptions in Daily Operations Planning Process in Passenger Railway Operations
Introduction to DSB S-tog A/S Railway Planning Process Train Driver Schedule Disruptions in Daily Operations DSB S-tog Train Driver Schedule A Set of Duties: Duty is a sequence of: check-in passengering train tasks stand-by breaks check-out
Introduction to DSB S-tog A/S Railway Planning Process Train Driver Schedule Disruptions in Daily Operations Disruptions in Daily Operations
Problem Definition Disruption Neighbourhood Rolling Time Horizon Recovery Problem Definition Train Driver Recovery Problem (TDRP) Aim: Recover train driver schedule, i.e. get back to normal as soon as possible. Means: Rolling time horizon recovery. Conditions: Feasibility of recovery duties: Duty length Returning to original duty at the end of recovery Scheduled breaks (time and duration) Connection times (e.g. walking from/to depots) Opt.Goal: Minimize modifications, ensure robustness, minimize cost (passengering & taxi).
Problem Definition Disruption Neighbourhood Rolling Time Horizon Recovery Disruption Neighbourhood Initial problem size: Short recovery period, e.g. 2-3 hours. Only drivers directly affected by disruptions.
Problem Definition Disruption Neighbourhood Rolling Time Horizon Recovery Disruption Neighbourhood Initial problem size: Short recovery period, e.g. 2-3 hours. Only drivers directly affected by disruptions. If solution infeasible: Extend recovery period, e.g. with 30 minutes.
Problem Definition Disruption Neighbourhood Rolling Time Horizon Recovery Disruption Neighbourhood Initial problem size: Short recovery period, e.g. 2-3 hours. Only drivers directly affected by disruptions. If solution infeasible: Extend recovery period, e.g. with 30 minutes. Add other drivers, e.g. stand-by drivers.
Problem Definition Disruption Neighbourhood Rolling Time Horizon Recovery Rolling Time Horizon Recovery
Problem Definition Disruption Neighbourhood Rolling Time Horizon Recovery Rolling Time Horizon Recovery
Problem Definition Disruption Neighbourhood Rolling Time Horizon Recovery Rolling Time Horizon Recovery
Problem Definition Disruption Neighbourhood Rolling Time Horizon Recovery Rolling Time Horizon Recovery
Problem Definition Disruption Neighbourhood Rolling Time Horizon Recovery Rolling Time Horizon Recovery
Problem Definition Disruption Neighbourhood Rolling Time Horizon Recovery Rolling Time Horizon Recovery
Problem Definition Disruption Neighbourhood Rolling Time Horizon Recovery Rolling Time Horizon Recovery
Set Partitioning Problem Formulation Integer Properties of the Model Duty Graph Generation The Model Notation K set of drivers N set of trains R k set of recovery duties for driver k Decision variables 1 recovery duty r xr k of driver k is = in the solution 0 otherwise Set partitioning formulation of TDRP min cr k xr k k K s.t. r R k xr k = 1 k K (1) r R k airx k r k = 1 i N (2) k K r R k xr k {1, 0} r R k, k K (1) each driver has exactly one recovery duty in the solution. (2) each train task is covered by exactly one recovery duty in the solution.
Set Partitioning Problem Formulation Integer Properties of the Model Duty Graph Generation Integer Properties of the Model Constraint matrix structure Generalized Upper Bound (GUB) constraints.
Set Partitioning Problem Formulation Integer Properties of the Model Duty Graph Generation Integer Properties of the Model Constraint matrix structure Generalized Upper Bound (GUB) constraints. Ryan & Falkner [1981]: a GUB row ensures perfect structure of a 0-1 matrix. Padberg [1974]: perfect matrices. 0-1 matrix A is perfect Set Packing {cx : Ax b, x 0} has integer optimal solutions.
Set Partitioning Problem Formulation Integer Properties of the Model Duty Graph Generation Integer Properties of the Model Constraint matrix structure Generalized Upper Bound (GUB) constraints. Ryan & Falkner [1981]: a GUB row ensures perfect structure of a 0-1 matrix. Padberg [1974]: perfect matrices. 0-1 matrix A is perfect Set Packing {cx : Ax b, x 0} has integer optimal solutions. Applied to the TDRP model: Every driver submatrix is perfect LP-relaxation of TDRP has strong integer properties, i.e. often produces integer solutions. Fractions occur only when drivers compete for train tasks.
Set Partitioning Problem Formulation Integer Properties of the Model Duty Graph Generation Duty Graph Generation Disruption neighbourhood
Set Partitioning Problem Formulation Integer Properties of the Model Duty Graph Generation Duty Graph Generation Disruption neighbourhood
Set Partitioning Problem Formulation Integer Properties of the Model Duty Graph Generation Duty Graph Generation Personal duty graphs G 1 and G 2
Set Partitioning Problem Formulation Integer Properties of the Model Duty Graph Generation Duty Graph Generation Resource constrained path in G k = feasible recovery duty Cost of arc is the unattractiveness of the sequence of tasks to be performed by the driver in a recovery solution. Resources: Total duration of meal breaks within the recovery period. Scheduled start time of meal break(s) +/ 20 min. Cost of recovery duty represented by o 2 v 1 d 2 is the sum of arc costs c(o 2, v 1)+c(v 1, d 2 ).
Choosing Branch-and-Price Algorithm Solving TDRP LP Pricing Subproblem Problem Infeasibility and Expansion Branching Strategy Choosing Requirements to TDRP Decision Support System: Operational problem: running time is important. Feasibility is more important than optimality. Characteristics of Problem Formulation: Relatively few constraints and many variables. Strong integer properties of the LP-relaxation. LP-based branch-and-price algorithm with expansion of disruption neighbourhood (eventually stop when feasible integer solution is reached)
Choosing Branch-and-Price Algorithm Solving TDRP LP Pricing Subproblem Problem Infeasibility and Expansion Branching Strategy : Branch-and-Price Branch-and-price algorithm Branch-and-bound LP-relaxation: Dynamic column generation Disruption neighbourhood expansion Depth-first search Constraint branching on {driver,train} constraint pairs
Choosing Branch-and-Price Algorithm Solving TDRP LP Pricing Subproblem Problem Infeasibility and Expansion Branching Strategy Solving LP-relaxation of TDRP Iterate between: Solving the restricted master problem with LP-solver of MOSEK Optimization Software. Solving the pricing subproblem: Restricted enumeration One train driver at a time Limited subsequence strategy Resource constrained shortest path Full pricing Partial pricing Multiple pricing Limited subsequence pricing Disruption neighbourhood expansion Prolong duty length Expand recovery period Add drivers
Choosing Branch-and-Price Algorithm Solving TDRP LP Pricing Subproblem Problem Infeasibility and Expansion Branching Strategy Pricing Subproblem Find recovery duties with negative reduced cost The reduced cost of xr k is c r k = cr k λ k i N ak ir π i c k r cost of recovery duty x k r λ k dual value of the driver constraint k π i dual value of the train task constraint i.
Choosing Branch-and-Price Algorithm Solving TDRP LP Pricing Subproblem Problem Infeasibility and Expansion Branching Strategy Pricing Subproblem Find recovery duties with negative reduced cost The reduced cost of xr k is c r k = cr k λ k i N ak ir π i c k r cost of recovery duty x k r λ k dual value of the driver constraint k π i dual value of the train task constraint i.
Choosing Branch-and-Price Algorithm Solving TDRP LP Pricing Subproblem Problem Infeasibility and Expansion Branching Strategy Pricing Subproblem Find recovery duties with negative reduced cost The reduced cost of xr k is c r k = cr k λ k i N ak ir π i c k r cost of recovery duty x k r λ k dual value of the driver constraint k π i dual value of the train task constraint i. Subproblem generates resource constrained paths in G k with negative sums of arc and vertex costs: c k r < 0 by means of dynamic programming.
Choosing Branch-and-Price Algorithm Solving TDRP LP Pricing Subproblem Problem Infeasibility and Expansion Branching Strategy Infeasibility of TDRP Mathematical feasibility of TDRP LP is ensured by artificial variables 0 e k 1 and 0 f i 1 with high costs, one variable for every constraint. TDRP LP constraint matrix Detecting problem infeasibility
Choosing Branch-and-Price Algorithm Solving TDRP LP Pricing Subproblem Problem Infeasibility and Expansion Branching Strategy Infeasibility of TDRP Mathematical feasibility of TDRP LP is ensured by artificial variables 0 e k 1 and 0 f i 1 with high costs, one variable for every constraint. TDRP LP constraint matrix Detecting problem infeasibility Artificial variable e 3 =1for the driver constraint 3
Choosing Branch-and-Price Algorithm Solving TDRP LP Pricing Subproblem Problem Infeasibility and Expansion Branching Strategy Infeasibility of TDRP Mathematical feasibility of TDRP LP is ensured by artificial variables 0 e k 1 and 0 f i 1 with high costs, one variable for every constraint. TDRP LP constraint matrix Detecting problem infeasibility Artificial variable e 3 =1for the driver constraint 3 Driver 3 has no feasible recovery duties.
Choosing Branch-and-Price Algorithm Solving TDRP LP Pricing Subproblem Problem Infeasibility and Expansion Branching Strategy Infeasibility of TDRP Mathematical feasibility of TDRP LP is ensured by artificial variables 0 e k 1 and 0 f i 1 with high costs, one variable for every constraint. TDRP LP constraint matrix Detecting problem infeasibility Artificial variable e 3 =1for the driver constraint 3 Driver 3 has no feasible recovery duties. Artificial variable f 2 =1for the train constraint 2
Choosing Branch-and-Price Algorithm Solving TDRP LP Pricing Subproblem Problem Infeasibility and Expansion Branching Strategy Infeasibility of TDRP Mathematical feasibility of TDRP LP is ensured by artificial variables 0 e k 1 and 0 f i 1 with high costs, one variable for every constraint. TDRP LP constraint matrix Detecting problem infeasibility Artificial variable e 3 =1for the driver constraint 3 Driver 3 has no feasible recovery duties. Artificial variable f 2 =1for the train constraint 2 Train 2 is not covered by any recovery duty.
Choosing Branch-and-Price Algorithm Solving TDRP LP Pricing Subproblem Problem Infeasibility and Expansion Branching Strategy Disruption Neighbourhood Expansion Infeasibility of TDRP is resolved by expanding the problem. Infeasible TDRP Expanding the Problem
Choosing Branch-and-Price Algorithm Solving TDRP LP Pricing Subproblem Problem Infeasibility and Expansion Branching Strategy Disruption Neighbourhood Expansion Infeasibility of TDRP is resolved by expanding the problem. Extending Recovery Period Expanding the Problem Extend recovery period for Driver 3: a train task is added.
Choosing Branch-and-Price Algorithm Solving TDRP LP Pricing Subproblem Problem Infeasibility and Expansion Branching Strategy Disruption Neighbourhood Expansion Infeasibility of TDRP is resolved by expanding the problem. Adding a Driver Expanding the Problem Extend recovery period for Driver 3: a train task is added. Add a stand-by Driver 4. problem.
Choosing Branch-and-Price Algorithm Solving TDRP LP Pricing Subproblem Problem Infeasibility and Expansion Branching Strategy Disruption Neighbourhood Expansion Infeasibility of TDRP is resolved by expanding the problem. Solution Expanding the Problem Extend recovery period for Driver 3: a train task is added. Add a stand-by Driver 4. problem.
Choosing Branch-and-Price Algorithm Solving TDRP LP Pricing Subproblem Problem Infeasibility and Expansion Branching Strategy Branching Strategy Constraint branching Originally proposed by Ryan & Foster [1981]. J(r, s) a set of variables, where a driver constraint r and a train task constraint s are covered simultaneously, and 0 < j J(r,s) x j < 1 One-branch: Force driver r to cover train task s: j J(r,s) x j =1 Zero-branch: Forbid driver r to cover train task s: j J(r,s) x j =0
Choosing Branch-and-Price Algorithm Solving TDRP LP Pricing Subproblem Problem Infeasibility and Expansion Branching Strategy Branching Strategy Constraint branching on {driver r, train s}: Largest sum of fractions max j J(r,s) x j. Train task s covered by only one recovery duty of driver r. Train task s is in driver s r original duty. Depth-first search of the B&P tree Eventually stop when first integer solution is achieved Attractive integer solution reached fast Many 0-branches are fathomed
Test Scenarios Problem Sizes Optimization Test scenarios Based on real-life data Based on one day of irregular operation of DSB S-tog A/S in January 2007: severe delays due to a broken switch. Disruptions in train driver duties due to: Train delays. Train re-routings. Line cancellations. Recovery periods of 1, 1.5, 2, 2.5, 3 and 3.5 hours.
Test Scenarios Problem Sizes Optimization Problem sizes ID Recovery #Delayed #Turned #Cancelled Initial Initial Period Trains Trains Trains K N S15 03:00 12 0 0 12 35 S16 03:30 12 0 0 12 41 S25 03:00 17 0 0 17 40 S26 03:30 17 0 0 17 46 S33 02:00 23 13 18 35 54 S34 02:30 23 19 39 45 81 S35 03:00 23 27 56 55 120 S36 03:30 23 29 67 60 151 S43 02:00 30 15 31 44 58 S44 02:30 30 24 51 57 94 S45 03:00 30 29 63 64 131 S46 03:30 30 32 74 69 169 S53 02:00 26 19 39 47 56 S54 02:30 26 27 56 56 88 S55 03:00 26 29 67 61 118 S56 03:30 26 33 82 68 160 S63 02:00 40 23 51 59 70 S64 02:30 40 28 63 66 101 S65 03:00 40 31 74 71 133 S66 03:30 40 32 91 75 165 S73 02:00 38 23 56 60 75 S74 02:30 38 25 67 63 101 S75 03:00 38 29 82 68 132 S76 03:30 38 32 104 72 166
Test Scenarios Problem Sizes Optimization Optimization results ID #Prol #Expand #Added K (Init) N (Init) #Nodes RunTime Duties Duties Drivers in B&P (sec) S15 0 0 11 23 (12) 35 (35) 1 0.70 S16 0 0 12 24 (12) 41 (41) 1 0.94 S25 0 0 11 28 (17) 40 (40) 1 0.67 S26 0 0 12 29 (17) 46 (46) 1 0.91 S33 0 1 11 46 (35) 56 (54) 1 1.33 S34 0 0 11 56 (45) 81 (81) 1 1.42 S35 0 0 12 67 (55) 120 (120) 1 3.75 S36 0 0 12 72 (60) 151 (151) 13 29.22 S43 4 1 11 55 (44) 62 (58) 1 1.86 S44 4 1 11 68 (57) 98 (94) 1 4.13 S45 4 0 12 76 (64) 131 (131) 1 5.38 S46 4 0 12 81 (69) 169 (169) 1 15.31 S53 7 3 10 57 (47) 63 (56) 3 2.44 S54 7 0 11 67 (56) 88 (88) 1 2.11 S55 7 0 11 72 (61) 118 (118) 1 4.15 S56 7 0 13 81 (68) 160 (160) 1 12.44 S63 9 3 10 69 (59) 78 (70) 1 3.20 S64 9 0 11 77 (66) 101 (101) 1 2.75 S65 9 0 11 82 (71) 133 (133) 1 5.16 S66 9 0 13 88 (75) 165 (165) 1 11.63 S73 7 3 11 71 (60) 80 (75) 1 3.27 S74 7 0 11 74 (63) 101 (101) 1 2.92 S75 7 0 13 81 (68) 132 (132) 1 6.27 S76 7 0 13 85 (72) 166 (166) 1 12.72
Test Scenarios Problem Sizes Optimization Optimization results ID #Prol #Expand #Added K (Init) N (Init) #Nodes RunTime Duties Duties Drivers in B&P (sec) S15 0 0 11 23 (12) 35 (35) 1 0.70 S16 0 0 12 24 (12) 41 (41) 1 0.94 S25 0 0 11 28 (17) 40 (40) 1 0.67 S26 0 0 12 29 (17) 46 (46) 1 0.91 S33 0 1 11 46 (35) 56 (54) 1 1.33 S34 0 0 11 56 (45) 81 (81) 1 1.42 S35 0 0 12 67 (55) 120 (120) 1 3.75 S36 0 0 12 72 (60) 151 (151) 2 12.27 S43 4 1 11 55 (44) 62 (58) 1 1.86 S44 4 1 11 68 (57) 98 (94) 1 4.13 S45 4 0 12 76 (64) 131 (131) 1 5.38 S46 4 0 12 81 (69) 169 (169) 1 15.31 S53 7 3 10 57 (47) 63 (56) 2 2.36 S54 7 0 11 67 (56) 88 (88) 1 2.11 S55 7 0 11 72 (61) 118 (118) 1 4.15 S56 7 0 13 81 (68) 160 (160) 1 12.44 S63 9 3 10 69 (59) 78 (70) 1 3.20 S64 9 0 11 77 (66) 101 (101) 1 2.75 S65 9 0 11 82 (71) 133 (133) 1 5.16 S66 9 0 13 88 (75) 165 (165) 1 11.63 S73 7 3 11 71 (60) 80 (75) 1 3.27 S74 7 0 11 74 (63) 101 (101) 1 2.92 S75 7 0 13 81 (68) 132 (132) 1 6.27 S76 7 0 13 85 (72) 166 (166) 1 12.72
One of the first applications within railway recovery. Using optimization methods to solve a real-life operational problem. Designing a general framework for the train driver recovery. Developing a prototype for a train driver recovery decision support system. Testing the prototype on real-life data provided by DSB S-tog A/S. Short computational times show great potentials of the method in real-life operational implementations. Positive results in the proof-of-concept for implementing a decision support system for train driver dispatchers at DSB S-tog A/S.
Thank you for your attention