Advanced DFS, BFS, Graph Modeling - PowerPoint PPT Presentation

1 / 63
About This Presentation
Title:

Advanced DFS, BFS, Graph Modeling

Description:

If the graph has more then one vertex that has indegree 0, add a vertice to ... A vertex is in the form (position, used) The vertices are divided into two groups ... – PowerPoint PPT presentation

Number of Views:154
Avg rating:3.0/5.0
Slides: 64
Provided by: hkoi
Category:
Tags: bfs | dfs | advanced | graph | modeling

less

Transcript and Presenter's Notes

Title: Advanced DFS, BFS, Graph Modeling


1
Advanced DFS, BFS, Graph Modeling
  • 25/2/2006

2
Introduction
  • Depth-first search (DFS)
  • Breadth-first search (BFS)
  • Graph Modeling
  • Model a graph from a problem, ie. transform a
    problem into a graph problem

3
What is a graph?
  • A set of vertices and edges

4
Trees and related terms
5
What is a tree?
  • A tree is an undirected simple graph G that
    satisfies any of the following equivalent
    conditions
  • G is connected and has no simple cycles.
  • G has no simple cycles and, if any edge is added
    to G, then a simple cycle is formed.
  • G is connected and, if any edge is removed from
    G, then it is not connected anymore.
  • Any two vertices in G can be connected by a
    unique simple path.
  • G is connected and has n - 1 edges.
  • G has no simple cycles and has n - 1 edges.

6
Graph Traversal
  • Given a graph
  • Goal visit all (or some) vertices and edges of
    the graph using some strategy (the order of visit
    is systematic)
  • DFS, BFS are examples of graph traversal
    algorithms
  • Some shortest path algorithms and spanning tree
    algorithms have specific visit order

7
Idea of DFS and BFS
  • This is a brief idea of DFS and BFS
  • DFS continue visiting next vertex whenever there
    is a road, go back if no road (ie. visit to the
    depth of current path)
  • Example a human want to visit a place, but do
    not know the path
  • BFS go through all the adjacent vertices before
    going further (ie. spread among next vertices)
  • Example set a house on fire, the fire will
    spread through the house

8
DFS (pseudo code)
  • DFS (vertex u)
  • mark u as visited
  • for each vertex v directly reachable from u
  • if v is unvisited
  • DFS (v)
  • Initially all vertices are marked as unvisited

9
DFS (Demonstration)
10
Advanced DFS
  • Apart from just visiting the vertices, DFS can
    also provide us with valuable information
  • DFS can be enhanced by introducing
  • birth time and death time of a vertex
  • birth time when the vertex is first visited
  • death time when we retreat from the vertex
  • DFS tree
  • parent of a vertex

11
DFS spanning tree / forest
  • A rooted tree
  • The root is the start vertex
  • If v is first visited from u, then u is the
    parent of v in the DFS tree
  • Edges are those in forward direction of DFS, ie.
    when visiting vertices that are not visited
    before
  • If some vertices are not reachable from the start
    vertex, those vertices will form other spanning
    trees (1 or more)
  • The collection of the trees are called forest

12
DFS (pseudo code)
  • DFS (vertex u)
  • mark u as visited
  • time ? time1 birthutime
  • for each vertex v directly reachable from u
  • if v is unvisited
  • parentvu
  • DFS (v)
  • time ? time1 deathutime

13
DFS forest (Demonstration)
A B C D E F G H
birth
death
parent
1
2
3
13
10
4
14
6
12
9
8
16
11
5
15
7
-
A
B
-
A
C
D
C
14
Classification of edges
  • Tree edge
  • Forward edge
  • Back edge
  • Cross edge
  • Question which type of edges is always absent in
    an undirected graph?

15
Determination of edge types
  • How to determine the type of an arbitrary edge
    (u, v) after DFS?
  • Tree edge
  • parent v u
  • Forward edge
  • not a tree edge and
  • birth v gt birth u and
  • death v lt death u
  • How about back edge and cross edge?

16
Determination of edge types
Tree edge Forward Edge Back Edge Cross Edge
parent v u not a tree edge birthv gt birthu deathv lt deathu birthv lt birthu deathv gt deathu birthv lt birthu deathv lt deathu
17
Applications of DFS Forests
  • Topological sorting (Tsort)
  • Strongly-connected components (SCC)
  • Some more advanced algorithms

18
Example Tsort
  • Topological order A numbering of the vertices of
    a directed acyclic graph such that every edge
    from a vertex numbered i to a vertex numbered j
    satisfies iltj
  • Tsort Number the vertices in topological order

