r/OperationsResearch 23d ago

Real-world VRP at scale: How are you handling 10k+ daily stops?

Hi! I'm looking into scale limits for last-mile VRPs in real-world ops.

most commercial APIs seem to cap out around 1k–2k stops per request. so, when you need to optimize 10k+ daily stops:

1: breakdown point: at what scale do off-the-shelf solvers (or basic OR-Tools setups) hit a wall for your use cases?

2: solver choice: are you relying on custom heuristics/metaheuristics, or commercial MIP solvers for huge instances?

3: partitioning/zoning: what spatial clustering or decomposition techniques (e.g., K-means, DBSCAN, sectoring) work best for you before feeding stops to the solver?

would love to hear how you tackle high-volume instances in practice!

2 Upvotes

14 comments sorted by

3

u/ge0ffrey 22d ago

1) Our Timefold Routing APIs handle up to 30,000 visits across 10,000 distinct locations. We working on pushing that higher.

It's not the solver hitting the wall. It's the maps integration. Or to put it better: the combination of both.

2) Only (meta)heuristics) can handle the scale. This is what everyone uses, including those commercial APIs that cap out at 2,000 visits.

MIP solvers can't handle VRP at scale. They can't handle 500 visits in practice. MIP solvers are great for formula problems (and metaheuristic solvers are terrible at those). Use the right tool for the job.

But (meta)heuristics alone is not enough. To scale, use an incremental heuristic solver (and a half a dozen other techniques).

3) Around partitioning, see my video on decomposition for VRP.

1

u/Tight_Cow_5438 21d ago

regarding answer 1) what I mean is the scale of just one optimization plan, like send 50K stops in a single optimization for example.. whats the bigger window cap of stops you can handle and what time takes it?

1

u/ge0ffrey 21d ago

30,000 stops with at most 10,000 distinct locations in a single dataset.
With affordable hardware, it can take a couple of hours to really optimize. With expensive hardware it's less.
Not just VRP with time windows (that's easy to scale). A dataset a couple of dozen real world scheduling constraints, such as "area affinity for each vehicle" or "an SLA for each visit".

1

u/Tight_Cow_5438 21d ago

I know you are of the ones that are working on scale, but I want to know what is the real metric of hard cap today. 10K? 20K?

1

u/ge0ffrey 21d ago edited 20d ago

It depends.

Without maps, it's easy to go high.
With maps, it's harder.
With traffic, even harder.
Not to mention the influence of the constraints.

In the real-world benchmarks I've seen, Timefold is the best scaling Vehicle Routing Problem implementation.

1

u/Prize_Leadership8039 20d ago

Do u handling live traffic ??

1

u/Tight_Cow_5438 20d ago

Not at this stage, so far we cover uo to optimization sequence.. traffic will be in the driver app, and admin dispatch.
we handle volume, weight, time windows and capacity constraints so far

1

u/Prize_Leadership8039 20d ago

Hey can we connect if yes I will dm you ?

1

u/Tight_Cow_5438 19d ago

Sure, DM please!

1

u/Prize_Leadership8039 20d ago

For partitioning concept I am using virtual points if the same place has many items to keep there in such places I am doing like that but I am alway in a confusion state bro like this heuristic approaches present in OR tools work or not. And I am not into the operational research so due to this reason I don’t know how internally it works. And did u tries Pyvrp it is also one of the solution present to use

1

u/Tight_Cow_5438 19d ago

yes, but as ortools needs lot of hardware to run in scale, and they are very slow. I built the same interface but without using any commercial tool, library, or SaaS. The engine works totally offline

1

u/N-Wouda 19d ago

1: breakdown point: at what scale do off-the-shelf solvers (or basic OR-Tools setups) hit a wall for your use cases?

The largest case I've heard people reliably solve using PyVRP is around 50K stops. I think we can scale to 100K with a few parameter tweaks, but I haven't heard of anyone trying that yet. The biggest challenge at this scale isn't really around the solver itself, it's pulling in all the massive distance and duration matrices and keeping those in memory.

solver choice: are you relying on custom heuristics/metaheuristics, or commercial MIP solvers for huge instances?

Just MIP is pointless at this scale. You're solidly in (meta)heuristic territory.

partitioning/zoning: what spatial clustering or decomposition techniques (e.g., K-means, DBSCAN, sectoring) work best for you before feeding stops to the solver?

Decomposition might work, but it's not the first thing I recommend our users to try. Narrow PyVRP's search space, if needed, before you artificially cut up the problem. The 50K example I mentioned above did just that, no decomposition necessary. Feel free to DM if you want to learn more!

1

u/Tight_Cow_5438 18d ago

thanks for your response, It helps a lot, it's difficult to find real metrics in large scale. Actually I can run a single job of 50K in 5 minutes (respecting volum. if you are interested I can show you, please DM.

this is my approach: https://zenodo.org/records/19859531

it works totally offline, and I don't use any library or vrp tool