【问题标题】:How to prove a prob is np complete and is in np?如何证明一个概率是 np 完整的并且在 np 中?
【发布时间】:2015-06-16 07:32:55
【问题描述】:

假设一个部门需要一个委员会来选择部门负责人。委员会不能包括彼此有利益冲突的人。输入包括:

  • 所需的委员会规模
  • 所有人的列表
  • 所有有冲突的人的列表。

目标是确定是否存在这种规模的无冲突委员会。

如何证明这个问题是 NP 完全的并且在 NP 中?

【问题讨论】:

    标签: algorithm np-complete np


    【解决方案1】:

    由于这是99.99%的作业,所以我只给你一个非常简短的“答案”:

    尽量减少 Indepedent Set Decision Problem你的问题。

    还有一个有用的提示是,如果你证明问题是 NPC,那么它就是 NP

    【讨论】:

    • NPC 不是NP 的子集,它只是意味着每个NPproblem 都可以简化为它。如果您发现NPC 问题是P,那么您将证明NP=P 并变得非常富有——或者被秘密服务部门杀死以保护现代加密。所以默认假设是NPC -> NP
    • 我不太明白你的意思。为什么NPC 不是NP 的子集?
    【解决方案2】:

    表明一个问题是 NP 完全的要求你证明它是 NP 的。

    1. 熟悉 NP 完全问题的子集
    2. 证明 NP 硬度:将 NP 完全问题的任意实例简化为问题的实例。这是一块蛋糕中最大的一块,熟悉 NP Complete 问题是值得的。减少的难度或多或少取决于您选择的 NP Complete 问题。
    3. 证明您的问题在 NP 中:设计一种算法,可以在多项式时间内验证实例是否为解决方案。

    表明它在 NP 中:

    给定一个大小为N 的随机子集,你如何检查他们是否 组建无冲突委员会?

    应该很容易。算法不必在内存或大小上有效,只要正确即可。在子集中形成所有可能的对,并检查一个对是否在冲突匹配列表中。

    熟悉 NP 完备性:
    有一些特定的 NP Complete 问题在证明 NP 硬度方面非常流行。比如Karp's 21 NP-complete problems

    证明: 通过对您的问题的快速分析,我最初可能会尝试使用Vertex Cover NP Complete 问题,尤其是因为 conflict 子句。鉴于您对委员会大小有限制,也许您可​​以先尝试最小顶点覆盖。

    祝你好运。

    【讨论】:

      【解决方案3】:

      要证明问题是 np 完全的,您首先必须证明问题在 np 中。您可以这样做形成证书,因此您将选择委员会规模、人员名单、利益冲突人员名单和委员会。然后,如果您可以验证(不证明)委员会是否在多项式时间内有效,那么问题就出在 np 上。

      从那里,您可以通过将已经证明是 np-complete 的问题转换为您的问题来证明问题是否是 np-complete。

      如果你都做了,那么问题就出在 np 和 np-complete 上。

      【讨论】:

        【解决方案4】:

        NP 证明通常显示与已知 NP 问题的等价性。例如,参见 Karp 的 21 个 NP 完全问题。 SAT 是最常用的一种(另见 Cook-Levin 定理)。您可以尝试使用少数人创建逻辑门,其中一个人成为委员会成员取决于另外两个人的成员资格。例如,NP 证明如何适用于 Conway 的生命游戏和 Morpion 纸牌等游戏。

        【讨论】:

          猜你喜欢
          • 2015-06-06
          • 2010-09-23
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-03-30
          • 2011-07-15
          相关资源
          最近更新 更多