760 likes | 839 Views
Pushdown Automata PDAs. Pushdown Automaton -- PDA. Input String. Stack. States. Initial Stack Symbol. Stack. Stack. stack head. top. bottom. special symbol. The States. Pop symbol. Input symbol. Push symbol. input. stack. top. Replace. input. stack. top. Push. input.
E N D
Pushdown AutomataPDAs COMP 335
Pushdown Automaton -- PDA Input String Stack States COMP 335
Initial Stack Symbol Stack Stack stack head top bottom special symbol COMP 335
The States Pop symbol Input symbol Push symbol COMP 335
input stack top Replace COMP 335
input stack top Push COMP 335
input stack top Pop COMP 335
input stack top No Change COMP 335
A Possible Transition input stack empty Pop top COMP 335
A Bad Transition input Empty stack HALT The automaton Halts in state and Rejects the input string COMP 335
A Bad Transition input Empty stack HALT The automaton Halts in state and Rejects the input string COMP 335
No transition is allowed to be followed when the stack is empty Empty stack COMP 335
A Good Transition input stack Pop top COMP 335
Non-Determinism These are allowed transitions in a Non-deterministic PDA (NPDA) COMP 335
NPDA: Non-Deterministic PDA Example: COMP 335
Execution Example: Time 0 Input Stack current state COMP 335
Time 1 Input Stack COMP 335
Time 2 Input Stack COMP 335
Time 3 Input Stack COMP 335
Time 4 Input Stack COMP 335
Time 5 Input Stack COMP 335
Time 6 Input Stack COMP 335
Time 7 Input Stack COMP 335
Time 8 Input Stack accept COMP 335
A string is accepted if there is a computation such that: All the input is consumed AND The last state is a final state At the end of the computation, we do not care about the stack contents COMP 335
The input string is accepted by the NPDA: COMP 335
In general, is the language accepted by the NPDA: COMP 335
NPDA -- Another example NPDA COMP 335
Execution Example: Time 0 Input Stack COMP 335
Time 1 Input Stack COMP 335
Time 2 Input Stack COMP 335
Time 3 Input Guess the middle of string Stack COMP 335
Time 4 Input Stack COMP 335
Time 5 Input Stack COMP 335
Time 6 Input Stack accept COMP 335
Rejection Example: Time 0 Input Stack COMP 335
Time 1 Input Stack COMP 335
Time 2 Input Stack COMP 335
Time 3 Input Guess the middle of string Stack COMP 335
Time 4 Input Stack COMP 335
Time 5 There is no possible transition. Input Input is not consumed Stack COMP 335
Another computation on the same string: Input Time 0 Stack COMP 335
Time 1 Input Stack COMP 335
Time 2 Input Stack COMP 335
Time 3 Input Stack COMP 335
Time 4 Input Stack COMP 335
Time 5 Input No final state is reached Stack COMP 335
There is no computation that accepts string COMP 335
A string is rejected if there is no computation such that: All the input is consumed AND The last state is a final state At the end of the computation, we do not care about the stack contents COMP 335
In other words, a string is rejected if in every computation with this string: The input cannot be consumed OR The input is consumed and the last state is not a final state OR The stack head moves below the bottom of the stack COMP 335