Turing Machine Sample | PDF | Theory Of Computation | Applied Mathematics
0% found this document useful (0 votes)
31 views

Turing Machine Sample

Uploaded by

Erasmo Olvera
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
31 views

Turing Machine Sample

Uploaded by

Erasmo Olvera
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 16

pdf version of the entry

Turing Machines
https://plato.stanford.edu/archives/win2016/entries/turing-machine/ Turing Machines
from the Winter 2016 Edition of the First published Thu Sep 14, 1995; substantive revision Tue Jun 26, 2012

Stanford Encyclopedia Turing machines, first described by Alan Turing in (Turing 1937a), are
simple abstract computational devices intended to help investigate the
of Philosophy extent and limitations of what can be computed.

Turing was interested in the question of what it means for a task to be

E
computable, which is one of the foundational questions in the philosophy
of computer science. Intuitively a task is computable if it is possible to
specify a sequence of instructions which will result in the completion of
Edward N. Zalta
Principal Editor
PL
Uri Nodelman
Senior Editor
Colin Allen
Associate Editor
Editorial Board
R. Lanier Anderson
Faculty Sponsor the task when they are carried out by some machine. Such a set of
instructions is called an effective procedure, or algorithm, for the task. The
https://plato.stanford.edu/board.html problem with this intuition is that what counts as an effective procedure
Library of Congress Catalog Data
may depend on the capabilities of the machine used to carry out the
ISSN: 1095-5054 instructions. In principle, devices with different capabilities may be able to
complete different instruction sets, and therefore may result in different
M
Notice: This PDF version was distributed by request to mem-
classes of computable tasks (see the entry on computability and
bers of the Friends of the SEP Society and by courtesy to SEP
content contributors. It is solely for their fair use. Unauthorized complexity).
distribution is prohibited. To learn how to join the Friends of the
Turing proposed a class of devices that came to be known as Turing
SEP Society and obtain authorized PDF versions of SEP entries,
SA

please visit https://leibniz.stanford.edu/friends/ . machines. These devices lead to a formal notion of computation that we
will call Turing-computability. A task is Turing computable if it can be
Stanford Encyclopedia of Philosophy carried out by some Turing machine.
Copyright c 2016 by the publisher
The Metaphysics Research Lab
The proposition that Turing's notion captures exactly the intuitive idea of
Center for the Study of Language and Information
Stanford University, Stanford, CA 94305 effective procedure is called the Church-Turing thesis. This proposition is
Turing Machines not provable, since it is a claim about the relationship between a formal
Copyright c 2016 by the author concept and intuition. The thesis would be refuted by an intuitively
David Barker-Plummer
acceptable algorithm for a task that is not Turing-computable, and no such
All rights reserved.
counterexample has been found. Other independently defined notions of
Copyright policy: https://leibniz.stanford.edu/friends/info/copyright/

1
Turing Machines David Barker-Plummer

computability based on alternative foundations, such as recursive 1. A Definition of Turing Machines


functions and abacus machines have been shown to be equivalent to
Turing-computability. These two facts indicate that there is at least A Turing machine is a kind of state machine. At any time the machine is
something natural about this notion of computability. in any one of a finite number of states. Instructions for a Turing machine
consist in specified conditions under which the machine will transition
Turing machines are not physical objects but mathematical ones. We between one state and another.
require neither soldering irons nor silicon chips to build one. The
architecture is simply described, and the actions that may be carried out by The literature contains a number of different definitions of Turing
the machine are simple and unambiguously specified. Turing recognized machine. While differing in the specifics, they are equivalent in the sense
that it is not necessary to talk about how the machine carries out its that the same tasks turn out to be Turing-computable in every formulation.
actions, but merely to take as given the twin ideas that the machine can The definition here is just one of the common definitions, with some
carry out the specified actions, and that those actions may be uniquely variants discussed in section 3 of this article.
described.
A Turing machine has an infinite one-dimensional tape divided into cells.
1. A Definition of Turing Machine Traditionally we think of the tape as being horizontal with the cells
1.1 The Definition Formalized arranged in a left-right orientation. The tape has one end, at the left say,
2. Describing Turing Machines and stretches infinitely far to the right. Each cell is able to contain one
2.1 Examples symbol, either ‘0’ or ‘1’.
2.2 Instantaneous Descriptions of a Computation
3. Varieties of Turing Machines The machine has a read-write head which is scanning a single cell on the
4. What Can Be Computed tape. This read-write head can move left and right along the tape to scan
5. What Cannot Be Computed successive cells.
5.1 The Busy Beaver
The action of a Turing machine is determined completely by (1) the
5.2 The Halting Problem
current state of the machine (2) the symbol in the cell currently being
6. Alternative Formulations of Computability
scanned by the head and (3) a table of transition rules, which serve as the
6.1 Recursive Functions
“program” for the machine.
6.2 Abacus Machines
7. Restricted Turing Machines Each transition rule is a 4-tuple:
Bibliography
Academic Tools ⟨ Statecurrent, Symbol, Statenext, Action ⟩
Other Internet Resources
Related Entries

