## Non-Deterministic Finite Automata-

Before you go through this article, make sure that you have gone through the previous article on Non-Deterministic Finite Automata.

In Non-Deterministic Finite Automata,

• For some current state and input symbol, there exists more than one next output states.
• A string is accepted only if there exists at least one transition path starting at initial state and ending at final state.

In this article, we will discuss how to convert a given NFA to a DFA.

## Converting NFA to DFA-

The following steps are followed to convert a given NFA to a DFA-

### Step-01:

• Let Q’ be a new set of states of the DFA. Q’ is null in the starting.
• Let T’ be a new transition table of the DFA.

### Step-02:

• Add start state of the NFA to Q’.
• Add transitions of the start state to the transition table T’.
• If start state makes transition to multiple states for some input alphabet, then treat those multiple states as a single state in the DFA.

 In NFA, if the transition of start state over some input alphabet is null, then perform the transition of start state over that input alphabet to a dead state in the DFA.

### Step-03:

If any new state is present in the transition table T’,

• Add the new state in Q’.
• Add transitions of that state in the transition table T’.

### Step-04:

Keep repeating Step-03 until no new state is present in the transition table T’.

Finally, the transition table T’ so obtained is the complete transition table of the required DFA.

## Problem-01:

Convert the following Non-Deterministic Finite Automata (NFA) to Deterministic Finite Automata (DFA)-

## Solution-

Transition table for the given Non-Deterministic Finite Automata (NFA) is-

 State / Alphabet a b →q0 q0 q0, q1 q1 – *q2 *q2 – –

### Step-01:

Let Q’ be a new set of states of the Deterministic Finite Automata (DFA).

Let T’ be a new transition table of the DFA.

### Step-02:

Add transitions of start state q0 to the transition table T’.

 State / Alphabet a b →q0 q0 {q0, q1}

### Step-03:

New state present in state Q’ is {q0, q1}.

Add transitions for set of states {q0, q1} to the transition table T’.

 State / Alphabet a b →q0 q0 {q0, q1} {q0, q1} q0 {q0, q1, q2}

### Step-04:

New state present in state Q’ is {q0, q1, q2}.

Add transitions for set of states {q0, q1, q2} to the transition table T’.

 State / Alphabet a b →q0 q0 {q0, q1} {q0, q1} q0 {q0, q1, q2} {q0, q1, q2} q0 {q0, q1, q2}

### Step-05:

Since no new states are left to be added in the transition table T’, so we stop.

States containing q2 as its component are treated as final states of the DFA.

Finally, Transition table for Deterministic Finite Automata (DFA) is-

 State / Alphabet a b →q0 q0 {q0, q1} {q0, q1} q0 *{q0, q1, q2} *{q0, q1, q2} q0 *{q0, q1, q2}

Now, Deterministic Finite Automata (DFA) may be drawn as-

## Problem-02:

Convert the following Non-Deterministic Finite Automata (NFA) to Deterministic Finite Automata (DFA)-

## Solution-

Transition table for the given Non-Deterministic Finite Automata (NFA) is-

 State / Alphabet 0 1 →q0 q0 q1, *q2 q1 q1, *q2 *q2 *q2 q0, q1 q1

### Step-01:

Let Q’ be a new set of states of the Deterministic Finite Automata (DFA).

Let T’ be a new transition table of the DFA.

### Step-02:

Add transitions of start state q0 to the transition table T’.

 State / Alphabet 0 1 →q0 q0 {q1, q2}

### Step-03:

New state present in state Q’ is {q1, q2}.

Add transitions for set of states {q1, q2} to the transition table T’.

 State / Alphabet 0 1 →q0 q0 {q1, q2} {q1, q2} {q0, q1, q2} {q1, q2}

### Step-04:

New state present in state Q’ is {q0, q1, q2}.

Add transitions for set of states {q0, q1, q2} to the transition table T’.

 State / Alphabet 0 1 →q0 q0 {q1, q2} {q1, q2} {q0, q1, q2} {q1, q2} {q0, q1, q2} {q0, q1, q2} {q1, q2}

### Step-05:

Since no new states are left to be added in the transition table T’, so we stop.

States containing q2 as its component are treated as final states of the DFA.

Finally, Transition table for Deterministic Finite Automata (DFA) is-

 State / Alphabet 0 1 →q0 q0 *{q1, q2} *{q1, q2} *{q0, q1, q2} *{q1, q2} *{q0, q1, q2} *{q0, q1, q2} *{q1, q2}

Now, Deterministic Finite Automata (DFA) may be drawn as-

## Problem-03:

Convert the following Non-Deterministic Finite Automata (NFA) to Deterministic Finite Automata (DFA)-

## Solution-

Transition table for the given Non-Deterministic Finite Automata (NFA) is-

 State / Alphabet a b →q0 *q1, q2 – *q1 – – q2 *q1, q2 q2

### Step-01:

Let Q’ be a new set of states of the Deterministic Finite Automata (DFA).

Let T’ be a new transition table of the DFA.

### Step-02:

Add transitions of start state q0 to the transition table T’.

 State / Alphabet a b →q0 {q1, q2} Ø (Dead State)

### Step-03:

New state present in state Q’ is {q1, q2}.

Add transitions for set of states {q1, q2} to the transition table T’.

 State / Alphabet a b →q0 {q1, q2} Ø {q1, q2} {q1, q2} q2

### Step-04:

New state present in state Q’ is q2.

