1

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

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

最后一件事,这个答案是什么意思。我理解 TRUE,因为这个 NP 问题可以在多项式时间内解决,而 FALSE 不能,对吗?

我脑子里一片混乱,如果我在解释我的问题时犯了逻辑错误,请不要太离谱:)我希望你能理解。

兴奋地等待答案。

4

1 回答 1

2

我理解这种困惑,但您的理解并不完全是它的工作原理。

NP-hardness 是决策问题的限定条件,即一个问题的答案是是或否。如果我们想证明一个决策问题是 NP-hard 的,我们通过证明它与我们已经知道它是 NP-hard 的问题一样困难,例如 SAT。

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

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

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


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


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

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

于 2015-12-08T14:04:17.290 回答