非上下文无关语言的子集是否可以无上下文?

时间:2016-05-07 05:59:19

标签: subset context-free-grammar regular-language

例如,如果我有B的非上下文自由语言,是否有这样的上下文无关语言A使得A是B的子集?我一直在考虑例子,但无法想到任何有效的例子。  当我说A = {A = {w | w is of even length and w ∈ {a, b, c}}(无上下文)和B = {ww | w ∈ {a,b,c}}时,我认为我得到了它,它不是无上下文的。但是,我意识到有一些字符串A可以产生B不能,因此,A不是B的子集。

有谁知道在我的情况下可能有效的任何例子?

1 个答案:

答案 0 :(得分:1)

任何有限的字符串集都是无上下文的语言。 (实际上,它是一种常规语言。)因此,无论语言是什么,语言的任何有限子集都是无上下文的。

另一个简单的例子是语言L = L 1 ∪L 2 其中L 1 的字母表是Σ 1 < / sub>和L 2 的字母表是Σ 2 和Σ 1 ∩Σ 2 =∅。现在,只有当L 1 和L 2 都没有上下文时,L才是无上下文的。 (如果字母不是不相交的话,情况并非如此。)因此,如果L 1 和L 2 中只有一个是无上下文的,那么它就是一个子集。非上下文语言L.

如果这些对您来说都不够有趣,那么语言{a *}(其中a是符号)是{ww |的一个子集。 w∈{a,b} *}。同一经典非上下文语言的另一个子集是{ww | w∈{a,b} *∧w= w R }(即所有重复的偶数长度的回文的语言),它是无上下文的,因为它与{ww <完全相同sup> R | w∈{a,b} *∧w= w R },作为第二个条件的结果。