CYK算法

✍ dations ◷ 2025-04-02 10:13:34 #算法,形式语言,分析算法

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

相关

  • 阿瑟·康普顿阿瑟·霍利·康普顿(英语:Arthur Holly Compton,1892年9月10日-1962年3月15日),美国物理学家,因发现展示电磁辐射粒子性的康普顿效应而于1927年获得诺贝尔物理学奖。那时的人们尽管
  • 剥皮寮剥皮寮历史街区(今康定路173巷)位于台湾台北市万华区,北临老松国小,东至昆明街,南面广州街,西接康定路,为台北市今日硕果仅存的清代街道之一,台北市政府于2010年3月29日公告登录为历
  • 加利福尼亚大学出版社加州大学出版社(英语:University of California Press,UC Press),是属于美国加州大学的学术出版社。它成立于1893年,为1868年成立的加州大学的教授出版著作和论文。其总部位于加州
  • 天皇日本天皇列表历代天皇列表列举出自第1代神武天皇至第126代今上天皇(德仁)期间的126代天皇名单,其中第35代皇极天皇与第37代齐明天皇是同一人、第46代孝谦天皇和第48代称德天皇
  • 小白额雁小白额雁(学名:),又名弱雁,为鸭科雁属下的一个种。小白额雁常结群活动,可见于湖泊、沼泽、鱼塘、虾池以及河流平缓水面开阔处,栖息于近水的草地农田等处。小白额雁繁殖于欧洲、西伯
  • 兰登书屋兰登书屋(英语:Random House)是德国媒体集团贝塔斯曼旗下的一家出版社,总部设在美国纽约市。书屋于1927年成立,创始人是贝内特·瑟夫(Bennett Cerf)和唐纳德·克洛普弗(Donald Klopf
  • 艾芭·罗尔瓦雀艾芭·罗尔瓦雀(意大利语:Alba Rohrwacher,1979年2月17日-)是意大利女演员。艾芭·罗尔瓦雀出生于佛罗伦斯,父亲是德国人,母亲则是意大利人。2009年,她因演出《乔凡娜的父亲(意大利语
  • 宇称在量子力学中,宇称被描述成宇称变换中的量,以P (Parity) 表示。宇称变换(又称宇称倒装),是一个在一个三维坐标系中其中一维的翻转(变换),在三维空间之内,它也可以是一个在x , y , z
  • 暴沸暴沸是指液体在缺少杂质的条件下加热,会产生过热的液体。一旦过热液体接触到杂质,由于成核作用,会发生剧烈沸腾,严重情况下会损坏容器。因此液体加热之前必须加入沸石等多孔物质
  • 俄罗斯外贸银行俄罗斯外贸银行(俄语: ОАО Банк ВТБ,英语旧称Vneshtorgbank,日语旧称外国贸易银行),简称VTB或VTB Bank,是俄罗斯一家具领导性的全球性银行。VTB 旗下主要的子公司如下(20