Finite Automata
Finite Automata
Finite Automata(FA) is the simplest machine to recognize patterns.The finite automata or finite state machine is
an abstract machine which have five elements or tuple. It has a set of states and rules for moving from one state to
another but it depends upon the applied input symbol. Basically it is an abstract model of digital computer.
Following figure shows some essential features of a general automation.
NFA
One important thing to note is, in NFA, if any path for an input string leads to a final state, then the input
string accepted. For example, in above NFA, there are multiple paths for input string “00”. Since, one of the
paths leads to a final state, “00” is accepted by above NFA.
Justification:
Since all the tuples in DFA and NFA are the same except for one of the tuples, which is Transition Function (δ)
In case of DFA
δ : Q X Σ --> Q
In case of NFA
δ : Q X Σ --> 2Q
1. Both NFA and DFA have same power and each NFA can be translated into a DFA.
2. There can be multiple final states in both DFA and NFA.
3. NFA is more of a theoretical concept.
4. DFA is used in Lexical Analysis in Compiler.
In this section, we will discuss the method of converting NFA to its equivalent DFA. In NFA, when a specific input
is given to the current state, the machine goes to multiple states. It can have zero, one or more than one move on a
given input symbol. On the other hand, in DFA, when a specific input is given to the current state, the machine goes
to only one state. DFA has only one move on a given input symbol.
Let, M = (Q, ∑, δ, q0, F) is an NFA which accepts the language L(M). There should be equivalent DFA denoted by
M' = (Q', ∑', q0', δ', F') such that L(M) = L(M').
Step 2: Add q0 of NFA to Q'. Then find the transitions from this start state.
Step 3: In Q', find the possible set of states for each input symbol. If this set of states is not in Q', then add it to Q'.
Step 4: In DFA, the final state will be all the states which contain F(final states of NFA)
Example 1:
Solution: For the given transition diagram we will first construct the transition table.
State 0 1
→q0 q0 q1
q1 {q1, q2} q1
1. δ'([q0], 0) = [q0]
2. δ'([q0], 1) = [q1]
1. δ'([q2], 0) = [q2]
2. δ'([q2], 1) = [q1, q2]
The state [q1, q2] is the final state as well because it contains a final state q2. The transition table for the constructed
DFA will be:
State 0 1
References:
1) https://www.geeksforgeeks.org/
2) https://www.javatpoint.com/