Dynamic Trees:Reachability Trees
Reachability Trees
In this section we consider a tree data structure that has been widely used to solve dynamic path problems on directed graphs.
The first appearance of this tool dates back to 1981, when Even and Shiloach showed how to maintain a breadth-first tree of an undirected graph under any sequence of edge deletions [5]; they used this as a kernel for decremental connectivity on undirected graphs. Later on, Henzinger and King [10] showed how to adapt this data structure to fully dynamic transitive closure in directed graphs. King [12] designed an extension of this tree data structure to weighted directed graphs for solving fully dynamic transitive closure (see Section 36.6.1) and all pairs shortest paths (see Section 36.7.1).
In the unweighted directed version, the goal is to maintain information about breadth- first search (BFS) on a directed graph G undergoing deletions of edges. In particular, in the context of dynamic path problems, we are interested in maintaining BFS trees of depth up to d, with d ≤ n. Given a directed graph G = (V, E) and a vertex r ∈ V , we would like to support any intermixed sequence of the following operations:
Delete(x, y): delete edge (x, y) from G.
Level(u): return the level of vertex u in the BFS tree of depth d rooted at r (return +∞ if u is not reachable from r within distance d).
In [12] it is shown how to maintain efficiently the BFS levels, supporting any Level operation in constant time and any sequence of Delete operations in O(md) overall time:
LEMMA 35.2 (King [12]) Maintaining BFS levels up to depth d from a given root requires O(md) time in the worst case throughout any sequence of edge deletions in a directed graph with m initial edges.
Lemma 35.2 implies that maintaining BFS levels requires d times the time needed for constructing them. Since d ≤ n, we obtain a total bound of O(mn) if there are no limits on the depth of the BFS levels.
As it was shown in [10, 12], it is possible to extend the BFS data structure presented in this section to deal with weighted directed graphs. In this case, a shortest path tree is maintained in place of BFS levels: after each edge deletion or edge weight increase, the tree is reconnected by essentially mimicking Dijkstra’s algorithm rather than BFS. Details can be found in [12].
Comments
Post a Comment