Skip to content

An Integer Linear Programming model for the Airline Scheduling Problem. It maximizes aircraft utilization while handling turnaround times, slot and overlap limitations with retiming, and crew constraints. Implemented in Python with open-source solvers, producing optimal flight schedules.

Notifications You must be signed in to change notification settings

elbanche/airline-scheduling-solver

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Airline Scheduling Optimizer

Problem Description

This project addresses a multi-stage Airline Scheduling Problem. The objective is to maximize aircraft utilization while ensuring that both operational and commercial constraints are respected. The problem is divided into three main parts:

Problem 1 – Aircraft Utilization

The first step focuses on maximizing total aircraft utilization. Given a set of flights and a limited fleet distributed across base airports, the model selects an optimal subset of flights subject to:

  • Respecting minimum turnaround times (TAT) at each airport.
  • Ensuring the number of aircraft at each base at the end of the day equals the initial number.

Problem 2 – Scheduling with Slot and Overlap Limitations (with Retiming)

The second step extends the model with slot and overlap constraints. Specifically:

  • Exactly three departures must occur from BCN between 06:00 and 06:10 UTC.
  • Any pair of flights operating the same route must be separated by at least 120 minutes.

To handle these constraints, retiming is introduced, allowing flight departures to shift by ±30 minutes in 5-minute increments.

Problem 3 – Crew Scheduling Extension

Finally, the model incorporates crew scheduling constraints, making the problem more realistic and challenging. The conditions are:

  • The number of crews at each base must be the same at the start and end of the day.
  • Each crew can operate either 1 round trip (RT) or 2 RTs.
  • Maximum duty time per crew is 10 hours and 30 minutes.

Solution Approach

The problem is formulated as an Integer Linear Programming (ILP) model using Python. Constraints are expressed as linear equations, and open-source solvers such as CBC, SCIP, or GLPK are used to compute optimal solutions.

Output

The output consists of a CSV file with the optimal set of selected flights, including:

  • Flight number
  • Departure and arrival airports
  • Scheduled times (with retiming if applied)
  • Assigned resources (aircraft and crew)

About

An Integer Linear Programming model for the Airline Scheduling Problem. It maximizes aircraft utilization while handling turnaround times, slot and overlap limitations with retiming, and crew constraints. Implemented in Python with open-source solvers, producing optimal flight schedules.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages