SlideShare une entreprise Scribd logo
1  sur  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?????

Contenu connexe

Tendances

Prims Algorithm
Prims AlgorithmPrims Algorithm
Prims AlgorithmSriram Raj
 
Graph traversal-BFS & DFS
Graph traversal-BFS & DFSGraph traversal-BFS & DFS
Graph traversal-BFS & DFSRajandeep Gill
 
GRAPH APPLICATION - MINIMUM SPANNING TREE (MST)
GRAPH APPLICATION - MINIMUM SPANNING TREE (MST)GRAPH APPLICATION - MINIMUM SPANNING TREE (MST)
GRAPH APPLICATION - MINIMUM SPANNING TREE (MST)Madhu Bala
 
Data structure - Graph
Data structure - GraphData structure - Graph
Data structure - GraphMadhu Bala
 
Graph in data structure
Graph in data structureGraph in data structure
Graph in data structureAbrish06
 
Shortest path algorithm
Shortest path algorithmShortest path algorithm
Shortest path algorithmsana younas
 
ADA - Minimum Spanning Tree Prim Kruskal and Dijkstra
ADA - Minimum Spanning Tree Prim Kruskal and Dijkstra ADA - Minimum Spanning Tree Prim Kruskal and Dijkstra
ADA - Minimum Spanning Tree Prim Kruskal and Dijkstra Sahil Kumar
 
Binary Search Tree in Data Structure
Binary Search Tree in Data StructureBinary Search Tree in Data Structure
Binary Search Tree in Data StructureDharita Chokshi
 
Depth first search [dfs]
Depth first search [dfs]Depth first search [dfs]
Depth first search [dfs]DEEPIKA T
 
Bellman Ford's Algorithm
Bellman Ford's AlgorithmBellman Ford's Algorithm
Bellman Ford's AlgorithmTanmay Baranwal
 

Tendances (20)

Prims Algorithm
Prims AlgorithmPrims Algorithm
Prims Algorithm
 
Shortest path algorithms
Shortest path algorithmsShortest path algorithms
Shortest path algorithms
 
Kruskal’s algorithm
Kruskal’s algorithmKruskal’s algorithm
Kruskal’s algorithm
 
PRIM'S ALGORITHM
PRIM'S ALGORITHMPRIM'S ALGORITHM
PRIM'S ALGORITHM
 
Graph traversal-BFS & DFS
Graph traversal-BFS & DFSGraph traversal-BFS & DFS
Graph traversal-BFS & DFS
 
GRAPH APPLICATION - MINIMUM SPANNING TREE (MST)
GRAPH APPLICATION - MINIMUM SPANNING TREE (MST)GRAPH APPLICATION - MINIMUM SPANNING TREE (MST)
GRAPH APPLICATION - MINIMUM SPANNING TREE (MST)
 
Data structure - Graph
Data structure - GraphData structure - Graph
Data structure - Graph
 
Dijkstra's Algorithm
Dijkstra's Algorithm Dijkstra's Algorithm
Dijkstra's Algorithm
 
Graph in data structure
Graph in data structureGraph in data structure
Graph in data structure
 
Bfs and Dfs
Bfs and DfsBfs and Dfs
Bfs and Dfs
 
Graph traversals in Data Structures
Graph traversals in Data StructuresGraph traversals in Data Structures
Graph traversals in Data Structures
 
Bellman ford algorithm
Bellman ford algorithmBellman ford algorithm
Bellman ford algorithm
 
Shortest path algorithm
Shortest path algorithmShortest path algorithm
Shortest path algorithm
 
Kruskal Algorithm
Kruskal AlgorithmKruskal Algorithm
Kruskal Algorithm
 
Minimum spanning tree
Minimum spanning treeMinimum spanning tree
Minimum spanning tree
 
ADA - Minimum Spanning Tree Prim Kruskal and Dijkstra
ADA - Minimum Spanning Tree Prim Kruskal and Dijkstra ADA - Minimum Spanning Tree Prim Kruskal and Dijkstra
ADA - Minimum Spanning Tree Prim Kruskal and Dijkstra
 
Binary Search Tree in Data Structure
Binary Search Tree in Data StructureBinary Search Tree in Data Structure
Binary Search Tree in Data Structure
 
Depth first search [dfs]
Depth first search [dfs]Depth first search [dfs]
Depth first search [dfs]
 
DFS and BFS
DFS and BFSDFS and BFS
DFS and BFS
 
Bellman Ford's Algorithm
Bellman Ford's AlgorithmBellman Ford's Algorithm
Bellman Ford's Algorithm
 

