0% found this document useful (0 votes)
103 views

Restricted Machines: Presented by Muhannad Harrim

The document discusses different types of restricted Turing machines, including: - Semi-infinite tape Turing machines which simulate infinite tape machines using two tracks on a finite tape. - Multistack machines which are like PDAs but with multiple stacks, and can simulate any Turing machine using two stacks. - Counter machines which use counters instead of tapes/stacks and can recognize recursively enumerable languages using three counters or two counters.

Uploaded by

go2_sumit
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
103 views

Restricted Machines: Presented by Muhannad Harrim

The document discusses different types of restricted Turing machines, including: - Semi-infinite tape Turing machines which simulate infinite tape machines using two tracks on a finite tape. - Multistack machines which are like PDAs but with multiple stacks, and can simulate any Turing machine using two stacks. - Counter machines which use counters instead of tapes/stacks and can recognize recursively enumerable languages using three counters or two counters.

Uploaded by

go2_sumit
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 49

Restricted Machines

Presented by
Muhannad Harrim
The Turing Machine
 Turing machines are extremely basic abstract
symbol-manipulating devices which, despite their
simplicity, can be adapted to simulate the logic of
any computer that could possibly be constructed.
 They were described in 1936 by Alan Turing.
 Though they were intended to be technically
feasible, Turing machines were not meant to be a
practical computing technology, but a thought
experiment about the limits of mechanical
computation; thus they were not actually
constructed
The Turing Machine
The Turing Machine

 Each move by a Turing Machine results in


 Change of state;
 Writing a tape symbol in the cell just
scanned; and
 Moving the tape head left or right.
The Turing Machine
 Hopcroft and Ullman define a one-tape Turing
machine formula: M=(Q, Γ, b, ∑, δ, q0, F) where:

 Q is a finite set of states


 Γ is a finite set of the tape alphabet/symbols
 b is the blank symbol (the only symbol allowed to occur on the tape
infinitely often at any step during the computation) - Delimiter
 Σ, a subset of Γ not including b is the set of input symbols
 δ = Q x Γ  Q x Γ x {L,R} is a partial function called the transition
function, where L is left shift, R is right shift.
 q0 is the initial state
 F is the set of final or accepting states
Restricted Turing Machines
 Semi-infinite Tapes’ TM

 A TM with a semi-infinite tape means that


there are no cells to the left of the initial head
position.

 A TM with a semi-infinite tape simulates a TM


with an infinite tape by using a two-track tape.
Semi-infinite Tapes TM
 The use of two tracks is as follows:

 The upper track represents the cells of the


original TM that are at the right of the initial
head position.

 The lower track represents the cells at the left


of the initial head position, but in reverse
order.
Semi-infinite Tapes TM

A semi-infinite tape that apparently can


simulate a two-way tape:
Semi-infinite Tapes TM
 Theorem 8.12

 Every language accepted by a TM M2 is also


accepted by a TM M1 with the following
restrictions:
 M1’s head never moves left of its initial position;
and
 M1 never writes a blank.
Multistack Machines
 Generalizations of the PDAs

 TMs can accept languages that are not


accepted by any PDA with one stack.

 But PDA with two stacks can accept any


language that a TM can accept.
Multistack Machines
Multistack Machines
 A k-stack machine is a deterministic PDA with
k stacks.
 It obtains its input from an input source rather
than having the input placed in a tape.
 It has a finite control, which is in one of a
finite set of states.
 It has a finite stack alphabet, which it uses for
all its stacks.
Multistack Machines
 A move of a multistack machine is based on:

 The state of the finite control

 The input symbol read, which is chosen from


the finite input alphabet

 The top stack symbol on each stack


Multistack Machines
 In one move:

 a multistack machine can change to a new


state q є Q ;

 and replace the top symbol of each stack with


a string of zero or more stack symbols X є Γ*.
Multistack Machines
 The typical transition function of k-stack
machine looks similar to:

In state q, with Xi on top of ith stack,


for i= 1, 2, …, k, the machine may consume
input a, go to state p, and replace Xi on top of
the ith stack by string yi, for i=1,2, …, k.
Multistack Machines
 To make it easier for a multistack machine to
simulate a TM, we introduce a special symbol
called the endmarker, represented by $.

 The role of the endmarker is To let us know


when we have consumed all the available
input.

 The endmarker appears only at the end of


the input and is not part of it.
Multistack Machines
 Theorem 8.13

 If a language L is accepted by a turing


machine, L is accepted by a two-stack
machine
Multistack Machines
 Proof
 The idea is that one stack can hold what is to
the left of the head, while the other holds
what is to the right of the head, neglecting all
the infinite blank symbols beyond the leftmost
and rightmost of the head.
Multistack Machines
 Proof Cont’d
 Let’s have a two-stack machine S, simulating
a one-tape TM M.
 S begins with a bottom-of-stack marker on
each stack, considered to be as a start
symbol for the stacks, and must not appear
elsewhere on the stacks
Multistack Machines
 Proof Cont’d
 Suppose that w$ is on the input of S.
 S copies the input w onto its first stack, and
ceases to copy when reading the endmarker
on the input.
 S pops each symbol in turn from its first
stack and pushes it onto its second stack.
Multistack Machines
 Proof Cont’d
 The first stack of S is empty.
 The second stack holds w, with the left end
of w is at the top.
 S simulates the start state of M , “empty cells
at the left of the head”, and S has a second
stack holding w, representing the fact that w
appears at and to the right of the M’s head.
Multistack Machines
 Proof Cont’d
 S simulates a move of M as follows:
1. S knows the state of M, say q, because S
simulates the state of M in its own finite
control.
2. S knows the symbol X scanned by the
head of M; it’s at the top of the second
stack. If the second stack contains only the
endmarker, this means that M’s head has
just scanned a blank.
Multistack Machines
 Proof Cont’d
