Graph Searching

1 / 32

# Graph Searching - PowerPoint PPT Presentation

Graph Searching. Overview. Graph Notation and Implementation BFS (Breadth First Search) DFS (Depth First Search) Topology SCC ( Strongly Connected Component ) Centre, Radius, Diameter Multi-state BFS. What is Graph?. 1. NT. Q. 4. vertex. WA. SA. NSW. 2. edge. V. 3. T. Graph.

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.

## Graph Searching

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

### Graph Searching

Overview
• Graph
• Notation and Implementation
• DFS (Depth First Search)
• Topology
• SCC (Strongly Connected Component)
• Multi-state BFS

### What is Graph?

1

NT

Q

4

vertex

WA

SA

NSW

2

edge

V

3

T

Graph
• A graph is defined as G=(V,E),

i.e a set of vertices and edges, where

• V is the set of vertices (singular: vertex)
• E is the set of edges that connect some of the vertices
Graph
• Directed/Undirected Graph
• Weighted/Unweighted Graph
• Connectivity
Representation of Graph
• Edge list

ancestors

root

parent

siblings

descendents

children

Graph
• Tree
Depth-First Search (DFS)
• Strategy: Go as far as you can (if you have not visit there), otherwise, go back and try another way
Implementation

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
Topological Sort
• 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 i<j
• Topological Sort: Finding the topological order of a directed acyclic graph
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
Example: Assembly Line
• In a factory, there is several process. Some need to be done before others. Can you order those processes so that they can be done smoothly?
• Chris is now studying OI materials. There are many topics. He needs to master some basic topics before understanding those advanced one. Can you help him to plan a smooth study plan?
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
Finding Shortest Path
• How can we use DFS to find the shortest distance from a vertex to another? The distance of the first path found?
• BFS tries to find the target from nearest vertices first.
• BFS makes use of a queue to store visited (but not dead) vertices, expanding the path from the earliest visited vertices.
Implementation

while queue Q not empty

dequeue the first vertex u from Q

for each vertex v directly reachable from u

if v is unvisited

enqueue v to Q

mark v as visited

• Initially all vertices except the start vertex are marked as unvisited and the queue contains the start vertex only
• Guarantee shortest paths for unweighted graphs
• Use queue instead of recursive functions – Avoiding stack overflow
Flood Fill
• An algorithm that determines the area connected to a given node in a multi-dimensional array
• Start BFS/DFS from the given node, counting the total number of nodes visited
• Example: Squareland (HKOI 2006)
Variations of BFS and DFS
• Bidirectional Search (BDS)
• Iterative Deepening Search(IDS)

start

goal

Bidirectional search (BDS)
• Searches simultaneously from both the start vertex and goal vertex
• Commonly implemented as bidirectional BFS
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.
Bomber Man (1 Bomb)

1

2

3

4

13

12

11

12

4

10

7

6

6

7

8

9

8

5

9

5

4

3

2

1

10

11

12

13

Shortest Path length = 8

What will happen if we stop once we find a path?

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

DFS (vertex u, depth d) {

mark u as visited

if (d>0)

for each vertex v directly reachable from u

if v is unvisited

DFS (v,d-1)

}

i=0

Do {

DFS(start vertex,i)

Increment i