External Business Document

Sabre Competition In Solving
Airline Optimization Problems
2016 Topic: Operations Recovery
Technical Specification - Ver 1.0
April 2016
Document Edition 3.0 (April 2016)
This documentation is the confidential and proprietary intellectual
property of the Sabre Airline Solutions® business. Any
unauthorized use, reproduction, preparation of derivative works,
performance or display of this document or software represented
by this document, without the express written permission of Sabre
Airline Solutions is strictly prohibited.
Sabre®, the Sabre logo, Sabre Airline Solutions, the Sabre Airline
Solutions logo, Sabre Travel Network®, the Sabre Travel Network
logo, Sabre AirCentre®, Sabre AirVision®, SabreSonic® CSS are
trademarks and/or service marks of an affiliate of Sabre Inc. All
other trademarks, service marks and trade names are the property
of their respective owners.
© 2016 Sabre Inc. All rights reserved.
Table of Contents
1
Introduction
1.1 Problem overview........................................................................................................................................... 1
1.2 Terminology used in this document................................................................................................................ 1
2
Problem Definition
2.1 Airline Operations Recovery Problem Overview ............................................................................................ 3
2.2 Disruptions ..................................................................................................................................................... 3
Airport closures ......................................................................................................................................... 3
Unplanned maintenance ........................................................................................................................... 4
2.3 Recovery Options........................................................................................................................................... 4
Flight delays ............................................................................................................................................. 4
Flight swaps .............................................................................................................................................. 4
Flight cancellations ................................................................................................................................... 5
Maintenance cancellations ....................................................................................................................... 5
2.4 Constraints ..................................................................................................................................................... 5
Task assignments ..................................................................................................................................... 5
Airport match ............................................................................................................................................ 5
Terminal airport balance ........................................................................................................................... 5
Time match ............................................................................................................................................... 6
Airport closures ......................................................................................................................................... 6
2.5 Objective (solution quality) ............................................................................................................................. 6
2.6 Winning criteria .............................................................................................................................................. 6
Successful runs on all testing scenarios ................................................................................................... 6
Overall solution quality.............................................................................................................................. 7
3
Input Data
3.1 Aircraft.xml ..................................................................................................................................................... 8
3.2 Schedule.xml.................................................................................................................................................. 8
3.3 AirportClosure.xml .......................................................................................................................................... 9
3.4 Parameters.xml ............................................................................................................................................ 10
4
Output Data
4.1 Output format ............................................................................................................................................... 11
5
Deliverable
Business Name Document
i
Table of Contents
Confidential and Proprietary Sabre Airline Solutions
5.1 Executable ................................................................................................................................................... 13
5.2 Source code ................................................................................................................................................. 13
6
References and Useful Links
6.1 References ................................................................................................................................................... 14
6.2 Useful links ................................................................................................................................................... 14
Business Name Document
ii
Table of Contents
Confidential and Proprietary Sabre Airline Solutions
1
1
Introduction
1.1
Problem overview
Over the course of normal airline operations, some unavoidable disturbances can be caused by
unplanned factors like technical aircraft failures, inclement weather conditions, crew absences,
etc. These could lead to the delay and/or cancellation of some flights. As a consequence, an
aircraft’s routing can become disconnected.
The airline controller in the operations control center can repair disconnected aircraft routings
using a variety of options, such as delaying all subsequent flights, cancelling a set of consecutive
flights or swapping the affected flights to other aircraft.
However, the scale of disruption can easily grow to the extent that it is impossible for a human to
fulfill this task with a viable outcome in a timely maner.
Instead, an intelligent algorithm is required to identify disruptions and create options to help the
controller recover from the disruption and bring operations back to normal. The ideal solution
should identify a variety of recovery options and choose the best one based on its revenue and
cost to the airline in a reasonable period of computational time.
1.2
Terminology used in this document
Tail number: It is a unique identification for an individual aircraft.
Flight: It requires an aircraft to fly from a departure airport to an arrival airport with scheduled departure
time and arrival time. A flight has a fixed duration and could be delayed within an allowed time limit of 3
hours.
Maintenance: It requires a particular aircraft to stay at a specified airport with a fixed start time and a
fixed end time. In this competition, all the input information related to a maintenance cannot be changed.
Task: It is used to describe a flight or an aircraft maintenance in this problem.
Unix time: It is a system for describing instants in time, defined as the number of seconds that have
elapsed since 00:00:00 Coordinated Universal Time (UTC), Thursday, 1 January 1970, not counting leap
seconds.
Start available time: It is an aircraft’s property, which is used to describe that this aircraft can only
operate a flight or conduct maintenance after this time.
End available time: It is an aircraft’s property, which is used to describe that this aircraft must be at an
airport without any task assigned to it from this time onward.
Start available airport: It is an aircraft’s property, which is used to specify where the aircraft is located
at its start available time.
End available airport: It is an aircraft’s property, which is used to specify where the aircraft should be
located at its end available time.
Recovery start time: It is the earlisest time value among all start available times from all aircrafts.
Business Name Document
1
Table of ContentsIntroduction
Confidential and Proprietary Sabre Airline Solutions
Recovery end time: It is the latest time value among all end available times from all aircrafts.
Business Name Document
2
Table of ContentsIntroduction
Confidential and Proprietary Sabre Airline Solutions
2
2
Problem Definition
2.1
Airline Operations Recovery Problem Overview
The recovery problem considers the scheduled flights that are assigned to a list of aircraft during a fixed
time, generally about three to four days.
Recovery Problem Example 1
Tail
number
Tail 1
Start
available
airport
GHI
ABC
ABC
Tail 2
DEF
DEF
ABC
DEF
ABC
PQS
GHI
GHI
Tail 4
GHI
DEF DEF
DEF
Tail 3
End
available
airport
Scheduled flights/maintenances
DEF
DEF DEF
PQS
MNO MNO
DEF
DEF
DEF
JKL
JKL
DEF
A flight with a specified start/end airport
Maintenance with a specified airport
Recovery start time
Start available time of an aircraft
Recovery end time
End available time of an aircraft
A new algorithm will automatically reschedule the affected flights and corresponding maintenance by
using specific recovery options (listed in Section 2.3) to overcome the disruptions (satisfy all the
constraints listed in Section 2.4) and minimize the total weighted cost listed in Section 2.5.
2.2
Disruptions
There are two types of disuptions, airport closure and unplanned maintenance, in this competion.
Airport closures
Due to any number of unforeseen reasons, an airport may be required to close during a given period of
time. During this time, flights are not allowed to departure or arrive at this airport.
Business Name Document
3
Table of ContentsProblem Definition
Confidential and Proprietary Sabre Airline Solutions
The airport closure timeframe is a left-closed and right-open interval. For example, if the airport is to be
closd between 4 p.m. and 6 p.m., both departure and arrival flights are prohibited at 4 p.m., and traffic
flows are resumed at 6 p.m.
Unplanned maintenance
In a real scenario, if an aircraft requires unplanned maintenance due to a faulty component, it is required
to remain at the airport for a given period of time. Because the maintenance is unplanned, it may overlap
with some downline flights for which it has been assigned. Therefore, the aircraft cannot operate any
flights during the unplanned maintenance.
The aircraft must be at the specified airport at the beginning of the maintenance period. The time interval
of the maintenance is left-open and right-open, meaning the maintenance can begin immediately upon the
aircraft’s arrival at the airport, and it can only take off again when the maintenance has been completed.
2.3
Recovery Options
In this competition, four recovery options, including flight delay, flight swap, flight cancellation and
maintenance cancellation, are allowed. The four options are decribed in details below.
Flight delays
An input flight includes the scheduled departure time and the scheduled arrival time.
For example, consider that on March 9, China Eastern flight 5183 has a scheduled departure time of 7:35
a.m. with a scheduled arrival time of 9:55 a.m..
China Eastern Airlines Flight 5183
PEK
PVG
Departs Beijing,
Monday, March 9
Scheduled 7:35 AM
Arrives Shanghai,
Monday, March 9
Scheduled 9:55 AM
In a recovery situation, this flight can be delayed for a certain time. For example, if it is delayed for 30
minutes, the revised departure time and the revised arrival time will be on the same day at 8:05 a.m. and
10:25 a.m., respectively. The duration of the flight remains the same.
There will be a global delay time threshold of 180 minutes, meaning that flight 5183 can be delayed any
time between 0 to 180 minutes.
The shorter the total delay time is, the better the solution quality will be.
Flight swaps
Generally, a scheduled flight is assigned to an aircraft, which is identified by its tail number. During the
recovery process, we can assign the scheduled flight to any aircraft among a given list of aircraft. If the
flight is assigned to an aircraft whose tail number is different to the original assigned aircraft, we call this
is a flight swap.
Business Name Document
4
Table of ContentsProblem Definition
Confidential and Proprietary Sabre Airline Solutions
The lower the number of flight swaps, the better the solution quality will be.
Flight cancellations
If in no way the flight is able to be assigned an aircraft, it is cancelled. The lower the number of canclled
flights is, the better the solution quality will be.
Maintenance cancellations
If in no way the maintenance is able to be assigned the original planned aircraft, this maintenance is
cancelled. The lower the number of canclled maintenance is, the better the solution quality will be.
It is noted that a maintenance cannot be swapped to another aircraft.
2.4
Constraints
A feasible recovery solution consists of a set of tasks (flights or maintenances) that are assigned to all
input aircraft. It must satisfy the following constraints.
Task assignments
At any time, at most one task (flight or maintenance) can be assigned to an aircraft.
Airport match
1. Each aircraft has a start available airport from the input of the problem. The aircraft start airport must
match its first task’s start airport.
2. Any two consecutive tasks (flight or maintenance) that are assigned to an aircraft should be
connected. That means the airport where the first task is completed should be the same as the airport
where the second task begins. For example, two consecutive tasks, flight 5183 and maintenance 327
are assigned to aircraft Tail 1 in a feasible solution. These two taks are connected at airport PVG. The
end aiport of flight 5183 is the same as the start airport of maintenance 327.
Aircraft Tail 1
PEK
starts at PEK 7:00AM
7:35AM
5183
PVG
PVG
10:00AM
9:55AM
ends at
PVG
12:00PM
13:00P
M
PVG
Terminal airport balance
The number of aircraft that are ending at a particular airport should equal to that in the original input. For
example, there are two aircrafts at DEF at the recovery end time in the recovery problem example 1. In
the solution, it also requires 2 aircraft at DEF at the recovery end time in the solution if terminal airport
balance is satisfied.
However, this constraint is a soft requirement. If there is the terminal airport balance is violated, a cost
penalty will be incurred.
Business Name Document
5
Table of ContentsProblem Definition
Confidential and Proprietary Sabre Airline Solutions
Time match
1. Each aircraft has a start available time and end available time in this problem. The start time of the
first task that is assigned to this aircraft must be later than or equal to the aircraft input start time.
Similarly, the end time of the last task must be earlier than or equal to the aircraft input end time. As
shown in the previous example, the start available time of aircraft Tail 1 is 7:00 AM which is earlier
than the departure time of flight 5183.
2. A fixed 30 minutes idle time(also known as turn time) is required for an aircraft between any two
consecutive flight tasks. This turn time is used for preparing the aircraft including deboarding, food
replenishment, cleaning and so on before the aircraft is ready for the next flight.
3. The time duration for a flight or a maintenance must be the same as it is in the input data.
Airport closures
If there is any airport closure in the input, it must be satisfied as described in Section 2.2.
2.5
Objective (solution quality)
The objective of this problem is to minimize the total weighted cost. The total weighted cost can be
calculated by the number of cancelled flights, the number of terminal airport balance violated, the number
of terminal aircraft positioning violated, the total flight delay time and the number of flight swaps
multiplied by the weights, repectively.
The terminal aircraft positioning for an aircraft requires that the aircraft should be at the same airport as
its end available airport in the solution. If the terminal aircraft positioning is violated, there will be a slight
cost.
The list of weights is a set of input parameters. An example of this list is given in the table below.
Weight
2.6
# of
cancelled
maintenance
# of
cancelled
flights
# of terminal
airport balance
violated
# of terminal
aircraft positioning
violated
Total flight
delay time (in
minute)
# of
flight
swaps
1000
800
500
10
1
10
Winning criteria
A set of internal scenarios is used to evaluate the submitted algorithms. The criteria for winning this
competition is listed as below.
Successful runs on all testing scenarios
The submitted algorithm/executable must be able to solve all internal scenarios with a limited run time.
The longest run time per scenario is 30 minutes. The solution that is generated by this algorithm may not
be optimal, but must be feasible.
Business Name Document
6
Table of ContentsProblem Definition
Confidential and Proprietary Sabre Airline Solutions
Overall solution quality
The algorithm that obtains the best solutions (based on Section 2.5) in the most number of scenarios wins
this completion.
Business Name Document
7
Table of ContentsProblem Definition
Confidential and Proprietary Sabre Airline Solutions
3
3
Input Data
The input data that consists of four .xml files, Aircraft.xml, Schedule.xml, AirportClosure.xml and
Parameters.xml are described in detail in this chapter.
3.1
Aircraft.xml
In aircraft.xml, a list of aircraft that are available to use are given. For example, there are two aircraft in
the list. It is noted that all time information in the input/output is using Unix time format, which we have
already discussed in Section 1.2. It’s a type of integer with the unit of seconds in time. For example here,
1335490000 is equivalent to 27 April 2012 01:26.
<aircraft>
<tailNumber>Tail1</tailNumber>
<startAvailableTime>1335490000</ startAvailableTime >
< endAvailableTime >1336590000</ endAvailableTime >
<startAvailableAirport>ABC</ startAvailableAirport >
<endAvailableAirport>DEF</ endAvailableAirport >
</aircraft>
<aircraft>
<tailNumber>Tail2</tailNumber>
< startAvailableTime >1335490000</ startAvailableTime >
<endAvailableTime>1336590000</ endAvailableTime >
< startAvailableAirport >DEF</ startAvailableAirport >
< endAvailableAirport >ABC</ endAvailableAirport >
</aircraft>
A detailed description of each field can be found in Section 1.2, as well.
3.2
Schedule.xml
This file lists all the original planned flight and all planned and unplanned maintenances that need to be
rescheduled because of the disruptions.
<flight>
<id>2440263</id>
<departureTime>1335491700</departureTime>
<arrivalTime>1335526200</arrivalTime>
<departureAirport>ABC</departureAirport>
Business Name Document
8
Table of ContentsInput Data
Confidential and Proprietary Sabre Airline Solutions
<arrivalAirport>DEF</arrivalAirport>
<tailNumber>Tail1<tailNumber>
</flight>
<flight>
<id>2440264</id>
<departureTime>1335491700</departureTime>
<arrivalTime>1335526200</arrivalTime>
<departureAirport>ABC</departureAirport>
<arrivalAirport>DEF</arrivalAirport>
<tailNumber>Tail1<tailNumber>
</flight>
<Maintenance>
<id>2440265</id>
<startTime>1335491700</startTime>
<endTime>1335526200</endTime>
<airport>DEF</airport>
<tailNumber>Tail2<tailNumber>
</Maintenance>
<Maintenance>
<id>2440266</id>
<startTime>1335491700</startTime>
<endTime>1335526200</endTime>
<airport>ABC</airport>
<tailNumber>Tail3<tailNumber>
</Maintenance>
The tail number for the flight indicates the original aircraft that this flight is assigned to. It can be changed
if anthother aircraft is assigned to operate this flight. However, the tail number for the maintenance is not
the case. It is always fixed.
3.3
AirportClosure.xml
In this file, the airport closure events are listed in detail. For example, a particular airport closure will
specify that both departure and arrival are not allowed at a specific airport and during a specific time.
<Airport>
<code>ABC</code>
Business Name Document
9
Table of ContentsInput Data
Confidential and Proprietary Sabre Airline Solutions
<startTime>1335491700</startTime>
<endTime>1335526200</endTime>
</Airport>
<Airport>
<code>DEF</code>
<startTime>1335491700</startTime>
<endTime>1335526200</endTime>
</Airport>
3.4
Parameters.xml
The parameters listed in this file is used in the problem definition. The details are given as follows,
<turnTime>1800</turnTime>
<maxDelayTime>10800</maxDelayTime>
<weightCancelMaintenance>1000</weightCancelMaintenance>
<weightCancelFlight>800</weightCancelFlight>
<weightViolateBalance>500</ weightViolateBalance>
<weightFlightDelay>1</weightFlightDelay>
<weightFlightSwap>10</weightFlightSwap>
<maxRunTime>3600</maxRunTime>
Business Name Document
10
Table of ContentsInput Data
Confidential and Proprietary Sabre Airline Solutions
4
4
Output Data
The algorithm should write its solution to a .xml file. The name of this output file is Output.xml. The
output file should be generated to the same directory where all input files locate by default. The directory
can be configurable as mentioned in Chapter 5.
4.1
Output format
Output.xml consists of all rescheduled fights and maintenances listed in the input files. The format of the
output is similar to the input Schedule.xml file except that it has an extra field, “status” to specify whether
the corresponding task is “Assigned” or “Cancelled”.
<flight>
<id>2440263</id>
<departureTime>1335491700</departureTime>
<arrivalTime>1335526200</arrivalTime>
<departureAirport>ABC</departureAirport>
<arrivalAirport>DEF</arrivalAirport>
<tailNumber>Tail1<tailNumber>
<status>Assigned</status>
</flight>
<flight>
<id>2440264</id>
<departureTime>1335491700</departureTime>
<arrivalTime>1335526200</arrivalTime>
<departureAirport>ABC</departureAirport>
<arrivalAirport>DEF</arrivalAirport>
<tailNumber>Tail1<tailNumber>
<status>Cancelled</status>
</flight>
<Maintenance>
<id>2440265</id>
<startTime>1335491700</startTime>
<endTime>1335526200</endTime>
<airport>GHI</airport>
<tailNumber>Tail2<tailNumber>
Business Name Document
11
Table of ContentsOutput Data
Confidential and Proprietary Sabre Airline Solutions
<status>Assigned</status>
</Maintenance>
<Maintenance>
<id>2440266</id>
<startTime>1335491700</startTime>
<endTime>1335526200</endTime>
<airport>ABC</airport>
<tailNumber>Tail1<tailNumber>
<status>Cancelled</status>
</Maintenance>
It is noted that all tasks which are listed in the Schedule.xml file must be presented in the output file.
Business Name Document
12
Table of ContentsOutput Data
Confidential and Proprietary Sabre Airline Solutions
5
5
Deliverable
At the end of the competition, all the teams should submit an executable file that can be run on a
Windows platform through a command line, together with its source code. The prizes of winning this
competition are given based on the performance of the executable files.
5.1
Executable
The executable file must be able to run on a 64-bit Windows 7 platform as a command line. It can read all
the specified input files at a given directory, and output the solution in a .xml file that has the exact same
name as the given directory.
For example, assuming that the all input files are located in a folder, “C:\input\testCase1\,” the executable
file name is “runSolver.exe,” and the output directory is “C:\output\”. The command line to run the
executable file should be:
.\runSolver.exe C:\input\testCase1 C:\output\
5.2
Source code
The source code is only used to ensure that the competitor owns the intellectual property of the submitted
executable file. The organizer will validate all wining teams’ executables with the corresponding source
codes. Sabre will not use or distribute the source code without the consent of its author.
Business Name Document
13
Table of ContentsDeliverable
Confidential and Proprietary Sabre Airline Solutions
6
6
References and Useful Links
6.1
References
Some related references are listed below,
Jon D. Petersen, Gustaf Sölveling, John-Paul Clarke, Ellis L. Johnson, and Sergey Shebalov
(2012). An Optimization Approach to Airline Integrated Recovery. Transportation Science, 46(4),
482-500
Rosenberger, J. M., Johnson, E. L., & Nemhauser, G. L.. (2003). Rerouting Aircraft for Airline
Recovery. Transportation Science, 37(4), 408–421.
Ahmad I. Z. Jarrah, Gang Yu, Nirup Krishnamurthy, and Ananda Rakshit (1993). A Decision
Support Framework for Airline Flight Cancellations and Delays. Transportation Science, 27(3),
266-280.
6.2
Useful links
There are some recommended free tools to develop the algorithm,
IBM ILOG CPLEX
https://www.ibm.com/developerworks/community/blogs/jfp/entry/cplex_studio_in_ibm_academi
c_initiative?lang=en
COIN-OR CLP
http://www.coin-or.org/projects/Clp.xml
COIN-OR CBC
http://www.coin-or.org/projects/Cbc.xml
Microsoft Visual Studio Express
https://www.visualstudio.com/en-us/products/visual-studio-express-vs.aspx
Business Name Document
14
Table of ContentsReferences and Useful Links
Confidential and Proprietary Sabre Airline Solutions