2 Stanford Encyclopedia of Philosophy Winter 2016 Edition 3


Turing Machines David Barker-Plummer

which can be read as saying “if the machine is in state Statecurrent and the of) atoms in the universe. Conversely, a result that shows that a function is
cell being scanned contains Symbol then move into state Statenext taking not Turing-computable is very strong, since it certainly implies that no
Action”. As actions, a Turing machine may either to write a symbol on the computer that we could ever build could carry out the computation.
tape in the current cell (which we will denote with the symbol in Section 5 shows that some functions are not Turing-computable.
question), or to move the head one cell to the left or right, which we will
denote by the symbols « and » respectively. 1.1. The Definition Formalized

If the machine reaches a situation in which there is no unique transition Talk of “tape” and a “read-write head” is intended to aid the intution (and
rule to be carried out, i.e., there is none or more than one, then the reveals something of the time in which Turing was writing) but plays no
machine halts. important role in the definition of Turing machines. In situations where a
formal analysis of Turing machines is required, it is appropriate to spell
In modern terms, the tape serves as the memory of the machine, while the out the definition of the machinery and program in more mathematical
read-write head is the memory bus through which data is accessed (and terms. Purely formally a machine might be defined to consist of:
updated) by the machine. There are two important things to notice about
the setup. The first concerns the definition of the machine itself, namely A finite set of states Q with a distinguished start state,
that the machine's tape is infinite in length. This corresponds to an A finite set of symbols Σ.
assumption that the memory of the machine is infinite. The second
A computation state describes everything that is necessary to know about
concerns the definition of Turing-computable, namely that a function will
the machine at a given moment in its execution. At any given step of the
be Turing-computable if there exists a set of instructions that will result in
execution s
a Turing machine computing the function regardless of the amount of time
it takes. One can think of this as assuming the availability of infinite time Qs a member of Q is the state that the Turing machine is in,
to complete the computation. σs a function from the integers into Σ describes the contents of each
of the cells of the tape,
These two assumptions are intended to ensure that the definition of
A natural number hs is the index of the cell being scanned
computation that results is not too narrow. This is, it ensures that no
computable function will fail to be Turing-computable solely because The transition function for the machine δ is a function from computation
there is insufficient time or memory to complete the computation. It states to computation states, such that if δ(S) = T
follows that there may be some Turing-computable functions which may
not be carried out by any existing computer, perhaps because no existing σT agrees with σS everywhere except on hS (and perhaps there too).
machine has sufficient memory to carry out the task. Some Turing- If σS(hS) ≠ σT(hS) then hT = hS otherwise, |hT − hS| ≤ 1
computable functions may not ever be computable in practice, since they
may require more memory than can be built using all of the (finite number

4 Stanford Encyclopedia of Philosophy Winter 2016 Edition 5


Turing Machines David Barker-Plummer

The transition function determines the new content of the tape by ⟨ s0, 1, s0, » ⟩
returning a new function σ but this new function is constrained to be very ⟨ s0, 0, s1, 1 ⟩
similar to the old. The first constraint above says that the content of the ⟨ s1, 1, s1, « ⟩
cells of the tape is that same every where except possibly at the cell that
⟨ s1, 0, s2, » ⟩
was being scanned. Since Turing machines can either change the content
of a cell or move the head, then if the cell is modified, then the head must This machine has three states, numbered s0, s1 and s2. The first two
not be moved in the transition, and if it is not modified, then the head is instructions describe what happens in state s0. There are two possibilities,
constrained to move at most one cell in either direction. This is the either the machine is scanning a ‘1’, in which case the head moves to the
meaning of the second constraint above. right and stays in state s0. The machine leaves state s0 and enters s1 if it is
scanning a ‘0’. It writes a ‘1’ on that transition. The second two
This definition is very similar to that given in the entry on computability
instructions describe what happens in state s1, namely if it is scanning a
and complexity, with the significant difference that in the alternative
‘1’ the machine moves the head to the left staying in state s1. If it is
definition the machine may write a new symbol as well as move during
scanning a ‘0’, the head moves to the right and the machine moves into
any transition. This change does not alter the set of Turing-computable
state s2. Since there are no instructions for state s2, the machine halts if it
functions, and simplifies the formal definition by removing the second
reaches that state.
condition on the transition function in our definition. Both formal
definitions permit the alphabet of symbols on the tape to be any finite set, When we are interested in examining the behaviour of a Turing machine,
while the original definition insisted on Σ={0,1} this change also does not it is common and perhaps more perspicuous to represent the machine
impact the definition of the set of Turing-computable functions. using a state diagram. Here is the machine represented in this format.

2. Describing Turing Machines


Every Turing machine has the same machinery. What makes one Turing
machine perform one task and another a different task is the table of
transition rules that make up the machine's program, and a specified initial
state for the machine. We will assume throughout that a machine starts in
the lowest numbered of its states.
Figure 1: A State Diagram
We can describe a Turing machine, therefore, by specifying only the 4-
In this figure, states are represented by the circles, with the unique double
tuples that make up its program. Here are the tuples describing a simple
circle being the initial state. A transition is represented as an arrow
machine.
originating from one circle and landing at another (possibly the same)
circle. The arrows are labeled by a pair consisting first of the symbol that

6 Stanford Encyclopedia of Philosophy Winter 2016 Edition 7


Turing Machines David Barker-Plummer

must be being scanned for the arrow to be followed, and second the action Here the supposed addition machine takes two arguments representing the
that is to be taken as the transition is made. The action will either be the numbers to be added, starting at the leftmost 1 of the first argument. The
symbol to be written, or « or » indicating a move to the left or right. arguments are separated by a single 0 as required, and the first block
contains 4 ‘1’s, representing the number 3, and the second contains 5 ‘1’s,
In what follows we will describe Turing machines in the state machine representing the number 4.
format.
A machine must finish in standard configuration too. There must be a
2.1 Examples single block of ‘1’s on the tape, and the machine must be scanning the
leftmost such ‘1’. If the machine correctly computes the function then this
In order to speak about a Turing machine that does something useful, we
block must represent the correct answer. So an addition machine started in
will have to provide an interpretation of the symbols recorded on the tape.
the configuration above must finish on a tape that looks like this:
For example, if we want to design a machine which will perform some
mathematical function, addition say, then we will need to describe how to
interpret the ones and zeros appearing on the tape as numbers.

In the examples that follow we will represent the number n as a block of


n+1 copies of the symbol ‘1’ on the tape. Thus we will represent the Adopting this convention for the terminating configuration of a Turing
number 0 as a single ‘1’ and the number 3 as a block of four ‘1’s. machine means that we can compose machines by identifying the final
state of one machine with the initial state of the next.
We will also have to make some assumptions about the configuration of
the tape when the machine is started, and when it finishes, in order to Under these conventions, the state diagram in Figure 1 describes a
interpret the computation. We will assume that if the function to be machine which computes the successor (add-one) function. That is when
computed requires n arguments, then the Turing machine will start with its started in standard configuration on a tape representing the number n it
head scanning the leftmost ‘1’ of a sequence of n blocks of ‘1’s. the blocks will halt in standard configuration representing the number n+1. It does
of ‘1’s representing the arguments must be separated by a single this by using state s0 to scan to the first ‘0’ to the right of the (single) block
occurrence of the symbol ‘0’. For example, to compute the sum 3+4, a of ‘1’s. It then replaces that ‘0’ by a ‘1’, and scans left in state s1 until a ‘0’
Turing machine will start in the following configuration, where the ellipses is found (this is the first zero to the left of the block of ‘1’s). It then moves
indicate that the tape has only zeros on the cells that we can't see, and the back to scan the first ‘1’ and halts in state s2.
upward arrow indicates the cell that is currently scanned.

8 Stanford Encyclopedia of Philosophy Winter 2016 Edition 9


Turing Machines David Barker-Plummer

remove two copies of the symbol ‘1’, which is achieved by states s2 and
s3, each of which replaces a ‘1’ by ‘0’ and then moves to the right.

Since the tape initially contains at least two ‘1’s and we write one more,
the deletion of two ‘1’s will leave at least one on the tape at the end of the
computation, and we will be scanning the leftmost of them.

2.2 Instantaneous Descriptions of a Computation

Recall that we said that an execution state of a Turing machine may be


described by the name of the state that the machine is in Qs, the symbols
on the tape, σs, and the cell that is currently being scanned hs. We will
Above, we see the initial state. Click on the image to see a movie of the represent such a description using a figure like that in Figure 3, in which
execution of the machine. (Click again to stop and reset.) the arrow represents the currently scanned cell and the name of the current
state is written below the arrow.
For another example, consider the machine in Figure 2 which computes
the addition function. That is, when started on a standard tape representing
the numbers n and m, the machine halts on a tape representing n+m.

Figure 3: The Instantaneous Description of a Turing Machine


Computation

This indicates that out Turing machine is in state s4, scanning the indicated
cell of the tape. The tape is assumed to contain ‘0’s everywhere that is not
Figure 2: A Machine for Computing n+m visible.

Notice that this machine is like the add one machine in that states s0 3. Varieties of Turing Machines
through s2 cause the machine to write a ‘1’ to the right of the first block of
‘1’s, and returns the head to the leftmost ‘1’. In standard configuration for We have presented here one of the most common formulations of Turing's
addition, this joins the two blocks of ‘1’s into a single block, containing basic idea. There are a number of variations to the formulation that turn
(n+1)+1+(m+1) copies of the symbol ‘1’, so that on entering state s2 the out to be equivalent to this one, and different authors present Turing
tape represents the number n+m+2. In order to correct this, we need to machines using any of these. Since they are all provably equivalent to one

10 Stanford Encyclopedia of Philosophy Winter 2016 Edition 11


Turing Machines David Barker-Plummer

another we can consider any of the formulations as being the definition of Instead of a one-dimensional infinite tape, we could consider a two-
Turing machine as we find convenient. dimensional “tape”, which stretches infinitely far up and down as well as
left and right. We would add to the formulation that a machine transition
Formulation F1 and formulation F2 are equivalent if for every machine can cause the read-write head to move up or down one cell in addition to
described in formulation F1 there is machine a described in F2 which has being able to move left and right. Again this formulation is equivalent to
the same input-output behavior, and vice versa, i.e., when started on the the original.
same tape at the same cell, will terminate with the same tape on the same
cell. Arbitrary movement of the head

Two-way infinite tapes Modifying the definition of a Turing machine so that the read-write head
may move an arbitrary number of cells at any given transition does not
In our original formulation we specified that the tape had an end, at the left alter the notion of Turing-computability.
say, and stretched infinitely far to the right. Relaxing this stipulation to
allow the tape to stretch infinitely far to right and left results in a new Arbitrary finite alphabet
formulation of Turing machines. You might expect that the additional
flexibility of having a two-way infinite tape would increase the number of In our original formulation we allowed the use of only two symbols on the
functions that could be computed, but it does not. If there is a machine tape. In fact we do not increase the power of Turing machines by allowing
with a two-way infinite tape for computing some function, there there is the use of any finite alphabet of symbols.
machine with a one-way infinite tape that will compute that same function.
5-tuple formulation
Arbitrary numbers of read-write heads
A common way to describe Turing machines is to allow the machine to
Modifying the definition of a Turing machine so that the machine has both write and move its head in the same transition. This formulation
several read-write heads does not alter the notion of Turing-computability. requires the 4-tuples of the original formulation to be replaced by 5-tuples

Multiple tapes ⟨ State0, Symbol, Statenew, Symbolnew, Move ⟩

Instead of a single infinite tape, we could consider machines possessing where Symbolnew is the symbol written, and Move is one of « and ».
many such tapes. The formulation of such a machine would have to allow
Again, this additional freedom does not result in a new definition of
the tuples to specify which tape is to be scanned, where the new symbol is
Turing-computable. For every one of the new machines there is one of the
to be written, and which tape head is to move. Again this formulation is
old machines with the same properties.
equivalent to the original.
Non-deterministic Turing machines
Two-dimensional tapes

12 Stanford Encyclopedia of Philosophy Winter 2016 Edition 13


Turing Machines David Barker-Plummer

An apparently more radical reformulation of the notion of Turing machine


allows the machine to explore alternatives computations in parallel. In the
original formulation we said that if the machine specified multiple
transitions for a given state/symbol pair, and the machine was in such a
state then it would halt. In this reformulation, all transitions are taken, and
all the resulting computations are continued in parallel. One way to
visualize this is that the machine spawns an exact copy of itself and the
tape for each alternative available transition, and each machine continues
the computation. If any of the machines terminates successfully, then the
entire computation terminates and inherits that machine's resulting tape.
Notice the word successfully in the preceding sentence. In this
formulation, some states are designated as accepting states and when the
machine terminates in one of these states, then the computation is
successful, otherwise the computation is unsuccessful and any other
machines continue in their search for a successful outcome.

The addition of non-determinism to Turing machines does not alter the


definition of Turing-computable.

Turing's original formulation of Turing Machines used the 5-tuple Figure 4: A Machine for Copying a Block of 1s
representation of machines. Post introduced the 4-tuple representation, and
the use of a two-way infinite tape. The action of this machine is to repeatedly change one of the original ‘1’s
into an A, and then write a new ‘1’ to the right of all remaining ‘1’ on the
A more complex machine tape, after leaving a zero between the original block and the copy. When
we run out of the original ‘1’s, we turn the As back into ‘1’s.
In addition to performing numerical functions using unary representation
for numbers, we can perform tasks such as copying blocks of symbols, The initial state, s0, is used to change a ‘1’ into an ‘A’, and move to the
erasing blocks of symbols and so on. Here is an example of a Turing right and into state s1. In state s1 we skip the remainder of the block of ‘1’s
machine which when started in standard configuration on a tape containing until we find a ‘0’ (the block separator) and in s2 we skip any ‘1’s to the
a single block of ‘1’s, halts on a tape containing two copies of that block right of that ‘0’ (this is the copy of the block of ‘1’s that we are making).
of ‘1’s, with the blocks separated by a single ‘0’. It uses an alphabet When we reach the end of that block, we find a ‘0’, which we turn into a
consisting of the symbols ‘0’, ‘1’ and ‘A’. ‘1’ and head back to the left, and into state s3. States s3 and s4 skip

14 Stanford Encyclopedia of Philosophy Winter 2016 Edition 15


Turing Machines David Barker-Plummer

leftward over the ‘1’s and separating ‘0’ on the tape until an ‘A’ is found. adds one to the input if that input is even, and doubles it if odd, for
When this occurs, we go back into state s0, and move rightward. example (should we want to for some reason).

At this point, we are either scanning the next ‘1’ of the original block, or 4. What Can Be Computed
the original block has all been turned into ‘A's, and we are scanning the
separator ‘0’. In the former case, we make another trip through states Turing machines are very powerful. For a very large number of
s1–s4, but in the latter, we move into state s5, moving leftward. In this computational problems, it is possible to build a Turing machine that will
state we will repeatedly find ‘A's, which we replace with ‘1’s, and move to be able to perform that computation. We have seen that it is possible to
the left. If we find a ‘0’, then all of the ‘A's have been turned back into design Turing machines for arithmetic on the natural numbers, for
‘1’s. We will be scanning the ‘0’ to the left of the original cell, and so we example.
move right, and into the final state s6.
Computable Numbers
This copying machine could be used in conjunction with the addition
machine of Figure 2 to construct a doubling machine, i.e., a machine Turing's original paper concerned computable numbers. A number is
which, when started on a tape representing the number n halts on a tape Turing-computable if there exists a Turing machine which starting from a
representing 2n. We could do this by first using the copying machine to blank tape computes an arbitrarily precise approximation to that number.
produce a tape with two copies of n on the tape, and then using the All of the algebraic numbers (roots of polynomials with algebraic
addition machine to compute n+n (=2n). We would do this by identifying coefficients) and many transcendental mathematical constants, such as e
the copying machine's halt state (s6) with the adding machine's initial state and π are Turing-computable.
(s0).
Computable Functions
The construction just suggested relies on the fact that the copying machine
As we have seen, Turing machines can do more than write down numbers.
terminates in standard position, which is required for the adding machine
Among other things they can compute numeric functions, such as the
to correctly compute its result. By designing Turing machines which start
machine for addition (presented in Figure 2) multiplication, proper
and end in standard configuration, we can ensure that they may be
subtraction, exponentiation, factorial and so on.
composed in this manner. In the example, the copying machine has a
unique terminating state, but this is not necessary. We might build a Turing The characteristic function of a predicate is a function which has the value
machine which indicates the result of its computation by terminating on TRUE or FALSE when given appropriate arguments. An example would
one of many states, and we can the combine that machine with more that be the predicate ‘IsPrime’, whose characteristic function is TRUE when
one machine, with the identity of the machine which follow dependent on given a prime number, 2, 3, 5 etc and FALSE otherwise, for example when
the switching machine. This would enable us to create a machine which the argument is 4, 9, or 12. By adopting a convention for representing
TRUE and FALSE, perhaps that TRUE is represented as a sequence of

16 Stanford Encyclopedia of Philosophy Winter 2016 Edition 17


Turing Machines David Barker-Plummer

two ‘1’s and FALSE as one ‘1’, we can design Turing-machines to collection of 4-tuples. We will first design an encoding for individual
compute the characteristic functions of computable predicates. For tuples, and then for sequences of tuples.
example, we can design a Turing machine which when started on a tape
representing a number terminates with TRUE on the tape if and only if the Encoding Turing Machines
argument is a prime number. The results of such functions can be
Each 4-tuple in the machine specification will be encoded as a sequence of
combined using the using the boolean functions: AND, NOT, OR, IF-
four blocks of ‘1’s, separated by a single ‘0’
THEN-ELSE, each of which is Turing-computable.
1. The first block of ones will encode the current state number, using the
In fact the Turing-computable functions are just the recursive functions,
unary number convention above (n+1 ones represents the number n).
described below.
2. The second block of ones will encode the current symbol, using one
Universal Turing Machines ‘1’ to represent the symbol zero, and two to represent the symbol ‘1’
(again because we can't use zero ones to represent ‘0’).
The most striking positive result concerning the capabilities of Turing 3. The third element of the tuple will represent the new state number in
machines is the existence of Universal Turing Machines (UTM). When unary number notation.
started on a tape containing the encoding of another Turing machine, call 4. The fourth element represents the action, and there are four
it T, followed by the input to T, a UTM produces the same result as T possibilities: symbols will be encoded as above, with a block of three
would when started on that input. Essentially a UTM can simulate the ‘1’s representing a move to the left («) and a block of four ‘1’s
behavior of any Turing machine (including itself). representing a move to the right (»).

One way to think of a UTM is as a programmable computer. When a UTM Using this convention the tuple ⟨0, ‘1’, 0, »⟩ would be represented as in
is given a program (a description of another machine), it makes itself Figure 5.
behave as if it were that machine while processing the input.

Note again, our identification of input-output equivalence with “behaving


identically”. A machine T working on input t is likely to execute far fewer
transitions that a UTM simulating T working on t, but for our purposes this Figure 5: The Encoding of the Tuple ⟨ 0, ‘1’, 0, »⟩⟩
fact is irrelevant.
To encode a complete machine, we need to simply write down the tuples
In order to design such a machine, it is first necessary to define a way of on the tape, in any order, but separated from one another by two blank
representing a Turing machine on the tape for the UTM to process. To do cells so that we can tell where each tupe ends. The add-one machine of
this we will recall that Turing machines are formally represented as a Figure 1, would be represented by the somewhat intimidating string shown
in Figure 6.

18 Stanford Encyclopedia of Philosophy Winter 2016 Edition 19


Turing Machines David Barker-Plummer

… 010110101111 00 101011011 00 110110110111 00 On the other hand, the number of functions on the natural numbers is
11010111011110 … uncountable. There are (uncountably) more functions on the natural
Figure 6: The Encoding of the Machine in Figure 1 numbers than there are Turing machines, which shows that there are
uncomputable functions, functions whose results cannot be computed by
This construction shows that it is possible to encode the tupes of a Turing any Turing machine, because there are simply not enough Turing
machine on a Turing machine's tape (in fact we have done this using only machines to compute the functions.
the alphabet {0,1}, while we know from a previous result that we could
have used an expanded alphabet which could have resulted in a more This proof by counting is somewhat unsatisfactory, since it tells us that
perspicuous representation). We want our UTM to be started on a tape there are uncomputable functions, but provides us with no examples. Here
which contains the description of a Turing machine in this encoding, we give two examples of uncomputable functions.
followed by the arguments to this described Turing machine. We will
adopt the convention that the description of the Turing machine will be 5.1 The Busy Beaver
separated from the arguments by a block of three ‘0’s, so the UTM can tell
Imagine a Turing machine that is started on a completely blank tape, and
where the tuples end and the arguments begin. The add-one machine
eventually halts. If the machine leaves n ones on the tape when it halts, we
requires a single argumen, so we could start the UTM on a tape as above
will say that the productivity of this machine is n. We will say that the
followed by three ‘0’s and, say, five ‘1’s. The UTM must terminate on a
productivity of any machine that does not halt is 0. Productivity is a
tape which contains a single block of six ‘1’s, having computed exactly
function from Turing machine descriptions (natural numbers) to natural
what the add-one machine would have done if started on a block of five
numbers. We will write p(T)=n to indicate that the productivity of
‘1’s.
machine T is n.

5. What Cannot Be Computed Among the Turing machines that have a particular number of states, there
is a maximum productivity that a Turing machine with that number of
In the previous section we described a way of encoding Turing machines
states can have. This too is a function from natural numbers (the number
for input to a Universal Turing Machine. The encoding of a Turing
of states) to natural numbers (the maximum productivity of a machine
machine is a sequence of ‘0’s and ‘1’ and any such sequence can be
with that number of states). We will write this function as BB(k)=n to
interpreted as a natural number. We can think of the encoding of a Turing
indicate the maximum productivity of a k-state Turing machine is n. There
machine as being a natural number which is the serial number of that
may be multiple different k state machines with the maximum productivity
machine. Because of the way the encoding works, each Turing machine
n. We call any of these machines a Busy Beaver for k.
will have a distinct serial number. Since all of the serial numbers are
natural numbers, the number of distinct Turing machines is countably There is no Turing machine which will compute the function BB(k), i.e.,
infinite. which when started in standard configuration on a tape with k ‘1’s will halt

20 Stanford Encyclopedia of Philosophy Winter 2016 Edition 21


Turing Machines David Barker-Plummer

in standard configuration on a tape with BB(k) ‘1’s. This example is due to But it is easy to show that BB(n+11) ≥ 2n (another exercise, but show that
Tibor Radó (Radó 1962). there is an eleven state machine for doubling the number of ‘1’ on the tape,
and compose such a machine with the n-state machine for writing n ‘1’s).
The proof that there is no such function proceeds by assuming that there is Combining this fact with the previous inequality we have:
such a machine, i.e. that there is a machine which starts in standard
configuration with k ‘1’s on the tape, and halts in standard configuration n+11+2k ≥ BB(n+11) ≥ 2n, for any n.
with BB(k) ‘1’s on the tape. We will call this machine B and assume that it
has k states. from which by subtracting n from both sides we have 11+2k ≥ n, for any n,
if the Busy Beaver exists, which is a contradiction.
There is an n-state machine which writes n ‘1’s on an initially blank tape
(exercise for the reader). We can construct a new machine which connects Even though the productivity function is uncomputable, there is
the halting state of this machine to the start state of B and then connecting considerable interest in the search for Busy Beaver Turing machines (most
the halting state of B to the start state of another copy of B. So the first productive machines with a given number of states). Some candidates can
machine writes n ‘1’ and then the first copy of B computes BB(n), but then be found by following links in the Other Internet resources section of this
the second copy of B takes over and computes BB(BB(n)). The total article.
number of states in our machine is n+2k. Our machine may be a Busy
5.2 The Halting Problem
Beaver for n+2k, but it is certainly no more productive than such a
machine. So (if the Busy Beaver machine exists) It would be very useful to be able to examine the description of a Turing
machine and determine whether it halts on a given input. This problem is
BB(n+2k) ≥ BB(BB(n)), for any n.
called the Halting problem and is, regrettably, uncomputable. That is, no
It is easy to show that the productivity of Turing machines increases as Turing machine exists which computes the function h(t,n) which is defined
states are added, i.e., to be TRUE if machine t halts on input n and FALSE otherwise.

if i < j, then BB(i) < BB(j) To see the uncomputability of the halting function, imagine that such a
machine H exists, and consider a new machine built by composing the
(another exercise). Consequently (if the Busy Beaver machine exists) copying machine of Figure 4 with H by joining the halt state of the copier
to the start state of H. Such a machine, when started on a tape with n ‘1’s
n+2k ≥ BB(n), for any n.
determines whether the machine whose code is n halts when given input n,
Since this is true for any n, it is true for n+11, yielding: i.e., it computes M(n) = h(n,n).

n+11+2k ≥ BB(n+11), for any n. Now lets add another little machine to the halt state of H. This machine
goes into an infinite sequence of transitions if the tape contains TRUE

22 Stanford Encyclopedia of Philosophy Winter 2016 Edition 23


Turing Machines David Barker-Plummer

when it starts, and halts if the tape contains FALSE (its an exercise for the by using the operations of composition and primitive recursion:
reader to construct this machine, assume that TRUE is represented by ‘11’,
and FALSE by ‘1’). Composition:
f(x1,…,xn) = g(h1(x1,…,xn),…, hm(x1,…,xn)), for all g,h1,…,hm
This composed machine, call it M, halts if the machine with the input code
n does not halt on an initial tape containing n (because if machine n does Primitive Recursion:
not halt on n, the halting machine will leave TRUE on the tape, and M will f(x,0) = g(x), for any g
then go into its infinite sequence), and vice versa. f(x,s(y)) = h(x,y,f(x,y)), for any h
To see that this is impossible, consider the code for M itself. What happens The recursive functions are formed by the addition of the minimization
when M is started on a tape containing Ms code? Assume that M halts on operator, which takes a function f and returns h defined as follows:
M, then by the definition of the machine M it does not halt. But equally, if
Minimization:
it does not halt on M the definition of M says that it should halt.
h(x1,…,xn) = y, if f(x1, …,xn,y)=0 and ∀t<y(f(x1, …,xn,t) is defined
This is a contradiction, and the Halting machine cannot exist. The fact that and positive)
the halting problem is not Turing-computable was first proved by Turing = undefined otherwise.
in (Turing 1937b). Of course this result applies to real programs too. There
is no computer program which can examine the code for a program and It is known that the Turing computable functions are exactly the recursive
determine whether that program halts. functions.

6. Alternative Formulations of Computability 6.2 Abacus Machines

6.1 Recursive Functions Abacus machines abstract from the more familiar architecture of the
modern digital computer (the von Neumann architecture). In its simplest
Recursive function theory is the study of the functions that can be defined form a computer with such an architecture has a number of addressable
using recursive techniques (see the entry on recursive functions). Briefly, registers each of which can hold a single datum, and a processor which
the primitive recursive functions are those that can be formed from the can read and write to these registers.
basic functions:
The machine can perform two basic operations, namely: add one to the
the zero function: z(x) = 0, for all x content of a named register (which we will symbolize as n+, where n is
the successor function: s(x) = x+1, for all x the name of the register) and (attempt to) subtract one from a named
the ith projection over j arguments: pi,j(x0,…xj) = xi, for all xi, i, j register, with two possible outcomes: a success branch if the register was

24 Stanford Encyclopedia of Philosophy Winter 2016 Edition 25


Turing Machines David Barker-Plummer

initially non-zero, and a failure branch if the register was initially zero (we Bibliography
will symbolize the operation as n-).
Barwise, J. and Etchemendy, J., 1993, Turing's World, Stanford: CSLI
These are called abacus computers by Lambek (Lambek 1961), and are Publications.
known to be equivalent to Turing machines. Boolos, G.S. and Jeffrey, R.C., 1974, Computability and Logic,
Cambridge: Cambridge University Press.
The modern digital computer is subject to finiteness constraints that we
Davis, M., 1958, Computability and Unsolvability, New York: McGraw-
have abstracted away in the definition of abacus machines, just as we did
Hill; reprinted Dover, 1982.
in the case of Turing machines. Physical computers are limited in the
Herken, R., (ed.), 1988, The Universal Turing Machine: A Half-Century
number of memory locations that they have, and in the storage capacity of
Survey, New York: Oxford University Press.
each of those locations, while abacus machines are not subject to those
Hodges, A., 1983, Alan Turing, The Enigma, New York: Simon and
constraints. Thus some abacus-computable functions will not be
Schuster.
computable by any physical machine. (We won't consider whether Turing
Kleene, S.C., 1936, “General Recursive Functions of Natural Numbers,”
machines and modern digital computers remain equivalent when both are
Mathematische Annalen, 112: 727–742.
given external inputs, since that would require us to change the definition
Lambek, J., 1961, “How to Program an Infinite Abacus,” Canadian
of a Turing machine.)
Mathematical Bulletin, 4: 279–293.
Lewis, H.R. and Papadimitriou, C.H., 1981, Elements of the Theory of
7. Restricted Turing Machines
Computation, Englewood Cliffs, NJ: Prentice-Hall.
One way to modify the definition of Turing machines is by removing their Lin, S. and Radó, T., 1965, “Computer Studies of Turing Machine
ability to write to the tape. The resulting machines are called finite state Problems,” Journal of the Association for Computing Machinery, 12:
machines. They are provably less powerful than Turing machines, since 196–212.
they cannot use the tape to remember the state of the computation. For Petzold, G., 2008, “The Annotated Turing: A Guided Tour Through Alan
example, finite state machines cannot determine whether an input string Turing's Historic Paper on Computability and Turing Machines,”,
consists of some As followed by the same number of Bs. The reason is Indianapolis, Indiana: Wiley.
that the machine cannot remember how many As it has seen so far, except Post, E., 1947, “Recursive Unsolvability of a Problem of Thue,” The
by being in a state that represents this fact, and determining whether the Journal of Symbolic Logic, 12: 1–11.
number of As and Bs match in all cases would require the machine to have Radó, T., 1962, “On Non-computable functions,” Bell System Technical
infinitely many states (one to remember that it has seen one A, one to Journal, 41 (May): 877–884.
remember that it has seen 2, and so on). Turing, A.M., 1937a, “On Computable Numbers, With an Application to
the Entscheidungsproblem,” Proceedings of the London
Mathematical Society, s2-42 (1): 230–265; correction ibid., (1938)

26 Stanford Encyclopedia of Philosophy Winter 2016 Edition 27


Turing Machines David Barker-Plummer

s2-43 (1): 544–546. [Note: This paper was received May 28, 1936 Halting problem solvable (funny)
and read to the Society on November 12, 1936, but wasn't actually
published until 1937.] Online Turing Machine Simulators
Turing, A.M., 1937b, “Computability and λ-Definability,” The Journal of
Turing machines are more powerful than any device that can actually be
Symbolic Logic, 2: 153–163.
built, but they can be simulated both in software and hardware.

Academic Tools Software Simulators

How to cite this entry. There are many Turing machine simulators available. Here are three
Preview the PDF version of this entry at the Friends of the SEP software simulators that use different technologies to implement
Society. simulators using your browser.
Look up this entry topic at the Indiana Philosophy Ontology
Project (InPhO). Andrew Hodges' Turing Machine Simulator (for limited number of
machines)
Enhanced bibliography for this entry at PhilPapers, with links
Suzanne Britton's Turing Machine Simulator (A Java Applet)
to its database.
Here is an application that you can run on the desktop (no endorsement of
Other Internet Resources these programs is implied).

“Turing Machines”, Stanford Encyclopedia of Philosophy (Summer Visual Turing: freeware simulator for Windows 95/98/NT/2000
2003 Edition), Edward N. Zalta (ed.), URL =
<https://plato.stanford.edu/archives/sum2003/entries/turing- Hardware Simulators
machine/>. [This was the original version of the present entry, written
by the Editors of the Stanford Encyclopedia of Philosophy.] Turing Machine in the Classic Style, Mike Davey's physical Turing
The Alan Turing Home Page machine simulator.
Bletchley Park, in the U.K., where, during the Second World War, Lego of Doom, Turing machine simulator using Lego™.
Alan Turing was involved in code breaking activites at Station X. A purely mechanical Turing Machine, Computer Science
Department, École Normal Supérieure de Lyon. (This one has no
Busy Beaver embedded microprocessor.)

Michael Somos' page of Busy Beaver references. Related Entries


The Halting Problem

28 Stanford Encyclopedia of Philosophy Winter 2016 Edition 29


Turing Machines

Church, Alonzo | Church-Turing Thesis | computability and complexity |


function: recursive | Turing, Alan

Copyright © 2016 by the author


David Barker-Plummer

30 Stanford Encyclopedia of Philosophy

You might also like