Heuristic Algorithms for Bike Route Generation Aidan Pieper Matthew Anderson (Advisor) Computer Science Department, Union College March 3, 2018 1 / 22
Introduction ◮ Routing for recreational cyclists is different than traditional routing problems. ◮ Cyclists prefer longer more scenic routes, not the shortest one. ◮ Our focus is on circular routes. Figure 1: Circular bike route 2 / 22
Informal Problem Statement Given: ◮ A road network ◮ A starting location ◮ A distance budget Goal: Find the “best” bike route which starts and ends at the specified location and is no longer than the budget. 3 / 22
Related Work Previous literature models this problem as an instance of the Arc Orienteering Problem (AOP) . (10, 3) S (20, 1) (5, 5) (2, 1) (2, 2) D (15, 5) (3, 2) (5, 5) (8, 9) Figure 2: AOP Instance - Edge label: ( score , cost ) Budget: 10 4 / 22
Arc Orienteering Example (10, 3) S (20, 1) (5, 5) (2, 1) (2, 2) D (15, 5) (3, 2) (5, 5) (8, 9) Figure 3: Shortest Path: ( score = 15, cost = 8) Budget: 10 5 / 22
Arc Orienteering Example (10, 3) S (20, 1) (5, 5) (2, 1) (2, 2) D (2, 2) (3, 2) (5, 5) (8, 9) Figure 4: Optimal Path: ( score = 30, cost = 10) Budget: 10 6 / 22
Methods The AOP is NP-Hard: ◮ Our focus is on heuristic algorithms for the AOP. ◮ Iterated Local Search (ILS) is the algorithm of interest. Research Question: To what extent can ILS algorithms be improved to generate better bike routes? We implemented two ILS algorithms using: ◮ GraphHopper : An open source routing library. ◮ OpenStreetMaps : An open mapping dataset. 7 / 22
Methods: GraphHopper Routing Engine Figure 5: Shortest path Union → Saratoga Springs 8 / 22
DFS Algorithm [VVA14] ◮ Uses modified Depth First Search with max depth. ◮ Precomputes all-pairs shortest path for feasibility checking. ◮ Returns first path found fitting criteria. a S D v 1 v 2 ( S → v 1 ) . cost + a . cost + ShortestPath ( v 2 , D ) ≤ Budget Figure 6: Arc feasibility checking 9 / 22
DFS Algorithm [VVA14] Figure 7: DFS Algorithm Example Route 10 / 22
DFS Algorithm [VVA14] Limitations: ◮ Search space large in road dense areas. ◮ Requires pre-computed all-pairs shortest path. ◮ Does not penalize turns. Figure 8: Dangerous route turn 11 / 22
Geometric Algorithm [LS15] ◮ Generates paths by “gluing together” Attractive Arcs from a Candidate Arc Set . ◮ Uses spatial techniques to reduce search space. ◮ Uses online shortest path computations [GSSD08]. a v 1 v 2 Ellipse ( v 1 , v 2 , Budget ) Figure 9: Ellipse pruning technique 12 / 22
Geometric Algorithm [LS15] Figure 10: Perfectly circular route generated by Geometric Algorithm. 13 / 22
Geometric Algorithm [LS15] Figure 11: Route with backtracking generated by Geometric Algorithm. 14 / 22
Geometric Algorithm [LS15] Figure 12: Route with excess backtracking by Geometric Algorithm. 15 / 22
Geometric Algorithm [LS15] Limitations: ◮ Does not avoid backtracking. ◮ Tries to hit budget exactly. ◮ Shortest path not necessarily preferable. ◮ Does not penalize turns. We designed and implemented variants: ◮ Avoid backtracking when gluing together attractive arcs. ◮ Don’t use full budget when generating paths. ◮ Change which attractive arcs are considered. 16 / 22
Results: DFS [VVA14] 20 20 18 15 Average Score Time (s) 16 10 14 5 12 Score Time 0 10 0 20 40 60 80 100 Iteration Number Figure 13: Route generation with DFS Algorithm. 17 / 22
Results: Geometric [LS15] 1 . 2 100 Average Score 1 Time (s) 50 0 . 8 Score 0 Time 0 . 6 0 20 40 60 80 100 Iteration Number Figure 14: Route generation with Geometric Algorithm. 18 / 22
Results: Geometric + (Budget allowance) 25 200 20 Average Score 150 15 Time (s) 100 10 50 5 Score 0 Time 0 0 20 40 60 80 100 Iteration Number Figure 15: Geometric Algorithm with 50% budget allowance. 19 / 22
Conclusions ◮ Spatial techniques definitely speed up ILS. ◮ Modifying budget over time greatly increases average score at a hefty time penalty. ◮ Attractive arc definition and data set matter a lot in algorithm performance. Algorithm Score Time (s) DFS 20.57 20.37 Geometric 126.13 1.20 Geometric + (Budget allowance) 215.87 23.12 Geometric + (Incremental budget) 282.66 119.52 Geometric + (Arc restrictions) 49.85 0.09 Geometric + (No backtracking) 33.36 0.60 Figure 16: Algorithm performance of variants. 20 / 22
Acknowledgements & Comments Major kudos to David Frey for helping me set up computing resources to run my experiments! I glossed over a lot of technical details! Ask me about the following: ◮ Road scoring ◮ OpenStreetMap dataset ◮ Online shortest path computation (Contraction Hierarchies) ◮ Iterated Local Search ◮ Details of Algorithm 1 & 2 ◮ Integer Programming solutions to the AOP 21 / 22
References [GLV16] Aldy Gunawan, Hoong Chuin Lau, and Pieter Vansteenwegen. Orienteering problem: A survey of recent variants, solution approaches and applications. European Journal of Operational Research , 255(2):315–332, 2016. [GP10] Michel Gendreau and Jean-Yves Potvin. Handbook of Metaheuristics , volume 2. Springer, 2010. [GRA] GraphHopper Routing Engine. https://github.com/graphhopper/graphhopper . Visited Nov 2, 2017. [GSSD08] Robert Geisberger, Peter Sanders, Dominik Schultes, and Daniel Delling. Contraction hierarchies: Faster and simpler hierarchical routing in road networks. Experimental Algorithms , pages 319–333, 2008. [LS15] Ying Lu and Cyrus Shahabi. An arc orienteering algorithm to find the most scenic path on a large-scale road network. In Proceedings of the 23rd SIGSPATIAL International Conference on Advances in Geographic Information Systems , page 46. ACM, 2015. [OSM] OpenStreetMap Wiki. http://wiki.openstreetmap.org/wiki/Develop . Visited Nov 13, 2017. [SVBVO11] Wouter Souffriau, Pieter Vansteenwegen, Greet Vanden Berghe, and Dirk Van Oudheusden. The planning of cycle trips in the province of East Flanders. Omega , 39(2):209–213, 2011. [VVA14] C´ edric Verbeeck, Pieter Vansteenwegen, and E-H Aghezzaf. An extension of the arc orienteering problem and its application to cycle trip planning. Transportation Research Part E: Logistics and Transportation Review , 68:64–78, 2014. 22 / 22
Integer Program Formulation [VVA14] Given: ◮ An incomplete directed graph G = ( V , A ) ◮ A start vertex d ∈ V ◮ A distance budget B ∈ R . Each arc, a ∈ A has the following: ◮ A cost c a ∈ R ◮ A profit p a ∈ R ◮ A complementary arc ¯ a ∈ A ∪ {∅} Decision variables: ◮ x a ∈ { 0 , 1 } , ∀ a ∈ A ◮ z v ∈ Z ≥ , ∀ v ∈ V � Objective: Maximize p a ∗ x a (1) a ∈ A 1 / 2
Integer Program Constraints Given: δ ( S ) = set of outgoing arcs, λ ( S ) = set of incoming arcs. � c a ∗ x a ≤ B (2) a ∈ A � � x a − x a = 0 ∀ v ∈ V (3) a ∈ λ ( v ) a ∈ δ ( v ) � x a = z v ∀ v ∈ V (4) a ∈ δ ( v ) � v ∈ S z v � x a ≥ ∀ S ⊆ V \ { d } (5) � v ∈ S | δ ( v ) | a ∈ δ ( S ) z d = 1 (6) x a + x ¯ a ≤ 1 ∀ a ∈ A : ∃ ¯ a ∈ A (7) 2 / 2
Recommend
More recommend