Decision aid methodologies in transportation Lecture 3: Crew Scheduling Prem Kumar prem.viswanathan@epfl.ch Transport and Mobility Laboratory This course is an extension of the same course taught last year by Dr Niklaus Eggenberg. A few slides are inspired from the material used by him and Prof C Barnhart (MIT Courseware)
Summary ● We learnt about the different aircraft scheduling models ● We learnt to formulate these sub-problems into mathematical models ● We learnt to solve certain problems with heuristics ● However heuristics have their limitations ● Today we will learn about exhaustive enumeration methods ● And of course, crew scheduling problems – crew pairing and crew rostering
Review: Maintenance Routing Formulation Minimize c x c y r r f f r R f F Subject to: b x y 1 , f F (1) r , f r f r R b x 1 , p P (2) r , p r r R Bounds x { 0 , 1 } r y { 0 , 1 } f
Mixed Integer Programming Models ● If only the x r and y f variables are continuous instead of discrete, the model could have been solved with simplex algorithm ● Unlike linear programming, optimal solution is not guaranteed to be in the corner or peripheral points of the feasible region ● These type of formulations are referred to as Mixed Integer Programming (MIP) models
Mixed Integer Programming Models 6 x 2 5 max 2 x 3 x 1 2 4 subject to : 2 x 2 x 7 3 1 2 5 x 8 x 20 2 1 2 x Z ( j 1 , 2 ) j 1 optimal solution 0 1 2 3 4 5 6 x 1
Exhaustive Enumeration: Branch and Bound ● As discussed in the first session, many practical problems can be represented through a tree ● This tree can be navigated further down till either you find an optimal solution or conclude that there are no more feasible solutions ● Branch and Bound algorithm is a specialized tree search technique used commonly to solve MIPs ● Using B&B, we can solve both Fleet Assignment Model as well as Maintenance Routing Model
Optimization Terminology ● For a minimization problem ● Upper Bound = value for which we know at least one solution exists ● Lower Bound = value for which we know that no solution with lower value exists ● Optimality gap = (UB-LB)/LB ● For a maximization problem ● LB = value for which we know at least one solution exists ● UB = value for which we know that no solution with higher value exists ● Optimality gap = (UB-LB)/LB
Branch and Bound Methodology ● Step 1: Relax integrality constraints Z + x j x j 0 x j {0, 1} [0, 1] 0 x j 1 ● Step 2: Solve relaxed problem ● Step 3: Branch-and-bound loop ● Branch: redefine bounds for integral variables with non-integral solutions or fix binary variables ● Bound: use non-integral objective function value as lower bound use integral solution as an upper bound ● Stopping criteria: If current LB = UB or every node is evaluated
Branch and Bound Example 6 x 2 5 max 2 3 x x 1 2 subject to : 4 2 x 2 x 7 3 1 2 5 8 20 x x 1 2 2 x Z ( j 1 , 2 ) j 1 0 1 2 3 4 5 6 x 1
Branch and Bound: Solve the Relaxed Problem max 2 x 3 x 6 1 2 x 2 subject to : 5 2 x 2 x 7 1 2 4 5 x 8 x 20 1 2 3 x 0 ( j 1 , 2 ) j 2 OptimalSol ution 1 8 x 1 3 0 1 2 3 4 5 6 5 x x 1 2 6
Branch and Bound: Branching Option max 2 x 3 x 6 1 2 x 2 subject to : 5 2 x 2 x 7 1 2 4 5 x 8 x 20 1 2 3 x 0 ( j 1 , 2 ) j 2 Branching OptimalSol ution 3 x 1 8 1 x 1 3 x 2 1 0 1 2 3 4 5 6 5 1 x x 2 x 1 2 6 x 0 x 0 2 2
Branch and Bound: Compute Bounds max 2 x 3 x 6 1 2 x 2 subject to : 5 2 x 2 x 7 1 2 4 5 x 8 x 20 1 2 3 x 0 ( j 1 , 2 ) j 2 Branching 1 47 x 3 UB 1 6 2 x 1 0 1 2 3 4 5 6 0 LB x 1 2 x 1
Branch and Bound: Branching on x 1 max 2 x 3 x 1 2 subject to : Branching 6 x 2 2 x 2 x 7 1 2 x 3 47 1 UB 5 x 8 x 20 1 2 5 x 2 6 1 x 0 ( j 1 , 2 ) j LB 0 x 1 2 4 3 max 2 x 3 x 1 2 subject to : 2 x 2 2 x 2 x 7 1 1 2 5 5 8 20 x x x 1 2 2 4 1 x 2 ; x 0 31 1 2 UB 4 LB 0 0 1 2 3 4 5 6 x 1
Branch and Bound: Branching on x 1 max 2 x 3 x 1 2 subject to : Branching 6 x 2 2 x 2 x 7 1 2 x 3 47 1 UB 5 x 8 x 20 1 2 5 x 2 6 1 x 0 ( j 1 , 2 ) j LB 0 x 1 2 4 3 max 2 x 3 x max 2 x 3 x 1 2 1 2 subject to : subject to : 2 x 2 x 3 2 x 2 x 7 2 x 2 x 7 1 1 1 2 1 2 5 1 5 8 20 5 x 8 x 20 x x x x 1 2 2 1 2 2 4 2 1 x 2 ; x 0 x 3 ; x 0 31 15 1 2 1 2 UB UB 4 2 LB 0 LB 0 0 1 2 3 4 5 6 x 1
Branch and Bound: Branching on x 2 max 2 x 3 x 1 2 subject to : 2 x 2 x 7 Branching 6 1 2 x 2 47 x 3 5 x 8 x 20 1 UB 1 2 6 x 2 0 ( 1 , 2 ) 1 x j LB 0 j x 1 2 5 max 2 x 3 x max 2 x 3 x 1 2 1 2 subject to : subject to : 4 2 x 2 x 7 2 x 2 x 7 x 2 x 3 1 1 1 2 1 2 5 1 5 x 8 x 20 x 5 x 8 x 20 x 2 2 4 2 1 2 1 2 31 15 x 2 ; x 0 x 3 ; x 0 UB UB 3 1 2 1 2 4 2 LB 0 LB 0 max 2 x 3 x 2 1 2 subject to : 2 x 2 x 7 x 2 1 2 1 x 1 5 x 8 x 20 2 1 1 2 31 UB x 2 ; x 1 4 1 2 LB 7 0 1 2 3 4 5 6 x 1
Branch and Bound: Branching on x 2 max 2 x 3 x 1 2 subject to : 2 x 2 x 7 Branching 6 1 2 x 2 47 x 3 5 x 8 x 20 1 UB 1 2 6 x 2 0 ( 1 , 2 ) 1 x j LB 0 j x 1 2 5 max 2 x 3 x max 2 x 3 x 1 2 1 2 subject to : subject to : 4 2 x 2 x 7 2 x 2 x 7 x 2 x 3 1 1 1 2 1 2 5 1 5 x 8 x 20 x 5 x 8 x 20 x 2 2 4 2 1 2 1 2 31 15 x 2 ; x 0 x 3 ; x 0 UB UB 3 1 2 1 2 4 2 LB 0 LB 0 max 2 x 3 x max 2 x 3 x 2 1 2 1 2 subject to : subject to : 2 x 2 x 7 2 x 2 x 7 x 2 1 2 1 2 1 x 1 5 x 8 x 20 5 x 8 x 20 2 Infeasible 1 1 2 1 2 31 UB 31 x 2 ; x 1 x 2 ; x 2 UB 4 1 2 1 2 4 LB 7 LB 0 0 1 2 3 4 5 6 x 1
Branch and Bound: Branching on x 2 max 2 x 3 x 1 2 subject to : 2 x 2 x 7 Branching 6 1 2 x 2 47 x 3 5 x 8 x 20 1 UB 1 2 6 x 2 0 ( 1 , 2 ) 1 x j LB 0 j x 1 2 5 max 2 x 3 x max 2 x 3 x 1 2 1 2 subject to : subject to : 4 2 x 2 x 7 2 x 2 x 7 x 2 x 3 1 1 1 2 1 2 5 1 5 x 8 x 20 x 5 x 8 x 20 x 2 2 4 2 1 2 1 2 31 15 x 2 ; x 0 x 3 ; x 0 UB UB 3 1 2 1 2 4 2 LB 0 LB 0 max 2 x 3 x max 2 x 3 x 2 1 2 1 2 subject to : subject to : 2 x 2 x 7 2 x 2 x 7 x 2 1 2 1 2 1 x 1 5 x 8 x 20 5 x 8 x 20 2 Infeasible 1 1 2 1 2 31 UB 31 x 2 ; x 1 x 2 ; x 2 UB 4 1 2 1 2 4 LB 7 LB 0 0 1 2 3 4 5 6 x 1
Branch and Bound: Branching on x 2 max 2 x 3 x 1 2 subject to : 2 x 2 x 7 Branching 6 1 2 x 2 47 x 3 5 x 8 x 20 1 UB 1 2 6 x 2 0 ( 1 , 2 ) 1 x j LB 0 j x 1 2 5 max 2 x 3 x max 2 x 3 x 1 2 1 2 subject to : subject to : 4 2 x 2 x 7 2 x 2 x 7 x 2 x 3 1 1 1 2 1 2 5 1 5 x 8 x 20 x 5 x 8 x 20 x 2 2 4 2 1 2 1 2 31 15 x 2 ; x 0 x 3 ; x 0 UB UB 3 1 2 1 2 4 2 LB 0 LB 0 max 2 x 3 x max 2 x 3 x max 2 x 3 x 2 1 2 1 2 1 2 subject to : subject to : subject to : 2 x 2 x 7 2 x 2 x 7 2 x 2 x 7 x 2 x 3 1 2 1 2 1 2 1 1 x 1 x 0 5 x 8 x 20 5 x 8 x 20 5 x 8 x 20 2 2 Infeasible 1 1 2 1 2 1 2 31 31 UB 31 UB x 2 ; x 1 x 2 ; x 2 x 3 ; x 0 UB 4 4 1 2 1 2 1 2 4 LB 7 LB 6 LB 0 0 1 2 3 4 5 6 x 1
Branch and Bound: Branching on x 2 max 2 x 3 x 1 2 subject to : 2 x 2 x 7 Branching 6 1 2 x 2 47 x 3 5 x 8 x 20 1 UB 1 2 6 x 2 0 ( 1 , 2 ) 1 x j LB 0 j x 1 2 5 max 2 x 3 x max 2 x 3 x 1 2 1 2 subject to : subject to : 4 2 x 2 x 7 2 x 2 x 7 x 2 x 3 1 1 1 2 1 2 5 1 5 x 8 x 20 x 5 x 8 x 20 x 2 2 4 2 1 2 1 2 31 15 x 2 ; x 0 x 3 ; x 0 UB UB 3 1 2 1 2 4 2 LB 0 LB 0 max 2 x 3 x 1 2 max 2 x 3 x max 2 x 3 x subject to : max 2 x 3 x 2 1 2 1 2 1 2 subject to : subject to : 2 x 2 x 7 subject to : 1 2 2 x 2 x 7 2 x 2 x 7 5 x 8 x 20 2 x 2 x 7 x 2 x 3 1 2 1 2 1 2 1 2 1 1 x 1 x 0 5 x 8 x 20 5 x 8 x 20 x 3 ; x 0 5 x 8 x 20 2 2 Infeasible Infeasible 1 1 2 1 2 1 2 1 2 31 31 UB 31 UB 15 x 2 ; x 1 x 2 ; x 2 x 3 ; x 1 UB UB 4 4 1 2 1 2 1 2 4 2 LB 7 LB 6 LB 0 LB 0 0 1 2 3 4 5 6 x 1
Recommend
More recommend