CYK算法

✍ dations ◷ 2025-11-23 21:05:51 #算法,形式语言,分析算法

CYK算法(英语:Cocke–Younger–Kasami algorithm,缩写为CYK algorithm)是由约翰·科克,Younger和嵩忠雄(日语:嵩忠雄)共同研究出来大约发表于1965年的一个算法,它是一个用来判定任意给定的字符串   w Σ {\displaystyle ~w\in \Sigma ^{*}} i:= 1 n V i , i := { X V   |   X σ i   i n   P } {\displaystyle V_{i,i}:=\{X\in V~|~X\rightarrow \sigma _{i}~in~P\}} l:= 1 n-1 i:= 1 n-l   V i , i + l := {\displaystyle ~V_{i,i+l}:=\varnothing } k:= i i+l-1   V i , i + l := V i , i + l { X   |   X Y Z , Y V i , k , Z V k + 1 , i + l } {\displaystyle ~V_{i,i+l}:=V_{i,i+l}\cup \{X~|~X\rightarrow YZ,Y\in V_{i,k},Z\in V_{k+1,i+l}\}} S V 1 , n {\displaystyle S\in V_{1,n}} accept reject

扩展CYK算法

简介

对于上述CYK算法作一个小改动,也就是说记住每次的k,就可以自动产生一个由该上下文无关语言的推导树。

 i:= 1  n                                V                      i            ,            i                          :=        {        X                V                           |                         X                          σ                      i                                   i        n                 P        }              {\displaystyle V_{i,i}:=\{X\in V~|~X\rightarrow \sigma _{i}~in~P\}}   l:= 1  n-1     i:= 1  n-l                                                V                      i            ,            i            +            l                          :=                      {\displaystyle ~V_{i,i+l}:=\varnothing }   k:= i  i+l-1                                                    V                      i            ,            i            +            l                          :=                  V                      i            ,            i            +            l                                  {        (        X        ,        k        )                           |                         X                Y        Z        ,        Y                          V                      i            ,            k                          ,        Z                          V                      k            +            1            ,            i            +            l                          }              {\displaystyle ~V_{i,i+l}:=V_{i,i+l}\cup \{(X,k)~|~X\rightarrow YZ,Y\in V_{i,k},Z\in V_{k+1,i+l}\}}                               k        :        (        S        ,        k        )                          V                      1            ,            n                                {\displaystyle \exists k:(S,k)\in V_{1,n}}   accept  reject

通过对下面的方法递归运行就可以生成推导树。

Tree(X,i,j):    i=j  RETURN                                        σ                      i                                {\displaystyle ~\sigma _{i}}     选择一个 k 使                     (        X        ,        k        )                          V                      i            ,            j                                {\displaystyle (X,k)\in V_{i,j}}      选择 Y 和 Z 使                     X                Y        Z        ,        Y                          V                      i            ,            k                          ,        Z                          V                      k            +            1            ,            j                                {\displaystyle X\rightarrow YZ,Y\in V_{i,k},Z\in V_{k+1,j}}      RETURN Tree(X,Tree(Y,i,k),Tree(Z,k+1,j))

例子

给定一个乔姆斯基范式的上下文无关文法   G = ( { S , A , B , C } , { a , b } , S , P ) {\displaystyle ~G=(\lbrace S,A,B,C\rbrace ,\lbrace a,b\rbrace ,S,P)} ,其中规则 P 如下:

问:字符串 bbabaa 能不能通过该文法产生?

CYK算法可以通过一个表格来运算,表中 i 列 j 行表示由哪几个非终结符可以产生字字符串 σ i σ j {\displaystyle \sigma _{i}\dots \sigma _{j}}

如果在表格的最左下角一格中有文法的开始非终结符 S ,那么字符串 bbabaa 就能由上面给出文法 G 产生。

相关

  • 谬论谬误与谬论是不恰当的推理,一般而言谬误指不当的推理思路,而谬论指不当的推理言论,可能是说者有不当思路,或说者无不当思路,但意图使听者产生不当思路或其言论明显容易误导听者产
  • 圣马太大学坐标:19°20′23″N 81°22′44″W / 19.33972°N 81.37889°W / 19.33972; -81.37889圣马太大学(英语:St. Matthew's University,缩写为SMU)是一所位于开曼群岛大开曼的盈利性大
  • 大角大角国家森林(英语:Bighorn National Forest),也作大角羊国家森林、比格霍恩国家森林,位于美国怀俄明州北部,幅员辽阔,面积超过4,500平方千米(1.1 × 106英亩)。它于1897年作为美国
  • 第二次摩洛哥危机德法签订非斯条约:法国割让法属赤道非洲一部予德国 摩洛哥成为法国保护国第二次摩洛哥危机又称为阿加迪尔危机,在1911年发生,是一宗国际危机。该年的7月1日,德意志帝国派出黑
  • 黑猫黑猫在猫的颜色里是指黑色的猫,它也可以是下列意思:
  • 丽娅·萨隆加丽娅·萨隆加(英语:Lea Salonga,1971年2月22日-),菲律宾歌手、演员,以演出《西贡小姐》音乐剧闻名,曾获奥立弗奖、东尼奖、剧评人奖、圈外剧评人奖、世界戏剧奖等大奖肯定,是首位以单
  • 林冠在生物学中,林冠是指植物群落或农作物里的离地部分,特别是树林中各棵树的树冠。包括树冠所有的叶片、枝条、小枝及附生植物。有时该术语林冠是用来指个别树或一组的树木的叶子
  • 莫里斯·吉布莫里斯·欧内斯特·吉布,CBE(英语:Maurice Ernest Gibb ,1949年12月22日-2003年1月12日),英国歌手、词曲作者、多乐器演奏家及唱片监制,出生于英国皇家属地曼岛的首府道格拉斯,双亲都
  • 代沃吕山脉坐标:44°46′31″N 05°50′22″E / 44.77528°N 5.83944°E / 44.77528; 5.83944代沃吕山脉(法语:Massif du Dévoluy),是法国的山脉,位于该国东南部,由上阿尔卑斯省负责管辖,属于
  • 洛伦兹力测速仪洛伦兹力测速仪(简称 LFV)的是一种非接触式流量测量技术,尤其适用于液态金属,如冶金工业中钢液、铝液等。洛仑兹力测速系统被称为洛伦兹力流量计。洛伦兹力测速仪的基本原理如右