BFS を使用してグラフの色分けを実装できないかと考えた結果、以下の疑似コードのアプローチを思いつきました。
貪欲なアルゴリズムのように見えますが、正確かどうかはわかりません。専門家のコメントはありますか?
colors[MAX_COLORS];
colorsUsedSoFar[] = NIL;
like BFS, color first node u with colors[0] i.e color[u] = colors[0];
colorsUsedSoFar[] += colors[0];
for each node v adjacent to u{
(if v not already colored){
color[v] = color from the colorsUsedSoFar[] but NotUsedByItsAdjacents
If all the colors in colorsUsedSoFar[] are used by adjacents, assign a new color to v)
}
}
「BFS のように」とは、Queue を使用し、Queue が使い果たされるまで処理することを意味しました。