CYK算法

✍ dations ◷ 2025-09-13 23:31:04 #算法,形式语言,分析算法

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 产生。

相关

  • 犹他-阿兹特克语系犹他-阿兹特克语系(Uto-Aztecan languages)是一个美洲原住民语言的语系。犹他-阿兹特克语系主要分布在北美大盆地地区(Great Basin)的美国俄勒冈州、爱达荷州、犹他州、加州、内
  • 春天百货巴黎春天(Printemps),或译春天百货,是一间法国的连锁百货公司。海外发展的状况并不十分顺利,该连锁集团目前主要的获利还是以法国境内为主。春天百货最早是由朱尔·贾娄索于1865
  • 高晓松北京市石油部北郊子弟小学(西城区师范学校附属小学)高晓松(1969年11月14日-),祖籍浙江杭州,出生于松辽油田(今黑龙江省大庆市)。作曲、填词人、音乐制作人、导演、作家以及脱口秀主持
  • 蜚蠊科蜚蠊科(学名:Blattidae)蜚蠊目蜚蠊总科底下的一科,居家常见的大型蟑螂多属于此科。。根据生命目录,本科包括有物种652种,大致可以分为四个亚科、约40个属。以下为这些物种所属的属
  • 快门快门也叫光闸,(粤语区有按英文"Shutter"音译成“失打”一词)是照相机中控制曝光时间的重要部件,快门时间越短,曝光时间越少。依照快门在相机中的位置分类为:最初的快门只是一个镜
  • 爱国者-3型导弹MIM-104爱国者导弹(英语:MIM-104 Patriot)是美国雷神公司制造的中程地对空导弹系统。它取代胜利女神导弹与MIM-23鹰式导弹,成为美军中高空防空武器。爱国者导弹系统在海湾战争中
  • 围巾围巾是围在头部、颈部和肩部的布料,包裹头部的围巾又称为头巾,单独包裹肩部的又可称为披巾。通常于保暖,也可因美观、清洁或是宗教而穿戴。围巾可用羊绒,羊毛,真丝、晴纶、蚕丝等
  • 排序算法在计算机科学与数学中,一个排序算法(英语:Sorting algorithm)是一种能将一串数据依照特定排序方式进行排列的一种算法。最常用到的排序方式是数值顺序以及字典顺序。有效的排序
  • 不信者不信者,或异教徒(英语:Infidel,字面意“不信者”)为基督教或伊斯兰教对无宗教或异教人士的称呼。在一神教世界通常为骂人词汇。不过某些伊斯兰教学者认为伊斯兰教中引用“异教徒
  • 卡罗尔·里德卡罗尔·里德爵士(Carol Reed,1906年12月30日-1976年4月25日)是一位英国电影导演,奥斯卡最佳导演奖得主。1952年,英国政府授予他“爵士”封号。卡罗尔·里德在1906年12月30日于英