0

我有一个使用抽水引理来证明语言是否是上下文无关的测试。我正在尝试解决一些练习问题,但事情并没有那么好......

练习题是:对于a)到j),证明下面的语言是否是上下文无关的。如果它是上下文无关的,请给出生成它的上下文无关文法。

前两个是:

a) {a^(2i+1) b^(3k+2) c^(4k+3) d^(5i+4) | i >= 0, k >= 0}

b) {a^i b^i c^k d^i | i >= 1, k >= 1}

如果有人可以解决前两个问题,并详细解释他们是如何做到的,我相信我可以自己解决剩下的问题(c 到 j)。

4

1 回答 1

0

a 是上下文无关的:

A -> aBdddd
B -> aaBddddd
B -> C
C -> bbbCcccc
C -> D
D -> bbccc

B 不是上下文无关的。让我们假设它是。因此,我们有一个整数 p,其泵引理成立。让我们看一下b中的以下单词:a^pb^pcd^p

根据抽水引理,这个词可以表示为序列uvwxy,使得|vwx| < p,且 uv^iwx^iy 也在 B 中。

让我们看一下vx:

情况 1:vx 包含“c”。如果是这种情况,那么 uwy 也应该在 B 中,但 B 要求我们至少有一个“c”。所以这种情况是不可能的。

情况 2:vx 不包含“c”。它必须最多包含“a”、“b”或“c”中的两个(否则|vwx| 将超过p)。因此,uv^2wx^2y 不会包含相等数量的 a、b 和 c,也不在 B 中。

因此,B 不是上下文无关语言。

于 2016-02-13T07:36:23.243 回答