SlideShare a Scribd company logo
Graphs > Discrete structures , Data Structures & Algorithums
Minimum Spanning Tree:
Prim's Algorithm
Prim's algorithm for finding an MST is a greedy

algorithm.
Start by selecting an arbitrary vertex, include it into
the current MST.
Grow the current MST by inserting into it the vertex
closest to one of the vertices already in current MST.
Minimum Spanning Tree
Problem: given a connected, undirected, weighted

graph, find a spanning tree using edges that minimize
the total weight
6

4
5

9

14

2

10

15
3

8
Prim’s Algorithm
MST-Prim(G, w, r)
Q = V[G];
for each u ∈ Q
key[u] = ∞;
key[r] = 0;
p[r] = NULL;
while (Q not empty)
u = ExtractMin(Q);
for each v ∈ Adj[u]
if (v ∈ Q and w(u,v) < key[v])
p[v] = u;
key[v] = w(u,v);
Prim’s Algorithm
MST-Prim(G, w, r)
6
Q = V[G];
5
for each u ∈ Q
key[u] = ∞;
key[r] = 0;
14
10
p[r] = NULL;
while (Q not empty)
u = ExtractMin(Q);
for each v ∈ Adj[u]
3
if (v ∈ Q and w(u,v) < key[v])
Run
p[v] = u;
key[v] = w(u,v);

4

9
2
15

8

on example graph
Prim’s Algorithm
MST-Prim(G, w, r)
∞
6
Q = V[G];
5
for each u ∈ Q
∞
key[u] = ∞;
key[r] = 0;
14
10
p[r] = NULL;
while (Q not empty)
∞
u = ExtractMin(Q);
for each v ∈ Adj[u]
3
∞
if (v ∈ Q and w(u,v) < key[v])
Run
p[v] = u;
key[v] = w(u,v);

4

∞

9

∞

2

∞

15

8

on example graph

∞
Prim’s Algorithm

MST-Prim(G, w, r)
∞
6
Q = V[G];
5
for each u ∈ Q
∞
key[u] = ∞;
key[r] = 0;
14
10
p[r] = NULL;
while (Q not empty)
0
r
u = ExtractMin(Q);
for each v ∈ Adj[u]
3
∞
if (v ∈ Q and w(u,v) < key[v])
Pick
p[v] = u;
key[v] = w(u,v);

4

∞

9

∞

2

∞
8

a start vertex r

15

∞
Prim’s Algorithm
MST-Prim(G, w, r)
∞
6
4
Q = V[G];
5
for each u ∈ Q
∞
∞
key[u] = ∞;
key[r] = 0;
14
2
10
p[r] = NULL;
while (Q not empty)
0
∞
u
u = ExtractMin(Q);
for each v ∈ Adj[u]
3
8
∞
if (v ∈ Q and w(u,v) < key[v])
Black vertices have been
p[v] = u;
key[v] = w(u,v);

9

15

∞

∞

removed from Q
Prim’s Algorithm

MST-Prim(G, w, r)
∞
6
4
Q = V[G];
5
for each u ∈ Q
∞
key[u] = ∞;
14
key[r] = 0;
10
p[r] = NULL;
0
u
while (Q not empty)
u = ExtractMin(Q);
3
8
3
for each v ∈ Adj[u]
if (v ∈ Q and w(u,v) < key[v])
p[v] = u;
Black arrows
key[v] = w(u,v);

∞

9

∞

2

∞

15

∞

indicate parent pointers
Prim’s Algorithm

6

∞

5
MST-Prim(G, w, r)
14
Q = V[G];
for each u ∈ Q
14
10
key[u] = ∞;
key[r] = 0;
0
u
p[r] = NULL;
3
3
while (Q not empty)
u = ExtractMin(Q);
for each v ∈ Adj[u]
if (v ∈ Q and w(u,v) < key[v])
p[v] = u;
key[v] = w(u,v);

4

∞

9

∞

2

∞
8

15

∞
Prim’s Algorithm

6

∞

5
MST-Prim(G, w, r)
14
Q = V[G];
for each u ∈ Q
14
10
key[u] = ∞;
key[r] = 0;
0
p[r] = NULL;
3
3
while (Q not empty)
u
u = ExtractMin(Q);
for each v ∈ Adj[u]
if (v ∈ Q and w(u,v) < key[v])
p[v] = u;
key[v] = w(u,v);

4

∞

9

∞

2

∞
8

15

∞
Prim’s Algorithm

6

∞

5
MST-Prim(G, w, r)
14
Q = V[G];
for each u ∈ Q
14
10
key[u] = ∞;
key[r] = 0;
0
p[r] = NULL;
3
3
while (Q not empty)
u
u = ExtractMin(Q);
for each v ∈ Adj[u]
if (v ∈ Q and w(u,v) < key[v])
p[v] = u;
key[v] = w(u,v);

4

∞

9

∞

2

8
8

15

∞
Prim’s Algorithm

6

∞

5
MST-Prim(G, w, r)
10
Q = V[G];
for each u ∈ Q
14
10
key[u] = ∞;
key[r] = 0;
0
p[r] = NULL;
3
3
while (Q not empty)
u
u = ExtractMin(Q);
for each v ∈ Adj[u]
if (v ∈ Q and w(u,v) < key[v])
p[v] = u;
key[v] = w(u,v);

4

∞

9

∞

2

8
8

15

∞
Prim’s Algorithm

6

∞

5
MST-Prim(G, w, r)
10
Q = V[G];
for each u ∈ Q
14
10
key[u] = ∞;
key[r] = 0;
0
p[r] = NULL;
3
3
while (Q not empty)
u = ExtractMin(Q);
for each v ∈ Adj[u]
if (v ∈ Q and w(u,v) < key[v])
p[v] = u;
key[v] = w(u,v);

4

∞

9

∞

2

8
8

u

15

∞
Prim’s Algorithm

6

∞

5
MST-Prim(G, w, r)
10
Q = V[G];
for each u ∈ Q
14
10
key[u] = ∞;
key[r] = 0;
0
p[r] = NULL;
3
3
while (Q not empty)
u = ExtractMin(Q);
for each v ∈ Adj[u]
if (v ∈ Q and w(u,v) < key[v])
p[v] = u;
key[v] = w(u,v);

4

9

2

∞

2

8
8

u

15

∞
Prim’s Algorithm

6

∞

5
MST-Prim(G, w, r)
10
Q = V[G];
for each u ∈ Q
14
10
key[u] = ∞;
key[r] = 0;
0
p[r] = NULL;
3
3
while (Q not empty)
u = ExtractMin(Q);
for each v ∈ Adj[u]
if (v ∈ Q and w(u,v) < key[v])
p[v] = u;
key[v] = w(u,v);

4

9

2

∞

2

8
8

u

15

15
Prim’s Algorithm

6

∞

5
MST-Prim(G, w, r)
10
Q = V[G];
for each u ∈ Q
14
10
key[u] = ∞;
key[r] = 0;
0
p[r] = NULL;
3
3
while (Q not empty)
u = ExtractMin(Q);
for each v ∈ Adj[u]
if (v ∈ Q and w(u,v) < key[v])
p[v] = u;
key[v] = w(u,v);

u

4

9

2

∞

2

8
8

15

15
Prim’s Algorithm

6

4

5
MST-Prim(G, w, r)
10
Q = V[G];
for each u ∈ Q
14
10
key[u] = ∞;
key[r] = 0;
0
p[r] = NULL;
3
3
while (Q not empty)
u = ExtractMin(Q);
for each v ∈ Adj[u]
if (v ∈ Q and w(u,v) < key[v])
p[v] = u;
key[v] = w(u,v);

u

4

9

2

∞

2

8
8

15

15
Prim’s Algorithm

6

4

5
MST-Prim(G, w, r)
5
Q = V[G];
for each u ∈ Q
14
10
key[u] = ∞;
key[r] = 0;
0
p[r] = NULL;
3
3
while (Q not empty)
u = ExtractMin(Q);
for each v ∈ Adj[u]
if (v ∈ Q and w(u,v) < key[v])
p[v] = u;
key[v] = w(u,v);

u

4

9

2

∞

2

8
8

15

15
Prim’s Algorithm

6

4

5
MST-Prim(G, w, r)
5
Q = V[G];
for each u ∈ Q
14
10
key[u] = ∞;
key[r] = 0;
0
p[r] = NULL;
3
3
while (Q not empty)
u = ExtractMin(Q);
for each v ∈ Adj[u]
if (v ∈ Q and w(u,v) < key[v])
p[v] = u;
key[v] = w(u,v);

u

4

9

2

9

2

8
8

15

15
Prim’s Algorithm

6

4

5
MST-Prim(G, w, r)
5
Q = V[G];
for each u ∈ Q
14
10
key[u] = ∞;
key[r] = 0;
0
p[r] = NULL;
3
3
while (Q not empty)
u = ExtractMin(Q);
for each v ∈ Adj[u]
if (v ∈ Q and w(u,v) < key[v])
p[v] = u;
key[v] = w(u,v);

4

u
9

2

9

2

8
8

15

15
Prim’s Algorithm
u

6

4

5
MST-Prim(G, w, r)
5
Q = V[G];
for each u ∈ Q
14
10
key[u] = ∞;
key[r] = 0;
0
p[r] = NULL;
3
3
while (Q not empty)
u = ExtractMin(Q);
for each v ∈ Adj[u]
if (v ∈ Q and w(u,v) < key[v])
p[v] = u;
key[v] = w(u,v);

4

9

2

9

2

8
8

15

15
Prim’s Algorithm

6

4

5
MST-Prim(G, w, r)
5
Q = V[G];
for each u ∈ Q
14
10
key[u] = ∞;
key[r] = 0;
0
p[r] = NULL;
3
3
while (Q not empty)
u = ExtractMin(Q);
for each v ∈ Adj[u]
if (v ∈ Q and w(u,v) < key[v])
p[v] = u;
key[v] = w(u,v);

u

4

9

2

9

2

8
8

15

15
Prim’s Algorithm

6

4

5
MST-Prim(G, w, r)
5
Q = V[G];
for each u ∈ Q
14
10
key[u] = ∞;
key[r] = 0;
0
p[r] = NULL;
3
3
while (Q not empty)
u = ExtractMin(Q);
for each v ∈ Adj[u]
if (v ∈ Q and w(u,v) < key[v])
p[v] = u;
key[v] = w(u,v);

4

9

2

u

2

8
8

9

15

15
Review: Prim’s Algorithm
MST-Prim(G, w, r)
Q = V[G];
for each u ∈ Q
key[u] = ∞;
key[r] = 0;
p[r] = NULL;
while (Q not empty)
u = ExtractMin(Q);
for each v ∈ Adj[u]
if (v ∈ Q and w(u,v) < key[v])
p[v] = u;
key[v] = w(u,v);
Dijkstra’s Algorithm
Similar to (BFS) Breadth-First Search
Grow a tree gradually, advancing from vertices taken from a

queue

Also similar to Prim’s algorithm for MST
Use a priority queue keyed on d[v]
Shortest Path for Weighted Graphs
Given a graph G

= (V, E) with edge costs
c(e), and a vertex s ∈ V, find the shortest
(lowest cost) path from s to every vertex in V

Assume: only positive edge costs
Dijkstra’s Algorithm for
Single Source Shortest Path
Similar to breadth-first search, but uses a heap

instead of a queue:

Always select (expand) the vertex that has a lowest-cost

path to the start vertex

Correctly handles the case where the lowest-cost

(shortest) path to a vertex is not the one with fewest
edges
Dijkstra, Edsger Wybe
Legendary figure in computer science; was
a professor at University of Texas.
Supported teaching introductory
computer courses without computers
(pencil and paper programming)
Supposedly wouldn’t (until very late in
life) read his e-mail; so, his staff had to
print out messages and put them in his
box.

E.W. Dijkstra (1930-2002)

1972 Turning Award Winner,
Programming Languages, semaphores, and …
Graphs > Discrete structures , Data Structures & Algorithums
Graphs > Discrete structures , Data Structures & Algorithums
Graphs > Discrete structures , Data Structures & Algorithums
Graphs > Discrete structures , Data Structures & Algorithums
Graphs > Discrete structures , Data Structures & Algorithums
Graphs > Discrete structures , Data Structures & Algorithums
Graphs > Discrete structures , Data Structures & Algorithums
Final Table
Dijkstra’s Algorithm: Idea
Adapt BFS to handle
weighted graphs
Two kinds of vertices:
–

Finished or known
vertices
•

–

Shortest distance has
been computed

Unknown vertices
•

Have tentative
distance

38
Dijkstra’s Algorithm: Idea
At each step:
Pick closest unknown
vertex
2) Add it to known
vertices
3) Update distances
1)

39
Dijkstra’s Algorithm: Pseudocode
Initialize the cost of each node to ∞
Initialize the cost of the source to 0
While there are unknown nodes left in the graph
Select an unknown node b with the lowest cost
Mark b as known
For each node a adjacent to b
a’s cost = min(a’s old cost, b’s cost + cost of (b, a))
a’s prev path node = b

40
Important Features
Once a vertex is made known, the cost of the shortest

path to that node is known
While a vertex is still not known, another shorter
path to it might still be found

41
Dijkstra’s Algorithm in action
0



2

2

B

A



2

 D

C

3


E

Vertex

Visited?

Cost

A

??

F

??

G

??

H

??

Found by

??

E



??

D

1

??

C



0

B

1

G

11

7

H

2

10

9

3

F

1
4



42
Dijkstra’s Algorithm in action
0

2

2

2

B

A



C

2

4 D

3

1
E

Vertex

Visited?

Cost

A

Y

1

G

11

7

H

2

10

9

3

F

1
4





1


Found by

0

B

<=2

A

C

<=1

A

D

<=4

A

E

??

F

??

G

??

H

??

43
Dijkstra’s Algorithm in action
0

2

2

2

B

A



C

2

4 D

3

1
E

Vertex

Visited?

Cost

A

Y

1

G

11

7

H

2

10

9

3

F

1
4



12



1

0

B

Found by

<=2

A

1

A

D

<=4

A

E

<=12

C

F

??

G

??

H

??

C

Y

44
Dijkstra’s Algorithm in action
0

2

2

2

B

A

4

C

2

4 D

3

1
E

1

G

11

7

H

2

10

9

3

F

1
4



12



1

Vertex

Visited?

Cost

Found by

A

Y

0

B

Y

2

A

C

Y

1

A

D

<=4

A

E

<=12

C

F

<=4

B

G

??

H

??

45
Dijkstra’s Algorithm in action
0

2

2

2

B

A

4

C

2

4 D

3

1
E

1

G

11

7

H

2

10

9

3

F

1
4



12



1

Vertex

Visited?

Cost

Found by

A

Y

0

B

Y

2

A

C

Y

1

A

D

Y

4

A

E

<=12

C

F

<=4

B

G

??

H

??

46
Dijkstra’s Algorithm in action
0

2

2

2

B

A

4

C

2

4 D

3

1
E

1

G

11

7

H

2

10

9

3

F

1
4

7

12



1

Vertex

Visited?

Cost

A

Y

0

B

Y

2

A

C

Y

1

A

D

Y

4

A

<=12

C

4

B

E
F

Y

G

??

H

<=7

Found by

F

47
Dijkstra’s Algorithm in action
0

2

2

2

B

A

4

C

2

4 D

2

10

9

11

E

H
1

G 8

3

1

7

3

F

1
4

7

12

1

Vertex

Visited?

Cost

A

Y

0

B

Y

2

A

C

Y

1

A

D

Y

4

A

<=12

C

4

B

<=8

H

7

F

E
F

Y

G
H

Y

Found by

48
Dijkstra’s Algorithm in action
0

2

2

2

B

A

4

C

2

4 D

2

10

9

11

E

H
1

G 8

3

1

7

3

F

1
4

7

11

1

Vertex

Visited?

Cost

A

Y

0

B

Y

2

A

C

Y

1

A

D

Y

4

A

<=11

G

E

Found by

F

Y

4

B

G

Y

8

H

H

Y

7

F

49
Dijkstra’s Algorithm in action
0

2

2

2

B

A

4

C

2

4 D

2

10

9

11

E

H
1

G 8

3

1

7

3

F

1
4

7

11

1

Vertex

Visited?

Cost

Found by

A

Y

0

B

Y

2

A

C

Y

1

A

D

Y

4

A

E

Y

11

G

F

Y

4

B

G

Y

8

H

H

Y

7

F

50
Time Complexity of Dijskrs Algorithm

The efficiency of the Dijskras’s algorithm is analyzed by the iteration of the
loop structures. The while loop iteration n – 1 times to visit the minimum
weighted edge. Potentially loop must be repeated n times to examine every
vertices in the graph. So the time complexity is O(n2).
QUIZ

1. Find the BREATH-FIRST spanning tree and depth-first spanning tree of the
graph GA shown above.

More Related Content

What's hot (20)

DOCX
3 capitulo-iii-matriz-asociada-sem-13-t-l-c
FernandoDanielMamani1
 
PDF
corripio
Sabrina Amaral
 
PDF
Capitulo 2 corripio
omardavid01
 
PDF
IIT JAM PHYSICS - PH 2022 Question Paper | Sourav Sir's Classes
SOURAV DAS
 
PDF
MinFill_Presentation
Anna Lasota
 
PPTX
Inner product spaces
gidc engineering college
 
DOCX
3 capitulo-iii-matriz-asociada-sem-14-t-l-d
FernandoDanielMamani1
 
PPT
Randomized algorithms ver 1.0
Dr. C.V. Suresh Babu
 
PPT
Conference ppt
Zeeshan Khalid
 
PDF
IIT JAM MATH 2021 Question Paper | Sourav Sir's Classes
SOURAV DAS
 
PDF
Common derivatives integrals
olziich
 
PDF
SPSF04 - Euler and Runge-Kutta Methods
Syeilendra Pramuditya
 
PPTX
Unit1
manojsingh786
 
PPTX
Cauchy integral theorem &amp; formula (complex variable & numerical method )
Digvijaysinh Gohil
 
PPTX
8 queens problem using back tracking
Tech_MX
 
PDF
University of manchester mathematical formula tables
Gaurav Vasani
 
PPTX
Fuzzy graph
MSheelaSheela
 
PPTX
Complex analysis
sujathavvv
 
PPT
Orthogonal basis and gram schmidth process
gidc engineering college
 
DOC
Unit 4 jwfiles
Nv Thejaswini
 
3 capitulo-iii-matriz-asociada-sem-13-t-l-c
FernandoDanielMamani1
 
corripio
Sabrina Amaral
 
Capitulo 2 corripio
omardavid01
 
IIT JAM PHYSICS - PH 2022 Question Paper | Sourav Sir's Classes
SOURAV DAS
 
MinFill_Presentation
Anna Lasota
 
Inner product spaces
gidc engineering college
 
3 capitulo-iii-matriz-asociada-sem-14-t-l-d
FernandoDanielMamani1
 
Randomized algorithms ver 1.0
Dr. C.V. Suresh Babu
 
Conference ppt
Zeeshan Khalid
 
IIT JAM MATH 2021 Question Paper | Sourav Sir's Classes
SOURAV DAS
 
Common derivatives integrals
olziich
 
SPSF04 - Euler and Runge-Kutta Methods
Syeilendra Pramuditya
 
Cauchy integral theorem &amp; formula (complex variable & numerical method )
Digvijaysinh Gohil
 
8 queens problem using back tracking
Tech_MX
 
University of manchester mathematical formula tables
Gaurav Vasani
 
Fuzzy graph
MSheelaSheela
 
Complex analysis
sujathavvv
 
Orthogonal basis and gram schmidth process
gidc engineering college
 
Unit 4 jwfiles
Nv Thejaswini
 

Viewers also liked (8)

PPT
Algorithm Design and Complexity - Course 9
Traian Rebedea
 
PDF
Skiena algorithm 2007 lecture13 minimum spanning trees
zukun
 
PPTX
Feature Selection
Lippo Group Digital
 
PPTX
Application of graph theory in drug design
Reihaneh Safavi
 
PPT
Applications of graphs
Tech_MX
 
PPTX
Interesting applications of graph theory
Tech_MX
 
PPT
Graph theory
Jeane Paguio
 
PPT
Slideshare Powerpoint presentation
elliehood
 
Algorithm Design and Complexity - Course 9
Traian Rebedea
 
Skiena algorithm 2007 lecture13 minimum spanning trees
zukun
 
Feature Selection
Lippo Group Digital
 
Application of graph theory in drug design
Reihaneh Safavi
 
Applications of graphs
Tech_MX
 
Interesting applications of graph theory
Tech_MX
 
Graph theory
Jeane Paguio
 
Slideshare Powerpoint presentation
elliehood
 
Ad

Similar to Graphs > Discrete structures , Data Structures & Algorithums (20)

PPT
Lec-35Graph - Copy Graph therory in Data strucure
Anil Yadav
 
PPT
lecture 20
sajinsc
 
PDF
algoritm prim kruskal review time complexity .pdf
keshavrohilla987
 
PPTX
Prim's algorithm
Pankaj Thakur
 
PPT
prims algorithm for algorithms for cs st
DhrubajyotiDas70
 
PPT
2.3 shortest path dijkstra’s
Krish_ver2
 
PPT
Unit 5 session 2 MinimumSpanningTrees.ppt
prithivr1
 
PPT
lecture 22
sajinsc
 
PDF
Shortest Path in Graph
Dr Sandeep Kumar Poonia
 
PPT
algorthm analysis from computer scince.ppt
AbrehamHgiorgis
 
PDF
module4_dynamic programming_2022.pdf
Shiwani Gupta
 
PPT
lecture 21
sajinsc
 
PPTX
lec6.pptx
nuredinabdellah2
 
PDF
All pairs shortest path algorithm
Srikrishnan Suresh
 
PPTX
Dijkstra’s algorithm
faisal2204
 
PPT
Greedy Approach in Design Analysis and Algorithms
NikunjGoyal20
 
PDF
Minimum spanning tree
Amit Kumar Rathi
 
PPT
lecture2faafffffffffffffffaaaaaaaaaaa4.ppt
ShohidulIslamSovon
 
PDF
Algorithms explained
PIYUSH Dubey
 
PPT
Lec-35Graph - Graph - Copy in Data Structure
Anil Yadav
 
Lec-35Graph - Copy Graph therory in Data strucure
Anil Yadav
 
lecture 20
sajinsc
 
algoritm prim kruskal review time complexity .pdf
keshavrohilla987
 
Prim's algorithm
Pankaj Thakur
 
prims algorithm for algorithms for cs st
DhrubajyotiDas70
 
2.3 shortest path dijkstra’s
Krish_ver2
 
Unit 5 session 2 MinimumSpanningTrees.ppt
prithivr1
 
lecture 22
sajinsc
 
Shortest Path in Graph
Dr Sandeep Kumar Poonia
 
algorthm analysis from computer scince.ppt
AbrehamHgiorgis
 
module4_dynamic programming_2022.pdf
Shiwani Gupta
 
lecture 21
sajinsc
 
lec6.pptx
nuredinabdellah2
 
All pairs shortest path algorithm
Srikrishnan Suresh
 
Dijkstra’s algorithm
faisal2204
 
Greedy Approach in Design Analysis and Algorithms
NikunjGoyal20
 
Minimum spanning tree
Amit Kumar Rathi
 
lecture2faafffffffffffffffaaaaaaaaaaa4.ppt
ShohidulIslamSovon
 
Algorithms explained
PIYUSH Dubey
 
Lec-35Graph - Graph - Copy in Data Structure
Anil Yadav
 
Ad

More from Ain-ul-Moiz Khawaja (17)

PPT
Algo>Queues
Ain-ul-Moiz Khawaja
 
PPT
Application of Stacks
Ain-ul-Moiz Khawaja
 
PPT
Algo>Stacks
Ain-ul-Moiz Khawaja
 
PPT
Analysis of Algorithum
Ain-ul-Moiz Khawaja
 
PPT
Algo>ADT list & linked list
Ain-ul-Moiz Khawaja
 
PPT
Algo>Arrays
Ain-ul-Moiz Khawaja
 
PPT
Algo>Abstract data type
Ain-ul-Moiz Khawaja
 
PPT
Algorithum Analysis
Ain-ul-Moiz Khawaja
 
PPT
Sorting algorithums > Data Structures & Algorithums
Ain-ul-Moiz Khawaja
 
PPT
Sorting algos > Data Structures & Algorithums
Ain-ul-Moiz Khawaja
 
PPT
Huffman > Data Structures & Algorithums
Ain-ul-Moiz Khawaja
 
PPT
Data Structures & Algorithms
Ain-ul-Moiz Khawaja
 
PPTX
Turn over
Ain-ul-Moiz Khawaja
 
PPTX
Attribution Theories
Ain-ul-Moiz Khawaja
 
PPTX
Attribution Theory
Ain-ul-Moiz Khawaja
 
PPTX
Absenteeism
Ain-ul-Moiz Khawaja
 
PPT
HRM Employee Turnover
Ain-ul-Moiz Khawaja
 
Algo>Queues
Ain-ul-Moiz Khawaja
 
Application of Stacks
Ain-ul-Moiz Khawaja
 
Algo>Stacks
Ain-ul-Moiz Khawaja
 
Analysis of Algorithum
Ain-ul-Moiz Khawaja
 
Algo>ADT list & linked list
Ain-ul-Moiz Khawaja
 
Algo>Arrays
Ain-ul-Moiz Khawaja
 
Algo>Abstract data type
Ain-ul-Moiz Khawaja
 
Algorithum Analysis
Ain-ul-Moiz Khawaja
 
Sorting algorithums > Data Structures & Algorithums
Ain-ul-Moiz Khawaja
 
Sorting algos > Data Structures & Algorithums
Ain-ul-Moiz Khawaja
 
Huffman > Data Structures & Algorithums
Ain-ul-Moiz Khawaja
 
Data Structures & Algorithms
Ain-ul-Moiz Khawaja
 
Attribution Theories
Ain-ul-Moiz Khawaja
 
Attribution Theory
Ain-ul-Moiz Khawaja
 
Absenteeism
Ain-ul-Moiz Khawaja
 
HRM Employee Turnover
Ain-ul-Moiz Khawaja
 

Recently uploaded (20)

PPTX
Stereochemistry-Optical Isomerism in organic compoundsptx
Tarannum Nadaf-Mansuri
 
PDF
ARAL-Orientation_Morning-Session_Day-11.pdf
JoelVilloso1
 
PPTX
Views on Education of Indian Thinkers Mahatma Gandhi.pptx
ShrutiMahanta1
 
PPTX
HYDROCEPHALUS: NURSING MANAGEMENT .pptx
PRADEEP ABOTHU
 
PPTX
A PPT on Alfred Lord Tennyson's Ulysses.
Beena E S
 
PDF
IMP NAAC-Reforms-Stakeholder-Consultation-Presentation-on-Draft-Metrics-Unive...
BHARTIWADEKAR
 
PPT
Talk on Critical Theory, Part II, Philosophy of Social Sciences
Soraj Hongladarom
 
PPTX
2025 Winter SWAYAM NPTEL & A Student.pptx
Utsav Yagnik
 
PPTX
Unit 2 COMMERCIAL BANKING, Corporate banking.pptx
AnubalaSuresh1
 
PDF
Isharyanti-2025-Cross Language Communication in Indonesian Language
Neny Isharyanti
 
PPTX
How to Convert an Opportunity into a Quotation in Odoo 18 CRM
Celine George
 
PDF
The Constitution Review Committee (CRC) has released an updated schedule for ...
nservice241
 
PPTX
MENINGITIS: NURSING MANAGEMENT, BACTERIAL MENINGITIS, VIRAL MENINGITIS.pptx
PRADEEP ABOTHU
 
PDF
SSHS-2025-PKLP_Quarter-1-Dr.-Kerby-Alvarez.pdf
AishahSangcopan1
 
PDF
BÀI TẬP BỔ TRỢ TIẾNG ANH 8 - GLOBAL SUCCESS - CẢ NĂM - NĂM 2024 (VOCABULARY, ...
Nguyen Thanh Tu Collection
 
PPTX
ASRB NET 2023 PREVIOUS YEAR QUESTION PAPER GENETICS AND PLANT BREEDING BY SAT...
Krashi Coaching
 
PPTX
THE TAME BIRD AND THE FREE BIRD.pptxxxxx
MarcChristianNicolas
 
PPTX
How to Manage Large Scrollbar in Odoo 18 POS
Celine George
 
PPTX
How to Set Maximum Difference Odoo 18 POS
Celine George
 
PDF
CONCURSO DE POESIA “POETUFAS – PASSOS SUAVES PELO VERSO.pdf
Colégio Santa Teresinha
 
Stereochemistry-Optical Isomerism in organic compoundsptx
Tarannum Nadaf-Mansuri
 
ARAL-Orientation_Morning-Session_Day-11.pdf
JoelVilloso1
 
Views on Education of Indian Thinkers Mahatma Gandhi.pptx
ShrutiMahanta1
 
HYDROCEPHALUS: NURSING MANAGEMENT .pptx
PRADEEP ABOTHU
 
A PPT on Alfred Lord Tennyson's Ulysses.
Beena E S
 
IMP NAAC-Reforms-Stakeholder-Consultation-Presentation-on-Draft-Metrics-Unive...
BHARTIWADEKAR
 
Talk on Critical Theory, Part II, Philosophy of Social Sciences
Soraj Hongladarom
 
2025 Winter SWAYAM NPTEL & A Student.pptx
Utsav Yagnik
 
Unit 2 COMMERCIAL BANKING, Corporate banking.pptx
AnubalaSuresh1
 
Isharyanti-2025-Cross Language Communication in Indonesian Language
Neny Isharyanti
 
How to Convert an Opportunity into a Quotation in Odoo 18 CRM
Celine George
 
The Constitution Review Committee (CRC) has released an updated schedule for ...
nservice241
 
MENINGITIS: NURSING MANAGEMENT, BACTERIAL MENINGITIS, VIRAL MENINGITIS.pptx
PRADEEP ABOTHU
 
SSHS-2025-PKLP_Quarter-1-Dr.-Kerby-Alvarez.pdf
AishahSangcopan1
 
BÀI TẬP BỔ TRỢ TIẾNG ANH 8 - GLOBAL SUCCESS - CẢ NĂM - NĂM 2024 (VOCABULARY, ...
Nguyen Thanh Tu Collection
 
ASRB NET 2023 PREVIOUS YEAR QUESTION PAPER GENETICS AND PLANT BREEDING BY SAT...
Krashi Coaching
 
THE TAME BIRD AND THE FREE BIRD.pptxxxxx
MarcChristianNicolas
 
How to Manage Large Scrollbar in Odoo 18 POS
Celine George
 
How to Set Maximum Difference Odoo 18 POS
Celine George
 
CONCURSO DE POESIA “POETUFAS – PASSOS SUAVES PELO VERSO.pdf
Colégio Santa Teresinha
 

Graphs > Discrete structures , Data Structures & Algorithums

  • 2. Minimum Spanning Tree: Prim's Algorithm Prim's algorithm for finding an MST is a greedy algorithm. Start by selecting an arbitrary vertex, include it into the current MST. Grow the current MST by inserting into it the vertex closest to one of the vertices already in current MST.
  • 3. Minimum Spanning Tree Problem: given a connected, undirected, weighted graph, find a spanning tree using edges that minimize the total weight 6 4 5 9 14 2 10 15 3 8
  • 4. Prim’s Algorithm MST-Prim(G, w, r) Q = V[G]; for each u ∈ Q key[u] = ∞; key[r] = 0; p[r] = NULL; while (Q not empty) u = ExtractMin(Q); for each v ∈ Adj[u] if (v ∈ Q and w(u,v) < key[v]) p[v] = u; key[v] = w(u,v);
  • 5. Prim’s Algorithm MST-Prim(G, w, r) 6 Q = V[G]; 5 for each u ∈ Q key[u] = ∞; key[r] = 0; 14 10 p[r] = NULL; while (Q not empty) u = ExtractMin(Q); for each v ∈ Adj[u] 3 if (v ∈ Q and w(u,v) < key[v]) Run p[v] = u; key[v] = w(u,v); 4 9 2 15 8 on example graph
  • 6. Prim’s Algorithm MST-Prim(G, w, r) ∞ 6 Q = V[G]; 5 for each u ∈ Q ∞ key[u] = ∞; key[r] = 0; 14 10 p[r] = NULL; while (Q not empty) ∞ u = ExtractMin(Q); for each v ∈ Adj[u] 3 ∞ if (v ∈ Q and w(u,v) < key[v]) Run p[v] = u; key[v] = w(u,v); 4 ∞ 9 ∞ 2 ∞ 15 8 on example graph ∞
  • 7. Prim’s Algorithm MST-Prim(G, w, r) ∞ 6 Q = V[G]; 5 for each u ∈ Q ∞ key[u] = ∞; key[r] = 0; 14 10 p[r] = NULL; while (Q not empty) 0 r u = ExtractMin(Q); for each v ∈ Adj[u] 3 ∞ if (v ∈ Q and w(u,v) < key[v]) Pick p[v] = u; key[v] = w(u,v); 4 ∞ 9 ∞ 2 ∞ 8 a start vertex r 15 ∞
  • 8. Prim’s Algorithm MST-Prim(G, w, r) ∞ 6 4 Q = V[G]; 5 for each u ∈ Q ∞ ∞ key[u] = ∞; key[r] = 0; 14 2 10 p[r] = NULL; while (Q not empty) 0 ∞ u u = ExtractMin(Q); for each v ∈ Adj[u] 3 8 ∞ if (v ∈ Q and w(u,v) < key[v]) Black vertices have been p[v] = u; key[v] = w(u,v); 9 15 ∞ ∞ removed from Q
  • 9. Prim’s Algorithm MST-Prim(G, w, r) ∞ 6 4 Q = V[G]; 5 for each u ∈ Q ∞ key[u] = ∞; 14 key[r] = 0; 10 p[r] = NULL; 0 u while (Q not empty) u = ExtractMin(Q); 3 8 3 for each v ∈ Adj[u] if (v ∈ Q and w(u,v) < key[v]) p[v] = u; Black arrows key[v] = w(u,v); ∞ 9 ∞ 2 ∞ 15 ∞ indicate parent pointers
  • 10. Prim’s Algorithm 6 ∞ 5 MST-Prim(G, w, r) 14 Q = V[G]; for each u ∈ Q 14 10 key[u] = ∞; key[r] = 0; 0 u p[r] = NULL; 3 3 while (Q not empty) u = ExtractMin(Q); for each v ∈ Adj[u] if (v ∈ Q and w(u,v) < key[v]) p[v] = u; key[v] = w(u,v); 4 ∞ 9 ∞ 2 ∞ 8 15 ∞
  • 11. Prim’s Algorithm 6 ∞ 5 MST-Prim(G, w, r) 14 Q = V[G]; for each u ∈ Q 14 10 key[u] = ∞; key[r] = 0; 0 p[r] = NULL; 3 3 while (Q not empty) u u = ExtractMin(Q); for each v ∈ Adj[u] if (v ∈ Q and w(u,v) < key[v]) p[v] = u; key[v] = w(u,v); 4 ∞ 9 ∞ 2 ∞ 8 15 ∞
  • 12. Prim’s Algorithm 6 ∞ 5 MST-Prim(G, w, r) 14 Q = V[G]; for each u ∈ Q 14 10 key[u] = ∞; key[r] = 0; 0 p[r] = NULL; 3 3 while (Q not empty) u u = ExtractMin(Q); for each v ∈ Adj[u] if (v ∈ Q and w(u,v) < key[v]) p[v] = u; key[v] = w(u,v); 4 ∞ 9 ∞ 2 8 8 15 ∞
  • 13. Prim’s Algorithm 6 ∞ 5 MST-Prim(G, w, r) 10 Q = V[G]; for each u ∈ Q 14 10 key[u] = ∞; key[r] = 0; 0 p[r] = NULL; 3 3 while (Q not empty) u u = ExtractMin(Q); for each v ∈ Adj[u] if (v ∈ Q and w(u,v) < key[v]) p[v] = u; key[v] = w(u,v); 4 ∞ 9 ∞ 2 8 8 15 ∞
  • 14. Prim’s Algorithm 6 ∞ 5 MST-Prim(G, w, r) 10 Q = V[G]; for each u ∈ Q 14 10 key[u] = ∞; key[r] = 0; 0 p[r] = NULL; 3 3 while (Q not empty) u = ExtractMin(Q); for each v ∈ Adj[u] if (v ∈ Q and w(u,v) < key[v]) p[v] = u; key[v] = w(u,v); 4 ∞ 9 ∞ 2 8 8 u 15 ∞
  • 15. Prim’s Algorithm 6 ∞ 5 MST-Prim(G, w, r) 10 Q = V[G]; for each u ∈ Q 14 10 key[u] = ∞; key[r] = 0; 0 p[r] = NULL; 3 3 while (Q not empty) u = ExtractMin(Q); for each v ∈ Adj[u] if (v ∈ Q and w(u,v) < key[v]) p[v] = u; key[v] = w(u,v); 4 9 2 ∞ 2 8 8 u 15 ∞
  • 16. Prim’s Algorithm 6 ∞ 5 MST-Prim(G, w, r) 10 Q = V[G]; for each u ∈ Q 14 10 key[u] = ∞; key[r] = 0; 0 p[r] = NULL; 3 3 while (Q not empty) u = ExtractMin(Q); for each v ∈ Adj[u] if (v ∈ Q and w(u,v) < key[v]) p[v] = u; key[v] = w(u,v); 4 9 2 ∞ 2 8 8 u 15 15
  • 17. Prim’s Algorithm 6 ∞ 5 MST-Prim(G, w, r) 10 Q = V[G]; for each u ∈ Q 14 10 key[u] = ∞; key[r] = 0; 0 p[r] = NULL; 3 3 while (Q not empty) u = ExtractMin(Q); for each v ∈ Adj[u] if (v ∈ Q and w(u,v) < key[v]) p[v] = u; key[v] = w(u,v); u 4 9 2 ∞ 2 8 8 15 15
  • 18. Prim’s Algorithm 6 4 5 MST-Prim(G, w, r) 10 Q = V[G]; for each u ∈ Q 14 10 key[u] = ∞; key[r] = 0; 0 p[r] = NULL; 3 3 while (Q not empty) u = ExtractMin(Q); for each v ∈ Adj[u] if (v ∈ Q and w(u,v) < key[v]) p[v] = u; key[v] = w(u,v); u 4 9 2 ∞ 2 8 8 15 15
  • 19. Prim’s Algorithm 6 4 5 MST-Prim(G, w, r) 5 Q = V[G]; for each u ∈ Q 14 10 key[u] = ∞; key[r] = 0; 0 p[r] = NULL; 3 3 while (Q not empty) u = ExtractMin(Q); for each v ∈ Adj[u] if (v ∈ Q and w(u,v) < key[v]) p[v] = u; key[v] = w(u,v); u 4 9 2 ∞ 2 8 8 15 15
  • 20. Prim’s Algorithm 6 4 5 MST-Prim(G, w, r) 5 Q = V[G]; for each u ∈ Q 14 10 key[u] = ∞; key[r] = 0; 0 p[r] = NULL; 3 3 while (Q not empty) u = ExtractMin(Q); for each v ∈ Adj[u] if (v ∈ Q and w(u,v) < key[v]) p[v] = u; key[v] = w(u,v); u 4 9 2 9 2 8 8 15 15
  • 21. Prim’s Algorithm 6 4 5 MST-Prim(G, w, r) 5 Q = V[G]; for each u ∈ Q 14 10 key[u] = ∞; key[r] = 0; 0 p[r] = NULL; 3 3 while (Q not empty) u = ExtractMin(Q); for each v ∈ Adj[u] if (v ∈ Q and w(u,v) < key[v]) p[v] = u; key[v] = w(u,v); 4 u 9 2 9 2 8 8 15 15
  • 22. Prim’s Algorithm u 6 4 5 MST-Prim(G, w, r) 5 Q = V[G]; for each u ∈ Q 14 10 key[u] = ∞; key[r] = 0; 0 p[r] = NULL; 3 3 while (Q not empty) u = ExtractMin(Q); for each v ∈ Adj[u] if (v ∈ Q and w(u,v) < key[v]) p[v] = u; key[v] = w(u,v); 4 9 2 9 2 8 8 15 15
  • 23. Prim’s Algorithm 6 4 5 MST-Prim(G, w, r) 5 Q = V[G]; for each u ∈ Q 14 10 key[u] = ∞; key[r] = 0; 0 p[r] = NULL; 3 3 while (Q not empty) u = ExtractMin(Q); for each v ∈ Adj[u] if (v ∈ Q and w(u,v) < key[v]) p[v] = u; key[v] = w(u,v); u 4 9 2 9 2 8 8 15 15
  • 24. Prim’s Algorithm 6 4 5 MST-Prim(G, w, r) 5 Q = V[G]; for each u ∈ Q 14 10 key[u] = ∞; key[r] = 0; 0 p[r] = NULL; 3 3 while (Q not empty) u = ExtractMin(Q); for each v ∈ Adj[u] if (v ∈ Q and w(u,v) < key[v]) p[v] = u; key[v] = w(u,v); 4 9 2 u 2 8 8 9 15 15
  • 25. Review: Prim’s Algorithm MST-Prim(G, w, r) Q = V[G]; for each u ∈ Q key[u] = ∞; key[r] = 0; p[r] = NULL; while (Q not empty) u = ExtractMin(Q); for each v ∈ Adj[u] if (v ∈ Q and w(u,v) < key[v]) p[v] = u; key[v] = w(u,v);
  • 26. Dijkstra’s Algorithm Similar to (BFS) Breadth-First Search Grow a tree gradually, advancing from vertices taken from a queue Also similar to Prim’s algorithm for MST Use a priority queue keyed on d[v]
  • 27. Shortest Path for Weighted Graphs Given a graph G = (V, E) with edge costs c(e), and a vertex s ∈ V, find the shortest (lowest cost) path from s to every vertex in V Assume: only positive edge costs
  • 28. Dijkstra’s Algorithm for Single Source Shortest Path Similar to breadth-first search, but uses a heap instead of a queue: Always select (expand) the vertex that has a lowest-cost path to the start vertex Correctly handles the case where the lowest-cost (shortest) path to a vertex is not the one with fewest edges
  • 29. Dijkstra, Edsger Wybe Legendary figure in computer science; was a professor at University of Texas. Supported teaching introductory computer courses without computers (pencil and paper programming) Supposedly wouldn’t (until very late in life) read his e-mail; so, his staff had to print out messages and put them in his box. E.W. Dijkstra (1930-2002) 1972 Turning Award Winner, Programming Languages, semaphores, and …
  • 38. Dijkstra’s Algorithm: Idea Adapt BFS to handle weighted graphs Two kinds of vertices: – Finished or known vertices • – Shortest distance has been computed Unknown vertices • Have tentative distance 38
  • 39. Dijkstra’s Algorithm: Idea At each step: Pick closest unknown vertex 2) Add it to known vertices 3) Update distances 1) 39
  • 40. Dijkstra’s Algorithm: Pseudocode Initialize the cost of each node to ∞ Initialize the cost of the source to 0 While there are unknown nodes left in the graph Select an unknown node b with the lowest cost Mark b as known For each node a adjacent to b a’s cost = min(a’s old cost, b’s cost + cost of (b, a)) a’s prev path node = b 40
  • 41. Important Features Once a vertex is made known, the cost of the shortest path to that node is known While a vertex is still not known, another shorter path to it might still be found 41
  • 42. Dijkstra’s Algorithm in action 0  2 2 B A  2  D C 3  E Vertex Visited? Cost A ?? F ?? G ?? H ?? Found by ?? E  ?? D 1 ?? C  0 B 1 G 11 7 H 2 10 9 3 F 1 4  42
  • 43. Dijkstra’s Algorithm in action 0 2 2 2 B A  C 2 4 D 3 1 E Vertex Visited? Cost A Y 1 G 11 7 H 2 10 9 3 F 1 4   1  Found by 0 B <=2 A C <=1 A D <=4 A E ?? F ?? G ?? H ?? 43
  • 44. Dijkstra’s Algorithm in action 0 2 2 2 B A  C 2 4 D 3 1 E Vertex Visited? Cost A Y 1 G 11 7 H 2 10 9 3 F 1 4  12  1 0 B Found by <=2 A 1 A D <=4 A E <=12 C F ?? G ?? H ?? C Y 44
  • 45. Dijkstra’s Algorithm in action 0 2 2 2 B A 4 C 2 4 D 3 1 E 1 G 11 7 H 2 10 9 3 F 1 4  12  1 Vertex Visited? Cost Found by A Y 0 B Y 2 A C Y 1 A D <=4 A E <=12 C F <=4 B G ?? H ?? 45
  • 46. Dijkstra’s Algorithm in action 0 2 2 2 B A 4 C 2 4 D 3 1 E 1 G 11 7 H 2 10 9 3 F 1 4  12  1 Vertex Visited? Cost Found by A Y 0 B Y 2 A C Y 1 A D Y 4 A E <=12 C F <=4 B G ?? H ?? 46
  • 47. Dijkstra’s Algorithm in action 0 2 2 2 B A 4 C 2 4 D 3 1 E 1 G 11 7 H 2 10 9 3 F 1 4 7 12  1 Vertex Visited? Cost A Y 0 B Y 2 A C Y 1 A D Y 4 A <=12 C 4 B E F Y G ?? H <=7 Found by F 47
  • 48. Dijkstra’s Algorithm in action 0 2 2 2 B A 4 C 2 4 D 2 10 9 11 E H 1 G 8 3 1 7 3 F 1 4 7 12 1 Vertex Visited? Cost A Y 0 B Y 2 A C Y 1 A D Y 4 A <=12 C 4 B <=8 H 7 F E F Y G H Y Found by 48
  • 49. Dijkstra’s Algorithm in action 0 2 2 2 B A 4 C 2 4 D 2 10 9 11 E H 1 G 8 3 1 7 3 F 1 4 7 11 1 Vertex Visited? Cost A Y 0 B Y 2 A C Y 1 A D Y 4 A <=11 G E Found by F Y 4 B G Y 8 H H Y 7 F 49
  • 50. Dijkstra’s Algorithm in action 0 2 2 2 B A 4 C 2 4 D 2 10 9 11 E H 1 G 8 3 1 7 3 F 1 4 7 11 1 Vertex Visited? Cost Found by A Y 0 B Y 2 A C Y 1 A D Y 4 A E Y 11 G F Y 4 B G Y 8 H H Y 7 F 50
  • 51. Time Complexity of Dijskrs Algorithm The efficiency of the Dijskras’s algorithm is analyzed by the iteration of the loop structures. The while loop iteration n – 1 times to visit the minimum weighted edge. Potentially loop must be repeated n times to examine every vertices in the graph. So the time complexity is O(n2).
  • 52. QUIZ 1. Find the BREATH-FIRST spanning tree and depth-first spanning tree of the graph GA shown above.

Editor's Notes

  • #41: Here’s pseudocode for how dijkstra’s actually works. Speak the algorithm. Notice that we need to be able to find a minimum node and also update costs to nodes.