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:
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.
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.
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.
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.
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)