无上下文语法介绍更多条件

时间:2013-10-14 23:55:05

标签: math context-free-grammar

我需要为语言A = {a ^ i b ^ j c ^ k |编写cfg i,j,k> 0 j!= k}

我的第一个想法是创建一个没有j!= k限制的简单语法

S -> A B C
A -> aA | a
B -> bB | b
C -> cC | c

这显然不适用于限制,我如何引入j!= k来创建新的CFG?

1 个答案:

答案 0 :(得分:0)

您需要将其拆分为两种情况,具体取决于j> k或k> j。

S -> A X | A Y
A -> aA | a
X -> bX | bZ  # every X -> bX gives you an extra b
Y -> Yc | Zc  # every Y -> Yc gives you an extra c
Z -> bZc | bc  # Z produces b^j c^j strings