weighted graphs minimum spanning trees kruskal’s algorithm prim… · 2015-03-30 ·...

11
CS 5633 Analysis of Algorithms Chapter 22: Slide – 1 Minimum Spanning Trees Weighted Graphs Minimum Spanning Trees Kruskal’s Algorithm Prim’s Algorithm

Upload: others

Post on 13-Jul-2020

16 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Weighted Graphs Minimum Spanning Trees Kruskal’s Algorithm Prim… · 2015-03-30 · MinimumSpanningTrees weightedgraphs wgproblems ⊲minimum spanningtrees mstanalysis kruskal

CS 5633 Analysis of Algorithms Chapter 22: Slide – 1

Minimum Spanning Trees

Weighted GraphsMinimum Spanning TreesKruskal’s AlgorithmPrim’s Algorithm

Page 2: Weighted Graphs Minimum Spanning Trees Kruskal’s Algorithm Prim… · 2015-03-30 · MinimumSpanningTrees weightedgraphs wgproblems ⊲minimum spanningtrees mstanalysis kruskal

Weighted Graphs

⊲ weighted graphs

wg problems

minimum spanning

trees

mst analysis

kruskal

kruskal example

kruskal analysis

prim

prim example

prim analysis

CS 5633 Analysis of Algorithms Chapter 22: Slide – 2

A weighted graph is a graph in which each edge(u, v) has a weight w(u, v). Each weight is a realnumber. Weights can represent distance, cost,time, capacity, etc.

a

b d

e

fgh

i

c1

23

7

85

54 7

9

6

4

8

Page 3: Weighted Graphs Minimum Spanning Trees Kruskal’s Algorithm Prim… · 2015-03-30 · MinimumSpanningTrees weightedgraphs wgproblems ⊲minimum spanningtrees mstanalysis kruskal

Weighted Graphs Problems

weighted graphs

⊲ wg problems

minimum spanning

trees

mst analysis

kruskal

kruskal example

kruskal analysis

prim

prim example

prim analysis

CS 5633 Analysis of Algorithms Chapter 22: Slide – 3

Optimization Problems for Weighted Graphs:Find a minimum spanning tree.Find shortest paths between vertices.Maximize flow from a source to a sink.Traveling salesman problem.

Variations on Problems:Undirected/directed graphsNegative weights

Page 4: Weighted Graphs Minimum Spanning Trees Kruskal’s Algorithm Prim… · 2015-03-30 · MinimumSpanningTrees weightedgraphs wgproblems ⊲minimum spanningtrees mstanalysis kruskal

Minimum Spanning Trees

weighted graphs

wg problems

⊲minimum

spanning trees

mst analysis

kruskal

kruskal example

kruskal analysis

prim

prim example

prim analysis

CS 5633 Analysis of Algorithms Chapter 22: Slide – 4

A spanning tree T of a weighted, undirected graphG is a subset of edges that form a (free) tree.If G has |V | vertices, then T has |V | − 1 edges.

A minimum spanning tree (MST) is a spanningtree with a minimum sum of weights.

Consider any cut of vertices S and V − S.Let E ′ be the edges between S and S − V .

Theorem: A MST has a minimum weight edge(called a light edge) from E ′.

Page 5: Weighted Graphs Minimum Spanning Trees Kruskal’s Algorithm Prim… · 2015-03-30 · MinimumSpanningTrees weightedgraphs wgproblems ⊲minimum spanningtrees mstanalysis kruskal

Minimum Spanning Tree Analysis

weighted graphs

wg problems

minimum spanning

trees

⊲ mst analysis

kruskal

kruskal example

kruskal analysis

prim

prim example

prim analysis

CS 5633 Analysis of Algorithms Chapter 22: Slide – 5

Proof:

Suppose T is a spanning tree with no such edge.We can show T cannot be a MST.

Let (u, v) be a minimum weight edge from E ′.T has a path between u and v.Some edge (x, y) on this path is in E ′.Replacing (x, y) with (u, v) decreases the sum.Implies T is not a minimum spanning tree.

Algorithm idea:Find light edges without making cycles.

Page 6: Weighted Graphs Minimum Spanning Trees Kruskal’s Algorithm Prim… · 2015-03-30 · MinimumSpanningTrees weightedgraphs wgproblems ⊲minimum spanningtrees mstanalysis kruskal

