资源描述:
《上下文无关语言和非上下文无关语言》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、语言与计算理论导引上下文无关语言与非上下文无关语言8上下文无关语言和非上下文无关语言8.1上下文无关语言的泵引理从第6章到第7章,我们给出了两种描述CFL的模型,CFG和PDA。这两种模型都没有提供直接、明确的方法来判断一个形式语言不是CFL。然而,正如例子6.7对自然语言的一个简单考察,我们发现CFG存在描述能力的局限。本节中,我们精确定义和讨论CFL的一个性质,它类似于正则语言的泵引理。利用这个性质能够发现许多不是CFL的语言。正则语言的泵引理基于这样的事实,如果一个足够长的输入字符串x导致FA在
2、状态转移中,到达某个状态超过一次,即接受路径上存在回路,根据回路容易将x分成三部分,u是回路之前的字符串,v是回路的字符串,w是回路后的字符串,那么在回路上的多次重复,得到的新的字符串也应该被FA接受,即对任意的m>=0,uvmw被FA接受。如果我们用CFG生成(而不是PDA移动)CFL,容易得到类似的观察。设CFGG的一个推导出现同一个非终结符的嵌套重复,如下面的形式,SÞ*vAzÞ*vwAyzÞ*vwxyz其中,v,w,x,y,zÎå*。推导过程中,出现了AÞ*wAy,我们可以多次重复这个推导过程
3、,如SÞ*vAzÞ*vwAyzÞ*vw2Ay2zÞ*vw3Ay3zÞ*...Þ*vwmAymz又由于AÞ*x,因此所有这类字符串vxz,vwxyz,vw2xy2z,...,vwmxymz都输入语言L(G)。为了将上面的观察总结成CFL的泵引理,我们必须说明对于足够长的字符串的推导过程中都会出现非终结符的嵌套重复。同时我们也尽量发现分解得到的5个子串:v,w,x,y,z,的一些性质。这类似于我们处理正则语言的泵引理。在6.6节,我们证明了所有的CFG产生式都可以改写成Chomsky范式,而不会影响CFG
4、接受语言的能力(唯一的影响是不能接受空字符,由于此处仅仅关心足够长的字符串,因此这个影响可以忽略)。因此我们的讨论可以局限在Chomsky范式(CNF)表示的CFG,显然这类文法得到的推导树都是二叉树,即每个父节点至多有两个子节点。我们先定义几个与二叉树相关的概念。路径是一串节点组成的序列,前后节点之间有父子关系;路径的长度是路径包含的节点的个数;二叉树的高度是最长路径的长度。由于非终结符数目有限,如果推导树足够高,那么存在一个路径,某个非终结符在该路径上出现了两次,即出现了前面提到的嵌套重复现象。引
5、理8.1任给h>=1,如果二叉树的叶结点个数>2h-1,那么该二叉树的高度>h。证明:这是一个数学问题。我们用数学归纳法证明它的逆反命题:如果二叉树的高度<=h,那么二叉树的叶节点个数<=2h-1。1.归纳基础,h=1,此时二叉树只有一个根节点,它也是唯一的叶结点,命题成立。2.归纳推理,设k>=1时,命题成立。要证明k+1时,命题也成立。设二叉树T的高度为k+1,则它的根节点的两个子树(以子节点为跟的二叉树)的叶节点数都<=2k-1,因此T的叶节点数<=2k-1+2k-1=2k。得证。定理8.1G=
6、(V,å,S,P)是形式为CNF的CFG,共有p个非终结符,则对每个长度>=2p+1的属于L(G)的字符串,都能找到5个字符串v,w,x,y,z满足下面的条件:u=vwxyz
7、wy
8、>0
9、wxy
10、<=2p+1vwmxymzÎL(G),"m>=0证明:根据引理8.1,任何一个生成u的推导树高度>=p+2,即至少存在一个长度>=p+2的路径,不妨设d是其中的一个,显然d10陶晓鹏Copyright2003语言与计算理论导引上下文无关语言与非上下文无关语言的最底部是一个终结符,其上的符号都是非终结符,共有p
11、+1个,而不同的非终结符只有p个,根据鸽笼法则,至少存在一个非终结符A在路径d上出现了至少两次,分别将其中最接近根和最接近叶的标记为A1和A2,设A2生成的字符串是x,A1生成的字符串是wxy。在wxy之前的字符串记为v,在wxy之后的字符串记为z。图8-1直观地给出了这5个字符串在推导树上的位置。由于A1为根的推导树高度<=p+2,因此
12、wxy
13、<=2p+1。由于A1为根的推导树是二叉树,因此出了存在从A1到A2的路径,还存在其他路径,则
14、wy
15、>0。最后,存在如下的嵌套重复,SÞ*vAzÞ*vwA
16、yzÞ*vwxyz因此满足第4个条件。类似有限自动机的泵引理,我们也给出一系列CFG的泵引理。定理8.1a(CFL的泵引理)语言L是CFL,则存在一个整数n,使得对每个uÎL,
17、u
18、>=n,都存在5个字符串v,w,x,y,z,满足下面的条件,u=vwxyz(8.1)
19、wy
20、>0(8.2)
21、wxy
22、<=n(8.3)vwmxymzÎL(G),"m>=0(8.4)证明:L是CFL,则存在一个CNF形式的CFG生成L-{L},它的非终结符个数是p,则令n=2p+