Carleton University - School of Computer Science Honours Project
Summer 2019
An analysis and implementation of sublinear degree+1 graph colouring.
Arthur Morris
SCS Honours Project Image
ABSTRACT
Improving the efficiency of algorithms is a key objective of algorithm development. One of the ways to make an algorithm more efficient is to parallelize it. One of the techniques often used for effective parallelization is graph colouring, grouping all the vertexes of a graph so that there is no edge connecting any two vertexes in the same group. This is used in a number of applications, mostly to prevent conflicts for resources. Graph colouring can also be used to break symmetry in distributed systems where vertexes represent compute units and edges encode the network. Until recently this was done using a simple linear time greedy algorithm. Recently, a new sublinear algorithm was proven for degree+1 colours, but no implementation of this is available yet. This new algorithm uses a fundamentally different approach. The Greedy algorithm checks every neighbor then assigns the first available colour. The new algorithm limits the possible colours at each vertex, and then uses this to eliminate irrelevant edges. The goal of this paper is to produce and analyze an implementation of this algorithm and some adjustments of it using c++.