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
© Copyright 2026 Paperzz