CYK算法

✍ dations ◷ 2025-04-26 12:08:36 #算法,形式语言,分析算法

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

相关

  • New York, New YorkNew York, New York(纽约,纽约)可以指:
  • 实收资本额实收资本(英语:Paid in capital、Contributed capital),即所谓的发行资本(又称已发行资本),指的是股东实际将现金或实物投入公司的资本额。实收资本 = A + B A = 股份资本(股本 = 普
  • 鹦鹉螺鹦鹉螺科(学名:Nautilidae)为头足纲鹦鹉螺目的一科,海洋软体动物,仅存于印度洋和太平洋海区,北至日本南方,南至大堡礁,西至安达曼海,东至斐济等地区均有发现。位于鹦鹉螺主要产地的法
  • Bostrichiformia长蠹虫下目(学名:Bostrichiformia)是鞘翅目多食亚目之下的一个下目。按《美国甲虫》(2002)年一书的分类,本下目有两个总科:
  • 305医院中国人民解放军军徽中国人民解放军第三〇五医院,位于北京市西城区文津街甲13号,是中央军委联合参谋部直属单位,三级甲等医院。中国人民解放军第三〇五医院成立于1969年。地址位
  • 国际船舶与港口设施保全章程国际船舶与港口设施章程(英文:International Ship and Port Facility Security Code;缩写:ISPS)是1978年海上人命安全国际公约针对船舶、港口及港口国政府对于保全的一项修正案,于
  • 詹姆斯·梅 (1998–2002) (1999) (2003–2015) (2006–2007) (2009) (2005) (2009, 2011–2014) (2007) (2008) (2010–2013) (2016–) 前雇主:詹姆斯·梅(英语:James May,1963
  • 丁哲丁哲,浙江嵊县人,明朝政治人物。成化二十年(1484年)甲辰科进士,历任刑部郎中、苏州府同知。
  • 王崇 (嘉靖乙未进士)王崇(?-?),字子谦,直隶任丘县(今河北省任丘市)人,保定后卫前所官籍,明朝政治人物。嘉靖十年(1531年)辛卯科顺天府乡试第十九名举人。嘉靖十四年(1535年)中式乙未科进士。历官刑部郎中。嘉靖
  • 愧菴琴谱愧菴琴谱中国古琴谱。清顺治十七年吴士亮撰辑。琴谱分上下两卷,原装两册,卷首有顺治十七年胡尧佐序,丁巳谷雨方兆会序,次为曲目,五音图,琴论琴赋等。再次为琴谱,总计共收二十二曲。