通过Lambda微积分解释P和NP类


36

在介绍和解释中,P和NP复杂度等级通常通过Turing机器给出。计算模型之一是lambda演算。我知道,所有计算模型都是等效的(如果我们可以用图灵机来介绍任何东西,我们可以用任何计算模型来介绍),但是我从未见过通过lambda演算来解释P和NP复杂度类的想法。 。任何人都可以在没有Turing机器并且仅以lambda演算作为计算模型的情况下解释P和NP复杂度概念。


5
它们的计算能力仅等效于自然数以上的函数,而不适用于更高类型或其他设置的函数。
卡夫

图灵完整性有时是表示联系的更理论性的概念,但TM完整系统之间实际上并不总是进行更多应用的“转换”,即,有时它更多地是关于存在证明的……
vzn 2014年

Answers:


38

图灵机和 -calculus仅在它们可以定义的功能是等效的。λλNNNN

从计算复杂度的角度来看,它们的行为似乎有所不同。人们使用Turing机器而不是 -calculus来解释复杂性的主要原因是,使用 -calculus会天真地导致不现实的复杂性度量,因为您可以在单个归约步骤中自由复制(任意大小的)项,例如换句话说, -calculus中的单个还原步骤是一个糟糕的成本模型。相比之下,单个Turing机器简化步骤的效果很好(在某种意义上说,它们是真实程序运行时的良好预测指标)。λλλλββ(λx.xxx)MMMM.(λx.xxx)MMMM.λλ

在演算中如何完全恢复基于图灵机的传统复杂性理论 尚不完全清楚。在最近(2014年)的突破中,阿卡波托利(Accattoli)和达拉古(Dal Lago) 设法表明,可以给,和等大类时间复杂度赋予自然的演算公式。但是使用Accattoli / Dal Lago技术无法呈现或等较小的类。λλPPNPNPEXPEXPλλO(n2)O(n2)O(nlogn)O(nlogn)

如何使用 -calculus 恢复传统的空间复杂性 是未知的。λλ


4
我觉得有必要在这里澄清一下:Accattoli和Dal Lago没有特别的“技术”来“演示”时间课程。呈现是“天真”的表达:将为在任何标准归约策略(例如,最左侧)下由 -term在归约步骤中确定的语言类别。-最外层)。Accattoli和德尔Lago的显示,利用从线性逻辑来技术,存在一个多项式,使得。λTIME(f(n))λTIME(f(n))λλf(n)f(n) ββppλTIME(f(n))=TIME(p(f(n))λTIME(f(n))=TIME(p(f(n))
达米亚诺马扎

@DamianoMazza是的,我的意思是我认为用于显示此结果的技术不能用于显示。λTIME(n2)=TIME(n2)λTIME(n2)=TIME(n2)
Martin Berger 2014年

3
好的我明白了。实际上,我的猜测是:诸如或类的复杂性类并不健壮,人们无法期望它们能够在计算模型变化的情况下保持稳定(众所周知,即使我们坚持使用图灵机,例如单带与多带也是如此)。λTIME(n2)TIME(n2)λTIME(n2)TIME(n2)TIME(n2)TIME(n2)TIME(nlogn)TIME(nlogn)
Damiano Mazza 2014年

3
@DamianoMazza我也同意,对于所选字母的大小也是如此。但是,在运行的算法的上 -tape机可以在被模拟 1-磁带机,适度的二次爆破上。Accattoli和Dal Lago的当前翻译的爆炸性内容是什么?我不记得他们是否明确声明过。f(n)f(n)nn5kf2(n)5kf2(n)
Martin Berger

1
@Jake引用的论文讨论了beta规范化(请参见第二页)。对于其他形式的减少,例如弱减少(即按值打电话),也已经知道类似的结果-参见Dal Lago和Martini,2008年(在该论文和cstheory.stackexchange.com/a/397/989中进行了讨论))。
Blaisorblade


5

我不知道这是否能回答您的问题,但确实存在根据逻辑(一阶逻辑,二阶逻辑)的复杂性类(尤其是和)的其他表征。逻辑等。)。PNP

例如,工作R.费金(等人)在这方面是显着的(和海事组织可能提供与洞察力 VS问题,用描述性和关系的算法的复杂性)PNP

可以在此处此处找到(例如)关于算法复杂度(例如,Kolmogorov-Solomonov)的计算复杂度类的其他特征。

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.