870 likes | 1.14k 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. Alternatively. input. stack. top. Replace. input. stack. top.
E N D
Pushdown AutomataPDAs Courtesy Costas Busch - RPI
Pushdown Automaton -- PDA Input String Stack States Courtesy Costas Busch - RPI
Initial Stack Symbol Stack Stack stack head top bottom special symbol Courtesy Costas Busch - RPI
The States Pop symbol Input symbol Push symbol Alternatively Courtesy Costas Busch - RPI
input stack top Replace Courtesy Costas Busch - RPI
input stack top Push Courtesy Costas Busch - RPI
input stack top Pop Courtesy Costas Busch - RPI
input stack top No Change Courtesy Costas Busch - RPI
A Possible Transition input stack empty Pop top Courtesy Costas Busch - RPI
A Bad Transition input Empty stack HALT The automaton Halts in state and Rejects the input string Courtesy Costas Busch - RPI
A Bad Transition input Empty stack HALT The automaton Halts in state and Rejects the input string Courtesy Costas Busch - RPI
No transition is allowed to be followed When the stack is empty Empty stack Courtesy Costas Busch - RPI
A Good Transition input stack Pop top Courtesy Costas Busch - RPI
Non-Determinism These are allowed transitions in a Non-deterministic PDA (NPDA) Courtesy Costas Busch - RPI
NPDA: Non-Deterministic PDA Example: Courtesy Costas Busch - RPI
Execution Example: Time 0 Input Stack current state Courtesy Costas Busch - RPI
Time 1 Input Stack Courtesy Costas Busch - RPI
Time 2 Input Stack Courtesy Costas Busch - RPI
Time 3 Input Stack Courtesy Costas Busch - RPI
Time 4 Input Stack Courtesy Costas Busch - RPI
Time 5 Input Stack Courtesy Costas Busch - RPI
Time 6 Input Stack Courtesy Costas Busch - RPI
Time 7 Input Stack Courtesy Costas Busch - RPI
Time 8 Input Stack accept Courtesy Costas Busch - RPI
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 Courtesy Costas Busch - RPI
The input string is accepted by the NPDA: Courtesy Costas Busch - RPI
In general, is the language accepted by the NPDA: Courtesy Costas Busch - RPI
Another NPDA example NPDA Courtesy Costas Busch - RPI
Execution Example: Time 0 Input Stack Courtesy Costas Busch - RPI
Time 1 Input Stack Courtesy Costas Busch - RPI
Time 2 Input Stack Courtesy Costas Busch - RPI
Time 3 Input Guess the middle of string Stack Courtesy Costas Busch - RPI
Time 4 Input Stack Courtesy Costas Busch - RPI
Time 5 Input Stack Courtesy Costas Busch - RPI
Time 6 Input Stack accept Courtesy Costas Busch - RPI
Rejection Example: Time 0 Input Stack Courtesy Costas Busch - RPI
Time 1 Input Stack Courtesy Costas Busch - RPI
Time 2 Input Stack Courtesy Costas Busch - RPI
Time 3 Input Guess the middle of string Stack Courtesy Costas Busch - RPI
Time 4 Input Stack Courtesy Costas Busch - RPI
Time 5 There is no possible transition. Input Input is not consumed Stack Courtesy Costas Busch - RPI
Another computation on same string: Input Time 0 Stack Courtesy Costas Busch - RPI
Time 1 Input Stack Courtesy Costas Busch - RPI
Time 2 Input Stack Courtesy Costas Busch - RPI
Time 3 Input Stack Courtesy Costas Busch - RPI
Time 4 Input Stack Courtesy Costas Busch - RPI
Time 5 Input No final state is reached Stack Courtesy Costas Busch - RPI
There is no computation that accepts string Courtesy Costas Busch - RPI
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 Courtesy Costas Busch - RPI
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 Courtesy Costas Busch - RPI