Optimizing Fleet Composition and Frequency Assignment for Brazilian Regional Airlines

Optimizing Fleet Composition and Frequency Assignment for Brazilian Regional Airlines

A Mixed Integer Linear Programming (MILP) model in Python and Gurobi was developed to optimize fleet composition and flight scheduling in a Brazilian regional airline network. The model maximized profit by balancing ticket revenue and operating costs while enforcing aircraft flow, range, and seat capacity constraints. Sensitivity analysis tested the trade-offs between fleet simplicity and flexibility.

This project focused on optimizing fleet composition and frequency assignment for a regional airline in Brazil. A hub-and-spoke network with multiple airports and demand flows was modeled, and a MILP formulation was implemented in Python with Gurobi. The model balanced ticket revenues against operating costs, subject to aircraft flow conservation, seat capacity, and maximum range limits .

Main insights from the study:

  • Allowing two aircraft types instead of one increased profit by about 3%, with ATR72 turboprops and Embraer E190 regional jets consistently chosen as the most cost-effective fleet mix.
  • Adding more than three aircraft types provided no further benefit, showing diminishing returns from fleet diversity.
  • The optimized solution satisfied over 99% of demand, transporting about 88,000 passengers per week, while achieving weekly profits of ~US$ 8.2 million.
  • Assigning multiple aircraft types to the same route added little benefit, confirming that fleet-route specialization is more efficient.
  • Profitability scaled almost linearly with demand growth, underlining the robustness of the model to future traffic increases.

Overall, the project demonstrated how optimization models can guide fleet planning and scheduling decisions by quantifying the trade-off between fleet simplicity and operational flexibility.

Note: Due to university policies, I cannot share the full report, code, or detailed data. If you are interested in discussing the methodology or results further, please get in touch :)