**Automata Theory**is a branch of computer science that deals with designing abstract selfpropelled computing devices that follow a predetermined sequence of operations automatically. An automaton with a finite number of states is called a

**Finite Automaton**. This is a brief and concise tutorial that introduces the fundamental concepts of Finite Automata, Regular Languages, and Pushdown Automata before moving onto Turing machines and Decidability.

**Automata – What is it?**

The term "Automata" is derived from the Greek word "αὐτόματα" which means "self-acting". An automaton (Automata in plural) is an abstract self-propelled computing device which follows a predetermined sequence of operations automatically.

**Finite Automata:**It is used to recognize patterns of specific type input. It is the most restricted type of automata which can accept only regular languages (languages which can be expressed by regular expression using OR (+), Concatenation (.), Kleene Closure(*) like a*b*, (a+b) etc.)

An automaton with a finite number of states is called a

**Finite Automaton(FA)**or**Finite State Machine (FSM)**.**Formal definition of a Finite Automaton**

An automaton can be represented by a 5-tuple (Q, ∑, δ, q

_{0}, F), where −

**Q**is a finite set of states.**∑**is a finite set of symbols, called the alphabet of the automaton.**δ**is the transition function.**q**is the initial state from where any input is processed (q_{0}_{0}∈ Q).**F**is a set of final state/states of Q (F ⊆ Q).

**Related Terminologies**

**Alphabet**: An

**alphabet**is any finite set of symbols.

Example− ∑ = {a, b, c, d} is an alphabet set where ‘a’, ‘b’, ‘c’, and ‘d’ are symbols.

**String :**A

**string**is a finite sequence of symbols taken from ∑.

Example − ‘cabcad’ is a valid string on the alphabet set ∑ = {a, b, c, d}

**Length of a String :**It is the number of symbols present in a string. (Denoted by

**|S**|).

Examples−

If S = ‘cabcad’, |S|= 6

If |S|= 0, it is called an empty string (Denoted by λ or ε)

**Kleene Star :**The Kleene star,

**∑***, is a unary operator on a set of symbols or strings, ∑, that gives the infinite set of all possible strings of all possible lengths over

**∑**including

**λ.**

**Representation**− ∑* = ∑

_{0}∪ ∑

_{1}∪ ∑

_{2}∪……. where ∑

_{p}is the set of all possible strings of length p.

Example − If ∑ = {a, b}, ∑* = {λ, a, b, aa, ab, ba, bb,………..}

**Kleene Closure / Plus :**The set ∑

^{+}is the infinite set of all possible strings of all possible lengths over ∑ excluding λ.

Representation − ∑

^{+}= ∑

_{1}∪ ∑

_{2}∪ ∑

_{3}∪…….

∑

^{+}= ∑* − { λ }

Example − If ∑ = { a, b } , ∑^{+}= { a, b, aa, ab, ba, bb,………..}

**Language :**A language is a subset of ∑* for some alphabet ∑. It can be finite or infinite.

Example − If the language takes all possible strings of length 2 over ∑ = {a, b}, then L = { ab, bb, ba, bb}

**Finite Automaton can be classified into two types −**

**Deterministic Finite Automaton (DFA)****Non-deterministic Finite Automaton (NDFA / NFA)**

####
**Deterministic Finite Automaton (DFA)**

In DFA, for each input symbol, one can determine the state to which the machine will move. Hence, it is called **Deterministic Automaton**.

**In deterministic FA, there is only one move from every state on every input symbol.**As it has a finite number of states, the machine is called

**Deterministic Finite Machine**or D

**eterministic Finite Automaton**.

**Formal Definition of a DFA**

A DFA can be represented by a 5-tuple (Q, ∑, δ, q

_{0}, F) where −

**Q**is a finite set of states.**∑**is a finite set of symbols called the alphabet.**δ**is the transition function where δ: Q × ∑ → Q**q**is the initial state from where any input is processed (q_{0}_{0}∈ Q).**F**is a set of final state/states of Q (F ⊆ Q).

**Graphical Representation of a DFA**

A DFA is represented by digraphs called state diagram.

- The vertices represent the states.
- The arcs labeled with an input alphabet show the transitions.
- The initial state is denoted by an empty single incoming arc.
- The final state is indicated by double circles.

**Example**

Let a deterministic finite automaton be →

Q = {a, b, c},

∑ = {0, 1},

q

_{0}= {a},

F = {c}

Transition function δ as shown by the following table −

Present State | Next State for Input 0 | Next State for Input 1 |
---|---|---|

a | a | b |

b | c | a |

c | b | c |

Its graphical representation would be as follows −

####
**Non-deterministic Finite Automaton (NDFA / NFA)**

In NDFA, for a particular input symbol, the machine can move to any combination of the states in the machine. In other words, the exact state to which the machine moves cannot be determined. Hence, it is called **Non-deterministic Automaton**.

**In Non-Deterministic FA, there can be zero or more than one move from one state for an input symbol.**As it has finite number of states, the machine is called

**Non-deterministic Finite Machine**or

**Non-deterministic Finite Automaton**.

Formal Definition of an NDFA

Formal Definition of an NDFA

An NDFA can be represented by a 5-tuple (Q, ∑, δ, q

_{0}, F) where −

- Q is a finite set of states.
- ∑ is a finite set of symbols called the alphabets.
- δ is the transition function where δ: Q × ∑ → 2
^{Q} - (Here the power set of Q (2
^{Q}) has been taken because in case of NDFA, from a state, transition can occur to any combination of Q states) - q
_{0}is the initial state from where any input is processed (q_{0}∈ Q). - F is a set of final state/states of Q (F ⊆ Q).

**Graphical Representation of a NDFA**

A NDFA is represented by digraphs called state diagram.

- The vertices represent the states.
- The arcs labeled with an input alphabet show the transitions.
- The initial state is denoted by an empty single incoming arc.
- The final state is indicated by double circles.

**Example**

Let a deterministic finite automaton be →

Q = {a, b, c},

∑ = {0, 1},

q

_{0}= {a},

F = {c}

Transition function δ as shown by the following table −

Present State | Next State for Input 0 | Next State for Input 1 |
---|---|---|

a | a, b | b |

b | c | a, c |

c | b, c | c |

Note:

- Language accepted by NDFA and DFA are same.
- Power of NDFA and DFA is same.
- No. of states in NDFA is less than or equal to no. of states in equivalent DFA.
- For NFA with n-states, in worst case, the maximum states possible in DFA is 2
^{n} - Every NFA can be converted to corresponding DFA.

**DFA vs NDFA**

The following table lists the differences between DFA and NDFA.

DFA | NDFA |
---|---|

The transition from a state is to a single particular next state for each input symbol. Hence it is called deterministic. | The transition from a state can be to multiple next states for each input symbol. Hence it is called non-deterministic. |

Empty string transitions are not seen in DFA. | NDFA permits empty string transitions. |

Backtracking is allowed in DFA | In NDFA, backtracking is not always possible. |

Requires more space. | Requires less space. |

A string is accepted by a DFA, if it transits to a final state. | A string is accepted by a NDFA, if at least one of all possible transitions ends in a final state. |

**Next Article - Theory of Computation NFA to DFA Conversion**

## No comments:

## Post a Comment