您的位置:首页 > 其它

证明碰撞集(HITTING SET)问题是NP完全问题

2016-11-30 20:05 1176 查看

问题描述:

给定一组集合{S1,S2,S3,…,Sn}和预算b,求一个集合H,其中H和所有Si相交且H的规模不超过b。求证该问题是NP完全问题

证明:

(1)先证该问题是一个NP问题。

假设给出集合H的所有元素,显然可以在多项式时间内验证该集合H是否满足条件要求(和Si逐一比较是否有交集并检查规模是否超过b),所以该问题是个NP问题

(2)再证该问题是一个NP难问题。

已知图的最小顶点覆盖问题(Vertex Cover)是NP难问题(在算法概论书中已有证明),只要能找到一种把最小顶点覆盖问题规约到碰撞集问题的方法,即可以证明碰撞集问题是NP难问题。

规约方式如下:

假设有一个图G(V,E),则把该图的每一条边对应一个集合Si,边上的两个点即该集合的元素,即每个集合有两个元素,如S1={v1,v2},这样一来,就能构造出|E|个集合。求图G的最小顶点覆盖问题,可以转化成求这|E|个集合的碰撞集,最小顶点覆盖的顶点就是H的元素,最小顶点覆盖数即为b。

所以碰撞集是一个NP问题且是一个NP难问题,即碰撞集为一个NP完全问题
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: