Network Science Depth-First Search Joao Meidanis University of - - PowerPoint PPT Presentation

network science
SMART_READER_LITE
LIVE PREVIEW

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


slide-1
SLIDE 1

Network Science

Depth-First Search Joao Meidanis

University of Campinas, Brazil

March 24, 2020

slide-2
SLIDE 2

Summary

1

Depth-First Search (DFS) Algorithm

2

Example

3

Applications

Meidanis (Unicamp) Network Science March 24, 2020 2 / 24

slide-3
SLIDE 3

Depth-First Search (DFS) Algorithm

Meidanis (Unicamp) Network Science March 24, 2020 3 / 24

slide-4
SLIDE 4

Depth-First Search

Needs: adjacency lists Provides: edge classification cycle detection topological sort

Meidanis (Unicamp) Network Science March 24, 2020 4 / 24

slide-5
SLIDE 5

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

slide-6
SLIDE 6

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

slide-7
SLIDE 7

Example

Meidanis (Unicamp) Network Science March 24, 2020 7 / 24

slide-8
SLIDE 8

Example: directed graph a b c d e f g

Meidanis (Unicamp) Network Science March 24, 2020 8 / 24

slide-9
SLIDE 9

Example: directed graph a b c d e f g

Meidanis (Unicamp) Network Science March 24, 2020 9 / 24

slide-10
SLIDE 10

Example: directed graph a b c d e f g

Meidanis (Unicamp) Network Science March 24, 2020 10 / 24

slide-11
SLIDE 11

Example: directed graph a b c d e f g

Meidanis (Unicamp) Network Science March 24, 2020 11 / 24

slide-12
SLIDE 12

Example: directed graph a b c d e f g

Meidanis (Unicamp) Network Science March 24, 2020 12 / 24

slide-13
SLIDE 13

Example: directed graph a b c d e f g

Meidanis (Unicamp) Network Science March 24, 2020 13 / 24

slide-14
SLIDE 14

Example: directed graph a b c d e f g

Meidanis (Unicamp) Network Science March 24, 2020 14 / 24

slide-15
SLIDE 15

Example: directed graph a b c d e f g

Meidanis (Unicamp) Network Science March 24, 2020 15 / 24

slide-16
SLIDE 16

Example: directed graph a b c d e f g

Meidanis (Unicamp) Network Science March 24, 2020 16 / 24

slide-17
SLIDE 17

Example: directed graph a b c d e f g

Meidanis (Unicamp) Network Science March 24, 2020 17 / 24

slide-18
SLIDE 18

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

slide-19
SLIDE 19

Applications

Meidanis (Unicamp) Network Science March 24, 2020 19 / 24

slide-20
SLIDE 20

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

slide-21
SLIDE 21

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

slide-22
SLIDE 22

Undirected graph

no forward edges no cross edges

Meidanis (Unicamp) Network Science March 24, 2020 22 / 24

slide-23
SLIDE 23

Cycle detection

Graph has a cycle ⇐ ⇒ DFS has a backward edge

Meidanis (Unicamp) Network Science March 24, 2020 23 / 24

slide-24
SLIDE 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

slide-25
SLIDE 25

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

slide-26
SLIDE 26

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

slide-27
SLIDE 27

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

slide-28
SLIDE 28

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