



全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
关于由PDA向CFG的构造PDA与CFG的等价的,意味着对任意上下文无关文法(CFL),都相应地存在一个PDA接受它。而这个等价性证明对于大部分学生而言都是形式语言中能与图灵机(Turing Machian)构造相提并论的绝对难点之一。而这其中最让人难以理解的便是如何由PDA转换为相应的CFG。 “你可以先用两周的时间开明白它是怎么构造的,然后再花一个月的时间,你就会逐渐理解它为什么这么构造。” SDL讲这部分内容的时候如是说。这是我写这篇文章的动机。尽管下午两小时形式语言考试的结束意味着至少在相当一段时间里我不会再去研究相关的问题,可是在饱尝口授之苦之后,我觉得依然有必要把我对这部分的理解写下来,算是裨益后人吧。希望对看到它的人有所帮助。首先是所构造的CFG中每个变元所表示的涵义:形式:qxp涵义:PDA中的状态q在pop(x)之后到达p状态来源:PDA中的每个转移生成式:以下将用例题来阐述生成式的构造方法以及其原理。例:将PDA P=(p, q, 0, 1, X, Z, q,z)转换为CFG,其中为:1:(q, 1, Z) = (q, XZ)2:(q, 1, X) = (q, XX)3:(q, 0, X) = (p, X)4:(q,X) = (q,)5:(p, 1, X) = (p,)6:(p, 0, Z) = (q, Z)OK,我们来开始构造:令所要构造的CFGG=(V, T, P, S)首先看P接受哪些串。显然对它接受的串w,都满足由初始状态(start state)读入串w之后达到empty stack。细心的人可能会发现P是以空栈方式接受的PDA,但聪明的人会更深一步去想,为什么转换成CFG的PDA必须是以空栈方式接受的,而不能是以终态方式接受的?好了,既然如此,那么所构造的CFG应该有什么样的生成式呢?很显然:S - qZq | qZp即每个生成式都是由PDA中的初始状态q通过一系列变换之后pop(Z)的结果,至于终态是什么,我们不知道,因为它是以空栈方式接受的,因此PDA中存在多少个状态,q将栈底元素pop之后就能到达多少个状态。 接下来,我们将为每个转移过程构造相应的生成式:1:(q, 1, Z) = (q, XZ)由于我们所构造的CFG中的变元形式为qxp, 它的涵义在上面已经讲过。而针对这个转移并不是执行pop操作,而是执行push操作。那我们应该怎么办呢?这是整个转换过程中最抽象的地方,也是最难理解的地方。回想一下我们对start symbol的构造,我们最终是要将栈底元素Z弹出,而这个过程我们可以将它划分为n个子过程,即我们现在所看到的生成式。每个生成式都是一个pop的过程,最终所有的pop过程迭加起来便得到最终的空栈状态。这是为什么针对push操作(包括其他任何操作)我们都构造pop形式变元的原因。对于该转移,我们得到的生成式是:1. qZq - 1qXqqZq 2. qZq - 1qXppZq 3. qZp - 1qXqqZp 4. qZp - 1qXppZp为什么是这样?首先看-左边的变元,显然根据转移(q, 1, Z) = (q, XZ)我们知道这是一个push操作,因此q在pop栈底元素Z后我们不知道它会发生什么,同样的,它会转移到什么状态对于我们而言也是完全透明的,因此我们必须考虑进所有情况。而它因何会生成-右边这种形式的生成式呢,我们来考虑一个例子:比如说郭先生想从哈尔滨去广州看望故人,当然他可以选择直接从哈尔滨飞往广州,这也是最快的方法。而郭先生喜爱享受旅途的过程,于是他先从哈尔滨飞往大连,再由大连坐船至杭州,再由杭州乘火车至广州。从逻辑上讲(或者从形式上说)这两种方法显然是等价的。好的,我们现在来考虑这个过程与我们所构造文法的内在关联。第一个过程是郭先生直接从哈尔滨飞往广州。对,这就是-左边的变元涵义。由此说来右边生成式的涵义也容易理解了,郭先生身上原有Z元钱,从哈尔滨(状态q)乘飞机(读入1)至大连(状态q),这个过程中他往银行取了X元钱。再由大连坐船至杭州,花费X元钱(qXq),接着由杭州坐火车至广州,花费Z元钱(qZq),同时他的目的地也到达了。想通了么?是不是忽然发现这个过程有点简单的匪夷所思?呵,everything is easy.当然了,中间站是可以选择的,因此从大连出发,我可以去杭州,也可以去天津,南京等其他城市。 有了这个描述过程,我想接下来的转换可以不必再详细解释了。2:(q, 1, X) = (q, XX)它的生成式如下:1. qXq - 1qXqqXq S-1SS2. qXq - 1qXppXq S3. qXp - 1qXqqXp4. qXp - 1qXppXp3:(q, 0, X) = (p, X)1. qXq - 0pXq2. qXp - 0pXp这里会有疑惑?想想郭先生为什么一定要途中经过两个城市再到广州呢?明白了吧,我们继续。4:(q,X) = (q,)qXq - e这是一个pop操作,因此不需要任何中介。5:(p, 1, X) = (p,)pXp - 16:(p, 0, Z) = (q, Z)1. pZq - 0qZq 2. pZp - 0qZpOK,这个过程说得有点过于详细了,无奈,这几天给同学讲解这个方法就得这么讲,有时候将抽象的东西形象化并非一件易事,虽然明了之后会发现这其他非常简单,我想伟人与平凡人的差别也在此吧,沟壑往往就在那一个小小的瓶颈。 以上是对PDA转换为CFG的一种非形式化的构造过程,对于形式的构造,也就是形式语言课程的要求,我想大家可以去仔细理解课本上的推导过程,跳出公式的桎梏,深入原理去分析,You will figure out that nothing is difficult. 终于有两周的假期了,形式语言是我最喜欢的一门课,考试完永辉向我哭诉:怎么那么多证明题啊。嘿嘿,我对他说,我喜欢证明题。随后抱之以诡异的一笑。 不知道这样的生活适不适合我,总之生活逐渐被
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度公共设施消防安全服务协议
- 二零二五年度房地产开发监理承包服务合同范本
- 二零二五年度智能电网电线电缆供应合同样本
- 二零二五年度企业员工借款合同范本(含借款用途限定)
- 二零二五年度数据中心设备供应保证合同
- 2025年度都市青年创业合伙购房合同
- 麻疹和水痘预防宣传课件
- 二零二五年度智能停车设备车位销售代理协议
- 美容美发店铺转让三方共赢协议
- 2025版农产品深加工项目担保借款合同规范
- 特种行业和公场所治安管理工作指导手册
- 附属工程监理细则
- 部编版二年级下册语文看图写话《五感写作法》课件
- 高校学生公寓管理规范
- JJG 971-2019液位计
- GA 814-2009 警用约束带标准
- 工程建设项目人盯人、人盯项目工作责任书
- 山西省晋中市各县区乡镇行政村村庄村名居民村民委员会明细及行政区划代码
- 深层搅拌桩(试桩)施工记录
- 乳胶漆质量检验批验收记录
- 诗朗诵社团活动记录
评论
0/150
提交评论