如何显示两个计算模型是等效的?


21

我正在寻求有关如何证明两种计算模型等效的解释。我一直在阅读有关该主题的书籍,只是省略了等效证明。我对两个计算模型等效是什么有一个基本的想法(自动机视图:如果它们接受相同的语言)。还有其他考虑等效性的方法吗?如果您可以帮助我了解如何证明图灵机模型等效于lambda微积分,那就足够了。


我想你选错了书。
拉斐尔

@Raphael关于这个主题的好书是什么?
saadtaame 2012年

我想说“任何有关自动机的书”,但显然这是事实。不幸的是,抱歉,我手边没有合适的英语书。
拉斐尔

1
一本关于自动机的书是不够的。
reinierpost

您正在使用什么书?
saadtaame 2012年

Answers:


20

您证明了其中一个模型都可以模拟另一个模型,即模型A中有一个机器,表明模型B中有一台机器可以计算相同的功能。请注意,此模拟不一定是可计算的(但通常是可计算的)。

例如,考虑具有两个堆栈的下推自动机(2-PDA)。在另一个问题中,概述了两个方向上的仿真。如果正式执行此操作,则将使用通用的图灵机(元组)并显式构造相应的2-PDA,反之亦然。


从形式上讲,这样的模拟可能看起来像这样。让

M=(Q,ΣI,ΣO,δ,q0,QF)

成为图灵机(用一根胶带)。然后,

AM=(Q{q1,q2},ΣI,ΣO,δ,q1,QF)

ΣO=ΣO.{$}δ

(q1,a,hl,hr)δ(q1,ahl,hr)为所有aΣIhr,hlΣO
(q1,ε,hl,hr)δ(q2,hl,hr)对所有hr,hlΣO
(q2,ε,hl,hr)δ(q2,ε,hlhr)对所有hr,hlΣOhl$,对于所有,
(q2,ε,$,hr)δ(q0,$,hr)hrΣO
(q,ε,hl,hr)δ(q,ε,hla)(q,hr)δ(q,a,L)为所有和,qQhlΣO
(q,ε,$,hr)δ(q,$,a)(q,hr)δ(q,a,L)对于所有qQ
(q,ε,hl,hr)δ(q,ahl,ε)(q,hr)δ(q,a,R)对所有qQ,hlΣO
(q,ε,hl,$)δ(q,hl,$)针对所有qQhlΣO,和
(q,ε,hl,hr)δ(q,hl,a)(q,hr)δ(q,a,N)对于所有qQ,hlΣO

ΣO$ΣO(q,a,hl,hr)δ(q,l1li,r1rj)AMaqq

堆栈更新
[ 来源 ]

AMxΣIMMAM


@frabala你是对的,我最初的状态是错误的。立即修复,谢谢!
拉斐尔

4

在“ 通信和移动系统: Robin Milner 的Pi演算 ”开始时,对自动机及其相互之间如何相互模拟的区别进行了介绍:Bisimulation。(参见维基百科上的Bisimulation

我不太记得,我应该重新阅读本章,但是仿真和双仿真存在问题,这使得它们不足以实现计算等效性。

因此,罗宾·米尔纳(Robin Milner)介绍了他的Pi-微积分,并在本书的其余部分中进行介绍。

最终,您可以在他的最后一本书《通信代理人的空间与运动》中了解罗宾·米尔纳(Robin Milner)的传记。他们可以对自动机,Petri网,Pi-微积分和其他计算方法进行建模。


2

据我所知,唯一(或至少最常见)的方法是比较机器/模型接受的语言。这就是自动机理论的全部重点:它采用了模糊的问题或算法概念,并将其转变为我们可以推理的具体数学集(即一种语言)。

最简单的方法是给定一个模型的任意机器/功能,然后从第二个模型构造计算相同语言的机器。奇怪的是,您将在表达式的长度,机器中的状态,语法中的规则等中使用归纳法。

我还没有看到用Lambda和TM做到这一点(尽管我99%的确定是可行的),但是我肯定已经看到这种东西可以证明NFA和正则表达式的等效性。首先,显示可以接受任何原子的NFA,然后使用感应法,使NFA接受任何较小NFA的并/级联/ Kleene-star。

然后执行相反的操作,找到任何NFA的RE。

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.