CYK算法

✍ dations ◷ 2025-11-09 16:24:49 #算法,形式语言,分析算法

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

相关

  • 超大陆旋回超大陆旋回(Supercontinent cycle)描述的是地球的大陆地壳准周期性的聚合和分离。对于地球的大陆地壳的总量是增加、减少还是维持不变,有种种不同的观点,但是有一点是各家都认
  • 姐妹染色单体姐妹染色单体(英语:Sister chromatids,或称姊妹染色单体)是指被同一个着丝粒相连接的两个完全相同的染色体拷贝之一。在DNA复制结束后,每对染色体包含一对相同的备份,被称为姊妹染
  • 跨海通道跨海大桥为跨越海峡或连接岛屿的桥梁,属于跨海交通(英语:Cross-sea traffic ways)的一种形式。桥梁随者长度的不同工法也有不同,越长的桥梁,工程技术越复杂,越需要配合良好管理技术
  • 澳门特别行政区司法机关澳门特别行政区司法机关由两部分组成:法院和检察院。各级法院的法官是根据由法官、律师和其他知名人士组成的独立委员会推选,再由澳门行政长官任命。选用法官以其专业资格为标
  • 西魏西魏(535年-557年)是中国魏晋南北朝时期中的北朝的一个地方政权,是由鲜卑人宇文泰拥立北魏孝文帝元宏的孙子元宝炬为帝,与高欢所掌控的东魏对立,建都长安。至557年被北周取代,总止
  • 心理测量者剧场版剧场版 心理测量者(日语:劇場版 PSYCHO-PASS サイコパス)为2015年1月9日在日本超过一百家电影院上映的科幻犯罪动画,由Production I.G公司负责制作动画。电影由本广克行担任总导
  • 藏品《藏品》(英语:)是于2012年上映的恐怖惊悚美国电影,为藏品前传的续集电影
  • 德扬·戈维达里察德扬·戈维达里察 (塞尔维亚语西里尔字母:Дејан Говедарица 1969年10月2日——) 前塞尔维亚足球运动员。他在FK Proleter兹雷尼亚宁 (1989-1992年)效力了三个
  • 托多尔·阿勒克斯耶夫托多尔·阿勒克斯耶夫(保加利亚语:Тодор Алексиев;1983年4月21日-)是一位保加利亚排球运动员。他代表保加利亚国家男子排球队参赛,参加了2008年奥运会和2012年奥运会
  • 帕维尔·戴维帕维尔·戴维(捷克语:Pavol Dávid,1899年3月19日-1970年12月5日),捷克斯洛伐克共产党中央政治局委员、中央书记处书记,捷克斯洛伐克共产党斯大林派的支持者。1899年,出生。1952年,为