DFA stands for Deterministic Finite Automata. | NFA stands for Nondeterministic Finite Automata. |
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. |
DFA cannot use Empty String transition. | NFA can use Empty String transition. |
DFA can be understood as one machine. | NFA can be understood as multiple little machines computing at the same time. |
In DFA, the next possible state is distinctly set. | In NFA, each pair of state and input symbol can have many possible next states. |
DFA is more difficult to construct. | NFA is easier to construct. |
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. |
Time needed for executing an input string is less. | Time needed for executing an input string is more. |
All DFA are NFA. | Not all NFA are DFA. |
DFA requires more space. | NFA requires less space then DFA. |
Dead configuration is not allowed. eg: if we give input as 0 on q0 state so we must give 1 as input to q0 as self loop. | Dead configuration is allowed. eg: if we give input as 0 on q0 state so we can give next input 1 on q1 which will go to next state. |
δ: QxΣ -> Q i.e. next possible state belongs to Q. | δ: Qx(Σ U ε) -> 2^Q i.e. next possible state belongs to power set of Q. |
Conversion of Regular expression to DFA is difficult. | Conversion of Regular expression to NFA is simpler compared to DFA. |
Epsilon move is not allowed in DFA | Epsilon move is allowed in NFA |
In a DFA, there is only one possible transition for each input symbol from any given state. | In an NFA, there can be multiple transitions for a single input symbol from a given state. |