Program to Implement NFA with epsilon move to DFA Conversion
Non-determinestic Finite Automata (NFA) : NFA is a finite automaton where for some cases when a single input is given to a single state, the machine goes to more than 1 states, i.e. some of the moves cannot be uniquely determined by the present state and the present input symbol.
An NFA can be represented as M = { Q, ∑, ∂, q0, F}
Q → Finite non-empty set of states.
∑ → Finite non-empty set of input symbols.
∂ → Transitional Function.
q0 → Beginning state.
F → Final State
NFA with (null) or ∈ move : If any finite automata contains ε (null) move or transaction, then that finite automata is called NFA with ∈ moves
Example :
Consider the following figure of NFA with ∈ move :
Transition state table for the above NFA
Epsilon (∈) – closure : Epsilon closure for a given state X is a set of states which can be reached from the states X with only (null) or ε moves including the state X itself. In other words, ε-closure for a state can be obtained by union operation of the ε-closure of the states which can be reached from X with a single ε move in recursive manner.
For the above example ∈ closure are as follows :
∈ closure(A) : {A, B, C} ∈ closure(B) : {B, C} ∈ closure(C) : {C}
Deterministic Finite Automata (DFA) :
DFA is a finite automata where, for all cases, when a single input is
given to a single state, the machine goes to a single state, i.e., all
the moves of the machine can be uniquely determined by the present state
and the present input symbol.
Steps to Convert NFA with ε-move to DFA :
Step 1 : Take ∈ closure for the beginning state of NFA as beginning state of DFA.
Step 2 : Find the states that can be traversed from the present for each input symbol
(union of transition value and their closures for each states of NFA present in current state of DFA).Step 3 : If any new state is found take it as current state and repeat step 2.
Step 4 : Do repeat Step 2 and Step 3 until no new state present in DFA transition table.
Step 5 : Mark the states of DFA which contains final state of NFA as final states of DFA.
Transition State Table for DFA corresponding to above NFA
DFA STATE DIAGRAM
Examples :
Input : 6 2 FC - BF - C - - - D E A - A - BF - - - Output : STATES OF NFA : A, B, C, D, E, F, GIVEN SYMBOLS FOR NFA: 0, 1, eps NFA STATE TRANSITION TABLE STATES |0 |1 eps --------+------------------------------------ A |FC |- |BF B |- |C |- C |- |- |D D |E |A |- E |A |- |BF F |- |- |- e-Closure (A) : ABF e-Closure (B) : B e-Closure (C) : CD e-Closure (D) : D e-Closure (E) : BEF e-Closure (F) : F ******************************************************** DFA TRANSITION STATE TABLE STATES OF DFA : ABF, CDF, CD, BEF, GIVEN SYMBOLS FOR DFA: 0, 1, STATES |0 |1 --------+----------------------- ABF |CDF |CD CDF |BEF |ABF CD |BEF |ABF BEF |ABF |CD Input : 9 2 - - BH - - CE D - - - - G - F - - - G - - BH I - - - - - Output : STATES OF NFA : A, B, C, D, E, F, G, H, I, GIVEN SYMBOLS FOR NFA: 0, 1, eps NFA STATE TRANSITION TABLE STATES |0 |1 eps --------+------------------------------------ A |- |- |BH B |- |- |CE C |D |- |- D |- |- |G E |- |F |- F |- |- |G G |- |- |BH H |I |- |- I |- |- |- e-Closure (A) : ABCEH e-Closure (B) : BCE e-Closure (C) : C e-Closure (D) : BCDEGH e-Closure (E) : E e-Closure (F) : BCEFGH e-Closure (G) : BCEGH e-Closure (H) : H e-Closure (I) : I ******************************************************** DFA TRANSITION STATE TABLE STATES OF DFA : ABCEH, BCDEGHI, BCEFGH, GIVEN SYMBOLS FOR DFA: 0, 1, STATES |0 |1 --------+----------------------- ABCEH |BCDEGHI |BCEFGH BCDEGHI |BCDEGHI |BCEFGH BCEFGH |BCDEGHI |BCEFGH
Explanation :
First line of the input contains the number of states (N) of NFA. Second line of the input says the number of input symbols (S). In example1 number of states of NFA is 6 i.e.( A, B, C, D, E, F) and 2 input symbols i.e. ( 0, 1). Since we are working on NFA with ∈ move, ∈ will be added as an extra input symbol. The next N
lines contains the transition values for every state of NFA. The value
of ith row, jth column indicates transition value for ith state on jth
input symbol. Here in example1 transition(A, 0) : FC.
Output contains the NFA, ∈ closure for every states of the corresponding NFA and DFA obtained by converting the input NFA. States and input symbols of the DFA are also specified.
Use of NFA with ∈ move : If we want to construct an FA
which accepts a language, sometimes it becomes very difficult or seems
to be impossible to construct a direct NFA or DFA. But if NFA with ∈
moves is used, then the transitional diagram can be constructed and
described easily.
0 Comments