180 likes | 370 Views
This lecture by Professor Silvio Micali explores foundational graph algorithms, including undirected and directed graphs. It covers representations such as adjacency lists and discusses key algorithms like Breadth-First Search (BFS) and Depth-First Search (DFS), detailing their operational mechanics and complexities. The session also delves into augmented BFS for finding shortest paths and introduces Dijkstra’s Algorithm for weighted graphs. Attendees will gain insights into graph traversal techniques, the significance of spanning trees, and practical applications in computer science.
E N D
6.006- Introduction to Algorithms Lecture14 Prof. Silvio Micali
Graphs Undirected • V={a,b,c,d} • E={{a,b}, {a,c}, {b,c}, {b,d}, {c,d}} Directed • V = {a,b,c} • E = {(a,c), (a,b) (b,c), (c,b)} a a b c b c d
Computer Representation Four representations with pros/cons Adjacency lists(of neighbors of each vertex) a c b
a c b
Breadth First Search • Start with vertex v • List all its neighbors (distance 1) • Then all their neighbors (distance 2) • Etc.
Augmented Breadth First Search=Shortest Path Alg () Initially, is marked , all other vertices are marked 1. 2. Find all neighbors of at least one vertex marked . If none, STOP. 3. Mark all vertices found in (3) with . 4. Thm:Every vertex is marked with its distance form Complexity:
BFS Tree Structure • Spanning Tree with Lots of Structural Information ? z a f s d x v c
Depth First Search • Exploring a maze • From current vertex, move to another • Until you get stuck • Then backtrack till you find the first new possibility for exploration
DFS 0. Mark all edges “unused”. For all Let and 1. 2. If has no unused edges, go to (4) 3. Choose an unused edge Mark used. If go to (2). Else and go to (1) 4. If HALT 5. and go to (2)
DFS Tree Back Edge Tree Edge
DFS Tree Directed Case Back Edge Forward Edge Tree Edge
Connected Components An equivalence relation Linear with Good Counting!
numbering of the vertices of a directed acyclic graph (DAG) such that Topological Sort if then
Idea: Topological Reverse numbering of the vertices of a directed acyclic graph (DAG) such that if then
More General Shortest Paths for a given node Undirected (Directed in recitation!) graphs with non-negative edge length Picture
Dijstra’s Algorithm label. If , then there is a path from to of length , not necessarily minimum Set of temporarily labeled vertices Set of permanently labeled vertices 0. • do: • Choose with minimum label • &