Алгоритм раскраски графа

Из викиhttp://en.wikipedia.org/wiki/Graph_coloring

В простейшем виде это способ раскрасить вершины графа так, чтобы никакие две смежные вершины не имели одинаковый цвет; это называется раскраской вершин. Аналогично, раскраска ребер назначает цвет каждому ребру так, чтобы ни у двух смежных ребер не было одинакового цвета, а раскраска грани плоского графа присваивает цвет каждой грани или области, чтобы ни у двух граней, которые имеют границу, не было одинакового цвет.

Насколько «n» цветов и «m» вершин, насколько легко может быть реализован алгоритм раскраски графов на языке программирования?

Язык без барьеров.

Просто головоломка.

(Предположим, существуют объекты Graph и вершины)

Редактировать:
После прочтения вики проблемаNP-полной
Время пересмотреть математические книги :)
моя вина.
извиняюсь.

Просто любопытно,
Это было опробовано? как при написании программ для одного и того же?
Я слышал, что это используется в оптических сетях?

Разве это не похоже на раскраску куба?
(минимальное количество цветов для окраски граней куба, чтобы никакие две стороны не имели одинаковый цвет?)

Ответы на вопрос(4)

Ваш ответ на вопрос