Single-Source Shortest Path Problem in Weighted Disk Graphs
Abstract
In this paper, we present efficient algorithms for the single-source shortest path problem in weighted disk graphs. A disk graph is the intersection graph of a family of disks in the plane. Here, the weight of an edge is defined as the Euclidean distance between the centers of the disks corresponding to the endpoints of the edge. Given a family of disks in the plane whose radii lie in and a source disk, we can compute a shortest path tree from a source vertex in the weighted disk graph in time. Moreover, in the case that the radii of disks are arbitrarily large, we can compute a shortest path tree from a source vertex in the weighted disk graph in time. This improves the best-known algorithm running in time presented in ESA’23.
Keywords and phrases:
Disk graphs, shortest path problem, compressed quadtreesCopyright and License:
![[Uncaptioned image]](x1.png)
2012 ACM Subject Classification:
Theory of computation Computational geometryFunding:
The work by Ah and Oh was supported by Institute of Information & Communications Technology Planning & Evaluation (IITP) grant funded by the Korea government (MSIT) (No.RS-2024-00440239, Sublinear Scalable Algorithms for Large-Scale Data Analysis) and the National Research Foundation of Korea (NRF) grant funded by the Korea government (MSIT) (No.RS-2024-00358505).Editors:
Oswin Aichholzer and Haitao WangSeries and Publisher:

