NP完全问题的归约-碰撞集(HITTING SET)
2016-11-27 11:48
197 查看
原题:
在碰撞集(HITTING SET)问题中,给定一组集合{S1, S2, S3, …, Sn}和预算b,我们希望求一个与所有Si相交且规模不超过b的集合H(H与所有Si相交不为空)。
证明:
(1)hitting set问题是NP问题
只需要验证H的大小是否不超过b,以及验证H与Si的交不为空。
时间复杂度O(nHS)。
所以,hitting set问题为NP问题。
(2)所有问题可以归约到Hitting set问题
课本(《算法概论》)中已经证明,所有问题都可以归约到vertex cover问题。
所以,此处只要证明vertex cover问题可以归约到hitting set问题,则所有问题可以归约到hitting set问题。
以下证明vertex cover问题可以归约到hitting set问题。
构建一个图G到hitting set的映射:G中的每个点对应hitting set中的每个元素,每条边对应一个Si
b个点的vertex cover对应大小为b的hitting set:对于G中每一条边,至少有一个端点在b个点的vertex cover集合中,所以这个集合与Si的交集不为空,即此集合对应hitting set
大小为b的hitting set对应b个点的vertex cover:任意的Si与hitting set相交不为空,则每条边至少有一个端点被选中,即hitting set集合对应vertex cover
综上所述,vertex cover可以归约到hitting set问题。所以,hitting set问题是NP完全问题。
在碰撞集(HITTING SET)问题中,给定一组集合{S1, S2, S3, …, Sn}和预算b,我们希望求一个与所有Si相交且规模不超过b的集合H(H与所有Si相交不为空)。
证明:
(1)hitting set问题是NP问题
只需要验证H的大小是否不超过b,以及验证H与Si的交不为空。
时间复杂度O(nHS)。
所以,hitting set问题为NP问题。
(2)所有问题可以归约到Hitting set问题
课本(《算法概论》)中已经证明,所有问题都可以归约到vertex cover问题。
所以,此处只要证明vertex cover问题可以归约到hitting set问题,则所有问题可以归约到hitting set问题。
以下证明vertex cover问题可以归约到hitting set问题。
构建一个图G到hitting set的映射:G中的每个点对应hitting set中的每个元素,每条边对应一个Si
b个点的vertex cover对应大小为b的hitting set:对于G中每一条边,至少有一个端点在b个点的vertex cover集合中,所以这个集合与Si的交集不为空,即此集合对应hitting set
大小为b的hitting set对应b个点的vertex cover:任意的Si与hitting set相交不为空,则每条边至少有一个端点被选中,即hitting set集合对应vertex cover
综上所述,vertex cover可以归约到hitting set问题。所以,hitting set问题是NP完全问题。
相关文章推荐
- 证明碰撞集(HITTING SET)问题是NP完全问题
- 证明碰撞集问题为NP完全问题。
- Hitting Set 碰撞集问题
- 关于台球(刚体)碰撞物理模型的编写方案
- 游戏设计心得(2)--游戏中的碰撞处理
- J2ME中的自己实现碰撞检测
- ADA +GTKADA 物理碰撞模拟程序(全部源代码)
- XNA系列教程 2D碰撞教程3:转换物体的碰撞检测
- 2D多边形碰撞检测和反馈(转)
- .NET 和 Java 之碰撞火花:到底谁快?-Java基础-Java-编程开发
- 向量碰撞类---2D图形
- OgreNewt碰撞开发平台的初始化
- J2ME中的基础碰撞检测算法
- 二叉空间分割碰撞
- Ogre中的碰撞检测(完整版)
- 游戏里实现碰撞检测方法
- 不规则图形的碰撞检测
- torque 碰撞检测盒
- GameBryo 碰撞系统[1]
- 哈希函数 哈希表 碰撞