1. The document describes the process of converting a regular expression (RE) = (ab+c)* to an equivalent deterministic finite automaton (DFA).
2. It starts with the equivalent non-deterministic finite automaton with epsilon transitions (NFA-ε) for the given RE.
3. It then constructs the DFA by calculating the epsilon-closure of states and determining the transitions between states for each symbol in the alphabet.
4. The resulting DFA has 4 states - A, B, C, D and the transition table and diagram are shown.
Software Development Life Cycle By Team Orange (Dept. of Pharmacy)
Convert RE (ab+c)* to DFA
1. Convert RE to DFA
1
a
2 b
4
5 6
c
7
𝜀
𝜀
𝜀
8
𝜀
9 𝜀 𝜀
𝜀
10
NFA States
DFA
State
Next State
a b c
Dstates
𝜀
Transition table of DFA
Given RE = (ab+c)*
Equivalent NFA-ε is:
2. Convert RE to DFA
𝜀
NFA States
DFA
State
Next State
a b c
Dstates
Transition table of DFA
Initial state of NFA is {9}
Ε-closure(9)={9,7,1,5,10} ------
Where A is the initial state of DFA
A
3. Mark state A
1
a
2 b
4
5 6
c
7
𝜀
𝜀
𝜀
8
𝜀
9 𝜀 𝜀
𝜀
10
NFA States
DFA
State
Next State
a b c
{9,7,1,5,10} A
Dstates
𝜀
Next need to find transition of (A,a) (A,b) (A,c)
4. Compute 𝜀-closure(move(A, a))
1
a
2 b
4
5 6
c
7
𝜀
𝜀
8
𝜀
𝜀
9 𝜀 𝜀
𝜀
10
NFA States
DFA
State
Next State
a b c
{9,7,1,5,10} A
Dstates
𝜀
δ( A,a) = δ( (9,7,1,5,10),a) = {2}
=Ε-closure(2) = {2} ------ B
5. Compute 𝜀-closure(move(A, a))
1
a
2 b
4
5 6
c
7
𝜀
𝜀
8
𝜀
𝜀
9 𝜀 𝜀
𝜀
10
NFA States
DFA
State
Next State
a b c
{9,7,1,5,10} A B
{2} B
Dstates
𝜀
δ( A,a) = δ( (9,7,1,5,10),a) = {2}
Ε-closure(2) = {2} ------ B
6. Compute 𝜀-closure(move(A, b))
1
a
2 b
4
5 6
c
7
𝜀
𝜀
8
𝜀
𝜀
9 𝜀 𝜀
𝜀
10
NFA States
DFA
State
Next State
a b c
{9,7,1,5,10} A B -
{2} B
Dstates
𝜀
7. Compute 𝜀-closure(move(A, c))
1
a
2 b
4
5 6
c
7
𝜀
𝜀
8
𝜀
𝜀
9 𝜀 𝜀
𝜀
10
NFA States
DFA
State
Next State
a b c
{9,7,1,5,10} A B -
{2} B
Dstates
𝜀
δ( A,c) = δ( (9,7,1,5,10),c) = {6}
Ε-closure(6) = {6,8,10,7,1,5} ------ C
8. Mark move(A, c)) C
1
a
2 b
4
5 6
c
7
𝜀
𝜀
8
𝜀
𝜀
9 𝜀 𝜀
𝜀
10
NFA States
DFA
State
Next State
a b c
{9,7,1,5,10} A B - C
{2} B
{6,8,10,7,1,5} C
Dstates
𝜀
9. Compute 𝜀-closure(move(B, a))
1
a
2 b
4
5 6
c
7
𝜀
𝜀
8
𝜀
𝜀
9 𝜀 𝜀
𝜀
10
NFA States
DFA
State
Next State
a b c
{9,7,1,5,10} A B - C
{2} B -
{6,8,10,7,1,5} C
Dstates
𝜀
10. Compute 𝜀-closure(move(B, b))
1
a
2 b
4
5 6
c
7
𝜀
𝜀
8
𝜀
𝜀
9 𝜀 𝜀
𝜀
10
NFA States
DFA
State
Next State
a b c
{9,7,1,5,10} A B - C
{2} B -
{6,8,10,7,1,5} C
Dstates
𝜀
δ( B,b) = δ( (2,b) = {4}
Ε-closure(4) = {4,8,10,7,1,5} ------ D
11. Mark (move(B, b))
1
a
2 b
4
5 6
c
7
𝜀
𝜀
8
𝜀
𝜀
9 𝜀 𝜀
𝜀
10
NFA States
DFA
State
Next State
a b c
{9,7,1,5,10} A B - C
{2} B - D
{6,8,10,7,1,5} C
{4,8,7,1,5,10} D
Dstates
𝜀
12. Mark - (move(B, c))
1
a
2 b
4
5 6
c
7
𝜀
𝜀
8
𝜀
𝜀
9 𝜀 𝜀
𝜀
10
NFA States
DFA
State
Next State
a b c
{9,7,1,5,10} A B - C
{2} B - D -
{6,8,10,7,1,5} C
{4,8,7,1,5,10} D
Dstates
𝜀
13. Compute 𝜀-closure(move(C, a))
1
a
2 b
4
5 6
c
7
𝜀
𝜀
8
𝜀
𝜀
9 𝜀 𝜀
𝜀
10
NFA States
DFA
State
Next State
a b c
{9,7,1,5,10} A B - C
{2} B - D -
{6,8,10,7,1,5} C B
{4,8,7,1,5,10} D
Dstates
𝜀
B
δ( C,a) = δ( (6,8,10,7,1,5)),a) = {2}
Ε-closure(2) = {2} ------
14. Mark (move(C, b))
1
a
2 b
4
5 6
c
7
𝜀
𝜀
8
𝜀
𝜀
9 𝜀 𝜀
𝜀
10
NFA States
DFA
State
Next State
a b c
{9,7,1,5,10} A B - C
{2} B - D -
{6,8,10,7,1,5} C B -
{4,8,7,1,5,10} D
Dstates
𝜀
15. Compute 𝜀-closure(move(C, c))
1
a
2 b
4
5 6
c
7
𝜀
𝜀
8
𝜀
𝜀
9 𝜀 𝜀
𝜀
10
NFA States
DFA
State
Next State
a b c
{9,7,1,5,10} A B - C
{2} B - D -
{6,8,10,7,1,5} C B -
{4,8,7,1,5,10} D
Dstates
𝜀
δ( C,c) = δ( (6,8,10,7,1,5)),a) = {6}
Ε-closure(6) = {6,8,10,7,1,5} ------ C
16. Mark (move(C, c))
1
a
2 b
4
5 6
c
7
𝜀
𝜀
8
𝜀
𝜀
9 𝜀 𝜀
𝜀
10
NFA States
DFA
State
Next State
a b c
{9,7,1,5,10} A B - C
{2} B - D -
{6,8,10,7,1,5} C B - C
{4,8,7,1,5,10} D
Dstates
𝜀
17. Compute 𝜀-closure(move(D, a))
1
a
2 b
4
5 6
c
7
𝜀
𝜀
8
𝜀
𝜀
9 𝜀 𝜀
𝜀
10
NFA States
DFA
State
Next State
a b c
{9,7,1,5,10} A B - C
{2} B - D -
{6,8,10,7,1,5} C B - C
{4,8,7,1,5,10} D
Dstates
𝜀
δ( D,a) = δ( (6,8,10,7,1,5)),a) = {2}
Ε-closure(2) = {2} ------ B
18. Mark (move(D, a))
1
a
2 b
4
5 6
c
7
𝜀
𝜀
8
𝜀
𝜀
9 𝜀 𝜀
𝜀
10
NFA States
DFA
State
Next State
a b c
{9,7,1,5,10} A B - C
{2} B - D -
{6,8,10,7,1,5} C B - C
{4,8,7,1,5,10} D B
Dstates
𝜀
19. Mark (move(D, b))
1
a
2 b
4
5 6
c
7
𝜀
𝜀
8
𝜀
𝜀
9 𝜀 𝜀
𝜀
10
NFA States
DFA
State
Next State
a b c
{9,7,1,5,10} A B - C
{2} B - D -
{6,8,10,7,1,5} C B - C
{4,8,7,1,5,10} D B -
Dstates
𝜀
20. Compute 𝜀-closure(move(D, c))
1
a
2 b
4
5 6
c
7
𝜀
𝜀
8
𝜀
𝜀
9 𝜀 𝜀
𝜀
10
NFA States
DFA
State
Next State
a b c
{9,7,1,5,10} A B - C
{2} B - D -
{6,8,10,7,1,5} C B - C
{4,8,7,1,5,10} D B
Dstates
𝜀
C
( D,c) = δ( (4,8,7,1,5,10)),c) = {6}
Ε-closure(6) = {6,8,10,7,1,5} ------
21. Mark (move(D, c))
1
a
2 b
4
5 6
c
7
𝜀
𝜀
8
𝜀
𝜀
9 𝜀 𝜀
𝜀
10
NFA States
DFA
State
Next State
a b c
{9,7,1,5,10} A B - C
{2} B - D -
{6,8,10,7,1,5} C B - C
{4,8,7,1,5,10} D B - C
Dstates
𝜀