- 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 concatenation process in DFA
The concatenation process in the deterministic finite automata (DFA) is explained below −
If L1 and If L2 are two regular languages, their union L1 ∩ L2 will also be regular.
For example,
L1 = {an | n > O} and L2 = {bn | n > O}
L3 = L1 ∩ L2 = {an ∩ bn | n > O} is also regular.
In this property, we say that concatenation of two DFAs is also DFA.
Problem
Design a DFA over an alphabet {a,b} where the string starts with ‘a’ and ends with ‘b’.
Solution
There are two different types of languages are formed for a given condition, which are as follows −
- L1 = {a, aab, aabab, .......}
- L2 = {b, bbab, bbabab, .......}
In L1, starting element is ‘a’ and
L2, the ending element is ‘b’.
Language L1
It starts with ‘a’
L1 = {a, aab, aabab, .......}
The state transition diagram for L1 is as follows −
In the above state transition diagram, q1 is the initial state.
Each state in DFA has to generate a transition on both inputs
So,
q1 on ‘a’ goes to q3 and reaches its final state {a}.
q1 on ‘b’ goes to q2 and reaches a dead state.
q3 on ‘a’ goes to q3 reaching the final state generating a string from the start state {a,ab,aba,aab,abb,……} satisfies the condition that each string starts with ‘a’.
q2 is a dead state.
Language L2
It ends with ‘b’
L2 = {b, bbab, bbabab, .......}
The state transition diagram for L2 is as follows −
Initial state q1 : q1 on ‘a’ goes to q1
q1 on ‘b’ goes to q2
Once we generate the strings {ab,abb,abab,……}, it satisfies the condition that every string in the language ends with ‘b’.
Concatenate L1 and L2
When we concatenate L1 and L2, we get the following result −
L= L1 ∩ L2 = L1.L2 = {ab, aab, abb, aaab, ...}
The state transition diagram after the concatenation of L1 and L2 is given below −