# Turing Machine

Turing machine was invented in 1936 by **Alan Turing**. It is an accepting device which accepts Recursive Enumerable Language generated by type 0 grammar.

There are various features of the Turing machine:

- It has an external memory which remembers arbitrary long sequence of input.
- It has unlimited memory capability.
- The model has a facility by which the input at left or right on the tape can be read easily.
- The machine can produce a certain output based on its input. Sometimes it may be required that the same input has to be used to generate the output. So in this machine, the distinction between input and output has been removed. Thus a common set of alphabets can be used for the Turing machine.

## Formal definition of Turing machine

A Turing machine can be defined as a collection of 7 components:

**Q**: the finite set of states

**âˆ‘**: the finite set of input symbols

**T**: the tape symbol

**q0**: the initial state

**F**: a set of final states

**B**: a blank symbol used as a end marker for input

**Î´**: a transition or mapping function.

The mapping function shows the mapping from states of finite automata and input symbol on the tape to the next states, external symbols and the direction for moving the tape head. This is known as a triple or a program for turing machine.

That means in q0 state, if we read symbol â€˜aâ€™ then it will go to state q1, replaced a by X and move ahead right(R stands for right).

### Example:

Construct TM for the language L ={0^{n}1^{n}} where n>=1.

**Solution:**

We have already solved this problem by PDA. In PDA, we have a stack to remember the previous symbol. The main advantage of the Turing machine is we have a tape head which can be moved forward or backward, and the input tape can be scanned.

The simple logic which we will apply is read out each â€˜0â€™ mark it by A and then move ahead along with the input tape and find out 1 convert it to B. Now, repeat this process for all aâ€™s and bâ€™s.

Now we will see how this turing machine work for 0011.

The simulation for 0011 can be shown as below:

Now, we will see how this turing machine will works for 0011. Initially, state is q0 and head points to 0 as:

The move will be Î´(q0, 0) = Î´(q1, A, R) which means it will go to state q1, replaced 0 by A and head will move to the right as:

The move will be Î´(q1, 0) = Î´(q1, 0, R) which means it will not change any symbol, remain in the same state and move to the right as:

The move will be Î´(q1, 1) = Î´(q2, B, L) which means it will go to state q2, replaced 1 by B and head will move to left as:

Now move will be Î´(q2, 0) = Î´(q2, 0, L) which means it will not change any symbol, remain in the same state and move to left as:

The move will be Î´(q2, A) = Î´(q0, A, R), it means will go to state q0, replaced A by A and head will move to the right as:

The move will be Î´(q0, 0) = Î´(q1, A, R) which means it will go to state q1, replaced 0 by A, and head will move to right as:

The move will be Î´(q1, B) = Î´(q1, B, R) which means it will not change any symbol, remain in the same state and move to right as:

The move will be Î´(q1, 1) = Î´(q2, B, L) which means it will go to state q2, replaced 1 by B and head will move to left as:

The move Î´(q2, B) = (q2, B, L) which means it will not change any symbol, remain in the same state and move to left as:

Now immediately before B is A that means all the 0?s are market by A. So we will move right to ensure that no 1 is present. The move will be Î´(q2, A) = (q0, A, R) which means it will go to state q0, will not change any symbol, and move to right as:

The move Î´(q0, B) = (q3, B, R) which means it will go to state q3, will not change any symbol, and move to right as:

The move Î´(q3, B) = (q3, B, R) which means it will not change any symbol, remain in the same state and move to right as:

The move Î´(q3, Î”) = (q4, Î”, R) which means it will go to state q4 which is the HALT state and HALT state is always an accept state for any TM.

The same TM can be represented by Transition Diagram: