You are on page 1of 31

Greedy Technique

Minimum spanning tree


• Prim’s Algorithm
• Kruskal’s Algorithm

Single Source Shortes Path


Dijkstra’s Algorithm
Optimal Tree Problem
Huffman Trees.

JAN-MAY 2024
• A spanning tree of an undirected connected graph is its connected acyclic subgraph (i.e., a tree)
that contains all the vertices of the graph.
Difficulties in Minimum
Spanning Tree MST
• If we were to try an exhaustive-search approach to
constructing a minimum spanning tree, we would
face two serious obstacles.
• First, the number of spanning trees grows
exponentially with the graph size (at least for
dense graphs).
• Second, generating all spanning trees for a given
graph is not easy; in fact, it is more difficult than
finding a minimum spanning tree for a weighted
graph by using one of several efficient algorithms
available for this problem.
Feb-May 2020
Kruskals
Algorithm
Working
• Sorting the graph's edges in non decreasing order of
their weights.
• Then, starting with the empty sub graph,
– it scans this sorted list adding the next edge on
the list to the current sub graph if such an
inclusion does not create a cycle and simply
skipping the edge otherwise.

Feb-May 2020
Kruskal
Algorithm
• Kruskal’s algorithm is not simpler because it
has to check whether the addition of the next
edge to the edges already selected would
create a cycle.

Feb-May 2020
Feb-May 2020
Feb-May 2020
Prim’s Algorithm
• On each iteration, expand the current tree in the
greedy manner by simply attaching to it the nearest
vertex not in that tree.

• The algorithm stops after all the graph's vertices


have been included in the tree being constructed.
Example from Text
book

Tree vertices Remaining vertices Illustration

JAN-MAY
2024
Example from Text
book

Tree vertices Remaining vertices Illustration

JAN-MAY
2024
Dijkstra's Algorithm
Feb-May 2020
• The shortest paths (identified by following nonnumeric
labels backward from a destination vertex in the left
column to the source) and their lengths (given by
numeric labels of the tree vertices) are as follows:

Feb-May 2020
Dijkstra’s Algorithm won’t work if
graph has negative edge weights

If cost of every edge is increased by 1, whether the shortest path remains same?!

Feb-May 2020
Compression ratio

26
• The resulting codewords are as follows:
DAD is encoded as
10011011011101 is decoded as

27
Feb-May 2020
Anal
ysis
• Average number of bits per symbol in this code
2 * 0.35 + 3 * 0.1+ 2 * 0.2 + 2 * 0.2 + 3 * 0.15 = 2.25.

• Compression ratio (3−2.25)/3*100 = 25%

In other words, Huffman’s encoding of the above text


will use 25% less memory than its fixed-length
encoding.

Feb-May 2020 28
Find MST
using Prims and
Krushkals
Find SSSP taking 0
vertex as starting vertex

You might also like