UMass Lowell Computer Science 91.503 Analysis of Algorithms Prof. Karen Daniels Fall, 2006 - PowerPoint PPT Presentation

About This Presentation
Title:

UMass Lowell Computer Science 91.503 Analysis of Algorithms Prof. Karen Daniels Fall, 2006

Description:

UMass Lowell Computer Science 91.503 Analysis of Algorithms Prof. Karen Daniels Fall, 2006 Lecture 4 Wednesday, 9/27/06 Graph Algorithms: Part 1 Shortest Paths – PowerPoint PPT presentation

Number of Views:291
Avg rating:3.0/5.0
Slides: 38
Provided by: MurrayD2
Learn more at: https://www.cs.uml.edu
Category:

less

Transcript and Presenter's Notes

Title: UMass Lowell Computer Science 91.503 Analysis of Algorithms Prof. Karen Daniels Fall, 2006


1
UMass Lowell Computer Science 91.503 Analysis
of Algorithms Prof. Karen DanielsFall, 2006
  • Lecture 4
  • Wednesday, 9/27/06
  • Graph Algorithms Part 1
  • Shortest Paths
  • Chapters 24-25

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
  • Undirected Graph
  • No Self-Loops
  • Adjacency is symmetric
  • Directed Graph (digraph)
  • Degree in/out
  • Self-Loops allowed

This treatment follows 91.503 textbook Cormen et
al. Some definitions differ slightly from other
graph literature.
4
Introductory Graph ConceptsRepresentations
  • Undirected Graph
  • Directed Graph (digraph)

Adjacency Matrix
Adjacency List
Adjacency List
Adjacency Matrix
This treatment follows 91.503 textbook Cormen et
al. Some definitions differ slightly from other
graph literature.
5
Introductory Graph ConceptsPaths, Cycles
  • Path
  • length number of edges
  • simple all vertices distinct
  • Cycle
  • Directed Graph
  • ltv0,v1,...,vk gt forms cycle if v0vk and kgt1
  • simple cycle v1,v2..,vk also distinct
  • self-loop is cycle of length 1
  • Undirected Graph
  • ltv0,v1,...,vk gt forms (simple) cycle if v0vk and
    kgt3
  • simple cycle v1,v2..,vk also distinct

path ltA,B,Fgt
simple cycle ltE,B,F,Egt
most of our cycle work will be for directed graphs
simple cycle ltA,B,C,Agt ltB,C,A,Bgt
This treatment follows 91.503 textbook Cormen et
al. Some definitions differ slightly from other
graph literature.
6
Introductory Graph ConceptsConnectivity
connected
  • 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

2 connected components
not strongly connected
This treatment follows 91.503 textbook Cormen et
al. Some definitions differ slightly from other
graph literature.
7
Elementary Graph AlgorithmsSEARCHING DFS, BFS
for unweighted directed or undirected graph
G(V,E)
Time O(V E) adj list O(V2) adj matrix
predecessor subgraph forest of spanning trees
  • Breadth-First-Search (BFS)
  • Shortest Path Distance
  • From source to each reachable vertex
  • Record during traversal
  • Foundation of many shortest path algorithms
  • Depth-First-Search (DFS)
  • Encountering, finishing times
  • well-formed nested (( )( ) ) structure
  • Every edge of undirected G is either a tree edge
    or a back edge
  • EdgeColor of vertex when first tested determines
    edge type

See 91.404 DFS/BFS slide show
See DFS, BFS Handout for PseudoCode
8
Elementary Graph AlgorithmsDFS, 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.

9
Elementary Graph AlgorithmsTopological Sort
for Directed, Acyclic Graph (DAG) G(V,E)
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
Produces linear ordering of vertices. For edge
(u,v), u is ordered before v.
See also 91.404 DFS/BFS slide show
source 91.503 textbook Cormen et al.
10
Minimum Spanning TreeGreedy Algorithms
Time O(ElgE) given fast FIND-SET, UNION
Time O(ElgV) O(ElgE) slightly faster
with fast priority queue
for Undirected, Connected, Weighted Graph
G(V,E)
source 91.503 textbook Cormen et al.
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?

12
Shortest Paths
Chapters 24 25
13
BFS as a Basis for Some Shortest Path
Algorithms
Time O(V(V E)) adj list
O(V3) adj matrix
but for weighted, directed graphs
source based on Sedgewick, Graph Algorithms
14
Shortest Path Applications
for weighted, directed graph G(V,E)
Weight Cost Distance
  • Road maps
  • Airline routes
  • Telecommunications network routing
  • VLSI design routing

