SlideShare a Scribd company logo
1 of 22
Prim's Algorithm
    on minimum spanning tree



Submitted by:
Abdullah Al Mamun (Oronno)
Department of Computer Science & Engineering,
University of Dhaka.
2nd Year, Session: 2006-07
What is Minimum Spanning Tree?
• Given a connected, undirected graph, a
  spanning tree of that graph is a subgraph
  which is a tree and connects all the
  vertices together.
• A single graph can have many different
  spanning trees.
• A minimum spanning tree is then
  a spanning tree with weight less
  than or equal to the weight of
  every other spanning tree.
graph G




Spanning Tree from Graph G
2            2

    4    3             4     5


1            1          1
Algorithm for finding
  Minimum Spanning Tree


• The Prim's Algorithm
• Kruskal's Algorithm
• Baruvka's Algorithm
About Prim’s Algorithm
The algorithm was discovered in 1930 by
mathematician Vojtech Jarnik and later independently
by computer scientist Robert C. Prim in 1957.
The algorithm continuously increases the size of a
tree starting with a single vertex until it spans all the
vertices.
 Prim's algorithm is faster on dense
graphs.
Prim's algorithm runs in O(n*n)
But the running time can be reduce
using a simple binary heap data structure
and an adjacency list representation
• Prim's algorithm for finding a minimal
  spanning tree parallels closely the depth-
  and breadth-first traversal algorithms. Just
  as these algorithms maintained a closed
  list of nodes and the paths leading to
  them, Prim's algorithm maintains a closed
  list of nodes and the edges that link them
  into the minimal spanning tree.
• Whereas the depth-first algorithm used a
  stack as its data structure to maintain the
  list of open nodes and the breadth-first
  traversal used a queue, Prim's uses a
  priority queue.
Let’s see an example to
       understand
   Prim’s Algorithm.
Lets….
 At first we declare an array named: closed list.

 And consider the open list as a priority queue
  with min-heap.
 Adding a node and its edge to the closed list
  indicates that we have found an edge that links
  the node into the minimal spanning
  tree. As a node is added to the
  closed list, its successors
  (immediately adjacent nodes)
  are examined and added to a
  priority queue of open nodes.
Total Cost: 0




Open List: d
Close List:
Total Cost: 0




Open List: a, f, e, b
Close List: d
Total Cost: 5




Open List: f, e, b
Close List: d, a
Total Cost: 11




Open List: b, e, g
Close List: d, a, f
Total Cost: 18




Open List: e, g, c
Close List: d, a, f, b
Total Cost: 25




Open List: c, g
Close List: d, a, f, b, e
Total Cost: 30




Open List: g
Close List: d, a, f, b, e, c
Total Cost: 39




Open List:
Close List: d, a, f, b, e, c
PSEUDO-CODE FOR PRIM'S
     ALGORITHM
   Designate one node as the start node
   Add the start node to the priority queue of open nodes.
   WHILE (there are still nodes to be added to the closed list)
    {
      Remove a node from priority queue of open nodes, designate it as current
      node.
      IF (the current node is not already in the closed list)
         {
         IF the node is not the first node removed from the priority queue, add the
        minimal edge connecting it with a closed node to the minimal spanning
        tree.
         Add the current node to the closed list.
         FOR each successor of current node
              IF (the successor is not already in the closed list OR the successor is
             now connected to a closed node by an edge of lesser weight than
             before)
                    Add that successor to the priority queue of open nodes;
         }
    }
