如何在多项式时间内验证旅行商问题?


21

所以我理解将决策问题定义为

是否存在路径P,其成本低于C?

并且您可以通过验证收到的路径轻松地检查这是否正确。

但是,如果没有符合该条件的路径怎么办?您如何在不解决最佳路径TSP问题的情况下验证答案为“否”,而找出最佳解决方案的成本却比C差?


就我个人而言,我只听说过NP类意味着多次考试,但从未见过这样的限制,即仅意味着核对“是的,这是解决方案”的答案。可以想象,您必须能够在多次时间内验证任何解决方案。
wjmccann

Answers:


36

NP是一类问题,您可以在其中验证“是”实例。不保证您可以验证“否”实例。

您可以在多项式时间内验证“否”实例的问题类别为co-NP。在任何语言共同NP是在一些语言的补NP,反之亦然。例子包括非3色性。您描述的问题“是否没有TSP路径的长度最多为 ?” 也在同NP中:如果取消选择双重否定,则对该问题的“否”实例对TSP来说是“是”实例,我们可以在多项式时间内验证它们。C

我们知道NPco-NP都有一些问题,例如整数分解和P中的任何问题  。(感谢user21820指出了这一点。)

NP共NP是否是同一套问题尚不清楚。如果它们相同,那么我们可以验证TSP的“是”和“否”实例。如果它们不同,则P NP,因为我们知道P co-P=(因为我们可以否定确定性机器的答案,给出补数问题的答案) 。


4
值得一提的是,我们知道NP和coNP中都存在一些问题,但是我们不知道它们是否存在于P中,例如整数分解。
user21820 '18

@ user21820整数分解不是决策问题。原始性是一个决策问题,多年来,它一直存在于NPco-NP中。最终,它被证明是在P为好。我不知道在NPco-NP中是否仍然存在已知的问题,而没有显示出在P中
kasperd

4
@kasperd:众所周知的事实是,当成为决策问题(n的质因子小于m?)时,整数因式分解同时存在于NP和coNP中(可以通过多项式时间验证多项式是否成立)给出素数分解作为证书的AKS素数测试),但尚未显示在P中
。– user21820

1
@ user21820有比AKS更简单,更快速的方法来验证因式分解。
卡巴斯德(Kasperd)'18年

@kasperd:我对此很好奇。要验证分解,您将需要例如素数,并且对于每个素数,必须证明它是素数。
gnasher729

2

“如何在多项式时间内验证旅行商问题?”

要么是您描述的方式,要么是未知的。

“但是,如果没有符合这个条件的道路怎么办?”

在这种情况下,对于所有用于决策问题的NP机器,该机器将对所有候选证书返回否。

“在不解决最佳路径TSP问题的情况下,您如何验证答案为“否”,而找出最佳解决方案的成本却比C差?”

嗯,可以得到一种互动的证明,即没有这样的道路

您所描述的问题TSP在coNP中并不为人所知,因此尚不存在一种验证类似路径的“类似NP”的方法。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.