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


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∈ΣI和hr,hl∈ΣO,
(q1∗,ε,hl,hr)→δ′(q2∗,hl,hr)对所有hr,hl∈ΣO,
(q2∗,ε,hl,hr)→δ′(q2∗,ε,hlhr)对所有hr,hl∈ΣO与hl≠$,对于所有,
(q2∗,ε,$,hr)→δ′(q0,$,hr)hr∈ΣO
(q,ε,hl,hr)→δ′(q′,ε,hla)⟺(q,hr)→δ(q′,a,L)为所有和,q∈Qhl∈ΣO
(q,ε,$,hr)→δ′(q′,$,◻a)⟺(q,hr)→δ(q′,a,L)对于所有q∈Q,
(q,ε,hl,hr)→δ′(q′,ahl,ε)⟺(q,hr)→δ(q′,a,R)对所有q∈Q,hl∈ΣO′,
(q,ε,hl,$)→δ′(q,hl,◻$)针对所有q∈Q和hl∈ΣO′,和
(q,ε,hl,hr)→δ′(q′,hl,a)⟺(q,hr)→δ(q′,a,N)对于所有q∈Q,hl∈ΣO′

◻∈ΣO$∉ΣO(q,a,hl,hr)→δ′(q′,l1…li,r1…rj)AMaqq′

堆栈更新
[ 来源 ]

AMx∈ΣI∗MMAM


@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.