Computational Complexity of Air Travel Planning (2003) [pdf]
I'm working on a similar project (kind of "Uber for air travel via private chartering") with a few different variables but still huge dimensionality for a set of aircraft and pilots, among them relations between airport (AP), pilot (P), aircraft (AC)
- AC can take off/land on AP (runway is long enough, runway material is compatible, flight rules are ok)
- P is close enough (by car) to AP
- P is allowed to fly to AC
- P is available during out/inbound flight
- AP opening hours are respected
- AP fees (depending on AC and passengers) are respected
- AC is available during out/inbound flight
- travel time affects many of the above criteria, e.g., faster machines might fly to different airports (more because they're still open, less because they require longer/better runways)
- when changing countries you need to go through an airport with customs
- when travelling long ranges, you need to refuel
- weights of passenger + luggage + fuel don't exceed predefined aircraft weight constraints
- You may need to fly your AC to AP1 to pick up the passengers, then refuel at AP2 and declare your goods there and deliver all at AP3 and then go back efficiently (possible skipping AP1 and/or AP2) or stay there and wait for the passengers to go back using a different AP when declaring your goods upon reentry into your original country.
I'm doing this mostly using application logic (travel planning) and postgres queries (finding travel legs) and it works well for 1k airports and 300 machines but if anyone has suggestions or questions, I'll be happy to share details.
In the excellent book Dream Machine: J.C.R. Licklider and the Revolution That Made Computing Personal, about the life of J.C.R. Licklider, there is the story of how SAGE, the system used for command-and-control strategic planning, was modified to become SABRE, the first airline reservation system. This has been a computational problem for a long time.
Possibly relevant: https://systemswe.love/videos/life-of-an-airline-flight
One neat thing is that their fallback mechanism is to have a human being sort out the mess. There are offices full of people whose job it is to find a workaround or at least smooth ruffled feathers. Sometimes it doesn't work out.
i'm on a conference call right now about this very subject. No one understands how complex scheduling systems are or can become. It's easy to think about but difficult to automate.
I'd assume it has the same complexity that all scheduling problem have ( like the canonical college classes scheduling that most of us learn about ).