NL完全

科技工作者之家 2020-11-17

在计算复杂性理论中,NL完全是由全体对NL类完备的语言构成的复杂性类。也就是说,NL完全的语言是NL类中最“难解”和最“有力”的语言。如果有某个确定性的方法可以在对数空间内解决一个NL完全问题,那么就会有NL=L

简介NL完全是由全体对NL类完备的语言构成的复杂性类。也就是说,NL完全的语言是NL类中最“难解”和最“有力”的语言。如果有某个确定性的方法可以在对数空间内解决一个NL完全问题,那么就会有NL=L。1

定义在全体判定问题中,NL类包含了那些可以用非确定型图灵机在对数空间内解决的问题。这里的图灵机要求有一条只读输入带,和另一条空间上限与输入长度的对数成比例的读写带。类似地,L类包含了可以用同样结构的确定型图灵机解决的判定问题。由于这种图灵机的格局数目只有多项式级别,因此NLL都是P的子集。

正式地说,一个问题是NL完全的,当且仅当它属于NL,并且所有NL中的判定问题都可以Log-空间规约到它。2

NLL是NL的子集,NL是可以被非确定型图灵机利用对数空间解决的判定问题集合。利用萨维奇定理的建构式证明,可得证NL包含在复杂度P之内,也就是可以被确定型图灵机在多项式空间解决的判定问题集合中。

存在几个已知的NL-完全问题,如2SAT。

根据萨维奇定理,我们已知有以下重要性质:

计算复杂性理论计算复杂性理论(Computational complexity theory)是理论计算机科学和数学的一个分支,它致力于将可计算问题根据它们本身的复杂性分类,以及将这些类别联系起来。一个可计算问题被认为是一个原则上可以用计算机解决的问题,亦即这个问题可以用一系列机械的数学步骤解决,例如算法。

如果一个问题的求解需要相当多的资源(无论用什么算法),则被认为是难解的。计算复杂性理论通过引入数学计算模型来研究这些问题以及定量计算解决问题所需的资源(时间和空间),从而将资源的确定方法正式化了。其他复杂性测度同样被运用,比如通信量(应用于通信复杂性),电路中门的数量(应用于电路复杂性)以及中央处理器的数量(应用于并行计算)。计算复杂性理论的一个作用就是确定一个能或不能被计算机求解的问题的所具有的实际限制。

在理论计算机科学领域,与此相关的概念有算法分析和可计算性理论。两者之间一个关键的区别是前者致力于分析用一个确定的算法来求解一个问题所需的资源量,而后者则是在更广泛意义上研究用所有可能的算法来解决相同问题。更精确地说,它尝试将问题分成能或不能在现有的适当受限的资源条件下解决这两类。相应地,在现有资源条件下的限制正是区分计算复杂性理论和可计算性理论的一个重要指标:后者关心的是何种问题原则上可以用算法解决。1

本词条内容贡献者为:

杨晓红 - 副教授 - 西南大学

科技工作者之家

科技工作者之家APP是专注科技人才,知识分享与人才交流的服务平台。