“CNF 是 CYK 算法的输入形式,使“非终结符 $A$ 能否生成区间 $w[i:j]$”可由两段划分递推。上下文无关泵引理也利用二叉语法树高度与重复非终结符。”
形式陈述 ​
对 Chomsky 范式文法和长度
直觉
CYK 把“某个非终结符能否生成这一整段子串”拆成所有更短区间的组合。Chomsky 标准形把产生式统一为
例子与边界
对于输入 abba,表格先标出每个字符可由哪些变量产生,再逐层组合长度 2、3、4 的区间。若要恢复解析树,应记录产生式和切分点,而非只存布尔值。空串必须依据开始规则单独判断;未先转为 CNF 时,单位规则、长右部和
设文法含 ab。长度为
算法依赖标准形。直接拿含
推论与应用
CYK 是 动态规划 在形式语言中的典型实例,也是 CFG 成员资格的标准多项式算法,证明了固定 上下文无关文法 的成员问题可在多项式时间解决。它以 Chomsky 标准形 为接口,可扩展为计数解析、概率文法的 Viterbi/inside 算法、求最高概率解析、构造共享解析森林,以及基于半环的通用解析框架。
参考资料
- John E. Hopcroft, Rajeev Motwani, and Jeffrey D. Ullman, Introduction to Automata Theory, Languages, and Computation, 3rd ed., Pearson, 2006,Chs. 1–9。
- Michael Sipser, Introduction to the Theory of Computation, 3rd ed., Cengage, 2013,Chs. 0–10。