Abstract
Flood-filling algorithms as used for coloring images and shadow casting show that improved locality greatly increases the cache performance and, in turn, reduces the running time of an algorithm. In this paper we look at Dijkstra’s method to compute the shortest paths for example to generate pattern databases. As cache-improving contributions, we propose edge-cost factorization and flood-filling the memory layout of the graph. We conduct experiments in commercial game maps and compare the new priority queues with advanced heap implementations as well as and with alternative bucket implementations.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
References
Ahuja, R.K., Mehlhorn, K., Orlin, J.B., Tarjan, R.E.: Faster algorithms for the shortest path problem. J. ACM 37(2), 213–223 (1990)
Brodal, G.S.: Worst-case efficient priority queues. In: ACM-SIAM Symposium on Discrete Algorithms, pp. 52–58 (1996)
Bruun, A., Edelkamp, S., Katajainen, J., Rasmussen, J.: Policy-based benchmarking of weak heaps and their relatives. In: Festa, P. (ed.) SEA 2010. LNCS, vol. 6049, pp. 424–435. Springer, Heidelberg (2010). doi:10.1007/978-3-642-13193-6_36
Culberson, J.C., Schaeffer, J.: Pattern databases. Comput. Intell. 14(4), 318–334 (1998)
Dial, R.B.: Shortest-path forest with topological ordering. Commun. ACM 12(11), 632–633 (1969)
Dijkstra, E.W.: A note on two problems in connexion with graphs. Numer. Math. 1, 269–271 (1959)
Driscoll, J.R., Gabow, H.N., Shrairman, R., Tarjan, R.E.: Relaxed heaps: an alternative to Fibonacci heaps with applications to parallel computation. Commun. ACM 31(11), 1343–1354 (1988)
Edelkamp, S.: Planning with pattern databases. In: ECP, pp. 13–24 (2001)
Edelkamp, S., Schrödl, S.: Localizing A*. In: AAAI, pp. 885–890 (2000)
Evangelista, S., Kristensen, L.M.: A sweep-line method for Büchi automata-based model checking. Fundam. Inform. 131(1), 27–53 (2014)
Floyd, R.W.: Algorithm 245: treesort 3. Commun. ACM 7(12), 701 (1964)
Fredman, M.L., Sedgewick, R., Sleator, D.D., Tarjan, R.E.: The pairing heap: a new form of self-adjusting heap. Algorithmica 1(1), 111–129 (1986)
Fredman, M.L., Tarjan, R.E.: Fibonacci heaps and their uses in improved network optimization algorithm. J. ACM 34(3), 596–615 (1987)
Geisberger, R., Schieferdecker, D.: Heuristic contraction hierarchies with approximation guarantee. In: SOCS, pp. 31–38 (2010)
Ghiani, G., Guerriero, F., Laporte, G., Musmanno, R.: Real-time vehicle routing: solution concepts, algorithms and parallel computing strategies. Eur. J. Oper. Res. 151, 1–11 (2003)
Hart, P.E., Nilsson, N.J., Raphael, B.: A formal basis for heuristic determination of minimum path cost. IEEE Trans. Syst. Sci. Cybern. 4, 100–107 (1968)
Horowitz, E., Sahni, S., Anderson-Freed, S.: Fundamentals of Data Structures in C, 2nd edn. Silicon Press, Summit (2007)
Kaplan, H., Tarjan, R.E., Zwick, U.: Fibonacci heaps revisited, pp. 187–205 (2014). arXiv:1407.5750v1
Klein, P., Rao, S., Rauch, M., Subramanian, S.: Faster shortest-path algorithms for planar graphs. J. Comput. Syst. Sci. 55(1), 3–23 (1997)
Korf, R.E.: Finding optimal solutions to Rubik’s Cube using pattern databases. In: AAAI, pp. 700–705 (1997)
Kristensen, L., Mailund, T.: Path finding with the sweep-line method using external storage. In: ICFEM, pp. 319–337 (2003)
LaMarca, A., Ladner, R.E.: The influence of caches on the performance of sorting. J. Algorithms 31(1), 66–104 (1999)
Liebana, D.P., Powley, E.J., Whitehouse, D., Rohlfshagen, P., Samothrakis, S., Cowling, P.I., Lucas, S.M.: Solving the physical traveling salesman problem: tree search and macro actions. IEEE Trans. Comput. Intell. AI Games 6(1), 31–45 (2014)
Lieberman, H.: How to color in a coloring book. SIGGRAPH Comput. Graph. 12(3), 111–116 (1978)
Otte, M.: On solving floating point SSSP using an integer priority queue. CoRR, abs/1606.00726 (2016)
Sanders, P.: Fast priority queues for cached memory. ACM J. Exp. Algorithmics 5, 7 (2000)
Stasko, J.T., Vitter, J.S.: Pairing heaps: experiments and analysis. Commun. ACM 30(3), 234–249 (1987)
Sturtevant, N.R.: The grid-based path planning competition. AI Mag. 35(3), 66–69 (2014)
Thorup, M.: Undirected single-source shortest paths with positive integer weights in linear time. J. ACM 46, 362–394 (1999)
Wagner, D., Willhalm, T.: Geometric speed-up techniques for finding shortest paths in large sparse graphs. In: Battista, G., Zwick, U. (eds.) ESA 2003. LNCS, vol. 2832, pp. 776–787. Springer, Heidelberg (2003). doi:10.1007/978-3-540-39658-1_69
Williams, J.W.J.: Algorithm 232: heapsort. Commun. ACM 7(6), 347–348 (1964)
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2017 Springer International Publishing AG
About this paper
Cite this paper
Edelkamp, S. (2017). Improving the Cache-Efficiency of Shortest Path Search. In: Kern-Isberner, G., Fürnkranz, J., Thimm, M. (eds) KI 2017: Advances in Artificial Intelligence. KI 2017. Lecture Notes in Computer Science(), vol 10505. Springer, Cham. https://doi.org/10.1007/978-3-319-67190-1_8
Download citation
DOI: https://doi.org/10.1007/978-3-319-67190-1_8
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-67189-5
Online ISBN: 978-3-319-67190-1
eBook Packages: Computer ScienceComputer Science (R0)