Wednesday, October 3, 2018

What is Depth-First Search and Kinds of edges ( Tree edge ,Back edge ,Cross edge ,Forward edge)


•      Depth-first search is another strategy for exploring a graph
–     Explore “deeper” in the graph whenever possible
–     Edges are explored out of the most recently discovered vertex v that still has unexplored edges
–     When all of v’s edges have been explored, backtrack to the vertex from which v was discovered
•      Vertices initially colored white
•      Then colored gray when discovered
•      Then black when finished




What does u->d represent? 

What does u->f represent? 

Will all vertices eventually be colored black?


DFS: Kinds of edges
•       DFS introduces an important distinction among edges in the original graph:
–      Tree edge: encounter new (white) vertex
–      Back edge: from descendant to ancestor
–      Cross edge: all others
–      Forward edge: from ancestor to descendant
•       Not a tree edge, though
•       From grey node to black node
•       Note: tree & back edges are important; most algorithms don’t distinguish forward & cross






DFS And Graph Cycles
•       An undirected graph is acyclic if a DFS yields no back edges
–      If acyclic, no back edges (because a back edge implies a cycle
–      If no back edges, acyclic
•       No back edges implies only tree edges (Why?)
•       Only tree edges implies we have a tree or a forest
•       Which by definition is acyclic
•       Thus, can run DFS to find whether a graph has a cycle
 



No comments:

Post a Comment