计算复杂性理论

来自Citizendium
跳转到导航 跳转到搜索
这篇文章基本上是从外部来源复制的,尚未获得批准。
主要文章
讨论
定义 [?]
相关文章 [?]
参考文献 [?]
外部链接 [?]
可引用版本 [?]
 
此可编辑的主要文章是正在开发中并受免责声明.
本页内容源于维基百科但仍有待显著改善。投稿人被邀请替换和添加材料,使本文成为原创文章。

计算复杂性理论计算理论,英寸计算机科学,它描述了可扩展性属于算法以及为特定的计算问题也就是说,该理论回答了这样一个问题:“随着算法输入的大小增加,算法的运行时间和内存需求如何变化?”可计算的-这与可计算性理论它处理的是一个问题是否可以得到解决,而不管需要多少资源。

该理论的含义在许多其他领域都很重要。计算机的速度和内存容量一直在增加,但需要分析的数据集的大小也在增加。如果算法不能很好地扩展,那么即使计算技术有了巨大的改进,实际数据大小也只会略有增加。

算法和问题分为复杂性类复杂性理论最重要的公开问题是复杂性类是否P(P)与复杂性类相同NP公司,或者只是一般认为的子集。这个问题首次提出后不久,人们就意识到运筹学属于NP公司称为NP-complete的子类。NP完全问题具有快速检查问题解决方案的特性,但目前寻找精确解决方案的方法是不可扩展的。如果NP公司类大于P(P)因此,对于这些问题,不存在易于扩展的解决方案;这种情况是否属实仍是计算复杂性理论中最重要的悬而未决的问题。

概述

单个“问题”是一组完整的相关问题,其中每个问题都是有限长的一串例如,问题系数化is:给定一个写入的整数二元的,返回所有首要的这个数字的因子。一个特定的问题被称为实例例如,“给定数字15的因子”是系数化问题。

这个时间复杂性问题的数量是将问题实例作为输入的大小(通常以位为单位),使用最有效的算法。要直观地理解这一点,请考虑一个实例n个可以求解的位长n个²台阶。在这个例子中,我们说这个问题的时间复杂度为n个². 当然,确切的步骤数将取决于所使用的机器或语言。为了避免这个问题大O符号通常使用。如果问题具有时间复杂性O(n个²)在一台典型的计算机上,那么它也将具有复杂性O(n个²),因此此符号允许我们从特定计算机的细节中进行概括。请参见算法的复杂性有关时间复杂性的更多信息。

例子:割草具有线性时间复杂性,因为割草的时间是割草面积的两倍。然而,正在查找某事在字典中,只有对数时间复杂度,因为一个双大小的字典只需要打开一次(例如正好在中间&那么问题大小就减少了一半)。

这个空间复杂性一个问题是一个相关的概念,它衡量空间的大小,或者记忆算法所需。非正式的类比是用笔和纸解决问题时所需的草稿纸数量。空间复杂性也可以用大O符号.

在某些情况下有用的问题复杂性的另一种度量方法是电路复杂性。这是对布尔电路根据逻辑门需要构建电路。例如,在设计时,这样的措施很有用硬件微芯片计算函数而不是软件.

决策问题

复杂性理论的大部分内容都是关于决策问题的。A类决策问题问题的答案总是复杂性理论区分了验证问题和验证问题答案。一个将另一个问题的答案称为补充这个问题。

例如,一个众所周知的决策问题IS-PRIME公司返回一个当给定输入为首要的和a否则,虽然问题IS-委员会确定给定整数是否为质数(即复合数). 什么时候?IS-PRIME公司返回一个,IS-委员会返回一个反之亦然。所以IS-复合物是的补充IS-PRIME公司,以及类似的IS-PRIME公司是的补充IS-委员会.

决策问题经常被考虑,因为任意问题总是可以减少对于某些决策问题。例如,问题HAS-因子is:给定整数n个k个以二进制形式编写,返回是否n个有任何素数小于k个.如果我们能解决HAS-因子使用一定数量的资源,然后我们可以使用该解决方案来解决系数化没有更多的资源。这是通过执行二进制搜索k个直到最小因子n个然后除以该因子并重复,直到找到所有因子。

复杂性理论的一个重要结果是,无论一个问题有多难(即它需要多少时间和空间资源),总会有更难的问题。对于时间复杂性,这可以通过时间层次定理.A类似空间层次定理也可以导出。

计算资源

复杂性理论从许多不同的角度分析计算问题的困难计算资源同样的问题可以用许多不同计算资源的必要量来解释,包括时间、空间、随机性、,交替以及其他不太直观的度量。A类复杂性类是使用一定数量的特定计算资源可以解决的所有计算问题的集合。

也许研究得最深入的计算资源是确定性时间(DTIME)和确定性空间(DSPACE)。这些资源代表计算时间存储器空间在确定性计算机上需要,就像实际存在的计算机一样。这些资源具有很高的实用价值,并且得到了很好的研究。

一些计算问题更容易根据更不寻常的资源进行分析。例如不确定图灵机是一种计算模型,可以同时分支以检查许多不同的可能性。非确定性图灵机器与我们物理上想要如何计算算法几乎没有关系,但它的分支准确地捕获了我们想要分析的许多数学模型,因此不确定时间是分析计算问题的重要资源。

复杂性理论中使用了许多更不寻常的计算资源。从技术上讲,任何复杂性度量可以被视为一种计算资源,复杂性度量由模糊复杂性公理.

复杂性类别

A类复杂性类是使用一定数量的特定计算资源可以解决的所有计算问题的集合。

复杂性类P(P)是可以由确定性机器在里面多项式时间。此类对应于在最坏情况下可以有效解决的问题的直观概念。[1]

