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
3Introductory 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.
4Introductory Graph ConceptsRepresentations
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.
5Introductory 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.
6Introductory 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.
7Elementary 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
8Elementary 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.
9Elementary 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.
10Minimum 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.
11Minimum 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?
12Shortest Paths
Chapters 24 25
13BFS 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
14Shortest 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
15Transitive 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
16Transitive Closure (Matrix)
G2
G
self-loops added for algorithmic purposes
G
G2
Boolean Matrix Product and, or replace ,
source Sedgewick, Graph Algorithms
17Transitive 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
18Transitive Closure (Matrix)
Warshall
good for dense graphs
source Sedgewick, Graph Algorithms
19Transitive 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
20Shortest 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
21All Shortest Paths
.41
.29
.29
.45
.21
.51
.32
.38
.32
.36
.50
source Sedgewick, Graph Algorithms
22Shortest 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
23All 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
24All Shortest Paths In a Network
Shortest Path Trees for reverse graph
source Sedgewick, Graph Algorithms
25Shortest 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
26Single 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.
27Bellman-Ford
for (negative) weighted, directed graph
G(V,E) with no negative-weight cycles
source 91.503 textbook Cormen et al.
28Single 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).
29Single Source Shortest Paths Dijkstras
Algorithm
for (nonnegative) weighted, directed graph G(V,E)
implicit DECREASE-KEY
source 91.503 textbook Cormen et al.
30Single 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.
31Single 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?
32Single 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
33All-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
34All-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
35All-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
36Food 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
37Shortest Path Algorithms
source Sedgewick, Graph Algorithms