旅行商|P vs. NP 五十年:AI正在解决不可解问题( 二 )

P则代表了可以有效找到解的问题。我们不知道这300个目标人群的问题是否也是具有P的可解性质。
实际上,令人惊讶的是,成团问题具有“NP完全”的性质。也就是说,当且仅当P=NP时,我们才可以快速有效地解决成团问题。
许多其他问题都具有NP完全的性质,比如3 Coloring问题(是否可以仅使用三种颜色对地图进行染色,然后让相邻的两个地块没有相同的颜色)、旅行商问题(通过城市列表找到最短路径,让这个旅行者能够在路径所有城市之后回到出发城市),等等。
形式上来说,P代表“确定性多项式时间”,也就是可以在输入长度的多项式限定时间之内解决的一类问题。NP则代表“非确定性多项式时间”。在实际的算法开发中,我们最好可以换个角度看待P和NP的问题:我们可以将前者视为可有效计算,而将后者视为可有效检查的问题。
大家如果想更多的了解P和NP的问题,可以去看看2009年的综述论文,或者一些其他的科普书籍自行了解。也有一些比较偏正式的介绍工作,比如Michael Garey 和 David Johnson在1979年出版的书籍,他们的这本书对于想了解NP完全问题的读者来说一定不能错过:
Garey, M. and Johnson, D. Computers and Intractability. A Guide to the Theory of NP-Completeness.W.H. Freeman and Company, New York, (1979).
旅行商|P vs. NP 五十年:AI正在解决不可解问题
文章插图
2

为什么要讨论P和NP问题
在1971年的那个星期二的下午,Cook在ACM计算理论研讨会上发表他那篇关于NP完全的论文时,他证明了可满足性是NP完全的,而重言式是NP难的。论文中也推断说Tautology是不具备P特性的一个问题,当然,当时没有对这个问题进行很好的证明。但无论如何,这篇论文以及其中的证明方法,标志着复杂性理论的重大突破。
想要去证明一个数学概念通常具有很大挑战。算法和证明的基础概念至少可以追溯到古希腊时期,当然,他们从来没考虑过NP和P这样的问题。高效计算和非确定性的理论基础是在1960年代才发展起来的。但P和NP的问题在这之前很久就已经被提出来了,只是我们没有给它们正式冠名而已。
库尔特·哥德尔在1956年曾经写过一封给冯·诺依曼的信。在信中他就初步描述了P和NP问题。这封信直到1988年才被发现,并广为流传。
Richard Karp真正意义上首次将P和NP问题引入大家视野。他在1972年的论文中介绍了该问题,并随后得到广泛的关注。
我们知道很多有名的组合问题都是NP完全的,包括Clique, 3-coloring和旅行商问题。1973年,当时在俄罗斯的Leonid Levin在他两年前独立研究结果的基础上发表了一篇新的论文,并在这篇论文中定义了P和NP问题。当Levin的论文传播到西方的时候,P和NP问题也已经确立了作为计算领域最重要问题的地位。
3

Optiland
Russell Impagliazzo在1995年的一篇经典的论文中描述了P和NP问题具有不同程度可能性的5个层级:
  1. 算法:P=NP或理论上等效,例如NP的快速概率算法(fast Probilistic algorithm)
  2. 启发式:NP问题在最坏的情况下很难求解,但平均来说还是可以得到求解的
  3. Pessiland:我们可以轻松的创建困难的NP问题,这是所有可能中最糟糕的,因为我们既不能在平均意义上解决难题,也不能从这些问题的难度中获取任何明显的优势