3. So, S knows the next move of M.
4. The next state of M is recorded in a
component of S’s finite control, in place of
the previous state.
5. If M replaces X by Y and moves right,
then S pushes Y onto its first stack,
representing that Y is now at the left of
M’s head.
Multistack Machines
 Proof Cont’d
6. If M replace X by Y and moves left, S
pops the top of the first stack , say Z, then
replaces X by ZY on the second stack.
This represents what used to be one
position left of the head is now at the head.
If Z is the bottom-of-stack marker, then S
must push BY onto the second stack and
not pop the first stack.
Multistack Machines
 Proof Cont’d
7. S accepts if the new state of M is
accepting.
Otherwise, S simulates another move of
M in the same manner.
Counter Machines
 Two equivalent ways to think of a counter machine:

 A stack with a bottom marker, say Z0, and one other


symbol, say X, that can be placed on the stack.
Thus, the stack always looks like:
XXX…XZ0, or specifically, XnZ0.

 A device that holds a non-negative integer with


operations increment-by-1, decrement-by-1, and
test-if-zero.
Counter Machines
 The Power of Counter Machines

 Every language accepted by a counter machine


is recursively enumerable.
 Counter machines are special cases of stack machines,
which are special cases of multitape TMs, which accept
only recursively enumerable languages.

 Every language accepted by a one-counter


machine is a CFL.
 A one-counter machine is a special case of a onestack
machine; i.e., a PDA.
Counter Machines
 Theorem 8.14

 Every recursively enumerable language is


accepted by a three-counter machine.
Counter Machines
 Proof

 Idea: Use Theorem 8.13 to derive a two-stack


machine, then develop a constructive
algorithm for a 2-stacks-to-3-counters
conversion.
Counter Machines
 Proof Cont’d
 2-stacks-to-3-counters conversion:
 Consider L={anbncn : n >= 0}, TM M1 where
L(M1)=L, and w є {a,b,c}* where |w|=n.

 So, by Theorem 8.13 we can derive an


equivalent 2-stack machine, M2 ...
Counter Machines
 Proof Cont’d

 If a stack has r-1 symbols, think of the stack


contents as a base-r number with the
symbols as the digits 1 through r-1.
Counter Machines
 Proof Cont’d
 So, for the 3-counter machine, M3, use one
counter for each stack plus one “scratch”
counter:
Counter Machines
 Proof Cont’d
Counter Machines
 Proof Cont’d

 Note: To move M1’s read-write head one cell


to the right requires popping Xi from SR and
pushing Xi into SL for M2.
Counter Machines
 Proof Cont’d
 Consider the move from aaqabbbccc to
aaarbbbccc in M1 where q,r є Q ...
Counter Machines
 Proof Cont’d
 Read top symbol of SR = store the remainder,
C2 modulo r, into C3.
Counter Machines
 Proof Cont’d
 Pop from SR = divide C2 by r, discarding the
remainder.
Counter Machines
 Proof Cont’d
 Push into SL = multiply C1 by r, then add the
value stored in C3.
Counter Machines
 Conclusion:

 Two counters are used to hold the integers


that represent each of the two stacks.

 The third counter is used to adjust the other


two counters. In particular, to perform the
division or multiplication of a count by r.
Counter Machines
 Theorem 8.15

 Every recursively enumerable language is


accepted by a two-counter machine.
Counter Machines
 Proof

 Idea: Develop a constructive algorithm for a


3-counters-to-2-counters conversion. Do this
by representing the 3 counters i, j, and k, by a
single integer m=2i 3j 5k counter, and a
second counter that help multiplying or
dividing m by one of the three primes 2, 3,
and 5.
Counter Machines
 Proof cont’d

 Store the number m=2i 3j 5k in one counter and use


the other one as a “scratch” counter.

 Test if i=0 by moving count from one counter to the


“scratch” counter, counting modulo 2 in the state.

 i=0 if and only if the number m=2i 3j 5k is not


divisible by 2.

 tests for j=0 and k=0 analogous.


Counter Machines
 Proof cont’d

 Incrementing counters i, j, or k is equivalent


to multiplications of the count m=2i 3j 5k by
2, 3, or 5; respectively.

 Decrementing counters i, j, or k is equivalent


to divisions of the count m=2i 3j 5k by 2, 3,
or 5; respectively.
TMs and Computers
 In one sense, a (real) computer has a finite
number of states, and is thus weaker than a
TM .
 We have to postulate an infinite supply of
tapes, disks, or some peripheral storage
device to simulate an infinite tape TM.
 Assume a human operator can mount disks,
keeping them stacked neatly on the sides of
the computer.
TMs and Computers
 Simulating a TM by a Computer
 A computer can simulate finite control, and
mount one disk that holds the region of the
tape around the tape head.
 When the tape head moves off this region,
the computer outputs the following request:
 Move the current disk to the top of the left or right
pile; and
 Mount the disk at the top of the other pile.
TMs and Computers
 Simulating a TM by a Computer
TMs and Computers
 Simulating a Computer by a TM
 Idea: Simulation is at the level of stored
instructions and words in memory .
 TM has one tape that holds all the used
memory locations and their contents.
 Other TM tapes hold the instruction counter,
memory address, computer input file, and
“scratch.”
TMs and Computers
 Simulating a Computer by a TM
 Instruction cycle of computer simulated by:
 Find the word indicated by the instruction counter
on the memory tape.
 Examine the instruction code (a finite set of
options), and get the contents of any memory
words mentioned in the instruction, using the
“scratch” tape.
 Perform the instruction, changing word values as
needed, and adding new address,value pairs to
the memory tape, if needed.
TMs and Computers
 Simulating a Computer by a TM

You might also like