Unit - 4 Notes
Unit - 4 Notes
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.
(q0, a) → (q1, A, R)
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 ={0n1n} 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.
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:
Advertisement
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:
1. The input tape is having an infinite number of cells, each cell containing one
input symbol and thus the input string can be placed on tape. The empty tape is
filled by blank characters.
2. The finite control and the tape head which is responsible for reading the
current input symbol. The tape head can move to left to right.
4. Finite set of symbols called external symbols which are used in building the
logic of turing machine.
Example:
Construct a turing machine which accepts the language of aba over ∑ = {a, b}.
Solution:
We will assume that on input tape the string 'aba' is placed like this:
The tape head will read out the sequence up to the Δ characters. If the tape head
is readout 'aba' string then TM will halt after reading Δ.
Now, we will see how this turing machine will work for aba. Initially, state is q0
and head points to a as:
The move will be δ(q0, a) = δ(q1, A, R) which means it will go to state q1, replaced a
by A and head will move to right as:
The move will be δ(q1, b) = δ(q2, B, R) which means it will go to state q2, replaced
b by B and head will move to right as:
The move will be δ(q2, a) = δ(q3, A, R) which means it will go to state q3, replaced
a by A and head will move to right as:
The move δ(q3, Δ) = (q4, Δ, S) which means it will go to state q4 which is the HALT
state and HALT state is always an accept state for any TM.
States a b Δ
q0 (q1, A, R) – –
q1 – (q2, B, R) –
q2 (q3, A, R) – –
q3 – – (q4, Δ, S)
q4 – – –
Solution:
L = {0n1n2n | n≥1} represents language where we use only 3 character, i.e., 0, 1 and
2. In this, some number of 0's followed by an equal number of 1's and then
followed by an equal number of 2's. Any type of string which falls in this category
will be accepted by this language.
Now, we will see how this Turing machine will work for 001122. 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, R) which means it will go to state q2, replaced 1
by B and head will move to right as:
The move will be δ(q2, 1) = δ(q2, 1, R) which means it will not change any symbol,
remain in the same state and move to right as:
The move will be δ(q2, 2) = δ(q3, C, R) which means it will go to state q3, replaced
2 by C and head will move to right as:
Advertisement
Now move δ(q3, 2) = δ(q3, 2, L) and δ(q3, C) = δ(q3, C, L) and δ(q3, 1) = δ(q3, 1, L) and
δ(q3, B) = δ(q3, B, L) and δ(q3, 0) = δ(q3, 0, L), and then move δ(q3, A) = δ(q0, A, R), it
means will go to state q0, replaced A by A and head will move to 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, R) which means it will go to state q2, replaced 1
by B and head will move to right as:
The move will be δ(q2, C) = δ(q2, C, R) which means it will not change any symbol,
remain in the same state and move to right as:
The move will be δ(q2, 2) = δ(q3, C, L) which means it will go to state q3, replaced 2
by C and head will move to left until we reached A as:
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 or 2 is present. The move will be δ(q2, B) = (q4, B, R)
which means it will go to state q4, will not change any symbol, and move to right
as:
The move will be (q4, B) = δ(q4, B, R) and (q4, C) = δ(q4, C, R) which means it will
not change any symbol, remain in the same state and move to right as:
The move δ(q4, X) = (q5, X, R) which means it will go to state q5 which is the HALT
state and HALT state is always an accept state for any TM.
Solution:
Firstly we read the first symbol from the left and then we compare it with the first
symbol from right to check whether it is the same.
Again we compare the second symbol from left with the second symbol from
right. We repeat this process for all the symbols. If we found any symbol not
matching, we cannot lead the machine to HALT state.
Suppose the string is ababbabaΔ. The simulation for ababbabaΔ can be shown
as follows:
Now, we will see how this Turing machine will work for ababbabaΔ. Initially, state
is q0 and head points to a as:
We will mark it by * and move to right end in search of a as:
Go to HALT state
Example 3:
Construct a TM machine for checking the palindrome of the string of odd length.
Solution:
Firstly we read the first symbol from left and then we compare it with the first
symbol from right to check whether it is the same.
Again we compare the second symbol from left with the second symbol from
right. We repeat this process for all the symbols. If we found any symbol not
matching, we lead the machine to HALT state.
Suppose the string is 00100Δ. The simulation for 00100Δ can be shown as follows:
Now, we will see how this Turing machine will work for 00100Δ. Initially, state is
q0 and head points to 0 as:
Moved right up to Δ
Move left
Since it is *, goto HALT state.
Example 4:
Construct TM for the addition function for the unary number system.
Solution:
The unary number is made up of only one character, i.e. The number 5 can be
written in unary number system as 11111. In this TM, we are going to perform the
addition of two unary numbers.
For example
2+3
i.e. 11 + 111 = 11111
If you observe this process of addition, you will find the resemblance with string
concatenation function.
In this case, we simply replace + by 1 and move ahead right for searching end of
the string we will convert last 1 to Δ.
Input: 3+2
Thus the tape now consists of the addition of two unary numbers.
Example 5:
Construct a TM for subtraction of two unary numbers f(a-b) = c where a is always
greater than b.
Solution: Here we have certain assumptions as the first number is greater than
the second one. Let us assume that a = 3, b = 2, so the input tape will be:
We will move right to - symbol as perform reduction of a number of 1's from the
first number. Let us look at the simulation for understanding the logic:
that can be stated as: “The assumption that the intuitive notion of
computable functions can be identified with partial recursive
functions.”
Construction of UTM
Implementation of UTM
Conclusion
L1= {anbncn|n>=0}
L2= {dmemfm|m>=0}
L3= L1.L2
Kleene Closure: If L1is recursive, its kleene closure L1* will also be
recursive. For Example:
L1= {anbncn|n>=0}
L3=L1 ? L2
L1 says n no. of a’s followed by n no. of b’s followed by n no. of c’s and
then any no. of d’s. L2 says any no. of a’s followed by n no. of b’s
followed by n no. of c’s followed by n no. of d’s. Their intersection says
n no. of a’s followed by n no. of b’s followed by n no. of c’s followed by
n no. of d’s. So it can be decided by turing machine, hence recursive.