返回首页

联手形式化方法专业委员会:“非确定性多项式时间”术语发布 | CCF术语快线

阅读量:107 2022-07-22 收藏本文

本期发布术语新词:非确定性多项式时间(Nondeterministic Polynomial Time)。


非确定性多项式时间

(Nondeterministic Polynomial Time)

作者:李国强(上海交通大学)



开篇导语

本期新增术语新词:非确定性多项式时间(Nondeterministic Polynomial Time)。非确定性多项式时间是指一类复杂性问题,属于复杂性理论。


InfoBox:

中文名:非确定性多项式时间

英文名:Nondeterministic Polynomial Time

简写:NP

学科:计算复杂性理论


基本简介:

亦称NP问题,是指一类判定问题,这些问题可以通过非确定性图灵机在多项式时间内被解决。也可以定义为可以通过确定性图灵机在多项式时间内验证答案是否正确的问题。由定义可知,确定性多项式时间问题(亦称P问题)属于非确定性多项时间问题,也即,P是NP的一个子集。P和NP两个集合是否相等(表示为P?=NP问题)的结论尚不被人们所知,是数学领域、计算机科学领域的重大难题之一。


非确定性多项式时间问题中还有一类型问题彼此等价,共同刻画了非确定性多项式时间问题中最难的一类问题。它们被称为非确定性多项式时间完备问题(亦称NP-complete,NPC问题)。所有NP问题都可以多项式时间规约至任意一个NPC问题。如果一个NP问题既不在P里也不在NPC里,我们称之为非确定性多项式中间问题(亦称NP-intermediate, NPI问题)。拉德纳证明了如果 P不等于NP,那么NPI集合非空
[1]研究者一直试图证明在类似复杂性假设下,某些自然的计算问题是NPI的,例如整数分解问题等。


发展历程:

1936年,图灵建立了理论计算模型——图灵机 [2]随着计算机在上世纪40年代和50年代的发展,图灵机被证明是正确的计算理论模型。研究者很快发现,基本图灵机无法解释计算机所需的时间或者内存大小,而时间与空间在早期的计算时代显得尤为重要,上世纪60年代,由哈特马尼斯和斯特恩斯提出以输入长度作为参数,测量时间和空间的长度函数,从而诞生了计算复杂性[3]随着研究者将高效计算定义为输入大小的多项式长度,引出了非确定性多项式时间完备性以及NP问题。上世纪70年代早期,库克和卡普的工作表明,大量的组合和逻辑问题是NPC问题[4-8]。在此后直到现在,这个问题成为了计算机科学领域和数学领域的一个突出的开放性问题。在之后兴起的诸如电路复杂性、量子计算等理论领域,也极大地帮助我们更好地理解P?=NP问题这一计算机科学的瑰宝。


典型样例:

由于P问题属于NP问题,因此具有多项式时间算法的问题均属于NP问题。诸如图论上的最短路径问题、最小生成树问题、强连通部件问题、欧拉图问题等。而另外一些图论上的问题则属于NPC问题。诸如旅行商问题、哈密尔顿问题、独立集问题、顶点覆盖问题、团问题、图着色问题等。


在数论问题中,素数判定问题在2004年,由三位印度学者给出的AKS算法得出了素数测试一个多项式算法[9],该结论也获得了2006年的哥德尔奖。另外一个著名问题是整数分解问题,作为现代密码学的基础,虽然目前没有多项式时间的算法,但研究者认为它的判定问题版本(和原问题等价)不是NPC问题。随着量子计算的兴起,肖尔得出了大数因式分解的多项式时间的量子算法,动摇了现代密码学的根基[10]。但它无法解决P?=NP问题。


在代数问题中,线性规划有着多项式时间的算法,然而整数规划则是NPC的。作为整数规划子问题,0-1方程组和子集和问题也是NPC的,还有一些问题本质上也是代数问题,如划分问题、背包问题等,它们也是NPC的。这些问题均属于NP问题。卡普第一个收集总结了21个NPC问题[11],在之后有许多学者热衷于总结NPC的问题,在经典的算法书籍中都会有此部分的详细讲述。


最后需要指出的是,并非NPC问题一定不存在实际中高效的算法,如可满足性问题(亦称SAT问题),作为NPC的第一个问题[4],它却有很高效的算法,被称为DPLL算法[12,13]。同时存在高效的工具可满足性问题求解器。目前形式化验证[14,15]、软件工程[16]甚至深度学习[17]的很多工具都是通过都将各自的问题规约至可满足性问题求解器来实现高效化。


