Graph Theory, DFS & BFS

1 / 24

# Graph Theory, DFS & BFS

## Graph Theory, DFS & BFS

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

1. Graph Theory, DFS & BFS Kelly Choi 08-07-2006

2. vertex edge What is a graph? • A set of vertices and edges • Directed/Undirected • Weighted/Unweighted • Cyclic/Acyclic

3. Representation of Graphs • Adjacency Matrix • A V x V array, with matrix[i][j] storing whether there is an edge between the ith vertex and the jth vertex • Adjacency Linked List • One linked list per vertex, each storing directly reachable vertices • Edge List

4. Representation of Graphs

5. Graph Searching • Why do we do graph searching? What do we search for? • What information can we find from graph searching? • How do we search the graph? Do we need to visit all vertices? In what order?

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

7. 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

8. 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

9. Example: Teacher’s Problem • Emily wants to distribute candies to N students one by one, with a rule that if student A is teased by B, A can receive candy before B. • Given lists of students teased by each students, find a possible sequence to give the candies

10. Shortest Paths? • Given vertices s and t, if we try to find a path from s to t by DFS, the first path found may not be the shortest one. • How can I find a shortest path? • Let’s first review what we have done

11. An Idea of What We Did • Start by visiting a certain vertex • Vertices fall into 3 categories: • Unvisited • Visited • Visited & Dead (All reachable vertices from these vertices are visited)

12. An Idea of What We Did • Find unvisited vertices by expanding your path from visited (but not dead) vertices. • In DFS, we choose the most recently visited vertex to expand. • Are there any other strategies?

13. Breadth-First Search (BFS) • Instead of going as far as possible, BFS tries to search all paths. • BFS makes use of a queue to store visited (but not dead) vertices, expanding the path from the earliest visited vertices.

14. Queue: 4 1 3 6 2 5 Simulation of BFS 1 4 3 2 6 5

15. 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

16. There is more… • Other Graph Searching Algorithms: • Bidirectional search (BDS) • Iterative deepening search (IDS)

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

18. 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)

19. Graph Modeling • Conversion of a problem into a graph problem • Essential in solving most graph problems

20. Basics of graph modeling • 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 (cx, 2004)

21. Other Topics in Graph Theory • Cut Vertices & Cut Edges • Euler Path/Circuit & Hamilton Path/Circuit • Planarity

22. Cut Vertices & Cut Edges • What is a cut vertex? • A cut vertex is a type of graph vertex, the removal of which causes an increase in the number of connected components • What is a cut edge?

23. Euler Path & Hamilton Path • An Euler path is a path in a graph which visits each edge exactly once • A Hamilton path is a path in an undirected graph which visits each vertex exactly once.

24. Planarity • A planar graph is a graph that can be drawn so that no edges intersect • K5 and K3,3 are non-planar graphs