CSE 2331/5331 CSE 780: Design and Analysis of Algorithms Lecture 14: Directed Graph BFS DFS Topological sort.

Presentation on theme: "CSE 2331/5331 CSE 780: Design and Analysis of Algorithms Lecture 14: Directed Graph BFS DFS Topological sort."— Presentation transcript:

CSE 2331/5331 CSE 780: Design and Analysis of Algorithms Lecture 14: Directed Graph BFS DFS Topological sort

CSE 2331/5331 ba f c de

Vertex Degree CSE 2331/5331 ba f c de

Representations of Graphs

CSE 2331/5331 Adjacency Lists For vertex v V, its adjacency list has size: outdeg(v) decide whether (v, u) E or not in time O(outdeg(v)) Size of data structure (space complexity): O(V+E)

CSE 2331/5331 Adjacency Matrix Size of data structure: O ( V V) Time to determine if (v, u) E : O(1) Though larger, it is simpler compared to adjacency list.

Sample Graph Algorithm Input: Directed graph G represented by adjacency list CSE 2331/5331 Running time: O(V + E)

Connectivity CSE 2331/5331

Reachability Test CSE 2331/5331

BFS and DFS The algorithms for BFS and DFS remain the same Each edge is now understood as a directed edge BFS(V,E, s) : visits all nodes reachable from s in non-decreasing order

CSE 2331/5331 BFS Starting from source node s, Spread a wavefront to visit other nodes First visit all nodes one edge away from s Then all nodes two edges away from s …

CSE 2331/5331 Pseudo-code Time complexity: O(V+E) Use adjacency list representation

Number of Reachable Nodes CSE 2331/5331 Time complexity: O(V+E)

DFS: Depth-First Search CSE 2331/5331

More Example CSE 2331/5331

DFS above can be replaced with BFS CSE 2331/5331 DFS(G, k);

Topological Sort CSE 2331/5331

Directed Acyclic Graph

CSE 2331/5331 Topological Sort A topological sort of a DAG G = (V, E) A linear ordering A of all vertices from V If edge (u,v) E => A[u] < A[v] undershorts pants belt shirt tie jacket shoes socks watch

Another Example CSE 2331/5331 Is the sorting order unique? Why requires DAG?

A topological sorted order of graph G exists if and only if G is a directed acyclic graph (DAG). CSE 2331/5331

Question How to topologically sort a given DAG? Intuition: Which node can be the first node in the topological sort order? A node with in-degree 0 ! After we remove this, the process can be repeated. CSE 2331/5331

Example CSE 2331/5331 undershorts pants belt shirt tie jacket shoes socks watch

CSE 2331/5331

Topological Sort – Simplified Implementation CSE 2331/5331

Time complexity O(V+E) Correctness: What if the algorithm terminates before we finish visiting all nodes? Procedure TopologicalSort(G) outputs a sorted list of all nodes if and only if the input graph G is a DAG If G is not DAG, the algorithm outputs only a partial list of vertices. CSE 2331/5331

Remarks Other topological sort algorithm by using properties of DFS CSE 2331/5331

Similar presentations