Academia.eduAcademia.edu

The Broad Conception of Computation

1997, American Behavioural Scientist

Abstract

A myth has arisen concerning Turing's paper of 1936, namely that Turing set forth a fundamental principle concerning the limits of what can be computed by machine-a myth that has passed into cognitive science and the philosophy of mind, to wide and pernicious effect. This supposed principle, sometimes incorrectly termed the 'Church-Turing thesis', is the claim that the class of functions that can be computed by machines is identical to the class of functions that can be computed by Turing machines. In point of fact Turing himself nowhere endorses, nor even states, this claim (nor does Church). I describe a number of notional machines, both analogue and digital, that can compute more than a universal Turing machine. These machines are exemplars of the class of nonclassical computing machines. Nothing known at present rules out the possibility that machines in this class will one day be built, nor that the brain itself is such a machine. These theoretical considerations undercut a number of foundational arguments that are commonly rehearsed in cognitive science, and gesture towards a new class of cognitive models. 1. Introduction Turing's famous (1936) concerns the theoretical limits of what a human mathematician can compute. As is well known, Turing was able to show, in answer to a question raised by Hilbert, that there are classes of mathematical problems whose solutions cannot be discovered by a person acting solely in accordance with an algorithm. Nowadays this paper is generally taken to have achieved rather more than Turing himself seems to have intended. It is commonly regarded as a treatment-indeed, the definitive treatment-of the limits of what machines can compute. This is curious, for it is far from obvious that the theoretical limits of human computation and the theoretical limits of machine computation need coincide. Might not some machine be able to perform computations that a human being cannot-even an idealised human being who never makes mistakes and who has unlimited resources (time, scratchpad, etc.)? This is the question I shall discuss here. I shall press the claim-a claim which, as I explain, originates with Turing himself-that there are (in the mathematical sense) computing machines capable of computing more than any Turing machine. These machines form a diverse class, some being digital in nature and some analogue. For want of a better name I will refer to such computing machines as nonclassical computers. It may in the future be possible to build such machines. Moreover, it is conceivable that the brain is a nonclassical computer. This possibility has, it seems, been widely overlooked both by proponents of traditional versions of the computational theory of mind and by opponents of the view that the brain is a computer. In order to keep the discussion as self-contained as possible, I will begin by briefly reviewing some essential concepts, in particular those of a Turing machine, a (Turing-machine-) computable number and a (Turing-machine-) computable function. A Turing machine is an idealised computing device consisting of a read/write head with a paper tape passing through it. The tape is divided into squares, each square bearing a single symbol-'0' or '1', for example. This tape is the machine's general purpose storage medium, serving both as the vehicle for input and output and as a working memory for storing the results of intermediate steps of the computation. The tape is of unbounded length-for Turing's aim was to show that there are tasks that these machines are unable to perform even given unlimited working memory and unlimited time. Nevertheless, Turing required that the input inscribed on the tape should consist of a finite number of symbols. Later I discuss the effect of lifting this requirement. FIG 1 ABOUT HERE ('A Turing machine'). The read/write head is programmable. It may be helpful to think of the operation of programming as consisting of altering the head's internal wiring by means of a plugboard arrangement. To compute with the device first program it, then inscribe the input on the tape (in binary or decimal code, say), place the head over the square containing the leftmost input symbol, and set the machine in motion. Once the computation is completed the machine will come to a halt with the head positioned over the square containing the leftmost symbol of the output (or elsewhere if so programmed). The head contains a subdevice that I will call the indicator. This is a second form of working memory. The indicator can be set at a number of 'positions'. In Turing machine jargon the position of the indicator at any time is called the state of the machine at that time. To give a simple example of the indicator's function, it may be used to keep track of whether the symbol last encountered was '0' or '1': if '0', the indicator is set to its first position, and if '1', to its second position. Fundamentally there are just six types of operation that a Turing machine performs in the course of a computation. It may (i) read (i.e. identify) the symbol currently under the head; (ii) write a symbol on the square currently under the head (after first deleting the symbol already written there, if any); (iii) move the tape left one square; (iv) move the tape right one square; (v) change state; (vi) halt. These are called the primitive operations of the machine. Commercially available computers are hard-wired to perform primitive operations considerably more sophisticated than those of a Turing machine-add, multiply, decrement, store-at-address, branch, and so forth. (The precise constitution of the list of primitives varies from manufacturer to manufacturer.) However, the remarkable fact is that none of these machines can outdo a Turing machine: despite its austere simplicity a Turing machine is capable of computing anything that e.g. a to omit an instruction to halt. Computer programs that never terminate by design are commonplace. Air traffic control systems, automated teller machine networks, and nuclear reactor control systems are all examples of such. A non-terminating Turing machine program that is of importance for the present discussion consists of a list of instructions for calculating sequentially each digit of the decimal representation of π (say by using one of the standard power series expressions for π). A Turing machine that is set up to loop repeatedly through these instructions will spend all eternity writing out the decimal representation of π digit by digit, 3.14159. .. Turing called the numbers that can be written out in this way by a Turing machine the computable numbers. That is, a number is computable, in Turing's sense, if and only if there is a Turing machine that calculates in sequence each digit of the number's decimal representation. (There is nothing special about decimal representation here: I use it because everyone is familiar with it. This necessary and sufficient condition can equally well be stated with 'binary representation', for example, in place of 'decimal representation'.) Straight off, one might expect it to be the case that every number that has a decimal representation, either finite or infinite-that is, every real number-is computable. (The real numbers comprise the integers, the rational numbers-which is to say, numbers that can be expressed as a ratio of integers, for example 1 / 2 and 3 / 4-and the irrational numbers, such as √2 and π, which cannot be expressed as a ratio of integers.) For what could prevent there being, for each particular real number, a Turing machine that 'churns out' that number's decimal representation digit by digit? However, Turing did indeed show that not every real number is computable. The decimal representations of some real numbers are so completely lacking in pattern that there simply is no finite list of instructions, of the sort that can be followed by a finite-input Turing machine, for calculating the n th digit of the representation for arbitrary n. Indeed, most real numbers are like this. There are only countably many computable numbers whereas, as Cantor showed last century, there are uncountably many real numbers. (A set is countable if and only if either it is finite or its members can be put into a one-to-one correspondence with the integers.) It is common to speak of Turing machines computing functions (in the mathematical sense of 'function', not the biological). These may be functions over any objects that are capable of being Henceforward I will abbreviate 'computable in Turing's sense' by 'Computable' (and similarly 'Uncomputable'). By the unqualified expression 'computable' I will always mean 'computable by some machine'. The nonclassical nature of the computing machines described in the next section arises from the fact that addition over the real numbers, as opposed to addition over the Computable real numbers, is not a Computable function. This is easy to establish. Let z be an Uncomputable real. Many pairs of numbers will sum to z; let x and y be one such pair. Since z is not Computable nor is x+y: no Turing machine can be in the process of churning out the decimal representation of x+y. (There is, of course, the additional difficulty, previously discussed, of entering x and y as input, since at least one of them must itself be Uncomputable.) Not all functions over the Computable numbers are Computable. The task of computing the values of such a function is beyond a Turing machine, even though the function's arguments (or inputs), being Computable numbers, can be represented on the machine's tape by means of finitely many symbols. Turing gave a famous example of such a function, the so-called halting function, which I will discuss in section 3. In the meantime, it will be useful at this stage to introduce, without proof, a rather simple example of one of these functions, to be written E(x,y). Where x and y are any Computable numbers, E(x,y)=1 if and only if x=y, and E(x,y)=0 if...