CYK Algorithm
CYK Algorithm
Syed Nauman
Subhan Khan
Dainn Khan
THE CYK ALGORITHM
• The membership problem:
• Problem:
• Given a context-free grammar G and a string w
• G = (V, ∑ ,P , S) where
• V finite set of variables
• ∑ (the alphabet) finite set of terminal symbols
• P finite set of rules
• S start symbol (distinguished element of V)
• V and ∑ are assumed to be disjoint
• G is used to generate the string of a language
• Question:
• Is w in L(G)?
THE CYK ALGORITHM
• J. Cocke
• D. Younger,
• T. Kasami
A wi is a production of G
Looking
w1
for pairs
w2
to compare
w3 w4 w5
EXAMPLE CYK ALGORITHM
{S, A}
{B} {A, C} {A, C} {B} {A, C}
b a a b a
CONSTRUCTING THE
TRIANGULAR TABLE
• X2 , 3 = (Xi , i ,Xi+1 , j) = (X2 , 2 , X3 , 3)
{S, A} {B}
{B} {A, C} {A, C} {B} {A, C}
b a a b a
CONSTRUCTING THE
TRIANGULAR TABLE
• X3 , 4 = (Xi , i ,Xi+1 , j) = (X3 , 3 , X4 , 4)
Ø
{S, A} {B} {S, C} {S, A}
{B} {A, C} {A, C} {B} {A, C}
b a a b a
CONSTRUCTING THE
TRIANGULAR TABLE
• X2 , 4 = (Xi , i ,Xi+1 , j) (Xi , i+1 ,Xi+2 , j)
= (X2 , 2 , X3 , 4) , (X2 , 3 , X4 , 4)
Ø {B}
{S, A} {B} {S, C} {S, A}
{B} {A, C} {A, C} {B} {A, C}
b a a b a
CONSTRUCTING THE
TRIANGULAR TABLE
• X3 , 5 = (Xi , i ,Xi+1 , j) (Xi , i+1 ,Xi+2 , j)
= (X3 , 3 , X4 , 5) , (X3 , 4 , X5 , 5)
• {A,C}{S,A} U {S,C}{A,C}
= {AS, AA, CS, CA, SA, SC, CA, CC} = Y
• Steps:
• Look for production rules to generate Y
• There is one: B
S AB | BC
• X3 , 5 = {B} A BA | a
B CC | b
C AB | a
CONSTRUCTING THE
TRIANGULAR TABLE
Ø {B} {B}
{S, A} {B} {S, C} {S, A}
{B} {A, C} {A, C} {B} {A, C}
b a a b a
FINAL TRIANGULAR TABLE
{S, A,
X1, 5
C}
{S, A,
Ø
C}
Ø {B} {B}
{S, A} {B} {S, C} {S, A}
{B} {A, C} {A, C} {B} {A, C}
b a a b a
• Is baaba in L(G)?
Yes