我在理解如何获得两种无上下文语言(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|λ
但是在这一点上,我不知道如何将两者相交并想出一种语言。我想知道是否有人可以告诉我如何。提前谢谢。
答案 0 :(得分:4)
从第一种语言开始,您需要相同数量的a
和b
s。从第二种语言开始,您需要相同数量的b
和c
s,并且从第一种语言开始,您需要相同数量的c
和d
s - 所以所有具有相同a
s,b
s,c
和d
s的字词。
基本上{a^i b^i c^i d^i | i is a natural number}
注意 - 结果是上下文无关语言?为什么? ;)