NFA have rules similar to those of DFA but have some differences. Some basic difference are mentioned below.

**NFA** |
**DFA** |

NFA stands for Nondeterministic Finite Automata. |
DFA stands for Deterministic Finite Automata. |

Its not mandatory to generate transition for each alphabet in the language from a given state to its final state |
Its mandatory to generate transition for each alphabet in the language from a given state to its final state |

From one state, many transitions of one alphabet can move to different states. |
From one state, only one transition of one alphabet can be move to one state. |

it is not fixed that with a specific input where to go next on which state. |
it is fixed that with a specific input where to go next on which state. |

NFA can use Empty String transition. |
DFA cannot use Empty String transition. |

Works like multiple small machines working at the same time. |
Works like one machine working at a time. |

NFA is easier to construct |
DFA is more strict with rules and so difficult to construct |

Time required for reading an input string is more. |
Time required for reading an input string is less. |

Not all NFA are DFA |
All DFA are NFA |

δ: Q X Σ → 2^{Q } next possible state belongs to power set of Q |
δ: Q x ∑→Q next possible state belongs to Q. |

## Examples of NFA VS DFA