|
14 | 14 | \begin{document} |
15 | 15 |
|
16 | 16 | \title{Borůvka's Algorithm} |
17 | | -\author{Student Number: 690065435} |
| 17 | +\author{Isaac Cheng} |
18 | 18 | \date{December 2022} |
19 | 19 |
|
20 | 20 | \maketitle |
|
29 | 29 | \vspace*{\fill} |
30 | 30 | \begin{center} |
31 | 31 | YouTube Video Link: \url{https://www.youtube.com/watch?v=n5LNVobuBNU} |
32 | | - |
33 | | -\vspace{0.5em} |
34 | | -Word Count: 1,469 |
35 | | - |
36 | | -\vspace{1em} |
37 | | -I certify that all material in this report which is not my own work has been identified. |
38 | 32 | \end{center} |
39 | 33 | \vspace{1em} |
40 | 34 |
|
@@ -71,7 +65,7 @@ \section{Pseudocode} |
71 | 65 |
|
72 | 66 | \nl Initialise a list of components $N$, where $N_k$ denotes the vertices in component $k$. |
73 | 67 |
|
74 | | - \nl \For{vertex $v \in V$}{ |
| 68 | + \nl \For{node $v \in V$}{ |
75 | 69 | \nl $N_v = v$. |
76 | 70 | } |
77 | 71 |
|
@@ -158,17 +152,17 @@ \subsection{Two-Approximation for the Travelling Salesperson Problem} |
158 | 152 |
|
159 | 153 | \begin{algorithm} |
160 | 154 | \caption{Two-Approximation for the Travelling Salesperson Problem with MST-DFS \cite{andreae1995performance}} |
161 | | - \nl Set a vertex as the start. |
| 155 | + \nl Set a node as the start. |
162 | 156 |
|
163 | 157 | \nl Construct a minimum spanning tree, $T$. |
164 | 158 |
|
165 | | - \nl Create a list of vertices, $H$, that is ordered according to when they are visited in a pre-order tree walk of $T$, and add the start vertex at the end. |
| 159 | + \nl Create a list of vertices, $H$, that is ordered according to when they are visited in a pre-order tree walk of $T$, and add the start node at the end. |
166 | 160 |
|
167 | 161 | \nl Return the path $H$. |
168 | 162 | \end{algorithm} |
169 | 163 |
|
170 | 164 | \subsection{Parallel Computation of Minimum Spanning Trees} |
171 | | -Several other algorithms are technically more optimal for finding a minimum spanning tree depending on the input graph -- Prim's algorithm is faster for dense graphs, and Kruskal's algorithm is faster for sparse graphs \cite{bazlamaccci2001minimum}. However, this only considers sequential implementations of the algorithms -- Borůvka's algorithm has become increasingly popular because it is easy to parallelise \cite{mariano2015generic}. This contrasts with the aforementioned algorithms, which are intrinsically serial -- they start with a single component and seek to add edges to it, making it difficult to parallelise them as we must keep and check edges in a strict order. As Borůvka's algorithm starts with multiple components and seeks to connect them with the shortest edge, it can be parallelised by distributing the edges between processors to determine the shortest connecting edge for each vertex \cite{chung1996parallel}. The parallel implementation of Borůvka's algorithm enables faster performance on multi-core or distributed systems, giving it an advantage over other classical minimum spanning tree problems when working at a large scale. |
| 165 | +Several other algorithms are technically more optimal for finding a minimum spanning tree depending on the input graph -- Prim's algorithm is faster for dense graphs, and Kruskal's algorithm is faster for sparse graphs \cite{bazlamaccci2001minimum}. However, this only considers sequential implementations of the algorithms -- Borůvka's algorithm has become increasingly popular because it is easy to parallelise \cite{mariano2015generic}. This contrasts with the aforementioned algorithms, which are intrinsically serial -- they start with a single component and seek to add edges to it, making it difficult to parallelise them as we must keep and check edges in a strict order. As Borůvka's algorithm starts with multiple components and seeks to connect them with the shortest edge, it can be parallelised by distributing the edges between processors to determine the shortest connecting edge for each node \cite{chung1996parallel}. The parallel implementation of Borůvka's algorithm enables faster performance on multi-core or distributed systems, giving it an advantage over other classical minimum spanning tree problems when working at a large scale. |
172 | 166 |
|
173 | 167 | \subsection{Faster Sequential Algorithms for Minimum Spanning Trees} |
174 | 168 | The concepts behind Borůvka's algorithm have also been used to develop faster sequential algorithms. For example, the expected linear time minimum spanning tree algorithm proposed by Karger, Klein, and Tarjan runs in O(E) time. It involves an adaptation of Borůvka's algorithm by using the Borůvka step, which reduces the number of vertices in the graph by at least a factor of two, on graph G to create a contracted graph G' \cite{dixon1992verification, king1995simpler}. This is followed by a random sampling step that selects a subgraph H by selecting each edge in G' independently with a probability of 1/2 \cite{bazlamaccci2001minimum}. Finally, the verification step removes F-heavy edges from G' to reduce the graph further using a linear time minimum spanning tree verification algorithm \cite{dixon1992verification, king1995simpler, karger1995randomized}. |
|
0 commit comments