- 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

# Explain the complementation process in DFA

The complementation process in the deterministic finite automata (DFA) is explained below −

Let’s take a DFA which is defined by (Q, Σ, δ,q0,F) and it accepts the language L1. Now, the DFA that accepts the language L2, where L2 = ̅L1, is defined as follows −

(Q, Σ, δ,q0,Q-F)

The complement of a DFA is obtained by making the non-final states as final states and final states as non-final states.

The language which is accepted by the complemented DFA L2 is the complement of language L1.

## Examples

Let’s consider some examples to get the clarity on the complementation process of DFA.

### Example 1

Consider two languages L1 and L2.

In L1 all strings start with ‘a’ over an alphabet {a,b}

L1={a,ab,aa,aba,aab,aaa,……}

In L2 all strings not starting with ‘a’ over an alphabet {a,b}

L2={€, b,ba,bab,baa,bba,……}

Here we can observe that the two languages are in the form of −

L2 = ̅L1

The transition diagram of DFA for L1 that accepts the set of all strings over {a, b} starting with ‘a’ is given below −

q0 on ‘a’ goes to q1 which is a final state and generates the strings that starts with letter ‘a’

{a,ab,aab,abb,aaab,……}

Where q2 is the dead state.

## Construct DFA for the complement

Now, we can construct DFA for the complement simply by interchanging the final and non-final states.

This refers to the change of non-final states as final states and final states as non-final states.

The state transition diagram after constructing DFA for the complement is as follows −

The above transition diagram is the complemented DFA which accepts the strings that are not starting with ‘a’.

q0 on ‘a’ goes to q1 which is a dead state so, it is cleared the above state transition DFA will not generate the strings starting with ‘a’.