证明碰撞集问题(Hitting Set)是NP-complete

Posted 三石宝宝的秘密花园

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了证明碰撞集问题(Hitting Set)是NP-complete相关的知识,希望对你有一定的参考价值。

证明碰撞集问题(Hitting Set)是NP-complete


Problem

In the HITTING SET problem, we are given a family of sets {S1, S2, ... , Sn} and a budget b, and we wish to find a set H of size ≤ b which intersects every Si, if such an H exists. In other words, we want H ∩ Si ≠ ? for all i.

Show that HITTING SET is NP-complete.

Solution

  1. 首先,HITTING SET是一个NP问题。

    对于H中的所有元素,和Si逐个比较是否有交集并且大小小于等于b,这个操作显然是多项式时间复杂度的问题。

  2. 其次,Vertex Cover是一个NP难问题。

    由书本P241、242,可知最小顶点覆盖问题(Vertex Cover)是NP难问题。

  3. 最后,将Vertex Cover归约到HITTING SET,即可证明碰撞集问题是一个NP完全问题。

    假设要求图G(V, E) 的Vertex Cover,可以建立一个HITTING SET实例,其中S1, S2, ... , Sn是图G的各条边,比如:S1={v1, v2},这样可以构造出|E|个集合,求图G的Vertex Cover,可以转化成求这|E|个集合的HITTING SET。Vertex Cover的顶点就是H的元素,Vertex Cover的个数即为b。

以上是关于证明碰撞集问题(Hitting Set)是NP-complete的主要内容,如果未能解决你的问题,请参考以下文章

显示 NP、NP 完全性或 NP 硬度

独立集与顶点覆盖相互规约问题

hit,crash区别

知识图谱深度学习AutoML,推荐系统与新技术结合将碰撞出怎样的火花?

Hitting the database with spring and jdbc-004-使用NamedParameterJdbcTemplate

MySQL MTS复制: hitting slave_pending_jobs_size_max