与普通语言的上下文自由交集


16

上下文无关语言L与常规语言M的交集被称为始终上下文无关。我了解跨产品构造的证明,但是我仍然不明白为什么它是上下文无关的但不是常规的。

由这种相交产生的语言具有PDA DFA 都接受的字符串。由于DFA接受了该语言,因此它不应该是常规语言吗?另外,如果交集是规则的,则也意味着上下文无关,因为所有常规语言也是上下文无关的。

有人可以向我解释为什么通过这种交集获得的语言不规则吗?


12
可以将。*作为常规语言及其与上下文无关的语言的交集。
AProgrammer 2013年

1
这将是上下文无关的字符串。但是那些字符串也是由常规语言生成的,因此它也是一种上下文无关的语言,也是常规语言。
sanjeev mk 2013年

8
语言可能很普通。但这通常不是。再考虑一下AProgrammer给出的反例。可能应该是答案。每种与上下文无关的语言都是常规语言的子集。的确,REG的DFA将接受CF和REG语言的交集,但是拒绝的内容也很重要。
KarolisJuodelė2013年


1
@DW相关,但有人提议将其作为骗子,并非如此。这个问题在问为什么交集并不总是规则的?另一个问为什么交集并不总是不规则的。该问题的具体设置(谈论DFA和PDA都接受的字符串,因此DFA接受了它们,因此语言是常规语言,对吗?)表示对其他问题的回答不不能很好地回答这一问题。
David Richerby

Answers:


20

如果是上下文无关的,那么会有一个PDA P接受它。如果中号是有规律的,然后有一个DFA ˚F接受它。交集语言由PF识别的单词组成。大号PMFPF

这是在路口的任何字被接受,但不是被接受的所有的话˚F都在路口:只有那些还接受PFFP

叉积证明由构建的自动机的含有两者的力学P˚F,并且其仅接受针对双方接受的话。叉积自动机是PDA(因此公认的语言是上下文无关的)-直观地讲,因为具有n状态DFA 的叉积包括获取nP副本并添加q a [ q ] 在匹配状态之间的箭头P,其中DFA具有一个PFPFnnP(q,a,[q])Pa箭头。因为结果不是一般的有限自动机(甚至没有一个不确定性的一个)部分依赖于堆栈,并且这种依赖性不会消失在P˚F一般。PPF

一个小示例是是规则的,并且如果大号是上下文无关,但不经常然后大号 * = 大号是上下文无关,但不规律的。ALLA=L


2
+1我几乎发布了一个与您上一句话等效的答案。坦白说,剩下的答案似乎都是不必要的。:)
Patrick87

没有获得“在DFA具有箭头的P中的匹配状态之间添加(q,a,[q])箭头”。无法显示产品PDA的外观。
anir
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.