我正在寻求有关如何证明两种计算模型等效的解释。我一直在阅读有关该主题的书籍,只是省略了等效证明。我对两个计算模型等效是什么有一个基本的想法(自动机视图:如果它们接受相同的语言)。还有其他考虑等效性的方法吗?如果您可以帮助我了解如何证明图灵机模型等效于lambda微积分,那就足够了。
我正在寻求有关如何证明两种计算模型等效的解释。我一直在阅读有关该主题的书籍,只是省略了等效证明。我对两个计算模型等效是什么有一个基本的想法(自动机视图:如果它们接受相同的语言)。还有其他考虑等效性的方法吗?如果您可以帮助我了解如何证明图灵机模型等效于lambda微积分,那就足够了。
Answers:
您证明了其中一个模型都可以模拟另一个模型,即模型A中有一个机器,表明模型B中有一台机器可以计算相同的功能。请注意,此模拟不一定是可计算的(但通常是可计算的)。
例如,考虑具有两个堆栈的下推自动机(2-PDA)。在另一个问题中,概述了两个方向上的仿真。如果正式执行此操作,则将使用通用的图灵机(元组)并显式构造相应的2-PDA,反之亦然。
从形式上讲,这样的模拟可能看起来像这样。让
成为图灵机(用一根胶带)。然后,
与和由
为所有和,
对所有,
对所有与,对于所有,
为所有和,
对于所有,
对所有,
针对所有和,和
对于所有
[ 来源 ]
在“ 通信和移动系统: Robin Milner 的Pi演算 ”开始时,对自动机及其相互之间如何相互模拟的区别进行了介绍:Bisimulation。(参见维基百科上的Bisimulation)
我不太记得,我应该重新阅读本章,但是仿真和双仿真存在问题,这使得它们不足以实现计算等效性。
因此,罗宾·米尔纳(Robin Milner)介绍了他的Pi-微积分,并在本书的其余部分中进行介绍。
最终,您可以在他的最后一本书《通信代理人的空间与运动》中了解罗宾·米尔纳(Robin Milner)的传记。他们可以对自动机,Petri网,Pi-微积分和其他计算方法进行建模。
据我所知,唯一(或至少最常见)的方法是比较机器/模型接受的语言。这就是自动机理论的全部重点:它采用了模糊的问题或算法概念,并将其转变为我们可以推理的具体数学集(即一种语言)。
最简单的方法是给定一个模型的任意机器/功能,然后从第二个模型构造计算相同语言的机器。奇怪的是,您将在表达式的长度,机器中的状态,语法中的规则等中使用归纳法。
我还没有看到用Lambda和TM做到这一点(尽管我99%的确定是可行的),但是我肯定已经看到这种东西可以证明NFA和正则表达式的等效性。首先,显示可以接受任何原子的NFA,然后使用感应法,使NFA接受任何较小NFA的并/级联/ Kleene-star。
然后执行相反的操作,找到任何NFA的RE。