Chapter 12 - Airline Industry

Chapter 12 - Airline Industry
Operations Research based models have been developed extensively for the airline industry
in the last five decades. Different types of formulations and solutions based on several
optimization and heuristic methods have been developed for a variety of problems and
applications in this industry (Yu, 1998).
One of the familiar applications of assignment problem is the problem of assigning fleet to
flight legs. This fleet allocation and scheduling problem along with crew scheduling problem
has been addressed extensively. Nowadays the applications involve revenue management
and demand forecasting.
In this course we present five situations where the principles of Operations Research are
applied. These are simple instances of otherwise complex situations modelled by earlier and
present day researchers. The applications are
1.
2.
3.
4.
5.
Network design using flow based models
Routeing problem
Fleet Allocation
Crew Scheduling
Baggage handling
Application 1 – Airline Network Design using flow based models
Most airlines operate on a hub-spoke model where some cities are identified as hubs and
other cities are connected to the hub. Every passenger going from i to j (where i and j are
not the chosen hubs) goes through a hub. The alternative to this approach is to allow one
stop movements from city i to city j. Here every passenger going from any city i to any city j
goes directly from i to j or goes through a maximum of one stop. This application formulates
this one-stop problem and we test it with an example. The formulation presented is based
on the work of Jaillet at al (1996) and has been modified suitably.
Consider 8 cities (nodes 1 to 8) whose distance matrix (symmetric matrix) is given in Table
12.1
--
12
--
22
19
--
26
27
33
--
Table 12.1 – Distance matrix
30
32
38
27
--
18
26
18
22
26
--
27
24
16
20
25
30
--
32
23
19
30
20
19
27
The number of passengers who wish to travel from city i to city j is given in Table 12.2
--
60
--
40
50
--
50
35
28
--
75
20
32
36
--
45
25
33
37
40
--
35
40
15
35
29
19
29
28
65
68
61
59
-47
Table 12.2 – Number of passengers travelling between cities
It is assumed that the same number of passengers travel from j to i. There is one type of
plane used and this has a capacity of 144. At present the company operates with city 1 as
the hub. The company would like to explore one stop models.
The total number of passengers visiting the eight cities is 345, 240, 231, 243, 336, 300, 281
and 296 respectively. Since city 1 is the hub, we require 2, 2, 2, 3, 3, 2, 3 planes from each of
the remaining cities to the hub and back. This gives us 17 planes or trips on way and 34 trips
or planes in all.
Let Yij be the number of planes going from city i and city j. Let Xilj be the fraction of the
demand dij met by travelling through city l. Let Cij be the cost of flying a plane from i to j.
This cost would depend on the distance between i and j. The objective is to Minimize
∑8𝑖=1 ∑8𝑗=1 𝐶𝑖𝑗 𝑌𝑖𝑗
𝑗≠𝑖
The constraints are 𝑑𝑖𝑗 + ∑𝑡≠𝑖,𝑗(𝑑𝑖𝑡 𝑋𝑖𝑗𝑡 + 𝑑𝑡𝑖 𝑋𝑡𝑖𝑗 − 𝑑𝑖𝑗 𝑋𝑖𝑡𝑗 ) ≤ 144𝑌𝑖𝑗 .
Xitj ≤ 1 for t ≠ i, j; i ≠ j; Xitj ≤ Yij
Xitj ≥ 0, Yij ≥ 0 and integer
The first constraint ensures that the demand for the passengers is met between every i and
j. It also ensures that the amount of passengers flowing in arc i-j is less than the capacity
available in the number of airplanes flowing between i and j. The Xitj being fractions of the
demand should be less than or equal to 1. Also there is flow in an arc only when airplanes
are allocated to that arc.
Our problem with 8 cities has 56 Yij variables and 336 Xitj variables. There are 56 flow
constraints 336 constraints restricting the fractions and another 336 constraints ensuring
that there is flow only when airplanes are allotted. There are 392 variables and 728
constraints. The original formulation has fewer constraints than the one presented here.
The first of the flow constraints between cities 1 and 2 is given by
144Y12 - 40X123 - 50X124 - 75X125 - 45X126 - 35X127 - 40X128 - 50X312 - 35X412 - 20X512 - 25X612 15X712 - 35X812 + 60X132 + 60X142 + 60X152 + 60X162 + 60X172 + 60X182 ≥ 60.
The optimum solution to our IP is given by Y12 = Y15 = Y16 = Y17 = Y21 = Y26 = Y31 = Y36 = Y37 = Y41
= Y48 = Y51 = Y57 = Y58 = Y61 = Y63 = Y64 = Y68 = Y73 = Y74 = Y75 = Y83 = Y85 = Y86 = 1. We also have
X263= X264 = X215 = X217 = X268 = X321 = X375 = X368 = X412 = X483 = X485 = X417 = X512 = X574 = X586 = X612 = X615
= X751 = X732 = X736 = X832 = X864 = 1. We also have X163 = 0.2, X173 = 0.8, X164 = X174 = 0.5, X158 = 0.225,
X168 = 0.775, X216 = 0.2, X364 = 0.6785, X374 = 0.3215, X326 = 0.1212, X416 = 0.81, X486 = 0.19, X573 = 0.318,
X583 = 0.781, X617 = 0.13, X631 = 0.87, X748 = 0.96, X758 = 0.04, X851 = 0.35, X861 = 0.65, X837 = 0.446, X857 =
0.553.
Figure 12.1 shows the arcs corresponding to the flights. There are 25 flights. The value of Xilj gives us
the number of people travelling in each flight. We consider arc 4-1. From the Xilt values we observe
that X412 = X417 = 1 and X416 = 0.81. This means that the demand from 4-2 use 4-1 and 1-2. This gives
us 35. From X417 = 1 we get another 29 travelling in the arc 4-1. X416 = 0.81 gives us a load of 0.81* 37
= 30 along the arc 4-1. Since X4t1 = 0 and since Y41 = 1 it means that all the demand from 4 to 1 go
directly from 4 to 1. This gives us a load of 50. The total load on 4-1 is 35 + 29 + 30 + 50 = 144.
From the optimum solution, we observe that X326 = 0.1212 and Y36 = 1. This means that 0.1212*33 =
4 people go from 3 to 6 using 3-2 and 3-6. Since the other X3t6 = 0, the remaining 29 people go
directly from 3 to 6.
For some arcs, the load is less than 144. For example, arc 6-8 has a load of 35 + 19 + 59 = 113.
4
2
7
1
5
8
3
Figure 12.1 – Arcs corresponding to flights
6
We can also formulate two stop scenarios where demand from any i to j is sent through a maximum
of 2 stops.
Application 2 – Routeing problem
This is a simple application of the aircraft routeing problem. We consider a company
operating within a fixed number of cities and having a small number of aircrafts. Each
aircraft starts from a city and goes to another city in the next time slot. This way it goes to
different cities and finally returns to the starting city after a fixed number of slots. It can visit
a city multiple times but from different cities each time. The demands form city i to city j in
slot k are given in Table 12.3 for six slots.
i-j
1
2
3
4
5
/slot
1-2
50 60 70 60
45
1-3
70 80 70 65
55
1-4
60 60 65 75
80
1-5
80 70 60 70
75
2-1
40 50 40 60
30
2-3
60 70 60 40
80
2-4
90 80 80 60
60
2-5 100 90 80 80
90
3-1
40 50 45 55
60
3-2
60 70 75 45
80
Table 12.3 – Demand between cities
6
70
75
60
65
70
90
55
75
65
60
i-j/
slot
3-4
3-5
4-1
4-2
4-3
4-5
5-1
5-2
5-3
5-4
1
2
3
4
5
6
80
75
65
80
65
55
60
70
40
80
75
45
60
70
75
60
50
60
50
90
65
50
55
65
80
70
55
65
55
85
35
55
40
80
70
60
75
80
65
75
70
60
60
70
65
60
65
70
60
70
60
65
50
70
60
55
60
75
65
90
It is assumed that the demand from city i to city j can be met using one aircraft and
therefore only one aircraft flies between any two cities in a slot. Assume 2 aircrafts and
assume that both start and end at city 1. Also what happens if the second aircraft starts at
city 2 and ends in city 2?
We initially solve the case where both the aircraft start in city 1 and end in city 1. We
formulate and solve the problem as a network problem. The corresponding network is
shown in Figure 12.2
The network has 25 nodes and several arcs connecting these 25 nodes. All the arcs are not
shown in the figure. Nodes 1 to 5 represent cities 1 to 5. Both the aircrafts start from city 1
and reach one of cities 2 to 5 in slot 2. Nodes 6 to 10 represent cities 1 to 5 in slot 3. There is
no arc between 2 and 7 because node 7 represents city 2. Here each of the four nodes ( 2 to
5) are connected to 4 out of the five nodes (6 to 10). At the next stage, nodes 11 to 15
represent cities 1 to 5. Again each of the 5 nodes (6 to 10) are connected to four out of the
five nodes (11 to 15). Similarly nodes 16 to 20 represent cities 1 to 5 in slot 4 to 5. Again
each of the five nodes 11 to 15 are connected to four out of the five nodes 16 to 20.
6
1
1
1
6
1
2
1
7
1
3
1
8
1
4
1
9
1
5
2
0
2
7
2
2
3
8
1
4
9
5
1
0
2
1
2
5
2
3
2
4
Figure 12.2 – Network for routeing problem.
Nodes 21 to 24 represent cities 2 to 5. Node 16 is connected to nodes 21 to 24. Nodes 17 to 20 are
connected to three out of the four nodes 21 to 25. Node 17 (city 2) is not connected to node 21 (city
2) and so on. Nodes 21 to 24 are connected to node 25 which represents city 1 so that the aircrafts
come back to city 1.
There are 4 + 4*4+ 5*4+5*4+4+ 4*3+4 = 80 arcs.
Let Xij = 1 if aircraft 1 goes from node i to node j. The relationships among the node numbers and
the cities have already been explained. Let Yij = 1 if aircraft 2 goes from node i to node j. The
objective is to maximize ∑𝑖−𝑗 𝑛𝑖𝑗 𝑋𝑖𝑗 + 𝑛𝑖𝑗 𝑌𝑖𝑗 . The objective function has 160 terms, with two terms
for arc.
There are two sets of constraints for Xij and for Yij (for each aircraft). The constraints for
nodes 1 and 25 for Xij variables are X12 + X13 + X14 + X15 = 1 and X2125 + X2225 + X2325 + X2425 = 1.
For nodes 2 to 24, the constraints are ∑𝑘 𝑋𝑘𝑖 − ∑𝑗 𝑋𝑖𝑗 = 0 for i = 2 to 24. Here k represents
the arcs that enter node i and j represents arcs that go out of i.
We also have the constraint Xij + Yij ≤ 1 (80 constraints – one for each arc) and Xij, Yij ≥ 0.
There are 160 binary variables and 50 + 80 = 130 constraints.
The optimum solution to this binary IP is given by X15 = X59 = X15 = X17 = X24 = X25 = 1; Y12 =
Y210 = Y1014 = Y1417 = Y1722 = Y2225 = 1. The objective function value is 920.
Aircraft 1 take the route 1-5-9-15-17-24-25. From the node city relationship the route is 1-54-5-2-5-1 with total number of passengers = 80+90+70+80+90+60 = 470. Aircraft 2 takes the
route 1-2-5-4-2-3-5 with total number of passengers = 50+90+85+80+80+65 = 450. The total
is 920.
We consider the situation where aircraft starts from city 1 and returns to city 1 while aircraft
starts from city 2 and returns to city 2. Figure 12.3 shows the corresponding network where
all nodes are shown but all arcs are not shown.
1
2
6
1
1
1
6
7
1
2
1
7
2
8
3
8
1
3
2
9
1
8
2
1
2
2
2
3
4
9
1
4
1
9
2
4
5
1
0
1
5
2
0
2
5
2
6
2
7
Figure 12.3 – Network considering two different starting cities
Here nodes 1 to 25 represent the corresponding 5 cities at slots 2 to 6. Nodes 1 to 5
represent the five cities; nodes 6 to 10 represent cities 1 to 5 and so on. Nodes 26 and 27
are the two destinations for the two aircrafts with node 26 representing city 1 and node 27
representing city 2. Similarly, nodes 28 and 29 are the two start nodes representing cities 1
and 2 respectively.
Since aircraft starts from city 1, there is no arc connecting 28-1. Similarly there is no arc
connecting 29-2. Similarly there is no arc 21-26 and 22-27 since they represent cities 1 and 2
respectively. The Xij variables are for aircraft 1 and the Yij variables are for aircraft 2. The
corresponding arcs are shown as continuous arcs for Xij and dotted for Yij variables. We do
not have arcs 1-6, 2-7, 3-8 etc (same cities) for both Xij and Yij variables. We also do not have
1-7, 1-8, 1-9, 1-10 for Xij and 2-6, 2-8, 2-9, 2-10 for the Yij variables. We do not have arcs
entering and leaving node 21 for Xij and for node 22 for the Yij variables. The objective
function is to maximize the number of passengers given by
Maximize ∑𝑖−𝑗 𝑛𝑖𝑗 𝑋𝑖𝑗 + 𝑛𝑖𝑗 𝑌𝑖𝑗 . The constraints are ∑𝑘 𝑋𝑘𝑖 − ∑𝑗 𝑋𝑖𝑗 = 0 and ∑𝑘 𝑌𝑘𝑖 −
∑𝑗 𝑌𝑖𝑗 = 0. We also have Xij + Yij ≤ 1 and Xij, Yij ≥ 0.
The network has 29 nodes and 80 arcs for Xij and 80 arcs for Yij variables. The objective
function has 160 terms. We have 25 nodes for the Xij part of the network for another 25
nodes for Yij part and there are 50 constraints. We also have 64 constraints for Xij + Yij ≤ 1
considering the common arcs that have both Xij and Yij variables. There are 114 constraints.
The optimum solution to the binary IP is given by X282 = X210 = X1014 = X1417 + X1723 = X2326 = 1;
Y295 = Y59 = Y915 = Y1517 = Y1725 = Y2527 = 1 with total people = 955. Aircraft 1 takes the route 12-5-4-2-3-1. The number of people are 50+90+85+80+80+65 = 450; Aircraft 2 takes the
route 2-5-4-5-2-5-2 with people = 100+90+70+80+90+75= 505.
It is also observed that LP relaxation of this formulation gives integer solutions for the X ij and
Yij variables.
Application 3- Fleet allocation
Fleet assignment is an important area where Operations Researchers have built models for
the airline industry (Bernhart et al, 2002, Hane et al, 1995). In the application presented
here, we assign fleet to trips that comprise of flight legs.
An airline operates flights among four cities (A to D). The demand of passengers from city i
to city j is given in Table 12.4.
From -To Demand
From-To Demand
From-To
A-B
130
B-D
100
D-A
A-C
100
C-D
80
C-B
A-D
50
B-A
120
D-B
B-C
80
C-A
90
D-C
Table 12.4 – Demand for passengers between cities
Demand
70
100
80
90
The airline operates the following 12 trips. These are A-B, A-B-C, A-C-D, B-D, B-C-D, B-A-D,CA, C-A-B, D-B-C, D-B-A, B-C-A and D-C-B. The airline has 3 aircrafts and the capacities of each
are 80, 100 and 80 respectively. Each trip is a direct flight between two cities or a one stop
flight. Each trip therefore is a flight leg or has two flight legs. A flight leg is a movement from
one city to another involving one departure and one arrival. The airline wishes to choose the
optimum trips that can maximize total number of people served while meeting flight,
capacity and other relevant constraints.
We start by defining distinct origin-destination (OD) points from the trips. These ODs have
the notation (X,Y,Z) where X and Y are the origin and destination of the part of the trip or
full trip (if it is a flight leg) and Z is the corresponding trip number. For example, trip 1 is a
direct trip and results in a flight leg (A, B, 1). Trip 2 has two flight legs A-B and B-C but has
three OD points. These are given by (A, B, 2), (B, C, 2) and (A, C, 2). This is because
customers from A to B, B to C and A to C can use flight trip 2. Each direct trip gives one OD
point while each one stop trip gives three OD points. For our example we have 30 OD points
from the 12 trips.
We define nijk as the number of people travelling from city i to city j using trip k. There are
30 nijk variables based on the above description. The variable nAB1 is associated with trip 1
while variables nAB2, nBC2 and nAC2 are associated with trip 2 and so on.
The objective function is to Maximize ∑30
𝑃𝑄𝑖=1 𝑛𝑃𝑄𝑖 . There are 30 terms in the objective
function.
We have the constraints that the number of people who will be travelling from one city to
another will not be more than the demand given. This is given by ∑𝑃𝑄𝑖 𝑛𝑃𝑄𝑖 ≤ 𝐷𝑃𝑄 . This
constraint is explained as follows:
If we consider going from B to A (say), the variables nBA6, nBA10 and nBA11 are involved. The
constraint for the OD pair B-A is given by nBA6 + nBA10 + nBA11 ≤ 120. We have 4 cities and 6
OD pairs in the forward and six in the reverse direction. There are 12 constraints.
We define Yi = 1 if trip i is chosen. If a trip is chosen, we have to assign an aircraft for the
trip. Let Zij = 1 if trip i is assigned to aircraft k. We have 12 Yi variables – one for each trip and
36 Zik variables for 12 trips and three aircrafts.
Every chosen trip should be assigned one aircraft. This is given by ∑3𝑗=1 𝑍𝑖𝑗 = 𝑌𝑖 . There are
12 constraints – only one for each trip. A chosen trip is assigned an aircraft while a trip that
is not selected does not have an aircraft assigned to it.
The aircraft assigned to the chosen trip should have the capacity to take the people who are
going to travel in that trip. This is given by ∑30
𝑃𝑄𝑖=1 𝑛𝑃𝑄𝑖 ≤ 80𝑍𝑖1 + 100𝑍𝑖2 + 80𝑍𝑖3 . This
constraint is explained as follows:
Even though we have used ∑30
𝑃𝑄𝑖=1 𝑛𝑃𝑄𝑖 in the left hand side of the equation, we use the
relevant terms only. Direct trips have one constraint while trips involving one stop will have
two constraints. Trip A-B will have a constraint nAB1 ≤ 80Z11 + 100Z12 + 80Z13. Trip D-B-A (Trip
#10) will have the two constraints nDB10 + nDA10 ≤ 80Z101 + 100Z102 + 80Z103 and nDA10 + nBA10 ≤
80Z101 + 100Z102 + 80Z103. This is because people travelling from D to B as well as from D to A
are going to be in the flight in the first leg and people between B to A and D to A will be in
the second leg. Nine trips involve one stop and we have 18 constraints while the remaining
three trips have one constraint each resulting in 21 constraints.
Considering each city, since the aircrafts take round routes, the number of trips coming in
should be equal to the number of trips going out. This is because each trip that enters a city
will leave the city as another trip. We also have to ensure that if trip k entering a city leaves
as trip l, then the two trips should be assigned the same flight. This is given by ∑𝑗 𝑍𝑗𝑘 ≥ 𝑍𝑖𝑘 .
We explain this constraint as follows.
We create a Table 12.5 where we list the trips that come into city i and trips that leave city i.
City
Trips that enter
Trips that leave
A
7, 10, 11
1, 2, 3
B
1, 8, 12
4, 5, 6, 11
C
2, 9
7, 8
D
3, 4, 5, 6
9, 10, 12
Table 12.5 – Trips entering and leaving the cities.
We consider city A and outgoing trip 1. Assuming that trip #1 (outbound trip) is chosen it
has to be allocated an aircraft. This means that one out of Z11, Z12, Z13 should be equal to 1.
Also one out of the inbound trips 7, 10, 11 should be chosen and be assigned the same
aircraft type. This leads to three constraints: Z71 + Z101 + Z111 ≥ Z11, Z72 + Z102 + Z112 ≥ Z12, Z72 +
Z102 + Z112 ≥ Z12.
We have three constraints (as many aircraft types) for each out bound trip, resulting in 36
constraints.
Considering each city, we should have an equal number of chosen inbound trips and
outbound trips. This is given by ∑𝑖 𝑍𝑖𝑘 = ∑𝑗 𝑍𝑗𝑘 . There are 12 constraints, considering 4
cities and three aircrafts. The constraint for city B, aircraft type 2 will be will be Z12 + Z82 +
Z122 = Z42 + Z52 + Z62 + Z112.
The formulation has 30 nPQi variables, 12 Yi variables and 36 Zik variables resulting in 78
variables. There are 12 + 21 + 36 + 12 = 81 constraints.
The optimum solution to this MILP chooses 9 out of the 12 trips and carries 1040 out of the
maximum possible 1090 customers. The solution is Y1 = Y3 = Y4 = Y6 = Y8 = Y9 = Y10 = Y11 = Y12
= Z12 = Z31 = Z42 = Z63 = Z83 = Z93 = Z102 = Z111 = Z121 = 1. Trips 1, 3, 4, 6, 8, 9, 10, 11 and 12 are
chosen resulting in nine chosen trips. Trips 1, 4 and 10 use aircraft 2, trips 3, 11 and 12 use
aircraft 1 and trips 6, 8 and 9 use aircraft 3.
The aircraft for trip 1 that starts at city A and enters city B will leave as trip 4 from city B. It
enters city D and leaves again for city A as trip 10. Aircraft 1 leaves city A as trip 3 reaches
city D. It leaves city D as trip 12 and reaches city B. It leaves city B as trip 11 and reaches city
A. Aircraft 3 starts from city D as trip 9 reaches city C. It leaves city C as trip 8 and reaches
city B. It leaves city B as trip 6 and comes back to city D. The trips are then repeated.
The number of people travelling in various ODs in the trips are n AB1 = nBD4 = 100, nAC3 = nCD3 =
nBA6 = nBC9 = 80, nDC12 = 90, nCA11 = n DA10= 70, nCB8 = 60, nCB12 = nDB12 = 40, nDB10 = nBA10 = 30,
nAD6 = 20, nDB9 = nBA11 = 10.
We can restrict the total number of trips to be chosen. This is given by ∑12
𝑖=1 𝑌𝑖 ≤ 𝑄 . Without
this constraint, the maximum value Q took is 9. Q=8 gives us a solution where we serve
1000 customers. The relevant part of the solution is Z12 = Z31 = Z43 = Z62 = Z71 = Z91 = Z102 =
Z123 = 1.
For Q = 6 we will be able to serve 910 customers. The relevant part of the solution is Z12 =
Z33 = Z62 = Z102 = Z 113 = Z123 = 1.