CYK算法

✍ dations ◷ 2025-11-20 20:06:07 #算法,形式语言,分析算法

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

相关

  • GND整合规范文档(德语:Gemeinsame Normdatei,英语:Integrated Authority File,简称GND)是一种国际性的规范控制,可用于组织个人姓名和主题栏目,整合图书馆目录。图书馆用这种方式进行文
  • 消化道消化道是连接口腔和肛门的管道,由许多负责处理食物的构造组成。消化腺能分泌消化液以消化食物。一个正常男性成人的消化道大约长6.5米,由上消化道和下消化道组成。人类的上消
  • 莎孚萨福(古希腊文:Σαπφώ;拉丁化:Sappho,约630BC-570BC),古希腊的女同性恋诗人,一生写过不少情诗、婚歌、颂神诗、铭辞等。著有诗集九卷,大部分已散轶,现仅存一首完篇、三首几近完篇
  • 气象天气是大气状态的一种表征,反映大气是冷还是热、是干还是湿、是平静还是狂暴、是晴朗还是多云等等。绝大多数天气现象发生在平流层之下的对流层。天气通常指每天的温度和降水
  • 故事故事是指过往发生的事,包含真实发生过历史,如史书,也包含了从未发生过的虚拟故事,例如电影或小说。有很多种媒介可以乘载故事,例如:文字、声音、及影像等。电影、电视剧、小说、
  • 李查汗礼萨沙阿·巴列维即礼萨汗(波斯语:رضا شاه پهلوی‎,1878年3月16日-1944年7月26日),伊朗沙阿(国王),巴列维王朝的缔造者。礼萨·巴列维1878年生于伊朗山区的一户贫苦人家
  • 澳门格兰披治大赛车组织委员会澳门格兰披治大赛车组织委员会(简称大赛车组委会,葡文:Comissão Organizadora do Grande Prémio de Macau)是澳门特别行政区政府社会文化司辖下的部门,主要负责每年一度在东望
  • 陈惠敏陈惠敏可以指:
  • 马山国家级自然保护区马山国家级自然保护区位于中国山东省青岛市即墨区境内,于1994年经国务院批准为国家级自然保护区,2002年山东省人民政府批准为山东省级地质公园。总面积7.7425平方公里。马山的
  • 布列塔尼大区布列塔尼大区(布列塔尼语:Breizh;法语:Bretagne,发音:)是位于法国西北部的布列塔尼半岛、英吉利海峡和比斯开湾之间的一个大区,首府是雷恩。布列塔尼人来源颇为复杂。有一部分人是原