Add transitions for state q2 to the transition table T’.

 State / Alphabet a b →q0 {q1, q2} Ø {q1, q2} {q1, q2} q2 q2 {q1, q2} q2

### Step-05:

 State / Alphabet a b →q0 {q1, q2} Ø {q1, q2} {q1, q2} q2 q2 {q1, q2} q2 Ø Ø Ø

### Step-06:

Since no new states are left to be added in the transition table T’, so we stop.

States containing q1 as its component are treated as final states of the DFA.

Finally, Transition table for Deterministic Finite Automata (DFA) is-

 State / Alphabet a b →q0 *{q1, q2} Ø *{q1, q2} *{q1, q2} q2 q2 *{q1, q2} q2 Ø Ø Ø

Now, Deterministic Finite Automata (DFA) may be drawn as-

## Important Points-

It is important to note the following points when converting a given NFA into a DFA-

### Note-01:

• After conversion, the number of states in the resulting DFA may or may not be same as NFA.
• The maximum number of states that may be present in the DFA are 2Number of states in the NFA.

### Note-02:

In general, the following relationship exists between the number of states in the NFA and DFA-

 1 <= n <= 2m

Here,

• n = Number of states in the DFA
• m = Number of states in the NFA

### Note-03:

• In the resulting DFA, all those states that contain the final state(s) of NFA are treated as final states.

To gain better understanding about Converting NFA to DFA,

Watch this Video Lecture

Next Article- Parse Tree | Derivations

Get more notes and other study material of Theory of Automata and Computation.

Watch video lectures by visiting our YouTube channel LearnVidFun.

## Non-Deterministic Finite Automata-

 Non-Deterministic Finite Automata (NDFA / NFA) is an automata in which for some current state and input symbol, there exists more than one next output states.

It is also known as Non-Deterministic Finite Accepter (NFA).

### Formal Definition-

Non-Deterministic Finite Automata is defined by the quintuple-

M = (Q, ∑, δ, q0, F)

where-

• Q = finite set of states
• ∑ = non-empty finite set of symbols called as input alphabets
• δ : Q x ∑ → 2Q is a total function called as transition function
• q0 ∈ Q is the initial state
• F ⊆ Q is a set of final states

### Example of Non-Deterministic Finite Automata Without Epsilon-

Following automata is an example of Non-Deterministic Finite Automata without epsilon-

The above NFA can be defined in form of five tuples as-

{ {A, B, C, D, E, F}, {a, b, c}, δ, A, {D, F} }

where-

• {A, B, C, D, E, F} refers to the set of states
• {a, b, c} refers to the set of input alphabets
• δ refers to the transition function
• A refers to the the initial state
• {D, F} refers to the set of final states

Transition function δ is defined as-

• δ (A, a) = B
• δ (A, a) = E
• δ (B, b) = C
• δ (C, c) = D
• δ (E, b) = F
• δ (F, c) = E

Transition Table for the above Non-Deterministic Finite Automata is-

 States / Alphabets a b c A {B, F} – – B – C – C – – D D – – – E – F – F – – E

### Example of Non-Deterministic Finite Automata With Epsilon-

Following automata is an example of Non-Deterministic Finite Automata with epsilon-

The above NFA can be defined in form of five tuples as-

{ {A, B, C}, {0, 1}, δ, A, {A} }

where-

• {A, B, C} refers to the set of states
• {0, 1} refers to the set of input alphabets
• δ refers to the transition function
• A refers to the the initial state
• {A} refers to the set of final states

Transition function δ is defined as-

• δ (A, 1) = B
• δ (A, ∈) = C
• δ (B, 0) = A
• δ (B, 0) = C
• δ (B, 1) = C

Transition Table for the above Non-Deterministic Finite Automata is-

 States / Alphabets 0 1 ∈ A – B C B {A, C} C – C – – –

### Dead Configuration or Trap State-

In Non-Deterministic Finite Automata,

• The result of a transition function may be empty.
• In such a case, automata gets stopped forcefully after entering that configuration.
• This type of configuration is known as dead configuration.
• The string gets rejected after entering the dead configuration.

## Equivalence of DFA and NFA-

 Two finite accepters are said to be equal in power if they both accepts the same language. DFA and NFA are both exactly equal in power.

### Example-

Consider a language L(M) = { (10)n : n >= 0 }

Equivalent NFA for the language L(M) is-

Equivalent DFA for the language L(M) is-

• Both the above automata accepts the same language L(M).
• Thus, both are equal in power.

## Important Points

It is important to note the following points-

• Both DFA and NFA are exactly same in power.
• For any regular language, both DFA and NFA can be constructed.
• There exists an equivalent DFA corresponding to every NFA.
• Every NFA can be converted into its equivalent DFA.
• There exists no NFA that can not be converted into its equivalent DFA.
• Every DFA is a NFA but every NFA is not a DFA.

## Acceptance by NFA-

 A string ‘w’ is said to be accepted by a NFA if there exists at least one transition path on which we start at initial state and ends at final state. δ* (q0, w) = F

### Example-

Consider the following NFA-

For the string w = ab,

• There exists two transition paths.
• One transition path starts at initial state and ends at final state.
• Therefore, string w = ab is accepted by the NFA.

To gain better understanding about Non-Deterministic Finite Automata,

Watch this Video Lecture

Next Article- Converting NFA to DFA

Get more notes and other study material of Theory of Automata and Computation.

Watch video lectures by visiting our YouTube channel LearnVidFun.