Network Science Depth-First Search Joao Meidanis University of - - PowerPoint PPT Presentation
Network Science Depth-First Search Joao Meidanis University of - - PowerPoint PPT Presentation
Network Science Depth-First Search Joao Meidanis University of Campinas, Brazil March 24, 2020 Summary Depth-First Search (DFS) Algorithm 1 Example 2 Applications 3 Meidanis (Unicamp) Network Science March 24, 2020 2 / 24 Depth-First
Summary
1
Depth-First Search (DFS) Algorithm
2
Example
3
Applications
Meidanis (Unicamp) Network Science March 24, 2020 2 / 24
Depth-First Search (DFS) Algorithm
Meidanis (Unicamp) Network Science March 24, 2020 3 / 24
Depth-First Search
Needs: adjacency lists Provides: edge classification cycle detection topological sort
Meidanis (Unicamp) Network Science March 24, 2020 4 / 24
Algorithm — Core
function DFS-Visit(u, Adj) for v in Adj[u] do if v not in parent then parent[v] ← u DFS-Visit(v, Adj) end if end for end function
Meidanis (Unicamp) Network Science March 24, 2020 5 / 24
Algorithm — Main
function DFS(V, Adj) parent ← {} for v in V do if v not in parent then parent[v] ← None DFS-Visit(v, Adj) end if end for end function
Meidanis (Unicamp) Network Science March 24, 2020 6 / 24
Example
Meidanis (Unicamp) Network Science March 24, 2020 7 / 24
Example: directed graph a b c d e f g
Meidanis (Unicamp) Network Science March 24, 2020 8 / 24
Example: directed graph a b c d e f g
Meidanis (Unicamp) Network Science March 24, 2020 9 / 24
Example: directed graph a b c d e f g
Meidanis (Unicamp) Network Science March 24, 2020 10 / 24
Example: directed graph a b c d e f g
Meidanis (Unicamp) Network Science March 24, 2020 11 / 24
Example: directed graph a b c d e f g
Meidanis (Unicamp) Network Science March 24, 2020 12 / 24
Example: directed graph a b c d e f g
Meidanis (Unicamp) Network Science March 24, 2020 13 / 24
Example: directed graph a b c d e f g
Meidanis (Unicamp) Network Science March 24, 2020 14 / 24
Example: directed graph a b c d e f g
Meidanis (Unicamp) Network Science March 24, 2020 15 / 24
Example: directed graph a b c d e f g
Meidanis (Unicamp) Network Science March 24, 2020 16 / 24
Example: directed graph a b c d e f g
Meidanis (Unicamp) Network Science March 24, 2020 17 / 24
Example: directed graph a b c d e f g
Running time O(V + E) linear time
Meidanis (Unicamp) Network Science March 24, 2020 18 / 24
Applications
Meidanis (Unicamp) Network Science March 24, 2020 19 / 24
Edge classification
Depends on DFS itself, not just graph Types of edges: tree edges forward edges backward edges cross edges
Meidanis (Unicamp) Network Science March 24, 2020 20 / 24
Algorithm additions
Starting and ending times
useful to classify edges
forward edges: u → v with u v backward edges: u → v with u v cross edges: u → v with u v impossible:
Meidanis (Unicamp) Network Science March 24, 2020 21 / 24
Undirected graph
no forward edges no cross edges
Meidanis (Unicamp) Network Science March 24, 2020 22 / 24
Cycle detection
Graph has a cycle ⇐ ⇒ DFS has a backward edge
Meidanis (Unicamp) Network Science March 24, 2020 23 / 24
Topological sorting
Premises: Acyclic graphs Tasks that depend on one another Results: Topological sort: Safe order for the tasks DFS: reverse order of finishing times
Meidanis (Unicamp) Network Science March 24, 2020 24 / 24
Cycle detection
DFS has a backward edge = ⇒ Graph has a cycle backward edge: u → v with u v
a b c d e f g
u starts while v active = ⇒ there is a path from v to u
Meidanis (Unicamp) Network Science March 24, 2020 25 / 24
Cycle detection
Graph has a cycle = ⇒ DFS has a backward edge
vk v0 v1 v2 v3
v0: first visited vertex in cycle v1, v2, v3, . . . , vk: start after v0 v1, v2, v3, . . . , vk: start before v0 finishes Therefore, v0 vk and vk → v0 is a backward edge
Meidanis (Unicamp) Network Science March 24, 2020 26 / 24
Topological sorting
Example: getting dressed socks shoes trousers belt shirt underwear socks → shoes underwear → trousers shirt → trousers trousers → belt trousers → shoes trousers socks shoes belt underwear shirt
Meidanis (Unicamp) Network Science March 24, 2020 27 / 24
Topological sorting
Example: getting dressed trousers socks shoes belt underwear shirt shoes, socks, belt, trousers, underwear, shirt
✛
belt, shoes, trousers, shirt, socks, underwear
✛
Meidanis (Unicamp) Network Science March 24, 2020 28 / 24