0

I was searching for graph coloring algorithms, and I have found algorithm, which, how author states, runs in polynomial time. Author gives also C++ program source code and demonstration program.

The suspicious thing is that decision problem whether graph is k-colorable, is NP-complete, so no polynomial time algorithm should exist until P=NP.

However, author doesn't claims, that algorithm works for all graphs, he only says, that he haven't found any graph, for which algorithm doesn't work.

So, the question: does that algorithm really works for every graph and that means actually P=NP, or there exist certain graphs/graph classes for which it doesn't work? Or maybe there is simply a mistake in complexity calculation?

Somnium
  • 1,059
  • 1
  • 9
  • 34
  • 1
    Certainly the article describing this algorithm has not been competently refereed. It is overwhelmingly likely that the algorithm or the complexity analysis (or both) is incorrect. (I have a PhD, on graph algorithms.) – David Eisenstat Sep 08 '15 at 17:55
  • I think this question would be better suited on either [cstheory.se] or [cs.se] (not sure which one, and you'll have to confirm whether it will actually be appropriate there) (although it's probably a bit too dependent on the external link at the moment - at the very least the article / paper / book name and authors should be mentioned). – Bernhard Barker Sep 08 '15 at 17:59
  • The algorithm can still be valuable if it works on a lot of graphs. Unlikely to be both correct for every graph and polynomial however. – IVlad Sep 08 '15 at 17:59

1 Answers1

2

I think you haven't read the abstract very carefully.

The author presents an algorithm which finds m-colorings of a graph, for some m less than the limit imposed by Brooks' theorem: https://en.wikipedia.org/wiki/Brooks'_theorem

(which is old and states that chi < delta + 1 as the author states in second sentence.)

The author is aware of the P vs NP question. The paper does not claim to resolve the question, he merely states:

For all known examples of graphs, the algorithm finds a proper m-coloring of the vertices of the graph G for m equal to the chromatic number χ(G)

Then he asks,

In view of the importance of the P versus NP question, we ask: does there exist a graph G for which this algorithm cannot find a proper m-coloring of the vertices of G with m equal to the chromatic number χ(G)?

Emphasis in original (!)

So it doesn't claim to resolve P vs NP, its just, as a matter of academic research, they ask "can anyone produce an example on which this algorithm fails to reach the chromatic number", which might be instructive to them for mathematical purposes. It is highly unlikely that the algorithm actually achieves the chromatic number for all graphs. (Although it is, scientifically speaking, unknown whether it does or doesn't.)

Chris Beck
  • 15,614
  • 4
  • 51
  • 87
  • I have read that part which you quoted. It simply unknown, are there graphs, for which algorithm doesn't work. – Somnium Sep 08 '15 at 18:03
  • Yes it comes down to what is meant precisely by "work". Presumably it always does "work" in the sense that it produces a coloring, and maybe it does work in polynomial time. But it (presumably) does not produce an optimal coloring for every graph. There's nothing that says that you can't produce colorings of some quality in polynomial time. – Chris Beck Sep 08 '15 at 18:05
  • So finding proper m-coloring of graph with n vertexes is not NP-complete? Only finding optimal coloring is NP-compete? But if I can find m-coloring in polynomial time, then I can run that algorithm n times with different m values and get optimal coloring in polynomial time. – Somnium Sep 08 '15 at 18:12
  • It's an issue of understanding about parameters and when they are fixed. If the problem is "Given a graph and a number `k`, is the graph `k`-colorable or not?", that is np-complete. If the problem is, fix `k`, now ask "is any given graph `k`-colorable?", that is np-complete for `k` larger than 2. If the problem is "Given a graph, is the graph `m` colorable, where `m` depends in some way on the graph?" that question may be easy or hard depending on exactly what the dependency of `m` on the graph is. – Chris Beck Sep 08 '15 at 18:16
  • For example, if the parameter `m` is taken to be `delta + 1` where `delta` is the maximum degree of the graph, it's very easy to produce such a coloring in polynomial time, that's basically the content of brooks' theorem. If the question is "is the graph delta colorable" (as opposed to requiring delta + 1 colors), that question is easy also. So saying, "I have a polynomial time algorihtm for `m` colorability where `m` means ..." is not the same as saying "I've solved the graph `k`-colorability problem." You have to carefully read the precise claims they make, there are many subtleties. – Chris Beck Sep 08 '15 at 18:18
  • No problem, I think I asked questions just like this when I began to study these things :) – Chris Beck Sep 08 '15 at 18:27