k-SAT 是 SAT 的一个特例。由于 SAT 是 NP 完全的,我不明白为什么我们没有 k-SAT 对于任何 k 值都是 NP 完全的。在类里面,我的教授使用 SAT 的多项式约简来证明 3-SAT 是 NP 完全的。我不明白为什么要证明这一点,特殊情况不应该遵循一般情况的规则吗?
最佳答案
嗯,对于 1-或 2-SAT,您的说法显然不正确。
1-SAT 问题(即,最多只有一个文字!)显然与子句和变量的数量呈线性关系,因为每个子句中的极性会告诉您如何选择变量。
2-SAT 比较棘手,但你可以在多项式时间内解决它:https://www.geeksforgeeks.org/2-satisfiability-2-sat-problem/
对于任何k> 3,k-SAT显然是NP完全的;因为任何这些算法都可以用来解决 3-SAT,正如你的教授似乎已经讨论过的那样。
因此,这里的根本困惑在于,虽然 k-SAT 是一般 SAT 问题的一个实例,但这并不意味着所有 k-SAT 问题都同样困难。从某种意义上说,3-SAT 是 NP 完全的 SAT 的“最简单”实例,因此为减少其他问题奠定了良好的基础。希望有帮助!
关于np - SAT 是 NP 完全的,那么为什么我们不让 k-SAT 对于任意 k 值来说是 NP 完全的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61335677/