Professional Documents
Culture Documents
for
Context-free Grammars
Chomsky Normal Form (CNF)
A BC and Aa
2
Examples:
S AS S AS
S a S AAS
A SA A SA
Ab A aa
Chomsky Not Chomsky
Normal Form Normal Form
3
Conversion to Chomsky Normal Form
Example: S ABa
A aab
B Ac
Not Chomsky
Normal Form
4
Introduce variables for terminals: Ta , Tb , Tc
S ABTa
S ABa A TaTaTb
A aab B ATc
B Ac Ta a
Tb b
Tc c
5
Introduce intermediate variable: V1
S AV1
S ABTa
V1 BTa
A TaTaTb
A TaTaTb
B ATc
B ATc
Ta a
Ta a
Tb b
Tb b
Tc c
Tc c
6
Introduce intermediate variable:V2
S AV1
S AV1
V1 BTa
V1 BTa
A TaV2
A TaTaTb
V2 TaTb
B ATc
B ATc
Ta a
Ta a
Tb b
Tb b
Tc c
Tc c 7
Final grammar in Chomsky Normal Form:
S AV1
V1 BTa
A TaV2
Initial grammar
V2 TaTb
S ABa B ATc
A aab Ta a
B Ac Tb b
Tc c
8
In general:
we can obtain:
An equivalent grammar
in Chomsky Normal Form
9
The Procedure
First remove:
Nullable variables
Unit productions
10
For every symbol a:
Add production Ta a
New variable: Ta
11
Replace any production A C1C2 Cn
with A C1V1
V1 C2V2
Vn2 Cn1Cn
13
Observations
14
Greibach Normal Form (GNF)
A a V1V2 Vk k 0
symbol variables
15
Examples:
S cAB
S abSb
A aA | bB | b
S aa
Bb
16
Conversion to Greibach Normal Form:
S aTb STb
S abSb S aTa
S aa Ta a
Tb b
Greibach
Normal Form
17
Theorem:For any context-free grammar
there is an equivalent grammar
in Greibach Normal Form
18
Observations
19
An Application
of
Chomsky Normal Forms
20
The CYK Membership Algorithm
Input:
• String w
Output:
find if w L(G )
21
The Algorithm
Input example:
• Grammar G : S AB
A BB
Aa
B AB
Bb
• String w : aabbb
22
aabbb
a a b b b
aa ab bb bb
aabb abbb
aabbb
23
S AB a a b b b
A BB A A B B B
Aa aa ab bb bb
B AB
aab abb bbb
Bb
aabb abbb
aabbb
24
S AB
A BB
a a b b b
Aa A A B B B
B AB
aa ab bb bb
Bb S,B A A
aab abb bbb
aabb abbb
aabbb
25
a a b b b
S AB A A B B B
A BB
Aa
aa ab bb bb
B AB --- S,B A A
Bb aab abb bbb
S,B A S,B
aabb abbb
A S,B
aabbb
S,B
26
Therefore: aabbb L(G )
3
Time Complexity: | w|
27
Pushdown Automata
PDAs
Pushdown Automaton -- PDA
Input String
Stack
States
29
Initial Stack Symbol
Stack Stack
$ z
bottom
special symbol
30
The States
a, b c
q1 q2
31
a, b c
q1 q2
input
a a
stack
b top c
h Replace h
e e
$ $
32
a, c
q1 q2
input
a a
stack c
b top b
h Push h
e e
$ $
33
q1 a, b q2
input
a a
stack
b top
h Pop h
e e
$ $
34
q1 a , q2
input
a a
stack
b top b
h No Change h
e e
$ $
35
Non-Determinism
q2
a, b c
q1 q1 , b c q2
a, b c transition
q3
36
NPDA: Non-Deterministic PDA
Example:
a, a b,a
q0 , q1
b,a
q2
,$ $
q3
37
Execution Example: Time 0
Input
a a a b b b
$
Stack
current a, a b,a
state
, b,a ,$ $
q0 q1 q2 q3
38
Time 1
Input
a a a b b b
$
Stack
a, a b,a
q0 , q1 b,a q2
,$ $
q3
39
Time 2
Input
a a a b b b a
$
Stack
a, a b,a
, b,a ,$ $
q0 q1 q2 q3
40
Time 3
Input a
a a a b b b a
$
Stack
a, a b,a
q0 , q1 b, a q2
,$ $
q3
41
Time 4
a
Input
a
a a a b b b a
$
Stack
a , a b,a
q0 , q1 b, a q2 , $ $ q3
42
Time 5
a
Input
a
a a a b b b a
$
Stack
a, a b,a
q0 ,q1
b,a
q2 ,$ $
q3
43
Time 6
Input a
a a a b b b a
$
Stack
a , a b,a
a , a
b,a
a , a b,a
accept
, b,a ,$ $
q0 q1 q2 q3
46
A string is accepted if:
47
The input string aaabbb
is accepted by the NPDA:
a , a b,a
a , a b,a
NPDA M
R
L( M ) {ww }
a , a a , a
b , b b , b
, ,$ $
q0 q1 q2
50
Execution Example: Time 0
Input
a b b a
$
Stack
a , a a , a
b , b b , b
, ,$ $ q2
q0 q1
51
Time 1
Input
a b b a
a
$
Stack
a , a a , a
b , b b , b
, ,$ $
q0 q1 q2
52
Time 2
Input
b
a b b a
a
$
Stack
a , a a , a
b , b b , b
, ,$ $
q0 q1 q2
53
Time 3
Input
b
a b b a
a
$
Stack
a , a a , a
b , b b , b
, ,$ $
q0 q1 q2
54
Time 4
Input
b
a b b a
a
$
Stack
a , a a , a
b , b b , b
, ,$ $
q0 q1 q2
55
Time 5
Input
a b b a
a
$
a , a Stack
a , a
b , b b , b
, ,$ $ q2
q0 q1
56
Time 6
Input
a b b a
$
a , a a , a Stack
b , b b , b
accept
, ,$ $
q0 q1 q2
57