Presentation is loading. Please wait.

Presentation is loading. Please wait.

Graph Theory Kayman Lui 20-09-2007. Overview Graph –Notation and Implementation –Tree Depth First Search (DFS) –DFS Forests Topology Sort (T-Sort) Strongly.

Similar presentations


Presentation on theme: "Graph Theory Kayman Lui 20-09-2007. Overview Graph –Notation and Implementation –Tree Depth First Search (DFS) –DFS Forests Topology Sort (T-Sort) Strongly."— Presentation transcript:

1 Graph Theory Kayman Lui 20-09-2007

2 Overview Graph –Notation and Implementation –Tree Depth First Search (DFS) –DFS Forests Topology Sort (T-Sort) Strongly Connected Component (SCC) Breadth First Search (BFS) Graph Modeling Variations of BFS and DFS –Bidirectional Search (BDS) –Iterative Deepening Search(IDS)

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

4 Representation of Graph Adjacency Matrix –A V x V array, with matrix[i][j] storing whether there is an edge between the i th vertex and the j th vertex Adjacency Linked List –One linked list per vertex, each storing directly reachable vertices Edge List

5 Representation of Graphs Adjacency Matrix Adjacency Linked List Edge List Memory Storage O(V 2 )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)O(deg(u)) deg(u): the number of edges connecting vertex u

6 Trees and related terms root siblings descendents children ancestors parent

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

8 Graph Searching 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 searching algorithms Some shortest path algorithms and spanning tree algorithms have specific visit order

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 –Example: a person want to visit a place, but do not know the path

10 F A B C D E DFS (Demonstration) unvisited visited

11 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

12 “ 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

13 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

14 A F B C D E G H DFS forest (Demonstration) unvisited visited visited (dead) ABCDEFGH birth death paren t A B C F E D G 1231310414 12981611515 H 6 7 -AB-ACDC

15 DFS (pseudo code) DFS (vertex u) { mark u as visited time  time+1; birth[u]=time; for each vertex v directly reachable from u if v is unvisited parent[v]=u DFS (v) time  time+1; death[u]=time; }

16 Classification of edges Tree edge Forward edge Back edge Cross edge Question: which type of edges is always absent in an undirected graph? A B C F E D G H

17 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] > birth [u]; and –death [v] < death [u] How about back edge and cross edge?

18 Determination of edge types Tree edgeForward EdgeBack EdgeCross Edge parent [v] = unot a tree edge birth[v] > birth[u] death[v] < death[u] birth[v] < birth[u] death[v] > death[u] birth[v] < birth[u] death[v] < death[u]

19 Applications of DFS Forests Topological sorting (Tsort) Strongly-connected components (SCC) Some more “ advanced ” algorithms

20 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

21 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? Studying Order –Louis is now studying ACM 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?

22 T-sort 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

23 Tsort (Demonstration) S D B E F C G A SABCDEFG birth death G C F B A E D 12345 67 8 91011 1213 141516  D E A B F C G

24 Strongly-connected components (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

25 SCC (Illustration)

26 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 ’

27 A F B C D G H SCC (Demonstration) A F B C D E G H ABCDEFGH birth death paren t 1231310414 12981611515 6 7 -AB-ACDC D G AEB F C H

28 SCC (Demonstration) D G AEB F C H A F B C D G H E

29 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

30 Breadth-First Search (BFS) Instead of going as far as possible, BFS goes 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 BFS makes use of a queue to store visited (but not dead) vertices, expanding the path from the earliest visited vertices.

31 A B C D E F G H I J BFS (Demonstration) unvisited visited visited (dequeued) Queue: ABCFDEHGJI

32 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

33 Applications of BFS Shortest paths finding Flood-fill

34 Flood Fill An algorithm that determines the area connected to a given node in a multi-dimensional array Start BFS from the given node, counting the total number of nodes visited It can also be handled by DFS

35 Comparisons of DFS and BFS DFSBFS Depth-firstBreadth-first StackQueue Does not guarantee shortest paths Guarantees shortest paths

36 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 in many ACM problems

37 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

38 Examples(1) Given a grid maze with obstacles, find a shortest path between two given points start goal

39 Examples (2) A student has the phone numbers of some other students Suppose you know all pairs (A, B) such that A has B ’ s number Now you want to know Alpha number, what is the minimum number of calls you need to make?

40 Examples (2) Vertex: student Edge: whether A has B ’ s number Add an edge from A to B if A has B ’ s number Problem: find a shortest path from your vertex to Alpha ’ s vertex

41 Teacher ’ s 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: T-sort

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

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

44 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

45 Bomber Man (1 Bomb) S E 123 4 1234 5 4 Shortest Path length = 8 5 6677 8 8 9 9 10 11 12 13

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

47 IDS

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

49 IDS Complexity (the details can be skipped) ( )=b m - b is branching factor - t d is the number of vertices visited for depth d

50 Conclusion The complexity of IDS is the same as DFS

51 Other Topics in Graph Theory Cut Vertices & Cut Edges Euler Path/Circuit & Hamilton Path/Circuit Planarity

52 Cut Vertices & Cut Edges What is a cut vertex? –The removal of a set of vertices causes a connected graph disconnected What is a cut edge? –The removal of a set of edges causes a connected graph disconnected

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

54 Planarity A planar graph is a graph that can be drawn so that no edges intersect K 5 and K 3,3 are non-planar graphs

55 Last Question:Equation Question: Find the number of solution of x i, given k i,p i. 1<=n<=6, 1<=x i <=150 Vertex: possible values of –k 1 x 1 p 1, k 1 x 1 p 1 + k 2 x 2 p 2, k 1 x 1 p 1 + k 2 x 2 p 2 + k 3 x 3 p 3, k 4 x 4 p 4, k 4 x 4 p 4 + k 5 x 5 p 5, k 4 x 4 p 4 + k 5 x 5 p 5 + k 6 x 6 p 6

56 Graph problems in Uva 280 336 532 572 10592


Download ppt "Graph Theory Kayman Lui 20-09-2007. Overview Graph –Notation and Implementation –Tree Depth First Search (DFS) –DFS Forests Topology Sort (T-Sort) Strongly."

Similar presentations


Ads by Google