Differences between revisions 1 and 2
Revision 1 as of 2004-10-19 22:32:35
Size: 1526
Editor: yakko
Comment:
Revision 2 as of 2004-10-19 22:34:20
Size: 1539
Editor: yakko
Comment:
Deletions are marked like this. Additions are marked like this.
Line 29: Line 29:
PROOF: Our inductive hypothesis is '''Proof''': Our inductive hypothesis is
Line 44: Line 44:
 d[v] = d[u]+1         d[v] = d[u]+1

BFS

BFS uses a coloring scheme and queue to search nodes in a graph. The algorithm works like this: Give a Graph G and a starting node s.

Algorithm

  • 1 Color all the nodes white

    1 Set the distance for each node u to be d[u]= ∞ 1 Set the parent of each node u to be [u]=nil 1 Color s grey 1 Enqueue s → Q 1 while Q is not empty 1 u=dequeue(Q) 1 find each white neighbor v of u do 1 d[v]=d[u]+1 1 [v]=u 1 enqueue(v) 1 color[u]=black

Properties

  • Running time for BFS is O(V+E)

  • BFS finds only those vertices that are reachable from s.
  • The graph created from a BFS has no cycles

Theorem: The BFS values stored in d[u] give the length of the shortest path from s->u.

Proof: Our inductive hypothesis is

  • d[v]=(s,v) for all v ∈ V

We can prove this based on the number of equeue operations and the assignment of d[v]=d[u]+1 in line 9 above. Let (s,v) be the shortest path from s→v. The base case is d[s]=0=(s,s).

For the inductive step, consider a white vertex v that is discovered during the search from a vertex u. The inductive hypothesis impleys that

  • d[u]=(s,u)

From the assignment in line 9 we have

  • d[v] = d[u]+1
    • = (s,u)+1 = (s,v)

since v is never enqueued again and hence d[v] never changes again, the inductive hypothesis is maintained. Thus we conclude that BFS finds the shortest path from s->v, for v∈V.

BreadthFirstSearch (last edited 2004-10-19 22:34:20 by yakko)