Summary: A spectral technique for coloring random 3-colorable graphs
Let G3n,p,3 be a random 3-colorable graph on a set of 3n vertices generated as follows.
First, split the vertices arbitrarily into three equal color classes and then choose every pair of
vertices of distinct color classes, randomly and independently, to be an edge with probability
p. We describe a polynomial time algorithm that finds a proper 3-coloring of G3n,p,3 with high
probability, whenever p c/n, where c is a sufficiently large absolute constant. This settles a
problem of Blum and Spencer, who asked if one can design an algorithm that works almost surely
for p polylog(n)/n. The algorithm can be extended to produce optimal k-colorings of random
k-colorable graphs in a similar model, as well as in various related models. Implementation
results show that the algorithm performs very well in practice even for moderate values of c.
A vertex coloring of a graph G is proper if no adjacent vertices receive the same color. The chromatic
number (G) of G is the minimum number of colors in a proper vertex coloring of it. The problem
of determining or estimating this parameter has received a considerable amount of attention in
Combinatorics and in Theoretical Computer Science, as several scheduling problems are naturally
formulated as graph coloring problems. It is well known (see [13, 12]) that the problem of properly
coloring a graph of chromatic number k with k colors is NP-hard, even for any fixed k 3, and it is