Similaire à 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
 
Dijkstra's algorithm presentation
Dijkstra's algorithm presentationDijkstra's algorithm presentation
Dijkstra's algorithm presentationSubid Biswas
 
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
 

Similaire à Prim's Algorithm on minimum spanning tree (20)

Ppt 1
Ppt 1Ppt 1
Ppt 1
 
Topological Sort
Topological SortTopological Sort
Topological Sort
 
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
 
Dijkstra's algorithm presentation
Dijkstra's algorithm presentationDijkstra's algorithm presentation
Dijkstra's algorithm presentation
 
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
 

Dernier

ACC 2024 Chronicles. Cardiology. Exam.pdf
ACC 2024 Chronicles. Cardiology. Exam.pdfACC 2024 Chronicles. Cardiology. Exam.pdf
ACC 2024 Chronicles. Cardiology. Exam.pdfSpandanaRallapalli
 
Field Attribute Index Feature in Odoo 17
Field Attribute Index Feature in Odoo 17Field Attribute Index Feature in Odoo 17
Field Attribute Index Feature in Odoo 17Celine George
 
Barangay Council for the Protection of Children (BCPC) Orientation.pptx
Barangay Council for the Protection of Children (BCPC) Orientation.pptxBarangay Council for the Protection of Children (BCPC) Orientation.pptx
Barangay Council for the Protection of Children (BCPC) Orientation.pptxCarlos105
 
USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...
USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...
USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...Postal Advocate Inc.
 
Q4 English4 Week3 PPT Melcnmg-based.pptx
Q4 English4 Week3 PPT Melcnmg-based.pptxQ4 English4 Week3 PPT Melcnmg-based.pptx
Q4 English4 Week3 PPT Melcnmg-based.pptxnelietumpap1
 
Keynote by Prof. Wurzer at Nordex about IP-design
Keynote by Prof. Wurzer at Nordex about IP-designKeynote by Prof. Wurzer at Nordex about IP-design
Keynote by Prof. Wurzer at Nordex about IP-designMIPLM
 
Science 7 Quarter 4 Module 2: Natural Resources.pptx
Science 7 Quarter 4 Module 2: Natural Resources.pptxScience 7 Quarter 4 Module 2: Natural Resources.pptx
Science 7 Quarter 4 Module 2: Natural Resources.pptxMaryGraceBautista27
 
Grade 9 Q4-MELC1-Active and Passive Voice.pptx
Grade 9 Q4-MELC1-Active and Passive Voice.pptxGrade 9 Q4-MELC1-Active and Passive Voice.pptx
Grade 9 Q4-MELC1-Active and Passive Voice.pptxChelloAnnAsuncion2
 
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
DATA STRUCTURE AND ALGORITHM for beginners
DATA STRUCTURE AND ALGORITHM for beginnersDATA STRUCTURE AND ALGORITHM for beginners
DATA STRUCTURE AND ALGORITHM for beginnersSabitha Banu
 
Like-prefer-love -hate+verb+ing & silent letters & citizenship text.pdf
Like-prefer-love -hate+verb+ing & silent letters & citizenship text.pdfLike-prefer-love -hate+verb+ing & silent letters & citizenship text.pdf
Like-prefer-love -hate+verb+ing & silent letters & citizenship text.pdfMr Bounab Samir
 
Difference Between Search & Browse Methods in Odoo 17
Difference Between Search & Browse Methods in Odoo 17Difference Between Search & Browse Methods in Odoo 17
Difference Between Search & Browse Methods in Odoo 17Celine George
 
ANG SEKTOR NG agrikultura.pptx QUARTER 4
ANG SEKTOR NG agrikultura.pptx QUARTER 4ANG SEKTOR NG agrikultura.pptx QUARTER 4
ANG SEKTOR NG agrikultura.pptx QUARTER 4MiaBumagat1
 
Proudly South Africa powerpoint Thorisha.pptx
Proudly South Africa powerpoint Thorisha.pptxProudly South Africa powerpoint Thorisha.pptx
Proudly South Africa powerpoint Thorisha.pptxthorishapillay1
 
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATION
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATIONTHEORIES OF ORGANIZATION-PUBLIC ADMINISTRATION
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATIONHumphrey A Beña
 
Computed Fields and api Depends in the Odoo 17
Computed Fields and api Depends in the Odoo 17Computed Fields and api Depends in the Odoo 17
Computed Fields and api Depends in the Odoo 17Celine George
 
ISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITY
ISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITYISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITY
ISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITYKayeClaireEstoconing
 
Influencing policy (training slides from Fast Track Impact)
Influencing policy (training slides from Fast Track Impact)Influencing policy (training slides from Fast Track Impact)
Influencing policy (training slides from Fast Track Impact)Mark Reed
 

Dernier (20)

ACC 2024 Chronicles. Cardiology. Exam.pdf
ACC 2024 Chronicles. Cardiology. Exam.pdfACC 2024 Chronicles. Cardiology. Exam.pdf
ACC 2024 Chronicles. Cardiology. Exam.pdf
 
Field Attribute Index Feature in Odoo 17
Field Attribute Index Feature in Odoo 17Field Attribute Index Feature in Odoo 17
Field Attribute Index Feature in Odoo 17
 
Barangay Council for the Protection of Children (BCPC) Orientation.pptx
Barangay Council for the Protection of Children (BCPC) Orientation.pptxBarangay Council for the Protection of Children (BCPC) Orientation.pptx
Barangay Council for the Protection of Children (BCPC) Orientation.pptx
 
USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...
USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...
USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...
 
Q4 English4 Week3 PPT Melcnmg-based.pptx
Q4 English4 Week3 PPT Melcnmg-based.pptxQ4 English4 Week3 PPT Melcnmg-based.pptx
Q4 English4 Week3 PPT Melcnmg-based.pptx
 
Keynote by Prof. Wurzer at Nordex about IP-design
Keynote by Prof. Wurzer at Nordex about IP-designKeynote by Prof. Wurzer at Nordex about IP-design
Keynote by Prof. Wurzer at Nordex about IP-design
 
Science 7 Quarter 4 Module 2: Natural Resources.pptx
Science 7 Quarter 4 Module 2: Natural Resources.pptxScience 7 Quarter 4 Module 2: Natural Resources.pptx
Science 7 Quarter 4 Module 2: Natural Resources.pptx
 
Grade 9 Q4-MELC1-Active and Passive Voice.pptx
Grade 9 Q4-MELC1-Active and Passive Voice.pptxGrade 9 Q4-MELC1-Active and Passive Voice.pptx
Grade 9 Q4-MELC1-Active and Passive Voice.pptx
 
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
 
Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝
 
DATA STRUCTURE AND ALGORITHM for beginners
DATA STRUCTURE AND ALGORITHM for beginnersDATA STRUCTURE AND ALGORITHM for beginners
DATA STRUCTURE AND ALGORITHM for beginners
 
Like-prefer-love -hate+verb+ing & silent letters & citizenship text.pdf
Like-prefer-love -hate+verb+ing & silent letters & citizenship text.pdfLike-prefer-love -hate+verb+ing & silent letters & citizenship text.pdf
Like-prefer-love -hate+verb+ing & silent letters & citizenship text.pdf
 
Difference Between Search & Browse Methods in Odoo 17
Difference Between Search & Browse Methods in Odoo 17Difference Between Search & Browse Methods in Odoo 17
Difference Between Search & Browse Methods in Odoo 17
 
ANG SEKTOR NG agrikultura.pptx QUARTER 4
ANG SEKTOR NG agrikultura.pptx QUARTER 4ANG SEKTOR NG agrikultura.pptx QUARTER 4
ANG SEKTOR NG agrikultura.pptx QUARTER 4
 
Proudly South Africa powerpoint Thorisha.pptx
Proudly South Africa powerpoint Thorisha.pptxProudly South Africa powerpoint Thorisha.pptx
Proudly South Africa powerpoint Thorisha.pptx
 
YOUVE GOT EMAIL_FINALS_EL_DORADO_2024.pptx
YOUVE GOT EMAIL_FINALS_EL_DORADO_2024.pptxYOUVE GOT EMAIL_FINALS_EL_DORADO_2024.pptx
YOUVE GOT EMAIL_FINALS_EL_DORADO_2024.pptx
 
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATION
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATIONTHEORIES OF ORGANIZATION-PUBLIC ADMINISTRATION
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATION
 
Computed Fields and api Depends in the Odoo 17
Computed Fields and api Depends in the Odoo 17Computed Fields and api Depends in the Odoo 17
Computed Fields and api Depends in the Odoo 17
 
ISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITY
ISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITYISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITY
ISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITY
 
Influencing policy (training slides from Fast Track Impact)
Influencing policy (training slides from Fast Track Impact)Influencing policy (training slides from Fast Track Impact)
Influencing policy (training slides from Fast Track Impact)
 

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?????