Download presentation
Presentation is loading. Please wait.
1
UMass Lowell Computer Science 91.503 Analysis of Algorithms Prof. Karen Daniels Fall, 2001 Lectures 3 Tuesday, 9/25/01 Graph Algorithms: Part 1 Shortest Paths
2
91.404 Graph Review Elementary Graph Algorithms Minimum Spanning Trees Single-Source Shortest Paths
3
Introductory Graph Concepts ä G= (V,E) ä Vertex Degree ä Self-Loops B E C F D A B E C F D A ä Directed Graph (digraph) ä Degree: in/out ä Self-Loops allowed ä Undirected Graph ä No Self-Loops ä Adjacency is symmetric This treatment follows 91.503 textbook Cormen et al. Some definitions differ slightly from other graph literature.
4
Introductory Graph Concepts: Representations B E C F D A B E C F D A ä Undirected Graph ä Directed Graph (digraph) A B C D E F ABCDEF ABCDEF A BC B ACEF C AB D E E BDF F BE A BC B CEF C D D E BD F E Adjacency Matrix Adjacency List Adjacency Matrix Adjacency List This treatment follows 91.503 textbook Cormen et al. Some definitions differ slightly from other graph literature.
5
Introductory Graph Concepts: Paths, Cycles ä Path: ä length: number of edges ä simple: all vertices distinct ä Cycle: ä Directed Graph: ä forms cycle if v 0 =v k and k>=1 ä simple cycle: v 1,v 2..,v k also distinct ä self-loop is cycle of length 1 ä Undirected Graph: ä forms (simple) cycle if v 0 =v k and k>=3 ä simple cycle: v 1,v 2..,v k also distinct B E C F D A path path B E C F D A simple cycle simple cycle This treatment follows 91.503 textbook Cormen et al. Some definitions differ slightly from other graph literature. B E C F D A simple cycle = simple cycle = most of our cycle work will be for directed graphs
6
Introductory Graph Concepts: Connectivity ä Undirected Graph: connected ä every pair of vertices is connected by a path ä one connected component ä connected components: ä equivalence classes under “is reachable from” relation ä Directed Graph: strongly connected ä every pair of vertices is reachable from each other ä one strongly connected component ä strongly connected components: ä equivalence classes under “mutually reachable” relation B E C F D A B E C F D Aconnected 2 connected components not strongly connected strongly connected component B E C F D A B E C F D A This treatment follows 91.503 textbook Cormen et al. Some definitions differ slightly from other graph literature.
7
SEARCHING Elementary Graph Algorithms: SEARCHING: DFS, BFS ä Breadth-First-Search (BFS): ä Shortest Path Distance ä From source to each reachable vertex ä Record during traversal ä Foundation of many “shortest path” algorithms See DFS, BFS Handout for PseudoCode ä Depth-First-Search (DFS): ä Encountering, finishing times ä “well-formed” nested (( )( ) ) structure ä Every edge of G is either a tree edge of a back edge ä EdgeColor of vertex when first tested determines edge type for unweighted directed or undirected graph G=(V,E) Time: O(|V| + |E|) adj listO(|V| 2 ) adj matrix predecessor subgraph = forest of spanning trees Vertex color shows status: not yet encountered encountered, but not yet finished finished See 91.404 DFS/BFS slide show
8
Elementary Graph Algorithms: DFS, BFS ä Review problem: TRUE or FALSE? ä The tree shown below on the right can be a DFS tree for some adjacency list representation of the graph shown below on the left. B E C F D A A C B E D F Tree Edge Cross Edge Back Edge
9
Elementary Graph Algorithms: Topological Sort source: 91.503 textbook Cormen et al. TOPOLOGICAL-SORT(G) 1 DFS(G) computes “finishing times” for each vertex 2 as each vertex is finished, insert it onto front of list 3 return list for Directed, Acyclic Graph (DAG) G=(V,E) Produces linear ordering of vertices. For edge (u,v), u is ordered before v. See also 91.404 DFS/BFS slide show
10
Minimum Spanning Tree: Greedy Algorithms A B C D E F G 2 2 1 1 3 4 4 5 6 6 8 7 source: 91.503 textbook Cormen et al. for Undirected, Connected, Weighted Graph G=(V,E) Produces minimum weight tree of edges that includes every vertex. Invariant: Minimum weight spanning forest Becomes single tree at end Invariant: Minimum weight tree Spans all vertices at end Time: O(|E|lg|E|) given fast FIND-SET, UNION Time: O(|E|lg|V|) = O(|E|lg|E|) slightly faster with fast priority queue
11
Minimum Spanning Trees ä Review problem: ä For the undirected, weighted graph below, show 2 different Minimum Spanning Trees. Draw each using one of the 2 graph copies below. Thicken an edge to make it part of a spanning tree. What is the sum of the edge weights for each of your Minimum Spanning Trees? A B C D E F G 2 2 1 1 3 4 4 5 6 6 8 7
12
Shortest Paths Chapters 25 & 26
13
BFS as a Basis for Shortest Path Algorithms Source/Sink Shortest Path Problem: Given 2 vertices u, v, find the shortest path in G from u to v. Solution: BFS starting at u. Stop at v. Single-Source Shortest Paths Problem: Given a vertex u, find the shortest path in G from u to each vertex. Solution: BFS starting at u. Full BFS tree. source: based on Sedgewick, Graph Algorithms BFS for unweighted, undirected graph G=(V,E) Time: O(|V| + |E|) adj list O(|V| 2 ) adj matrix O(|V| 2 ) adj matrix Time: O(|V|(|V| + |E|)) adj list O(|V| 3 ) adj matrix O(|V| 3 ) adj matrix All-Pairs Shortest Paths Problem: Find the shortest path in G from each vertex u to each vertex v. Solution: For each u: BFS starting at u; full BFS tree.
14
Shortest Path Applications ä Road maps ä Airline routes ä Telecommunications network routing ä VLSI design routing Weight ~ Cost ~ Distance source: based on Sedgewick, Graph Algorithms for weighted, directed graph G=(V,E)
15
Transitive Closure (Matrix) source: Sedgewick, Graph Algorithms Transitive Closure Graph contains edge (u,v) if there exists a directed path in G from u to v. G
16
Transitive Closure (Matrix) source: Sedgewick, Graph Algorithms Boolean Matrix Product: and, or replace +,* self-loops G G2G2 22
17
Transitive Closure (Matrix) source: Sedgewick, Graph Algorithms 22 33 44 Algorithm 1: Find , , ,..., V Algorithm 2: Find , , ,..., V Algorithm 3: [Warshall] for i 0 to |V|-1 for s 0 to |V|-1 for s 0 to |V|-1 for t 0 to |V|-1 for t 0 to |V|-1 if [s][i] and [i][t] then [s][t] 1 Time: O(|V| 3 ) Time: O(|V| 4 ) Time: O(|V| 3 lg|V|)
18
Transitive Closure (Matrix) source: Sedgewick, Graph Algorithms Warshall good for dense graphs
19
Transitive Closure (Matrix) ä HW#2: ä Update transitive closure when new edge is added to graph. ä What does the following matrix (the nxn form of it) used in shortest-path algorithms correspond to in regular matrix multiplication?
20
Shortest Path Trees source: Sedgewick, Graph Algorithms Shortest Path Tree gives shortest path from root to each other vertex
21
All Shortest Paths source: Sedgewick, Graph Algorithms
22
Shortest Path Principles: Relaxation ä “Relax” a constraint to try to improve solution ä “Rubber band” analogy [Sedgewick] ä Relaxation of an Edge (u,v): ä test if shortest path to v [found so far] can be improved by going through u A B C D E F G 2 2 1 1 3 4 4 5 6 6 8 7
23
Shortest Path Trees source: Sedgewick, Graph Algorithms
24
All Shortest Paths (Compact) source: Sedgewick, Graph Algorithms
25
All Shortest Paths In a Network source: Sedgewick, Graph Algorithms
26
Single Source Shortest Paths Bellman-Ford source: 91.503 textbook Cormen et al. for (negative) weighted, directed graph G=(V,E) with no negative-weight cycles Time is in O(|V||E|) detect negative- weight cycle (board example)
27
Bellman-Ford source: Sedgewick, Graph Algorithms for (negative) weighted, directed graph G=(V,E) with no negative-weight cycles HW#2: How many iterations until each distance stops changing?
28
Bellman-Ford source: 91.503 textbook Cormen et al. for (negative) weighted, directed graph G=(V,E) with no negative-weight cycles
29
Single Source Shortest Paths Dijkstra’s Algorithm source: 91.503 textbook Cormen et al. for (nonnegative) weighted, directed graph G=(V,E)
30
Single Source Shortest Paths Dijkstra’s Algorithm ä See ShortestPath 91.404 slide show A B C D E F G 2 2 1 1 3 4 4 5 6 6 8 7 source: 91.503 textbook Cormen et al. for (nonnegative) weighted, directed graph G=(V,E)
31
Single Source Shortest Paths Dijkstra’s Algorithm ä Review problem: ä ä For the directed, weighted graph below, find the shortest path that begins at vertex A and ends at vertex F. List the vertices in the order that they appear on that path. What is the sum of the edge weights of that path? A B C D E F G 2 2 1 1 3 4 4 5 6 6 8 7 Why can’t Dijkstra’s algorithm handle negative-weight edges? (board example)
32
Single Source Shortest Paths Dijkstra’s Algorithm source: Sedgewick, Graph Algorithms for (nonnegative) weighted, directed graph G=(V,E)
33
All-Pairs Shortest Paths source: 91.503 textbook Cormen et al. for (negative) weighted, directed graph G=(V,E) with no negative-weight cycles similar to Transitive Closure Algorithm 1 Time: O(|V| 4 )
34
All-Pairs Shortest Paths source: 91.503 textbook Cormen et al. similar to Transitive Closure Algorithm 2 Time: O(|V| 3 lg|V|)
35
All-Pairs Shortest Paths source: 91.503 textbook Cormen et al. HW#2: How can output be used to detect a negative- weight cycle? Can have negative- weight edges similar to Transitive Closure Algorithm 3 [Warshall] Time: O(|V| 3 )
36
Shortest Path Algorithms source: Sedgewick, Graph Algorithms
37
Graph Algorithms Research Case Study
38
Case Study Literature Wu, Li [1999]
39
Network Flow Chapter 27
40
Network Flow source: Sedgewick, Graph Algorithms
41
Controlling Network Flow source: Sedgewick, Graph Algorithms
42
Augmenting Flow on a Path source: Sedgewick, Graph Algorithms
43
Augmenting Path Sequences source: Sedgewick, Graph Algorithms
Similar presentations
© 2024 SlidePlayer.com Inc.
All rights reserved.