How to convert the finite automata into regular expressions?

Data Structure AlgorithmsComputer ScienceComputers

Problem

Convert the given finite automata (FA) into regular expression (RE).

Solution

There are two popular methods for converting a DFA to its regular expression −

  • Arden’s Method
  • State elimination method

Let’s consider the state elimination method to convert FA to RE.

Rules

The rules for state elimination method are as follows −

Rule 1

The initial state of DFA must not have any incoming edge.

If there is any incoming edge to the initial edge, then create a new initial state having no incoming edge to it.

Rule 2

There must exist only one final state in DFA.

If there exist multiple final states, then convert all the final states into non-final states and create a new single final state.

Rule 3

The final state of DFA must not have any outgoing edge.

If this exists, then create a new final state having no outgoing edge from it.

Rule 4

Eliminate all intermediate states one by one.

Now, apply these rules to convert the FA to RE easily.

The given FA is as follows −

Step 1

Initial state q1 has an incoming edge so create a new initial state qi.

Step 2

Final state q2 has an outgoing edge. So, create a new final state qf.

Step 3

Start eliminating intermediate states

First eliminate q1

There is a path going from qi to q2 via q1. So, after eliminating q1 we can connect a direct path from qi to q2 having cost.

εc*a=c*a

There is a loop on q2 using state qi. So, after eliminating q1 we put a direct loop to q2 having cost.

b.c*.a=bc*a

After eliminating q1, the FA looks like following −

Second eliminate q2

There is a direct path from qi to qf so, we can directly eliminate q2 having cost −

C*a(d+bc*a)* ε = c*a(d+bc*a)*

Which is our final regular expression for given finite automata.

raja
Published on 12-Jun-2021 09:33:14
Advertisements