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.
Ad

More Related Content

What's hot (20)

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

Viewers also liked (8)

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

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

Lec-35Graph - Copy Graph therory in Data strucure
Lec-35Graph - Copy Graph therory in Data strucureLec-35Graph - Copy Graph therory in Data strucure
Lec-35Graph - Copy Graph therory in Data strucure
Anil Yadav
 
lecture 20
lecture 20lecture 20
lecture 20
sajinsc
 
Prim's algorithm
Prim's algorithmPrim's algorithm
Prim's algorithm
Pankaj Thakur
 
prims algorithm for algorithms for cs st
prims algorithm for algorithms for cs stprims algorithm for algorithms for cs st
prims algorithm for algorithms for cs st
DhrubajyotiDas70
 
2.3 shortest path dijkstra’s
2.3 shortest path dijkstra’s 2.3 shortest path dijkstra’s
2.3 shortest path dijkstra’s
Krish_ver2
 
Unit 5 session 2 MinimumSpanningTrees.ppt
Unit 5 session 2 MinimumSpanningTrees.pptUnit 5 session 2 MinimumSpanningTrees.ppt
Unit 5 session 2 MinimumSpanningTrees.ppt
prithivr1
 
lecture 22
lecture 22lecture 22
lecture 22
sajinsc
 
Shortest Path in Graph
Shortest Path in GraphShortest Path in Graph
Shortest Path in Graph
Dr Sandeep Kumar Poonia
 
algorthm analysis from computer scince.ppt
algorthm analysis from computer scince.pptalgorthm analysis from computer scince.ppt
algorthm analysis from computer scince.ppt
AbrehamHgiorgis
 
module4_dynamic programming_2022.pdf
module4_dynamic programming_2022.pdfmodule4_dynamic programming_2022.pdf
module4_dynamic programming_2022.pdf
Shiwani Gupta
 
lecture 21
lecture 21lecture 21
lecture 21
sajinsc
 
lec6.pptx
lec6.pptxlec6.pptx
lec6.pptx
nuredinabdellah2
 
All pairs shortest path algorithm
All pairs shortest path algorithmAll pairs shortest path algorithm
All pairs shortest path algorithm
Srikrishnan Suresh
 
Dijkstra’s algorithm
Dijkstra’s algorithmDijkstra’s algorithm
Dijkstra’s algorithm
faisal2204
 
Greedy Approach in Design Analysis and Algorithms
Greedy Approach in Design Analysis and AlgorithmsGreedy Approach in Design Analysis and Algorithms
Greedy Approach in Design Analysis and Algorithms
NikunjGoyal20
 
Minimum spanning tree
Minimum spanning treeMinimum spanning tree
Minimum spanning tree
Amit Kumar Rathi
 
Prims & kruskal algorithms
Prims & kruskal algorithmsPrims & kruskal algorithms
Prims & kruskal algorithms
Ayesha Tahir
 
Algorithms explained
Algorithms explainedAlgorithms explained
Algorithms explained
PIYUSH Dubey
 
Lec-35Graph - Graph - Copy in Data Structure
Lec-35Graph - Graph - Copy in Data StructureLec-35Graph - Graph - Copy in Data Structure
Lec-35Graph - Graph - Copy in Data Structure
Anil Yadav
 
Aaex2 group2
Aaex2 group2Aaex2 group2
Aaex2 group2
Shiang-Yun Yang
 
Lec-35Graph - Copy Graph therory in Data strucure
Lec-35Graph - Copy Graph therory in Data strucureLec-35Graph - Copy Graph therory in Data strucure
Lec-35Graph - Copy Graph therory in Data strucure
Anil Yadav
 
lecture 20
lecture 20lecture 20
lecture 20
sajinsc
 
prims algorithm for algorithms for cs st
prims algorithm for algorithms for cs stprims algorithm for algorithms for cs st
prims algorithm for algorithms for cs st
DhrubajyotiDas70
 
2.3 shortest path dijkstra’s
2.3 shortest path dijkstra’s 2.3 shortest path dijkstra’s
2.3 shortest path dijkstra’s
Krish_ver2
 
Unit 5 session 2 MinimumSpanningTrees.ppt
Unit 5 session 2 MinimumSpanningTrees.pptUnit 5 session 2 MinimumSpanningTrees.ppt
Unit 5 session 2 MinimumSpanningTrees.ppt
prithivr1
 
lecture 22
lecture 22lecture 22
lecture 22
sajinsc
 
algorthm analysis from computer scince.ppt
algorthm analysis from computer scince.pptalgorthm analysis from computer scince.ppt
algorthm analysis from computer scince.ppt
AbrehamHgiorgis
 
module4_dynamic programming_2022.pdf
module4_dynamic programming_2022.pdfmodule4_dynamic programming_2022.pdf
module4_dynamic programming_2022.pdf
Shiwani Gupta
 
