Upload
shina
View
46
Download
0
Embed Size (px)
DESCRIPTION
Pushdown Automata. There are context-free languages that are not regular. Finite automata cannot recognize all context-free languages. Pushdown Automata. {a, b}* is regular. {a k b k | k is a constant} is regular. {a n b n | n 0 } is not regular. Finite Automata. Input file. - PowerPoint PPT Presentation
Citation preview
1
Pushdown Automata
• There are context-free languages that are not regular.
• Finite automata cannot recognize all context-free languages.
2
Pushdown Automata
• {a, b}* is regular.
• {akbk | k is a constant} is regular.
• {anbn | n 0} is not regular.
3
Finite Automata
Control unitq0
Input file
yes/no
4
Pushdown Automata
Control unitq0
Input file
yes/no
Stack
5
Non-deterministic Pushdown Automata (NPDA)
M = (Q, , , , q0, z, F)
Q: finite set of internal states
: finite set of symbols - input alphabet
: finite set of symbols - stack alphabet
: Q ({}) finite subsets of Q * transition function
q0 Q: initial state
z : stack start symbol
F Q: set of final states
6
Non-deterministic Pushdown Automata (NPDA)
: Q ({}) finite subsets of Q *
stack top
stack top replacement
7
Example
(q1, a, b) = {(q2, cd), (q3, )}
b
dc
q1
q2
q3
8
Example
M = (Q, , , , q0, z, F)
Q = {q0, q1, q2, q3} (q0, a, 0) = {(q1, 10), (q3, )}
= {a, b} (q0, , 0) = {(q3, )}
= {0, 1} (q1, a, 1) = {(q1, 11)}
z = 0 (q1, b, 1) = {(q2, )}
F = {q3} (q2, b, 1) = {(q2, )}
(q2, , 0) = {(q3, )}
9
Instantaneous Description
(q, w, u)
current state unread part of stack contents
input string
10
Instantaneous Description
move: (q1, aw, bx) (q2, w, yx)
iff (q2, y) (q1, a, b)
11
Instantaneous Description
(q1, x, y) (q2, u, v)
(q1, x, y) (q2, u, v)
12
Language accepted by NPDA
Let M = (Q, , , , q0, z, F) be an NPDA.
L(M) = {w * | (q0, w, z) (qf, , u), qf F, u
*}
13
Example
L = {w {a, b}* | na(w) = nb(w)}
M = (Q, , , , q0, z, F) ?
14
ExampleL = {w {a, b}* | na(w) = nb(w)}
M = (Q, , , , q0, z, F)
Q = {q0, qf} (q0, , z) = {(qf, z)}
= {a, b} (q0, a, z) = {(q0, 0z)}
= {0, 1, z} (q0, b, z) = {(q0, 1z)}
F = {qf} (q0, a, 0) = {(q0, 00)}
(q0, b, 0) = {(q0, )}
(q0, a, 1) = {(q0, )}
(q0, b, 1) = {(q0, 11)}
15
Example
L = {wwR | w {a, b}+}
M = (Q, , , , q0, z, F) ?
16
ExampleL = {wwR | w {a, b}+}
M = (Q, , , , q0, z, F)
Q = {q0, q1, q2} = {a, b} = {a, b, z} F = {q2}
(q0, a, a) = {(q0, aa)} (q0, , a) = {(q1, a)}
(q0, b, a) = {(q0, ba)} (q0, , b) = {(q1, b)}
(q0, a, b) = {(q0, ab)}
(q0, b, b) = {(q0, bb)} (q1, a, a) = {(q1, )}
(q0, a, z) = {(q0, az)} (q1, b, b) = {(q1, )}
(q0, b, z) = {(q0, bz)} (q1, , z) = {(q2, z)}
17
NPDA and Context-Free Languages
Greibach NF
(q0, , z) = {(q1, Sz)}
S aSA | a (q1, a, S) = {(q1, SA), (q0, )}
A bB (q1, b, A) = {(q1, B)}
B b (q1, b, B) = {(q1, )}
(q1, , z) = {(q2, )}
18
Theorem
For any context-free language L not containing , there exists
an NPDA M such that L = L(M).
19
Theorem
Proof:
G = (V, T, S, P)
M = ({q0, q1, qf}, T, V{z}, , q0, z, {qf}) z V
(q0, , z) = {(q1, Sz)}
(q1, u) (q1, a, A) iff A au P
(q1, , z) = {(qf, z)}
20
Example Greibach NF
(q0, , z) = {(q1, Sz)}
S aA (q1, a, S) = {(q1, A)}
A aABC | bB | a (q1, a, A) = {(q1, ABC), (q1, )}
(q1, b, A) = {(q1, B)}
B b (q1, b, B) = {(q1, )}
C c (q1, c, C) = {(q1, )}
(q1, , z) = {(q2, )}
21
Context-Free Grammars for NPDA
M = (Q, , , , q0, z, F)
G = (V, T, S, P)
L(G) = L(M)
22
Context-Free Grammars for NPDA
M = (Q, , , , q0, z, F)
M^: Single final state
Final state entered iff the stack is empty
(qi, a, A) = {c1, c2, ..., cn}
ci = (qj, ) ci = (qj, BC)
23
Context-Free Grammars for NPDA
(qi, a, A) = {(qj, ), ... } ?
24
Context-Free Grammars for NPDA
(qi, a, A) = {(qj, ), ... } ?
At qi erase A and move to qj if receiving a
25
Context-Free Grammars for NPDA
(qi, a, A) = {(qj, BC), ... } ?
26
Context-Free Grammars for NPDA
(qi, a, A) = {(qj, BC), ... } ?
At qi erase A and move to qk if receiving a and
at qj erase BC and move to qk
27
Context-Free Grammars for NPDA
(qi, a, A) = {(qj, BC), ... } ?
At qi erase A and move to qk if receiving a andat qj erase BC and move to qk
At qi erase A and move to qk if receiving a and
at qj erase B and move to qm and
at qm erase C and move to qk
28
Context-Free Grammars for NPDA
(qi, a, A) = {(qj, ), ... }
At qi erase A and move to qj if receiving a
(qiAqj) a
29
Context-Free Grammars for NPDA
(qi, a, A) = {(qj, BC), ... }
At qi erase A and move to qk if receiving a and
at qj erase B and move to qm and
at qm erase C and move to qk
(qiAqk) a(qjBqm)(qmCqk)
30
Context-Free Grammars for NPDA
Start symbol: (q0zqf)
31
Example
M = (Q, , , , q0, z, F)
Q = {q0, q1, q2} = {a} = {A, z} F = {q2}
(q0, a, z) = {(q0, Az)}
(q0, a, A) = {(q0, A)}
(q0, b, A) = {(q1, )}
(q1, , z) = {(q2, )}
32
Example
M = (Q, , , , q0, z, F)
Q = {q0, q1, q2 , q3} = {a} = {A, z} F = {q2}
(q0, a, z) = {(q0, Az)} (q0, a, z) = {(q0, Az)}
(q0, a, A) = {(q0, A)} (q0, a, A) = {(q3, )}
(q0, b, A) = {(q1, )} (q3, , z) = {(q3, Az)}
(q1, , z) = {(q2, )} (q0, b, A) = {(q1, )}
(q1, , z) = {(q2, )}
33
Example
M = (Q, , , , q0, z, F)
Q = {q0, q1, q2 , q3} = {a} = {A, z} F = {q2}
(q0, a, z) = {(q0, Az)}
(q0, a, A) = {(q3, )} (q0Aq3) a
(q3, , z) = {(q3, Az)}
(q0, b, A) = {(q1, )} (q0Aq1) b
(q1, , z) = {(q2, )} (q1zq2)
34
Example
M = (Q, , , , q0, z, F)
Q = {q0, q1, q2 , q3} = {a} = {A, z} F = {q2}
(q0, a, z) = {(q0, Az)} (q0zq0) ...
(q0, a, A) = {(q3, )} (q0zq1) ...
(q3, , z) = {(q3, Az)} (q0zq2) ...
(q0, b, A) = {(q1, )} (q0zq3) ...
(q1, , z) = {(q2, )}
35
Example
M = (Q, , , , q0, z, F)
Q = {q0, q1, q2 , q3} = {a} = {A, z} F = {q2}
(q0, a, z) = {(q0, Az)} (q0zq0) a(q0Aq0)(q0zq0) |
(q0, a, A) = {(q3, )} a(q0Aq1)(q1zq0) |
(q3, , z) = {(q3, Az)} a(q0Aq2)(q2zq0)
(q0, b, A) = {(q1, )} a(q0Aq3)(q3zq0)
(q1, , z) = {(q2, )} ...
36
Theorem
If L = L(M) for some NPDA M, then L is a context-free
language.
37
Theorem
Proof:
M = (Q, , , , q0, z, {qf})
G = (V, T, S, P)
T =
V = {(qiAqj) | A } S = (q0zqf)
P:(qiAqj) a iff (qj, ) (qi, a, A)
(qiAqm) a(qiBqm)(qmCqj) iff (qj, BC) (qi, a, A)
38
Deterministic Pushdown Automata
A DPDA is a pushdown automaton that never has a
choice in its move:
1. (q, a, b) contains at most one element.
2. if (q, , b) is not empty, then (q, a, b) must be empty for
every a .
39
Deterministic Context-Free Language
A language L is said to be a DCFL iff there exists a
DPDA M such that L = L(M).
40
Example
M = (Q, , , , q0, z, F)
Q = {q0, q1, q2} (q0, a, 0) = {(q1, 10)}
= {a, b} (q1, a, 1) = {(q1, 11)}
= {0, 1} (q1, b, 1) = {(q2, )}
z = 0 (q2, b, 1) = {(q2, )}
F = {q0} (q2, , 0) = {(q0, )}
L = {anbn | n 0}
41
Homework
• Exercises: 5, 10, 13 of Section 7.1 - Linz’s book.
• Exercises: 1, 2, 4, 5, 8, 12 of Section 7.2 - Linz’s book.
• Exercises: 1, 2, 3, 6, 7 of Section 7.2 - Linz’s book.
• Presentations: Section 6.3 and Section 7.4.