【发布时间】:2015-06-16 07:32:55
【问题描述】:
假设一个部门需要一个委员会来选择部门负责人。委员会不能包括彼此有利益冲突的人。输入包括:
- 所需的委员会规模
- 所有人的列表
- 所有有冲突的人的列表。
目标是确定是否存在这种规模的无冲突委员会。
如何证明这个问题是 NP 完全的并且在 NP 中?
【问题讨论】:
标签: algorithm np-complete np
假设一个部门需要一个委员会来选择部门负责人。委员会不能包括彼此有利益冲突的人。输入包括:
目标是确定是否存在这种规模的无冲突委员会。
如何证明这个问题是 NP 完全的并且在 NP 中?
【问题讨论】:
标签: algorithm np-complete np
由于这是99.99%的作业,所以我只给你一个非常简短的“答案”:
尽量减少 Indepedent Set Decision Problem你的问题。
还有一个有用的提示是,如果你证明问题是 NPC,那么它就是 NP
【讨论】:
NPC 不是NP 的子集,它只是意味着每个NPproblem 都可以简化为它。如果您发现NPC 问题是P,那么您将证明NP=P 并变得非常富有——或者被秘密服务部门杀死以保护现代加密。所以默认假设是NPC -> NP
NPC 不是NP 的子集?
表明一个问题是 NP 完全的要求你证明它是 NP 的。
表明它在 NP 中:
给定一个大小为
N的随机子集,你如何检查他们是否 组建无冲突委员会?
应该很容易。算法不必在内存或大小上有效,只要正确即可。在子集中形成所有可能的对,并检查一个对是否在冲突匹配列表中。
熟悉 NP 完备性:
有一些特定的 NP Complete 问题在证明 NP 硬度方面非常流行。比如Karp's 21 NP-complete problems
证明: 通过对您的问题的快速分析,我最初可能会尝试使用Vertex Cover NP Complete 问题,尤其是因为 conflict 子句。鉴于您对委员会大小有限制,也许您可以先尝试最小顶点覆盖。
祝你好运。
【讨论】:
要证明问题是 np 完全的,您首先必须证明问题在 np 中。您可以这样做形成证书,因此您将选择委员会规模、人员名单、利益冲突人员名单和委员会。然后,如果您可以验证(不证明)委员会是否在多项式时间内有效,那么问题就出在 np 上。
从那里,您可以通过将已经证明是 np-complete 的问题转换为您的问题来证明问题是否是 np-complete。
如果你都做了,那么问题就出在 np 和 np-complete 上。
【讨论】:
NP 证明通常显示与已知 NP 问题的等价性。例如,参见 Karp 的 21 个 NP 完全问题。 SAT 是最常用的一种(另见 Cook-Levin 定理)。您可以尝试使用少数人创建逻辑门,其中一个人成为委员会成员取决于另外两个人的成员资格。例如,NP 证明如何适用于 Conway 的生命游戏和 Morpion 纸牌等游戏。
【讨论】: