我正在阅读顶点着色算法。我看到解释如何使用 BFS 解决问题的文档(暗示问题可以在 O(|V|+|E|) 中解决。但我也看到它提到这是一个 NP-hard 问题。
这两者如何结合在一起?你能不能给点灯?
这是我遇到的算法,对我来说它看起来像是一般情况下的多项式解决方案:
用数字标识每种颜色。从一个节点开始,并为其分配编号最少的颜色。使用 BFS 访问其每个邻居。在访问一个节点时,检查它的每个邻居的颜色,并分配没有分配给任何邻居的最小编号的颜色。
据说 BFS 方法仅适用于 2 种颜色。我可以看到为什么上述技术不适用于超过 2 种颜色