Answers:
有(至少)一种方法可以证明语言L的语法是唯一的。它包括两个步骤:
第一步非常清楚:表明语法至少会生成您想要的单词,这就是正确性。
第二步显示,具有作为长度的话许多语法树Ñ为大号具有长度的话ñ -与1,这意味着不模糊。它使用G的结构函数,该函数可以追溯到Chomsky和Schützenberger[1],即
当,对于长度为n的单词,语法树G的数量。当然,您需要| L n | 为此工作。
的好处是,(通常)易于获得上下文无关语言,虽然发现对于一个封闭的形式吨Ñ可能是困难的。将G转换为方程组,每个非终端具有一个变量:
这可能看起来很艰巨,但实际上仅是语法上的转换,如示例中所示。这个想法是,生成的终端符号在的指数计数并且因为该系统具有相同的形式ģ,ž Ñ如经常发生在总和Ñ端子可以通过生成ģ。有关详细信息,请参见Kuich [2]。
求解该方程组(计算机代数!),得出 ; 现在,您“仅”必须拉出系数(以封闭的常规形式)。该TCS小抄和计算机代数往往可以这样做。
考虑带有规则的简单语法
。
很显然,(步骤1中,通过感应证明)。有2 n如果n是偶数,则 2个长度为n的回文,否则为0。
设置方程系统产量
谁的解决方案是
。
的系数与回文数一致,因此G毫无疑问。
这是一个很好的问题,但有些谷歌搜索人员会告诉您,没有通用的方法来确定歧义,因此您需要使问题更具体。