Automata and Languages - University of Aizuhamada/AF/L12-FA-PDA.pdf · languages (cf. Noam Chomsky)...
Transcript of Automata and Languages - University of Aizuhamada/AF/L12-FA-PDA.pdf · languages (cf. Noam Chomsky)...
Automata and Languages
Prof. Mohamed Hamada
Software Engineering Lab. The University of Aizu
Japan
Content
• Context Free Languages (CFL) • Pumping Lemma for CFL • Pushdown Automata (PDA) • Examples of PDA • Convert CFL to PDA • Convert PDA to CFL • Examples
2
3
Grammar
Regular Grammar Context-free Grammar Context-sensitive Grammar
Regular Languages Context Free Languages Context Sensitive Languages
Languages
4
L is a Context Free Language if and only if there is a context free grammar G=(V,T,S,P) such that:
L = L(G) = { w∈T* : S ⇒* w }
Context Free Languages (CFL)
Definition
5
Context-free languages allow us to describe languages that are nonregular like { 0n1n : n≥0}. CFLs are complex enough to give us a model for natural languages (cf. Noam Chomsky) and programming languages. The theory of CFLs is very closely related to the problem of “parsing” a computer program.
Later we will see that CFLs are the languages that can be recognized by automata that have one single stack:
{ 0n1n : n≥0 } is a CFL { 0n1n0n : n≥0 } is not a CFL
Why Context Free Languages
Context Free Languages (CFL)
6
Properties of CFL:
If L1 and L2 are Context Free Languages then:
1. The language L1 U L2 is context free
4. The language L1 ∩ L2 may be NOT a context free
2. The language L1 . L2 is context free
3. The language L1 and L2 are context free * *
5. The languages L1 and L2 may be NOT a context free - -
Context Free Languages (CFL)
7
Exercise
Consider the Context Free Languages:
L1 = {anbncm: n≥0, m≥0}
1. Show that the languages L1 U L2 , L1 . L2 and L1 are context free? *
2. Show that the languages L1 ∩ L2 and L1 are NOT context free
-
L2 = {anbmcm: n≥0, m≥0}
Context Free Languages (CFL)
8
Let L be a context-free language Then there exists P such that if w ∈ L and |w| ≥ P
1. |vy| > 0 then w = uvxyz, where:
3. uvixyiz ∈ L for any i ≥ 0 2. |vxy| ≤ P
Pumping Lemma for CFL
9
Idea: If w is long enough, then any parse tree for w must have a path that contains a variable more than once
T
R
R
u v x z y
T
u z
R
R
v y
R
R
v x y
Pumping Lemma for CFL
10
If the height of a parse tree is h, the length of the string generated is at most:
Formal Proof: Let b be the maximum number of symbols on the right-hand side of a rule
bh
Let |V| be the number of variables in G
Define P = b|v|+2
Let w be a string of length at least P
Let T be the parse tree for w with the smallest number of nodes. T must have height at least |V|+2
Pumping Lemma for CFL
11 Let T be the parse tree for w with the smallest number of nodes. T must have height at least |V|+2
The longest path in T must have ≥ |V|+1 variables Select R to be the variable that repeats among the lowest |V|+1 variables
T
R
R
u v x z y
T
u z
R
v y
R
R
v x y
1. |vy| > 0 2. |vxy| ≤ P
Pumping Lemma for CFL
12
Pushdown Automata
13
Pushdown automata are for context-free languages while finite automata are for regular languages.
Big difference though: PDAs have to be nondeterministic (deterministic PDAs are not powerful enough).
PDAs are automata that have a single stack as memory.
Push Down Automata (PDA)
14
A Nondeterministic Pushdown Automaton, Acceptor (NPDA) M is defined by a tuple (Q,Σ,Γ,δ,q0,z,F): • Q is the finite set of internal states • Σ is the finite input alphabet • Γ is the finite stack alphabet • δ:Q × (Σ∪{λ}) × Γ → P(Q × Γ*) is the transition function of M, where each δ-value is a finite set • q0∈Q is the starting state of M • z∈Γ is the stack start symbol • F⊆Q are the accepting, final states of M
It is the transition function δ that we need to understand…
Definition Push Down Automata (PDA)
15
FINITE STATE
CONTROL
STACK (Last in, first out)
INPUT
Push Down Automata (PDA)
16
input w ∈ Σ*
x y y z x y x . . .
stack ∈ Γ*
The PDA M reads the input w ∈ Σ* from left to right. Depending on input wj ∈ Σ∪{λ}, stack symbol sj ∈ Γ, and state qk ∈ Q …the PDA M jumps to a new state ∈ Q, consume input wi removes sj from the stack and pushes new elements ∈ Γ
This is done in nondeterministic fashion. After reading w, the PDA will accept or reject.
Control unit with internal states Q
0 1 1 0 .. .. .. ..
Push Down Automata (PDA)
17
x y y z x y x . . .
stack ∈ Γ*
For given wj ∈ Σ∪{λ}, sj ∈ Γ and qk ∈ Q, the nondeterminism allows several possibilities for M. (Note the possibility of non- deterministic λ-transitions.)
After the PDA has read input w it can be in different state ⊆ Q.
If it is possible to end in an accepting state ∈ F⊆Q, then M accepts w.
Control unit with internal states Q
input w ∈ Σ*
0 1 1 0 .. .. .. ..
Push Down Automata (PDA)
18
If (q2,y) ∈ δ(q1,0,b) then the following transition is allowed:
b x
content stack: bx, with b∈Γ and x∈Γ*
q1∈Q y x
content stack: yx, with y∈Γ* and x∈Γ*
q2∈Q goes to
The states of the NPDA can be described by the triplets (q1,aw,bx) and (q2,w,yx) respectively and we denote this possible transition by (q1,aw,bx) (q2,w,yx).
There can be several options according to δ, but it is required that the set δ(q1,a,b) is finite.
Transitions
0 1 1 0 . . . . 0 1 1 0 . . . .
Push Down Automata (PDA)
˧
19
b x
content stack: bx, with b∈Γ and x∈Γ*
q1∈Q y x
content stack: yx, with y∈Γ* and x∈Γ*
q2∈Q goes to
λ-Transitions
0 1 1 0 . . . . 0 1 1 0 . . . .
If (q2,y) ∈ δ(q1,λ,b) then the following transition is allowed:
Here the NPDA does not read a input letter and makes a λ-transition (compare λ-transitions for NFA). In general, if the NPDA is allowed to make several steps we write: (q,w1…wn,x) * (q’,wi…wn,x’).
Push Down Automata (PDA) ˧
20
• Definition: Given a NPDA M = (Q,Σ,Γ,δ,q0,z,F), the language accepted by M is defined by: L(M) = { w∈Σ* : (q0,w,z) * (p,λ,u) with p∈F, u∈Γ* }.
• Note that the input part has to be empty (λ) in the end. • The content of the stack does not matter. • We only require that there is a possible transition. • The only role of z∈Γ is to start with a nonempty stack.
Accepted Language
Push Down Automata (PDA)
˧
21
λ, λ → $ 0, λ → 0
1,0 → λ
1,0 → λ λ,$ → λ
q0 q1
q2 q3
Q = {q0, q1, q2, q3} Γ = Σ =
δ:Q × (Σ∪{λ}) × Γ → P(Q × Γ*)
{0,1} {$,0,1}
δ(q1,1,0) = { (q2, λ) } δ(q2,1,1) = ∅
PDA: Example 1 δ:(q0,λ, λ) ={(q1,$)}
22
λ, λ→$ 0, λ→0
1,0 → λ
1,0 → λ λ,$ → λ
string pop push
0011
STACK
$0011 011
$ 0
11
$ 0
1
PDA: Example 1
23
λ, λ → $ 0, λ → 0
1,0 → λ
1,0 → λ λ,$ → λ
string pop push
001
STACK $ $ 0 $ 0
1 01 001
PDA to recognize L = { 0n1n | n ≥ 0 }
PDA: Example 1
24
EVEN-LENGTH PALINDROMES Σ = {a, b, c, …, z}
λ, λ → $
λ, λ → λ
σ,σ → λ λ,$ → λ
q0 q1
q2 q3
σ, λ → σ
PDA: Example 2
25
Build a PDA to recognize L = { aibjck | i, j, k ≥ 0 and (i = j or i = k) }
λ, λ → $
b,a → λ
λ,$ → λ q0
q5 q1
q3
a, λ → a
q2
q4 q6 λ, λ → λ λ, λ → λ λ,$ → λ
b, λ → λ c,a → λ
c, λ → λ
PDA: Example 3
26
• How to make a NPDA that accepts {w∈{a,b}* : #a = #b}? • Central idea push/pull counting symbols 0 (for a) and 1 (for b) on the stack as you read the string w. • Answer: NPDA M = ({q0,qf},{a,b},{0,1,z},δ,q0,z,{qf}) with: • δ(q0,λ,z) = {(qf,z)} δ(q0,a,z) = {(q0,0z)} δ(q0,b,z) = {(q0,1z)} δ(q0,a,0) = {(q0,00)} δ(q0,b,0) = {(q0,λ)} δ(q0,a,1) = {(q0,λ)} δ(q0,b,1) = {(q0,b,11)}
Processing baab gives: (q0,baab,z) (q0,aab,1z)
(q0,ab,z) (q0,b,0z) (q0,λ,z) (qf,λ,z).
Example 4
Push Down Automata (PDA)
˧ ˧ ˧ ˧ ˧
27
• How to recognize wwR∈{a,b}* ? • Idea: Read w and put it on the stack (first in, last out). At the half-way point, start checking the remaining input string wR against the stack content wR.
• Crucial observation: We have to guess the half-way point.
Exercise
Push Down Automata (PDA)
28
A language L is context-free if and only if there is a non-deterministic pushdown automaton M that recognizes L.
Two step proof: Theorem 1: Given a CFG G, we can construct a
NPDA MG such that L(G)=L(MG). Theorem 2: Given a PDA M, we can construct a
CFG G such that L(G)=L(MG). Central idea: Use Greibach normal form for the CFG and put the variables on the stack while reading letters.
PDA CFL
29
• Without loss of generality, we assume that the CFG is in Greibach normal form, for which we know that the derivation of w1…wn has to look like (assuming A→wiu): • S⇒…⇒w1…wi–1Ay⇒w1…wiuy⇒…⇒w1…wn with y,u∈V*.
• Idea for PDA implementation: when reading the input string w1…wn from left to right on put possible u∈V* on stack:
w1…wn
S z
q
w1…wi…wn
Ay z
q …
w1…wi+1…wn
uy z
q …
w1…wn
z q …
(q,wi,A) (q,u)
note empty stack in end
PDA CFL Proof Idea
˧
30
• Given a CFG G=(V,T,S,P) in Greibach normal form, the NPDA M=({q0,q1,qf},T,V∪{z},δ,q0,z,{qf}) accepts L(G):
• δ(q0,λ,z) = {(q1,Sz)} (start with S on the stack) • (q1,u) ∈ δ(q1,a,A) for all A→au rules • δ(q1,λ,z) = {(qf,z)}
Proof details
PDA CFL
31
S à λ |a | b | aSa | bSb
Example
S à λ |a | b | aSA | bSB
A à a, Bà b
GNF
δ(q0,λ,z) = {(q1,Sz)}
δ(q1,λ,z) = {(qf,z)}
(q1, λ) ∈ δ(q1, λ,S) (q1, λ) ∈ δ(q1, a,S)
(q1, λ) ∈ δ(q1, b,S)
(q1, SA) ∈ δ(q1, a,S)
(q1, λ) ∈ δ(q1, a,A) (q1, SB) ∈ δ(q1, b,S)
(q1, λ) ∈ δ(q1, b,B)
PDA CFL
32
• To prove that for every NPDA there is a corresponding CFG we use the same ideas as for the previous proofs.
• The proof uses the assumption that the NPDA has only one accepting state qf that is entered when the stack is empty, and all transitions are of the form (q,a,A) (q’,λ) or (q’,BC). • This assumption can be made without loss of generality.
PDA CFL
˧
33
Given PDA P = (Q, Σ, Γ, δ, q, F)
Construct a CFG G = (V, Σ, R, S) such that L(G)=L(P)
First, simplify P to have the following form:
(1) It has a single accept state, qaccept
(2) It empties the stack before accepting
(3) Each transition either pushes a symbol or pops a symbol, but not both at the same time
PDA CFL
34
λ,λ → $ 0,λ → 0
1,0 → λ
1,0 → λ λ,$ → λ
SIMPLIFY
q0 q1
q2 q3
λ,λ → λ
λ,λ → λ
λ,0 → λ
λ,λ → 0
λ,λ → 0
q4
q5
PDA CFL
35
Idea: for each pair of states p and q in P, the grammar will have a variable Apq that generates all strings that can take P from p with an empty stack to q with an empty stack
V = {Apq | p,q∈Q }
S = Aq0qaccpet
PDA CFL
36
λ,λ → $ 0,λ → 0
1,0 → λ
1,0 → λ λ,$ → λ
q0 q1
q2 q3
λ,0 → λ
λ,λ → 0
λ,λ → 0
q4
q5
PDA CFL
37
What strings does Aq0q1 generate? What strings does Aq1q2 generate? What strings does Aq1q3 generate?
none {0n1n | n > 0} none
PDA CFL
λ,λ → $ 0,λ → 0
1,0 → λ
1,0 → λ λ,$ → λ
q0 q1
q2 q3
λ,0 → λ
λ,λ → 0
λ,λ → 0
q4
q5
38
Apq generates all strings that take p with an empty stack to q with an empty stack
Let x be such a string • P’s first move on x must be a push • P’s last move on x must be a pop
Two possibilities:
1. The symbol popped at the end is the one pushed at the beginning
2. The symbol popped at the end is not the one pushed at the beginning
PDA CFL
39
stack height
input string p q
Apq → aArsb
r s
1. The symbol popped at the end is the one pushed at the beginning
b a
δ(p,a,z) = {(r,H)} δ(s,b,H) = {(q,z)}
PDA CFL
40
stack height
input string p r q
Apq → AprArq
2. The symbol popped at the end is not the one pushed at the beginning
δ(p,a,z) = {(n,H)} δ(m,b,E) = {(q,z)}
PDA CFL
41
V = {Apq | p,q∈Q } S = Aq0qaccpet
Formally:
For each p,q,r,s ∈ Q, t ∈ Γ and a,b ∈ Σλ
If (r,t) ∈ δ(p,a,λ) and (q, λ) ∈ δ(s,b,t) Then add the rule Apq → aArsb
For each p,q,r ∈ Q, add the rule Apq → AprArq
For each p ∈ Q, add the rule App → λ
PDA CFL
42
λ,λ → $ 0,λ → 0
1,0 → λ
1,0 → λ λ,$ → λ
q0 q1
q2 q3
λ,0 → λ
λ,λ → 0
λ,λ → 0
q4
q5
PDA CFL Example
43
What strings does Aq0q1 generate? What strings does Aq1q2 generate? What strings does Aq1q3 generate?
Aq0q3 → λAq1q2λ
Aqq → λ Apq → AprArq
Aq1q2 → 0Aq1q21 Aq1q2 → 0Aq1q11
none {0n1n | n > 0} none
PDA CFL Example λ,λ → $ 0,λ → 0
1,0 → λ
1,0 → λ λ,$ → λ
q0 q1
q2 q3
λ,0 → λ
λ,λ → 0
λ,λ → 0
q4
q5