CYK算法

✍ dations ◷ 2025-12-09 20:10:50 #算法,形式语言,分析算法

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

相关

  • 丁烷丁烷,又称正丁烷,是一种有机化合物,分子式为C4H10,结构式为CH3CH2CH2CH3。丁烷在常温常压下是一种无色、易液化、易燃的气体。它最早由英国化学家爱德华·弗兰克兰德(英语:Edward
  • 中国大百科全书《中国大百科全书》由中国大百科全书出版社出版,是中华人民共和国第一部大型综合性百科全书,也是世界上较大规模的百科全书之一。全书编辑过程历时15年(1978年-1993年9月18日),共
  • 汉字日语书写系统汉字假名使用罗马字陶文 ‧ 甲骨文 ‧ 金文 ‧ 古文 ‧ 石鼓文籀文 ‧ 鸟虫书 ‧ 篆书(大篆 ‧  小篆)隶书 ‧ 楷书 ‧ 行书 ‧ 草书漆书 
  • 硬膜下血肿头部受伤是指头部的创伤。这可能包含或不包含对大脑的伤害。不过,术语创伤性脑损伤与头部受伤在医学文献中通常是可以互换使用的。头部受伤的发生率(新发病例数)是每年每10万个
  • 效果律效果律(英语:law of effect),1905年美国心理学家爱德华·桑代克以(尚未发展完全的)行为制约背后的一个概念为基底所提出的理论。而那个行为制约背后的概念,是“在一个特定的情境
  • 安平卢经堂厝坐标:23°00′01″N 120°09′37″E / 23.0002941°N 120.1601440°E / 23.0002941; 120.1601440安平卢经堂厝,即是王城西卢宅。为清末、日治初、中期安平富商卢经堂之宅,2006
  • XXV宪法正文I ∙ II ∙ III ∙ IV ∙ V ∙ VI ∙ VII其它修正案 XI ∙ XII ∙ XIII ∙ XIV ∙ XV XVI ∙ XVII ∙ XVIII ∙ XIX ∙ XX XXI ∙ XXII ∙ XXIII ∙
  • 英属婆罗州英属婆罗州(或称北婆三邦、北加里曼丹)指的是婆罗洲(加里曼丹岛)北部的三个前英国殖民地,包括现今马来西亚的砂拉越、沙巴以及独立王国文莱。南临印尼加里曼丹。实际上英属婆罗州
  • 威廉·阿瑟顿威廉·阿瑟顿(William Atherton,1947年7月30日-)是美国的一位演员。阿瑟顿出生在康涅狄格州奥兰治,曾就读于卡内基梅隆大学。
  • 魔王奶爸《魔王奶爸》(日语:べるぜバブ)是日本漫画家田村隆平的日本漫画作品。日本于集英社的周刊少年JUMP连载,台湾由东立出版社的宝岛少年连载。在集英社《周刊少年JUMP》的第4回金未