Professional Documents
Culture Documents
Abstract
We study the ALT algorithm [19] for the point-to-point
shortest path problem in the context of road networks. We
suggest improvements to the algorithm itself and to its
preprocessing stage. We also develop a memory-efficient
implementation of the algorithm that runs on a Pocket PC.
It stores graph data in a flash memory card and uses RAM
to store information only for the part of the graph visited by
the current shortest path computation. The implementation
works even on very large graphs, including that of the North
America road network, with almost 30 million vertices.
1 Introduction
Finding shortest paths is a fundamental problem with
numerous applications. There are several variations,
including single-source, point-to-point, and all-pairs
shortest paths. The single-source problem with non-
negative arc lengths has been studied most extensively
[4, 6, 7, 8, 15, 16, 17, 18, 20, 25, 30, 38, 41]. For this prob-
lem, near-optimal algorithms are known both in theory, Figure 1: An example of ALT algorithm running on the
with near-linear time bounds, and in practice, where road network of the Washington state and surrounding
running times are within a small constant factor of the area. Grayscale levels indicate road network density.
breadth-first search time. Highlighted area represents vertices actually visited.
In this paper we study another common variant, the Landmarks are represented by diamonds, and the five
point-to-point shortest path problem on directed graphs clear ones are active. This is a relatively hard instance.
with nonnegative arc lengths (the P2P problem). We
are interested in exact shortest paths only. Unlike the
single-source case, where every vertex of the graph must
be visited, the P2P problem can often be solved while addressed, for example, in [24, 34, 36, 42]. While
visiting a small subgraph. Therefore, we measure the no nontrivial theoretical results are known for the
algorithm performance in an output-sensitive way, in general P2P problem, there has been work on the
terms of its efficiency: the ratio between the number special case of undirected planar graphs with slightly
of vertices scanned by the algorithm and the number of superlinear preprocessing space. The best bound in
vertices on the shortest path. We allow preprocessing, this context (see [11]) is superlinear in the size of the
but limit the size of the data computed during this phase output path unless the path is very long. Algorithms
to a (moderate) constant times the input graph size. for approximate shortest paths that use preprocessing
The P2P problem with no preprocessing has been have been studied; see e.g. [5, 26, 39]. Previous work
on exact algorithms with preprocessing includes those
using geometric information [21, 28, 40], hierarchical
∗ Microsoft Research, 1065 La Avenida, Mountain View, decomposition [35], and landmark distances [19]. We
CA 94062. Email: goldberg@microsoft.com; URL: take the latter approach, which is simple, applies to
http://www.research.microsoft.com/~goldberg/. a potentially wider range of problems (as it needs no
† Computer Science Department, Princeton University. Sup-
7.4 Landmark representation and compression. Table 1: Throughputs of each flash card (in KB/s) for
We store data for each landmark in a separate file. accesses to random 512-byte blocks with the CPU at
Each distance is represented by a 32-bit integer. To 100 MHz and 400 MHz.
and from distances for the same vertex are adjacent.
Our code was written in C++ and compiled under
Although the graph is not completely symmetric, the
eMbedded Visual C++ 4.0 (for the Pocket PC) and
two distances are usually close. Moreover, since vertices
Visual C++ 7.0 (for PCs). We use the Mersenne
with similar IDs tend to be close to each other, their
Twister pseudorandom number generator [29].
distances to (or from) the landmark are also similar.
We experimented with six road network graphs
This similarity is important for compression, which
extracted from Mappoint.NET data: San Francisco Bay
allows more data to fit in the flash card and speeds up
Area (including San Jose and Sacramento), Dallas area,
graph dimensions file sizes (MB)
vertices arcs graph landmark total
Bay Area 330 024 793 681 5.80 1.34 42.42
Los Angeles 563 992 1 392 202 10.12 2.21 71.07
St Louis 588 940 1 370 273 10.09 2.31 73.31
Dallas 639 821 1 522 485 11.15 2.51 80.03
Washington 991 848 2 294 870 16.91 3.90 123.52
North America 29 883 886 70 297 895 516.25 117.50 3 735.00
Table 2: Road network problems: graph dimensions and file sizes in MB (of a single graph file, of a single landmark
file, and the total considering two graph files and 23 landmark files).
Los Angeles area, St Louis area, Washington State and and to get a better understanding of the algorithm, we
vicinity (including Vancouver Island and Portland), and use five machine-independent measures of quality.
the Continental North America (Canada, the United The first three measures refer to the number of
States, and parts of Mexico). We refer to the first five mutable nodes (i.e., vertices visited): the average, the
graphs as partial; although by no means small, these 99th percentile, and the maximum. We are interested
graphs are much smaller than the last one. We use road in optimizing the worst case of the algorithm. Since
segment transit times as arc lengths (using road segment we test only a fraction of the O(n2 ) possible pairs, the
lengths instead has little effect on the performance of variance on the maximum can be quite high. The 99th
ALT, as shown in [19]). Table 2 reports the problem percentile tends to be a more stable measure of the
sizes, including the average size of each of the two graph relative performance of two different landmark selection
files (forward and reverse) and of a typical landmark file. methods. For NA, on which only 100 pairs were tested,
It also reports the total space the algorithm requires we often report the 97th percentile instead.
when working with 23 landmarks, the number we used The fourth measure is the average efficiency, de-
on the Pocket PC. fined as the ratio between the number of vertices
Following [19], we use two kinds of (s,t) pair distri- scanned and the actual number of vertices on the path.
butions. One selects the endpoints uniformly at random Finally, the fifth measure is the average amount of data
(rand), which tends to produce pairs of far away ver- read from secondary storage per search. This correlates
tices. Another is bfs, which selects s at random, does well with the running time of the algorithm.
breadth-first search to find all vertices that are 50 hops All experiments comparing different design choices
away from s, and chooses t at random from these; this were made on the PC, and for them only the machine-
produces a local pair. Our design choices were made independent measures are presented. Running times are
with the random distribution in mind, since the searches shown only for the runs made on the Pocket PC (see
it induces cost much more. Therefore, most of our ex- Section 8.3).
periments will focus on the random distribution; only
those in Section 8.3 use bfs. 8.2 Design choices. Our two main improvements to
We designed experiments to test several variants the original ALT algorithm are the new landmark selec-
of the algorithm. For each of the partial graphs, we tion schemes (avoid and maxcover ) and the dynamic
picked a random set of 1000 s-t pairs and ran the P2P selection of active landmarks. There are also some mi-
algorithm on it for all variants tested. For consistency, nor improvements, such as a new pruning strategy.
each partial graph is tested with the same set of 1000 We start by defining a reference version of our
pairs on all experiments. Most experiments on NA, algorithm, with the best choice of each of the parameters
which take longer to run, used 100 pairs only. tested. It uses landmarks obtained with the maxcover
To compare two variants of the algorithm, the obvi- method. To solve the P2P problem, we used dynamic
ous measure of performance is running time. However, selection of active landmarks, starting with two and
with many design choices to evaluate, most of the ex- increasing this number as necessary (up to six). Pruning
periments were done on a PC, which is much faster, was also used.
mainly due to disk caching: for partial graphs, all data Table 3 presents data for this reference version,
fits in the cache. The flip side of this speedup is that the with 16 landmarks. For this experiment only, we
running times are unsteady: different runs of the same used 1000 pairs to test NA. The average efficiency was
algorithm may have completely different running times above 26% over the five partial graphs and above 10%
depending on the initial cache state. For this reason, for the NA graph. Comparing this with the results
graph mutable nodes eff. data gener.
avg 99th max (%) (kb) time (s)
Bay Area 4 258 21 567 31 065 29.11 542 94
Los Angeles 7 242 46 759 93 801 26.52 700 168
St Louis 6 575 31 135 53 761 29.22 564 207
Dallas 8 145 49 913 86 784 26.86 682 173
Washington 10 159 48 407 111 205 33.16 808 248
North America 303 148 1 700 827 3 608 315 10.65 51 461 12 488
Table 3: Results with 16 landmarks generated with maxcover on 1000 random pairs: number of mutable nodes
(average, 99th percentile, and worst), average efficiency, and average amount of data read from disk. The last
column presents the total time required to generate the landmarks, in seconds.
reported in [19], the improvements on the original In absolute terms, the performance of the algorithm
ALT implementation become clear. The original ALT on NA was worse than on the smaller graphs. However,
efficiency (with 16 landmarks) was 7.8% on Bay Area, the fraction of vertices that were visited (mutable nodes)
5.6% on Los Angeles, 10.6% on St. Louis, and 7.1% was quite similar, and the average efficiency was not
on Dallas (these were the only problems tested in both much worse. The amount of data read per mutable
studies). node, however, increased from less than 100 bytes in
Regarding the number of mutable nodes visited by most partial graphs to almost 170 bytes. This is because
the algorithm, the table shows that, on average, they larger maps have less locality, since the search spreads
are just over 1% of the total number of vertices on all over a larger portion of the graph.
graphs, including NA. Moreover, on at least 99% of the In the remaining experiments in this section, we
pairs, at most 8% of the vertices were visited. The worst vary one or more of the parameters used to build
cases observed ranged from 9% (St Louis) to 17% (Los Table 3. All parameters that are modified are explicitly
Angeles) of the vertices in the graph. mentioned; those that are not remain the same as above.
Note that the 99th percentile is often closer to
the average than to the worst case, which suggests 8.2.1 Landmark selection. We start by analyzing
that the distribution is far from uniform, and increases the effect of the landmark selection scheme on solution
sharply towards the end. Figure 2, which shows the full quality. We compare maxcover with five alternative
histogram for Bay Area and Washington, confirms this. methods. For each graph and each method, we gen-
The curves for the other three partial graphs, omitted erated three sets of landmarks (with different random
for clarity, fall between those two. The curve for NA seeds), and picked the best (the one with the small-
has a similar shape. est 99th percentile when processing 1000 random pairs).
For NA, we used the 97th percentile and 100 pairs.
Table 4 shows the results for partial graphs. Note
120000 that all measures are relative to maxcover. For each
Bay Area
Washington graph, we compute the ratio between the value obtained
100000 by the method and what was obtained by maxcover,
then report the geometric mean of these ratios over all
80000 five graphs.1
mutable nodes
1.8
cuss the effect of pruning and the new stopping criterion
1.6
on the performance of the algorithm.
On the partial graphs, with 16 maxcover landmarks,
1.4 efficiency decreases by roughly 3% and the average
number of mutable nodes increases by more than 6%
1.2
if pruning is not used. The effect of the new stopping
1.0
criterion is also modest on average: both the efficiency
and the number of mutable nodes get only 3% worse if
0.8 the old criterion is used.2 The average results for NA
2 3 4 5 6 7 8 9 10
were similar.
number of static landarks
However, the effects of both improvements depend
Figure 3: Performance of the P2P algorithm on partial heavily on the particular characteristics of each search.
graphs as a function of the number of statically selected Take NA, for instance. On more than half of the
landmarks. All values are relative to dynamic selection. searches tested, switching to the old stopping criterion
would increase the number of mutable nodes by less
than 1%. However, there were searches where the
Note that, with dynamic selection, the algorithm
difference was greater than 20%. In 60% of the cases
reads less than the amount required with three static
the number of vertices visited would increase by less
landmarks, and achieves much better results on average
than 1% if pruning were not used, but we did observe
and particularly on hard cases (as the 99th percentile
differences as high as 164%.
shows).
Interestingly, there was no obvious correlation be-
Results for NA were very similar (we omit the corre-
tween the “hardness” of the search (in terms of the
sponding plot). As with partial graphs, static selection
number of vertices visited) and the effect of these im-
always obtained worse results in terms the average num-
provements. Some searches visiting more than a mil-
ber of mutable nodes and the 99% percentile. Moreover,
lion vertices were largely unaffected, while others bene-
the average amount of data read was high even for small
fited greatly. Such diversity was also observed for easier
values of h; for h = 4 (the best for static selection), it
searches.
was 60% larger than with dynamic selection. In terms
of efficiency, static selection was better then dynamic
8.3 Running times. The previous experiments have
for h between 3 and 5, but by no more than 4%.
shown that the best approach (among those tested) is
We interpret these results as follows. Often, one
to generate as many landmarks as possible using the
landmark gives very good bounds for the forward search
and another one for the reverse search. Both active 2 Since the standard stopping criterion cannot be used with
landmark selection variants choose these landmarks, dynamically selected landmarks, we compared it with the new
and the dynamic version never adds new ones. This case stopping criterion using static selection (with h = 6).
maxcover method and dynamically choose which ones Local (bfs) queries, which would be the most typical
to use during the actual P2P computation. This section in navigation software, took a second or two. For
presents running times for this algorithm on a Pocket this distribution, performance does not seem to depend
PC. much on the graph size: queries take similar amounts
The total number of landmarks we could use for of time on small and large maps (they are only slightly
NA was limited by the size of the CF Card we had. larger on NA).
A formatted four-gigabyte card can only hold 3.74 GB For random pairs, on the other hand, running times
of data. That is enough for 23 landmarks and the clearly depend on graph size. On smaller graphs, the
graph data; 24 landmarks would require 3.76 GB. For average time was between 5 and 8 seconds. On NA,
symmetry, we also tested the other graphs with 23 searches took less than six minutes on average, still
landmarks. respectable considering the size of the data set and the
Table 8 reports the performance of the algorithm. system limitations. The median time (not shown in the
Both distributions (bfs and rand) are considered. For table) was only one minute.
each, we tested the algorithm with 1000 pairs on the On partial graphs, the efficiency of the algorithm is
partial graphs, and 100 pairs on NA. We ran each roughly the same for bfs and rand, which might seem
experiment twice, with different clock speeds: 100 MHz counter-intuitive. This is related to the nature of the
and 400 MHz. This was done to verify that main ALT algorithm. On a long path, each search (forward
bottleneck of our implementation is not CPU, but and reverse) tends to visit more vertices close to its
reading the data from flash. origin. The middle portion of the path is often perfectly
The results confirm this. Reducing the clock speed “covered” by a landmark, and therefore is traversed
by a factor of four increases running times by a factor of more efficiently. The search depicted in Figure 1 is a
1.68 to 1.85. Compare this with Table 1, which shows good example of this. A search in the bfs distribution
that the time to merely read a fixed amount of data can be seen as one with no sizeable middle portion.
already increases by more than 1.6 when the CPU is Note that we set M , the limit on the maximum
slowed down. This is evidence that reading the data number of mutable nodes, to two million. With this
dominates the running time. value, the program footprint is about 78 MB. This
In a related experiment, we tested an in-memory would be reduced to 15 MB if we used 200 000 mutable
version of our algorithm. Each input file (graphs and nodes, more than enough for the partial graphs. For
landmarks) was preloaded to a separate array in mem- NA, on the other hand, there are cases where two million
ory, and all calls to fread (the C function used to read mutable nodes are not enough, but Table 3 shows that
data from the file) were replaced by calls to memcpy. this is rare: at least 99% of the searches visit fewer
Everything else remained unaltered: the data was still vertices. None of the 100 pairs tested on the Pocket PC
read in blocks, decompressed on the fly (for landmarks), reached this limit.
and caching was used. In other words, all the over-
head associated with an external memory implementa- 9 Final Remarks
tion was still present. Of course, a “pure” in-memory We improved the ALT algorithm, developed a memory-
implementation of the ALT algorithm (without block efficient version of it, and tested it on a Pocket PC. The
reads, caching, compression, hashing, and other over- implementation works even for large graphs, with tens
heads) would be significantly faster. of millions of vertices. Reading data from flash memory
Still, the version we implemented is already one is the bottleneck. On graphs corresponding to local area
order of magnitude faster than the external memory maps, our Pocket PC implementation is fast enough for
algorithm. On the Pocket PC, the average time for practical use.
Bay Area (with the rand distribution) was 0.40 seconds On NA with random pairs of vertices, the imple-
at 400 MHz (and 1.21 seconds at 100 MHz).3 This mentation is still somewhat slow, but being able to solve
represents a speedup of roughly 13 when compared with problems of this size of the device in minutes is still an
the external memory version, showing that reading the achievement. In addition to possible algorithmic im-
data is indeed the bottleneck of our algorithm. provements, faster flash cards and interfaces are likely
Even though flash card performance is bad in our in the future. Combined with cheaper and higher ca-
application, running times for our code are reasonable. pacity flash memory cards becoming available, solving
problems of NA size on small devices may become more
3 Note that a four-time increase in clock speed makes the
practical.
algorithm only three times as fast. We conjecture that this
Although our implementation is not directly com-
happens because the change in clock frequency does not affect
other components—notably RAM. parable to that of [19], we believe that an in-memory
mutable nodes eff. data search time
pairs graph avg 99th max (%) (kb) @100 @400 ratio
bfs Bay Area 582 2 040 2 248 28.2 103 2.07 1.20 1.73
Los Angeles 697 2 737 3 466 26.8 109 2.32 1.36 1.70
St Louis 341 1 255 1 327 42.9 53 1.33 0.79 1.68
Dallas 337 921 952 39.1 58 1.38 0.82 1.69
Washington 400 2 016 3 817 42.9 60 1.47 0.85 1.72
North America 441 1 785 3 188 33.4 68 3.92 2.15 1.82
random Bay Area 3 473 14 974 15 490 32.3 505 9.33 5.13 1.82
Los Angeles 5 635 35 535 49 926 29.6 650 13.04 7.25 1.80
St Louis 5 863 36 389 37 299 34.1 561 12.26 6.94 1.77
Dallas 8 067 46 619 53 863 29.4 726 16.17 8.72 1.85
Washington 7 154 29 491 39 680 44.9 707 14.59 8.00 1.82
North America 189 602 974 362 1 804 161 14.7 22 397 552.35 328.78 1.68
Table 8: Pocket PC runs with 23 maxcover landmarks: number of mutable nodes, average efficiency, average
amount of data read, average running time in seconds at 100 MHz and 400 MHz, and the ratio between them.
variant of our algorithm will be substantially faster. on Sparse Graphs. In J. Diaz, J. Karhumäki, A. Leistö,
Not only does our algorithm visit fewer vertices (be- and D. Sannella, editors, Proc. 31st International Col-
cause of higher efficiency), but it also processes each loquim on Automata, Languages, and Programming,
one faster (because the number of active landmarks is volume 3142 of Lecture Notes in Computer Science,
reduced with dynamic selection). pages 146–157. Springer-Verlag, 2004.
[3] G. S. Brodal, R. Fagerberg, U. Meyer, and N. Zeh.
We have seen that better landmark selection
Cache-Oblivious Data Structures and Algorithms for
schemes can significantly improve the performance. We Undirected Breadth-First Search and Shortest Paths.
believe there is still room for improvement, particularly In T. Hagerup and J. Katajainen, editors, Proc. 9th
for the NA graph. Developing new landmark selection Scandinavian Workshop on Algorithm Theory, volume
schemes is an obvious path for future research. 3111 of Lecture Notes in Computer Science, pages 480–
Other potential improvements include a more com- 492. Springer-Verlag, 2004.
pact representation of landmarks (for example, storing [4] B. V. Cherkassky, A. V. Goldberg, and T. Radzik.
distances only for some vertices and recomputing the Shortest Paths Algorithms: Theory and Experimental
rest) and reusing mutable nodes to further reduce the Evaluation. In Proc. 5th ACM-SIAM Symposium on
footprint of the algorithm. The implementation would Discrete Algorithms, pages 516–525, 1994.
also benefit from further tuning. We have not performed [5] L. J. Cowen and C. G. Wagner. Compact Roundtrip
Routing in Directed Networks. In Proc. Symp. on
extensive experiments to determine the ideal number of
Principles of Distributed Computation, pages 51–59,
pages to read at a time, the best size of each cache, or 2000.
the minimum number of vertices visited between check- [6] G. B. Dantzig. Linear Programming and Extensions.
points. Treating the flash card as a raw device may also Princeton Univ. Press, Princeton, NJ, 1962.
improve performance. [7] E. V. Denardo and B. L. Fox. Shortest-Route Meth-
An open problem is to analyze the performance of ods: 1. Reaching, Pruning, and Buckets. Oper. Res.,
ALT on interesting classes of graphs and compare it to 27:161–186, 1979.
(bidirectional) Dijkstra’s algorithm. Our approach is [8] E. W. Dijkstra. A Note on Two Problems in Connexion
related to using beacons to estimate distances in the with Graphs. Numer. Math., 1:269–271, 1959.
Internet [14, 32]. The empirical work on beacons re- [9] J. Doran. An Approach to Automatic Problem-
ceived a theoretical justification [27], suggesting a path Solving. Machine Intelligence, 1:105–127, 1967.
[10] D. Dreyfus. An Appraisal of Some Shortest Path Al-
to explain the good performance of ALT in practice.
gorithms. Technical Report RM-5433, Rand Corpora-
tion, Santa Monica, CA, 1967.
References [11] J. Fakcharoenphol and S. Rao. Planar Graphs, Neg-
ative Weight Edges, Shortest Paths, and Near Lin-
[1] E. Aarts and J. K. Lenstra, editors. Local Search in ear Time. In Proc. 42nd IEEE Annual Symposium
Combinatorial Optimization. Wiley, 1997. on Foundations of Computer Science, pages 232–241,
[2] L. Arge, U. Meyer, and L. Toma. External Memory 2001.
Algorithms for Diameter and All-Pairs Shortest-Paths [12] L. R. Ford, Jr. Network Flow Theory. Technical
Report P-932, The Rand Corporation, 1956. Science, pages 444–453, 2004.
[13] L. R. Ford, Jr. and D. R. Fulkerson. Flows in Networks. [28] U. Lauther. An Extremely Fast, Exact Algorithm
Princeton Univ. Press, Princeton, NJ, 1962. for Finding Shortest Paths in Static Networks with
[14] P. Francis, S. Jamin, C. Jin, Y. Jin, D. Raz, and Geographical Background. In IfGIprints 22, Institut
Y. Shavit. IDMaps: A Global Internet Host Distance fuer Geoinformatik, Universitaet Muenster (ISBN 3-
Estimation Service. IEEE/ACM Trans. on Network- 936616-22-1), pages 219–230, 2004.
ing, 2001. [29] M. Matsumoto and T. Nishimura. Mersenne Twister:
[15] M. L. Fredman and R. E. Tarjan. Fibonacci Heaps A 623-Dimensionally Equidistributed Uniform Pseu-
and Their Uses in Improved Network Optimization dorandom Number Generator. ACM Transactions on
Algorithms. J. Assoc. Comput. Mach., 34:596–615, Modeling and Computer Simulation, 8(1):3–30, 1998.
1987. [30] U. Meyer. Single-Source Shortest Paths on Arbitrary
[16] G. Gallo and S. Pallottino. Shortest Paths Algorithms. Directed Graphs in Linear Average Time. In Proc. 12th
Annals of Oper. Res., 13:3–79, 1988. ACM-SIAM Symposium on Discrete Algorithms, pages
[17] A. V. Goldberg. A Simple Shortest Path Algorithm 797–806, 2001.
with Linear Average Time. In Proc. 9th Annual [31] U. Meyer and N. Zeh. I/O-Efficient Undirected Short-
European Symposium on Algorithms, volume 2161 of est Paths. In G. Di Battista and U. Zwick, editors,
Lecture Notes in Computer Science, pages 230–241. Proc. 11th European Symp. on Algorithms, volume
Springer-Verlag, 2001. 2832 of Lecture Notes in Computer Science, pages 434–
[18] A. V. Goldberg. Shortest Path Algorithms: Engineer- 445. Springer-Verlag, 2003.
ing Aspects. In Proc. ESAAC ’01, Lecture Notes in [32] E. Ng and H. Zhang. Predicting internet network
Computer Science. Springer-Verlag, 2001. distance with coordinates-based approach. In IEEE
[19] A. V. Goldberg and C. Harrelson. Computing the INFOCOM, 2002.
Shortest Path: A∗ Search Meets Graph Theory. Tech- [33] T. A. J. Nicholson. Finding the Shortest Route
nical Report MSR-TR-2004-24, Microsoft Research, Between Two Points in a Network. Computer J.,
2004. 9:275–280, 1966.
[20] A. V. Goldberg and C. Silverstein. Implementations [34] I. Pohl. Bi-directional Search. In Machine Intelligence,
of Dijkstra’s Algorithm Based on Multi-Level Buckets. volume 6, pages 124–140. Edinburgh Univ. Press,
In P. M. Pardalos, D. W. Hearn, and W. W. Hages, Edinburgh, 1971.
editors, Lecture Notes in Economics and Mathematical [35] F. Schulz, D. Wagner, and K. Weihe. Using Multi-
Systems 450 (Refereed Proceedings), pages 292–327. Level Graphs for Timetable Information. In Proc.
Springer Verlag, 1997. 4th International Workshop on Algorithm Engineering
[21] R. Gutman. Reach-based Routing: A New Approach and Experiments, volume 2409 of Lecture Notes in
to Shortest Path Algorithms Optimized for Road Net- Computer Science, pages 43–59. Springer-Verlag, 2002.
works. In Proc. 6th International Workshop on Al- [36] R. Sedgewick and J. S. Vitter. Shortest Paths in
gorithm Engineering and Experiments, pages 100–111, Euclidean Graphs. Algorithmica, 1:31–48, 1986.
2004. [37] R. E. Tarjan. Data Structures and Network Algo-
[22] P. E. Hart, N. J. Nilsson, and B. Raphael. A Formal rithms. Society for Industrial and Applied Mathemat-
Basis for the Heuristic Determination of Minimum Cost ics, Philadelphia, PA, 1983.
Paths. IEEE Transactions on System Science and [38] M. Thorup. Undirected Single-Source Shortest Paths
Cybernetics, SSC-4(2), 1968. with Positive Integer Weights in Linear Time. J. Assoc.
[23] D. Hutchinson, A. Maheshwari, and N. Zeh. An exter- Comput. Mach., 46:362–394, 1999.
nal memory data structure for shortest path queries. [39] M. Thorup. Compact Oracles for Reachability and
DAM, 126:55–82, 2003. Approximate Distances in Planar Digraphs. In Proc.
[24] T. Ikeda, Min-Yao Hsu, H. Imai, S. Nishimura, H. Shi- 42nd IEEE Annual Symposium on Foundations of
moura, T. Hashimoto, K. Tenmoku, and K. Mitoh. A Computer Science, pages 242–251, 2001.
Fast Algorithm for Finding Better Routes by AI Search [40] D. Wagner and T. Willhalm. Geometric Speed-Up
Techniques. In Proc. Vehicle Navigation and Informa- Techniques for Finding Shortest Paths in Large Sparse
tion Systems Conference. IEEE, 1994. Graphs. In Proc. 11th Annual European Symposium on
[25] R. Jacob, M. V. Marathe, and K. Nagel. A Computa- Algorithms, volume 2832 of Lecture Notes in Computer
tional Study of Routing Algorithms for Realistic Trans- Science, pages 776–787. Springer-Verlag, 2003.
portation Networks. Oper. Res., 10:476–499, 1962. [41] F. B. Zhan and C. E. Noon. Shortest Path Algorithms:
[26] P. Klein. Preprocessing an Undirected Planar Network An Evaluation Using Real Road Networks. Transp.
to Enable Fast Approximate Distance Queries. In Proc. Sci., 32:65–73, 1998.
13th ACM-SIAM Symposium on Discrete Algorithms, [42] F. B. Zhan and C. E. Noon. A Comparison Be-
pages 820–827, 2002. tween Label-Setting and Label-Correcting Algorithms
[27] J. Kleinberg, A. Slivkins, and T. Wexler. Triangulation for Computing One-to-One Shortest Paths. Journal
and embedding using small sets of beacons. In Proc. of Geographic Information and Decision Analysis, 4,
45th IEEE Symposium on Foundations of Computer 2000.