GraphHopper Route Optimization · 2015-11-27 · Route Optimization API 1. Geocode 2. Snap Geocodes...
Transcript of GraphHopper Route Optimization · 2015-11-27 · Route Optimization API 1. Geocode 2. Snap Geocodes...
![Page 1: GraphHopper Route Optimization · 2015-11-27 · Route Optimization API 1. Geocode 2. Snap Geocodes to networks 3. Calculate n x n travel times/distances 4. Optimize Friedrichstraße](https://reader034.fdocuments.us/reader034/viewer/2022042116/5e93fc16779e0e4b49573c42/html5/thumbnails/1.jpg)
GraphHopper Route Optimization
Stefan Schröder
![Page 2: GraphHopper Route Optimization · 2015-11-27 · Route Optimization API 1. Geocode 2. Snap Geocodes to networks 3. Calculate n x n travel times/distances 4. Optimize Friedrichstraße](https://reader034.fdocuments.us/reader034/viewer/2022042116/5e93fc16779e0e4b49573c42/html5/thumbnails/2.jpg)
● Fast and Flexible Directions API
● Lightweight API to solve heavy routing problems
What is GraphHopper?
![Page 3: GraphHopper Route Optimization · 2015-11-27 · Route Optimization API 1. Geocode 2. Snap Geocodes to networks 3. Calculate n x n travel times/distances 4. Optimize Friedrichstraße](https://reader034.fdocuments.us/reader034/viewer/2022042116/5e93fc16779e0e4b49573c42/html5/thumbnails/3.jpg)
● 04/2012 – Peter Karich published OS GraphHopper routingbased on OSM
● 06/2013 – Stefan Schröder published jsprit, a toolkit to solvevehicle routing problems
● 04/2015 – we joined forces to develop the GraphHopperDirections API
Brief history
![Page 4: GraphHopper Route Optimization · 2015-11-27 · Route Optimization API 1. Geocode 2. Snap Geocodes to networks 3. Calculate n x n travel times/distances 4. Optimize Friedrichstraße](https://reader034.fdocuments.us/reader034/viewer/2022042116/5e93fc16779e0e4b49573c42/html5/thumbnails/4.jpg)
Directions API
![Page 5: GraphHopper Route Optimization · 2015-11-27 · Route Optimization API 1. Geocode 2. Snap Geocodes to networks 3. Calculate n x n travel times/distances 4. Optimize Friedrichstraße](https://reader034.fdocuments.us/reader034/viewer/2022042116/5e93fc16779e0e4b49573c42/html5/thumbnails/5.jpg)
Route Optimization API
● Difference between Routing and RouteOptimization API
Least cost path from A to B
Least cost paths withvia points
A
B
A
B
C
D
E
A
B
C
D
E
Least cost route byordering of via points
![Page 6: GraphHopper Route Optimization · 2015-11-27 · Route Optimization API 1. Geocode 2. Snap Geocodes to networks 3. Calculate n x n travel times/distances 4. Optimize Friedrichstraße](https://reader034.fdocuments.us/reader034/viewer/2022042116/5e93fc16779e0e4b49573c42/html5/thumbnails/6.jpg)
Route Optimization API
1. Geocode
2. Snap Geocodes tonetworks
3. Calculate n x n traveltimes/distances
4. Optimize
Friedrichstraße 52lon,lat
1
n
1 n
![Page 7: GraphHopper Route Optimization · 2015-11-27 · Route Optimization API 1. Geocode 2. Snap Geocodes to networks 3. Calculate n x n travel times/distances 4. Optimize Friedrichstraße](https://reader034.fdocuments.us/reader034/viewer/2022042116/5e93fc16779e0e4b49573c42/html5/thumbnails/7.jpg)
Vehicle Routing Problem
● VRP: Given m vehicles with capacity restrictions and ncustomers, find vehicle routes that minimizetransportation costs.
● TSP: Round trip visiting every location once
● Last mile deliveries, health care, garbage collection,technicians, ...
● Challenges: Search space, Example 50 L-TSP
![Page 8: GraphHopper Route Optimization · 2015-11-27 · Route Optimization API 1. Geocode 2. Snap Geocodes to networks 3. Calculate n x n travel times/distances 4. Optimize Friedrichstraße](https://reader034.fdocuments.us/reader034/viewer/2022042116/5e93fc16779e0e4b49573c42/html5/thumbnails/8.jpg)
Search algorithms
● Exact methods – Branch & Bound
● Meta-Heuristics – Tabu Search, SimulatedAnnealing, etc.
● Ruin and Recreate – Large NeighborhoodSearch Threshold Acceptance and SimulatedAnnealing
![Page 9: GraphHopper Route Optimization · 2015-11-27 · Route Optimization API 1. Geocode 2. Snap Geocodes to networks 3. Calculate n x n travel times/distances 4. Optimize Friedrichstraße](https://reader034.fdocuments.us/reader034/viewer/2022042116/5e93fc16779e0e4b49573c42/html5/thumbnails/9.jpg)
Route Optimization Editor
● Switch to Route Editor and solve problems live
● TSP● TSP-Relation● VRP● VRP-Relation● VRP-Bike● VRP-Min-Max
![Page 10: GraphHopper Route Optimization · 2015-11-27 · Route Optimization API 1. Geocode 2. Snap Geocodes to networks 3. Calculate n x n travel times/distances 4. Optimize Friedrichstraße](https://reader034.fdocuments.us/reader034/viewer/2022042116/5e93fc16779e0e4b49573c42/html5/thumbnails/10.jpg)
Problem Berlin
![Page 11: GraphHopper Route Optimization · 2015-11-27 · Route Optimization API 1. Geocode 2. Snap Geocodes to networks 3. Calculate n x n travel times/distances 4. Optimize Friedrichstraße](https://reader034.fdocuments.us/reader034/viewer/2022042116/5e93fc16779e0e4b49573c42/html5/thumbnails/11.jpg)
Sufficient capacity - TSP
![Page 12: GraphHopper Route Optimization · 2015-11-27 · Route Optimization API 1. Geocode 2. Snap Geocodes to networks 3. Calculate n x n travel times/distances 4. Optimize Friedrichstraße](https://reader034.fdocuments.us/reader034/viewer/2022042116/5e93fc16779e0e4b49573c42/html5/thumbnails/12.jpg)
Direct sequence of 37 & 38
![Page 13: GraphHopper Route Optimization · 2015-11-27 · Route Optimization API 1. Geocode 2. Snap Geocodes to networks 3. Calculate n x n travel times/distances 4. Optimize Friedrichstraße](https://reader034.fdocuments.us/reader034/viewer/2022042116/5e93fc16779e0e4b49573c42/html5/thumbnails/13.jpg)
VRP
![Page 14: GraphHopper Route Optimization · 2015-11-27 · Route Optimization API 1. Geocode 2. Snap Geocodes to networks 3. Calculate n x n travel times/distances 4. Optimize Friedrichstraße](https://reader034.fdocuments.us/reader034/viewer/2022042116/5e93fc16779e0e4b49573c42/html5/thumbnails/14.jpg)
VRP with relation
![Page 15: GraphHopper Route Optimization · 2015-11-27 · Route Optimization API 1. Geocode 2. Snap Geocodes to networks 3. Calculate n x n travel times/distances 4. Optimize Friedrichstraße](https://reader034.fdocuments.us/reader034/viewer/2022042116/5e93fc16779e0e4b49573c42/html5/thumbnails/15.jpg)
VRP – min-max compl. time
![Page 16: GraphHopper Route Optimization · 2015-11-27 · Route Optimization API 1. Geocode 2. Snap Geocodes to networks 3. Calculate n x n travel times/distances 4. Optimize Friedrichstraße](https://reader034.fdocuments.us/reader034/viewer/2022042116/5e93fc16779e0e4b49573c42/html5/thumbnails/16.jpg)
VRP – min-max by foot
![Page 17: GraphHopper Route Optimization · 2015-11-27 · Route Optimization API 1. Geocode 2. Snap Geocodes to networks 3. Calculate n x n travel times/distances 4. Optimize Friedrichstraße](https://reader034.fdocuments.us/reader034/viewer/2022042116/5e93fc16779e0e4b49573c42/html5/thumbnails/17.jpg)
Shortest route throughDublin avoiding pubs?
![Page 18: GraphHopper Route Optimization · 2015-11-27 · Route Optimization API 1. Geocode 2. Snap Geocodes to networks 3. Calculate n x n travel times/distances 4. Optimize Friedrichstraße](https://reader034.fdocuments.us/reader034/viewer/2022042116/5e93fc16779e0e4b49573c42/html5/thumbnails/18.jpg)
Dublin – “avoid pubs”
![Page 19: GraphHopper Route Optimization · 2015-11-27 · Route Optimization API 1. Geocode 2. Snap Geocodes to networks 3. Calculate n x n travel times/distances 4. Optimize Friedrichstraße](https://reader034.fdocuments.us/reader034/viewer/2022042116/5e93fc16779e0e4b49573c42/html5/thumbnails/19.jpg)
Dublin – “avoid pubs”
![Page 20: GraphHopper Route Optimization · 2015-11-27 · Route Optimization API 1. Geocode 2. Snap Geocodes to networks 3. Calculate n x n travel times/distances 4. Optimize Friedrichstraße](https://reader034.fdocuments.us/reader034/viewer/2022042116/5e93fc16779e0e4b49573c42/html5/thumbnails/20.jpg)
Publicity?
● handful retweets
● <100 blog readers
● pointer to this: “there's someone trying to drink inevery pub in Dublin, might be another interestingdemo for you.”
![Page 21: GraphHopper Route Optimization · 2015-11-27 · Route Optimization API 1. Geocode 2. Snap Geocodes to networks 3. Calculate n x n travel times/distances 4. Optimize Friedrichstraße](https://reader034.fdocuments.us/reader034/viewer/2022042116/5e93fc16779e0e4b49573c42/html5/thumbnails/21.jpg)
Shortest route throughDublin visiting all pups?
![Page 22: GraphHopper Route Optimization · 2015-11-27 · Route Optimization API 1. Geocode 2. Snap Geocodes to networks 3. Calculate n x n travel times/distances 4. Optimize Friedrichstraße](https://reader034.fdocuments.us/reader034/viewer/2022042116/5e93fc16779e0e4b49573c42/html5/thumbnails/22.jpg)
Dublin – “visit all pubs”
![Page 23: GraphHopper Route Optimization · 2015-11-27 · Route Optimization API 1. Geocode 2. Snap Geocodes to networks 3. Calculate n x n travel times/distances 4. Optimize Friedrichstraße](https://reader034.fdocuments.us/reader034/viewer/2022042116/5e93fc16779e0e4b49573c42/html5/thumbnails/23.jpg)
Publicity?● many retweets from all over the world
● >3000 readers
● on reddit
● a day on the front page of hacker news with 84points
![Page 24: GraphHopper Route Optimization · 2015-11-27 · Route Optimization API 1. Geocode 2. Snap Geocodes to networks 3. Calculate n x n travel times/distances 4. Optimize Friedrichstraße](https://reader034.fdocuments.us/reader034/viewer/2022042116/5e93fc16779e0e4b49573c42/html5/thumbnails/24.jpg)
Dublin – “visit all pubs”
![Page 26: GraphHopper Route Optimization · 2015-11-27 · Route Optimization API 1. Geocode 2. Snap Geocodes to networks 3. Calculate n x n travel times/distances 4. Optimize Friedrichstraße](https://reader034.fdocuments.us/reader034/viewer/2022042116/5e93fc16779e0e4b49573c42/html5/thumbnails/26.jpg)