lecture 21
lecture 21lecture 21
lecture 21
sajinsc
 
All pairs shortest path algorithm
All pairs shortest path algorithmAll pairs shortest path algorithm
All pairs shortest path algorithm
Srikrishnan Suresh
 
Dijkstra’s algorithm
Dijkstra’s algorithmDijkstra’s algorithm
Dijkstra’s algorithm
faisal2204
 
Greedy Approach in Design Analysis and Algorithms
Greedy Approach in Design Analysis and AlgorithmsGreedy Approach in Design Analysis and Algorithms
Greedy Approach in Design Analysis and Algorithms
NikunjGoyal20
 
Prims & kruskal algorithms
Prims & kruskal algorithmsPrims & kruskal algorithms
Prims & kruskal algorithms
Ayesha Tahir
 
Algorithms explained
Algorithms explainedAlgorithms explained
Algorithms explained
PIYUSH Dubey
 
Lec-35Graph - Graph - Copy in Data Structure
Lec-35Graph - Graph - Copy in Data StructureLec-35Graph - Graph - Copy in Data Structure
Lec-35Graph - Graph - Copy in Data Structure
Anil Yadav
 
Ad

More from Ain-ul-Moiz Khawaja (17)

Algo>Queues
Algo>QueuesAlgo>Queues
Algo>Queues
Ain-ul-Moiz Khawaja
 
Application of Stacks
Application of StacksApplication of Stacks
Application of Stacks
Ain-ul-Moiz Khawaja
 
Algo>Stacks
Algo>StacksAlgo>Stacks
Algo>Stacks
Ain-ul-Moiz Khawaja
 
Analysis of Algorithum
Analysis of AlgorithumAnalysis of Algorithum
Analysis of Algorithum
Ain-ul-Moiz Khawaja
 
Algo>ADT list & linked list
Algo>ADT list & linked listAlgo>ADT list & linked list
Algo>ADT list & linked list
Ain-ul-Moiz Khawaja
 
Algo>Arrays
Algo>ArraysAlgo>Arrays
Algo>Arrays
Ain-ul-Moiz Khawaja
 
Algo>Abstract data type
Algo>Abstract data typeAlgo>Abstract data type
Algo>Abstract data type
Ain-ul-Moiz Khawaja
 
Algorithum Analysis
Algorithum AnalysisAlgorithum Analysis
Algorithum Analysis
Ain-ul-Moiz Khawaja
 
Sorting algorithums > Data Structures & Algorithums
Sorting algorithums  > Data Structures & AlgorithumsSorting algorithums  > Data Structures & Algorithums
Sorting algorithums > Data Structures & Algorithums
Ain-ul-Moiz Khawaja
 
Sorting algos > Data Structures & Algorithums
Sorting algos  > Data Structures & AlgorithumsSorting algos  > Data Structures & Algorithums
Sorting algos > Data Structures & Algorithums
Ain-ul-Moiz Khawaja
 
Huffman > Data Structures & Algorithums
Huffman > Data Structures & AlgorithumsHuffman > Data Structures & Algorithums
Huffman > Data Structures & Algorithums
Ain-ul-Moiz Khawaja
 
Data Structures & Algorithms
Data Structures & AlgorithmsData Structures & Algorithms
Data Structures & Algorithms
Ain-ul-Moiz Khawaja
 
Turn over
Turn overTurn over
Turn over
Ain-ul-Moiz Khawaja
 
Attribution Theories
Attribution TheoriesAttribution Theories
Attribution Theories
Ain-ul-Moiz Khawaja
 
Attribution Theory
Attribution TheoryAttribution Theory
Attribution Theory
Ain-ul-Moiz Khawaja
 
Absenteeism
AbsenteeismAbsenteeism
Absenteeism
Ain-ul-Moiz Khawaja
 
HRM Employee Turnover
HRM Employee TurnoverHRM Employee Turnover
HRM Employee Turnover
Ain-ul-Moiz Khawaja
 

Recently uploaded (20)

Classification of mental disorder in 5th semester bsc. nursing and also used ...
Classification of mental disorder in 5th semester bsc. nursing and also used ...Classification of mental disorder in 5th semester bsc. nursing and also used ...
Classification of mental disorder in 5th semester bsc. nursing and also used ...
parmarjuli1412
 
How to Add Button in Chatter in Odoo 18 - Odoo Slides
How to Add Button in Chatter in Odoo 18 - Odoo SlidesHow to Add Button in Chatter in Odoo 18 - Odoo Slides
How to Add Button in Chatter in Odoo 18 - Odoo Slides
Celine George
 
Origin of Brahmi script: A breaking down of various theories
Origin of Brahmi script: A breaking down of various theoriesOrigin of Brahmi script: A breaking down of various theories
Origin of Brahmi script: A breaking down of various theories
PrachiSontakke5
 
INDIA QUIZ FOR SCHOOLS | THE QUIZ CLUB OF PSGCAS | AUGUST 2024
INDIA QUIZ FOR SCHOOLS | THE QUIZ CLUB OF PSGCAS | AUGUST 2024INDIA QUIZ FOR SCHOOLS | THE QUIZ CLUB OF PSGCAS | AUGUST 2024
INDIA QUIZ FOR SCHOOLS | THE QUIZ CLUB OF PSGCAS | AUGUST 2024
Quiz Club of PSG College of Arts & Science
 
Unit 5 ACUTE, SUBACUTE,CHRONIC TOXICITY.pptx
Unit 5 ACUTE, SUBACUTE,CHRONIC TOXICITY.pptxUnit 5 ACUTE, SUBACUTE,CHRONIC TOXICITY.pptx
Unit 5 ACUTE, SUBACUTE,CHRONIC TOXICITY.pptx
Mayuri Chavan
 
2025 The Senior Landscape and SET plan preparations.pptx
2025 The Senior Landscape and SET plan preparations.pptx2025 The Senior Landscape and SET plan preparations.pptx
2025 The Senior Landscape and SET plan preparations.pptx
mansk2
 
Botany Assignment Help Guide - Academic Excellence
Botany Assignment Help Guide - Academic ExcellenceBotany Assignment Help Guide - Academic Excellence
Botany Assignment Help Guide - Academic Excellence
online college homework help
 
libbys peer assesment.docx..............
libbys peer assesment.docx..............libbys peer assesment.docx..............
libbys peer assesment.docx..............
19lburrell
 
How to Manage Amounts in Local Currency in Odoo 18 Purchase
How to Manage Amounts in Local Currency in Odoo 18 PurchaseHow to Manage Amounts in Local Currency in Odoo 18 Purchase
How to Manage Amounts in Local Currency in Odoo 18 Purchase
Celine George
 
Final Evaluation.docx...........................
Final Evaluation.docx...........................Final Evaluation.docx...........................
Final Evaluation.docx...........................
l1bbyburrell
 
Cyber security COPA ITI MCQ Top Questions
Cyber security COPA ITI MCQ Top QuestionsCyber security COPA ITI MCQ Top Questions
Cyber security COPA ITI MCQ Top Questions
SONU HEETSON
 
Chemotherapy of Malignancy -Anticancer.pptx
Chemotherapy of Malignancy -Anticancer.pptxChemotherapy of Malignancy -Anticancer.pptx
Chemotherapy of Malignancy -Anticancer.pptx
Mayuri Chavan
 
IPL QUIZ | THE QUIZ CLUB OF PSGCAS | 2025.pdf
IPL QUIZ | THE QUIZ CLUB OF PSGCAS | 2025.pdfIPL QUIZ | THE QUIZ CLUB OF PSGCAS | 2025.pdf
IPL QUIZ | THE QUIZ CLUB OF PSGCAS | 2025.pdf
Quiz Club of PSG College of Arts & Science
 
Bipolar Junction Transistors (BJTs): Basics, Construction & Configurations
Bipolar Junction Transistors (BJTs): Basics, Construction & ConfigurationsBipolar Junction Transistors (BJTs): Basics, Construction & Configurations
Bipolar Junction Transistors (BJTs): Basics, Construction & Configurations
GS Virdi
 
Search Matching Applicants in Odoo 18 - Odoo Slides
Search Matching Applicants in Odoo 18 - Odoo SlidesSearch Matching Applicants in Odoo 18 - Odoo Slides
Search Matching Applicants in Odoo 18 - Odoo Slides
Celine George
 
How to Share Accounts Between Companies in Odoo 18
How to Share Accounts Between Companies in Odoo 18How to Share Accounts Between Companies in Odoo 18
How to Share Accounts Between Companies in Odoo 18
Celine George
 
The History of Kashmir Lohar Dynasty NEP.ppt
The History of Kashmir Lohar Dynasty NEP.pptThe History of Kashmir Lohar Dynasty NEP.ppt
The History of Kashmir Lohar Dynasty NEP.ppt
Arya Mahila P. G. College, Banaras Hindu University, Varanasi, India.
 
How to Manage Manual Reordering Rule in Odoo 18 Inventory
How to Manage Manual Reordering Rule in Odoo 18 InventoryHow to Manage Manual Reordering Rule in Odoo 18 Inventory
How to Manage Manual Reordering Rule in Odoo 18 Inventory
Celine George
 
Peer Assesment- Libby.docx..............
Peer Assesment- Libby.docx..............Peer Assesment- Libby.docx..............
Peer Assesment- Libby.docx..............
19lburrell
 
