![]() |
VOOZH | about |
Finite Automata and Regular Expressions are two ways to represent patterns in strings within formal language theory. While Finite Automata use states and transitions, Regular Expressions provide a compact symbolic notation.
Converting a Finite Automaton into a Regular Expression helps to understand their equivalence and is useful in fields like compiler design and text processing.
Step 1: If the initial state is either an accepting state or has incoming transitions, introduce a new non-accepting start state. Then, add an -transition (epsilon transition) from the new start state to the original start state.
Step 2: If there are multiple accepting states, or if the single accepting state has outgoing transitions, create a new accepting state. Change all other accepting states to non-accepting states. Add -transitions from each former accepting state to this new accepting state.
Step 3: For each state that is neither a start nor an accepting state, eliminate the state and update the transitions accordingly to maintain the functionality of the automaton.
Example:
👁 ImageSolution:
Let P and Q be 2 regular expressions. If P does not contain null string, then the following equation in R, viz R = Q + RP, Has a unique solution by R = QP*
Assumptions -
Using Arden’s Theorem to find Regular Expression of Deterministic Finite automata -
Example: 👁 Image
Solution: Here the initial state is q1 and the final state is q1. The equations for the three states q1, q2, and q3 are as follows:
We are given the following equations for three states: q1, q2, and q3:
Solving the Equations:
Step 1: Solve for q2
Now, apply Arden's Theorem to simplify further: q2 = q1b (b + ab)*
Step 2: Solve for q1
Hence, the regular expression is (a + b(b + ab)*aa)*.
GATE CS Corner Questions Practicing the following questions will help you test your knowledge. All questions have been asked in GATE in previous years or in GATE Mock Tests. It is highly recommended that you practice them.