为什么你必须将NP-Complete算法减少到你试图证明是NP完全的算法,而不反之亦然?我觉得解释很简单 - 我在网上搜索过但没有成功 - 但我的思绪并没有很好地解决它。
谢谢!:)
答案 0 :(得分:7)
因为如果你可以将问题A减少到问题B,那么问题B就不能比A.更容易了。毕竟,你现在有了解决问题A的实例的新方法:把它变成问题B的实例并解决那。如果B很容易,那么A在这个过程中也很容易。
只有在翻译问题实例的过程本身并不难的情况下,这才有效,这就是为什么你还必须表明这一点。如果允许翻译很难,那么它可以解决问题,让B变得微不足道。
本身只证明问题B NP难,为了表明问题B是NP完全的,你还必须在NP中证明它(通常比减少更容易)。
另一种方式只是表明你的问题并不比NP-complete更难,这并非完全没用,但通常不那么有趣。例如,您可以解决问题"是否有整数x
,以便x*3=9
"使用SAT求解器使用二进制乘法电路并将其编码为SAT实例,但这个问题要容易得多。