解决NP完全问题的所有已知算法是否具有建设性?


11

是否有已知算法可以在不隐式生成证书的情况下正确输出“是”到NP完全问题?

我知道,将可满足性预言器转变为令人满意的分配器很简单:只需遍历变量,每次都要求可满足性预言器解决该变量与原始问题的结合。

但是这样的包装器会有用吗?所有坐式求解器都在可能分配的空间中进行搜索吗?

还是存在某些类型的NP完全问题(旅行商,子集总和等),其中求解器可以利用数学定理来证明必须存在解?喜欢通过矛盾进行证明吗?

Answers:


11

据我了解,您在问两个问题:(1)是否有比朴素的蛮力更聪明的SAT算法,以及(2)在解决NP完全问题时仅给出是/否答案的算法没有真正找到解决方案。我将按顺序回答这两个问题。

(1)完全可以在没有暴力的情况下解决问题,即无需天真地尝试所有可能性。以您的示例为例,现代的完整SAT解算器可以应用巧妙的算法来推断或证明某些(部分)分配不会导致解决方案,因此他们甚至不检查该部分。

更一般而言,即使是NP难题也经常表现出某种算法立足点,这使我们比蛮力设计算法更快。本研究领域是精确(指数)算法。这样的算法花费指数时间,但是仍然比幼稚算法快。例如,您可以在大约解决TSP时间,其中是要访问的城市数。该方法甚至无法缩放到中等值,但是由于Held&Karp的存在,经典的动态编程时间算法。对于一般技术,请参见例如branch&boundn n O 2 n n 2n!nnO(2nn2)

(2)存在用于NP完全问题的“预言算法”,仅输出YES / NO而没有显式证书。例如,考虑路径问题:k

k路径问题)给定一个图和一个整数,在个顶点上是否有一条简单路径?ķ ģ ķGkGk

上面的问题很容易看出是NP完全的。在[1]中给出了该问题的算法。该算法本身仅给出对问题的是/否答案,但是我们可以使用其他技巧来构造实际的路径本身。更一般地,当给出这样的“ oracle算法”时,可以使用组合组测试中的工具来提取证人本身。kO(2k)k


[1]威廉姆斯,瑞安。“ 在时间内找到长度为路径。” 信息处理快报109.6(2009):315-318。出版商链接PDFO 2 kkO(2k)


完善。k路径论文正是我想要的东西。谢谢!
2014年
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.