Can someone help me design PDA for {a^n b^m | n<=m<=2n}. Can you please design one with explanation.
PDA for {a^n b^m | n<=m<=2n}
3.3k Views Asked by RJ Naskar At
2
There are 2 best solutions below
Related Questions in AUTOMATA
- L = {www| w belongs to {0,1}*} prove via pumping lemma
- How to design a regex used for searching a pattern, rather than validating a pattern?
- Is $E_{LBA}$ a Turing recognizable language?
- Bisimulation in state transition system
- Lexical analyser : how to identify the end of a token
- Is ε terminal in context-free?
- How can I build string matching tree from array of regex-es?
- Simple explanation of PDA accept states?
- automata theorem: existance of a DFA
- Design DFA that checks wheter a boolean formula is true or false
- DFA that contains 1101 as a substring
- Number of Turing Machines?
- 1 or 2 right hand side variable in Context free language
- I'm trying to solve DFA
- Automata on ruby
Related Questions in PUSHDOWN-AUTOMATON
- A pushdown automaton that recognizes the negation of a language
- Simple explanation of PDA accept states?
- how do you create a context free grammar for this language and pda?
- What type of languages are accepted by a PDA in which stack size is limited?
- Why the following language cannot be defined using a Pushdown Automata (PDA)?
- how to figure out what language a PDA recognizes
- Deterministic Pushdown Automata for L = a^nb^n | n >=0) Python Program
- bounded PDA and context-free languages
- construct a pushdown automata for L={a^mb^n where n<=m<=2n}?
- accepting/rejecting Pushdown automata in haskell
- Repeated regex replace within bounds
- Deriving a state machine from a BNF grammar
- A Decidability Question
- How do I implement pushdown automaton in C#?
- How to solve this context free grammar
Related Questions in AUTOMATA-THEORY
- Grammar for a^n
- Can final and non-final states having identical configurations be merged together in a minimal DFA?
- Finding DFA of r* when r and DFA of r were deifined
- How to call a structured language that cannot loop or a functional language that cannot return
- What regular language intersects with 1*0* gives 1n0n
- Context free grammar for this language
- What type of languages are accepted by a PDA in which stack size is limited?
- Finiteness of Regular Language
- Notation for concat in set theory
- Python implementation for the CYK Algorithm
- CFG for a = b and c = d (length)
- In Context Free Grammer, do we replace all variable during a substitution? or can we apply substitution rule to only of the variable of same type?
- When to use Ø for states in DFA / NFA
- Design a turing machine to accept {1^n : n is prime number}
- How L={ww^Rx| where w, x belongs to {a,b}^* } is a regular language?
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
The idea here is this: read every a and push a symbol onto the stack for each one. Then, when you start reading b's, at each step, nondeterministically choose whether to read a single b and pop one stack symbol, or whether two read two b's and pop one stack symbol. Then, make the PDA accept if the input is exhausted and the stack is empty.
NPDAs accept if at least one path ends up accepting; so, as long as some pattern of guessing to read one or two b's for each stack symbol gets the right value of m, the string is accepted. It should be clear that for any value of m such that n <= m <= 2n, there is a solution to the linear system:
Here, x is the number of times the NPDA should guess that it reads one b, and y is the number of times the NPDA should guess that it reads two b's. We can subtract the 2nd from the 1st:
Because y must be nonnegative, we get our first condition, n <= m. Plugging this back into the 2nd origination equation gives:
Again, because x must be nonnegative, this gives our second condition, m <= 2n.