U3 ANTITUBERCULAR DRUGS Pharmacology 3.pptx
U3 ANTITUBERCULAR DRUGS Pharmacology 3.pptxU3 ANTITUBERCULAR DRUGS Pharmacology 3.pptx
U3 ANTITUBERCULAR DRUGS Pharmacology 3.pptx
Mayuri Chavan
 
Classification of mental disorder in 5th semester bsc. nursing and also used ...
Classification of mental disorder in 5th semester bsc. nursing and also used ...Classification of mental disorder in 5th semester bsc. nursing and also used ...
Classification of mental disorder in 5th semester bsc. nursing and also used ...
parmarjuli1412
 
How to Add Button in Chatter in Odoo 18 - Odoo Slides
How to Add Button in Chatter in Odoo 18 - Odoo SlidesHow to Add Button in Chatter in Odoo 18 - Odoo Slides
How to Add Button in Chatter in Odoo 18 - Odoo Slides
Celine George
 
Origin of Brahmi script: A breaking down of various theories
Origin of Brahmi script: A breaking down of various theoriesOrigin of Brahmi script: A breaking down of various theories
Origin of Brahmi script: A breaking down of various theories
PrachiSontakke5
 
Unit 5 ACUTE, SUBACUTE,CHRONIC TOXICITY.pptx
Unit 5 ACUTE, SUBACUTE,CHRONIC TOXICITY.pptxUnit 5 ACUTE, SUBACUTE,CHRONIC TOXICITY.pptx
Unit 5 ACUTE, SUBACUTE,CHRONIC TOXICITY.pptx
Mayuri Chavan
 
2025 The Senior Landscape and SET plan preparations.pptx
2025 The Senior Landscape and SET plan preparations.pptx2025 The Senior Landscape and SET plan preparations.pptx
2025 The Senior Landscape and SET plan preparations.pptx
mansk2
 
Botany Assignment Help Guide - Academic Excellence
Botany Assignment Help Guide - Academic ExcellenceBotany Assignment Help Guide - Academic Excellence
Botany Assignment Help Guide - Academic Excellence
online college homework help
 
libbys peer assesment.docx..............
libbys peer assesment.docx..............libbys peer assesment.docx..............
libbys peer assesment.docx..............
19lburrell
 
How to Manage Amounts in Local Currency in Odoo 18 Purchase
How to Manage Amounts in Local Currency in Odoo 18 PurchaseHow to Manage Amounts in Local Currency in Odoo 18 Purchase
How to Manage Amounts in Local Currency in Odoo 18 Purchase
Celine George
 
Final Evaluation.docx...........................
Final Evaluation.docx...........................Final Evaluation.docx...........................
Final Evaluation.docx...........................
l1bbyburrell
 
Cyber security COPA ITI MCQ Top Questions
Cyber security COPA ITI MCQ Top QuestionsCyber security COPA ITI MCQ Top Questions
Cyber security COPA ITI MCQ Top Questions
SONU HEETSON
 
Chemotherapy of Malignancy -Anticancer.pptx
Chemotherapy of Malignancy -Anticancer.pptxChemotherapy of Malignancy -Anticancer.pptx
Chemotherapy of Malignancy -Anticancer.pptx
Mayuri Chavan
 
Bipolar Junction Transistors (BJTs): Basics, Construction & Configurations
Bipolar Junction Transistors (BJTs): Basics, Construction & ConfigurationsBipolar Junction Transistors (BJTs): Basics, Construction & Configurations
Bipolar Junction Transistors (BJTs): Basics, Construction & Configurations
GS Virdi
 
Search Matching Applicants in Odoo 18 - Odoo Slides
Search Matching Applicants in Odoo 18 - Odoo SlidesSearch Matching Applicants in Odoo 18 - Odoo Slides
Search Matching Applicants in Odoo 18 - Odoo Slides
Celine George
 
How to Share Accounts Between Companies in Odoo 18
How to Share Accounts Between Companies in Odoo 18How to Share Accounts Between Companies in Odoo 18
How to Share Accounts Between Companies in Odoo 18
Celine George
 
How to Manage Manual Reordering Rule in Odoo 18 Inventory
How to Manage Manual Reordering Rule in Odoo 18 InventoryHow to Manage Manual Reordering Rule in Odoo 18 Inventory
How to Manage Manual Reordering Rule in Odoo 18 Inventory
Celine George
 
Peer Assesment- Libby.docx..............
Peer Assesment- Libby.docx..............Peer Assesment- Libby.docx..............
Peer Assesment- Libby.docx..............
19lburrell
 
U3 ANTITUBERCULAR DRUGS Pharmacology 3.pptx
U3 ANTITUBERCULAR DRUGS Pharmacology 3.pptxU3 ANTITUBERCULAR DRUGS Pharmacology 3.pptx
U3 ANTITUBERCULAR DRUGS Pharmacology 3.pptx
Mayuri Chavan
 

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.
  翻译: