# Difference between DFA and NFA

Prerequisite – Finite Automata

**1. DFA :**

DFA refers to Deterministic Finite Automaton. A Finite Automata(FA) is said to be deterministic, if corresponding to an input symbol, there is single resultant state i.e. there is only one transition.

A deterministic finite automata is set of five tuples and represented as,

Where,

Q: A non empty finite set of states present in the finite control(qo, q1, q2, …).

Σ: A non empty finite set of input symbols.

δ: It is a transition function that takes two arguments, a state and an input symbol, it returns a single state.

qo: It is starting state, one of the state in Q.

F: It is non-empty set of final states/ accepting states from the set belonging to Q.

**2. NFA :**

NFA refers to Nondeterministic Finite Automaton. A Finite Automata(FA) is said to be non deterministic, if there is more than one possible transition from one state on the same input symbol.

A non deterministic finite automata is also set of five tuples and represented as,

Where,

Q: A set of non empty finite states.

Σ: A set of non empty finite input symbols.

δ: It is a transition function that takes a state from Q and an input symbol from and returns a subset of Q.

qo: Initial state of NFA and member of Q.

F: A non-empty set of final states and member of Q.

**Difference between DFA and NFA :**

SR.NO. | DFA | NFA |
---|---|---|

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

2 | For each symbolic representation of the alphabet, there is only one state transition in DFA. | No need to specify how does the NFA react according to some symbol. |

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

4 | DFA can be understood as one machine. | NFA can be understood as multiple little machines computing at the same time. |

5 | In DFA, the next possible state is distinctly set. | In NFA, each pair of state and input symbol can have many possible next states. |

6 | DFA is more difficult to construct. | NFA is easier to construct. |

7 | DFA rejects the string in case it terminates in a state that is different from the accepting state. | NFA rejects the string in the event of all branches dying or refusing the string. |

8 | Time needed for executing an input string is less. | Time needed for executing an input string is more. |

9 | All DFA are NFA. | Not all NFA are DFA. |

10 | DFA requires more space. | NFA requires less space then DFA. |

Don’t stop now and take your learning to the next level. Learn all the important concepts of Data Structures and Algorithms with the help of the most trusted course: **DSA Self Paced**. Become industry ready at a student-friendly price.

## Recommended Posts:

- Difference Between Blu-Ray and DVD
- Difference between ELT and ETL
- Difference between TCP and RTP
- What is the difference between GUI and CUI?
- Difference Between Gi-Fi and Li-Fi
- Difference between RPC and RMI
- Difference between H.323 and SIP
- Difference between C and C#
- Difference between CLI and GUI
- Difference between 4NF and 5NF
- Difference between DDR 5 and DDR 3
- Difference Between SEO and SEM
- Difference between Blu-ray and DVD
- Difference between LAN and MAN
- Difference between PNG and GIF
- Difference between SDN and NFV
- Difference between PCI-E and PCI-X
- Difference between PCI and PCI-X
- Web 1.0, Web 2.0 and Web 3.0 with their difference
- Difference between T-SQL and PL-SQL

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.