-4
$\begingroup$

I heard brute-force is the only method. Is there any other way? Is there a way to prove that the complexity cannot be exponential?

$\endgroup$

1 Answer 1

10
$\begingroup$

There are non-obvious improvements over simple brute-force search for $k$-coloring (and for many other NP-hard problems). The obvious approach would take roughly $k^n$ time, but one can do it in time $O(2^n \cdot poly(n))$, and for $k = 3$, one can get $O(1.33^n)$. Algorithms in this area involve simple but interesting applications of dynamic programming and inclusion-exclusion, and for state-of-the-art results can involve intricate case analysis. One good starting point: these lecture notes (with references) by Uri Feige

http://www.wisdom.weizmann.ac.il/~dinuri/courses/11-BoundaryPNP/L01.pdf

which also include open problems; e.g., can one get running time $O(2^n \cdot poly(n))$ as above with polynomial space usage?

A broader/deeper introduction to improved exponential-time algorithms for NP problems can be found in the textbook "Exact Exponential Algorithms" by Fomin and Kratsch:

http://www.springer.com/us/book/9783642165320

$\endgroup$

Not the answer you're looking for? Browse other questions tagged or ask your own question.