3
6
1
7
2
5
4
19
Tsort Algorithm
  • If the graph has more then one vertex that has
    indegree 0, add a vertice to connect to all
    indegree-0 vertices
  • Let the indegree 0 vertice be s
  • Use s as start vertice, and compute the DFS
    forest
  • The death time of the vertices represent the
    reverse of topological order

20
Tsort (Demonstration)
S A B C D E F G
birth
death
1
2
3
4
5
8
12
13
6
7
9
10
11
14
15
16
A
B
C
G
S
D
F
E
G C F B A E D
? D E A B F C G
21
Example SCC
  • A graph is strongly-connected if
  • for any pair of vertices u and v, one can go from
    u to v and from v to u.
  • Informally speaking, an SCC of a graph is a
    subset of vertices that
  • forms a strongly-connected subgraph
  • does not form a strongly-connected subgraph with
    the addition of any new vertex

22
SCC (Illustration)
23
SCC (Algorithm)
  • Compute the DFS forest of the graph G to get the
    death time of the vertices
  • Reverse all edges in G to form G
  • Compute a DFS forest of G, but always choose the
    vertex with the latest death time when choosing
    the root for a new tree
  • The SCCs of G are the DFS trees in the DFS forest
    of G

24
SCC (Demonstration)
A B C D E F G H
birth
death
parent
1
2
3
13
10
4
14
6
12
9
8
16
11
5
15
7
-
A
B
-
A
C
D
C
E
F
A
E
B
H
D
A
D
G
F
B
C
C
G
H
25
SCC (Demonstration)
26
DFS Summary
  • DFS spanning tree / forest
  • We can use birth time and death time in DFS
    spanning tree to do varies things, such as Tsort,
    SCC
  • Notice that in the previous slides, we related
    birth time and death time. But in the discussed
    applications, birth time and death time can be
    independent, ie. birth time and death time can
    use different time counter

27
Breadth-first search (BFS)
  • Revised
  • DFS continue visiting next vertex whenever there
    is a road, go back if no road (ie. visit to the
    depth of current path)
  • BFS go through all the adjacent vertices before
    going further (ie. spread among next vertices)
  • In order to spread, we need to makes use of a
    data structure, queue ,to remember just visited
    vertices

28
BFS (Pseudo code)
  • while queue not empty
  • dequeue the first vertex u from queue
  • for each vertex v directly reachable from u
  • if v is unvisited
  • enqueue v to queue
  • mark v as visited
  • Initially all vertices except the start vertex
    are marked as unvisited and the queue contains
    the start vertex only

29
BFS (Demonstration)
Queue
A
B
C
F
D
E
H
G
J
I
30
Applications of BFS
  • Shortest paths finding
  • Flood-fill (can also be handled by DFS)

31
Comparisons of DFS and BFS
DFS BFS
Depth-first Breadth-first
Stack Queue
Does not guarantee shortest paths Guarantees shortest paths
32
What is graph modeling?
  • Conversion of a problem into a graph problem
  • Sometimes a problem can be easily solved once its
    underlying graph model is recognized
  • Graph modeling appears almost every year in NOI
    or IOI

33
Basics of graph modeling
  • A few steps
  • identify the vertices and the edges
  • identify the objective of the problem
  • state the objective in graph terms
  • implementation
  • construct the graph from the input instance
  • run the suitable graph algorithms on the graph
  • convert the output to the required format

34
Simple examples (1)
  • Given a grid maze with obstacles, find a shortest
    path between two given points

35
Simple examples (2)
  • A student has the phone numbers of some other
    students
  • Suppose you know all pairs (A, B) such that A has
    Bs number
  • Now you want to know Alans number, what is the
    minimum number of calls you need to make?

36
Simple examples (2)
  • Vertex student
  • Edge whether A has Bs number
  • Add an edge from A to B if A has Bs number
  • Problem find a shortest path from your vertex to
    Alans vertex

37
Complex examples (1)
  • Same settings as simple example 1
  • You know a trick walking through an obstacle!
    However, it can be used for only once
  • What should a vertex represent?
  • your position only?
  • your position whether you have used the trick

38
Complex examples (1)
  • A vertex is in the form (position, used)
  • The vertices are divided into two groups
  • trick used
  • trick not used

39
Complex examples (1)
unused
start
goal
used
goal
40
Complex examples (1)
  • How about you can walk through obstacles for k
    times?

41
Complex examples (1)
k
start
goal
k-1
k-2
42
Complex examples (1)
k
start
goal
k-1
k-4
k-2
k-3
43
Complex examples (2)
  • The famous 8-puzzle
  • Given a state, find the moves that bring it to
    the goal state

44
Complex examples (2)
  • What does a vertex represent?
  • the position of the empty square?
  • the number of tiles that are in wrong positions?
  • the state (the positions of the eight tiles)
  • What are the edges?
  • What is the equivalent graph problem?

45
Complex examples (2)
46
Complex examples (3)
  • Theseus and Minotaur
  • http//www.logicmazes.com/theseus.html
  • Extract
  • Theseus must escape from a maze. There is also a
    mechanical Minotaur in the maze. For every turn
    that Theseus takes, the Minotaur takes two turns.
    The Minotaur follows this program for each of his
    two turns
  • First he tests if he can move horizontally and
    get closer to Theseus. If he can, he will move
    one square horizontally. If he cant, he will
    test if he could move vertically and get closer
    to Theseus. If he can, he will move one square
    vertically. If he cant move either horizontally
    or vertically, then he just skips that turn.

47
Complex examples (3)
  • What does a vertex represent?
  • Theseus position
  • Minotaurs position
  • Both

48
Some more examples
  • How can the followings be modeled?
  • Tilt maze (Single-goal mazes only)
  • http//www.clickmazes.com/newtilt/ixtilt2d.htm
  • Double title maze
  • http//www.clickmazes.com/newtilt/ixtilt.htm
  • No-left-turn maze
  • http//www.clickmazes.com/noleft/ixnoleft.htm
  • Same as complex example 1, but you can use the
    trick for k times

49
Competition problems
  • HKOI2000 S Wormhole Labyrinth
  • HKOI2001 S A Node Too Far
  • HKOI2004 S Teachers Problem
  • TFT2001 OIMan
  • TFT2002 Bomber Man
  • NOI2001 cung1 ming4 dik7 daa2 zi6 jyun4
  • NOI2001 Equation
  • IOI2000 Walls
  • IOI2002 Troublesome Frog
  • IOI2003 Amazing Robots

50
Teachers Problem
  • Question A teacher wants to distribute sweets to
    students in an order such that, if student u
    tease student v, u should not get the sweet
    before v
  • Vertex student
  • Edge directed, (v,u) is a directed edge if
    student v tease u
  • Algorithm Tsort

51
OI Man
  • Question OIMan (O) has 2 kinds of form H- and
    S-form. He can transform to S-form for m minutes
    by battery. He can only kill monsters (M) and
    virus (V) in S-form. Given the number of battery
    and m, find the minimum time needed to kill the
    virus.
  • Vertex position, form, time left for S-form,
    number of batteries left
  • Edge directed
  • Move to P in H-form (position)
  • Move to P/M/V in S-form (position, S-form time)
  • Use battery and move (position, form, S-form
    time, number of batteries)

PWWPPPPPPWWPOMMV
52
  • What you have learnt
  • Graph Modeling

53
Variations of BFS and DFS
  • Bidirectional Search (BDS)
  • Iterative Deepening Search(IDS)

54
Bidirectional search (BDS)
  • Searches simultaneously from both the start
    vertex and goal vertex
  • Commonly implemented as bidirectional BFS

55
BDS Example Bomber Man (1 Bomb)
  • find the shortest path from the upper-left corner
    to the lower-right corner in a maze using a bomb.
    The bomb can destroy a wall.

S



E
56
Bomber Man (1 Bomb)
S








E
1
2
3
4
11
12
12
13
4
10
6
6
7
7
8
9
5
8
5
9
1
2
3
4
10
11
12
13
Shortest Path length 8
What will happen if we stop once we find a path?
57
Example
S 1 2 3 4 5 6 7 8 9
10
21 11
20 12
19 13
18 14
17 17 16 15
11 12 13 14 15 16
10
9 8 7 6 5 4 3 2 1 E
58
Iterative deepening search (IDS)
  • Iteratively performs DFS with increasing depth
    bound
  • Shortest paths are guaranteed

59
IDS
60
IDS (pseudo code)
  • DFS (vertex u, depth d)
  • mark u as visited
  • if (dgt0)
  • for each vertex v directly reachable from u
  • if v is unvisited
  • DFS (v,d-1)
  • i0
  • Do
  • DFS(start vertex,i)
  • Increment i
  • While (target is not found)

61
IDS
  • The complexity of IDS is the same as DFS

62
Summary of DFS, BFS
  • We learned some variations of DFS and BFS
  • Bidirectional search (BDS)
  • Iterative deepening search (IDS)

63
Equation
  • Question Find the number of solution of xi,
    given ki,pi. 1ltnlt6, 1ltxilt150
  • Vertex possible values of
  • k1x1p1 , k1x1p1 k2x2p2 , k1x1p1 k2x2p2
    k3x3p3 , k4x4p4 , k4x4p4 k5x5p5 , k4x4p4
    k5x5p5 k6x6p6
Write a Comment
User Comments (0)
About PowerShow.com