MST (min spanning tree) - PowerPoint PPT Presentation

About This Presentation
Title:

MST (min spanning tree)

Description:

MST (min spanning tree) – PowerPoint PPT presentation

Number of Views:144
Avg rating:3.0/5.0
Slides: 13
Provided by: Sara3247
Learn more at: http://www.cs.ucf.edu
Category:
Tags: mst | allen | mark | min | spanning | tree | weiss

less

Transcript and Presenter's Notes

Title: MST (min spanning tree)


1
MST (min spanning tree)
2
Minimum Spanning Trees
  • In a weighted, undirected graph, it is a tree
    formed by connecting all of the vertices with
    minimal cost.
  • The MST is a tree because its acyclic.
  • Its spanning because it covers every vertex.
  • And its minimum because it has minimum cost.

2
v1
v2
4
3
1
10
2
7
v4
v3
v5
4
8
6
5
v7
v6
1
2
v1
v2
1
2
v4
v3
v5
4
6
v7
v6
1
3
MSTs proof that greedy works
  • Let G be a graph with vertices in the set V
    partitioned into two sets V1 and V2. Then the
    minimum weight edge, e, that connects a vertex
    from V1 to V2 is part of a minimum spanning tree
    of G.
  • Proof Consider a MST T of G that does NOT
    contain the minimum weight edge e.
  • This MUST have at least one edge in between a
    vertex from V1 to V2. (Otherwise, no vertices
    between those two sets would be connected.)
  • Let G contain edge f that connects V1 to V2.
  • Now, add in edge e to T.
  • This creates a cycle. In particular, there was
    already one path from every vertex in V1 to V2
    and with the addition of e, there are two.
  • Thus, we can form a cycle involving both e and f.
    Now, imagine removing f from this cycle.
  • This new graph, T' is also a spanning tree, but
    it's total weight is less than or equal to T
    because we replaced e with f, and e was the
    minimum weight edge.

4
MSTs proof that greedy works
  • As a spanning tree is created
  • If the edge that is added is the one of minimum
    cost that avoids creation of a cycle.
  • Then the cost of the resulting spanning tree
    cannot be improved
  • Because any replacement edge would have cost at
    least as much as an edge already in the spanning
    tree.
  • This is why greedy works!

5
Kruskals Algorithm
  • Let V ?
  • For i1 to n-1, (where there are n vertices in a
    graph)
  • V V ? e, where e is the edge with the minimum
    edge
  • weight not already in V, and that does
    NOT
  • form a cycle when added to V.
  • Return V
  • Basically, you build the MST of the graph by
    continually adding in the smallest weighted edge
    into the MST that doesn't form a cycle.
  • When you are done, you'll have an MST.
  • You HAVE to make sure you never add an edge the
    forms a cycle and that you always add the minimum
    of ALL the edges left that don't.

6
Kruskals
Given Graph G
Edges in sorted order
2
v1
v2
4
3
1
10
v4
v1
4
2
7
v4
v3
v5
1
v7
4
8
v4
v3
6
5
v7
v6
1
v7
v6
5
1
v6
v5
Determine the MST
2
v1
v2
6
v7
2
v1
v2
4
2
3
1
v4
v3
7
v4
v5
2
CYCLE!
v4
v3
v2
v5
v4
3
4
8
6
v4
v7
v6
v6
v1
v2
1
4
10
All Vertices, were done!!
v3
v5
7
Kruskals
  • The reason this works
  • is that each added edge is connecting between two
    sets of vertices,
  • and since we select the edges in order by weight,
  • we are always selecting the minimum edge weight
    that connects the two sets of vertices.
  • Cycle detection
  • Keep track of disjoint sets.
  • Initially, each vertex is in its own disjoint
    set.
  • When you add an edge you are unioning two sets.
  • A union cannot happen if the two vertices are
    already in the same set.
  • This would create a cycle.

8
Prims Algorithm
  • This is quite similar to Kruskal's with one big
    difference
  • The tree that you are "growing" ALWAYS stays
    connected.
  • Whereas in Kruskal's you could add an edge to
    your growing tree that wasn't connected to the
    rest of it, here you can NOT do it.
  • Here is the algorithm
  • 1) Set S ?.
  • 1) Pick any vertex in the graph.
  • 2) Add the minimum edge incident to that vertex
    to S.
  • 3) Continue to add edges into S (n-2 more times)
    using the
  • following rule
  •  
  • Add the minimum edge weight to S that is
    incident to S
  • but that doesn't form a cycle when added to
    S.

9
Prims
Given Graph G
2
v1
v2
Edges in sorted order
4
3
1
10
2
7
v4
v4
v3
v5
v1
4
4
8
1
6
5
v7
v7
v6
v4
v3
1
v7
v6
5
Determine the MST, using Prims starting with
vertexV1
1
v6
v5
2
v1
v2
6
v7
2
v1
v2
4
2
3
v4
v3
7
1
v4
v5
2
CYCLE!
v4
v3
v2
v5
v4
3
4
8
6
v4
v6
v7
v6
v1
v2
1
4
10
All Vertices, were done!!
v3
v5
10
Huffman Encoding
  • Compress the storage of data using variable
    length codes.
  • For example, each character in a text file is
    stored using 8 bits.
  • Nice and easy because we always read in 8 bits
    for a single character.
  • Not the most efficient
  • What if e is used 10 times more frequently than
    q.
  • It would be more advantageous for us to use a 7
    bit code for e and a 9 bit code for q.

11
Huffman Coding
  • Finds the optimal way to take advantage of
    varying character frequencies in a particular
    file.
  • On average, standard files can shrink them
    anywhere from 10 to 30 depending on the
    character distribution.
  • The idea behind the coding is to give less
    frequent characters and groups of characters
    longer codes.
  • Also, the coding is constructed in such a way
    that no two constructed codes are prefixes of
    each other.
  • This property about the code is crucial with
    respect to easily deciphering the code.

12
References
  • Slides adapted from Arup Guhas Computer Science
    II Lecture notes http//www.cs.ucf.edu/dmarino/
    ucf/cop3503/lectures/
  • Additional material from the textbook
  • Data Structures and Algorithm Analysis in Java
    (Second Edition) by Mark Allen Weiss
  • Additional images
  • www.wikipedia.com
  • xkcd.com
Write a Comment
User Comments (0)
About PowerShow.com