Repeated depth-first search: Difference between revisions
No edit summary |
|||
Line 5: | Line 5: | ||
'''Type of algorithm:''' loop | '''Type of algorithm:''' loop | ||
'''Additional output:''' the same as for [[Depth-first search|DFS]] with one modification: Instead of an arborescence, the algorithm returns a [[Basic graph definitions#Forests, trees, branchings, arborescences|branching]] that is a [[Basic graph definitions#Subgraphs| | '''Additional output:''' the same as for [[Depth-first search|DFS]] with one modification: Instead of an arborescence, the algorithm returns a [[Basic graph definitions#Forests, trees, branchings, arborescences|branching]] that is a [[Basic graph definitions#Subgraphs|spanning subgraph]] of <math>G</math> (cf. ). | ||
'''Specific characteristic:''' | '''Specific characteristic:''' |
Revision as of 07:26, 3 November 2014
General information
Algorithmic problem: Exhaustive graph traversal
Type of algorithm: loop
Additional output: the same as for DFS with one modification: Instead of an arborescence, the algorithm returns a branching that is a spanning subgraph of [math]\displaystyle{ G }[/math] (cf. ).
Specific characteristic: Let [math]\displaystyle{ v,w\in V }[/math] such that [math]\displaystyle{ v }[/math] is seen before [math]\displaystyle{ w }[/math]. If there is a path from [math]\displaystyle{ v }[/math] to [math]\displaystyle{ w }[/math], [math]\displaystyle{ w }[/math] is finished prior to [math]\displaystyle{ v }[/math] (cf. DFS).
Abstract View
While there are nodes not yet seen:
- Select a start node [math]\displaystyle{ s }[/math] from the unseen nodes.
- Apply a DFS starting at [math]\displaystyle{ s }[/math], second type of output order.
Correctness
Obviously, all nodes are finished eventually. For two nodes [math]\displaystyle{ v,w\in V }[/math] that are finished in the same DFS, the specific characteristic follows from the fact that DFS fulfills it. So assume [math]\displaystyle{ v }[/math] is seen in an earlier DFS than [math]\displaystyle{ w }[/math]. Since [math]\displaystyle{ v }[/math] is also earlier finished than [math]\displaystyle{ w }[/math], the specific characteristic is fulfilled for [math]\displaystyle{ v }[/math] and [math]\displaystyle{ w }[/math] unless there is a path from [math]\displaystyle{ v }[/math] to [math]\displaystyle{ w }[/math]. However, if such a path existed, [math]\displaystyle{ w }[/math] had been seen in the same DFS as [math]\displaystyle{ v }[/math].
Complexity
Statement: The asymptotic complexity is in [math]\displaystyle{ \Theta(|V|+|A|) }[/math].
Proof: Follows immediately from the linear asymptotic complexity of DFS and the fact that each node and each arc is touched in only one DFS.