- 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
Construct Turing machine for subtraction
A Turing machine is a seven tuples
(Q, Σ,Γ, δ,q0,qacc, qrej)
Where,
- Q is finite number of states
- Σ is the input alphabet does not contain the blank symbol t;
- Γ is the tape alphabet, where t ε Γ and Σ ⊆ Γ;
- δ: (Q × Γ) → (Q × Γ × {L, R}) is the transition function;
- q0 ε Q is the start state;
- qacc ε Q is the accept state;
- qrej ε Q is the reject state, where qrej ≠qacc.
Problem
Construct a Turing machine (TM) for subtraction of two unary integers.
Solution
Subtraction of two unary integers
3-2=1
In Turing Machine 3 represents − 111
2 represents: 11
Let ‘M’ be a symbol used to separate two integers
B | 1 | 1 | 1 | M | 1 | 1 | B |
Here B= blank
M= Symbol used two separate two integers
Algorithm
Follow the step wise algorithm given below to construct a TM for subtraction −
Step 1 − Let’s take two unary integers as an input. We start from the initial state q0.
Step 2 − If we find the 1 in the string then go to the same state without changing the value of 1, and go to the right of the string.
Step 3 − If we find the m symbol then ignore this symbol without changing the symbol and go to the right of the string.
Step 4 − If we find the 1 after the pass the M symbol then change the value of 1 into the X and go to the left of the string.
Step 5 − Then pass the symbol of M and go to the left and if we find the 1 then change the value of 1 to X and go to the right.
Step 6 − So, this type after the symbol(M) we change all values of 1's into X and the same total number of 1's change into the X before the symbol M.
Step 7 − Apply these steps and get the Turing machine subtraction of two unary integers.
While working with subtraction, the Turing machine considers any of the three cases based on input given by the user.
If ‘a’ and ‘b’ are two integers, we have two consider whether −
- a>b
- a<b
- a=b
By consider all the three conditions, the final Turing machine is as follows−
Explanation of the diagram
Step 1 − Consider an input string as 110111
i.e. a=11 and b=111, according to given input a
Step 2 − Scan string from left to right.
Step 3 − Mark '1' as 'X' and then move to the right.
Step 4 − Reaching to the right of '0' and marking '1' as 'X' and moving left.
Step 5 − Reaching 'X' on left of '0' and moving one step right.
Step 6 − Again mark '1' as 'X' and then move to the right.
Step 7 − Reaching to the right of '0' and passing 'X', mark '1' as 'X' and move left.
Step 8 − Reach 'X' in the left of '0'and move one step right.
Step 9 − If there is a ‘0’ after 'X' that means all '1's are finished before '0'.
Step 10 − Pass '0', 'X' and there is '1' remaining. That is, the second number is greater than the first one.
Step 11 − And then the final state is "a<b"
- Related Articles
- Construct Turing machine for addition
- Construct a Turing Machine for language L = {0n1n2n | n≥1}
- Construct a Turing Machine for language L = {ww | w ∈ {0,1}}
- Construct a Turing Machine for language L = {wwr | w ∈ {0, 1}}
- Construct a Turing machine for L = {aibjck | i< j< k; i ≥ 1}
- Construct a Turing machine for L = {aibjck | i>j>k; k ≥ 1}
- Construct a Turing Machine for L = {a^n b^n | n>=1}
- Construct a Turing machine for adding 2 to the binary natural number?
- Design Turing machine for multiplication
- Construct a Turing machine for L = {aibjck | i*j = k; i, j, k ≥ 1}
- Construct Turing machine for L = {an bm a(n+m) - n,m≥1} in C++
- What is Turing Machine in TOC?
- Explain the universal Turing machine in TOC
- Distinguish between Finite Automata and Turing Machine
- Explain about a non-deterministic Turing Machine?
