CYK算法

✍ dations ◷ 2025-03-07 10:30:47 #算法,形式语言,分析算法

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

相关

  • 马来穿山甲马来穿山甲(学名:Manis javanica),又名爪哇穿山甲或爪哇鲮鲤,是东南亚的一种穿山甲,分布在泰国、印尼、菲律宾、越南、老挝、柬埔寨、马来西亚及新加坡的森林。它们大部分时间都是
  • 脑腱性黄瘤症脑腱性黄瘤症是一先天脂质代谢异常疾病,由于2q33-qter位置上CYP27A1基因的缺损,导致细胞线粒体里的固醇27-羟化脢无法顺利作用,造成脂质中的胆甾烷醇及胆固醇无法有效地代谢而
  • 带一片风景走《带一片风景走》(英文:Leaving Gracefully)是一部由澎恰恰所执导的台湾电影。描述一位中年妇女秀美(侯怡君饰)因为得了小脑萎缩症,她的先生智辉(黄品源饰)决定推著轮椅带着秀美
  • 古丈期古丈期(Guzhangian)是寒武纪的第七个阶段,年代大约位于500.5–497百万年前。
  • 被立王被立王是一个在中国大陆境内活动的教派,由安徽省颍上县人吴扬明创立。1991年初,“被立王”吴扬明差遣其骨干“怜悯”和“换代”(教内称呼)从安徽到湖南发展势力。“怜悯”本名刘
  • 异维甲酸异维A酸(Isotretinoin),是维A酸的异构体,最初是一种治疗脑癌、胰脏癌和皮肤癌等多种癌病的药物,但现时常用作治疗青春痘,通常为口服用A酸,外用A酸则通常为维A酸成分,有时亦用作医治
  • 美国制片人工会美国制片人协会或称美国制片人工会( 英语:Producers Guild of America,简称:PGA)是美国贸易组织,专门负责电视节目制作,电影制作和新媒体生产。其联合主席是加里·卢凯西和洛里·麦
  • 亚洲流感亚洲流感是一种1957年在中华人民共和国贵州省爆发的流行性感冒,该病随后在同年传遍全世界(包括美国)。病毒疫情一直持续到1958年。亚洲流感是A型流感的H2N2病毒(H2N2的H与N是代
  • 傅睿思傅睿思(丹麦语:Else Marie Friis,1947年6月18日-),女,丹麦古植物学家,瑞典皇家科学院院士,丹麦皇家科学及文学院院士,挪威科学及文学院院士,中国科学院外籍院士。
  • 杨国正杨国正(1840年-1920年),缅甸名Hkun Lu Kwan,19世纪末果敢土司杨国华的六弟。杨国华临终前,其子年幼,遂将土司政权委托杨国正摄政。1875年杨国正在任时,果敢迫于清军的压力,与清军联手