Download
pushdown automata n.
Skip this Video
Loading SlideShow in 5 Seconds..
PushDown Automata PowerPoint Presentation
Download Presentation
PushDown Automata

PushDown Automata

506 Views Download Presentation
Download Presentation

PushDown Automata

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

  1. PushDown Automata

  2. What is a stack? • A stack is a Last In First Out data structure where I only have access to the last element inserted in the stack. • In order to access other elements I have to remove those that are on top one by one.

  3. Stack

  4. Stack

  5. Stack

  6. Stack

  7. Stack

  8. Stack

  9. Stack

  10. Stack

  11. What is a PDA? • A PDA is en enhanced finite automaton that also contains an infinite stack. • The transitions in a PDA are of the form a, x ⟶ y meaning that if you see an a in the input string and the stack contains the symbol x on top then you remove the x and add a y. • The stack gives us extra power to recognize non-regular languages.

  12. Transitions • Transitions of the form a, x ⟶ y require that the next input symbol should be a and the top stack symbol should be x. a, x⟶ y a, x⟶ y q’ q q’ q x w y w ...abb... ...abb... Stack Input Stack Input

  13. Transitions • Transitions of the form ε, x ⟶ y require that the top stack symbol is x. ε, x⟶ y ε, x⟶ y q’ q q’ q x w y w ...abb... ...abb... Stack Input Stack Input

  14. Transitions • Transitions of the form a, ε⟶ y require that the next input symbol is a. a, ε ⟶ y a, ε ⟶ y q’ q q’ q x w y x w ...abb... ...abb... Stack Input Stack Input

  15. Transitions • Transitions of the form ε, ε⟶ ycan be followed without restrictions. ε, ε ⟶ y ε, ε ⟶ y q’ q q’ q x w y x w ...abb... ...abb... Stack Input Stack Input

  16. PDA Accept – Reject Status • The PDA accepts when there exists a computation path such that: • The computation path ends in an accept state • All the input is consumed • (no requirement for the stack) • The PDA rejects when all the paths: • Either end in a non-accepting state • Or are incomplete (meaning that at some point there is no possible transition under the current input and stack symbols)

  17. A PDA for {anbn : n ≥ 0} • We usually use the stack for counting. • For this language for example, you first insert all the as in the stack until you start seeing bs . • When you see the first b start removing as from the stack. • When you have consumed the whole string you check the stack: if it’s empty then this means that the number of as equals the number of bs.

  18. Is the stack empty? How can you check if the stack is empty? • What we usually do is to place a special symbol (for example a $) at the bottom of the stack. • Whenever we find the $ again we know that we reached the end of the stack. • In order to accept a string there is no need for the stack to be empty.

  19. A PDA for {anbn : n ≥ 0} a, ε ⟶ a ε, ε ⟶ $ q0 q1 b, a⟶ ε ε, $ ⟶ ε q3 q2 b, a⟶ ε

  20. Visualization of {anbn:n ≥ 0} aaabbb a, ε ⟶ a ε, ε ⟶ $ q0 q1 b, a⟶ ε ε, $ ⟶ ε q3 q2 b, a⟶ ε

  21. Visualization of {anbn:n ≥ 0} aaabbb a, ε ⟶ a $ ε, ε ⟶ $ q0 q1 b, a⟶ ε ε, $ ⟶ ε q3 q2 b, a⟶ ε

  22. Visualization of {anbn:n ≥ 0} aaabbb a, ε ⟶ a a $ ε, ε ⟶ $ q0 q1 b, a⟶ ε ε, $ ⟶ ε q3 q2 b, a⟶ ε

  23. Visualization of {anbn:n ≥ 0} aaabbb a, ε ⟶ a a a $ ε, ε ⟶ $ q0 q1 b, a⟶ ε ε, $ ⟶ ε q3 q2 b, a⟶ ε

  24. Visualization of {anbn:n ≥ 0} aaabbb a, ε ⟶ a a a a $ ε, ε ⟶ $ q0 q1 b, a⟶ ε ε, $ ⟶ ε q3 q2 b, a⟶ ε

  25. Visualization of {anbn:n ≥ 0} aaabbb a, ε ⟶ a a a $ ε, ε ⟶ $ q0 q1 b, a⟶ ε ε, $ ⟶ ε q3 q2 b, a⟶ ε

  26. Visualization of {anbn:n ≥ 0} aaabbb a, ε ⟶ a a $ ε, ε ⟶ $ q0 q1 b, a⟶ ε ε, $ ⟶ ε q3 q2 b, a⟶ ε

  27. Visualization of {anbn:n ≥ 0} aaabbb a, ε ⟶ a $ ε, ε ⟶ $ q0 q1 b, a⟶ ε ε, $ ⟶ ε q3 q2 b, a⟶ ε

  28. Visualization of {anbn:n ≥ 0} aaabbb a, ε ⟶ a ε, ε ⟶ $ q0 q1 b, a⟶ ε ε, $ ⟶ ε q3 q2 b, a⟶ ε

  29. Visualization of {anbn:n ≥ 0} aab a, ε ⟶ a ε, ε ⟶ $ q0 q1 b, a⟶ ε ε, $ ⟶ ε q3 q2 b, a⟶ ε

  30. Visualization of {anbn:n ≥ 0} aab a, ε ⟶ a $ ε, ε ⟶ $ q0 q1 b, a⟶ ε ε, $ ⟶ ε q3 q2 b, a⟶ ε

  31. Visualization of {anbn:n ≥ 0} aab a, ε ⟶ a a $ ε, ε ⟶ $ q0 q1 b, a⟶ ε ε, $ ⟶ ε q3 q2 b, a⟶ ε

  32. Visualization of {anbn:n ≥ 0} aab a, ε ⟶ a a a $ ε, ε ⟶ $ q0 q1 b, a⟶ ε ε, $ ⟶ ε q3 q2 b, a⟶ ε

  33. Visualization of {anbn:n ≥ 0} aab a, ε ⟶ a a $ ε, ε ⟶ $ q0 q1 b, a⟶ ε ε, $ ⟶ ε q3 q2 b, a⟶ ε

  34. Visualization of {anbn:n ≥ 0} aab a, ε ⟶ a a $ ε, ε ⟶ $ q0 q1 b, a⟶ ε ε, $ ⟶ ε q3 q2 b, a⟶ ε

  35. Visualization of {anbn:n ≥ 0} abb a, ε ⟶ a ε, ε ⟶ $ q0 q1 b, a⟶ ε ε, $ ⟶ ε q3 q2 b, a⟶ ε

  36. Visualization of {anbn:n ≥ 0} abb a, ε ⟶ a $ ε, ε ⟶ $ q0 q1 b, a⟶ ε ε, $ ⟶ ε q3 q2 b, a⟶ ε

  37. Visualization of {anbn:n ≥ 0} abb a, ε ⟶ a a $ ε, ε ⟶ $ q0 q1 b, a⟶ ε ε, $ ⟶ ε q3 q2 b, a⟶ ε

  38. Visualization of {anbn:n ≥ 0} abb a, ε ⟶ a $ ε, ε ⟶ $ q0 q1 b, a⟶ ε ε, $ ⟶ ε q3 q2 b, a⟶ ε

  39. Visualization of {anbn:n ≥ 0} abb a, ε ⟶ a $ ε, ε ⟶ $ q0 q1 b, a⟶ ε ε, $ ⟶ ε q3 q2 b, a⟶ ε

  40. PDA formally • A PDA is a sextuple (Q, Σ, Γ, δ, q0, F), where: • Q is the set of states • Σ is the input alphabet • Γ is the alphabet for the stack • δ is the transition function • q0 is the start state • F is the set of accepting states About Γ: The stack alphabet can contain any symbol you want. It can be completely disjoint from Σ.

  41. L() : proper opening and closing parenthesis ε, ε ⟶ $ (, ε ⟶ * q0 q1 ), *⟶ ε ε, $ ⟶ ε

  42. Try it yourself • Create a PDA for the language: L= = {w : w contains an equal number of 0s and 1s}

  43. L= : equal number of 0s and 1s 0, ε ⟶ * 1, *⟶ ε q2 ε, $ ⟶ ε 0, ε ⟶ * ε, ε ⟶ $ q0 q1 1, ε ⟶ * ε, $ ⟶ ε 1, ε ⟶ * 0, *⟶ ε q3

  44. L= : equal number of 0s and 1s NPDA for this language ε, ε ⟶ $ 0, ε ⟶ 0 0, 1⟶ ε 1, ε ⟶ 1 1, 0 ⟶ ε q0 q1 ε, $ ⟶ ε

  45. PDA and Regular Languages • Regular languages can be recognized by PDA: • For every regular language there is an NFAεrecognizing it. • Simply add ε⟶ε in every transition for the stack (i.e just don’t use it at all). • The languages recognized by PDA is a superset of regular languages. • As we saw the language L = {anbn : n≥0} is recognized by some PDA. • L is not regular.

  46. Non-Determinism • Non- determinism means that we can have more than one choices. • Non-Deterministic: q2 0, a⟶ 1 q1 0, a⟶ 1 q3

  47. Non-Determinism • Non- determinism means that we can have more than one choices. • Non-Deterministic: q2 0, a⟶ 0 q1 0, a⟶ 1 q3

  48. Non-Determinism • Non- determinism means that we can have more than one choices. • Non-Deterministic: 0, a⟶ 0 0, a⟶ 1 q1 q2

  49. Non-Determinism • Non- determinism means that we can have more than one choices. • Non-Deterministic: q2 0, ε⟶ 0 q1 0, a⟶ 1 q3

  50. Non-Determinism • Non- determinism means that we can have more than one choices. • Non-Deterministic: q2 ε, b⟶ 0 q1 0, b⟶ 1 q3