59 ms·
ITA's strength isn't data, it's algorithms. Finding the best flight is not just NP-complete, it's uncomputable. In practice, even a lot of sub problems are NP
by martincmartin 16y ago
ITA's strength isn't data, it's algorithms. Finding the best flight is not just NP-complete, it's uncomputable. In practice, even a lot of sub problems are NP-complete.
http://www.demarcken.org/carl/papers/ITA-software-travel-complexity/ITA-software-travel-complexity.html http://www.demarcken.org/carl/papers/ITA-software-travel-com...
People think the problem is a graph search problem of finding the shortest path. But that's actually the easiest part of the problem. It turns out that prices aren't attached to individual flights, but rather are rules of the form "If the passenger goes from A to B on a Tuesday, the price is X, and it doesn't really matter what flights they take, as long as the total distance is less than 3 times the line of sight distance."
Then there are all sorts of rules about what fares can be combined with other fares, under which conditions, ...
I worked at ITA software on QPX, and their code is by far the most algorithmically complex code I've ever seen. As I mentioned, there are many, many sub problems, and each one is a tricky algorithm design problem.