Vehicle Routing Problem (VRP) solver with Large Neighborhood Search (LNS)
A number of total cases is (s + v - 1)! / (v - 1)!
where s
is a number of stops and v
is a number of vehicles.
Note that those are currently equivalent to a brute force one unless you provide a cost calculator that may return infinity or computes proper lower bounds.
- Dynamic programming
- Branch and bound
- Nearest neighbor
- Ruin and recreate
- Ruined regions are the top-k closest stops and their surrounding stops in routes in an existing solution.
- Sub-problems are solved by brute force and the 2-opt heuristics.
cargo run --release --features trace --bin ruin_and_recreate