Constant Query Time $(1 + \epsilon)$-Approximate Distance Oracle for Planar Graphs
Qian-Ping Gu, Gengchun Xu

TL;DR
This paper introduces a novel $(1+psilon)$-approximate distance oracle for planar graphs that achieves constant query time, with size and preprocessing nearly linear in the number of vertices, improving upon previous methods.
Contribution
The paper presents the first $(1+psilon)$-approximate distance oracle for planar graphs with $O(1)$ query time independent of psilon, and nearly linear size and preprocessing time.
Findings
Achieves $O(1)$ query time for approximate distances in planar graphs.
Size and preprocessing time are nearly linear in the number of vertices.
Improves upon previous $(1+psilon)$-approximate distance oracles with higher query times.
Abstract
We give a -approximate distance oracle with query time for an undirected planar graph with vertices and non-negative edge lengths. For and any two vertices and in , our oracle gives a distance with stretch in time. The oracle has size and pre-processing time , where . This is the first -approximate distance oracle with query time independent of and the size and pre-processing time nearly linear in , and improves the query time of previous -approximate distance oracle with size nearly linear in .
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
TopicsComplexity and Algorithms in Graphs · Advanced Graph Theory Research · Computational Geometry and Mesh Generation
Constant Query Time -Approximate Distance Oracle for Planar Graphs111A preliminary version of the paper appeared in the Proceedings of the 26th International Symposium on Algorithms and Computation (ISAAC 2015) [8].
Qian-Ping Gu and Gengchun Xu
School of Computing Science, Simon Fraser University
Burnaby BC Canada V5A1S6
[email protected],[email protected]
Abstract: We give a -approximate distance oracle with query time for an undirected planar graph with vertices and non-negative edge lengths. For and any two vertices and in , our oracle gives a distance with stretch in time. The oracle has size and pre-processing time , where . This is the first -approximate distance oracle with query time independent of and the size and pre-processing time nearly linear in , and improves the query time of previous -approximate distance oracle with size nearly linear in .
key words: Distance oracle, planar graphs, approximate algorithms, graph decomposition
1 Introduction
Finding a distance between two vertices in a graph is a fundamental computational problem and has a wide range of applications. For this problem, there is a rich literature of algorithms. This problem can be solved by a single source shortest path algorithm such as the Dijkstra and Bellman-Ford algorithms. In many applications, it is required to compute the shortest path distance in an extreme short time. One approach to meet such a requirement is to use distance oracles.
A distance oracle is a data structure which keeps the pre-computed distance information and provides a distance between any given pair of vertices very efficiently. There are two phases in the distance oracle approach. The first phase is to compute the data structure for a given graph and the second is to provide an answer for a query on the distance between a pair of vertices in . The efficiency of distance oracles is mainly measured by the time to answer a query (query time), the memory space required for the data structure (oracle size) and the time to create the data structure (pre-processing time). Typically, there is a trade-off between the query time and the oracle size. A simple approach to compute a distance oracle for graph of vertices is to solve the all pairs shortest paths problem in and keep the shortest distances in an distance array. This gives an oracle with query time and size. A large number of papers have been published for distance oracles with better measures on the product of query time and oracle size, see Sommer’s paper for a survey [16].
Planar graphs are an important model for many networks such as the road networks. Distance oracles for planar graphs have been extensively studied. Djidjev proves that for any oracle size , there is an exact distance oracle with query time for weighted planar graphs [6]. There are several exact distance oracles with size and more efficient query time for different ranges of , for example, an oracle by Wulff-Nilsen [19] with query time and size for weighted directed planar graphs and an oracle by Mozes and Sommer [15] with query time and size for weighted directed planar graph. Readers may refer to Sommer’s survey paper [16] for more details.
Approximate distance oracles have been developed to achieve very fast query time and near linear size for planar graphs. For vertices and in graph , let denote the distance between and . An oracle is called an -approximate oracle or with stretch for if it provides a distance with for and in . An oracle is said to have an additive stretch if it provides a distance with . For , Thorup gives a -approximate distance oracle with (resp. , where is the longest finite distance between any pair of vertices in ) query time and (resp. ) size for an undirected (resp. directed) planar with non-negative edge lengths [17]. A similar result for undirected planar graphs is found independently by Klein [11]. Kawarabayashi et al. give a -approximate distance oracle with query time and size for undirected planar graphs with non-negative edge lengths [10]. The query times of the oracles above are fast but still at least . Recently, Wulff-Nilsen gives a -approximate distance oracle with size and query time for undirected planar graph with non-negative edge lengths [20]. This result has a better trade-off between the query time and the oracle size in the size of graph than those in [10, 11, 17].
Distance oracles with constant query time are of both theoretical and practical importance [4, 5]. Our main result is an query time -approximate distance oracle for undirected planar graphs with non-negative edge lengths.
Theorem 1**.**
Let be an undirected planar graph with vertices and non-negative edge lengths and let . There is a -approximate distance oracle for with query time, size and pre-processing time, where .
The oracle in Theorem 1 has a constant query time independent of and size nearly linear in the graph size. This improves the query time of the previous works [10, 17] that are (nearly) linear in for non-constant . Wulff-Nilsen gives an time exact distance oracle for with size [19]. There exists some constant such that for , our oracle has a smaller size.
The result in Theorem 1 can be generalized to an oracle described in the next theorem.
Theorem 2**.**
Let be an undirected planar graph with vertices and non-negative edge lengths, and . There is a -approximate distance oracle for with query time, size and pre-processing time, where .
Our results build on some techniques used in the previous approximate distance oracles for planar graphs. Thorup [17] gives a -approximate distance oracle for planar graph with query time. Informally, some techniques used in the oracle are as follows: Decompose into a balanced recursive subdivision; is decomposed into subgraphs of balanced sizes by shortest paths and each subgraph is decomposed recursively until every subgraph is reduced to a pre-defined size. A path intersects a path if . A set of paths is a path-separator for vertices and if every path between and intersects a path . Vertices and are shortest-separated by a path if there exist a shortest path between and that intersects . If vertices and have a path-separator then and is shortest-separated by some path . For each subgraph of , let be the set of shortest paths used to decompose . For each path and each vertex in , a set of vertices called portals on is selected. For vertices and shortest-separated by some path in , is used to approximate . The oracle keeps the distances and .
The portal set above is vertex dependent. For a path in of length , there is a set of portals such that for any vertices and shortest-separated by , [13]. Based on this and a scaling technique, Kawarabayashi et al. [10] give another -approximate distance oracle: Create subgraphs of such that the vertices in each subgraph satisfy certain distance property (scaling). Each subgraph of is decomposed by shortest paths into a -division of which consists of subgraphs of , each has size . For each subgraph of , let be the set of shortest paths used to separate from the rest of . For each path , a portal set is selected. For vertices and shortest-separated by some path , is used to approximate . This oracle does not keep the distances and but uses the distance oracle in [15] to get the distances. By choosing an appropriate value , the oracle has a better product of query time and oracle size than that of Thorup’s oracle.
We also use the scaling technique to create subgraphs of . We decompose each subgraph of into a balanced recursive subdivision as in Thorup’s oracle. For each subgraph of and each shortest path used to decompose , we choose one set of portals on for all vertices in . A new ingredient in our oracle is to use a more time efficient data structure to approximate instead of . Using an approach in [18], we show that the vertices in can be partitioned into classes such that for every two classes and , there is a key portal and for any and , if and are shortest-separated by then and can be computed in time. This gives a -approximate distance oracle with query time.
Our computational model is word RAM, which models what we can program using standard programming languages such as C/C++. In this model, a word is assumed big enough to store any vertex identifier or distance. We also assume basic operations, which include addition, subtraction, multiplication, bitwise operations (AND, OR, NEGATION) and left/right cyclic shift on a word have unit time cost.
The rest of the paper is organized as follows. In the next section, we give preliminaries of the paper and review the techniques on which our oracles build. In Section 3, we present distance oracles with additive stretch. In Section 4, we give the -approximate distance oracles which use the additive stretch oracles as subroutines. The final section concludes the paper.
2 Preliminaries
An undirected graph consists of a set of vertices and a set of edges. For a subset , we denote by the set of vertices incident to at least one edge of . For and , we denote by and the subgraphs of induced by and , respectively. A graph is a subgraph of if and .
A path between vertices and in is a sequence of edges , where for , , , and the vertices are distinct. For any edge , let be the length of . The length of path is . A path is a shortest path between vertices and if is the minimum among those of all paths between and . The distance between vertices and in , denoted by , is the length of a shortest path between and . For each vertex in , the eccentricity of is . The radius of is . The diameter of is .
A graph is planar if it has a planar embedding (a drawing on a sphere without edge crossing). In the rest of this paper, graphs are undirected planar graphs with non-negative edge lengths unless otherwise stated.
A basic approach in this paper is to decompose graph into subgraphs by shortest paths. A set of shortest paths in graph is a shortest path separator of if , , has at least connected nonempty subgraphs of . A set of paths separates subgraphs and , , if for any vertex in and any vertex in , any path between and intersects a path in . For a subgraph of , a set of paths is a boundary of if separates and the rest of and for every path , there is an edge connecting and . For , a shortest path separator of is called -balanced if holds for every subgraph . An -balanced recursive subdivision of is a structure that is decomposed into subgraphs by an -balanced separator and for each , is decomposed recursively until each subgraph is reduced to a pre-defined size. In the recursive decomposition of , the subset of the shortest path separator of that forms a boundary of is included in computing a shortest path separator of . Let be a shortest path spanning tree of graph rooted at a vertex . Every path in from the root to any vertex is a shorest path and called a root path. We use Thorup’s method [17] to compute a -balanced recursive subdivision using shortest path separators composed of root paths in (based on the result in [14], this can be done in linear time).
We now briefly describe Thorup’s method. Readers may refer to Section in [17] for more details. A recursive subdivision of can be viewed as a rooted tree with each vertex of (called a node, to be distinguished from a vertex of ) representing a subgraph of and the root node representing . Each node in with node degree one is called a leaf node, otherwise an internal node. We identify subgraphs with their corresponding nodes in when convenient. The root node of has depth [math] and for any node of , the depth of is the number of edges of from to the root node. The depth of is the largest depth of any node in . For each node of , let be the set of root paths that forms a boundary of (). Let denote the subgraph of induced by . Let denote the graph obtained by removing some vertices from as follows: for every vertex of that has degree two in , its incident edges and are replaced by edge whose length is the sum of the length of and that of . For each internal node , a -balanced shortest path separator of root paths is used to decompose into subgraphs , , as follows: Let and be the connected components of . Then , . Note that separates from in and separates from in for and . We now state some important properties of the -balanced recursive subdivision in the next Lemma.
Lemma 1**.**
[17]** Given a graph and a shortest path spanning tree of , a -balanced recursive subdivision of can be computed in time such that for each internal node of , () and , and for each node , . Moreover, for each node of and each root path of , if , then for some ancestor of in .
The recursive subdivision of in Lemma 1 will be used in our oracles. Note that since the size of a subgraph is reduced by at least , the depth of is bounded above by . For every vertex , we define the home of , denoted by , to be the node of of largest depth that contains . For any , we define to be the nearest common ancestor of and in . Harel and Tarjan show in [9] that after a linear time preprocessing, the nearest common ancestor of any two nodes in a tree can be found in time.
Let be a shortest path in and . Thorup shows that for every vertex in , there is subset of vertices such that for any vertices and shortest-separated by
[TABLE]
The vertices of are called portals on for . For every subgraph in a -balanced recursive subdivision of and every shortest path , by keeping the distance from each vertex in to every portal in explicitly, Thorup shows the following result.
Lemma 2**.**
[17]** For graph and , there is a -approximate distance oracle with query time, size and pre-processing time. Especially for , there is a -approximate distance oracle for with query time, size and pre-processing time.
Our oracles will use this oracle for (any constant works) to get a rough estimation of .
To reduce the query time to a constant independent of , we will use a portal set independent of vertex . For vertices and shortest-separated by a path , . For a , approximates . The following result will be used.
Lemma 3**.**
[13]** For a path in , and , a set of vertices in can be selected in time such that for any pair of vertices and shortest-separated by , .
The set in Lemma 3 is called the -portal set (with respect to ) and every vertex in is called a portal. Given a path starting from a vertex , and , can be computed as follows: add to , traverse along from and add a vertex to if , where is the last added portal in . To apply the -portal set to our oracle, we further need to guarantee for vertices and in question. We will use the sparse neighborhood covers introduced in [1, 2, 3] of to achieve this goal.
Lemma 4**.**
[3]** For and , connected subgraphs of with the following properties can be computed in time:
For each vertex in , there is at least one that contains and every with . 2. 2.
Each vertex in is contained in at most 18 subgraphs. 3. 3.
Each subgraph has radius .
3 Oracle with additive stretch
We first give a distance oracle which for any vertices and in , and any , returns with . Based on the scaling technique in [10] and Lemma 4, this oracle will be extended to an oracle stated in Theorem 1 for in the next section.
We start with a basic data structure which keeps the following information:
- •
A -balanced recursive subdivision of as in Lemma 1, each leaf node in has size .
- •
A table storing for every .
- •
A data structure with query time to find the nearest common ancestor of and in for any and in .
- •
For each internal node of , an -portal set for every shortest path . For every , every and every portal , distance with
[TABLE]
- •
For every leaf node and every pair of and in , we keep
[TABLE]
The data structure above gives a distance oracle with additive stretch and query time: Given vertices and , if is a leaf node then can be found in time. Otherwise, and must be shortest-separated by some path in . Let
[TABLE]
and
[TABLE]
From , and Lemma 3,
[TABLE]
can be computed in time because and .
We first reduce the query time for internal nodes in the above oracle to a constant independent of and then analyse the preprocessing time of the distance oracle. For , let . Based on an approach in [18], we show that for each internal node and each path , the vertices in can be partitioned into classes such that for any two classes and , there is a key portal and for every and every shortest-separated by , . By keeping the classes and key portals, the query time is reduced to . We first define the classes.
Definition 1**.**
Let be a shortest path in , and be an -portal set (with respect to ) on . The vertices of are partitioned into classes based on as follows. For each vertex , a vector is defined such that for , . Vertices and are in the same class if and only if .
The following property of the classes defined above is straightforward.
Property 1**.**
Let be a shortest path in , and be an -portal set with respect to on . Let be any class of vertices in defined in Definition 1. For any two vertices and any portal ,
We show more properties of the classes defined above in the next two lemmas.
Lemma 5**.**
Let be a shortest path in , and be an -portal set with respect to on . Let and be any two classes of vertices in defined in Definition 1. There is a key portal such that for any vertices and shortest-separated by , .
Proof.
We choose arbitrarily a vertex and a vertex . Let be the key portal. For any and shortest-separated by , let and let . Then
[TABLE]
because , , is an -portal set and Lemma 3. From , Property 1 and ,
[TABLE]
for every . The same relations hold for because they are in . So
[TABLE]
Therefore,
[TABLE]
This completes the proof of the lemma. ∎
Lemma 6**.**
The total number of classes by Definition 1 is .
Proof.
Essentially, this result is proved by Weimann and Yuster in [18] but somehow hidden in other details. Below we give a self-contained proof of the lemma. For each vector , let . Then if and only if . So we just need to prove that the total number of different is . From Definition 1,
[TABLE]
Since is an -portal set, . So
[TABLE]
Therefore there are different vectors of . The ’th element of is either or . Therefore, there are different . ∎
Notice that we can assume that for each internal node , the number of classes Definition 1 is at most because otherwise, instead of partitioning the vertices into classes, we can simply use a distance array to keep the shortest distance between every pair of vertices in .
Now we are ready to show a data structure for our oracle with additive stretch. contains the basic data structure given above and the following additional information:
- •
For each internal node of and each shortest path , let be the classes of vertices in defined in Definition 1. For each vertex , we give an index with if ; and an array with containing the key portal for classes and .
We now describe how to compute the distances for internal nodes as defined in the basic data structure. The method is essentially the same as in the fast construction in [17], but simpler as the portal sets we use are not vertex dependent. We use Lemma 1 to get the recursive subdivision of . Let be the shortest path spanning tree of as defined in Section and let be the largest length of any root path of . By a depth first search of from , we compute an -portal set (with respect to ) and an auxiliary -portal set (with respect to ) for every , . We compute the distances for every internal node in a top-down traversal on from root . We use Dijkstra’s algorithm to compute for every in and every , . Let denote the graph obtained from adding to the edges with length for every in and every , where and for some ancestor of , and then removing degree two vertices of as what we do for . For the root node, the computation is on . For an internal node , the computation is on . Note that may not be planar and since , is linear in the number of edges of incident to vertices of plus the number of portals in each path. Notice that is in for some internal node which is an ancestor of in . So the distances have been computed when we construct . Note that for some vertex and portal , may be computed multiple times. But the value of does not change: let , be the graph on which is computed for the th time; does not increase because the edge is contained in for ; and does not decrease because is a subgraph of for . For with , we run Dijkstra’s algorithm using every as the source. For with , we run Dijkstra’s algorithm using every in as the source. After the distances , , for all internal nodes have been computed, we only keep the distances to the portals for every internal node.
In the next lemma, we show that the distances computed above meet the requirement of .
Lemma 7**.**
For every internal node of , every vertex in and every portal , , .
Proof.
For every internal node of depth in , every vertex in and every portal , we prove by induction that . For the root node (of depth 0), because the distances are computed on . Assume that for every internal node of depth at most , . Let be a node of depth . For in and , , let be a shortest path between and . If contains only edges in then and the statement is proved. Otherwise, can be partitioned into two subpaths and , where every vertex of except is in and is a vertex of a path . Note that is incident to some vertex of so appears in . From the way is computed and the fact that , where is used for computing , there is a portal such that . Let be an ancestor of such that . Note that is computed in and that , and (and therefore ) are all contained in . Therefore,
[TABLE]
and
[TABLE]
The distance has been computed in a node which is an ancestor of and has depth at most . So . Because edges and with lengths and are contained in the graph ,
[TABLE]
Since each node in has depth at most , . ∎
The next three lemmas give the pre-procesing time, space requirement and query time for data structure .
Lemma 8**.**
For graph and , data structure can be computed in time.
Proof.
Let be the recursive subdivision of and . It takes time to compute (Lemma 1). It takes time to compute the data structure that can answer the least common ancestor of any two nodes in in time [9], time to compute for every , and time to compute for every path , .
For every node , let be the number of edges in incident to vertices in . Then . For every path , and for every node in , . From this, for each internal node , has vertices and edges. Dijkstra’s algorithm is executed times for each node . It takes time to compute all for node . Since the sum of for all nodes of the same depth is , it takes time for all internal nodes of the same depth. Since has depth , it takes time to compute all distances for all internal nodes.
To find for a leaf node , we first use Dijkstra’s algorithm to compute , taking every vertex of as the source. This takes time for one leaf node since and time for all leaf nodes since the sum of for all leaf nodes is . Then we compute
[TABLE]
From for and , this takes time for one leaf node and time for all leaf nodes. The total time to compute for all leaf nodes is .
The value for computing the classes can be found in time. Since there are internal nodes, by Lemma 6, it takes time to compute all classes and key portals. Therefore, can be computed in time. ∎
Lemma 9**.**
For graph and , the space requirement for data structure is .
Proof.
Let be the recursive subdivision of in and . Each leaf node has vertices and requires space to keep the distances for in the node. From this and the sum of for all leaf nodes is , the space for all leaf nodes is . By Lemma 1, the sum of for all nodes in is . From for every and for each , the total space for keeping the distances between vertices and portals is . By Lemma 6, the space for the classes in each internal node is for every . Since there are internal nodes, the total space for the classes in all nodes is .
Therefore the space requirement for the oracle is . ∎
Lemma 10**.**
For graph and , with can be computed in time for any and in using data structure .
Proof.
Let be the recursive subdivision of in . , and can be found in time. If is a leaf node then can be found in time. Otherwise, for each path , assume that and , and let be the key portal for and . By Lemma 5,
[TABLE]
Since and the key portal can be found in time for each path , can be computed in time. ∎
From Lemmas 8, 9 and 10, we have the following result.
Theorem 3**.**
For graph and , there is an oracle which gives a distance with for any vertices and in with query time, size and pre-processing time.
We can make the oracle in Theorem 3 a more generalized one: For integer satisfying , we partition each path into segments , compute the classes of vertices in for each segment , , and key portal , and use
[TABLE]
to approximate . By this generalization, we get the following result.
Theorem 4**.**
For graph , and , there is an oracle which gives a distance with for any vertices and in with query time, size and pre-processing time.
4 Oracle with stretch
For , by choosing an where is a constant, the oracle in Theorem 3 gives a -approximate distance oracle for graph with for every and in . For graph with much smaller than for some and , we use a scaling approach as described in [10] to get a -approximate distance oracle. The idea is to compute a set of oracles as described in Theorem 3, each for a computed subgraph of . Given and , we can find in time a constant number of subgraphs (and the corresponding oracles) such that the minimum value returned by these oracles is a -approximation of . Therefore a -approximate distance for any can be computed in constant time. We assume , otherwise a naive exact distance oracle with query time and space can be used to prove Theorem 1.
Let be the smallest edge length in . We assume and the case where can be easily solved in a similar way by normalizing the length of each edge of to . For each scale , we contract every edge of length in and then compute a sparse cover of as in Lemma 4. Each edge of appears in subgraphs for different scales [10]. This is because every edge only appears in scales satisfying . The data structure for our -approximate distance oracle keeps the following information:
- •
A -approximate distance oracle of in Lemma 2.
- •
Subgraphs and for each subgraph , an oracle in Theorem 3 with , is a constant to be specified below.
- •
For every and every scale , the index of every subgraph that contains .
Lemma 11**.**
For graph and , with can be computed in time for any and in using data structure .
Proof.
Given vertices and in , oracle gives with in time (Lemma 2). If then [math] is returned as . Otherwise, given , a scale with can be found by computing the most significant bit of . In the word RAM model with unit costs for basic operations, this can be computed in time using the fusion tree data structure proposed in [7]. By Lemma 4, there is a that contains and every with and . Therefore there exists a constant ( would do) such that . It is easy to see that returns a minimum distance among all the oracles at this scale containing . By oracle , we get a distance with . Since is a subgraph obtained from with every edge with contracted, . Let be the largest sum of the lengths of the contracted edges in any path in . Then and , from and . Let . Then
[TABLE]
By choosing , we have . By Lemma 2, it takes time to compute . From Lemma 4, there are graphs containing and . From this and Theorem 3, it takes time to compute . ∎
Lemma 12**.**
Data structure requires space and can be computed in time.
Proof.
requires space. Each requires space, where . Each edge of appears in different scales and in each scale appears in subgraphs . From this, and requires space .
can be computed in time and the sparse neighborhood covers can be computed in time. The time for computing for each is . Therefore, can be computed in time. ∎
From Lemmas 11 and 12, we get Theorem 1 which is restated below.
Theorem 1**.**
For , there is a -approximate distance oracle for with query time, size and pre-processing time.
Using the oracle in Theorem 4 instead of , we get Theorem 2.
5 Concluding remarks
It is open whether there is a -approximate distance oracle with query time and size nearly linear in for weighted directed planar graphs. For undirected planar graphs, it is interesting to reduce oracle size and pre-processing time (the function ) for the oracles in this paper. Experimental studies for fast query time distance oracles are worth investigating.
The reference list from the paper itself. Each links out to its DOI / PubMed record.
- 1[1] Awerbuch, B., Berger, B., Cowen, L., Peleg, D.: Near-linear time construction of sparse neighborhood covers. SIAM Journal on Computing 28(1), 263-277 (1998).
- 2[2] Awerbuch, B., Peleg, D.: Sparse partitions. In: Proceedings of the 31st IEEE Annual Symposium on Foundations of Computer Science (FOCS 1990), 503-513 (1990).
- 3[3] Busch, C., La Fortune, R., Tirthapura, S.: Improved sparse covers for graphs excluding a fixed minor. In: Proceedings of the 26th Annual ACM symposium on Principles of Distributed Computing (PODC 2007), 61-70 (2007).
- 4[4] Chechik, S.: Approximate distance oracle with constant query time. In: Proceedings of the 46th Annual ACM symposium on Theory of computing (STOC 2014), 654-663 (2014).
- 5[5] Delling, N., Goldberg, A., Pajor, T., Werneck, R.: Robust exact distance queries on massive networks. In: Microsoft Research Technique Report, MSR-TR-2014-12 (2014).
- 6[6] Djidjev, H.: Efficient algorithms for shortest path problems on planar graphs. In: Proceedings of the 22nd International Workshop on Graph-Theoretical Concepts in Computer Science (WG 1996), 151-165 (1996).
- 7[7] Fredman, M. L., Willard, D. E.. Surpassing the information theoretic bound with fusion trees. Journal of computer and system sciences, 47(3), 424-436 (1993).
- 8[8] Gu, Q., Xu, G.: Constant query time ( 1 + ϵ ) 1 italic-ϵ (1+\epsilon) -approximate distance oracle for planar graphs. In: Proceedings of the 26th International Symposium on Algorithms and Computation (ISAAC 2015), LNCS 9472, 625-636 (2015).
