如果我们有一个图表用一个顶点集V(V)(有限的,有限的非空),以及边缘设置E、 我们可以把这个图定义为G=(V,E)。A类k着色G是某种方式指派k个颜色顶点G,这样相邻的顶点(即由一些边缘)有不同的颜色。因此,k着色是功能,f:V->K,其中K是设置使得f(u)!=f(v)对于G中的所有边uv。

我们定义k-着色问题,千卡,作为给定任何图G,G是否有k着色?让我们看看算法解决kC问题。

1-着色问题

单色问题是琐碎的,因为图形是1-可着色的若(iff)这是一个没有边的图。

2-着色问题

2C是可解决的我们假设K={B,W},表示黑色和白色的颜色集。采取任何顶点在图中,我们把v涂成黑色w.l.o.g.(水汽提纯)。然后我们被迫给所有人涂上颜色邻居v为白色,然后是相邻的黑色,以此类推,直到整个图形着色。如果在任何阶段,我们必须用不同的颜色,则G不能为2色。或者,如果我们发现整个图G可以在没有这个的情况下着色情况出现时,我们有一个G的2-着色。

如果V=N算法必须考虑N个顶点,每个顶点最多有N–1个邻居。因此,该算法具有运行时间O(否2).

3-着色问题

3C是可解的,但是更努力大于2C。我们将2C的算法用于3C,但在每个步骤中,如果我们只使用r(即与r边关联),然后我们必须考虑其所有r邻域上的2r着色(使用剩余的两种颜色)。因此,我们有一个显著增大与2C问题相比,要检查的案例数。

在这种情况下,如果V=N,我们必须依次考虑3N个函数f:V->K,并测试每个函数的条件f(u)!=f(v)表示E中的所有uv。因此运行时间对于3C是O(3N个).

登录登记在这里写点什么或联系作者。