Sample C++ Implementation
•   void prim(graph &g, vert s) {                              •   int minvertex(graph &g, int *d) {
                                                                •     int v;
•       int dist[g.num_nodes];
•       int vert[g.num_nodes];                                  •       for (i = 0; i < g.num_nodes; i++)
                                                                •         if (g.is_marked(i, UNVISITED)) {
•       for (int i = 0; i < g.num_nodes; i++) {                 •           v = i; break;
•         dist[i] = INFINITY;                                   •         }

•       dist[s.number()] = 0;                                   •    for (i = 0; i < g.num_nodes; i++)
                                                                •      if ((g.is_marked(i, UNVISITED)) && (dist[i] <
                                                                    dist[v])) v = i;
•       for (i = 0; i < g.num_nodes; i++) {
•         vert v = minvertex(g, dist);
                                                                •       return (v);
                                                                •   }
•           g.mark(v, VISITED);
•           if (v != s) add_edge_to_MST(vert[v], v);
•           if (dist[v] == INFINITY) return;

•           for (edge w = g.first_edge; g.is_edge(w), w = g.next_edge(w)) {
•             if (dist[g.first_vert(w)] = g.weight(w)) {
•                dist[g.second_vert(w)] = g.weight(w);
•                   vert[g.second_vert(w)] = v;
•             }
•           }
•       }
•   }
Complexity Analysis
 Minimum edge weight data     Time complexity (total)
        structure

adjacency matrix, searching   O(V*V)


binary heap and adjacency     O((V + E) log(V)) = O(E
list                          log(V))

Fibonacci heap and            O(E + V log(V))
adjacency list
Application
 One practical application of a MST would be in the design of a
  network. For instance, a group of individuals, who are
  separated by varying distances, wish to be connected together
  in a telephone network. Because the cost between two terminal
  is different, if we want to reduce our expenses, Prim's
  Algorithm is a way to solve it
 Connect all computers in a computer science building using
  least amount of cable.
 A less obvious application is that the minimum spanning tree
  can be used to approximately solve the traveling salesman
  problem. A convenient formal way of defining this problem is
  to find the shortest path that visits each point at least once.
 Another useful application of MST would be finding airline
  routes. The vertices of the graph would represent cities, and
  the edges would represent routes between the cities.
  Obviously, the further one has to travel, the more it will cost,
  so MST can be applied to optimize airline routes by finding
  the least costly paths with no cycles.
Reference
Book:
  Introduction to Algorithm
  By: Thomas H. Cormen
Website:
• mathworld.wolfram.com
• www-b2.is.tokushima-u.ac.jp/suuri/Prim.shtml
• www.cprogramming.com/tutorial/
  computersciencetheory/mst.html
• en.wikipedia.org/wiki/Prim's_algorithm
• www.unf.edu/~wkloster/foundations/
  PrimApplet/PrimApplet.htm
Thank you for being with me…


     Any question?????

More Related Content

What's hot (20)

minimum spanning tree
minimum spanning tree minimum spanning tree
minimum spanning tree
 
Graphs bfs dfs
Graphs bfs dfsGraphs bfs dfs
Graphs bfs dfs
 
Bellman ford algorithm
Bellman ford algorithmBellman ford algorithm
Bellman ford algorithm
 
Spanning trees
Spanning treesSpanning trees
Spanning trees
 
Minimum spanning tree
Minimum spanning treeMinimum spanning tree
Minimum spanning tree
 
Prims Algorithm
Prims AlgorithmPrims Algorithm
Prims Algorithm
 
Kruskal & Prim's Algorithm
Kruskal & Prim's AlgorithmKruskal & Prim's Algorithm
Kruskal & Prim's Algorithm
 
Kruskal’s algorithm
Kruskal’s algorithmKruskal’s algorithm
Kruskal’s algorithm
 
Optimal binary search tree dynamic programming
Optimal binary search tree   dynamic programmingOptimal binary search tree   dynamic programming
Optimal binary search tree dynamic programming
 
Shortest path algorithm
Shortest path algorithmShortest path algorithm
Shortest path algorithm
 
PRIM’S AND KRUSKAL’S ALGORITHM
PRIM’S AND KRUSKAL’S  ALGORITHMPRIM’S AND KRUSKAL’S  ALGORITHM
PRIM’S AND KRUSKAL’S ALGORITHM
 
Bfs and Dfs
Bfs and DfsBfs and Dfs
Bfs and Dfs
 
The Floyd–Warshall algorithm
The Floyd–Warshall algorithmThe Floyd–Warshall algorithm
The Floyd–Warshall algorithm
 
Bellman ford algorithm
Bellman ford algorithmBellman ford algorithm
Bellman ford algorithm
 
Directed Acyclic Graph
Directed Acyclic Graph Directed Acyclic Graph
Directed Acyclic Graph
 
Dijkstra's Algorithm
Dijkstra's Algorithm Dijkstra's Algorithm
Dijkstra's Algorithm
 
Lecture optimal binary search tree
Lecture optimal binary search tree Lecture optimal binary search tree
Lecture optimal binary search tree
 
Kruskal’s Algorithm
Kruskal’s AlgorithmKruskal’s Algorithm
Kruskal’s Algorithm
 
SINGLE SOURCE SHORTEST PATH.ppt
SINGLE SOURCE SHORTEST PATH.pptSINGLE SOURCE SHORTEST PATH.ppt
SINGLE SOURCE SHORTEST PATH.ppt
 
Dijkstra's algorithm presentation
Dijkstra's algorithm presentationDijkstra's algorithm presentation
Dijkstra's algorithm presentation
 

Similar to Prim's Algorithm on minimum spanning tree

Analysis of Pathfinding Algorithms
Analysis of Pathfinding AlgorithmsAnalysis of Pathfinding Algorithms
Analysis of Pathfinding AlgorithmsSigSegVSquad
 
Graph Analytics - From the Whiteboard to Your Toolbox - Sam Lerma
Graph Analytics - From the Whiteboard to Your Toolbox - Sam LermaGraph Analytics - From the Whiteboard to Your Toolbox - Sam Lerma
Graph Analytics - From the Whiteboard to Your Toolbox - Sam LermaPyData
 
Social network-analysis-in-python
Social network-analysis-in-pythonSocial network-analysis-in-python
Social network-analysis-in-pythonJoe OntheRocks
 
Link Prediction in the Real World
Link Prediction in the Real WorldLink Prediction in the Real World
Link Prediction in the Real WorldBalaji Ganesan
 
04 greedyalgorithmsii 2x2
04 greedyalgorithmsii 2x204 greedyalgorithmsii 2x2
04 greedyalgorithmsii 2x2MuradAmn
 
Graph Traversal Algorithms - Depth First Search Traversal
Graph Traversal Algorithms - Depth First Search TraversalGraph Traversal Algorithms - Depth First Search Traversal
Graph Traversal Algorithms - Depth First Search TraversalAmrinder Arora
 
lecture 17
lecture 17lecture 17
lecture 17sajinsc
 
hospital management
hospital managementhospital management
hospital managementguestbcbbb5c
 
Design and Analysis of Algorithms Lecture Notes
Design and Analysis of Algorithms Lecture NotesDesign and Analysis of Algorithms Lecture Notes
Design and Analysis of Algorithms Lecture NotesSreedhar Chowdam
 
graphin-c1.pnggraphin-c1.txt1 22 3 83 44 5.docx
graphin-c1.pnggraphin-c1.txt1 22 3 83 44 5.docxgraphin-c1.pnggraphin-c1.txt1 22 3 83 44 5.docx
graphin-c1.pnggraphin-c1.txt1 22 3 83 44 5.docxwhittemorelucilla
 
FADML 06 PPC Graphs and Traversals.pdf
FADML 06 PPC Graphs and Traversals.pdfFADML 06 PPC Graphs and Traversals.pdf
FADML 06 PPC Graphs and Traversals.pdfYelah1
 

Similar to Prim's Algorithm on minimum spanning tree (20)

Topological Sort
Topological SortTopological Sort
Topological Sort
 
Ppt 1
Ppt 1Ppt 1
Ppt 1
 
Unit ii-ppt
Unit ii-pptUnit ii-ppt
Unit ii-ppt
 
Analysis of Pathfinding Algorithms
Analysis of Pathfinding AlgorithmsAnalysis of Pathfinding Algorithms
Analysis of Pathfinding Algorithms
 
Graph Analytics - From the Whiteboard to Your Toolbox - Sam Lerma
Graph Analytics - From the Whiteboard to Your Toolbox - Sam LermaGraph Analytics - From the Whiteboard to Your Toolbox - Sam Lerma
Graph Analytics - From the Whiteboard to Your Toolbox - Sam Lerma
 
Unit ix graph
Unit   ix    graph Unit   ix    graph
Unit ix graph
 
Unit 9 graph
Unit   9 graphUnit   9 graph
Unit 9 graph
 
Social network-analysis-in-python
Social network-analysis-in-pythonSocial network-analysis-in-python
Social network-analysis-in-python
 
Link Prediction in the Real World
Link Prediction in the Real WorldLink Prediction in the Real World
Link Prediction in the Real World
 
04 greedyalgorithmsii 2x2
04 greedyalgorithmsii 2x204 greedyalgorithmsii 2x2
04 greedyalgorithmsii 2x2
 
Graph Traversal Algorithms - Depth First Search Traversal
Graph Traversal Algorithms - Depth First Search TraversalGraph Traversal Algorithms - Depth First Search Traversal
Graph Traversal Algorithms - Depth First Search Traversal
 
Data structure and algorithm
Data structure and algorithmData structure and algorithm
Data structure and algorithm
 
lecture 17
lecture 17lecture 17
lecture 17
 
8150.graphs
8150.graphs8150.graphs
8150.graphs
 
hospital management
hospital managementhospital management
hospital management
 
Design and Analysis of Algorithms Lecture Notes
Design and Analysis of Algorithms Lecture NotesDesign and Analysis of Algorithms Lecture Notes
Design and Analysis of Algorithms Lecture Notes
 
graphin-c1.pnggraphin-c1.txt1 22 3 83 44 5.docx
graphin-c1.pnggraphin-c1.txt1 22 3 83 44 5.docxgraphin-c1.pnggraphin-c1.txt1 22 3 83 44 5.docx
graphin-c1.pnggraphin-c1.txt1 22 3 83 44 5.docx
 
Dijkstra
DijkstraDijkstra
Dijkstra
 
d
dd
d
 
FADML 06 PPC Graphs and Traversals.pdf
FADML 06 PPC Graphs and Traversals.pdfFADML 06 PPC Graphs and Traversals.pdf
FADML 06 PPC Graphs and Traversals.pdf
 

Recently uploaded

Graduate Outcomes Presentation Slides - English
Graduate Outcomes Presentation Slides - EnglishGraduate Outcomes Presentation Slides - English
Graduate Outcomes Presentation Slides - Englishneillewis46
 
Unit-IV; Professional Sales Representative (PSR).pptx
Unit-IV; Professional Sales Representative (PSR).pptxUnit-IV; Professional Sales Representative (PSR).pptx
Unit-IV; Professional Sales Representative (PSR).pptxVishalSingh1417
 
Application orientated numerical on hev.ppt
Application orientated numerical on hev.pptApplication orientated numerical on hev.ppt
Application orientated numerical on hev.pptRamjanShidvankar
 
HMCS Max Bernays Pre-Deployment Brief (May 2024).pptx
HMCS Max Bernays Pre-Deployment Brief (May 2024).pptxHMCS Max Bernays Pre-Deployment Brief (May 2024).pptx
HMCS Max Bernays Pre-Deployment Brief (May 2024).pptxEsquimalt MFRC
 
Unit-V; Pricing (Pharma Marketing Management).pptx
Unit-V; Pricing (Pharma Marketing Management).pptxUnit-V; Pricing (Pharma Marketing Management).pptx
Unit-V; Pricing (Pharma Marketing Management).pptxVishalSingh1417
 
Vishram Singh - Textbook of Anatomy Upper Limb and Thorax.. Volume 1 (1).pdf
Vishram Singh - Textbook of Anatomy  Upper Limb and Thorax.. Volume 1 (1).pdfVishram Singh - Textbook of Anatomy  Upper Limb and Thorax.. Volume 1 (1).pdf
Vishram Singh - Textbook of Anatomy Upper Limb and Thorax.. Volume 1 (1).pdfssuserdda66b
 
Introduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsIntroduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsTechSoup
 
Google Gemini An AI Revolution in Education.pptx
Google Gemini An AI Revolution in Education.pptxGoogle Gemini An AI Revolution in Education.pptx
Google Gemini An AI Revolution in Education.pptxDr. Sarita Anand
 
Accessible Digital Futures project (20/03/2024)
Accessible Digital Futures project (20/03/2024)Accessible Digital Futures project (20/03/2024)
Accessible Digital Futures project (20/03/2024)Jisc
 
Sociology 101 Demonstration of Learning Exhibit
Sociology 101 Demonstration of Learning ExhibitSociology 101 Demonstration of Learning Exhibit
Sociology 101 Demonstration of Learning Exhibitjbellavia9
 
Food safety_Challenges food safety laboratories_.pdf
Food safety_Challenges food safety laboratories_.pdfFood safety_Challenges food safety laboratories_.pdf
Food safety_Challenges food safety laboratories_.pdfSherif Taha
 
Key note speaker Neum_Admir Softic_ENG.pdf
Key note speaker Neum_Admir Softic_ENG.pdfKey note speaker Neum_Admir Softic_ENG.pdf
Key note speaker Neum_Admir Softic_ENG.pdfAdmir Softic
 
How to Manage Global Discount in Odoo 17 POS
How to Manage Global Discount in Odoo 17 POSHow to Manage Global Discount in Odoo 17 POS
How to Manage Global Discount in Odoo 17 POSCeline George
 
Unit-IV- Pharma. Marketing Channels.pptx
Unit-IV- Pharma. Marketing Channels.pptxUnit-IV- Pharma. Marketing Channels.pptx
Unit-IV- Pharma. Marketing Channels.pptxVishalSingh1417
 
The basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptxThe basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptxheathfieldcps1
 
ICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptxICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptxAreebaZafar22
 
Python Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docxPython Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docxRamakrishna Reddy Bijjam
 
On National Teacher Day, meet the 2024-25 Kenan Fellows
On National Teacher Day, meet the 2024-25 Kenan FellowsOn National Teacher Day, meet the 2024-25 Kenan Fellows
On National Teacher Day, meet the 2024-25 Kenan FellowsMebane Rash
 
SOC 101 Demonstration of Learning Presentation
SOC 101 Demonstration of Learning PresentationSOC 101 Demonstration of Learning Presentation
SOC 101 Demonstration of Learning Presentationcamerronhm
 
ComPTIA Overview | Comptia Security+ Book SY0-701
ComPTIA Overview | Comptia Security+ Book SY0-701ComPTIA Overview | Comptia Security+ Book SY0-701
ComPTIA Overview | Comptia Security+ Book SY0-701bronxfugly43
 

Recently uploaded (20)

Graduate Outcomes Presentation Slides - English
Graduate Outcomes Presentation Slides - EnglishGraduate Outcomes Presentation Slides - English
Graduate Outcomes Presentation Slides - English
 
Unit-IV; Professional Sales Representative (PSR).pptx
Unit-IV; Professional Sales Representative (PSR).pptxUnit-IV; Professional Sales Representative (PSR).pptx
Unit-IV; Professional Sales Representative (PSR).pptx
 
Application orientated numerical on hev.ppt
Application orientated numerical on hev.pptApplication orientated numerical on hev.ppt
Application orientated numerical on hev.ppt
 
HMCS Max Bernays Pre-Deployment Brief (May 2024).pptx
HMCS Max Bernays Pre-Deployment Brief (May 2024).pptxHMCS Max Bernays Pre-Deployment Brief (May 2024).pptx
HMCS Max Bernays Pre-Deployment Brief (May 2024).pptx
 
Unit-V; Pricing (Pharma Marketing Management).pptx
Unit-V; Pricing (Pharma Marketing Management).pptxUnit-V; Pricing (Pharma Marketing Management).pptx
Unit-V; Pricing (Pharma Marketing Management).pptx
 
Vishram Singh - Textbook of Anatomy Upper Limb and Thorax.. Volume 1 (1).pdf
Vishram Singh - Textbook of Anatomy  Upper Limb and Thorax.. Volume 1 (1).pdfVishram Singh - Textbook of Anatomy  Upper Limb and Thorax.. Volume 1 (1).pdf
Vishram Singh - Textbook of Anatomy Upper Limb and Thorax.. Volume 1 (1).pdf
 
Introduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsIntroduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The Basics
 
Google Gemini An AI Revolution in Education.pptx
Google Gemini An AI Revolution in Education.pptxGoogle Gemini An AI Revolution in Education.pptx
Google Gemini An AI Revolution in Education.pptx
 
Accessible Digital Futures project (20/03/2024)
Accessible Digital Futures project (20/03/2024)Accessible Digital Futures project (20/03/2024)
Accessible Digital Futures project (20/03/2024)
 
Sociology 101 Demonstration of Learning Exhibit
Sociology 101 Demonstration of Learning ExhibitSociology 101 Demonstration of Learning Exhibit
Sociology 101 Demonstration of Learning Exhibit
 
Food safety_Challenges food safety laboratories_.pdf
Food safety_Challenges food safety laboratories_.pdfFood safety_Challenges food safety laboratories_.pdf
Food safety_Challenges food safety laboratories_.pdf
 
Key note speaker Neum_Admir Softic_ENG.pdf
Key note speaker Neum_Admir Softic_ENG.pdfKey note speaker Neum_Admir Softic_ENG.pdf
Key note speaker Neum_Admir Softic_ENG.pdf
 
How to Manage Global Discount in Odoo 17 POS
How to Manage Global Discount in Odoo 17 POSHow to Manage Global Discount in Odoo 17 POS
How to Manage Global Discount in Odoo 17 POS
 
Unit-IV- Pharma. Marketing Channels.pptx
Unit-IV- Pharma. Marketing Channels.pptxUnit-IV- Pharma. Marketing Channels.pptx
Unit-IV- Pharma. Marketing Channels.pptx
 
The basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptxThe basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptx
 
ICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptxICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptx
 
Python Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docxPython Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docx
 
On National Teacher Day, meet the 2024-25 Kenan Fellows
On National Teacher Day, meet the 2024-25 Kenan FellowsOn National Teacher Day, meet the 2024-25 Kenan Fellows
On National Teacher Day, meet the 2024-25 Kenan Fellows
 
SOC 101 Demonstration of Learning Presentation
SOC 101 Demonstration of Learning PresentationSOC 101 Demonstration of Learning Presentation
SOC 101 Demonstration of Learning Presentation
 
ComPTIA Overview | Comptia Security+ Book SY0-701
ComPTIA Overview | Comptia Security+ Book SY0-701ComPTIA Overview | Comptia Security+ Book SY0-701
ComPTIA Overview | Comptia Security+ Book SY0-701
 

Prim's Algorithm on minimum spanning tree

  • 1. Prim's Algorithm on minimum spanning tree Submitted by: Abdullah Al Mamun (Oronno) Department of Computer Science & Engineering, University of Dhaka. 2nd Year, Session: 2006-07
  • 2. What is Minimum Spanning Tree? • Given a connected, undirected graph, a spanning tree of that graph is a subgraph which is a tree and connects all the vertices together. • A single graph can have many different spanning trees. • A minimum spanning tree is then a spanning tree with weight less than or equal to the weight of every other spanning tree.
  • 3. graph G Spanning Tree from Graph G 2 2 4 3 4 5 1 1 1
  • 4. Algorithm for finding Minimum Spanning Tree • The Prim's Algorithm • Kruskal's Algorithm • Baruvka's Algorithm
  • 5. About Prim’s Algorithm The algorithm was discovered in 1930 by mathematician Vojtech Jarnik and later independently by computer scientist Robert C. Prim in 1957. The algorithm continuously increases the size of a tree starting with a single vertex until it spans all the vertices. Prim's algorithm is faster on dense graphs. Prim's algorithm runs in O(n*n) But the running time can be reduce using a simple binary heap data structure and an adjacency list representation
  • 6. • Prim's algorithm for finding a minimal spanning tree parallels closely the depth- and breadth-first traversal algorithms. Just as these algorithms maintained a closed list of nodes and the paths leading to them, Prim's algorithm maintains a closed list of nodes and the edges that link them into the minimal spanning tree. • Whereas the depth-first algorithm used a stack as its data structure to maintain the list of open nodes and the breadth-first traversal used a queue, Prim's uses a priority queue.
  • 7. Let’s see an example to understand Prim’s Algorithm.
  • 8. Lets….  At first we declare an array named: closed list.  And consider the open list as a priority queue with min-heap.  Adding a node and its edge to the closed list indicates that we have found an edge that links the node into the minimal spanning tree. As a node is added to the closed list, its successors (immediately adjacent nodes) are examined and added to a priority queue of open nodes.
  • 9. Total Cost: 0 Open List: d Close List:
  • 10. Total Cost: 0 Open List: a, f, e, b Close List: d
  • 11. Total Cost: 5 Open List: f, e, b Close List: d, a
  • 12. Total Cost: 11 Open List: b, e, g Close List: d, a, f
  • 13. Total Cost: 18 Open List: e, g, c Close List: d, a, f, b
  • 14. Total Cost: 25 Open List: c, g Close List: d, a, f, b, e
  • 15. Total Cost: 30 Open List: g Close List: d, a, f, b, e, c
  • 16. Total Cost: 39 Open List: Close List: d, a, f, b, e, c
  • 17. PSEUDO-CODE FOR PRIM'S ALGORITHM  Designate one node as the start node  Add the start node to the priority queue of open nodes.  WHILE (there are still nodes to be added to the closed list) { Remove a node from priority queue of open nodes, designate it as current node. IF (the current node is not already in the closed list) { IF the node is not the first node removed from the priority queue, add the minimal edge connecting it with a closed node to the minimal spanning tree. Add the current node to the closed list. FOR each successor of current node IF (the successor is not already in the closed list OR the successor is now connected to a closed node by an edge of lesser weight than before) Add that successor to the priority queue of open nodes; } }
  • 18. Sample C++ Implementation • void prim(graph &g, vert s) { • int minvertex(graph &g, int *d) { • int v; • int dist[g.num_nodes]; • int vert[g.num_nodes]; • for (i = 0; i < g.num_nodes; i++) • if (g.is_marked(i, UNVISITED)) { • for (int i = 0; i < g.num_nodes; i++) { • v = i; break; • dist[i] = INFINITY; • } • dist[s.number()] = 0; • for (i = 0; i < g.num_nodes; i++) • if ((g.is_marked(i, UNVISITED)) && (dist[i] < dist[v])) v = i; • for (i = 0; i < g.num_nodes; i++) { • vert v = minvertex(g, dist); • return (v); • } • g.mark(v, VISITED); • if (v != s) add_edge_to_MST(vert[v], v); • if (dist[v] == INFINITY) return; • for (edge w = g.first_edge; g.is_edge(w), w = g.next_edge(w)) { • if (dist[g.first_vert(w)] = g.weight(w)) { • dist[g.second_vert(w)] = g.weight(w); • vert[g.second_vert(w)] = v; • } • } • } • }
  • 19. Complexity Analysis Minimum edge weight data Time complexity (total) structure adjacency matrix, searching O(V*V) binary heap and adjacency O((V + E) log(V)) = O(E list log(V)) Fibonacci heap and O(E + V log(V)) adjacency list
  • 20. Application  One practical application of a MST would be in the design of a network. For instance, a group of individuals, who are separated by varying distances, wish to be connected together in a telephone network. Because the cost between two terminal is different, if we want to reduce our expenses, Prim's Algorithm is a way to solve it  Connect all computers in a computer science building using least amount of cable.  A less obvious application is that the minimum spanning tree can be used to approximately solve the traveling salesman problem. A convenient formal way of defining this problem is to find the shortest path that visits each point at least once.  Another useful application of MST would be finding airline routes. The vertices of the graph would represent cities, and the edges would represent routes between the cities. Obviously, the further one has to travel, the more it will cost, so MST can be applied to optimize airline routes by finding the least costly paths with no cycles.
  • 21. Reference Book: Introduction to Algorithm By: Thomas H. Cormen Website: • mathworld.wolfram.com • www-b2.is.tokushima-u.ac.jp/suuri/Prim.shtml • www.cprogramming.com/tutorial/ computersciencetheory/mst.html • en.wikipedia.org/wiki/Prim's_algorithm • www.unf.edu/~wkloster/foundations/ PrimApplet/PrimApplet.htm
  • 22. Thank you for being with me… Any question?????