Graph

Lemma 1

Let \(G = (V, E)\) be a directed or undirected graph, and let \(s \in V\) be an arbitrary vertex. Then for any edge \((u, v) \in E\),\( \delta (s, v) \leq \delta (s, u) + 1\).

Lemma 2

Let \(G = (V, E)\) be a directed or undirected graph, and suppose that BFS is run on \(G\) from a given source vertex \(s \in V\). Then upon termination for each vertex \(s \in V\), the value \(v.d\) computed by BFS satisfies \(v.d \geq \delta (s, v)\).

Lemma 3

Suppose that during the execution of BFS on a graph \(G = (V, E)\), the queue \(Q\) contains the vertices \(\langle v_{1}, v_{2}, \dots, v_{r} \rangle\), where \(v_{1}\) is the head of \(Q\) and \(v_{r}\) is the tail. Then \(v_{r}.d \leq v_{1}.d + 1\) and \(v_{i}.d \leq v_{i+1}.d\) for \(i = 1, 2, \dots, r-1\)

Corollary 4

Suppose that vertices \(v_{i}\) and \(v_{j}\) are enqueued during the execution of BFS, and that \(v_{i}\) is enqueued before \(v_{j}\). Then \(v_{i}.d \leq v_{j}.d\) at the time \(v_{j}\) is enqueued.

Let \(G = (V, E)\) be a directed or undirected graph, and suppose that BFS is run on \(G\) from a given vertex \(s \in V\). Then, during its execution, BFS discovrs every vertex \(v \in V\) that is reachable form the source \(s\), and upon termination, \(v.d = \delta (s, v)\) for all \(v \in V\). Moreover, for any vertex \(v \ne s\) that is reachable from \(s\), one of the shortest paths from \(s\) to \(v\) is a shortest path from \(s\) to \(v.\pi\) followed by the edge \(v.\pi, v\).

Lemma 6

When applied to a directed or undirected graph \(G = (V, E)\), procedure BFS constructs \(\pi\) so that the predecessor subgraph \(G_{\pi} = (V_{\pi}, E_{\pi})\) is a breadth-first tree.

Theorem 7 (Parenthesis theorem)

In any depth-first search of a (directed or undirected) graph \(G = (V, E)\), for any two vertices \(u\) and \(v\), exactly one of the following three conditions holds:

  • the intervals \([u.d, u.f]\) and \([v.d, v.f]\) are entirely disjoint and neither \(u\) nor \(v\) is a descendant of the other in the depth-first forest.
  • the interval \([u.d, u.f]\) is contained entirely within the interval \([v.d, v.f]\), and \(u\) is a descendant of \(v\) in a depth-first tree, or
  • the interval \([v.d, v.f]\) is contained entirely within the interval \([u.d, u.f]\), and \(v\) is a descendant of \(u\) in a depth-first tree.

Corollary 8 (Nesting of descendants' interval)

Vertex \(v\) is a proper descendant of vertex \(u\) in the depth-first forest for a (directed or undirected) graph \(G\) if and only if \(u.d < v.d < v.f < u.f\).

Theorem 9 (White-path theorem)

In a depth-first forest of a (directed or undirected) graph \(G = (V, E)\), vertex \(v\) is a descendant of vertex \(u\) if and only if at the time \(u.d\) that the search discovers \(u\), there is a path from \(u\)to \(v\) consisting entirely of white vertices.

Theorem 10

In a depth-first search of undirected graph \(G\), every edge of \(G\) is either a tree edge or a back edge.

Topological sort

Lemma 11

A directed graph \(G\) is acyclic if and only if a depth-first search of \(G\) yields no back edges.

Theorem 12

TOPOLOGICAL-SORT produces a topological sort of the directed acyclic graph provided as its input.

Strongly connected components

Lemma 13

Let \(C\) and \(C^{\prime}\) be distinct strongly connected components in a directed graph \(G = (V, E)\), let \(u, v \in C\), let \(u^{\prime}, v^{\prime} \in C^{\prime}\), then suppose that \(G\) contains a path \(u \leadsto u^{\prime}\). Then \(G\) also cannot contain a path \(v^{\prime} \leadsto v\).

Lemma 14

Let \(C\) and \(C^{\prime}\) be distinct strongly connected components in directed graph \(G = (V, E)\). Suppose that there is an edge \((u, v) \in E\), where \(u \in C\) and \(v \in C^{\prime}\). Then \(f(C) > f(C^{\prime})\).

Corollary 15

Let \(C\) and \(C^{\prime}\) be distinct strongly connected components in directed graph \(G = (V, E)\). Suppose that there is an edge \((u, v) \in E^{T}\), where \(u \in C\) and \(v \in C^{\prime}\). Then \(f(C) < f(C^{\prime}\).

Theorem 16

The STRONGLY-CONNECTED-COMPONENTS procedure correctly computes the strongly connected components of the directed graph provided as its input.

References

  1. Introduction to Algorithms, MIT Press

Subscribe to अमन Mehara

Don’t miss out on the latest issues. Sign up now to get access to the library of members-only issues.
jamie@example.com
Subscribe