Class10 Normal Forms
Class10 Normal Forms
Normal Forms
for
Context-free Grammars
A BC
variable
Aa
and
variable
terminal
Examples:
S AS
S AS
S a
A SA
S AAS
A SA
Ab
A aa
Chomsky
Normal Form
S ABa
A aab
B Ac
Example:
Not Chomsky
Normal Form
Not Chomsky
Normal Form
3
Ta , Tb , Tc
S ABTa
S ABTa
S ABa
A aab
B Ac
A TaTaTb
A TaTaTb
B ATc
B ATc
Ta a
Ta a
Tb b
Tb b
Tc c
Tc c
5
V1
S AV1
V1 BTa
A TaTaTb
B ATc
Ta a
Tb b
Tc c
6
1
PDF created with pdfFactory Pro trial version www.pdffactory.com
V2
S AV1
S AV1
S AV1
V1 BTa
V1 BTa
V1 BTa
A TaV2
A TaTaTb
V2 TaTb
B ATc
Ta a
Tb b
Tb b
Tc c
Tc c
V2 TaTb
S ABa
A aab
B Ac
B ATc
Ta a
A TaV2
Initial grammar
B ATc
Ta a
Tb b
Tc c
The Procedure
In general:
From any context-free grammar
not in Chomsky Normal Form
First remove:
Nullable variables
we can obtain:
An equivalent grammar
in Chomsky Normal Form
Unit productions
10
a:
with
Ta a
Add production
A C1C2 Cn
A C1V1
V1 C2V2
In productions: replace
New variable:
with
Vn 2 Cn 1Cn
Ta
Ta
11
V1 , V2 , ,Vn 2
12
2
PDF created with pdfFactory Pro trial version www.pdffactory.com
Observations
Theorem:
Examples:
S cAB
A aA | bB | b
Bb
A a V1V2 Vk
symbol
14
k0
Greinbach
Normal Form
variables
S abSb
S aa
Not Greinbach
Normal Form
15
S abSb
S aa
16
Theorem:
S aTb STb
S aTa
Ta a
Tb b
Greinbach
Normal Form
17
18
3
PDF created with pdfFactory Pro trial version www.pdffactory.com
Observations
Greinbach normal forms are very good
for parsing
An Application
of
Chomsky Normal Forms
20
The Algorithm
Input example:
Input:
Grammar
String
Grammar
G : S AB
A BB
Aa
B AB
Bb
Output:
find if
w L(G )
String
w : aabbb
21
S AB
A BB
aabbb
a
aa
ab
bb
bb
aab
abb
b bb
aabb
abbb
22
A a
B AB
Bb
aabb b
23
a
A
a
A
b
B
b
B
aa
ab
bb
bb
aab
abb
bbb
aabb
abbb
aabbb
b
B
24
4
PDF created with pdfFactory Pro trial version www.pdffactory.com
S AB
A BB
S AB
A a
B AB
Bb
a
A
a
A
b
B
b
B
aa
aab
ab
S,B
abb
bb
A
bbb
bb
A
aabb
abbb
b
B
aabbb
Therefore:
Aa
B AB
B b
a
A
a
A
b
B
b
B
aa
bb
A
bbb
S,B
bb
A
aab
S,B
ab
S,B
abb
A
aabb
A
abbb
S,B
aabbb
S,B
25
b
B
26
aabbb L (G )
Time Complexity:
Observation:
A BB
Pushdown Automata
PDAs
| w |3
28
Input String
Stack
Stack
Stack
States
bottom
special symbol
29
30
5
PDF created with pdfFactory Pro trial version www.pdffactory.com
The States
q1
Pop
symbol
Input
symbol
Push
symbol
a, b c
a, c
stack
q2
top
b
h
e
$
31
q1
q2
input
q1
a, b c
q2
q1
input
c
h
e
$
Replace
a, b
32
q2
input
stack
top
b
h
e
$
a,
b
h
e
$
33
top
No Change
top
Pop
h
e
$
34
b
h
e
$
q2
q1
stack
b
h
e
$
Non-Determinism
a, b c
q2
input
stack
c
b
h
e
$
Push
q1
q1
a, b c
35
q3
, b c
q2
transition
36
6
PDF created with pdfFactory Pro trial version www.pdffactory.com
Input
Example:
b b
$
Stack
a, a
b, a
a, a
current
state
b, a
q0 , q1 b, a q2 , $ $ q3
q0 , q1 b, a q2 , $ $ q3
37
38
Time 1
Time 2
Input
Input
b b
a
$
$
Stack
a, a
Stack
b, a
a, a
b, a
q0 , q1 b, a q2 , $ $ q3
q0 , q1 b, a q2 , $ $ q3
39
40
Time 3
Input
Time 4
Input
a
a
$
b b
Stack
a, a
a
a
a
$
Stack
b, a
a, a
b, a
q0 , q1 b, a q2 , $ $ q3
q0 , q1 b, a q2 , $ $ q3
41
42
7
PDF created with pdfFactory Pro trial version www.pdffactory.com
Time 5
Input
Time 6
a
a
a
$
Input
a
a
$
Stack
Stack
a, a
b, a
a, a
b, a
q0 , q1 b, a q2 , $ $ q3
q0 , q1 b, a q2 , $ $ q3
43
44
Time 7
Time 8
Input
Input
a
$
b
$
Stack
a, a
Stack
b, a
a, a
b, a
accept
q0 , q1 b, a q2 , $ $ q3
q0 , q1 b, a q2 , $ $ q3
45
46
a, a
At the end of the computation,
we do not care about the stack contents
b, a
q0 , q1 b, a q2 , $ $ q3
47
48
8
PDF created with pdfFactory Pro trial version www.pdffactory.com
In general,
L = {a nb n : n 0}
NPDA
a, a
L ( M ) = {ww R }
b, a
q0 , q1 b, a q2 , $ $ q3
49
Execution Example:
a, a
a, a
b, b
b, b
q0
Time 0
q1
, $ $
Input
a b
a b
a
$
$
a, a
a, a
b, b
b, b
,
q1
, $ $
Stack
a, a
a, a
b, b
b, b
q2
51
q0
Time 2
q1
, $ $
Stack
q2
52
Time 3
Input
Input
a b
b
a
$
a, a
b, b
q0
50
Time 1
Input
q0
q2
a, a
b, b
q1
, $ $
a b
Stack
a, a
b, b
q2
53
q0
a, a
b, b
q1
, $ $
b
a
$
Stack
q2
54
9
PDF created with pdfFactory Pro trial version www.pdffactory.com
Time 4
Time 5
Input
Input
a b
b
a
$
a, a
a, a
b, b
b, b
q0
q1
, $ $
a b
Stack
q2
55
a, a
a, a
b, b
b, b
q0
Rejection Example:
Time 6
Input
a
$
q1 , $ $
Stack
q2
56
Time 0
Input
a b
a b
$
a, a
a, a
b, b
b, b
Stack
a, a
a, a
b, b
b, b
Stack
accept
q0
q1
, $ $
q2
57
q0
Time 1
, $ $
q2
58
Time 2
Input
Input
a b
a, a
b, b
q0
q1
a b
a
$
a, a
b, b
q1
, $ $
Stack
a, a
b, b
q2
59
q0
b
a
$
a, a
b, b
q1
, $ $
Stack
q2
60
10
PDF created with pdfFactory Pro trial version www.pdffactory.com
Time 3
Time 4
Input
Input
a b
a, a
a, a
b, b
b, b
q0
, $ $
a b
Stack
q2
61
a b
a, a
Input is not
consumed
a, a
b, b
b, b
,
q1 , $ $
a, a
a, a
b, b
b, b
q0
Input
, $ $
q2
62
Stack
a, a
a, a
b, b
b, b
63
q0
Time 1
q1
, $ $
Stack
q2
64
Time 2
Input
Input
a b
a, a
b, b
q0
q1
Stack
Time 0
a b
a
$
q2
b
a
$
Time 5
There is no possible transition.
Input
q0
q1
b
a
$
a b
a
$
a, a
b, b
q1
, $ $
Stack
a, a
b, b
q2
65
q0
b
a
$
a, a
b, b
q1
, $ $
Stack
q2
66
11
PDF created with pdfFactory Pro trial version www.pdffactory.com
Time 3
Time 4
Input
a b
a, a
a, a
b, b
b, b
q0
q1
, $ $
Time 5
Input
a b
a, a
b, b
q0
No final state
is reached
a, a
b, b
q1
, $ $
a b
Stack
q2
67
a, a
a, a
b, b
b, b
q0
b
b
b
a
$
q1
, $ $
Stack
q2
68
There is no computation
that accepts string abbb
abbb L(M )
Stack
a, a
b, b
q2
b
b
b
a
$
Input
b
b
a
$
69
q0
a, a
b, b
q1
, $ $
q2
70
12
PDF created with pdfFactory Pro trial version www.pdffactory.com