CYK算法

✍ dations ◷ 2024-12-23 00:24:56 #算法,形式语言,分析算法

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

相关

  • 三磷酸尿苷三磷酸尿苷(英语:uridine triphosphate, UTP)是一种嘧啶核苷酸,由碱基、尿嘧啶与核糖组成,另外还接有一个三磷酸于5'位置。UTP主要是作为RNA合成(转录)时的原料。UTP可用作能量来源
  • Blue ByteUbisoft Blue Byte(原名为Blue Byte Software),Ubisoft Blue Byte GmbH(在2017年之前为Blue Byte)是总部位于杜塞尔多夫的德国电玩游戏开发商。该公司由托马斯·赫兹勒(Thomas Her
  • 亡神星亡神星(小行星90482,奥迦斯)是柯伊伯带的天体,被发现时的临时编号为2004 DW,发现者是加州理工学院的迈克尔·布朗、双子星天文台的乍德·特鲁希略和耶鲁大学的大卫·拉比诺维茨。
  • 腰部腰部是动物腹部的一部分,在肋骨以下,臀部以上。一般来说,腰部是躯干中最幼的部分。腰后的凹陷处又称腰窝,是传说中的维纳斯之眼。
  • 左中一左中一(1958年7月-),山东莱西人,男性,汉族,中华人民共和国政治人物,现任中国文学艺术界联合会副主席、书记处书记、党组成员。中国共产党党员,第十三届全国人民代表大会湖北省代表。1
  • 筑紫哲也筑紫哲也(1935年6月23日-2008年11月7日),前TBS电视新闻主播,出生于大分县日田市,早稻田大学政治经济学部经济学科毕业,曾担任朝日新闻社记者、《朝日Journal》编辑长、早稻田大学大
  • 卡尔霍恩瀑布 (南卡罗来纳州)卡尔霍恩瀑布(英文:Calhoun Falls),是美国南卡罗来纳州下属的一座城市。城市类型是“Town”。其面积大约为3.46平方英里(8.96平方公里)。根据2010年美国人口普查,该市有人口2,004人
  • 伍宗源伍宗源,福建宁化县人,明朝政治人物、进士出身。永乐十三年,登进士,担任浙江布政司左参议。
  • 土地神屋土地神屋(泰语:ศาลพระภูมิ)指东南亚地区供奉土地保护神(英语:Genius loci)的地方,在泰国、老挝及柬埔寨都可以看到,相当于华人社区的土地庙。用木头或石灰制成小家或庙的
  • 星暹日报《星暹日报》(泰语:ซิงเสียนเยอะเป้า;英语:The Sing Sian Yer Pao Daily News)是一家位于泰国曼谷的中文报纸,创立于1950年6月23日,最初以传统繁体中文编印,2013年1