zoukankan      html  css  js  c++  java
  • 证明碰撞集问题(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。

  • 相关阅读:
    python-面向对象-类
    python- collections-time-datetime
    python-json-pickle-shelve-random-os-sys-hashlib
    python-递归函数
    python-迭代器
    python-内置函数
    python-易错问题
    python-闭包函数和装饰器
    pytho-函数作用域
    List 拆分集合与 读写XML配置文件
  • 原文地址:https://www.cnblogs.com/renleimlj/p/8135677.html
Copyright © 2011-2022 走看看