
- Automata Theory - Applications
- Automata Terminology
- Basics of String in Automata
- Set Theory for Automata
- Finite Sets and Infinite Sets
- Algebraic Operations on Sets
- Relations Sets in Automata Theory
- Graph and Tree in Automata Theory
- Transition Table in Automata
- What is Queue Automata?
- Compound Finite Automata
- Complementation Process in DFA
- Closure Properties in Automata
- Concatenation Process in DFA
- Language and Grammars
- Language and Grammar
- Grammars in Theory of Computation
- Language Generated by a Grammar
- Chomsky Classification of Grammars
- Context-Sensitive Languages
- Finite Automata
- What is Finite Automata?
- Finite Automata Types
- Applications of Finite Automata
- Limitations of Finite Automata
- Two-way Deterministic Finite Automata
- Deterministic Finite Automaton (DFA)
- Non-deterministic Finite Automaton (NFA)
- NDFA to DFA Conversion
- Equivalence of NFA and DFA
- Dead State in Finite Automata
- Minimization of DFA
- Automata Moore Machine
- Automata Mealy Machine
- Moore vs Mealy Machines
- Moore to Mealy Machine
- Mealy to Moore Machine
- Myhill–Nerode Theorem
- Mealy Machine for 1’s Complement
- Finite Automata Exercises
- Complement of DFA
- Regular Expressions
- Regular Expression in Automata
- Regular Expression Identities
- Applications of Regular Expression
- Regular Expressions vs Regular Grammar
- Kleene Closure in Automata
- Arden’s Theorem in Automata
- Convert Regular Expression to Finite Automata
- Conversion of Regular Expression to DFA
- Equivalence of Two Finite Automata
- Equivalence of Two Regular Expressions
- Convert Regular Expression to Regular Grammar
- Convert Regular Grammar to Finite Automata
- Pumping Lemma in Theory of Computation
- Pumping Lemma for Regular Grammar
- Pumping Lemma for Regular Expression
- Pumping Lemma for Regular Languages
- Applications of Pumping Lemma
- Closure Properties of Regular Set
- Closure Properties of Regular Language
- Decision Problems for Regular Languages
- Decision Problems for Automata and Grammars
- Conversion of Epsilon-NFA to DFA
- Regular Sets in Theory of Computation
- Context-Free Grammars
- Context-Free Grammars (CFG)
- Derivation Tree
- Parse Tree
- Ambiguity in Context-Free Grammar
- CFG vs Regular Grammar
- Applications of Context-Free Grammar
- Left Recursion and Left Factoring
- Closure Properties of Context Free Languages
- Simplifying Context Free Grammars
- Removal of Useless Symbols in CFG
- Removal Unit Production in CFG
- Removal of Null Productions in CFG
- Linear Grammar
- Chomsky Normal Form (CNF)
- Greibach Normal Form (GNF)
- Pumping Lemma for Context-Free Grammars
- Decision Problems of CFG
- Pushdown Automata
- Pushdown Automata (PDA)
- Pushdown Automata Acceptance
- Deterministic Pushdown Automata
- Non-deterministic Pushdown Automata
- Construction of PDA from CFG
- CFG Equivalent to PDA Conversion
- Pushdown Automata Graphical Notation
- Pushdown Automata and Parsing
- Two-stack Pushdown Automata
- Turing Machines
- Basics of Turing Machine (TM)
- Representation of Turing Machine
- Examples of Turing Machine
- Turing Machine Accepted Languages
- Variations of Turing Machine
- Multi-tape Turing Machine
- Multi-head Turing Machine
- Multitrack Turing Machine
- Non-Deterministic Turing Machine
- Semi-Infinite Tape Turing Machine
- K-dimensional Turing Machine
- Enumerator Turing Machine
- Universal Turing Machine
- Restricted Turing Machine
- Convert Regular Expression to Turing Machine
- Two-stack PDA and Turing Machine
- Turing Machine as Integer Function
- Post–Turing Machine
- Turing Machine for Addition
- Turing Machine for Copying Data
- Turing Machine as Comparator
- Turing Machine for Multiplication
- Turing Machine for Subtraction
- Modifications to Standard Turing Machine
- Linear-Bounded Automata (LBA)
- Church's Thesis for Turing Machine
- Recursively Enumerable Language
- Computability & Undecidability
- Turing Language Decidability
- Undecidable Languages
- Turing Machine and Grammar
- Kuroda Normal Form
- Converting Grammar to Kuroda Normal Form
- Decidability
- Undecidability
- Reducibility
- Halting Problem
- Turing Machine Halting Problem
- Rice's Theorem in Theory of Computation
- Post’s Correspondence Problem (PCP)
- Types of Functions
- Recursive Functions
- Injective Functions
- Surjective Function
- Bijective Function
- Partial Recursive Function
- Total Recursive Function
- Primitive Recursive Function
- μ Recursive Function
- Ackermann’s Function
- Russell’s Paradox
- Gödel Numbering
- Recursive Enumerations
- Kleene's Theorem
- Kleene's Recursion Theorem
- Advanced Concepts
- Matrix Grammars
- Probabilistic Finite Automata
- Cellular Automata
- Reduction of CFG
- Reduction Theorem
- Regular expression to ∈-NFA
- Quotient Operation
- Parikh’s Theorem
- Ladner’s Theorem
Decision Problems for Regular Languages
Decision Problems are those problems that can be answered with a simple "yes" or "no." In computer science, we see these problems very often because they help us determine specific properties of languages and automata. Finite Automata (FA) are a type of finite state machine. FA can only memorize a finite amount of information; they are limited to answering decision problems that require only a finite amount of memory.
In this chapter, we will see various decision problems related to Regular Expressions (RE) and Finite Automata (FA). We will use straightforward language and examples to explain these concepts for easy understanding.
Membership Problem
The first decision problem we consider is whether a string x belongs to a regular expression R. This problem is known as the membership problem.
Explanation
A regular expression R can be converted to an equivalent finite automaton M. To check if a string x belongs to the regular expression R, we apply x to M. If M reaches its final state upon processing x, then x belongs to R; otherwise, it does not.
Example
Consider the regular expression R = (a | b)* a. The equivalent finite automaton M will accept strings that end in 'a'. If we take the string x = "bba", applying this string to M will lead M to its final state. Hence, x belongs to R.
Emptiness Problem
The next problem is determining whether the language set of an FA M is empty, i.e., whether L(M) = ∅.
Explanation
An FA does not accept any string if it does not have any final state or if its final state is inaccessible. To determine whether L(M) = ∅ we calculate the set of states Sk reached from the beginning state q0 upon applying a string of length k. If there is no final state among the reachable states, then L(M) = ∅ otherwise, L(M) ≠ ∅.
Example
Consider an FA M with states q0, q1, q2 where q2 is the final state, but there is no path from q0 or q1 to q2. Since the final state is inaccessible, L(M) = ∅.
3. Finiteness Problem
The third problem is to determine whether the language set of an FA is finite, i.e., whether L(M) is finite.
Explanation
Using the pumping lemma, we can say that for an FA to accept a string of length ≥n (where n is the number of states of the FA), it must traverse at least one loop. The language accepted by an FA is finite if the length of the accepted strings is less than n.
Example
Consider an FA M with 3 states. If the length of accepted strings is less than 3, then L(M) is finite. If there exists a string that causes the FA to loop, making the string length greater than or equal to 3, L(M) is infinite.
Intersection Problem
The fourth problem is determining whether there exists any string accepted by two FAs M1 and M2.
Explanation
This problem is decidable by constructing an FA M that accepts the intersection of the languages of M1 and M2. Then, we apply the emptiness problem to M. If L(M) = ∅, then no such string exists; otherwise, a common string does exist.
Example
Suppose M1 accepts all strings that end in 'a' and M2 accepts all strings that start with 'a'. The intersection L(M1) ∩ L(M2) will accept strings that start and end with 'a'. If there is at least one such string, say "aa", it is accepted by both M1 and M2.
Subset Problem
The fifth problem involves checking whether the language set of one FA M1 is a subset of the language set of another FA M2, i.e., whether L(M1) ⊆ L(M2).
Explanation
To solve this problem, we construct an FA M that accepts the difference L(M1) - L(M2). Then, we apply the emptiness problem to M. If L(M) = ∅, then L(M1) ⊆ L(M2).
Example
Let M1 accept all strings over the alphabet {a, b} and M2 accept all strings that end in 'b'. Clearly, L(M1) is not a subset of L(M2) because there are strings in L(M1) that do not end in 'b', and hence not in L(M2).
Equality Problem
The sixth problem checks whether two FAs M1 and M2 accept the same language, i.e., whether L(M1) = L(M2).
Explanation
To determine if two FAs M1 and M2 accept the same language, we construct two FAs: one M that accepts L(M1) - L(M2) and another M' that accepts L(M2) - L(M1). We then apply the emptiness problem to both M and M'. If both languages are empty, i.e., L(M) = ∅ and L(M') = , then L(M1) = L(M2).
Example
Suppose M1 accepts all strings that end in 'a' or 'b', and M2 accepts all strings over the alphabet {a, b}. The languages L(M1) and L(M2) are not the same because M2 accepts all strings, whereas M1 only accepts strings that end in 'a' or 'b'. Hence, L(M1) ≠ L(M2).
Regular Expression Equivalence Problem
The seventh problem is whether two regular expressions R1 and R2 represent the same language set.
Explanation
This problem can be reduced to the equality problem discussed earlier. First, convert both regular expressions R1 and R2 into their equivalent finite automata M1 and M2. Then, use the method described in the equality problem to check if L(M1) = L(M2).
Example
Consider two regular expressions R1 = (a | b)* and R2 = (a | b) (a | b)*. After converting these into FAs, we see that both M1 and M2 accept the same language, which is the set of all strings over the alphabet {a, b}. Therefore, L(R1) = L(R2).
Minimal FA Problem
The eighth and final problem involves determining whether a given FA is the minimal state FA for a language L.
Explanation
To solve this, we minimize the given FA M using state minimization techniques and generate a minimized FA M'. If the number of states in M and M' are the same, then M is already minimized; otherwise, it is not. This problem is decidable.
Example
Suppose we have an FA M with 4 states. By applying minimization techniques, we reduce M to an FA M' with 3 states. Since M' has fewer states than M, M was not minimal. The minimized FA M' is the minimal state FA for the language L.
Conclusion
There are many such decision problems available in automata theory but for finite automata, they are limited due to the finite memory size of finite automata. These problems include determining whether a string belongs to a regular expression or not.
In this chapter, we have had a detailed overview of several decision problems for regular languages using simple language and examples.