Kruskal’s Algorithm

weighted graphs

wg problems

minimum spanning

trees

mst analysis

⊲ kruskal

kruskal example

kruskal analysis

prim

prim example

prim analysis

CS 5633 Analysis of Algorithms Chapter 22: Slide – 6

MST-Kruskal(G,w)T ← ∅for each vertex v ∈ G.V

Make-Set(v)for each edge (u, v) ∈ G.E in ascending order

if Find-Set(u) 6= Find-Set(v)T ← T ∪ {(u, v)}Union(u, v)exit loop if all vertices are unioned

return T

Page 7: Weighted Graphs Minimum Spanning Trees Kruskal’s Algorithm Prim… · 2015-03-30 · MinimumSpanningTrees weightedgraphs wgproblems ⊲minimum spanningtrees mstanalysis kruskal

Kruskal Example

weighted graphs

wg problems

minimum spanning

trees

mst analysis

kruskal

⊲ kruskal example

kruskal analysis

prim

prim example

prim analysis

CS 5633 Analysis of Algorithms Chapter 22: Slide – 7

Page 8: Weighted Graphs Minimum Spanning Trees Kruskal’s Algorithm Prim… · 2015-03-30 · MinimumSpanningTrees weightedgraphs wgproblems ⊲minimum spanningtrees mstanalysis kruskal

Kruskal Analysis

weighted graphs

wg problems

minimum spanning

trees

mst analysis

kruskal

kruskal example

⊲ kruskal analysis

prim

prim example

prim analysis

CS 5633 Analysis of Algorithms Chapter 22: Slide – 8

Proof of correctness: (u, v) is a light edge betweenFind-Set(u) and the other vertices.

Use disjoint-set forest for union-find, almost O(E).Use O(E lgE) sorting algorithm or binary heap.MST-Kruskal is O(E lgE) = O(E lg V ).

Page 9: Weighted Graphs Minimum Spanning Trees Kruskal’s Algorithm Prim… · 2015-03-30 · MinimumSpanningTrees weightedgraphs wgproblems ⊲minimum spanningtrees mstanalysis kruskal

Prims’s Algorithm

weighted graphs

wg problems

minimum spanning

trees

mst analysis

kruskal

kruskal example

kruskal analysis

⊲ prim

prim example

prim analysis

CS 5633 Analysis of Algorithms Chapter 22: Slide – 9

MST-Prim(G,w, r)for each vertex v in G

v.key ← ∞r.key ← 0r.π ← nil

Q ← G.V

while Q is not emptyu ← Extract-Min(Q)for each v ∈ G.Adj[u]

if v ∈ Q and w(u, v) < v.key

v.π ← u

Decrease-Key(Q, v, w(u, v))

Page 10: Weighted Graphs Minimum Spanning Trees Kruskal’s Algorithm Prim… · 2015-03-30 · MinimumSpanningTrees weightedgraphs wgproblems ⊲minimum spanningtrees mstanalysis kruskal

Prim Example

weighted graphs

wg problems

minimum spanning

trees

mst analysis

kruskal

kruskal example

kruskal analysis

prim

⊲ prim example

prim analysis

CS 5633 Analysis of Algorithms Chapter 22: Slide – 10

Page 11: Weighted Graphs Minimum Spanning Trees Kruskal’s Algorithm Prim… · 2015-03-30 · MinimumSpanningTrees weightedgraphs wgproblems ⊲minimum spanningtrees mstanalysis kruskal

Prim Analysis

weighted graphs

wg problems

minimum spanning

trees

mst analysis

kruskal

kruskal example

kruskal analysis

prim

prim example

⊲ prim analysis

CS 5633 Analysis of Algorithms Chapter 22: Slide – 11

Proof of correctness:Q is the vertices not yet added to the tree.If v ∈ Q, then (v.π, v) is the smallest edge from v

to V −Q, and v.key is its weight.The minimum value in Q must be a light edgebetween Q and V −Q.

Use binary heap for priority queue, O(V ) elts.O(V ) Extract-Mins is O(V lg V ).O(E) Decrease-Keys is O(E lg V ).MST-Prim is O(E lg V ) = O(E lgE).Using Fibonocci heaps makes it O(E + V lg V ).