复杂性类NP公司是可以由-确定性机器在多项式时间内。这个课程包含许多人们希望能够有效解决的问题,包括布尔可满足性问题,的汉弥尔顿路径问题顶点覆盖问题。此类中的所有问题都具有可以有效检查其解决方案的特性。[1]

许多复杂性类可以用数学逻辑需要表达它们-此字段称为描述性复杂性.

开放式问题

P=NP问题

另请参阅:复杂性类别P和NP,Oracle计算机、和NP复杂性类

关于是否NP公司与相同的集合P(P)(即是否可以在非确定性多项式时间可以用确定性多项式时间)是理论计算机科学中最重要的开放性问题之一,因为解决方案具有广泛的含义。[1]一个负面影响是密码学会变得容易“裂纹“因此将毫无用处。然而,随之而来的还有巨大的积极后果,因为许多重要问题将被证明有有效的解决方案。其中包括各种类型的整数规划在里面运筹学,中存在许多问题后勤,蛋白质结构预测在里面生物学以及找到正式证据的能力纯数学定理的有效使用计算机.[2][3]这个克莱数学研究所2000年宣布他们将支付美元$第一个证明解决方案的人获得1000000奖。[4]

这样的问题激发了坚硬的完成.一系列问题X(X)很难解决一系列问题Y(Y)如果每个问题都在Y(Y)可以“轻松”转化为X(X)产生相同的溶液。“轻松”的定义在不同的上下文中是不同的。一个重要的坚硬的复杂性理论中的集合是NP-hard公司-一系列问题,不一定在NP公司他们自己,任何NP公司这个问题可以在多项式时间内解决。

设置X(X)已完成Y(Y)如果很难Y(Y),也是的子集Y(Y)复杂性理论中一个重要的完整集合是NP-完成设置。这个集合包含NP中最“困难”的问题,从这个意义上说,它们是最有可能不在P中的问题P(P)=NP公司仍然没有解决,如果能够将一个问题简化为一个已知的NP-完全问题,则表明它没有已知的多项式时间解。同样,因为NP公司问题可以简化为集合,找到一个NP-完成可以在多项式时间内解决的问题意味着P(P)=NP公司.[1]

中的不完整问题NP公司

复杂性类图表提供了P(P)NP公司二者之外存在的问题P(P)NP公司-本案中的完整性是由兰德确立的。[5]

另一个悬而未决的问题与P(P)=NP公司问题是是否存在NP中的问题,但不存在P中的问题。换句话说,必须在非确定性多项式时间内解决的问题,但不能从其他非确定性多项式问题简化为多项式时间内的问题。其中一个已知为NP但未知为NP-完全的问题是图同构问题-试图决定两个同构的(即共享相同的属性)。已经证明,如果P(P)NP公司那么这些问题就存在了。[6]

NP公司=联合NP

在哪里?联合NP集合是否包含补充问题(即/答案颠倒)。人们认为这两个等级并不相等,但尚未得到证明。已经证明,如果这两个复杂度类不相等,那么可以得出结论,没有NP完备问题可以在co-NP中,也没有联合NP-完成问题可以是NP形式。[6]

应该注意的是,P类问题已被证明是在补码下闭合的;也就是说,P=co-P。因此,如果P=NP,另一个重要的结果是NP=co-NP。

难治性

存在的问题理论上可解的在里面有限的,有限的时间,但在实践中无法解决合理的时间量,称为难对付的“在实践中”可以解决的问题尚有争议,但一般来说,只有具有多项式时间解的问题才能在最小输入下解决。已知难以解决的问题包括EXPTIME公司-完成。如果像大多数人认为的那样,NP与P不同,那么NP完全问题也是棘手的。在实践中,NP-完全和NP-手问题被认为是棘手的近似算法通常使用。

要了解为什么指数时间解决方案在实践中不可用,请考虑一个需要2n个要求解的操作(n是输入的大小)。对于相对较小的输入大小n=100,假设一台计算机可以执行1010(10千兆)每秒操作数,一个解决方案大约需要4*1012年,比现在长得多宇宙的年龄.

著名研究人员

另请参见

工具书类

  • L.Fortnow,Steve Homer(2002/2003)。计算复杂性简史在D.van Dalen、J.Dawson和A.Kanamori编辑中,数理逻辑史荷兰北部,阿姆斯特丹。
  • 扬·范·列文,编辑。理论计算机科学手册,A卷:算法和复杂性,麻省理工学院出版社/爱思唯尔出版社,1990年。国际标准图书编号0-444-88071-2(A卷)。QA 76.H279 1990年。庞大的信息汇编,各种文章中有1000条参考文献。
  1. 1 1.1 1.2 1.3 迈克尔·西普瑟(2006). “时间复杂性”,计算理论导论,第2版。美国:汤姆森球场技术.ISBN 053495097(?)。 
  2. Bonnie A.Berger。;雷顿,特伦斯(1998)。“疏水亲水(HP)模型中的蛋白质折叠是NP完全的。”。计算生物学杂志 5:第27-40页。
  3. 斯蒂芬·库克(2000年4月)。“P与NP问题”2006年10月18日检索。
  4. 亚瑟·M·杰菲。.“数学的千年大挑战”.AMS的通知 53(6). 2006年10月18日检索。
  5. 理查德·雷德纳(1975)。“关于多项式时间可约性的结构”(PDF)。美国医学会杂志(杰克姆) 22: 151–171.DOI程序:10.1145/321864.321877.研究博客.
  6. 6 6.1 杜、丁竹;Ko,Ker-I(2000年)。计算复杂性理论.约翰·威利父子公司.印度卢比0-471-34506-7.