任何NP到SAT。怎么做并证明它是可能的?

时间:2015-12-07 15:19:03

标签: algorithm reduction np circuit sat

让我们从这里开始: 据说所有 NP问题都可以减少到 SAT (布尔可满足性问题)。为了更准确地 Circuit SAT ,因为像NP这样的所有决策问题都应该以答案结束。

但是现在,如果我有一个随机NP问题,如何构建一个布尔电路进行测试,如何对输入进行分组,哪种(AND,NOT,OR等)应该连接这些输入。所以基本上,我的问题是如何设计布尔电路,它给出答案 TRUE或FALSE

最后,答案意味着什么。我理解为真,因为这个NP问题可以在多项式时间中解决而FALSE不能解决,我是否正确?

在我的脑海里,这是一个巨大的混乱,如果我犯了逻辑错误来解释我的问题,那真是太离谱了:)我希望你理解它。

兴奋地等待答案。

1 个答案:

答案 0 :(得分:1)

我理解这种困惑,但你的理解并不是它的运作方式。

NP-硬度是决策问题的资格,也就是说,答案的问题是肯定还是否定。如果我们想表明一个决策问题是NP难的,那么我们通过表明至少和一样我们知道它已经是NP难的问题,例如SAT

我们如何证明问题A至少与问题B一样难?好吧,我们可以将其称为

  

如果我们能解决A,我们也可以解决B

因此,给定问题B的实例,我们将其转换为问题A的实例,使用我们的解决方案A来解决它,并将其转换回B的解决方案。假设两个对话都很简单,我们知道A不能比B容易,因为A 的解决方案也是B 的解决方案。

你的理解因此倒退了。为了表明某些问题是NP难的,我们要表明它至少和SAT一样难,也就是说,给定SAT的任意实例,将其转换为问题的实例,然后解决该问题。如果答案是“是”,则原始SAT问题是可以满足的,否则不是。

现在,正如我在评论中写的那样,没有标准的方法来进行转换。你以某种方式需要操纵你的问题,使其“看起来像SAT”,以便进行转换。对于一些比其他问题更容易的问题,但我认为它是NP硬度证明中最难的部分。

人们通常会做的是他们寻找另一个问题,这个问题已经是NP难的,但看起来更像是他们自己的问题。这样,减少变得容易一些。但它仍然需要大量的工作和创造力。我建议您查看一些现有的证据,看看其他人如何做到这一点。