参考文献

1. R. Ladner. On the Structure of Polynomial Time Reducibility. Journal of the ACM. Vol. 22 (1): 155–171, 1975.
2. Alan Turing. On Computable Numbers. In Proc. of the London Mathematical Society, 1936.
3. Hartmanis and R. Stearns. On the computational complexity of algorithms. Transactions of the American Mathematical Society, Vol. 117, 285-306, 1965.
4. S. Cook. The complexity of theorem-proving procedures. In Proc. of 3rd ACM Symp. Theory of Computing, 151,158, 1971.
5. S. Cook. A hierarchy for nondeterministic time complexity. Journal of Computer and System Sciences, Vol. 7(4), 343-353, 1973.
6. S. Cook. An overview of computational complexity. Communications of the ACM, Vol. 26(6):400-408, 1983.
7. R. Karp. Reducibility among combinatorial problems. In Complexity of Computer Computations, 85-104. Plenum Press, New York, 1972.
8. R. Karp. Combinatorics, complexity and randomness. Communications of the ACM, Vol. 29(2), 98-109, 1986.
9. M. Agrawal, N. Kayal, and N. Saxena. PRIMES is in P. Annals of Mathematics Vol. 160(2), 781-793, 2004.
10. P.W. Shor. Algorithms for quantum computation: discrete logarithms and factoring. IN Proc. of 35th Annual Symposium on Foundations of Computer Science, 124–134, 1994.
11. R. M. Karp Reducibility Among Combinatorial Problems. Complexity of Computer Computation, 85–103, 1972.
12. Davis, Martin; Putnam, Hilary. A Computing Procedure for Quantification Theory. Journal of the ACM, Vol. 7 (3), 201–215, 1960.
13. Davis, Martin; Logemann, George; Loveland, Donald. A Machine Program for Theorem Proving. Communications of the ACM, Vol. 5 (7): 394–397, 1961.
14. A. Biere, A. Cimatti, E. M. Clarke, and Y. Zhu. Symbolic Model Checking without BDDs. In Proc. of the 5th International Conference on Tools and Algorithms for the Construction and Analysis of Systems, 193–207 1999.
15. E. M. Clarke, A. Gupta, O. Strichman. SAT-based counterexample-guided abstraction refinement, IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems, Vol. 23(7),1113-1123, 2006.
16. J. Dolby, M, Vaziri, F. Tip. Finding bugs efficiently with a SAT solver, In Proc. of the 6th joint meeting of the European software engineering conference and the 15th ACM SIGSOFT symposium on The foundations of software engineering, 195–204, 2007.
17. G. Katz, C. Barrett, D. L. Dill, K. Julian, M. J. Kochenderfer. Reluplex: An Efficient SMT Solver for Verifying Deep Neural Networks. In Proc. of the 29th International Conference on Computer Aided Verification, 97-117, 2017.

作者介绍


微信截图_20230410120228

术语工委及术语平台介绍:

计算机术语审定委员会(Committee on Terminology)主要职能为收集、翻译、释义、审定和推荐计算机新词,并在CCF平台上宣传推广。这对厘清学科体系,开展科学研究,并将科学和知识在全社会广泛传播,都具有十分重要的意义。


术语众包平台CCFpedia的建设和持续优化,可以有效推进中国计算机术语的收集、审定、规范和传播工作,同时又能起到各领域规范化标准定制的推广作用。


新版的CCFpedia计算机术语平台(http://term.ccf.org.cn)将术语的编辑运营与浏览使用进行了整合,摒弃老版中跨平台操作的繁琐步骤,在界面可观性上进行了升级,让用户能够简单方便地查阅术语信息。同时,新版平台中引入知识图谱的方式对所有术语数据进行组织,通过图谱多层关联的形式升级了术语浏览的应用形态。

微信图片_20230410125847



计算机术语审定工作委员会

主任:

刘挺(哈尔滨工业大学)

副主任:

王昊奋(同济大学)

李国良(清华大学)

主任助理:

李一斌(上海海乂知信息科技有限公司)

执行委员:

丁军(上海海乂知信息科技有限公司)

林俊宇(中国科学院信息工程研究所)

兰艳艳(清华大学)

张伟男(哈尔滨工业大学)

640 (1)