所以我正在阅读这篇维基百科文章https://en.wikipedia.org/wiki/Sharp-P-complete
偶然发现了这条线: 有多少不同的变量赋值满足给定的2SAT公式?
有人可以链接我一个证明或正确指出解决2SAT #P算法的证据可以解决任何NP问题,因为它声明2SAT#P解决了PvsNP吗?
答案 0 :(得分:0)
如果我现在正确理解你,你指的是这一行:
用于解决#P-complete问题的多项式时间算法(如果存在)将意味着P = NP
在你链接的维基百科页面中。
与问题标题的一个重要区别是"多项式时间"部分。 多重邮件时间解决方案到#p-complete问题(如#2SAT)将证明P = NP。不存在多项式的解决方案(关于它们的输入)已经存在。 (我假设你知道这一点,但我觉得有必要加入这一澄清,以便那些不了解这种区别并阅读问题的人不会被误导)。
回答你的问题 - 记住#P是与NP中的决策问题相对应的所有计数问题的类。现在来自#P Wikipedia page:
显然,#P问题必须至少与相应的NP问题一样难。如果很容易计算答案,那么必须很容易判断是否有任何答案 - 只需计算它们并查看计数是否大于零。
所描述的减少当然是在多项式时间内完成的(我们实际上是使用完全相同的输入并解决它的计数问题,然后对输出执行一次检查 - 是否大于零)。 / p>
为了完成答案(再次 - 对于那些还不知道的人),这就是为什么这显示第一个引用的行是真的:如果有一个多项式时间算法解决了#P - 完整的问题,然后它可以用来解决多项式时间内的所有#P问题,通过使用它们的多项式时间减少(它存在,因为它是#P完全问题)并用所述算法求解它。从相应的#P问题中显示任何NP问题的多项式时间减少(如第二个引用所示)意味着如果存在这样的算法,对于任何NP问题我们可以看看它的计数问题(在#P中)根据定义),将其减少为#2SAT,求解并获得NP问题的结果 - 所有这些都在多项式时间内完成。这意味着 - 如果存在这样的算法,所有NP问题都可以使用确定性图灵机在多项式时间内求解,这意味着它们都在P(和P = NP)中。