NP-Complete Proofs减少(方向)?

时间:2015-11-17 17:36:48

标签: algorithm

为什么你必须将NP-Complete算法减少到你试图证明是NP完全的算法,而反之亦然?我觉得解释很简单 - 我在网上搜索过但没有成功 - 但我的思绪并没有很好地解决它。

谢谢!:)

1 个答案:

答案 0 :(得分:7)

因为如果你可以将问题A减少到问题B,那么问题B就不能比A.更容易了。毕竟,你现在有了解决问题A的实例的新方法:把它变成问题B的实例并解决那。如果B很容易,那么A在这个过程中也很容易。

只有在翻译问题实例的过程本身并不难的情况下,这才有效,这就是为什么你还必须表明这一点。如果允许翻译很难,那么它可以解决问题,让B变得微不足道。

本身只证明问题B NP难,为了表明问题B是NP完全的,你还必须在NP中证明它(通常比减少更容易)。

另一种方式只是表明你的问题并不比NP-complete更难,这并非完全没用,但通常不那么有趣。例如,您可以解决问题"是否有整数x,以便x*3=9"使用SAT求解器使用二进制乘法电路并将其编码为SAT实例,但这个问题要容易得多。