Finding the best route is NP-complete. Finding a route is trivial. Finding a pretty good route is good enough for their purposes.
Also keep in mind they’re not to much trying up find the best route between static stops as trying to minimize time between pickup and dropoff for a list of (origin, destination) pairs, constrained by staggered start times for the pickup origins. It’s fundamentally a different problem.
Finding the best route is NP-complete. Finding a route is trivial. Finding a pretty good route is good enough for their purposes.
Also keep in mind they’re not to much trying up find the best route between static stops as trying to minimize time between pickup and dropoff for a list of (origin, destination) pairs, constrained by staggered start times for the pickup origins. It’s fundamentally a different problem.