在介绍和解释中,P和NP复杂度等级通常通过Turing机器给出。计算模型之一是lambda演算。我知道,所有计算模型都是等效的(如果我们可以用图灵机来介绍任何东西,我们可以用任何计算模型来介绍),但是我从未见过通过lambda演算来解释P和NP复杂度类的想法。 。任何人都可以在没有Turing机器并且仅以lambda演算作为计算模型的情况下解释P和NP复杂度概念。
在介绍和解释中,P和NP复杂度等级通常通过Turing机器给出。计算模型之一是lambda演算。我知道,所有计算模型都是等效的(如果我们可以用图灵机来介绍任何东西,我们可以用任何计算模型来介绍),但是我从未见过通过lambda演算来解释P和NP复杂度类的想法。 。任何人都可以在没有Turing机器并且仅以lambda演算作为计算模型的情况下解释P和NP复杂度概念。
Answers:
图灵机和 -calculus仅在它们可以定义的功能是等效的。λ
从计算复杂度的角度来看,它们的行为似乎有所不同。人们使用Turing机器而不是 -calculus来解释复杂性的主要原因是,使用 -calculus会天真地导致不现实的复杂性度量,因为您可以在单个归约步骤中自由复制(任意大小的)项,例如换句话说, -calculus中的单个还原步骤是一个糟糕的成本模型。相比之下,单个Turing机器简化步骤的效果很好(在某种意义上说,它们是真实程序运行时的良好预测指标)。λ
在演算中如何完全恢复基于图灵机的传统复杂性理论
尚不完全清楚。在最近(2014年)的突破中,阿卡波托利(Accattoli)和达拉古(Dal Lago)
设法表明,可以给,和等大类时间复杂度赋予自然的演算公式。但是使用Accattoli / Dal Lago技术无法呈现或等较小的类。λ
如何使用 -calculus 恢复传统的空间复杂性
是未知的。λ
我粘贴了我为另一个问题写的答案的一部分:
隐式计算复杂性旨在通过专用语言来表征复杂性类。诸如贝兰托尼-库克定理之类的第一个结果是用递归函数表示的,但是最近的结果使用 -calculus 的词汇和技术。有关更多信息和提示,请参见“ 隐式计算复杂性简介 ”,或DICE研讨会的会议记录。μ
μ λλ
通过 -calculus 可以表征(至少)。FPλ