そのため、ウィキペディアや多くのパワーポイント/pdfでCYKアルゴリズムについて読んでいます。
ウィキペディアには、私が言おうとしていることを 100% 理解していない部分があります。分解してくれませんか?
let the input be a string S consisting of n characters: a1 ... an.
let the grammar contain r nonterminal symbols R1 ... Rr.
This grammar contains the subset Rs which is the set of start symbols.
let P[n,n,r] be an array of booleans. Initialize all elements of P to false.
for each i = 1 to n
for each unit production Rj -> ai
set P[i,1,j] = true
for each i = 2 to n -- Length of span
for each j = 1 to n-i+1 -- Start of span
for each k = 1 to i-1 -- Partition of span
for each production RA -> RB RC
if P[j,k,B] and P[j+k,i-k,C] then set P[j,i,A] = true
if any of P[1,n,x] is true (x is iterated over the set s, where s are all the indices for Rs) then S is member of language
else
S is not member of language
私を本当に混乱させる部分は、「P[1、n、x]のいずれかが真である場合(xはセットsに対して反復され、sはRsのすべてのインデックスです)、Sは言語のメンバーです。そうでない場合、Sはメンバーではありません言語の」
存在する n と x が true の場合、それはメンバーであると言っていますか? それとも、文字列の長さ n と x が true の場合、それはメンバーですか? または完全に異なる何か?
また、Xとは正確には何ですか?
編集:
みんなありがとう、私は間違いなくそれを行う方法を学びました。両方の回答を選択した回答として取得できれば幸いです。