A fault-tolerant structure for a network is required to continue functioning following the failure of some of the network's edges or vertices. This paper considers breadth-first search (BFS) spanning trees, and addresses the problem of designing a sparse fault-tolerant BFS tree, or FT-BFS tree for short, namely, a sparse subgraph T of the given network G such that subsequent to the failure of a single edge or vertex, the surviving part T' of T still contains a BFS spanning tree for (the surviving part of) G. For a source node s, a target node t and an edge e ∈ G, the shortest s?t path P_(s,t,e) that does not go through e is known as a replacement path. Thus, our FT-BFS tree contains the collection of all replacement paths P_(s,t,e) for every t ∈ V (G) and every failed edge e ∈ E(G). Our main results are as follows. We present an algorithm that for every n-vertex graph G and source node s constructs a (single edge failure) FT-BFS tree rooted at s with O(n·min{Depth(s),~(1/2)n}) edges, where Depth(s) is the depth of the BFS tree rooted at s. This result is complemented by a matching lower bound, showing that there exist nvertex graphs with a source node s for which any edge (or vertex) FT-BFS tree rooted at s has Ω(n3/2) edges. We then consider fault-tolerant multisource BFS trees, or FT-MBFS trees for short, aiming to provide (following a failure) a BFS tree rooted at each source s ∈ S for some subset of sources S ? V. Again, tight bounds are provided, showing that there exists a poly-time algorithm that for every n-vertex graph and source set S ? V of size σ constructs a (single failure) FT-MBFS tree T ?(S) from each source si ∈ S, with O(~(1/2)σ · n~(3/2)) edges, and on the other hand there exist n-vertex graphs with source sets S ? V of cardinality σ, on which any FT-MBFS tree from S has Ω(~(1/2)σ · n~(3/2)) edges. Finally, we propose an O(log n) approximation algorithm for constructing FT-BFS and FT-MBFS structures. The latter is complemented by a hardness result stating that there exists no Ω(log n) approximation algorithm for these problems under standard complexity assumptions. In comparison with previous constructions our algorithm is deterministic and may improve the number of edges by a factor of up to ~(1/2)n for some instances. All our algorithms can be extended to deal with one vertex failure as well, with the same performance.
展开▼