Detailed explanation of examples of minimum spanning trees
Minimum Spanning Tree-Prim's Algorithm and Kruskal's Algorithm
The spanning tree of a graph is an acyclic connected subgraph containing all vertices, a weighted graph The minimum spanning tree of is its spanning tree with the smallest weight.
Prim algorithm
Simple description of the algorithm
1). Input: a weighted connected graph, in which the vertex set is V and the edge set is E;
2). Initialization: Vnew = {x}, where x is any node (starting point) in the set V, Enew = {}, is empty;
3). Repeat the following Operation until Vnew = V:
a. Select the edge with the smallest weight in set E , where u is the set V elements in new, and v is not in the Vnew set, and v∈V (if there are multiple edges that meet the above conditions and have the same weight, you can choose arbitrarily One of them);
b. Add v to the set Vnew, and add the edge to the set Enew Medium;
4). Output: Use the set Vnew and Enew to describe the resulting minimum spanning tree.
The following is an illustration description of the algorithm
##The next vertex is distanceC, GB, E, FA, DThe algorithm continues to repeat the above steps. Vertex CB, E, GA, D, F##A, D, F, B, EGLegend | Description | Not optional | Optional | Selected(Vnew) |
---|---|---|---|---|
|
This is the original weighted connected graph. The number on one side of each edge represents its weight. | - | - | ##- |
Vertex D is arbitrarily chosen as the starting point. Vertices A, B, E, and F are connected to D by a single edge. A is the vertex closest to D, so A and the corresponding edge AD are highlighted. | C, G | A, B, E, F | D | |
| D Or A nearest vertex. B is 9 from D, 7 from A, 15 from E, and 6 from F. Therefore, F is closest to D or A, so the vertex F and the corresponding edge DF are highlighted. | |||
![]() | B with a distance of 7 from A is highlighted. | |||
|
In the current situation, you can choose between C, E and G. C is 8 from B, E is 7 from B, and G is 11 from F. E is closest, so the vertex E and the corresponding edge BE are highlighted. | None | C, E, G | A, D, F, B |
|
##Here, the only vertices to choose from are C and G. The distance between C and E is 5, and the distance between G and E is 9, so C is selected and combined with the edge EC are highlighted together. | None | C, G | |
| is the only remaining vertex, Its distance from F is 11, its distance from E is 9, and E is the closest, so G and the corresponding edge EG are highlighted. None | G | ##A, D, F, B, E, C | |
|
None | None | ##A, D, F, B, E, C, G | For algorithm implementation, please refer to the fourth edition of "Algorithm", or "Data Structure - Java Language Implementation" by Tsinghua Publishing House (the implementation method is clearer and simpler)
Kruskal Algorithm 1. Overview Kruskal's algorithm is an algorithm used to find the minimum spanning tree, published by Joseph Kruskal in 1956. There are also Prim algorithm and Boruvka algorithm used to solve the same problem. All three algorithms are applications of greedy algorithms. The difference from Boruvka's algorithm is that Kruskal's algorithm is also effective when there are edges with the same weight in the graph.
2. Brief description of the algorithm 1). Remember that there are v vertices and e edges in Graph 2). Create a new graph Graphnew, and Graphnew has the original graph The same e vertices, but no edges 3). Sort all e edges in the original graph Graph from small to large by weight 4). Loop: start from the edge with the smallest weight and traverse each edge until all nodes in the graph are in the same connected component ## If this edge is connected The two nodes in the graph Graphnew are not in the same connected component. Legend description:First of all, we have a graph Graph with several points and edges Sort the lengths of all edges, and use the sorted results as the basis for our edge selection. Here again the idea of greedy algorithm is reflected.
Look for the remaining changes. We found CE. The weight here is also 5 and so on. We find 6, 7, 7, that is, DF, AB, BE.
In the end, only EG and FG are left. Of course we chose EG. Algorithm implementation can refer to the code in the fourth edition of "Algorithm".
|
The above is the detailed content of Detailed explanation of examples of minimum spanning trees. For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics





Generating random data is very important in the field of data science. From building neural network predictions, stock market data, etc., date is usually used as one of the parameters. We may need to generate random numbers between two dates for statistical analysis. This article will show how to generate k random dates between two given dates using the random and datetime modules. Datetime is Python’s built-in library for handling time. On the other hand, the random module helps in generating random numbers. So we can combine random and datetime modules to generate a random date between two dates. Syntax random.randint (start, end, k) random here refers to the Python random library. The randint method uses three important

How to use PHP to generate refreshable image verification codes. With the development of the Internet, in order to prevent malicious attacks and automatic machine operations, many websites use verification codes for user verification. One common type of verification code is the image verification code, which generates a picture containing random characters and requires the user to enter the correct characters before proceeding. This article will introduce how to use PHP to generate refreshable image verification codes and provide specific code examples. Step 1: Create a verification code image First, we need to create a verification code image

Natural language generation is an artificial intelligence technology that converts data into natural language text. In today's big data era, more and more businesses need to visualize or present data to users, and natural language generation is a very effective method. PHP is a very popular server-side scripting language that can be used to develop web applications. This article will briefly introduce how to use PHP for basic natural language generation. Introducing the natural language generation library The function library that comes with PHP does not include the functions required for natural language generation, so

iFlytek has upgraded the meeting minutes function, which can directly convert spoken expressions into written drafts, and AI can summarize meeting minutes based on recordings. AI can help you complete the writing of meeting minutes. On August 31, the iFlytek web version was upgraded, adding a real-time recording function on the PC side, which can use artificial intelligence to intelligently generate meeting minutes. The launch of this function will greatly improve the efficiency of users in organizing content and following up on key work items after meetings. For people who often attend meetings, this function is undoubtedly a very practical tool that can save a lot of time and energy. The application scenario of this function is mainly to convert recordings on the PC to text and automatically generate meeting minutes, aiming to provide users with the best quality. Products with excellent services and the most advanced technology to quickly improve office efficiency

Data visualization is essential for efficient information understanding and presentation. Among the many chart types available, waffle charts are a novel way of displaying data in a grid-like structure with square tiles. The powerful Python module PyWaffle facilitates the development of waffle charts, similar to many computational and data analysis methods. In this article, we will look at how to create a waffle chart using the sophisticated Python module PyWaffle. Let’s install PyWafle and see how to use it to visualize categorical data. Run the following command in your cmd to install the library and then import it into your code. The Chinese translation of pipinstallpywaffleExample1 is: Example 1 In this example, we

How to generate QR code with time limit using PHP? With the popularity of mobile payments and electronic tickets, QR codes have become a common technology. In many scenarios, we may need to generate a QR code with a time limit, which will become invalid even after a certain period of time. This article will introduce how to use PHP to generate a time-limited QR code and provide code examples for reference. Installing the PHPQRCode library To use PHP to generate QR codes, we need to install the PHPQRCode library first. This library

How to generate an error book for online answering questions In today's information age, answering questions online has become a common task for many students and educators. Wrong questions have always been one of the problems in the learning process. Many people hope to easily generate a wrong answer book for online answers so that they can better review and master knowledge. This article will introduce how to realize the generation function of online answer error book through programming, and provide specific code examples. Step 1: Build a web interface to generate online answer and error booklets. You need a web interface to display questions and answers. Can use HTML

What to do if word table of contents is generated incorrectly. With the development of technology, electronic documents have become an indispensable part of our daily work and study. When editing electronic documents, especially long articles or papers, the generation of a table of contents is a very important step. The table of contents can make it easier for readers to find the content and structure of the article and improve reading efficiency. However, sometimes we encounter some problems in the process of generating the catalog, such as catalog generation errors, disordered order, etc. So, if the word directory is generated incorrectly, how should we solve it? head
