We (me and a friend) did something similar for multi city round trips within Europe (<a href="https://tripchemy.com" rel="nofollow">https://tripchemy.com</a>).<p>We created some data structures that allow almost instant searching of such routes and we have scrapers running regularly on Ryanair, easyJet, wizzair, and Transavia. You can query the algorithm here: <a href="https://algo.tripchemy.com/routes/TSF?year=2020&month=02&day=5&length=7" rel="nofollow">https://algo.tripchemy.com/routes/TSF?year=2020&month=02&day...</a><p>It's based on the following Open source project which my friend made back in the day <a href="https://github.com/Whazor/Roundtrip" rel="nofollow">https://github.com/Whazor/Roundtrip</a>
> Ryanair is a wonderful example of two extremes - it’s one of the worst possible airlines that nickel and dimes you for everything, it’s not a great employer, and it is rated the worst European airline; however, it’s dirt cheap.<p>I fail to see how these are two different extremes. More like two sides of the same coin.
"I traversed down the state tree until I found the allAirportsList property, which contained all the airport keys and the locations to which they flew. I extracted this state (over 1MB of route information) and could now build a graph representation of airport connections."<p>In the 90's, I can remember a pocket-sized, printed guide by a company called OAG. I used to call it "the OAG Guide". I can remember getting a copy of this for free. It listed every schedule for every route for every airline. I can also remember getting similar pocket-sized guides from certain airlines listing all their routes and schedules for each route.<p>When the task of planning routes comes up, I sometimes think of those old printed guides and wonder if this could be cited as an example where certain information was actually more easily accessible <i>before</i> the www became popular than after.<p><a href="https://en.wikipedia.org/wiki/OAG_(company)" rel="nofollow">https://en.wikipedia.org/wiki/OAG_(company)</a>
One of the founders of ITA Software, which became Google's flight search, discussed some interesting issues in airline fare search [0]. I don't have enough of a CS background to fully understand all of this, but the message is pretty clear: it's complicated.<p>There was also an HN thread from 2012 discussing ITA's use of Lisp.[1]<p>[0] <a href="http://www.demarcken.org/carl/papers/ITA-software-travel-complexity/ITA-software-travel-complexity.pdf" rel="nofollow">http://www.demarcken.org/carl/papers/ITA-software-travel-com...</a><p>[1] <a href="https://news.ycombinator.com/item?id=4639490" rel="nofollow">https://news.ycombinator.com/item?id=4639490</a>
Nice work. To be truly usable though you need to ensure that the flight times match up. There's no point flying to an intermediary airfield to find that your connection flight left 30 minutes ago.
I'm fairly decent at finding flight deals for my side hustle site, I know where and when to look (for Australian flights especially). I have some automation scripts (using python/selenium). But this takes it to the next level! Bravo, bravo!
Like the idea !
Wouldn't using the data of something like <a href="https://www.skyscanner.net/" rel="nofollow">https://www.skyscanner.net/</a> give you better data, across multiple airline
Find route can probably be made way more efficient by using meet in the middle technique.<p>Instead of finding all 6 hops from start and checking if it's the end find 3 hops from start, 3 hops from end and just intersect two sets.
Take a look at <a href="https://amoffat.github.io/held-karp-gpu-demo/" rel="nofollow">https://amoffat.github.io/held-karp-gpu-demo/</a><p>It can easily solve 16 nodes in under 50ms by running in WebGL
Similarly, <a href="https://skiplagged.com" rel="nofollow">https://skiplagged.com</a> surfaces potentially cheaper multi-leg flights that have a layover in your destination city.<p>For example if you are wanting to travel from A->B, a flight that goes A->B->C may be cheaper than A->B if A->C is a competitive route.
I did something similar with that API a couple of years ago. My goal was to travel the most possible kilometers at minimal costs:<p><a href="https://github.com/landgenoot/airtrip-finder" rel="nofollow">https://github.com/landgenoot/airtrip-finder</a>
Not as cool, but <a href="https://www.eightydays.me/" rel="nofollow">https://www.eightydays.me/</a> is really convenient to book multi-city trips intra-europe.