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

## Presentation on theme: "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."— Presentation transcript:

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

91.404 Graph Review Elementary Graph Algorithms Minimum Spanning Trees Single-Source Shortest Paths

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.

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.

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

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.

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

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

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

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

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

Shortest Paths Chapters 25 & 26

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.

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)

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

Transitive Closure (Matrix) source: Sedgewick, Graph Algorithms Boolean Matrix Product: and, or replace +,* self-loops G G2G2  22

Transitive Closure (Matrix) source: Sedgewick, Graph Algorithms 22  33 44 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|)

Transitive Closure (Matrix) source: Sedgewick, Graph Algorithms Warshall good for dense graphs

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?

Shortest Path Trees source: Sedgewick, Graph Algorithms Shortest Path Tree gives shortest path from root to each other vertex

All Shortest Paths source: Sedgewick, Graph Algorithms

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

Shortest Path Trees source: Sedgewick, Graph Algorithms

All Shortest Paths (Compact) source: Sedgewick, Graph Algorithms

All Shortest Paths In a Network source: Sedgewick, Graph Algorithms

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)

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?

Bellman-Ford source: 91.503 textbook Cormen et al. for (negative) weighted, directed graph G=(V,E) with no negative-weight cycles

Single Source Shortest Paths Dijkstra’s Algorithm source: 91.503 textbook Cormen et al. for (nonnegative) weighted, directed graph G=(V,E)

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)

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)

Single Source Shortest Paths Dijkstra’s Algorithm source: Sedgewick, Graph Algorithms for (nonnegative) weighted, directed graph G=(V,E)

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 )

All-Pairs Shortest Paths source: 91.503 textbook Cormen et al. similar to Transitive Closure Algorithm 2 Time: O(|V| 3 lg|V|)

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 )

Shortest Path Algorithms source: Sedgewick, Graph Algorithms

Graph Algorithms Research Case Study

Case Study Literature Wu, Li [1999]

Network Flow Chapter 27

Network Flow source: Sedgewick, Graph Algorithms

Controlling Network Flow source: Sedgewick, Graph Algorithms

Augmenting Flow on a Path source: Sedgewick, Graph Algorithms

Augmenting Path Sequences source: Sedgewick, Graph Algorithms

Download ppt "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."

Similar presentations