0% found this document useful (0 votes)
303 views

The CYK Algorithm

The CYK algorithm is used to solve the membership problem for context-free grammars. It works by constructing a triangular table based on the length of the input string, and recursively filling in the table by comparing pairs of variable sets from previous rows. The example shows applying the CYK algorithm to determine if the string "baaba" is in the language generated by a sample grammar. The algorithm runs in O(n3) time, where n is the length of the input string.

Uploaded by

gkgj
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
303 views

The CYK Algorithm

The CYK algorithm is used to solve the membership problem for context-free grammars. It works by constructing a triangular table based on the length of the input string, and recursively filling in the table by comparing pairs of variable sets from previous rows. The example shows applying the CYK algorithm to determine if the string "baaba" is in the language generated by a sample grammar. The algorithm runs in O(n3) time, where n is the length of the input string.

Uploaded by

gkgj
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 9

The CYK Algorithm

CYK algorithm is Developed by J. Cocke D. Younger, T. Kasami


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)?
Basics
The Structure of the rules in a Chomsky Normal Form grammar
Uses a dynamic programming or table-filling algorithm
Normal Form is described by a set of conditions that each rule in the
grammar must satisfy
Context-free grammar is in CNF if each rule has one of the following forms:
A BC at most 2 symbols on right side
A a, or terminal symbol
S null string
where B, C V {S}
Construct triangular Table
Each row corresponds to one length of substrings
Bottom Row Strings of length 1
Second from Bottom Row Strings of length 2
.
Top Row string w
Xi, i is the set of variables A such that
A wi is a production of G
Compare at most n pairs of previously computed sets:
(Xi, i , Xi+1, j ), (Xi, i+1 , Xi+2, j ) (Xi, j-1 , Xj, j )
X1, 5
X1, 4 X2, 5
X1, 3 X2, 4 X3, 5
X1, 2 X2, 3 X3, 4 X4, 5
X1, 1 X2, 2 X3, 3 X4, 4 X5, 5

w1 w2 w3 w4 w5

Table for string w that has length 5


Looking for pairs to compare

Example CYK Algorithm


Show the CYK Algorithm with the following example:
CNF grammar G
S AB | BC
A BA | a
B CC | b
C AB | a
w is baaba
Question Is baaba in L(G)?
Constructing the Triangular Table

Calculating the Bottom ROW


Final Triangular Table
Result
Is baaba in L(G)? Yes

We can see the S in the set X1n where n = 5

We can see the table

the cell X15 = (S, A, C) then if S X15 then baaba L(G)

Theorem:
The CYK Algorithm correctly computes X i j for all i and j; thus w is in L(G) if
and only if S is in X1n.
The running time of the algorithm is O(n 3).
Question
Show the CYK Algorithm with the following example:
CNF grammar G
S AB | BC
A BA | a
B CC | b
C AB | a
w is ababa
Question Is ababa in L(G)?
Basics of CYK Algorithm
The Structure of the rules in a Chomsky Normal Form grammar
Uses a dynamic programming or table-filling algorithm
Complexity O(n3)

You might also like