1 Introduction
Geometric intersection graphs are a fundamental class of graphs representing spatial relationships among geometric objects. In this paper, we focus on the intersection graph of disks in the plane. More formally, for a set of points in the plane, where each point has an associated radius , the disk graph of is defined as the graph where each vertex corresponds to a point , and two vertices and of are connected by an edge if and only if the disks with center and radii intersect. For an edge-weighted disk graph, the weight of an edge is defined as . In the special case that all radii are the same, the disk graph is also called a unit disk graph. Disk graphs can be used as a model for broadcast networks: The disks of represent transmitter-receiver stations with transmission power. One can view a broadcast range of a transmitter as a disk.
In this paper, we consider the single-source shortest path (SSSP) problem for edge-weighted disk graphs: Given a set of points associated with radii and a specified point , compute a shortest path tree of the edge-weighted disk graph of rooted at . One straightforward way to deal with a disk graph is to construct the disk graph explicitly, and then run algorithms designed for general graphs. However, a disk graph might have complexity in the worst case even though it can be (implicitly) represented as disks. Therefore, it is natural to seek faster algorithms for a disk graph implicitly represented as its underlying set of disks. Besides the SSSP problem, many graph-theoretic problems have much more efficient solutions in disk graphs than in general graphs [1, 2, 4, 7, 10, 13, 15, 17].
Related work.
As the single-source shortest path problem is fundamental in computer science, there are numerous work on this problem and its variant for unit disk graphs [5, 6, 8, 9, 11, 14, 16, 20]. In the case of unweighted unit disk graphs where all edge weights are one, the SSSP problem can be solved in time, and this is optimal [6, 8]. For edge-weighted unit disk graphs, the best known exact algorithm for the SSSP problem takes time [5], and the best known -approximation algorithm takes time [20]. For general disk graphs, the best known exact algorithms for the unweighted and weighted SSSP problem takes and time, respectively [13, 15].
Another variant of the problem is the reverse shortest path problem, where the input is an edge-weighted graph , a start vertex, a target vertex, and a threshold value. The problem is to find a minimum value such that the length of the shortest path from the start vertex to the target vertex in is at most the threshold. Here, is the subgraph of consisting of edges whose weights are at most . The problem was considered in various metrics in the weighted and unweighted cases. The best-known algorithms for both weighted and unweighted unit disk graph metric take randomized time [13, 21]. In addition, the best-known algorithm for weighted disk graph metric takes randomized time [13].
Our results.
In this paper, we present two algorithms for the SSSP problem for edge-weighted disk graphs with vertices. The first algorithm runs in time, where is the maximum radius ratio of . The second algorithm runs in time. This improves the best-known algorithm for this problem running in time [13].
Model of computation.
In Section 3, our algorithm uses a compressed quadtree. To implement this efficiently, we need to extend the real RAM model [18] by an floor function that rounds a real number down to the next integer [12]. While the floor function is generally considered too powerful, it is widely regarded as reasonable for tasks such as finding the cell of a given level of the grid that contains a given point in constant time [12]. On the other hand, our algorithm in Section 2 operates within the standard real RAM model.
Preliminaries.
Throughout this paper, we let be a set of points in the plane, where each point has an associated radius , and be the edge-weighted disk graph of . We interchangeably denote as a point or as a vertex of if it is clear from the context. Also, we let be a source vertex of . We assume that for all , and thus in the case of bounded radius ratio, all radii must come from the range for a constant . The length of a path of is defined as the sum of the weights of the edges contained in the path. The distance between and is defined as the minimum length among all - paths of . For a vertex , we simply let denote the distance between and .
2 SSSP on Disk Graphs of Bounded Radius Ratio
In this section, we describe our algorithm for the SSSP problem on disk graphs. Given a set of points with associated radii in , our goal is to compute a shortest path tree from a specified source vertex in the edge-weighted disk graph of in time. More precisely, our goal is to compute and for all vertices such that , and is the predecessor of in the shortest - path.
2.1 Sketch of Our Algorithm
We review the well-known Dijkstra’s algorithm that computes a shortest path tree from a source vertex. Initially, the algorithm sets all dist-values to infinity except a source vertex, and sets . The algorithm sequentially applies the following steps until is empty.
-
(D1) Pick the vertex with smallest dist-value.
-
(D2) For all neighbors of , update .
-
(D3) Remove from .
In the worst case, Dijkstra’s algorithm takes quadratic time since a disk graph can have edges. In our algorithm, we simultaneously update the dist-values of several vertices by the Update subroutine that was introduced in [20]. For any two vertex set and of , does the following: For all ,
-
(U1) Compute among all s.t. is an edge of .
-
(U2) Update .
That is, the subroutine updates the dist-values of all vertices of using the dist-values of the vertices of . The subroutine gets input and from a hierarchical grid. For each integer , we use to denote a grid of level , which consists of axis-parallel square cells of diameter . Then we use to denote the union of grid cells of ’s. For a grid cell , we use to denote the center of , use to denote the diameter of , and use to denote the axis-parallel square of diameter centered at . We use to denote the set of grid cells of and which are contained in . We say a child cell of if is nested in . Throughout the paper, we assume that no points of lie on the boundary of any grid cell. We define two sets of vertices contained in as follows.
Intuitively, consists of vertices contained in with radii similar to while consists of vertices with radii smaller than that of . Note that forms a clique in . For a vertex in , we let be the (unique) cell such that contains .
Regular edge and Irregular edge.
Let be an edge of with . We call a regular edge if , and an irregular edge if . We can identify all edges of efficiently by using , and .
Lemma 1.
Let be a regular edge. Then . Symmetrically, .
Lemma 2.
Let be an edge and . There is a cell such that .
Basic strategy of [20].
We utilize the strategic adaptation of Dijkstra’s algorithm in a cell-by-cell manner with and . This strategy was used in [20] to design an efficient algorithm for the weighted SSSP problem on unit disk graphs. For concreteness, we describe the details of the strategy below. Let be the vertex with the smallest dist-value among all vertices not processed so far. As an invariant, we shall guarantee that all vertices of which have been processed have correct dist-values, and has a correct dist-value if its predecessor in the shortest - path has been processed. We want to process not only but also all vertices in simultaneously. However, notice that, at this moment, the vertices in do not necessarily have correct dist-values.
Thus, as a first step, we compute the correct dist-values for all vertices in . If the predecessor of a vertex in the shortest - path already has the correct dist-value, we can simply update the dist-values of by considering all edges whose one endpoint is in . However, it is possible that has not been processed yet so far and does not have the correct dist-value. Fortunately, even in this case, we can show that has a correct dist-value. To see this, let be the predecessor of in the shortest - path. Then cannot be an edge of the graph since otherwise is the predecessor of in the shortest - path. Therefore, . As , . Hence, . The last inequality follows since the concatenation of and the shortest - path is longer than the shortest - path. Now must have been processed since is the vertex with the smallest dist-value among all vertices not processed so far. Due to the invariant, must have the correct dist-value. Consequently, we can update the dist-values of all vertices of by applying where denotes the set of neighbors of in .
The second step is to transmit the correct dist-values of into their neighbors in order to satisfy the second invariant. Lastly, we remove from the graph.
Main obstacles and lazy update scheme.
The complexity of this strategy primarily depends on the cost of searching all neighbors of . This was not a big deal in [20], as in a unit disk graph, each cell interacts with only a constant number of other cells. In the case of disk graphs, however, a vertex with radius can be adjacent to vertices in for distinct grid cells . To avoid polynomial dependency on , we handle regular edges and irregular edges separately. More specifically, we can search all regular edges by considering for all by Lemma 1. Since consists of cells, we can avoid the polynomial dependency on through the appropriate use of the Update subroutine.
However, the same approach cannot be used to search all irregular edges as up to sets of may interact with in the worst case. We address this issue with a novel approach, which we call lazy update scheme. We say is a small neighbor of a vertex if is an irregular edge and . Furthermore, we say is a small neighbor of a cell if there is a vertex forming an irregular edge with and . In the basic strategy, we transmit the correct dist-value of to all neighbors whenever we process . In the lazy update scheme, we postpone the transmission to for all cells such that is a small neighbor of . We handle several postponed update requests at once at some point. More specifically, let be the set of small neighbors of whose dist-values are in the range . We transmit the dist-values of into right after all vertices of have been processed. Due to the following lemma, we can bound the number of lazy updates into for each cell , and this enables us to avoid the polynomial dependency on .
Lemma 3.
Let and be small neighbors of . Then .
However, this may cause an inconsistency issue during the first step. When we process the vertices of , now the first update does not transmit the dist-values of the small neighbors of . If a predecessor of in the shortest - path is a small neighbor of , it is possible that the lazy update has not occurred even though has already been processed. We show that this cannot happen using the following geometric lemma.
Lemma 4.
Let be the predecessor of in the shortest - path. Then unless and is a leaf in the shortest path tree.
By this lemma, . Subsequently, roughly speaking, the lazy update that transmits dist-values of into occurs in advance when we process the vertices of .
2.2 Algorithm
We present our algorithm for the SSSP problem on disk graphs with radius ratio . The goal is to compute for all . Initially, we set , the dist-value of , as infinity for all vertices other than a source vertex , and set . Eventually, the algorithm will modify into for all . In addition, for each nonempty for , we maintain a value initialized to . These alarm values will take care of the moment of the lazy update. We set by the set of points of that has not been processed yet.
Pre-processing.
We compute for all adjacent to in and set to . Furthermore, for each grid cell , let be the set of grid cells where contains a small neighbor of . For technical reasons, we compute a superset of which contains all cells with such that there is an edge between a vertex of and a vertex of . Furthermore, we set as an empty set where is the grid cell such that the source is contained in . We will use the information of to deal with the lazy update. Then the algorithm consists of several rounds. In each round, we check for all and for all . Subsequently, we find the minimum value among these values, and proceed depending on the type of . The algorithm terminates when becomes empty. We utilize Update subroutine for both cases.
Intuitively, if has correct dist-values and is the predecessor of in the shortest - path, then all such gets the correct dist-values after the subroutine Update. The rest of this section is devoted to giving detailed instructions on case studies of .
Case 1: for a vertex .
In this case, we first apply the subroutine . Interestingly, we will see later that after this, all vertices in have the correct dist-values. Then using the correct dist-values of , we update the dist-values of the neighbors of the vertices in . This is done by applying and setting for all with , where the former takes care of the neighbors of the vertices in connected by regular edges and the small neighbors of , and the latter takes care of the other neighbors. Finally, we remove from .
Case 2: for a grid cell .
In this case, we shall correct the dist-values of all such that the predecessor of is a small neighbor of . This is done by applying . After this, we reset to .
2.3 Correctness
In this section, we show that the algorithm correctly computes a shortest path tree. For a vertex , we use to denote the predecessor of in the shortest path tree. We shall maintain a simple invariant during the algorithm: for every . The following lemma is the simple corollary of Lemma 4.
Corollary 5.
Suppose the shortest - path contains an irregular edge and . Then unless and is a leaf on the shortest path tree.
Then we prove the key invariant of our algorithm.
Lemma 6.
The following statements hold during the execution of Algorithm 2.
-
(1)
At the onset of line 5, .
-
(2)
After line 5, if is not a leaf on the shortest path tree.
-
(3)
After line 12, if , , and .
Proof sketch..
We apply induction on the index of the round. For the base case, the first round of the algorithm is a round of Case 1 of , where is a source vertex. The shortest - path with is and due to the pre-processing.
Now we assume that Lemma 6 holds up to the -th round. Suppose the -th round performs line 5. First we show (1). Let be the closest vertex to along the shortest - path such that . Note that because all children of have correct-dist values due to the pre-processing. If , we are done. Otherwise, since . Then by induction hypothesis on the round which removes from , a child of satisfies unless is a small neighbor of . If is a small neighbor of , was at most after that round. Since , . Hence, due to Corollary 5. Thus, by induction hypothesis (3) on the round of . This contradicts the choice of .
Next we show (2). We may assume is not a source vertex . Let . We show that . If or is an edge of , we are done by the preprocessing. Hence, we may assume that exists and is not a source vertex . Note that the proof of (1) implicitly says that for any vertex with , at the onset of line 5. Hence, we are enough to consider the case that . Notice that is not an edge of since otherwise, is the predecessor of . Then , where the last inequality comes from . Hence, and therefore due to the choice of . Thus, by induction hypothesis on the round which removes from , unless is a small neighbor of and . If is a small neighbor of , is set to at most after that round. After a similar computation as we did in (1), we can derive using the facts that and Corollary 5. Now due to induction hypothesis (3).
Hence, for all cases, . Since is not a leaf on the shortest path tree, due to Corollary 5. The only problematic case occurs when is a small neighbor of and the lazy update from to has not occurred. In this case, due to induction hypothesis (3). Then leads to a contradiction. Finally, (3) is followed by (2) and the fact that due to the choice of .
Lemma 7.
Algorithm 2 returns a shortest path tree rooted at .
2.4 Time Complexity
In this section, we show that Algorithm 2 can be implemented in time. For convenience, we assume that the subroutine Update takes time (see the full version), and analyze the overall running time based on this assumption.
Lemma 8.
The subroutine Update takes time.
Pre-processing.
In the pre-processing step, we compute for all neighbors of , and for all grid cells . Here, denotes the set of cells such that contains a small neighbor of . The former part takes time by checking for all . We do not use the floor function on the real RAM model to implement the hierarchical grid.
Lemma 9.
One can compute a hierarchical grid , and and for all cells in time on the real RAM model.
Lemma 10.
If contains a small neighbor of , . Furthermore, one can compute for all cells in time.
Time complexity of all rounds of Case 1.
Let be the number of vertices involved in in the -th round of line 5-6. If -th round is a round of Case 2, we set to 0. The time complexity of this part is then . We show that each and appears in rounds. First, since we remove from after the round , each appears exactly once in the term . Suppose . Then is contained in axis-parallel square of diameter centered at and . Conversely, is contained in the axis-parallel square of diameter centered at . Therefore, the number of different with is for a fixed . Hence, each and appears rounds through the term . Note that each vertex is contained in one and for . Thus,
(1) |
Time complexity of all rounds of Case 2.
Let be the number of vertices involved in in the -th round of line 12. If -th round runs a round of Case 1, we set to 0. The time complexity of this part is then . Since always set to for some and by Lemma 3, each cell is referenced by line 11 times. Again, there are grid cells such that contains a fixed cell , and each is contained in one and sets. Thus, the total time complexity is
(2) |
Priority queue.
We maintain two priority queues, one of which stores vertex with priority , and the other queue stores cell with priority . Once the algorithm performs line 3, we peek an element with minimum priority for each queue, and then choose as the minimum value among them. The total cost of the queue operations is dominated by the total cost caused by subroutines.
Theorem 11.
There is an -time algorithm that solves the single-source shortest path problem on disk graphs with vertices and radius ratio .
3 SSSP on Disk Graphs of Arbitrary Radius Ratio
In this section, we extend the approach of Section 2 to devise an -time algorithm for the SSSP problem on disk graphs with arbitrary radius ratio. Basically, the term in Theorem 11 came from the total size of and , which depends on the height (=) of the hierarchical grid. In the case of an arbitrary radius ratio, we cannot bind the height of the grid. To resolve this, we follow the approach presented in [2]. More specifically, we use a compressed quadtree (See Section 3.1) instead of a hierarchical grid. The height of the compressed quadtree might be , which is still large. Hence, we use a heavy path decomposition (See Section 3.1) to compute vertical paths in the compressed quadtree, which we call canonical paths, such that every root-node path of the compressed quadtree can be uniquely represented by the concatenation of canonical paths. In this way, we can encode the edge information using near-linear time and space.
This approach has been applied to design efficient algorithms on disk graphs of arbitrary radius ratios, such as the dynamic connectivity problem [2] and the unweighted SSSP problem [15]. By integrating this approach with our lazy update scheme in a more sophisticated way, we can design an -time algorithm for the SSSP problem on weighted disk graphs with arbitrary radius ratios.
Throughout this section, we alternatively define the notions of , and regular/irregular edges. Let and be the integer constants.
Definition 12.
For a grid cell in ,
-
.
-
:= Axis-parallel square of diameter centered at .
-
:= .
Definition 13.
For an edge of with , is a regular edge if , and an irregular edge otherwise.
Lemma 14.
Let be a regular edge. Then .
3.1 Preliminaries: technical tools
In this section, we first briefly introduce technical items. Klost [15] implemented an efficient breadth-first search using these components. In contrast, our goal is to implement Dijkstra’s algorithm over weighted graphs, which requires more sophisticated update strategies. We conclude this section by outlining the modified lazy update scheme that plays the central role in our algorithm for arbitrary radius ratios in Section 3.2.
Compressed quadtree.
For an integer , let be a grid of level , which consists of axis-parallel square cells of diameter . Among all grid cells of , let be the grid cell of the smallest level that contains . A compressed quadtree is a rooted tree defined as follows. We start from as the root of the tree and iteratively expand the tree. More specifically, whenever we process , we stop the expansion if contains exactly one point of . Otherwise, we compute at most four cells of that are nested in , and contain at least one point of . If there is exactly one such child , we remove and connect to the parent node of . Then we move on to children of .
Lemma 15 ([12]).
In time, one can compute a compressed quadtree having nodes and height.
For our purpose, the compressed quadtree is extended to contain all grid cells of for all . It also takes an time to compute the extended tree [2].
Heavy path decomposition and canonical paths.
As the height of is , the direct use of Algorithm 2 is expensive: each vertex may be contained in grid cells, which was in Section 2. Our goal is to compute a path system in such that every root-node path of can be represented by the concatenation of paths in the path system. We say an edge is heavy if is the first child of in the order of children, where we give an order by the total number of nodes in the subtree rooted at among all children of . We say light otherwise. A heavy path of is the maximal path on that consists of only heavy edges. The heavy path decomposition is the collection of all heavy paths in .
Lemma 16 ([19]).
Let be the tree of nodes. Then,
-
1.
every root-leaf path of contains light edges,
-
2.
every node of lies on exactly one heavy path, and
-
3.
the heavy path decomposition can be computed in time.
Then we use the approach of [2] as a black box. That is, we define a set of canonical paths, such that every root-node path of can be uniquely represented by the concatenation of disjoint canonical paths. Also, each canonical path is a subpath of a heavy path, and each node of is contained in canonical paths. We can compute in time using standard data structures. See [2] for details.
Handling irregular edges.
We primarily follow the notion of a proxy graph as presented in [2, 15], with slight modifications to the notation for our purpose. For an irregular edge with , we call a small neighbor of , and a large-neighbor of . For a canonical path , we use to denote the lowest cell of . Also, we use and to denote the diameter of the lowest cell and the topmost cell of , respectively. We then define a set of congruent cones of radius , all sharing the same apex at . Let be the set of all pairs for all canonical paths and all cones . See Figure 2(a-b).
We say an irregular edge is redundant if . Due to Lemma 4, if a redundant edge appears on the shortest path tree, then one endpoint, say , is a leaf on the tree. Therefore, we can postpone the correction of until the last, as no shortest - path intersects . In fact, our algorithm handles these edges during post-processing.
For a pair , let be the radius of . For a vertex , recall that is a grid cell such that . Let be the smallest grid cell on the root- path in whose diameter is at least . We let be the set of consecutive canonical paths representing the root- path. We define three subsets of with respect to . Here, is the center point of .
(3) | ||||
(4) | ||||
(5) |
Intuitively, for any irregular edge , some encodes as and . Moreover, if is a non-redundant. Later, our algorithm runs Dijkstra’s algorithm in a cell-by-cell manner w.r.t. and .
Lemma 17.
Suppose is a small neighbor of . There exists a pair such that and . Moreover, if is non-redundant, .
Corollary 18 (Corollary of Lemma 4).
Suppose the shortest - path contains an irregular edge and is not a leaf. Then .
Lemma 19.
and .
Two-way lazy update scheme.
Recall that Algorithm 2 updates small neighbors of once it corrects the dist-values of , whereas it postpones the update to (informal) large neighbors of . In this section, we apply the lazy update scheme for both large and small neighbors of . The main reason is as follows. Due to Lemma 6-(2), all vertices of simultaneously get correct dist-values after the call of line 5. This property heavily relies on the geometric property of such that for any , . However, this property no longer holds for . More specifically, once we handle , there might be a vertex whose predecessor in the shortest - has not been processed, and therefore, we cannot get correct dist-values of at this point.
Hence, one might consider a lazy update scheme to resolve this issue: delay the transmission of dist-values of in the range for some function of until all dist-values smaller than have been processed. Unfortunately, this naive approach itself is not useful. Recall that for with , is in range and can be very large. Hence, we cannot partition the dist-values of into a constant number of ranges , and the number of updates from to might be , which leads to quadratic running time in total. We reduce the running time using the following geometric observation. See also Figure 3. Let .
Lemma 20.
Let , , , the shortest - path contains , and is an edge of . Then where is a predecessor of in the shortest - path.
Suppose we know the subset of whose dist-values have been corrected, and our algorithm will transmit dist-values of to right after all dist-values smaller than have been processed for some . Then, Lemma 20 guarantees that contains all vertices of whose radii are smaller than . Furthermore, after the lazy update, all vertices of adjacent to with will have correct dist-values. Hence, the following procedure works.
-
Step 1. Maintain a priority queue that stores with priority .
-
Step 2. Once we handle the lazy update caused by , we update dist-values of the vertices of which are adjacent to a vertex with .
-
Step 3. After the update, we remove the updated vertices from .
Recall that the running time of is time. Although there might calls of Update for , the total size of can be bounded by due to Step 3 and Lemma 19. Notice that always corresponds to a subset of , which starts as an empty set and grows as the algorithm progresses. Hence, we implement incremental data structures with near-linear construction time by carefully dynamizing Update subroutine, inspired by the spirit of [3].
Definition 21.
Let be the incremental data structure with respect to that supports the following operations:
-
Initialize: set ,
-
Insert(): add a vertex into together with a dist-value , and
-
Query: given a set of vertices, perform .
Lemma 22.
There is a data structure that supports insert operation time in total, and supports query operation on in time.
Remark.
We introduced an incremental data structure to handle the updates from to . However, due to a similar reason, the number of lazy updates from to might be . Fortunately, we can implement this direction of lazy update using solely Update subroutine carefully.
3.2 Algorithm
In this section, we present an -time algorithm for the SSSP problem on disk graphs of arbitrary radius ratio. Due to the lack of space, we mainly focus on the differences from Algorithm 2 in Section 2. During the pre-processing, we maintain two alarms , together with a priority queue for each pair . Furthermore, we compute the set (and of pairs where (and ) and has a neighbor in (and ) for each . In each round, we check for all and for all . Then we find the minimum value among them and proceed depending on the type of . The algorithm moves to the post-processing step when becomes empty. The algorithm utilizes the Update subroutine from Section 2.
Case 1: for a vertex .
After correcting the dist-values of except those are leaves on the shortest path tree, we update the dist-values of the neighbors of through one direct update and two-way lazy updates. This is done by executing subroutine , setting for every with , and inserting with the priority into and inserting into for every and every . Here, is the smallest radius of the vertex of forming an edge with . Intuitively, the subroutine takes care of the neighbors connected by regular edges, and and take care of large neighbors and small neighbors of the vertices of , respectively.
Case 2: for a pair .
In this case, we shall correct the dist-values of all whose predecessor is in with . This is done by applying where and are carefully computed subsets of and , respectively. See the exact computation of and its correctness in the full version.
Case 3: for a pair .
We shall correct the dist-values of all which are adjacent to with , where is the vertex stored in with minimum priority. This is done by the query operation on to . Here, denotes the set of vertices in such that (i) form an edge with with , and (ii) have not been considered in a preceding round of . After the update, we modify appropriately.
Post-processing.
In the post-processing step, we correct the dist-values for the remaining vertices. We execute Update for every pair in .
3.3 Correctness and Time Complexity
Lemma 23.
The correctness of Algorithm 3 mainly follows from the following lemma, which is a counterpart to Lemma 7 from Section 2. The following statements hold during the execution of Algorithm 3.
-
(1)
At the onset of line 5, unless is a leaf.
-
(2)
After line 5, if and is not a leaf.
-
(3)
After line 17, if , , and .
-
(4)
After line 20, let be the vertex in with minimum priority. Then if and is adjacent to with .
Lemma 24.
Algorithm 3 returns the shortest path tree rooted at .
Time Complexity.
The main bottleneck of Algorithm 3 comes from the incremental data structure Update-Inc. Due to Lemmas 19 and 22, we conclude the following.
Theorem 25.
There is an algorithm to solve the single-source shortest path problem on disk graphs with vertices in time.
References
- [1] Shinwoo An, Kyungjin Cho, and Eunjin Oh. Faster algorithms for cycle hitting problems on disk graphs. In Algorithms and Data Structures Symposium: 18th International Symposium (WADS 2023), pages 29–42, 2023. doi:10.1007/978-3-031-38906-1_3.
- [2] Alexander Baumann, Haim Kaplan, Katharina Klost, Kristin Knorr, Wolfgang Mulzer, Liam Roditty, and Paul Seiferth. Dynamic connectivity in disk graphs. Discrete & Computational Geometry, 71(1):214–277, 2024. doi:10.1007/S00454-023-00621-X.
- [3] Jon Louis Bentley and James B Saxe. Decomposable searching problems i. static-to-dynamic transformation. Journal of Algorithms, 1(4):301–358, 1980. doi:10.1016/0196-6774(80)90015-2.
- [4] Édouard Bonnet, Panos Giannopoulos, Eun Jung Kim, Pawel Rzazewski, and Florian Sikora. QPTAS and subexponential algorithm for maximum clique on disk graphs. In 34th International Symposium on Computational Geometry (SoCG 2018), pages 11–14, 2018.
- [5] Bruce W Brewer and Haitao Wang. An improved algorithm for shortest paths in weighted unit-disk graphs. arXiv preprint arXiv:2407.03176, 2024. doi:10.48550/arXiv.2407.03176.
- [6] Sergio Cabello and Miha Jejčič. Shortest paths in intersection graphs of unit disks. Computational Geometry, 48(4):360–367, 2015. doi:10.1016/J.COMGEO.2014.12.003.
- [7] Sergio Cabello and Wolfgang Mulzer. Minimum cuts in geometric intersection graphs. Computational Geometry, 94:101720, 2021. doi:10.1016/J.COMGEO.2020.101720.
- [8] Timothy M Chan and Dimitrios Skrepetos. All-pairs shortest paths in unit-disk graphs in slightly subquadratic time. In Proceedings of the 27th International Symposium on Algorithms and Computation (ISAAC 2016), pages 24:1–24:13, 2016. doi:10.4230/LIPICS.ISAAC.2016.24.
- [9] Timothy M Chan and Dimitrios Skrepetos. Approximate shortest paths and distance oracles in weighted unit-disk graphs. Journal of Computational Geometry, 10(2):3–20, 2019. doi:10.20382/JOCG.V10I2A2.
- [10] Jared Espenant, J Mark Keil, and Debajyoti Mondal. Finding a maximum clique in a disk graph. In 39th International Symposium on Computational Geometry (SoCG 2023), volume 258, page 30, 2023.
- [11] Jie Gao and Li Zhang. Well-separated pair decomposition for the unit-disk graph metric and its applications. In Proceedings of the thirty-fifth annual ACM symposium on Theory of computing (STOC 2003), pages 483–492, 2003. doi:10.1145/780542.780613.
- [12] Sariel Har-Peled. Geometric approximation algorithms, volume 173 of Mathematical Surveys and Monographs. American Mathematical Society, 2011.
- [13] Haim Kaplan, Matthew J Katz, Rachel Saban, and Micha Sharir. The unweighted and weighted reverse shortest path problem for disk graphs. In the proceedings of the 31st Annual European Symposium on Algorithms (ESA 2023), pages 67:1–67:14, 2023. doi:10.4230/LIPICS.ESA.2023.67.
- [14] Haim Kaplan, Wolfgang Mulzer, Liam Roditty, Paul Seiferth, and Micha Sharir. Dynamic planar voronoi diagrams for general distance functions and their algorithmic applications. In Proceedings of the Twenty-Eighth Annual ACM-SIAM Symposium on Discrete Algorithms (SODA 2017), pages 2495–2504, 2017. doi:10.1137/1.9781611974782.165.
- [15] Katharina Klost. An algorithmic framework for the single source shortest path problem with applications to disk graphs. Computational Geometry, 111:101979, 2023. doi:10.1016/J.COMGEO.2022.101979.
- [16] Chih-Hung Liu. Nearly optimal planar nearest neighbors queries under general distance functions. SIAM Journal on Computing, 51(3):723–765, 2022.
- [17] Daniel Lokshtanov, Fahad Panolan, Saket Saurabh, Jie Xue, and Meirav Zehavi. A framework for approximation schemes on disk graphs. In Proceedings of the 2023 Annual ACM-SIAM Symposium on Discrete Algorithms (SODA 2023), pages 2228–2241, 2023. doi:10.1137/1.9781611977554.CH84.
- [18] Franco P Preparata and Michael I Shamos. Computational geometry: an introduction. Springer Science & Business Media, 2012.
- [19] Daniel D Sleator and Robert Endre Tarjan. A data structure for dynamic trees. In Proceedings of the thirteenth annual ACM symposium on Theory of computing (STOC 1981), pages 114–122, 1981.
- [20] Haitao Wang and Jie Xue. Near-optimal algorithms for shortest paths in weighted unit-disk graphs. Discrete & Computational Geometry, 64(4):1141–1166, 2020. doi:10.1007/S00454-020-00219-7.
- [21] Haitao Wang and Yiming Zhao. Improved algorithms for distance selection and related problems. In 31st Annual European Symposium on Algorithms (ESA 2023), volume 274, page 101, 2023. doi:10.4230/LIPIcs.ESA.2023.101.