source based on Sedgewick, Graph Algorithms
15
Transitive Closure (Matrix)Unweighted, Directed
Graph
self-loops added for algorithmic purposes
Transitive Closure concepts will be useful for
All-Pairs Shortest Path calculation in directed,
weighted graphs
G
Transitive Closure Graph contains edge (u,v) if
there exists a directed path in G from u to v.
source Sedgewick, Graph Algorithms
16
Transitive Closure (Matrix)
G2
G
self-loops added for algorithmic purposes
G
G2
Boolean Matrix Product and, or replace ,
source Sedgewick, Graph Algorithms
17
Transitive Closure (Matrix)
G
why this upper limit?
Algorithm 1 Find G, G2 , G3 ,..., GV-1
Time O(V4)
G2
Algorithm 2 Find G, G2 , G4 ,..., GV
Time O(V3lgV)
Time O(V3)
G3
G4
source Sedgewick, Graph Algorithms
18
Transitive Closure (Matrix)
Warshall
good for dense graphs
source Sedgewick, Graph Algorithms
19
Transitive Closure (Matrix)
Warshall
  • Correctness by Induction on i
  • Inductive Hypothesis ith iteration of loop sets
  • Gst to 1 iff theres a directed path from s
    to t
  • with (internal) indices at most i.
  • Inductive Step for i1 (sketch) 2 cases for path
    ltstgt
  • internal indices at most i
  • - covered by inductive hypothesis in prior
    iteration so
  • Gst already set to 1
  • an internal index exceeds i ( i1)
  • - Gsi1, Gi1t set in a prior
    iteration so
  • Gst set to 1 in current iteration

source Sedgewick, Graph Algorithms
20
Shortest Path Trees
Shortest Path Tree gives shortest path from root
to each other vertex
shortest path need not be unique
.99
.83
.1
.45
.21
.1
.51
.38
.36
.41
.5
source Sedgewick, Graph Algorithms
21
All Shortest Paths
.41
.29
.29
.45
.21
.51
.32
.38
.32
.36
.50
source Sedgewick, Graph Algorithms
22
Shortest Path Trees
3 as root for reverse graph
.41
.41
.29
.29
.29
.45
.21
.21
.32
.51
.36
.32
.38
.32
.36
.50
st Spanning Tree
reverse edges have same weight as forward ones
predecessor vertex in tree
Shortest Path Tree is a spanning tree.
prelude to compact representation, except that
uses next vertex, not predecessor
source Sedgewick, Graph Algorithms
23
All Shortest Paths (Compact)
Total distance of shortest path
Shortest Paths
.41
.29
.29
.45
.21
.51
.32
.38
.32
.36
.50
Entry s,t gives next vertex on shortest path from
s to t.
source Sedgewick, Graph Algorithms
24
All Shortest Paths In a Network
Shortest Path Trees for reverse graph
source Sedgewick, Graph Algorithms
25
Shortest Path Principles Relaxation
  • Relax a constraint to try to improve solution
  • Relaxation of an Edge (u,v)
  • test if shortest path to v found so far can be
    improved by going through u

26
Single Source Shortest Paths Bellman-Ford
for (negative) weighted, directed graph G(V,E)
with no negative-weight cycles
weights
source
why this upper bound?
Time is in O(VE)
update d(v) if d(u)w(u,v) lt d(v)
detect negative-weight cycle
source 91.503 textbook Cormen et al.
27
Bellman-Ford
for (negative) weighted, directed graph
G(V,E) with no negative-weight cycles
source 91.503 textbook Cormen et al.
28
Single Source Shortest Paths Dijkstras
Algorithm
Dijkstras algorithm solves problem efficiently
for the case in which all weights are nonnegative
(as in the example graph).
Dijkstras algorithm maintains a set S of
vertices whose final shortest path weights have
already been determined.
It also maintains, for each vertex v not in S, an
upper bound dv on the weight of a shortest path
from source s to v.
The algorithm repeatedly selects the vertex u e
V S with minimum bound du, inserts u into S,
and relaxes all edges leaving u (determines if
passing through u makes it faster to get to a
vertex adjacent to u).
29
Single Source Shortest Paths Dijkstras
Algorithm
for (nonnegative) weighted, directed graph G(V,E)
implicit DECREASE-KEY
source 91.503 textbook Cormen et al.
30
Single Source Shortest Paths Dijkstras Algorithm
for (nonnegative) weighted, directed graph G(V,E)
shortest path weight
shortest path weight estimate
source 91.503 textbook Cormen et al.
31
Single Source Shortest Paths Dijkstras 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?

Why cant Dijkstras algorithm handle
negative-weight edges?
32
Single Source Shortest Paths Dijkstras Algorithm
for (nonnegative) weighted, directed graph G(V,E)
PFS Priority-First Search generalize graph
search with priority queue to determine next step
source Sedgewick, Graph Algorithms
33
All-Pairs Shortest Paths
for (negative) weighted, directed graph
G(V,E) with no negative-weight cycles
similar to Transitive Closure Algorithm 1
Time O(V4)
source 91.503 textbook Cormen et al.
Note D here is replaced by L in new edition
34
All-Pairs Shortest Paths
similar to Transitive Closure Algorithm 2
Time O(V3lgV)
source 91.503 textbook Cormen et al.
Note D here is replaced by L in new edition
35
All-Pairs Shortest Paths
similar to Transitive Closure Algorithm 3
Warshall
Can have negative-weight edges
Time O(V3)
How can output be used to detect a
negative-weight cycle?
source 91.503 textbook Cormen et al.
Note D here is replaced by L in new edition
36
Food for thought
  • What does the following matrix (the nxn form of
    it) used in shortest-path algorithms correspond
    to in regular matrix multiplication?

Note D here is replaced by L in new edition
37
Shortest Path Algorithms
source Sedgewick, Graph Algorithms
Write a Comment
User Comments (0)
About PowerShow.com