- Trending Categories
- Data Structure
- Networking
- RDBMS
- Operating System
- Java
- MS Excel
- iOS
- HTML
- CSS
- Android
- Python
- C Programming
- C++
- C#
- MongoDB
- MySQL
- Javascript
- PHP
- Physics
- Chemistry
- Biology
- Mathematics
- English
- Economics
- Psychology
- Social Studies
- Fashion Studies
- Legal Studies

- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who

# What is the difference between DFA and NFA?

DFA is the short form for the deterministic finite automata and NFA is for the Non-deterministic finite automata. Now, let us understand in detail about these two finite automata.

## DFA

A Deterministic Finite automata is a five-tuple automata. Following is the definition of DFA −

**M=(Q, Σ, δ,q0,F)**

Where,

- Q : Finite set called states.
- Σ : Finite set called alphabets.
- δ : Q × Σ → Q is the transition function.
- q0 ϵ Q is the start or initial state.
- F : Final or accept state.

## NFA

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

**δ: Q X Σ → 2 ^{Q}**

Where,

- Q : Finite set of states
- Σ : Finite set of the input symbol
- q0 : Initial state
- F : Final state
- δ : Transition function

## Differences

The major differences between the DFA and the NFA are as follows −

Deterministic Finite Automata | Non-Deterministic Finite Automata |
---|---|

Each transition leads to exactly one state called as deterministic | A transition leads to a subset of states i.e. some transitions can be non-deterministic. |

Accepts input if the last state is in Final | Accepts input if one of the last states is in Final. |

Backtracking is allowed in DFA. | Backtracking is not always possible. |

Requires more space. | Requires less space. |

Empty string transitions are not seen in DFA. | Permits empty string transition. |

For a given state, on a given input we reach a deterministic and unique state. | For a given state, on a given input we reach more than one state. |

DFA is a subset of NFA. | Need to convert NFA to DFA in the design of a compiler. |

δ : Q × Σ → QFor example − δ(q0,a)={q1} | δ : Q × Σ → 2^{Q}For example − δ(q0,a)={q1,q2} |

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

DFA is understood as one machine. | NFA is understood as multiple small machines computing at the same time. |

- Related Articles
- What is the difference between DFA and NFA in compiler design?
- Convert NFA to DFA and explain the difference between them
- How to convert from NFA to DFA in TOC?
- Give an example problem of converting NFA to DFA.
- State the worst case number of states in DFA and NFA for a language?
- Explain with an example how to convert NFA to DFA.
- How to convert NFA with epsilon to DFA in TOC?
- Construct NFA for the following language and convert it into DFA using the algorithm - L = (aa+ (bb*)c*)
- What is Minimization of DFA?
- What is the difference between = and: = assignment operators?
- What is the difference between IAS and IPS?
- What is the difference between g++ and gcc?
- What is the difference between Hinduism and Buddhism?
- What is the difference between SQL and MySQL?
- What is the difference between Liter and Litre?

Advertisements