- Trending Categories
Data Structure
Networking
RDBMS
Operating System
Java
MS Excel
iOS
HTML
CSS
Android
Python
C Programming
C++
C#
MongoDB
MySQL
Javascript
PHP
Physics
Chemistry
Biology
Mathematics
English
Economics
Psychology
Social Studies
Fashion Studies
Legal Studies
- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who
Explain Arden’s theorem to convert DFA to Regular Expression
There are two methods for converting a Deterministic Finite Automata (DFA) to Regular expression (RE). These methods are as follows −
- Arden's Theorem Method.
- State Elimination Method.
Let us understand the Arden's Theorem method in detail.
Arden's Theorem
Let P and Q be the two regular expressions.
If P does not contain null string, then the following equation in R, viz R = Q + RP,
Which has a unique solution by R = QP*
Here,
- The finite automata (FA) does not have epsilon moves.
- It must have only initial state q1.
- Its states are q1, q2, q3,....qn. The final state may be some qi where i<=n.
- qi is the regular expression representing a set of strings accepted by the finite automata even though qi is a final state.
Use of Arden's Theorem to find RE of DFA.
To find the regular expression for the given automata, we can first create the equations in the given form for all the states.
q1=q1α11+q2α21+----------+qnαn1+ε
q2=q1α12+q2α22+-----------+qnαn2
-
-
-
-
qn=q1α1n+q2α2n+------------+qnαnn.
By repeatedly applying substitutions and Arden's Theorem we can express qi in terms of α ij's. To get the set of strings recognized by the Finite State Automata (FSA), we have to take the union of all qi's corresponding to final states
Example
Note: For the parallel edges, there will be many expressions for that state in the expression.
Then, we solve those equations to get the equation for qi in terms of α ij and that expression is the required solution, where qi is a final state. It is shown below −
q 1= q a + q3a + € ( € move is because q1is the initial state)
q2 = q1b + q2b + q3b
q3 = q2a
Now, we will solve these equations, as shown below−
. q2 = q1b + q2b + q3b
= q1b + q2b + (q2a)b (Substituting value of q3)
= q1b + q2(b + ab)
= q1b (b + ab) * (Applying Arden's Theorem)
. q1 = q1a + q3a + €
= q1a + q2aa + € (Substituting value of q3)
= q1a + q1b(b + ab*)aa + € (Substituting value of q2)
= q1(a + b(b + ab) *aa) + €
= € (a+ b(b + ab) *aa) *
= (a + b(b + ab) *aa) *
Hence, the regular expression is (a + b(b + ab) *aa) *.
- Related Articles
- Explain Regular Expression "s" Metacharacter in Java
- C Program to construct DFA for Regular Expression (a+aa*b)*
- How to convert Regular expression to Finite Automata?
- Explain with an example how to convert NFA to DFA.
- Convert NFA to DFA and explain the difference between them
- Regular Expression "S" Metacharacter in Java
- Explain C# Quantifiers in regular expression
- Explain C# Substitution in regular expression
- Explain the concept of Regular expression.
- Explain the Star Height of Regular Expression and Regular Language
- Explain Python regular expression search vs match
- Explain C# Grouping Constructs in regular expression
- Explain Regular Expression "A" Metacharacter in Java
- Explain Regular Expression "w" Metacharacter in Java
- Explain the Java regular expression construct "re?".
