Case Study: AirCrewRostering

Submitted: 20 Feb 2008

Operations Research Topics:

Application Areas:

Contents

Problem Description

THE AIR CREW ROSTERING PROBLEM

Adapted from a real-world problem

An airline is trying to roster captains for 6 flights. The flight schedules are:

flights.jpg

Only one captain is required for each sector, but a captain may be a passenger on a flight (this is called paxing). In addition to the six flights above the following flights are available for paxing and operate every 2 hours:

recurring_flights.jpg

The following rules for shifts must be observed:

  • Shifts start and finish at a captain’s home base;
  • The earliest start time is on Day 1 (0001 hours) and the latest finish time is on Day 6 (2359 hours);
  • Shifts are composed of blocks of work. Each block must be no more than 13 hours;
  • Captains must have at least 12 hours break between blocks. The exception is when a block consists only of paxing flights, then a 9 hour break is all that is needed;
  • There must be a 30 min break between sector changes.

There are 6 captains available for work, 2 based in Auckland (AKL), 1 based in Christchurch (CHCH) and 3 based in Singapore (SNG). Each captain is paid $1000 for each block of work (even if it is only a 45 min pax). Each captain’s contract guarantees he/she will be paid for 3 blocks of work even if they perform less.

The airline has started an AMPL model, but given up:

FLIGHT_SCHEDULE.MOD

model;

set TODS; # T(our) O(f) D(uty) set = pilot schedules
set FLYS {TODS} within FLIGHTS;

param Blocks {TODS} integer >= 1;
param Base {TODS} symbolic within BASES;

They have asked you to complete their model file and write a data file and script file to solve their rostering problem.

The airline is also curious if they can reduce the cost of their roster by using less pilots. As a second deliverable, they have asked you to investigate this option.

Return to top

Student Tasks

STUDENT TASKS

1. Add a ??? LINK ?? columnwise formulation for finding a pilot roster flight_schedule.mod.

What to hand in Your completed flight_schedule.mod file.

2. Design a system/process for generating all possible Tours of Duty (TODs). Generate the TODs to create flight_schedule.dat.

What to hand in A brief (less than 1 page) description of your system/process. Your flight_schedule.dat file.

3. Solve The Air Crew Rostering Problem. Be sure to investigate the possibility of less pilots.

What to hand in A management summary of your solution.

Extra for Experts' Tasks

1. The airline had hired another AMPL consultant to generate TODs automatically. She had almost finished before going on parental leave. She has left a multitude of files in a zip archive:

??? LINK ??? flights.zip

All the files are complete except flight_schedule.run (there is an incomplete version in the archive). Complete flight_schedule.run and run generating_flights.run to solve The Air Crew Rostering Problem.

What to hand in Your completed flight_schedule.run file. A comment on whether your solution from generating_flights.run agrees with your solution where you generated the TODs yourself.

Return to top

Topic attachments
I Attachment History Action Size Date Who Comment
JPEGjpg flights.jpg r1 manage 43.7 K 2008-02-20 - 10:00 LaurenJackson  
JPEGjpg recurring_flights.jpg r1 manage 23.8 K 2008-02-20 - 10:01 LaurenJackson  
Edit | Attach | Watch | Print version | History: r12 | r8 < r7 < r6 < r5 | Backlinks | Raw View | Raw edit | More topic actions...
Topic revision: r6 - 2008-03-01 - TWikiAdminUser
 
  • Edit
  • Attach
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2021 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback