两种无上下文语言的交集

时间:2014-03-03 23:12:33

标签: context-free-language

我在理解如何获得两种无上下文语言(L =L1∩L2)的交集方面遇到了一些麻烦。我已经看到了一个非常常见的例子:

L1 = {a^i b^i c^j |  i,j ≥0}
L2 = {a^i b^j c^j |  i,j ≥0}
L1 ∩ L2 = {a^i b^i c^i  |  i ≥0}

但是这样的例子怎么样:

L1 = {a^i b^i c^j d^j |  i,j ≥0}
L2 = {a^j b^i c^i d^k |  i,j,k ≥0}
L1 ∩ L2 = ???

我知道我需要为两者提供无上下文的语法,我有:

G1: S->AB
    A->aAb|λ
    B->cBd|λ

G2: S->aS|AB
    A->bAc|λ
    B->dB|λ

但是在这一点上,我不知道如何将两者相交并想出一种语言。我想知道是否有人可以告诉我如何。提前谢谢。

1 个答案:

答案 0 :(得分:4)

从第一种语言开始,您需要相同数量的ab s。从第二种语言开始,您需要相同数量的bc s,并且从第一种语言开始,您需要相同数量的cd s - 所以所有具有相同a s,b s,cd s的字词。

基本上{a^i b^i c^i d^i | i is a natural number}

注意 - 结果是上下文无关语言?为什么? ;)