所有NP问题都可以简化为NP完全问题:那么NP问题又如何不能成为NP完全问题呢?


10

我的书这样说

  • 如果决策问题B在P中并且A减少到B,则决策问题A在P中。
  • 如果B在NP中,则决策问题B是NP完全的;对于NP中A中的每个问题,A都会减少为B。
  • 如果C在NP中,则决策问题C是NP完全问题;对于某些NP完全问题B,决策问题C简化为C。

所以我的问题是

  1. 如果B或C处于NP完全状态,并且NP中的所有问题都归结为一个NP完全问题,那么使用第一个规则,怎么一个NP问题都不是NP完全的?
  2. 如果A减少到B,B会减少到A吗?

2
与您的#1相关的有趣事实:如果P不等于NP,我们知道一定存在NP不完全的NP问题(这称为Ladner定理。请参见NP中级)。奇怪的是,我们不确定该类别中是否存在任何常见的计算问题。拉德纳定理中使用的问题是人为构造的,以证明该定理,但实际上并不重要。
卢卡斯·库克

4
@Lucas,保理和GraphIso被推测是NPI,也看到这个
卡韦

@Kaveh:不错的NPI候选人名单,谢谢!明确地说,我是说我们不能“确定”与Ladner问题相同的自然NPI问题。也就是说,如果,则唯一已知的NPI问题是与Ladner层次结构相关的人为问题。PNP
卢卡斯·库克

Answers:


13

如果A减少到B,B会减少到A吗?

否。对于一个真正的示例,任何可能的可计算问题A都可以归结为“暂停问题”:只需将解决问题A的算法作为输入传递,但while(true)在对或错情况下都加一个结尾。但是,我们知道Halting问题是不可计算的,因此无法将其简化为任何这样的算法A。

基本思想是,如果将A减少到B,则可以了解到B至少难以解决A的问题,并且需要一种至少同样强大的算法。

因此,如果问题A简化为简单问题B,则我们可以推论A很容易(因为简化为我们提供了有效的算法),如果难题A简化为问题B,我们可以推论B也很困难(因为如果B很容易,那么A也必须很容易)。但是,仍然有可能从一个简单的问题到一个棘手的问题进行愚蠢的减少,但是在这种情况下,我们无法得出任何结论。


8

如果B或C在NP完全问题中,并且NP中的所有问题都简化为NP完全问题,使用第一个规则,那么任何NP问题怎么都不能成为NP完全问题?

第一条规则是关于P中的问题的。它与NP的完整性无关。如果问题A是NP完成,而问题B减少为A,则并不意味着B是NP完成。

如果A减少到B,B会减少到A吗?

一般而言,不。


“一般来说,不。”,为什么?一点点的解释对于新手也可能有用。还应提供您的第一个答案的解释。
nbro

-1

我只有关于NPC和NP问题的基本思想。但是我只想评论一下“如果A减少到B,那么B减少到A?”

只需考虑具有{2,3,4,5}元素的集合A和其中具有{3,4}的集合B。因此,可以将A简化为B。但是不能将B简化为A。如果B获得{2,5}个元素,则可以将B扩展为A。

但是如果A和B具有相同的值。那么A可以降为B或B可以降为A


这根本不是减少的正确想法。减少与集获得或失去元素无关。而是要使用图灵机/算法将一个问题的实例转换为另一个问题。
jmite 2013年

好。因此,如果使用任何算法将任何问题归结为另一个问题,则无法再次使用该相同算法从缩减后的输出中重新获得问题。
Naveen CS

1
我不确定您的意思,但我认为这是不可能的。如果我没记错的话,这些减少可以是多对一。如果对子例程求解B的多项式调用允许A在多项式时间内求解,则A减小为B。A的不同实例可以调用呼叫B的同一个实例
jmite

2
问题是关于决策问题,而不是集合。查看集合有什么用?用“简化”一词来表示一个集合是另一个集合的超集,甚至不是通用的术语。
吉尔(Gilles)'所以
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.