Advanced DepthFirst Search and BreadthFirst Search - PowerPoint PPT Presentation

1 / 42
About This Presentation
Title:

Advanced DepthFirst Search and BreadthFirst Search

Description:

Given a grid maze with obstacles, find a shortest path between two given points. start ... How long do you need to solve the last maze? ... Double title maze. http: ... – PowerPoint PPT presentation

Number of Views:55
Avg rating:3.0/5.0
Slides: 43
Provided by: hkoi
Category:

less

Transcript and Presenter's Notes

Title: Advanced DepthFirst Search and BreadthFirst Search


1
AdvancedDepth-First Search and Breadth-First
Search
2
Overview
  • Depth-first search (DFS)
  • DFS Forest
  • Breadth-first search (BFS)
  • Some variants of DFS and BFS
  • Graph modeling

3
Prerequisites
  • Elementary graph theory
  • Implementations of DFS and BFS

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

5
Trees and related terms
6
What is graph traversal?
  • Given a graph
  • Goal visit all (or some) vertices and edges of
    the graph using some strategy
  • Two simple strategies
  • Depth-first search
  • Breadth-first search

7
Depth-first search (DFS)
  • A graph searching method
  • Algorithm
  • at any time, go further (depth) if you can
    otherwise, retreat

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 (see next slide)

11
DFS 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

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

14
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?

15
Applications of DFS Forests
  • Topological sorting (Tsort)
  • Strongly-connected components (SCC)
  • Some more advanced algorithms

16
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

17
SCC (Illustration)
18
SCC (Algorithm)
  • Compute the DFS forest of the graph G
  • 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

19
SCC (Demonstration)
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
20
SCC (Demonstration)
21
Breadth-first search (BFS)
  • A graph searching method
  • Instead of searching deeply along one path, BFS
    tries to search all paths at the same time
  • Makes use of a data structure - queue

22
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

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

25
Comparisons of DFS and BFS
26
Bidirectional search (BDS)
  • Searches simultaneously from both the start
    vertex and goal vertex
  • Commonly implemented as bidirectional BFS

27
Iterative deepening search (IDS)
  • Iteratively performs DFS with increasing depth
    bound
  • Shortest paths are guaranteed

28
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

29
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

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

31
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?

32
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

33
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

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

35
Complex examples (1)
unused
start
goal
used
goal
36
Complex examples (2)
  • The famous 8-puzzle
  • Given a state, find the moves that bring it to
    the goal state

37
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?

38
Complex examples (2)
39
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.

40
Complex examples (3)
  • What does a vertex represent?
  • Theseus position
  • Minotaurs position
  • Both
  • How long do you need to solve the last maze?
  • How long does a well-written program take to
    solve it?

41
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

42
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
  • IOI2000 Walls
  • IOI2002 Troublesome Frog
  • IOI2003 Amazing Robots
Write a Comment
User Comments (0)
About PowerShow.com