为单词列表生成CFG

时间:2019-01-05 17:11:24

标签: context-free-grammar

是否可以编写一种算法,生成使用最大m规则来分析单词列表的CFG,或者如果不可能分析所有单词,则可以分析最大单词? 您对我应该如何启动算法有任何想法? 所有输入的单词都将使用[a-z]字母。

1 个答案:

答案 0 :(得分:1)

绝对有可能编写这样的算法。无需详细说明,您可以枚举具有所需字母上m个或更少规则的所有可能的CFG(唯一的重命名非终结符),并检查每个规则以查看其是否接受您的字符串。如果按规则数量的顺序执行此操作,则将停止运行的第一个最小CFG(如果有)。要查看CFG是否有效,您可以自己滚动或从CFG派生PDA,然后在所有输入上运行PDA以查看其是否接受它们。有一些应该可以使用的从CFG生成PDA解析器的算法。

这个过程不是特别有效,但是它是有效的,足以证明它是可能的。