CYK算法

✍ dations ◷ 2025-12-06 16:31:25 #算法,形式语言,分析算法

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

相关

  • 格拉斯考克县坐标:33°14′32″N 82°37′36″W / 33.2422994°N 82.6267345°W / 33.2422994; -82.6267345格拉斯卡克县(英语:Glascock County, Georgia)是美国乔治亚州东部的一个县。面积3
  • 台北市政府坐标:25°02′15″N 121°33′50″E / 25.037525°N 121.563782°E / 25.037525; 121.563782台北市政府(简称:北市府)是中华民国台北市的地方行政机关,在中华民国政府架构中为直
  • 无义介导的mRNA降解机制无义介导的mRNA降解(英语:Nonsense-mediated mRNA Decay,常简写为NMD机制或NMD)是一种存在于所有真核生物中的遗传纠错机制(英语:MRNA surveillance)。这一机制透过降解含有提前终
  • 科贾·达武德帕夏达武德帕夏(土耳其语:Koca Davud Paşa,-1498年10月20日),绰号“科贾” ,奥斯曼帝国阿尔巴尼亚族将领、官员,曾于苏丹巴耶济德二世在位期间的1482年至1497年出任奥斯曼帝国宰相“大
  • 曹云祥曹云祥(1881年-1937年2月8日),字延生,又字庆五,浙江嘉兴人,中国教育家、管理学家,曾任北京清华大学校长。曹云祥1900年毕业于上海圣约翰大学,1907年至1911年在美国耶鲁大学求学,1911年
  • 雅各·布克哈特雅各·布克哈特(德文:Jacob Christoph Burckhardt,1818年5月25日-1897年8月8日),生于瑞士巴塞尔,并在出生地终老,杰出的文化历史学家,他的研究重点在于欧洲艺术史与人文主义。在巴塞
  • 朱宁 (学者)朱宁(1973年9月-),中华人民共和国学者。毕业于美国耶鲁大学,获金融学博士。2003年7月至2010年6月,任美国加州大学助理教授,终身教授;2010年6月后,任上海交通大学上海高级金融学院终身
  • 特斯科科特斯科科(纳瓦特尔语:Texcoco,IPA:.mw-parser-output .IPA{font-family:"Charis SIL","Doulos SIL","Linux Libertine","Segoe UI","Lucida Sans Unicode","Code2000","Gentium"
  • 红军入侵格鲁吉亚红军格鲁吉亚陆军11,000名步兵 400装甲步兵 数百名People's Guard of Georgia(英语:People's Guard of Georgia) 46门火炮 数百架机关枪 56架战斗机,包含25架Ansaldo SVA-10s(英
  • 鞘柄木科鞘柄木属 鞘柄木科只有1属3种,分布在喜马拉雅山东部和中国西南部,中国有2种。本科植物为小乔木;单叶互生,一般5裂,叶柄长,无托叶;花单性,雌雄异株,排成大型的圆锥花序,花瓣5,雌花无花瓣