Presentation is loading. Please wait.

Presentation is loading. Please wait.

Graph Searching.

Similar presentations


Presentation on theme: "Graph Searching."— Presentation transcript:

1 Graph Searching

2 Overview Graph BFS (Breadth First Search) DFS (Depth First Search)
Notation and Implementation BFS (Breadth First Search) DFS (Depth First Search) Topology SCC (Strongly Connected Component) Centre, Radius, Diameter Multi-state BFS

3 What is Graph?

4 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 WA NT SA Q NSW V T 1 2 4 3 vertex edge

5 Graph Directed/Undirected Graph Weighted/Unweighted Graph Connectivity

6 Representation of Graph
Adjacency Matrix Adjacency list Edge list

7 Representation of Graph
Adjacency Matrix Adjacency Linked List Edge List Memory Storage O(V2) O(V+E) Check whether (u,v) is an edge O(1) O(deg(u)) Find all adjacent vertices of a vertex u O(V) deg(u): the number of edges connecting vertex u

8 Graph Tree root siblings descendents children ancestors parent

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

10 Implementation Initially all vertices are marked as unvisited
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

11 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

12 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

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

14 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

15 SCC (Illustration)

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

17 Breadth-First Search (BFS)
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.

18 Simulation of BFS Queue: 1 4 3 5 2 6 1 4 3 2 5 6

19 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

20 Advantages Guarantee shortest paths for unweighted graphs
Use queue instead of recursive functions – Avoiding stack overflow

21 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)

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

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

24 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

25 Bomber Man (1 Bomb) S 1 2 3 4 E 13 12 11 12 4 10 8 7 6 5 6 7 8 9 9 5 10 11 12 13 4 3 2 1 Shortest Path length = 8 What will happen if we stop once we find a path?

26 Example S 1 2 3 4 5 6 7 8 9 10 21 11 20 12 19 13 18 14 17 16 15 E

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

28 IDS

29 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 }While (target is not found)

30 IDS The complexity of IDS is the same as DFS

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

32 Equation Question: Find the number of solution of xi, given ki,pi. 1<=n<=6, 1<=xi<=150 Vertex: possible values of k1x1p1 , k1x1p1 + k2x2p2 , k1x1p1 + k2x2p2 + k3x3p3 , k4x4p4 , k4x4p4 + k5x5p5 , k4x4p4 + k5x5p5 + k6x6p6


Download ppt "Graph Searching."

Similar presentations


Ads by Google