The k-colouring problem is to colour a given k-colourable graph with k colours. This
problem is known to be NP-hard even for fixed k [ges ] 3. The best known polynomial time
approximation algorithms require nδ (for a positive constant δ depending on k) colours
to colour an arbitrary k-colourable n-vertex graph. The situation is entirely different if we
look at the average performance of an algorithm rather than its worst-case performance.
It is well known that a k-colourable graph drawn from certain classes of distributions can
be k-coloured almost surely in polynomial time.
In this paper, we present further results in this direction. We consider k-colourable
graphs drawn from the random model in which each allowed edge is chosen independently
with probability p(n) after initially partitioning the vertex set into k colour classes. We
present polynomial time algorithms of two different types. The first type of algorithm
always runs in polynomial time and succeeds almost surely. Algorithms of this type
have been proposed before, but our algorithms have provably exponentially small failure
probabilities. The second type of algorithm always succeeds and has polynomial running
time on average. Such algorithms are more useful and more difficult to obtain than the
first type of algorithms. Our algorithms work as long as
p(n) [ges ] n−1+ε where ε is a
constant greater than 1/4.