- Automata Theory Tutorial
- Automata Theory - Home
- Automata Theory Introduction
- Deterministic Finite Automaton
- Non-deterministic Finite Automaton
- NDFA to DFA Conversion
- DFA Minimization
- Moore & Mealy Machines

- Classification of Grammars
- Introduction to Grammars
- Language Generated by Grammars
- Chomsky Grammar Classification

- Regular Grammar
- Regular Expressions
- Regular Sets
- Arden's Theorem
- Constructing FA from RE
- Pumping Lemma for Regular Grammar
- DFA Complement

- Context-Free Grammars
- Context-Free Grammar Introduction
- Ambiguity in Grammar
- CFL Closure Properties
- CFG Simplification
- Chomsky Normal Form
- Greibach Normal Form
- Pumping Lemma for CFG

- Pushdown Automata
- Pushdown Automata Introduction
- Pushdown Automata Acceptance
- PDA & Context Free Grammar
- PDA & Parsing

- Turing Machine
- Turing Machine Introduction
- Accepted & Decided Language
- Multi-tape Turing Machine
- Multi-Track Turing Machine
- Non-Deterministic Turing Machine
- Semi-Infinite Tape Turing Machine
- Linear Bounded Automata

- Decidability
- Language Decidability
- Undecidable Language
- Turing Machine Halting Problem
- Rice Theorem
- Post Correspondence Problem

- Automata Theory Useful Resources
- Automata Theory - Quick Guide
- Automata Theory - Useful Resources
- Automata Theory - Discussion

A Turing Machine is an accepting device which accepts the languages (recursively enumerable set) generated by type 0 grammars. It was invented in 1936 by Alan Turing.

A Turing Machine (TM) is a mathematical model which consists of an infinite length tape divided into cells on which input is given. It consists of a head which reads the input tape. A state register stores the state of the Turing machine. After reading an input symbol, it is replaced with another symbol, its internal state is changed, and it moves from one cell to the right or left. If the TM reaches the final state, the input string is accepted, otherwise rejected.

A TM can be formally described as a 7-tuple (Q, X, ∑, δ, q_{0}, B, F) where −

**Q**is a finite set of states**X**is the tape alphabet**∑**is the input alphabet**δ**is a transition function; δ : Q × X → Q × X × {Left_shift, Right_shift}.**q**is the initial state_{0}**B**is the blank symbol**F**is the set of final states

The following table shows a comparison of how a Turing machine differs from Finite Automaton and Pushdown Automaton.

Machine | Stack Data Structure | Deterministic? |
---|---|---|

Finite Automaton | N.A | Yes |

Pushdown Automaton | Last In First Out(LIFO) | No |

Turing Machine | Infinite tape | Yes |

Turing machine M = (Q, X, ∑, δ, q_{0}, B, F) with

- Q = {q
_{0}, q_{1}, q_{2}, q_{f}} - X = {a, b}
- ∑ = {1}
- q
_{0}= {q_{0}} - B = blank symbol
- F = {q
_{f}}

δ is given by −

Tape alphabet symbol | Present State ‘q_{0}’ |
Present State ‘q_{1}’ |
Present State ‘q_{2}’ |
---|---|---|---|

a | 1Rq_{1} |
1Lq_{0} |
1Lq_{f} |

b | 1Lq_{2} |
1Rq_{1} |
1Rq_{f} |

Here the transition 1Rq_{1} implies that the write symbol is 1, the tape moves right, and the next state is q_{1}. Similarly, the transition 1Lq_{2} implies that the write symbol is 1, the tape moves left, and the next state is q_{2}.

For a Turing machine, the time complexity refers to the measure of the number of times the tape moves when the machine is initialized for some input symbols and the space complexity is the number of cells of the tape written.

Time complexity all reasonable functions −

**T(n) = O(n log n)**

TM's space complexity −

**S(n) = O(n)**

Advertisements