先决条件: NP完成度,图形着色
图K着色问题:无向图的K着色问题是将颜色分配给图的节点,使得没有两个相邻的顶点具有相同的颜色,并且最多使用K种颜色来完成图的着色。
问题陈述:给定一个图G(V,E)和一个整数K = 3,任务是确定该图是否可以使用最多3种颜色着色,以使没有两个相邻的顶点具有相同的颜色。
说明:
问题的一个实例是为问题指定的输入。 3色问题的一个实例是无向图G(V,E) ,任务是检查是否仅使用3种不同颜色为每个顶点V分配了颜色,而每个邻居V的颜色也不同。由于NP-Complete问题是NP和NP-hard都存在的问题,因此证明问题为NP-Complete的陈述的证明包括两部分:
- The problem itself is in NP class.
- All other problems in NP class can be polynomial-time reducible to that.(B is polynomial-time reducible to C is denoted as B ≤ PC)
如果仅满足第二个条件,则该问题称为NP-Hard 。
但是不可能始终将每个NP问题都简化为另一个NP问题以显示其NP完整性。因此,为了显示一个问题是NP完全,然后证明,问题是在NP和任何NP完全问题是还原到即如果B是NP完全和B≤PC,然后对C在NP,则C是NP-Complete。因此,可以得出以下结论:图K着色问题是NP完全的:
NP中存在3色问题:
如果NP中存在任何问题,则给定证书,该证书是问题的解决方案和问题的实例(图形G(V,E)以及颜色{c 1 ,c 2 ,c 3的分配} ,其中每个顶点都从这三种颜色{c 1 ,c 2 ,c 3 } )中分配了一种颜色,然后可以验证(检查给定的解是否正确)多项式时间内的证书。这可以通过以下方式完成:
For each edge {u, v} in graph G verify that the color c(u) != c(v)
因此,可以检查赋值相对于其边缘O(V + E)的图形多项式时间的正确性。
3色问题是NP-Hard:
为了证明3色问题是NP-Hard问题,请将已知的NP-Hard问题简化为该问题。进行还原,从而可以将3-SAT问题简化为三色问题。让我们假设3-SAT问题的3-SAT公式具有n个由x 1 ,x 2 ,…,x n表示的变量的m个子句。然后可以通过以下方式从公式构造图形:
- 为每个变量x i构造一个顶点v i在图中,一个顶点v i’表示变量x i的取反。
- 对于m中的每个子句c,添加5个对应于值c1,c1,…,c5的顶点。
- 另外添加了三个不同颜色的顶点,分别表示值True,False和Base(T,F,B)。
- 在这三个附加顶点T,F,B之间添加边以形成三角形。
- 在顶点v i和vi i’与底数(B)之间添加边以形成三角形。
以下约束对于图G是正确的:
- 对于每对顶点v i和v i’ ,其中一个被分配为TRUE,而另一个被分配为FALSE。
- 对于m个子句中的每个子句c,至少一个字面量必须具有TRUE值,该值才为true。
因此,可以通过输入节点u,v,w为公式中的子句c =(u V v V w)中的每个子句构造一个小的OR-gadget图,并将gadget的输出节点连接到False和Base特殊节点。
让我们考虑公式f =(u’V v V w’) AND (u V v V w’)
现在,可以通过以下两个命题证明这种减少:
让我们假设3-SAT公式具有令人满意的赋值,那么在每个子句中,至少一个字面量x i必须为真,因此,可以将对应的v i赋给TRUE颜色,而将v i’赋给TRUE颜色。错误的。现在,对此进行扩展,对于每个子句,对应的OR小工具图都可以是3色的。因此,该图可以是3色的。
让我们考虑图G是3色的,因此,如果将顶点vi分配给真色,则将变量x i相应地分配给真。这将构成合法的事实分配。同样,对于任何子句C j =(x V y V z) ,也不能全部三个字面量x,y,z都为False。因为在这种情况下,必须将C j的OR小工具图的输出着色为False。这是一个矛盾,因为输出连接到Base和False。因此,存在对3-SAT子句的满意分配。
结论:因此,三色着色是一个NP完全问题。