我们了解了无上下文语言。它具有无上下文语法和下推自动机的特征,因此很容易显示给定语言是无上下文的。
但是,如何显示相反的内容?我的助教坚称要这样做,我们必须为所有语法(或自动机)证明它们无法描述手头的语言。这似乎是一项艰巨的任务!
我读过一些抽奖式引理,但看起来确实很复杂。
我们了解了无上下文语言。它具有无上下文语法和下推自动机的特征,因此很容易显示给定语言是无上下文的。
但是,如何显示相反的内容?我的助教坚称要这样做,我们必须为所有语法(或自动机)证明它们无法描述手头的语言。这似乎是一项艰巨的任务!
我读过一些抽奖式引理,但看起来确实很复杂。
Answers:
据我所知,抽水外是迄今为止最简单,最常用的技术。如果发现困难,请先尝试普通版本,那还不错。对于语言而言,还有其他一些手段与上下文无关。例如,不确定的语言并非无关紧要。
就是说,我对除引理之外的其他技术也很感兴趣。
编辑:这里是用于泵送引理一个例子:假设该语言被上下文无关(P是素数集合的)。抽动引理有很多∃ / ∀量词,所以我将其变得像一个游戏:
对于这个特定的语言任何一个ķ(与ķ ≥ p和ķ是一个素数)会做的伎俩。然后抽引理给你 ü v X Ÿ ž带| v ÿ | ≥ 1。不要反驳上下文打浆度,你需要找到ň这样| u v n x y n z | 不是素数。
然后将:k + k | v ÿ | = ķ (1 + | v ÿ |)不是素数这样ü v Ñ X ý Ñ Ž ∉ 大号。不能使用抽运引理,因此L不是上下文无关的。
第二个例子是语言。我们(当然)必须选择一个字符串,并表明不可能将其分解为这五个部分,并且每个派生的抽取字符串都保留在该语言中。
字符串是此证明的合适选择。现在我们只需要查看v和y的位置即可。关键部分是v或y必须在其中包含某些内容(可能两者都有),并且v和y(以及x)都包含在长度p子字符串中-因此它们之间的距离不能太远。
该字符串对于和y可能存在的位置有很多可能性,但是事实证明,其中的几种情况实际上看起来非常相似。
其余情况从那里应该是相当透明的-它们是相同的想法,只是在第一个实例中将和y放在其他三个位置,在第二个实例中将两个位置。但是,在所有情况下,您都可以通过以下方式进行泵送:将字符串分成两半时,顺序明显混乱。
引理(奥格登(Ogden))。令为上下文无关的语言。然后有一个恒定Ñ使得对于每Ž ∈ 大号和的任何方式标记Ñ的或更多的位置(符号)Ž为“可分辨的位置”,然后ž可以写成Ž = û v 瓦特X ÿ,使得
- 具有至少一个不同的位置。
- 最多具有 N个不同的位置。
- 对于所有,ü v 我瓦特X 我 ý ∈ 大号。
例。令。假设L是上下文无关的,并且让N为奥格登引理给出的常数。令z = a N b N + N !c N + 2 N !(属于L),并假设我们标记了作为区别,符号所有位置(即z的前N个位置)。令z = u v w x y是满足奥格登引理条件的z的分解。
行使。使用奥格登引理,表明不是上下文无关。
这是奥格登引理的一个特例,其中所有位置都可以区分。
引理。令为上下文无关的语言。然后有一个恒定Ñ使得对于每Ž ∈ 大号,ž可以写成Ž = û v 瓦特X ÿ,使得
- 。
- 。
- 对于所有,ü v 我瓦特X 我 ý ∈ 大号。
这比奥格登的引理更具有技术性。
定义。令。我们定义Ψ Σ:Σ * → Ñ Ñ由Ψ Σ(瓦特)= (米1,... ,米Ñ),其中,米我是出现次数一个我在瓦特。
定义。一个子集的Ñ Ñ被称为线性,如果它可以被写成: 小号= { Ü 0 + Σ 1 ≤ 我≤ ķ一个我ü 我: 对于一些组 ü 我 ∈ Ñ Ñ 和 一个我 ∈ Ñ }
定义。一个子集的Ñ Ñ被称为半直链,如果它是线性集的有限集合的并集。
行使。使用帕里克定理,证明一元字母表上任何与上下文无关的语言也是规则的。
与使用其他先验知识较少的结果相比,这通常更短(并且往往更容易出错)。这也是可以应用于各种类别的对象的一般概念。
示例1: 与常规语言的交集
示例2 :( 反)同态
现在,有了
的交汇处引理 [1]提出了一种用于上下文打浆度的必要条件是比更强奥格登引理。例如,它可以用来表明
抵制许多其他方法。这是引理:
目前,我没有免费的参考资料,上面的表述摘自1981年的[1]的预印本。我非常感谢帮助您找到更好的参考资料。看来最近已经(重新)发现了相同的属性[2]。
Boonyavatana和Slutzki [3]调查了几种类似于抽水和互换引理的条件。