Pushdown Automata PDAs Fall 2006 Costas Busch RPI
Pushdown Automata PDAs Fall 2006 Costas Busch - RPI 1
Pushdown Automaton -- PDA Input String Stack States Fall 2006 Costas Busch - RPI 2
Initial Stack Symbol Stack stack head top bottom special symbol Appears at time 0 Fall 2006 Costas Busch - RPI 3
The States Input symbol Fall 2006 Pop symbol Costas Busch - RPI Push symbol 4
input stack top Fall 2006 Replace Costas Busch - RPI 5
input stack top Fall 2006 Push Costas Busch - RPI 6
input stack top Fall 2006 Pop Costas Busch - RPI 7
input stack top Fall 2006 No Change Costas Busch - RPI 8
Pop from Empty Stack input Pop stack Automaton halts! top If the automaton attempts to pop from empty stack then it halts and rejects input Fall 2006 Costas Busch - RPI 9
Non-Determinism PDAs are non-deterministic Allowed non-deterministic transitions Fall 2006 Costas Busch - RPI 10
Example PDA Fall 2006 : Costas Busch - RPI 11
Basic Idea: 1. Push the a’s 2. on the stack 2. Match the b’s on input with a’s on stack 3. Match found Fall 2006 Costas Busch - RPI 12
Execution Example: Time 0 Input Stack current state Fall 2006 Costas Busch - RPI 13
Time 1 Input Stack Fall 2006 Costas Busch - RPI 14
Time 2 Input Stack Fall 2006 Costas Busch - RPI 15
Time 3 Input Stack Fall 2006 Costas Busch - RPI 16
Time 4 Input Stack Fall 2006 Costas Busch - RPI 17
Time 5 Input Stack Fall 2006 Costas Busch - RPI 18
Time 6 Input Stack Fall 2006 Costas Busch - RPI 19
Time 7 Input Stack Fall 2006 Costas Busch - RPI 20
Time 8 Input Stack accept Fall 2006 Costas Busch - RPI 21
A string is accepted if there is a computation such that: All the input is consumed AND The last state is an accepting state we do not care about the stack contents at the end of the accepting computation Fall 2006 Costas Busch - RPI 22
Rejection Example: Time 0 Input Stack current state Fall 2006 Costas Busch - RPI 23
Rejection Example: Time 1 Input Stack current state Fall 2006 Costas Busch - RPI 24
Rejection Example: Time 2 Input Stack current state Fall 2006 Costas Busch - RPI 25
Rejection Example: Time 3 Input Stack current state Fall 2006 Costas Busch - RPI 26
Rejection Example: Time 4 Input Stack current state Fall 2006 Costas Busch - RPI 27
Rejection Example: Time 4 Input reject Stack current state Fall 2006 Costas Busch - RPI 28
There is no accepting computation for The string Fall 2006 is rejected by the PDA Costas Busch - RPI 29
Another PDA example PDA Fall 2006 : Costas Busch - RPI 30
Basic Idea: 1. Push v 2. Guess 2. on stack middle of input 3. Match on input with v on stack 4. Match found Fall 2006 Costas Busch - RPI 31
Execution Example: Time 0 Input Stack Fall 2006 Costas Busch - RPI 32
Time 1 Input Stack Fall 2006 Costas Busch - RPI 33
Time 2 Input Stack Fall 2006 Costas Busch - RPI 34
Time 3 Input Guess the middle of string Stack Fall 2006 Costas Busch - RPI 35
Time 4 Input Stack Fall 2006 Costas Busch - RPI 36
Time 5 Input Stack Fall 2006 Costas Busch - RPI 37
Time 6 Input Stack accept Fall 2006 Costas Busch - RPI 38
Rejection Example: Time 0 Input Stack Fall 2006 Costas Busch - RPI 39
Time 1 Input Stack Fall 2006 Costas Busch - RPI 40
Time 2 Input Stack Fall 2006 Costas Busch - RPI 41
Time 3 Input Guess the middle of string Stack Fall 2006 Costas Busch - RPI 42
Time 4 Input Stack Fall 2006 Costas Busch - RPI 43
Input Time 5 There is no possible transition. Input is not consumed Stack Fall 2006 Costas Busch - RPI 44
Another computation on same string: Input Time 0 Stack Fall 2006 Costas Busch - RPI 45
Time 1 Input Stack Fall 2006 Costas Busch - RPI 46
Time 2 Input Stack Fall 2006 Costas Busch - RPI 47
Time 3 Input Stack Fall 2006 Costas Busch - RPI 48
Time 4 Input Stack Fall 2006 Costas Busch - RPI 49
Time 5 Input No accept state is reached Stack Fall 2006 Costas Busch - RPI 50
There is no computation that accepts string Fall 2006 Costas Busch - RPI 51
Pushing & Popping Strings Input symbol Fall 2006 Pop string Costas Busch - RPI Push string 52
Example: input stack pop string Fall 2006 top push string Replace Costas Busch - RPI 53
Equivalent transitions pop push Fall 2006 Costas Busch - RPI 54
Another PDA example PDA Fall 2006 Costas Busch - RPI 55
Execution Example: Time 0 Input Stack current state Fall 2006 Costas Busch - RPI 56
Time 1 Input Stack Fall 2006 Costas Busch - RPI 57
Time 3 Input Stack Fall 2006 Costas Busch - RPI 58
Time 4 Input Stack Fall 2006 Costas Busch - RPI 59
Time 5 Input Stack Fall 2006 Costas Busch - RPI 60
Time 6 Input Stack Fall 2006 Costas Busch - RPI 61
Time 7 Input Stack Fall 2006 Costas Busch - RPI 62
Time 8 Input Stack accept Fall 2006 Costas Busch - RPI 63
Formalities for PDAs Fall 2006 Costas Busch - RPI 64
Transition function: Fall 2006 Costas Busch - RPI 65
Transition function: Fall 2006 Costas Busch - RPI 66
Formal Definition Pushdown Automaton (PDA) Accept states States Input alphabet Transition Initial Stack function state alphabet Fall 2006 Costas Busch - RPI Stack start symbol 67
Instantaneous Description Current state Fall 2006 Remaining input Costas Busch - RPI Current stack contents 68
Example: Instantaneous Description Time 4: Input Stack Fall 2006 Costas Busch - RPI 69
Example: Instantaneous Description Time 5: Input Stack Fall 2006 Costas Busch - RPI 70
We write: Time 4 Fall 2006 Time 5 Costas Busch - RPI 71
A computation: Fall 2006 Costas Busch - RPI 72
For convenience we write: Fall 2006 Costas Busch - RPI 73
Language of PDA Language accepted by PDA Initial state Fall 2006 Costas Busch - RPI : Accept state 74
Example: PDA Fall 2006 : Costas Busch - RPI 75
PDA Fall 2006 : Costas Busch - RPI 76
Therefore: PDA Fall 2006 : Costas Busch - RPI 77
- Slides: 77