Изменения

Перейти к: навигация, поиск
Псевдокод
== Псевдокод ==
<code>
'''CYK_Modified'''(S, Г): <font color = darkgreen>// S - строка длины n, Г - КС-грамматика </font color = darkgreen> '''for ''' i = 1..n '''for ''' Rj -> alpha <font color = darkgreen>// перебор состояний</font color = darkgreen> '''if'''( A -> w[i] in Г) a[A, i, i+1] = true <font color = darkgreen>// если в грамматике Г присутствует правило A -> w[i]</font color = darkgreen> '''else ''' a[A, i, i+1] = false '''if'''( A -> eps in Г) a[A, i, i] = true <font color = darkgreen>// если в грамматике Г присутствует правило A -> eps</font color = darkgreen> '''else ''' a[A, i, i] = false
h[A->alpha, i, i, 0] = true
'''for ''' i = 1..n '''for ''' j = 1..n '''for ''' k = 1..M '''for ''' Rj -> alpha <font color = darkgreen>// перебор состояний</font color = darkgreen> h[A->alpha, i, j+1, k] = OR( for r = i..j+1) (h[A->alpha, i, r, k-1] & a[alpha[k],r,j+1] ) '''for ''' i = 1..n '''for ''' j = 1..n '''for ''' Rj -> alpha a[A,i,j]=OR(for A->alpha) h[A->alpha, i, j, |alpha|] '''return ''' a[S, 1, n]
</code>
Анонимный участник

Навигация