最小顶点覆盖的验证算法?

时间:2013-04-18 22:07:19

标签: algorithm graph vertex np-complete

我们知道最小顶点覆盖是NP完全,这意味着它处于可以在多项式时间内验证的一组问题中。

据我了解,验证过程需要以下内容:

  1. 验证解决方案是否为顶点封面
  2. 验证解决方案是满足条件#1
  3. 的源图的最小可能子集

    我发现很难确定步骤#2可以在多项式时间内完成。任何人都可以解释它是怎么回事?

1 个答案:

答案 0 :(得分:5)

最小顶点覆盖是NP-hard。如果restated as a decision problem可以在多项式时间内验证,则只有NP完全。

  

最小顶点覆盖问题是在给定图中找到最小顶点覆盖的优化问题。

     
      
  • 实例:图表 G
  •   
  • 输出:最小数 k ,使 G 的顶点大小 k
  •   
     

如果问题被陈述为decision problem,则称为顶点覆盖问题:

     
      
  • 实例:图表 G 和正整数 k
  •   
  • 问题: G 的顶点大小最多为 k 吗?
  •   

将问题重述为决策问题是使NP完成问题的常用方法。基本上你把“找到最小的解决方案 k ”这个形式的开放式问题转变为是/否问题,“对于给定的 k ,是否存在解决方案? “

例如,对于travelling salesman problem,验证所有城市之间的最短路径的建议解决方案是NP难的。但是如果问题被重述为只需要找到一个短于 k 某些 k 总距离的解决方案,那么验证解决方案很容易。您只需找到建议解决方案的长度,并检查它是否小于 k

决策问题的表述可以很容易地用来解决一般的表述。要找到最短路径,您只需缩小 k 的值,直到找不到解决方案。