NFA (Non-Deterministic finite automata)

  • NFA stands for non-deterministic finite automata. It is easy to construct an NFA than DFA for a given regular language.
  • The finite automata are called NFA when there exist many paths for specific input from the current state to the next state.
  • Every NFA is not DFA, but each NFA can be translated into DFA.
  • NFA is defined in the same way as DFA but with the following two exceptions, it contains multiple next states, and it contains ε transition.

In the following image, we can see that from state q0 for input a, there are two next states q1 and q2, similarly, from q0 for input b, the next states are q0 and q1. Thus it is not fixed or determined that with a particular input where to go next. Hence this FA is called non-deterministic finite automata.

Non-Deterministic finite automata

Formal definition of NFA:

NFA also has five states same as DFA, but with different transition function, as shown follows:

δ: Q x ∑ →2Q

where,

 
  1. Q: finite set of states  
  2. ∑: finite set of the input symbol  
  3. q0: initial state   
  4. F: final state  
  5. δ: Transition function  

Graphical Representation of an NFA

The state is represented by vertices.

  1. The arc labeled with an input character show the transitions.
  2. The initial state is marked with an arrow.
  3. The final state is denoted by the double circle.

Example 1:

 
  1. Q = {q0, q1, q2}  
  2. ∑ = {01}  
  3. q0 = {q0}  
  4. F = {q2}  

Solution:

Transition diagram:

Non-Deterministic finite automata

Transition Table:

Present StateNext state for Input 0Next State of Input 1
→q0q0, q1q1
q1q2q0
*q2q2q1, q2

In the above diagram, we can see that when the current state is q0, on input 0, the next state will be q0 or q1, and on 1 input the next state will be q1. When the current state is q1, on input 0 the next state will be q2 and on 1 input, the next state will be q0. When the current state is q2, on 0 input the next state is q2, and on 1 input the next state will be q1 or q2.

Example 2:

NFA with ∑ = {0, 1} accepts all strings with 01.

Solution:

Non-Deterministic finite automata

Transition Table:

Present StateNext state for Input 0Next State of Input 1
→q0q1ε
q1εq2
*q2q2q2

Example 3:

NFA with ∑ = {0, 1} and accept all string of length atleast 2.

Solution:

Non-Deterministic finite automata

Transition Table:

Present StateNext state for Input 0Next State of Input 1
→q0q1q1
q1q2q2
*q2εε
Share: