Mixed-integer linear programming model to schedule flights and distribute aircraft to minimize cost.
Run instance_gen.py to generate an instance.
You can edit the specific values to your liking in the CSV files under src/instance.
Run lp.py to find a solution.
You can alternatively call the lp.solve_instance function directly by passing in your instance data (aircraft, airports, and routes).
Decision variables are
Let
I approximate the variable cost,
The objective function is
The model considers the following constraints:
- each route must be covered exactly once
- the solution cannot use more aircraft than described in the fleet
- aircraft can carry strictly less than their maximum payload (cargo + passenger)
- aircraft cannot service a route who's distance is larger than the aircraft's range
All airports and aircraft in the model are real-to-life.
Distances are calculated and cached at runtime based on airport locations using the haversine formula.
Routes are strictly unique and route A → B
- "Our Airports" Open Dataset
- Various manufacturer resources for aircraft specs
- route visualizer
- move to pax fuel efficiency
- nonlinear fuel function
- rotation problem
- aircraft maintenance
Aly Ashour