Skip to content

Commit f0f850d

Browse files
committed
Update author, remove word count, change vertex -> node in written report
1 parent bf4e2c8 commit f0f850d

2 files changed

Lines changed: 5 additions & 11 deletions

File tree

docs/main.pdf

-360 KB
Binary file not shown.

docs/main.tex

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
\begin{document}
1515

1616
\title{Borůvka's Algorithm}
17-
\author{Student Number: 690065435}
17+
\author{Isaac Cheng}
1818
\date{December 2022}
1919

2020
\maketitle
@@ -29,12 +29,6 @@
2929
\vspace*{\fill}
3030
\begin{center}
3131
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.
3832
\end{center}
3933
\vspace{1em}
4034

@@ -71,7 +65,7 @@ \section{Pseudocode}
7165

7266
\nl Initialise a list of components $N$, where $N_k$ denotes the vertices in component $k$.
7367

74-
\nl \For{vertex $v \in V$}{
68+
\nl \For{node $v \in V$}{
7569
\nl $N_v = v$.
7670
}
7771

@@ -158,17 +152,17 @@ \subsection{Two-Approximation for the Travelling Salesperson Problem}
158152

159153
\begin{algorithm}
160154
\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.
162156

163157
\nl Construct a minimum spanning tree, $T$.
164158

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

167161
\nl Return the path $H$.
168162
\end{algorithm}
169163

170164
\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.
172166

173167
\subsection{Faster Sequential Algorithms for Minimum Spanning Trees}
174168
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

Comments
 (0)