Title: Pushdown Automata
1Pushdown Automata
- There are context-free languages that are not
regular. - Finite automata cannot recognize all context-free
languages.
2Pushdown Automata
- a, b is regular.
- akbk k is a constant is regular.
- anbn n ? 0 is not regular.
3Finite Automata
Input file
Control unit q0
yes/no
4Pushdown Automata
Input file
Control unit q0
Stack
yes/no
5Non-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
6Non-deterministic Pushdown Automata (NPDA)
- ? Q ? (???) ? ? ? finite subsets of Q ? ?
stack top
stack top replacement
7Example
- ?(q1, a, b) (q2, cd), (q3, ?)
c
d
q2
b
q1
q3
8Example
- 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, ?)
9Instantaneous Description
- (q, w, u)
- current state unread part of stack contents
- input string
10Instantaneous Description
- move (q1, aw, bx) ? (q2, w, yx)
- iff (q2, y) ? ?(q1, a, b)
11Instantaneous Description
- (q1, x, y) ?M (q2, u, v)
- (q1, x, y) ?M (q2, u, v)
12Language accepted by NPDA
- Let M (Q, ?, ?, ?, q0, z, F) be an NPDA.
- L(M) w ? ? (q0, w, z) ?M (qf, ?, u), qf ?
F, u ? ? -
13Example
- L w ? a, b na(w) nb(w)
- M (Q, ?, ?, ?, q0, z, F) ?
-
14Example
- L 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)
15Example
- L wwR w ? a, b
- M (Q, ?, ?, ?, q0, z, F) ?
-
16Example
- L 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) -
17NPDA 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, ?)
-
18Theorem
- For any context-free language L not containing ?,
there exists - an NPDA M such that L L(M).
-
19Theorem
- 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)
20Example
- 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, ?)
21Context-Free Grammars for NPDA
- M (Q, ?, ?, ?, q0, z, F)
- G (V, T, S, P)
- L(G) L(M)
22Context-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)
23Context-Free Grammars for NPDA
- ?(qi, a, A) (qj, ?), ... ?
24Context-Free Grammars for NPDA
- ?(qi, a, A) (qj, ?), ... ?
- At qi erase A and move to qj if receiving a
25Context-Free Grammars for NPDA
- ?(qi, a, A) (qj, BC), ... ?
26Context-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
27Context-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
- 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
28Context-Free Grammars for NPDA
- ?(qi, a, A) (qj, ?), ...
- At qi erase A and move to qj if receiving a
- (qiAqj) ? a
29Context-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)
30Context-Free Grammars for NPDA
31Example
- 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, ?)
-
-
32Example
- 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, ?)
-
33Example
- 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) ? ?
-
34Example
- 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, ?)
-
35Example
- 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, ?) ...
-
36Theorem
- If L L(M) for some NPDA M, then L is a
context-free - language.
-
37Theorem
- 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)
38Deterministic Pushdown Automata
- A DPDA is a pushdown automaton that never has a
- choice in its move
- ?(q, a, b) contains at most one element.
- if ?(q, ?, b) is not empty, then ?(q, a, b) must
be empty for - every a ? ?.
-
39Deterministic Context-Free Language
- A language L is said to be a DCFL iff there
exists a - DPDA M such that L L(M).
-
40Example
- 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
-
41Homework
- Exercises 5, 10, 13 of Section 7.1 - Linzs
book. - Exercises 1, 2, 4, 5, 8, 12 of Section 7.2 -
Linzs book. - Exercises 1, 2, 3, 6, 7 of Section 7.2 - Linzs
book. - Presentations Section 6.3 and Section 7.4.
-