41
1 Pushdown Automata There are context-free languages that are not regular. Finite automata cannot recognize all context-free languages.

Pushdown Automata

  • 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

Page 1: Pushdown Automata

1

Pushdown Automata

• There are context-free languages that are not regular.

• Finite automata cannot recognize all context-free languages.

Page 2: Pushdown Automata

2

Pushdown Automata

• {a, b}* is regular.

• {akbk | k is a constant} is regular.

• {anbn | n 0} is not regular.

Page 3: Pushdown Automata

3

Finite Automata

Control unitq0

Input file

yes/no

Page 4: Pushdown Automata

4

Pushdown Automata

Control unitq0

Input file

yes/no

Stack

Page 5: Pushdown Automata

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

Page 6: Pushdown Automata

6

Non-deterministic Pushdown Automata (NPDA)

: Q ({}) finite subsets of Q *

stack top

stack top replacement

Page 7: Pushdown Automata

7

Example

(q1, a, b) = {(q2, cd), (q3, )}

b

dc

q1

q2

q3

Page 8: Pushdown Automata

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, )}

Page 9: Pushdown Automata

9

Instantaneous Description

(q, w, u)

current state unread part of stack contents

input string

Page 10: Pushdown Automata

10

Instantaneous Description

move: (q1, aw, bx) (q2, w, yx)

iff (q2, y) (q1, a, b)

Page 11: Pushdown Automata

11

Instantaneous Description

(q1, x, y) (q2, u, v)

(q1, x, y) (q2, u, v)

Page 12: Pushdown Automata

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

*}

Page 13: Pushdown Automata

13

Example

L = {w {a, b}* | na(w) = nb(w)}

M = (Q, , , , q0, z, F) ?

Page 14: Pushdown Automata

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)}

Page 15: Pushdown Automata

15

Example

L = {wwR | w {a, b}+}

M = (Q, , , , q0, z, F) ?

Page 16: Pushdown Automata

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)}

Page 17: Pushdown Automata

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, )}

Page 18: Pushdown Automata

18

Theorem

For any context-free language L not containing , there exists

an NPDA M such that L = L(M).

Page 19: Pushdown Automata

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)}

Page 20: Pushdown Automata

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, )}

Page 21: Pushdown Automata

21

Context-Free Grammars for NPDA

M = (Q, , , , q0, z, F)

G = (V, T, S, P)

L(G) = L(M)

Page 22: Pushdown Automata

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)

Page 23: Pushdown Automata

23

Context-Free Grammars for NPDA

(qi, a, A) = {(qj, ), ... } ?

Page 24: Pushdown Automata

24

Context-Free Grammars for NPDA

(qi, a, A) = {(qj, ), ... } ?

At qi erase A and move to qj if receiving a

Page 25: Pushdown Automata

25

Context-Free Grammars for NPDA

(qi, a, A) = {(qj, BC), ... } ?

Page 26: Pushdown Automata

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

Page 27: Pushdown Automata

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

Page 28: Pushdown Automata

28

Context-Free Grammars for NPDA

(qi, a, A) = {(qj, ), ... }

At qi erase A and move to qj if receiving a

(qiAqj) a

Page 29: Pushdown Automata

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)

Page 30: Pushdown Automata

30

Context-Free Grammars for NPDA

Start symbol: (q0zqf)

Page 31: Pushdown Automata

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, )}

Page 32: Pushdown Automata

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, )}

Page 33: Pushdown Automata

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)

Page 34: Pushdown Automata

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, )}

Page 35: Pushdown Automata

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, )} ...

Page 36: Pushdown Automata

36

Theorem

If L = L(M) for some NPDA M, then L is a context-free

language.

Page 37: Pushdown Automata

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)

Page 38: Pushdown Automata

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 .

Page 39: Pushdown Automata

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).

Page 40: Pushdown Automata

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}

Page 41: Pushdown Automata

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.