我无法理解并指出两个不同的无上下文语法在结构上等效(在非常基本的层面)。在确定两个CFG是否等同于时,我应该寻找哪些线索/提示?任何帮助将不胜感激。
答案 0 :(得分:1)
确定两个CFG是否相等是undecidable problem,所以一般没有好办法来断言两个CFG的相等性。
答案 1 :(得分:1)
你没有在结构上(在一个非常基础的层面上)说出你的等价意思。
众所周知的undecidability result关注所谓的弱等价:当且仅当它们生成相同的语言(=单词集)时,两个语法是等价的。
不可判定性意味着不存在解决此问题的每个实例的通用算法。个别实例可能仍然很容易解决(你可以想到例子)。
事实上,有一个很大的子类无上下文语言,弱等价是可判定的:确定性无上下文语言。不幸的是,在这种情况下存在算法并不意味着算法是有效的。
但是,如果通过结构等价来表示“仅重命名非终结符号”或“生成相同形状的解析树”,则可能是simpler problem。