Professional Documents
Culture Documents
Algoritmo CKY
Noe Salomon Hernandez Sanchez
1.
Algoritmo CKY
Este algoritmo recibe como entrada una gramatica G y una cadena x = x1 . . . xn , determina
entonces si la cadena forma parte del lenguaje generado por la gramatica.
Considerense los siguientes separadores de x:
| x 1 | x2 | . . . | xn |
0
n1
As es posible denotar subcadenas como xi,j = xi+1 . . . xj , con 0 i < j n. Por ejemplo: x =
abbab, entonces:
| a| b| b| a| b|
0 1 2 3 4 5
.
n1
n
T0,n
Al termino del algoritmo, se analiza el conjunto en la celda T0,n . Si el smbolo inicial S esta en
ese conjunto, entonces x L(G).
Algorithm 1.1: CKY, este es un ejemplo de programacion dinamica.
1 for i := 0, ..., n 1 do
/* primero cadenas de longitud 1 */
2
Ti,i+1 :=
/* inicializa a */
3
for A a produccion de G do
4
if a = xi,i+1 then
5
Ti,i+1 := Ti,i+1 {A}
6
7
8
9
10
11
12
for m := 2, ..., n do
/* por cada longitud m 2
for i := 0, . . . , n m do
/* por cada subcadena de longitud m
Ti,i+m :=
/* inicializa a
for j := i + 1, . . . , i + m 1 do
/* para toda forma de romper la cadena
for A BC produccion de G do
if B Ti,j C Tj,i+m then
Ti,i+m := Ti,i+m {A}
*/
*/
*/
*/