Optimizing Dijkstra for real-world performance
Nimrod Aviram, Yuval Shavitt

TL;DR
This paper presents a new, faster queue design for Dijkstra's algorithm, significantly improving performance on large graphs and outperforming existing implementations like Boost.
Contribution
Introduces an optimized queue structure for Dijkstra's algorithm that enhances real-world performance and is easy to implement.
Findings
Prototype runs twice as fast as Boost on large graphs
Implementation achieved in a few weeks by a single programmer
Design shows promise for practical, high-performance shortest path computations
Abstract
Using Dijkstra's algorithm to compute the shortest paths in a graph from a single source node to all other nodes is common practice in industry and academia. Although the original description of the algorithm advises using a Fibonacci Heap as its internal queue, it has been noted that in practice, a binary (or -ary) heap implementation is significantly faster. This paper introduces an even faster queue design for the algorithm. Our experimental results currently put our prototype implementation at about twice as fast as the Boost implementation of the algorithm on both real-world and generated large graphs. Furthermore, this preliminary implementation was written in only a few weeks, by a single programmer. The fact that such an early prototype compares favorably against Boost, a well-known open source library developed by expert programmers, gives us reason to believe our design…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsNetwork Packet Processing and Optimization · Interconnection Networks and Systems · VLSI and FPGA Design Techniques
