Talk:Turing machine/Archive 2

Possible error?
I don't know much about this subject, but this line looks incorrect: "... is a non-deterministic Turing machine (NDTM or DTM)." Is there a typo there? Can't be "DTM" because that is a deterministic Turing machine. Colin99 22:47, 9 February 2006 (UTC)

What is it good for?
Turing machines [...] can be adapted to simulate any closed function.

Closed function as in closed function?

I find the Turing machine article quite hard to understand right now for a beginner. Examples would be good to show how powerful a Turing machine can be. Thanks, --Abdull 17:29, 5 March 2006 (UTC)


 * A few of us created a page called Post-Turing machine that describes a "reduced" Turing machine with only two tape "symbols" { blank b, mark | } or {1, 0} and 7 instructions (Right, Left, Erase, Print, Jb,xxx, Jm,xxx, Halt) [Jb,xxx Jump-if-scanned-square-blank to step xxx, Jump-if-scanned-square-marked]. Unlike a full-blown Turing machine-- difficult because its "instructions" are really a state machine with multple branches and numerous symbols possible -- the Post-Turing machine is very much like a "computer" -- it always continues to the next instruction unless a jump is successful and works only in binary. I've got one on an Excel spreadsheet (just a few instructions are necessary; ironically the two-symbol state-machine version is significantly easier to program), but because this is not published/peer-reviewed I'm not allowed to put it on the page. Numbers are usually written in unary, with 0 = |, 1 = ||, etc. A program that goes right printing 1's (marks) until it hits a mark then halts, might look like this: (always starts at instruction 1, instructions are assumed sequential).
 * P, R, Jb_1, H

If a person needs a simple model, I'd start there. The "multiply" program is a fun challenge (Design a "copy" subroutine first, be sure to use unary code.) The Universal Machine is worth a lot of extra credit.wvbaileyWvbailey 03:55, 6 March 2006 (UTC)

Broken example?
Old Read  Wr. New    Old Read   Wr.      New St. Sym. Sym. Mv. St. St. Sym. Sym. Mv. St. - - - - - - - - - - - -     - - - - - - - - - - - - s1 1  ->  0    R   s2      s4  1  ->  1    L   s4   s2  1  ->  1    R   s2      s4  0  ->  0    L   s5   s2  0  ->  0    R   s3      s5  1  ->  1    L   s5   s3  0  ->  1    L   s4      s5  0  ->  1    R   s1   s3  1  ->  1    R   s3

Step State Tape  Step State Tape - - - - - - - -  - - - - - - - - -     1  s1   11        9  s2   1001 2 s2   01       10  s3   1001 3 s2   010      11  s3   10010 4 s3   0100     12  s4   10011 5 s4   0101     13  s4   10011 6 s5   0101     14  s5   10011 7 s5   0101     15  s1   11011 8 s1   1101       -- halt --

why does this example halt? There is no rule for s1 and 0. --Abdull 19:26, 5 March 2006 (UTC)


 * If there is no rule, the machine halts. At least, that's a common convention... DanielCristofani 03:42, 6 March 2006 (UTC)

The tape of Turing's original machine had a left end
To be completely (historically) accurate, we need to note that upon a careful reading, and Turing's examples, at first the command "R" moves the tape as if the head were moving to the right (and the tape moves to the left). [Are we confused yet? In Turing's own words: "..."R" means "the machine moves so that it scans the sqaure immediately on the right of the one it was a scanning previously"" (Undecidable, p. 119)]. Thereafter the tape shuttles left and right.

Emil Post believed this to be true as well:
 * "From Turing's frequent references to the beginning of the tape, and the way his universal computing machine treats motion left, we gather that, unlike our tape, this tape is a one-way infinite affair going right from an initial square." (The Undecidable, p. 300)

Some other peculiarities of Turing's conception:
 * The machine was specifically for the computation of numbers (in particular the decimal portions of the numbers), to appear on the tape as ";;;;;figures" using only binary symbols { 1, 0 }.
 * Turing's conception had no HALT. His machines were to compute "figures" forever unless the machine became lost in a never-ending "circle".
 * Alternate squares were specifically used as locations for "pointers":
 * "The first three symbols on the tape will be "e e 0" [Turing used inverted e's]; the other figures follow on alternate squares. On the intermediate squares we never print anything but "x". These letters serve to "keep the place" for us and are erased when we have finished with them. We also arrange that in the sequence of figures on alternate squares there shall be no blanks." (The Undecidable, p. 120)

Turing called these "F-squares" (as in "Figure-squares) as opposed to "E-squares" (as in "squares liable to Erasure").

Turing in fact made an error (actually lots of them), caught by Post. The first, left-most symbol sometimes is a colon ":". (Even Post seems to think the first symbols are e e 0; its unclear whether or not a colon is also mandatory; the reader sees the colon in Turing's own example (cf The Undecidable p. 121 i.e. ": e e 0")). But Turing's list of symbols that the U-machine could print (cf The Undecidable p. 129) is indeed in error and needs the addition of the colon (cf Post's footnote p. 299). None of this is easy because Turing's paper is chock full of errors. Perhaps the reader should be aware that), due to years of commentary, descriptions of Turing's "machine" (presented in his paper of 1936-7) have drifted over the years; the original Turing machine is somewhat different than the "modern conception". wvbaileyWvbailey 18:15, 28 April 2006 (UTC)

In the article it is not defined when a Turing machine halts. Also, what is the purpouse of the "final or accepting states"? They are mentioned in the formal definition and never "used" again. A Turing machine halts when it reach a pair (state, symbol) not in the domain, when it reach a final state, or what?


 * This is so confusing-- maybe we need to add something to clear it up: that is, there are actually two forms of Turing machines: Turing's machine, and the follow-on "Turing machine." Turing's machine never halted! It never arrived at an accepting state, final state, or any other terminal state -- it continued its calculations ad infinitum unless it ended in a circle. The additional concepts of "halting" -- of arriving at a "final states", etc. were later additions derived mainly from work of Emil Post and Kleene and Church. The article is misleading. But I'm afraid to touch it because I'll get my fingers chopped off. wvbaileyWvbailey 16:48, 29 May 2006 (UTC)


 * The material you're talking about seems to mostly be the history of Turing machines, rather than Turing machines as they are today. The article could sorely use sections describing the history of the Turing machine, the influence of the Turing machine on the history of computer science, etc.  If you can start filling out a "History" section, talking about changes over time, that would be wonderful.  -- Creidieki 01:12, 30 May 2006 (UTC)

History holding place
> 1900-1930: Hilbert's Gottingen mathematicians: what was Turing's problem to be solved...?


 * The question, the answer: Turing's machine construct to solve the question, through three proofs and two Lemmas. But Godel and Church and even Post beat him to it. Of particular importance, Emil Post

> 1930's: Turing's world: typewriter, ticker-tape, Hollerith punch cards, Jaquard loom, automatons (mechanical figurines). The idea of a machine run by a "table" of instructions. (reread Hodges?)
 * Binary adder made from relays (1930's ??)
 * Shannon, 1938 [A symbolic Analysis of Relay and Switching Circuits, see McClusky p. 113]

> Turing's machine:
 * TABLE and TAPE
 * No HALT, was to continue indefinitely calculating decimal "figure" of a number
 * One way device moving head the right from an initial starting square
 * Etc.

> Post's conception has a HALT, observe the Church quote does too
 * Church quote (1936) (p. 100 The Undecidable)
 * Rosser quote (1939) (p. 225-226 The Undecidable)

> 1940's: Destruction of Hilbert's group by the Nazis (Dawson, Logical Dilemmas)
 * Migration of mathematicians from Germany to America (Dawson, Logical Dilemmas)
 * World War II intervenes, mathematicians diverted (Hodges, Alan Turing, the Enigma)
 * The development of "computers" in US and Britain
 * Bell and Newell show a tree on p. 39 with root (i) "Jacquard loom" leading to "punched card equipment", then root (ii) "Telephone switching Technologes", root (iii) "Radar and TV", (iv)"Liebniz", "Pascal" leading to "desk calculators". These all lead to the "Harvard Mark I" computer. But in Cambridge England and Manchester England the IAS computers, and Turing contributed to Edvac (cf Hodges)
 * cf "Prelminary discusion of the logical design of an electronic computing instrument, Artur W. Burks/ Herman H Goldstine/ John von Neumann. "Taken from report to U.S. Army Ordnance Department, 1946) (see p. 92, Bell and Newell).

> 1950's development of theory of state machines [taken from refrences of McCluskey]
 * Quine 91953) [cf McCluskey, p. 113], Veitch (1952), Karnaugh(1953), Quine(1952), McCluskey (1956) [cf Mccluskey p. 178]. Sequential circuits theory: Huffman (1954), Meealy (1955), Moore (1956). Finite automata: Kleene (1956), Rabin and Scott (1959),

> John Von Neumann?? (Bell and Newell??)

> Turing is dead (1954)

> Post is dead (1954)

> Von Neumann is dead (??)

> The [founding of?] the Courant School [at Columbia University?? NYU?]: Martin Davis as Professor carries the torch. Note he references his own book, see below, and Minsky see below in his "What is a Computation?" (cf Steen, editor: Mathematics Today, 1978). We have to conclude + my own researches at Dartmouth that these were the two plus Post (until 1954) who carried the torch through the 1950's into the 1960's.


 * Davis's book -- he defines the so-called "HALTING PROBLEM" [is it this one??
 * Martin Davis, Computability and Unsolvability, McGraw-Hill New York, 1963

1960's: > Minsky's seminal book Computation: Finite and Infinite Machines (1967). By end of the '60s we see that the Turing machine as we know it, probably due to the extensive work of Minsky. Also: Rado [1960 Bell Labs] {busy beavers].

> Work on theory of computer languages, languages in general?? Classes of machines by languages they "decide". "Nom Chimpsky"?

> in the 1950's the first stabs at artificial intelligence, i.e. Perceptrons. But these were "destroyed" in late 1960's by work of Minsky (Marvin Minsky and Semour Papert, Perceptrons: An introduction to Computational Geometry, 1969, 2nd edition 1972. Funny quote: p. 4 'most of this work... is without scientific value')

> By the mid-1960's computer science a.k.a. matheticians-as-logicians adopts the Turing Machine as a useful tool of proof [1950's? Kolgomorov/Robinson Hilbert's 10th, Chaitin? undecidability proofs?].

> 1970- on: Host of authors since, both abused and used by philosphers in particular.

Comparison with real machines : example needed
Could you please give an example of an algorithm for which the number of states is significantly different on a real machine and on a Turing machine ?

Thanks King mike 21:15, 29 May 2006 (UTC)

Improving statements and formulations to be more accurate
[S1] The first sentence: "Turing machines [...] can be adapted to simulate the logic of any computer that could possibly be constructed." is a tautology (in a rethoric sense) that does not say anything. The definition of a "computer" here assumes a device that is Turing-machine equivalent, therefore the first sentence is a mere truism. --Marni.

[S2] In the section "Multi-tape machines", the sentence: "This model intuitively seems much more [...], but any multi-tape machine, no matter how large the k, can be simulated by a single-tape machine using only quadratically more computation time (Papadimitriou 1994, Thrm 2.1)." is somewhat misleading. The Theorem 2.1 requires the synchronised and discrete nature of state-transitions between different running heads. In situation were the time differences of state changes between different heads (and tapes) is not computable in Turing-machine sense, the multi-tape system would not be equivalent and cannot be simulated on a single-tape TM. --Marni.


 * This is interesting. I mean this as an honest question: can an unsynchronized multitape machine calculate "more functions" than a classical Turing machine where all is "in sync"? If we were to look at the total state of this unsynchrononized random-transition machine, would we see something new and novel in its behavior? Are there functions it can calculate otherwise uncalculable by a single tape TM? Are there any good examples? (And: if you have references I'm definitely curious and would like to see them.) Thanks, wvbaileyWvbailey 02:14, 28 June 2006 (UTC)


 * It can be shown, that, if only, the heads operate in continuous time intervals asynchronously, a multi-tape machine like that, would be capable of real-number processing, and it would be equivalent to real-number machine (analog computer). Any real-number machine (truly analog computer) is capable of solving halting-problems for any Turing-machine-like machine. Note, there would be another halting problem, for the real-number machine, that would be not-solvable by this machine. The actual physical realisation of machine capable of hypercomputation is not known. There are only some speculations (see references). In context of multi-tape asynchronous machine, it boils down to the nature of 'physical time' (or space). If, ultimately, time (or space) is based on quanta, physically, any multi-head machine would be equivalent to single-tape Turing machine, because, one could synchronise the asynchronous heads/tapes on the quantum time (space) scales. However, if the time (or space) is shown to be physically continuous, then a true hypermachine could be built, that would exceed the capabilities of Turing-machine. --Marni 03:01, 1 July 2006 (UTC)


 * "could be built"--well, for us to be able to use such a machine to solve any problem that we could not solve with a normal Turing machine, we would have to first be able to position particles with infinite precision, and secondly measure their positions with infinite precision, and we cannot do either of those even if space is continuous. Remember, the question is not "how much information exists" but "how much can we store, retrieve, and do computations on"--and that amount is finite. So WE cannot do anything with an analog computer that we could not do with a sufficiently high-capacity digital one... DanielCristofani 07:46, 1 July 2006 (UTC)


 * There are two questions. First is, how to *built* a super-Turing computer (e.g. analog computer). The second question is, how to put input data into it, and out of it. I do not know the answer to the first question. We do not even know if it is physically possible at all. Lets assume though, that the analog computer exists, and, as an input device it has a non-perfect analog meter. You can now measure continuous distances (without infinite precision though), and attach finite strings as labels to those continuous distances. The analog computer could do operations on those continuous distances, giving you answers as labels. You could ask: does (A) equals (some_constant) times (B) (where A and B are labels for some of the distances). And the computer would give you an answer TRUE or FALSE. You do not need infinite precision for the meter to put data into the computer. And you do not need infinite precision to be able get symbolic answers to some of the questions, that Turing machine would not be able to provide. One would not be able to simulate this machine with a Turing machine.--Marni 07:25, 4 July 2006 (UTC)


 * One: if you use a "non-perfect analog meter" which nonetheless does not act as a digitizer, but stores results which are within a specified tolerance of the "correct" value but differ from it randomly...and you use it to store two analog numbers...and then you ask whether one of these numbers is EQUAL to another one times a constant...then you will get the answer "FALSE" every time, because the chance of two numbers being equal which are stored with infinite precision, and which are independently random after (say) the thirtieth decimal place, is infinitesimal. Now that "FALSE" "FALSE" "FALSE" behavior can certainly be simulated with a normal Turing machine. Better would be "is one of these numbers GREATER THAN another times a constant"...

You missed the point. There is no "tolerance" or no "correct" value. There is JUST a value. And, the whole point is about infinities and infinitesimal - this is exactly what cuts the enumerable from non-enumerable sets. Turing machine cannot compare two infinite strings - the analog machine can. And it will say TRUE if the strings are the same. There is a difference between ALWAYS output=FALSE, and MOST of the time output=FALSE.


 * ...I thought "meter" meant a device to measure some real-world quantity. That is what "meter" usually means. And I took "non-perfect" to mean that it does not measure that quantity perfectly, but produces a value which may differ by some non-zero and non-infinitesimal amount from the true value of the real-world quantity that is being measured. If "there is JUST a value", i.e. this "meter" gives a value which has no correlation with any value in the outside world, then it is a random number, almost by definition. And if the successive values the "meter" produces also have no close relation to each other, then the probability of two of them being exactly equal, or off by a specified factor, is smaller than any positive real number. So the chance of running this machine and it saying something other than "FALSE" when asked if two of its inputs are equal, or are off by a specified factor, within a human lifetime, is also smaller than any positive real number. Again, "is this number GREATER" would be a better question.


 * Two. What if we use a non-perfect analog meter which DOES act as a digitizer? Let's say it would have the same tolerances as the one mentioned above, getting the first thirty decimal places right or better--but instead of the "imperfection" being random, it sets all numbers to a whole multiple of 10^-32 or whatever. In this case, it's just like using a digital meter, and a regular Turing machine can simulate the subsequent behavior. BUT, this digitizing behavior is a possible (though, again, it has an infinitesimal probability) behavior of the original random "non-perfect analog meter", too. So insofar as the behavior of the analog machine is a reflection of the actual input as opposed to a reflection of the random variation, a regular Turing machine with a digital input meter would get the same answers...

In your first point the value is not RANDOM. It is just a value - an infinitely long value. In your second second case, it is a finite value. Of course, it makes the world of difference.


 * In what way does this infinitely long value differ from a random infinitely long value? What about it makes it nonrandom? And the second one is an infinite value too, just a nonrandom one, i.e. it has an infinite number of zeroes after a certain point. IN fact it is a possible value which the first machine could have produced randomly as well, just with infinitesimal likelihood (the exact same likelihood as any other value it could have produced).


 * Three. Basically...what is fed into the analog computer is a combination of A. a finite amount of data (determined by the precision of the input device) and B. an infinite amount of random data. Granted that this machine cannot be simulated by a Turing machine in the sense that its future outputs can be predicted...the same is true of a regular Turing machine with access to a true random number generator, and for the same reason. My point is just that the extra power cannot be USED for anything. We cannot use it to solve a math or engineering problem that the regular Turing machine can't solve.

No. Basically, what is fed into the analog computer are real values - infinitely long, real values (or, you may imagine, inifinitely long sequences of integers, or zero-ones). This is the data. There is no digitization, no correct finite value, and no randomness involved. We're assuming the analog device will measure the same distance A always with the same analog infinitely long value. However, we assume that no two analog devices will measure the same value for the same distance - that's all.


 * The infinite values are not FED INTO the computer; they are mostly generated within the computer or its meter. To feed an infinite value into the computer from outside the computer, we would need a kind of analog meter that, as you say, will always produce the exact same infinitely long value when measuring the same thing, but could produce a continuum-infinite number of other possible values when measuring other things--and that kind of meter is not possible to build, not now and not ever. In fact, the necessary properties that I just listed are what I thought you were claiming NOT to need, when you said "non-perfect analog meter"...I thought you were talking about a meter that produces an infinitely long value which is within a specified distance of the "correct" value. Whereas it is now sounding like what you meant is an analog meter with perfect precision, that is simply not calibrated right and thus does not have perfect accuracy...but perfect precision is not possible either.


 * And in particular, unless there's something big that I'm missing, this analog computer with the non-perfect input device can NOT be used to solve the halting problem for regular Turing machines. I'd be really interested to hear if I'm wrong, though. DanielCristofani 08:58, 4 July 2006 (UTC)

If only the value of the Omega (Chaitin's constant) is measured by the analog input device, this computer would be able to solve the halting problem.


 * If only...??! You are putting more and more of the work into your magic "meter". This is no longer a question about what analog computers can do, but about what meters can do.

NOTE. I think I can see your point (correct me if I'm wrong): If analog computer is accessed by a Turing machine to provide data in, and to get data out, the analog computer will appear as a Turing machine with a random number generator. The bahaviour of the analog computer to the Turing machine observer will be like a Turing machine with a non-deterministic "noise". If humans are like Turing machines, then analog computer is useless, as the power it provides cannot be utilised.


 * No, it's not about the limitations of humans, and it's not anything about any real Turing machine, or Turing-equivalent human, being linked to this analog computer. It's mostly about the fact that no input device can get an infinite amount of non-random data from outside the machine. Beyond that, when I asked how an analog computer would solve the halting problem, you essentially suggested that that task could be delegated to the input device as well. Voltmeters and thermometers we can build, but chaitinconstantometers?!

I fully agree with this position and with this argument. However, I am not convinced that humans are like Turing machines, or, in general, that the world is like Turing machine. Hence, for a Super-Turing machine, an analog computer will appear as analog computer, etc, etc. --Marni 11:59, 4 July 2006 (UTC)


 * Again, it has nothing to do with that.

Multi-tape multi-head asynchronous machine in continuous universe
The difficulty lies in drawing the line between what is physically possible (relates to [S1] above), and what is not - the arguments are not settled and we do not know whether the hypercomputing is physically possible or not (thus the [S1] argument). Below are some arguments, related to the following questions:


 * Q1 Will multi-tape multi-head asynchronous machine exhibit hypercomputation if only if the nature of time is not discrete? (Relates to [S2] above)


 * Q2 If the nature of our reality allows hypercomputation to exists, and if we have a hypercomputer available to be used, then will we be able to use it?

Below arguments and discussion against "yes" to the above questions:


 * 1. Let's imagine that space and time are continuous. Then the position of a particle (say) requires an infinite amount of data to store, and you could say that that position itself stores an infinite amount of data; it can store an arbitrary real number. Okay. But...


 * 2. A particle's position is subject to constant small-scale change, due to an incalculable number of incalculable forces--for instance, the minute changes in the gravitational field that result from polar bears rolling over in their sleep on the other side of the world. Consequently, the real number that particle represents is changing all the time, too. If you look at its thousandth digit every nanosecond, there will be no discernable pattern to the succession of values, although that digit will be "2" 10% of the time, and "3" 10% of the time, etc. The values cannot be predicted or controlled, nor can we figure out WHY it ended up being that number at that time; the causes are far too subtle and numerous to trace. This is what I mean by the values being "random".DanielCristofani 11:50, 12 July 2006 (UTC)


 * This point needs to be backed up by some physical theories/data. Of course, there are physical entities that continuously vary, due to the influences of other physical entities. However, how can we know that everything in the continuous universe varies (or, is subjected to bear-rolling influences). For example, if there are any physical entities that are shaped as perfect spheres or circles (which may be the case in continuous universe, right?), the ratio of the circumference of such an entity to its diameter would always be the same, infinitely long number, pi. Maybe, the electron orbits in same-type of atoms are exactly (infinitely accurately) same distance apart, and maybe in atoms of the same type of excited electron jumping from an orbit of higher energy level to a lower one, emits a light particle of exactly the same frequency (again, with infinite accuracy)? On what basis can you claim that in continuous universe there is no constants that are always the same (with infinite precision), which could be used to store infinitely long data words? The argument that there are some values that vary, is too weak to claim that ALL values vary. --Marni 12:44, 15 July 2006 (UTC)


 * Yes, there may be real-valued physical constants. But you cannot do computing with only constants! DanielCristofani 07:09, 17 July 2006 (UTC)


 * Yes, you can do computation with constants. Remember, these are infinitely long constants. You can do computing that goes beyond Turing limit, ie. you could solve a Turing machine halting problem, given a single constant, e.g. see Chaitin's constant.--Marni 10:03, 17 July 2006 (UTC)


 * "Doing computation with constants" is not the same as "doing computation with only constants". In computation, values are not merely measured but PRODUCED, based on other values. Imagine a computer program made of constants: "6; 900; 405; 36; 12; END." All it does is assert that these numbers EXIST, and that's not computation. There is an ALGORITHM that solves the halting problem based on the value of Chaitin's constant. You won't be able to run that algorithm without variables. Of course, for any single n, that algorithm is Turing-computable; here again the problem has been moved to the magic chaitinconstantometer. When you say "e.g.", it makes it sound like measuring ANY Turing-uncomputable constant will allow you to solve the halting problem, as opposed to that specific one. But if you have any way to solve the halting problem by measuring some other constant, OR any reason to suspect that Chaitin's constant has any physical instantiation, I will be very surprised.)


 * I never said "computing ONLY with constants".


 * I didn't say you had. _I_ said "only", and you ignored it in your response. Please...read the earlier discussion again.


 * A Turing-machine with access to Oracle (access to uncomputable constants set) is the basic model of a hypercomputer. Given a certain constant uncomputable constant set, such a hypercomputer can solve the halting problem. Not all hypercomputer "programs" must be busy solving halting programs.


 * "Not all must be busy solving halting problems"--that's good, because none of them CAN ever do so. Nor can they solve other Turing-uncomputable problems of our choosing. Listen to that again: no "hypercomputer" will ever solve any Turing-uncomputable problem which we are able to formulate mathematically. Your boiling egg, which you can call a "hypercomputer" if you want, is unpredictable (in its fine details), but by the same token it is uncontrollable (in its fine details), and also unknowable (in its fine details).


 * "none of them CAN ever do that". Why not? Why it is impossible, for some of the physical constants to be equal to omega for example? "no hypercomputer will ever solve any Turing-uncomputable problem which we are able to formulate mathematically" Why not? We have formulated mathematically the halting constant omega, and a physical random number generator may be generating digits of omega. I agree, that processes are "unpredictable (in its fine details), and uncontrollable (in its fine details)" from our point of view, so we may never have access to all the "fine details" - but, maybe we do not care? Maybe solving halting problem of programs up to certain length is all we need to use the hypercomputers for? In such a case we would not need "fine details".


 * It takes only ONE to demonstrate the power beyond Turing-machine.


 * One egg? That "power" is not accessible to us. I thought you were saying it was.


 * I do not say it is. You are saying, that the power is not accessible to us. I am saying, that there is no argument one way or the other. There is a fine point about pi for example. Pi is computable, and knowable, yet, we are not able to compute it or know it with all "the fine details". But we do not need to. It is the same with Omega - we do not need to know it "with fine details", to be able to use it, and be able to do more than we can now.


 * There are other uncomputable sequences (uncountably infinitely many)


 * ...right...which is WHY a random sequence generated by a physical process is so overwhelmingly likely to be uncomputable...


 * that can be used for other uncomputable computations, that are not solving halting problem.


 * They can't "be used" for computations. They will do computations, on their own, we cannot control the process and we cannot even find out what the answer was. That is not "being used".


 * yes, i'm starting to get the feel of what you mean by "being used". I think we disagree on that one. To me being used does not require a full control up to "the fine details" over something. I can for example "use" my watch, just by looking at it, and exploiting certain regularities of its own workings. I have no direct "control" over my watch, or I cannot "manipulate" it in any direct way. But, it is very useful to me. In a same way I could use my cats, etc. I do not "control" them, or "manipulate" them, but, I can use them to solve certain "problems". For example, to find the warmest spot on the carpet ;)


 * In continuous universe, there is no reason why one of the constants just happen to be omega. But, any uncomputable constant would do, anyway. There is no logical contradiction there. --Marni 23:15, 20 July 2006 (UTC)


 * "any uncomputable constant would do"--to prove the point I stated way back there, that many physical processes cannot be predicted or modeled by a Turing machine? I thought you were saying more than that.DanielCristofani 01:18, 21 July 2006 (UTC)


 * You cannot even do measuring with only constants. To compute or measure anything with infinite precision, you will need real-number VARIABLES, which can assume any of a continuous range of values in response to outside influences (e.g. from other variables or, in the case of your input device, from the thing you are measuring). And if they change in response to outside influences, I do not see how you can prevent them from being affected, directly or indirectly, by the constant small-scale random movements of all matter in or near your computer. DanielCristofani 07:09, 17 July 2006 (UTC)


 * To "compute" you do not necessarily need to "measure things with infinite precision". None ever "measured" pi with infinite precision, yet, we know (with infinite precision) what exactly all the digits of pi are (well, not quite, but we can compute them to the arbitrary precision).


 * I didn't say "to compute, you need to measure things with infinite precision"; I said "to compute or measure anything with infinite precision you will need real-number variables". And arbitrary precision is not infinite precision, either; earlier, you seemed to be talking about producing and manipulating entire real numbers in finite time.


 * The hypothetical analog computer can do it. Any physical device in continuous universe would be doing it all the time. Arbitrary precision vs. infinite precision is like Turing machine with infinite tape and with arbitrary long tape. Of course there is a difference, but I'm sure we could settle with arbitrary precision for physical super-Turing computers (same as we do with finite long tapes now for Turing machines).


 * A physical device in a continuous universe will be doing it all the time--yes, it will be perfectly calculating the total effect of all influences on it. Which there are an incalculable number of, and which you cannot control or even find out about. Every piece of matter is doing a perfect real-number summation all the time, it's just that you have no control over, or access too, its inputs. Does that mean every bit of dust is a hypercomputer? I thought what we were talking about was some way of HARNESSING this power, in order to answer questions of interest to us. I think I already said that every piece of matter perfectly answers the question "what are you going to do next", by doing it, while a Turing machine could not answer that question about the piece of matter. But that's not what is usually meant by hypercomputation.


 * About the distinction between arbitrary and infinite..."arbitrary precision" means that the precision will always be finite, and that means it will always be within the grasp of ordinary Turing machines. Besides, we cannot measure or store numbers with arbitrary precision, as mentioned elsewhere.


 * If the universe is continuous, and if there are constants, then it is possible for some of them to be uncomputable. Given even a single uncomputable physical constant, and given that we can read all the digits of it, one by one, would allow us to perform computation that is uncomputable in Turing sense.


 * No...this is subtle, maybe, but measuring a Turing-incomputable constant is not the same as computing a Turing-incomputable constant (and does not allow us to do so). Measuring such a constant to arbitrary precision, if it were possible, would give us a sequence of digits that could not be predicted by a Turing machine; but on the other hand, so will checking the thirtieth significant digit of the temperature every second. Measuring a Turing-incomputable physical value is not hypercomputation (and does not enable hypercomputation, unless that value happens to be Chaitin's constant, or a value from which it can be derived). Nor is it a new technology in its own right; and its only use is as a source of random numbers.


 * I do not understand your argument. Measuring uncomputable sequence of digits, is equivalent of having a physical access to an oracle (as defined by Turing in o-machines). Such an oracle, could be used by an ordinary Turing machine, to perform computation, and, it would clearly go beyond Turing machine computing capabilities. Anything that goes beyond Turing computability is hypercomputation - hence, Turing machine + oracle (uncomputable set of numbers) would be a hypercomputer.


 * We have already built devices that will output an uncomputable sequence of digits. Any hardware random number generator will do that.


 * It is not as simple as that though. If this was the case, we would KNOW hypercomputation is physically possible.


 * Wrong. You are making a logical jump from "A random number generator outputs an uncomputable sequence" to "we can PROVE a random number generator outputs an uncomputable sequence". And anyway, all I meant to say was "if spacetime is continuous, a hardware random number generator (almost certainly) outputs an uncomputable sequence". I have not been putting "if spacetime is continuous" at the start of every sentence, it has been implicit as a background assumption to our whole discussion. I have been giving you that as a premise the whole time, since you need it.


 * You cannot prove that the sequence is uncomputable.


 * Right. It's just obvious, it's not provable.


 * If you can show, that there is no finite TM program, that could possibly generate such a sequence, then it would have huge implications. For starters, we would know Fredkin model of CA universe is wrong. We would know the world is non-Turing-computable, etc etc. But, we do not KNOW that.--Marni 23:15, 20 July 2006 (UTC)


 * Right. Again: I'm saying that in a continuous universe, a hardware random number generator outputs a Turing-uncomputable sequence with probability infinitesimally different from 1. Not that the sequence can be PROVED uncomputable, and also nothing about what such a generator would do in a discrete spacetime.DanielCristofani 01:18, 21 July 2006 (UTC)


 * An oracle, by contrast, is supposed to output a prespecified uncomputable sequence, or compute an uncomputable function. And for an oracle to be able to solve the halting problem, that sequence or function will have to be very carefully chosen. An oracle that gives you Chaitin's constant for some known machine encoding can be used to solve the halting problem. A device that gives you the thirtieth significant digit of the current temperature cannot be used to solve the halting problem, and would not usually be called an "oracle", even though the sequence of digits it will output is not Turing-computable.


 * When you say "anything that goes beyond Turing computability is hypercomputation", I think that may be the root of the problem. If space and time are continuous, then most physical processes are not Turing-computable. Does that mean that boiling an egg is "hypercomputation"?


 * Yes. It would mean that in principle it would be a hypercomputation. That is, if we consider a certain level of mathematical modelling of what "water" is, and what "egg" is, and we consider "boiling" as certain transformation of "input" into "output" of the giant hypercomputer. Boiling then could be thought as computing of this giant hypercomputer.--Marni 23:15, 20 July 2006 (UTC)


 * If any noncomputable process is hypercomputation, then hypercomputation is not some theoretical possibility, it is something we have been doing since before we had spoken language. But when most people talk about hypercomputation, they are talking about the possibility of solving explicitly formulated mathematical problems which cannot be solved by a Turing machine.


 * Yes - but "boiling an egg" would be an example of such a computation, that cannot be performed by a TM in the above model.


 * Wrong: the "problem" solved by a boiling egg is not possible for us to formulate mathematically. It involves an incalculable number of real-number inputs which we can never find out about, much less write down. It is not just that we cannot get the egg to solve a problem of our choosing, it is that we can never, even in principle, figure out what the problem was that it just solved on its own.


 * Excellent point. This is exactly where the limits of algorithms are. And what hypercomputation is all about. We cannot think of hypercomputation in axiomatic sense (or in computable sense). We even cannot properly define the problems that are being solved, in some cases. In some we can - for example, omega is definable, yet, uncomputable.


 * Almost nothing in a continuous universe is TM-computable! But, the beauty of it all is that we do not KNOW if the world is not really TM-based, and all our continuous notions just limit-theorems and mathematical abstractions. Fredkin thinks reality is truly TM-based! Yet, some people think continuous universe is more natural way of thinking about it. Personally, I do not care, as long as people make correct propositions from the set of initial assumptions. --Marni 23:15, 20 July 2006 (UTC)


 * I think I said, long ago, that if spacetime is continuous, many physical processes cannot be modeled perfectly by a Turing machine. If you are reducing your claims so they say no more than that, I think we may be in agreement. And I agree that we have no way to know, at this time, whether spacetime is discrete or continuous.DanielCristofani 01:18, 21 July 2006 (UTC)


 * For instance, solving the halting problem. And my point is that THAT is not possible. I have tried to explain how the limited precision with which we can store or measure any value means that any device we build will be only as powerful as a Turing machine with a hardware random number generator attached to it. Now if a Turing machine with a random number generator is a hypercomputer, then great, we have hypercomputers, and in that case, hypercomputation is a big anticlimax.


 * Great. I can see we talk the same language now. Halting problem is just ONE example. And omega is just ONE such an uncomputable constant. That's all. As for the halting problem, it boils down to the nature of the universe, one way or the other. Chaiting proposed a method of calculating the bounds for the omega digits, using TM. For example, it is easy, to check, by brute force all the programs of lenght 1, if they will stop or not. The problems arise, because we do not know how long to wait for longer programs to stop. At the heart of the problem is the fact, that the small increase in program lenght amounts to a very (a very very very ....) fast increase of this "waiting" time. We could think of it, in spatial terms. How much we can pack in a unit of space? In principle, if the world is discrete, there is a limit. Otherwise, we could go "all the way".


 * Not "we". As I've mentioned, there are definite limits on how much information WE can put in a unit of space. And there are definite limits on how much information WE can get out of a unit of space. (If spacetime is continuous), nature can pack an infinite amount of information, which is just random junk from our perspective, into a unit of space. But how does that help us?


 * Agreed. There are limits, of what we can do algorithmically. But, by manipulating the matter (space and time) directly, we could do more, to what we do exclusively using algorithms.


 * It is true, that physical abilities constrain what we can do, e.g. we cannot compute any infinite computable number, such as pi, even though it is computable, because we do not have infinit time. If we can do something using hypercomputation, that could in principle be modelled on TM, but so big, that physically impractical, then going with a hypercomputer is a way to go.--Marni 23:15, 20 July 2006 (UTC)


 * I don't know what you mean. If we build a computer, to do a task that can be done by a Turing machine, and to do it as fast as we can, how is that different from what we've been doing all along? I don't see that fast computation within the Turing-computable realm has anything to do with hypercomputation, or that a computer should be called a "hypercomputer" if all we can do with it is solve Turing-computable problems.DanielCristofani 01:18, 21 July 2006 (UTC)


 * Would this constant be influenced by the bears? No - the constant by definition is not influenced. Would it be possible for us to measure it, and store it? No - we cannot measure things with infinite precision, and we are not good in storing infinitly long sequences. Would we be able to read all the digits, one by one, of some physical constant? Perhaps. I do not see a reason why not.--Marni 10:03, 17 July 2006 (UTC)


 * Heisenberg aside, we cannot read all the digits of some physical constant because we cannot build any measuring device with a precision greater than 1/10^-1,000, because the bear-induced movement of the particles in our device will introduce errors larger than that. We cannot just ask for the 1,000th digit of some constant; if we want it, we need to make a device of that precision, which is not possible. (In practical terms, I don't think we are now capable of measuring any physical constant to even fifty significant digits, and it hasn't been for lack of trying.) And once again, not only is it impossible to measure physical constants with that precision, but it would not allow us to do hypercomputation if we could. DanielCristofani 16:53, 17 July 2006 (UTC)


 * You seem to be assuming that all the physical constants are only available on the micro-scale. Perhaps there are some, with observable implications in the macro scales, that could be observed over human-life-long time scales, with higher precisions than 50 digits.


 * Well, for ordinary real numbers, the digits farther to the right are "less significant", meaning that they make less difference to the overall value, i.e. they are matters of fine detail, yeah. It's not that later digits are tied to later times, so much as that as time goes on we develop more and more precise measurement techniques. I don't claim that fifty digits is a hard limit, necessarily--that's just a convenient number beyond the current state of the art. The hard limit is somewhere before 1,000 digits, though, as mentioned. DanielCristofani 22:14, 19 July 2006 (UTC)


 * 3. This changing of values will happen constantly throughout the process of inputting the values, storing them, doing computation on them, and outputting them. For instance, if we use the input device to measure a distance A, and measure the same distance A a nanosecond later, there is no way we are going to get the same real number after the thousandth decimal place, because the device will have changed its shape a tiny tiny bit and so will the thing we are measuring.


 * 4. So. We can distinguish between the digits on the left side of our real numbers, which are stable through the process of input/computation/output, and the digits to the right of them, which fluctuate wildly throughout the process in response to outside forces. The left-hand digits of the output can be predicted by a standard Turing machine. The right-hand digits cannot be predicted even by another analog machine, or replicated by the same analog machine five seconds later, because the polar bears will be in a slighly different place by then. We cannot control or even replicate the right-hand digits given to the machine as input; even if we could, inputting the same real numbers twice would not make the machine output the same real number; everything past the thousandth digit (to be generous) is just constantly fluctuating junk. Now this machine can answer a question: "Given the current state of the universe, what output are you going to produce?" No other machine can simulate this machine in order to predict its answer; but being unpredictable is its only power that Turing machines don't have. It can't solve the halting problem for regular Turing machines, or anything fancy like that. DanielCristofani 11:50, 12 July 2006 (UTC)

Analog computers
Many of "youse guys" are too young to have used a slide rule. But this is an example of a piece of an analog "computer". The other piece of "the computer" is you. This "you + slide rule" can do all sorts of computations to infinite precision (in a most abstract of theories). But as noted above what ruins this possibility is the "real world" and its problems of "random noise", finite sizes of atoms, "uncertainty principle", etc. All that we can do is provide you with a longer slide rule. Eventually your slide rule is the universe. Eventually every particle in the universe is involved in "the computution". And at that point the computation comes to an end ... in this and all other universes. And yet there are more numbers to be computed. The notion of "the infinite" transcends our universe(s)... I can see no end to the argument because it revolves on two mutually-exclusive premises -- (i) the universe(s) is(are) infinite, (ii) the universe(s) is(are) finite. Its more of a Platonist versus a finitist philosophic conflict. wvbaileyWvbailey 17:40, 17 July 2006 (UTC)


 * This is exactly my point. My position is that we simply do not know. We may never know. By assuming certain axioms about the nature of the universe, we end up with a certain set of propositions about the nature of physical computability in such a universe. That's all. Assuming different properties leads to different physical computability outcomes.--Marni 11:31, 19 July 2006 (UTC)


 * I think I've been really clear about giving you a universe with continuous space and time. I've pretty much given you a universe without QM-related measurement problems, too. And if you want a universe where space is infinite in extent, not merely in detail, I will give you that too. As far as I can tell, the dispute does NOT trace to a disagreement about what the universe is like. DanielCristofani 22:21, 19 July 2006 (UTC)


 * The problem is in details though. You claim that it would never be possible to do anything useful with all the hypercomputation that is going on in such a neat, all-hypercomputing world. I am not sure why you would be so sure about it.


 * I thought I had explained pretty carefully why I was so sure about it; if nothing else, gravity cannot be shielded, and an incalculable number of stray gravitational influences will produce random movements in the material parts of any computer, meter, input device, output device, etc. that you use, which in turn puts a hard limit on the precision of the numbers you can produce, move, store, compute with, etc., meaning the amount of data we actually have any control over always remains finite. The problem is that we cannot isolate part of the world, to do hypercomputation on a set of carefully limited inputs of our own choosing. "Such a neat, all-hypercomputing world" is exactly the problem. It is as if you are swimming in an ocean made out of all the beer in the world, and you want to drink Guinness and ONLY Guinness. It's not going to be possible to separate it out. "Why are you so sure you can't drink Guinness in such a neat all-beer ocean."


 * For example ref[2] claim that human brain already is capable of "using" some of that in our normal mental processing of information - they provide some arguments as to how it can be "observed". We simply agree, that in such a universe all that is happening is a giant hypercomputation (as opposed to Fredkin claims that it all is just a giant CA), and even in such a universe you claim that hypercomputation will not give us anything?


 * Exactly. If the universe is continuous (I don't have an opinion one way or the other on this, actually), every part of it is constantly "computing" its response to every other part of it, but cannot be cut off from the rest of the world and made to compute what WE want it to. Below a certain (finite) level of detail, outside influences will drown out the data of interest to us, replacing it with "random" values.


 * I do not know, but, to me it seems unlikely, and, I do not really see any reason why hypercomputation would not be harnessed to do useful things, in principle. That's all.


 * Well. I don't know what else to say here.DanielCristofani 01:43, 21 July 2006 (UTC)


 * I think we agree on everything that has been said so far. I think we mean the same thing by hypercomputation, and by randomness. However, you seem to be convinced, that the only way of "using" hypercomputer, is like "using" normal computer. And to do that, we would need what we cannot have: manipulate infinite things, or have infinite precission. I agree - we do not have infinite precision and we do not have infinity in our disposal. And I am saying, that this is logically not enough to make the argument, that hypercomputing is useless. We cannot manipulate hypercomputer same way as normal computer. Hypercomputer is not working in algorithmic way. This is all not enough, to claim that hypercomputer is useless. If only we are able to map some of our problems into physical elements and then remap the "world" response - that would be one way. There is an example, that has been heavily criticised and so on, but, it may demonstrate the point (although I do not claim that it demonstrates hypercomputing). "If we dip two glass plates with pegs between them into soapy water, and take the plates out, the soap bubbles form a minimum Steiner tree connecting the pegs, effectively solving an NP-complete problem, simply by reaching the lowest energy state." There are other examples similar to that, where the problem is coded in a physical system, and then the solution is "read" after the system performed it's magic. Again, I am not sure this is possible or not.

I have to express a bit of confusion here. I've done a lot of work designing and building "oscillators" -- real ones made from op-amps, resistors, capacitors, etc.; electromechanical oscillators made from tuning-fork or vibrating wires; synthetic ones made from recursive "algorithms) (of various sorts) operating either in/on spreadsheets and microcontrollers. These create sines and cosines to very high precision. Whether these implementations represent "algorithms" or not, and whether these are "Turing equivalent" is (for me) a very interesting question.

Here's the thought experiment: we create four black boxes. All are realizable. All four create an output voltage: Vout = 1*sine(2*pi*440*t) volts. Into box #1 we put an electronic oscillator (op-amps, capacitors,battery); we put into box #2 a tuning fork plus a pickup and feedback/driver (done with magnets and electromagnets and a simple transistor amplifier); into box #3 we put a microcontroller programmed with a recursive sine-generation program with 32 bit precision plus an output D/A converter and a low-pass filter; into box #4 we put a 32 bit sine lookup table with a digital counter outputting the 32 bits into a D/A converter plus low-pass filter. All produce the same sine output to 32+ bit precision. The first two are "analog computations"; the second one is a true Turing-equivalent object, the last is ... well ... a lookup table. Remember, we can't tell one from the other because they are in black boxes. Which one(s) is an(are) "algorithm(s)"? Are all "algorithms"? Are all Turing-equivalent? What's going on here?? Am confused. Thanks, wvbaileyWvbailey 01:21, 20 July 2006 (UTC)


 * The answer in classical computability theory is that none of these are algorithms. The classical informal definition of algorithm entails that it can be carried out by a person using pencil and paper; the classical Church-Turing thesis says that anything a person can do with pencil and paper can be done by a Turing machine.  This is not to say that there is nothing important about analog computation; I think it is probably very important in electrical engineering.  it is not part of classical computability theory, however.  There is a tendency to overgeneralize and think that any machine or physics experiment that produces something called an output is a candidate for a model of computation.  While this is true in some very general sense, it is not the generalization that has classically been chosen for computability theory.   CMummert 02:25, 20 July 2006 (UTC)


 * "can be carried out mechanically, by a person using pencil and paper" and "anything person can do in mechanical way" or "as a rule of thumb". Again, Turing was pretty clear, and talked about a human being following a set of strict rules (or, an algorithm, if you will), in a "autistic" and "mechanical" way.  Claiming "anything a human being can do" is going beyond what was originally intended. We do not know, if human beings in general follow a fixed set of rules in their behaviour, or, if they do not. Please, be specific (otherwise, uninformed reader will be mislead). —The preceding unsigned comment was added by Marni (talk • contribs).


 * There is no need to be so pedantic. CMummert 12:56, 20 July 2006 (UTC)


 * I disagree. There is a need to be pedantic, and precise. I assume you are not aware of a gread divide in the technical world, related to the split between people claming strong version of the Church-Turing thesis (the non-pedantic one) and people claming the proper formulation (the pedantic one). It spans not only computer science, but it goes into any area of science, including social sciences, psychology, and philosophy. There is a lot of peer-reviewed publications, say, in psychology, using the non-pedantic Turing thesis to claim that all human mental processes are Turing-machine equivalent ("because Turing proved so, in his seminal 1936 paper."). Being precise and formal is what makes a difference between science and art. Non-precise formulation of the fact is not the fact - it is someone's own interpretation of the fact. I believe Wikipedia should stick to FACTS and it should be pedantic and precise. Interpretations can only come under discussion page.--Marni 23:15, 20 July 2006 (UTC)

Can we find a quotation or reference(s) re "informal definition of algorithm entails that it can be carried out by a person using pencil and paper?" Actually I kind of like it (it is very precise) ... but ... while I am familiar with Post's formalism (here's an indirect source for the notion of a "computer" going left and right from box to box writing marks and erasing marks, per a table of instructions, but not a direct source) and Turing's formalism (again indirect where he derives a Turing machine from the actions of a human "computer"), and can't quite remember Kleene's particular stipulation where he defines his "Thesis I" (will look up when back from vacation).... I don't remember any specific, quotatable stipulation/definition/requirement for "algorithm" re "carried out by a person using pencil and paper". If we can identify a/the source of this "informal definition" we should add it to the "algorithm" page -- precision here will (perhaps) deflect further discussion of analog computation in the context of Turing-equivalent computation.wvbaileyWvbailey 04:33, 20 July 2006 (UTC)


 * Turing said (Turing's thesis):
 * [LCM - logical computing machines: Turing's expression for Turing machines]


 * LCMs can do anything that could be described as "rule of thumb" or "purely mechanical". See ref[5] above.


 * Turing's original paper motivated Turing machines by showing how they model the behavior of a desk clerk. The first chapter of Rogers' book, and Enderton's article in the handbook, both explain it as well.  Knuth's effectiveness criteria for algorithm says that effectiveness means calculability using pencil and paper. CMummert 12:56, 20 July 2006 (UTC)

I do believe we're getting somewhere (hard to believe as it may be). But I want to do create another, 5th, black box. I put a man doing paper and pencil calculations in the box. This time the boxes spit out discrete, typed-on-tape binary numbers for a very slow sine-wave e.g. 1 cycle per 1000 seconds, rather than analog signals, and the analog boxes do this with a A-to-D converter plus some simple hardware to convert the binary into symbols {0, 1}. So ... even though there's a man in there doing a sine-computation following a set of rules and doing so with paper and pencil, he is not doing an (or is not a Turing-equivalent) algorithm? And the other boxes, altho producing identical output, are not algorithms either, nor Turing-equivalent? Am still confused.wvbaileyWvbailey 17:06, 20 July 2006 (UTC)


 * There is a computable function that takes a rational number t and returns the aplitude of a sine wave after t seconds, as a rational number with error no more than 1/1000. And it could be computed by a person with pencil and paper.   Viewing this as a digital wave, you get the graph of the computable function.  Taking that and passing it through a DAC moves you into the realm of electrical engineering and out of the realm of computability theory. CMummert 17:24, 20 July 2006 (UTC)


 * If I understand what you are saying (I just want to make sure... I don't have a problem with it, just want to be sure I understand)-- I'll paraphrase ... As long as "the box(es) output computations" appear as "discrete symbols on tape(s)" spit out by the box(es), the computations remain in the realm/domain of "computability theory". But as soon as the discrete-symbol computations are D-to-A-converted by a DAC they move out of that realm/domain into the realm/domain of electrical engineering. Correct?


 * I'm still worried about the "analog-derived sine-generator" boxes that spit out discrete symbols {e.g. 0.011100011...} that perfectly imitate the symbols created by a man-in-a-box-with-paper-and-pencil. wvbaileyWvbailey 04:56, 21 July 2006 (UTC)


 * Your first paragraph is right; classical computability theory is about functions from the natural numbers to the natural numbers, and similar things like sequences of natural numbers. The idea behind computation is that it can be carried out by a person, given unlimited time.  The fact that a computable function might also be computed by an analog device isn't a big deal.  If you had a supposed counterexample to the Church-Turing thesis,  and this example involved an analog device, you would need to show that the analog device could be simulated by a person with pencil and paper in order to convince me that you actually have a counterexample to the Church-Turing thesis (instead of a counterexample to some conjecture from physics). [CMummert]


 * I just want to add this as a reference for future readers (or myself). CMummert's point is supported by the following quotation to be found in Boolos and Jeffrey (1974, reprinted 1980, 1989, 1999):
 * Although this thesis ('Church's thesis') is unprovable, it is refutable, if false. For if it is false, there will be some function which is computable in the intuitive sense, but not in our sense [of 'a computing machine, or by a human who is capable of carrying out only very elementary operations on symbols']. To show that such a function is computable in the intuitive sense, it would be sufficient to give instructions for computing its values for all (arbitrary) arguments, and see that these instructions are indeed effective...To show that such a function is not computable in our sense, one would have to survey all possible Turing machines and verify (by giving a suitable proof) that none of them compute that function. [The authors promise us some exampls in CH 4 and 5 that are not computable by either Turing machines or in any intuitive sense.] Then if Church's thesis is false, it is refutable by finding a counterexample; and the more experience of computation we have without finding a counterexample, the better confirmed the thesis becomes." (Boolos and Jeffrey (1974 etc), page 20).
 * Thus the thesis: "On Earth the sun rises in the east" is not provable but accepted as probably true by enumeration (probability); if only once it rises in the west then the thesis is proven false. wvbaileyWvbailey 17:43, 21 August 2006 (UTC)


 * For example, there is a well known procedure with which the Halting problem can be solved.  It requires a person on Earth to use an orbiting satellite under relativistic time distortion to actually test every possible case; if the satellite is constantly accellerating this might be done in what the person on Earth perceives to be finite time.  Even if it is physically possible, this is not a counterexample to the Church Turing thesis, because it is not an algorithm: it cannot be simulated using pencil and paper alone. CMummert 13:34, 21 July 2006 (UTC)

"cleanup" suggestion
Very interesting. Thank you for the good info and references. I added the links immediately above; it looks like you might have the opportunity to create a new page multi-tape asynchronous machine. I couldn't find a wiki article with that or similar title [?]. I did a Google search and found ~500 hits but none with the phrase in quotation marks. wvbaileyWvbailey 14:10, 1 July 2006 (UTC)

What you're discussing above is very interesting, but confusing because the thoughts are broken. One wiki writer I've run into refers humorously to this process as creating a 'fractal'. Maybe if each writer were to sign or initial each paragraph as they write it so we can figure out who is saying what? Or perhaps lump your rebuttals into groups of paragraphs, with subheadings as I've done here... just a thought. Thanks. wvbaileyWvbailey 03:14, 9 July 2006 (UTC)


 * Lets try to sum up the discussion and all arguments into a list of individual top-level "issues", and provide some explorations on those individual issues there, in more structured way (and with more precise vocabulary - e.g. the use of "meter" was indeed quite unfortunate - "an analog input device" would have been probably better).--Marni 05:40, 10 July 2006 (UTC)

Lets keep "cleaning up"-related comments here, in this section (to keep it separate from the main discussion). I have removed some bits and pieces that are not relevant anymore from the above. Feel free to re-phrase further different bits and pieces from the above discussion, so it is made easier for people to follow. --Marni 12:44, 15 July 2006 (UTC)

Response to Marni
Marni says “It can be shown, that, if only, the heads operate in continuous time intervals asynchronously...”. But this has nothing to do with Turing machines, algorithms, or computability. Turing machines are intended to simulate a clerk at a desk who proceeds in discrete steps. The characterizations of algorithms by Knuth and others always include the fact that algorithms must proceed in discrete steps because they must, in theory, be capable of being carried out by a determined immortal person using only pencil and paper. Proceeding in continuous steps, or carrying out scientific experiments, is not in line with the general meaning of the word algorithm and is not in the scope of Turing computation. Whether it is of interest to physicists is a separate issue; it has not drawn much interest in computability theory. It might be worth including in the pages on hypercomputation. CMummert 17:38, 17 July 2006 (UTC)


 * I think it all IS very relevant to computability theory. What Turing machine model captures, is exactly what algorithms can express. There ARE other models of computation, that are mathematically sound. Models that cannot be expressed by algorithms, and such that cannot be simulated on Turing machines. One of such models is a model of an analog computer, that is capable of storing and manipulating real values. Such a machine could do computation that goes beyond that of Turing machines. Same with multi-tape asynchronous machines (with continuous time). If we assume discrete time steps and finite state space, and infinite tape, we end up with algorithms and Turing machines. If we make other assumptions we end up with different models. Whether those different models are physically realisable is another story, and, it may not even be relevant to mathematicians, and computer scientists as such, but more of interests to physicists. As far as theoretical computer science goes however, Turing machines  re not the only models of computation.  Turing machines are generalisation of algorithmic computation. From a theoretical  standpoint, claiming that ALL computation is Turing computation, is incorrect. Turing himself proposed other models of computation that go beyond his original a-machines (known now as Turing machines).  In his original 1936 paper he introduced Choice machines (c-machines), that model axiomatic system with a human being, presumably a mathematician, capable of providing true/false statements without a formal proof, and in his 1938 paper he proposed Oracle machines (o-machines), where he assumed existance of non-computable sets. --Marni 11:31, 19 July 2006 (UTC)


 * Right. But in classical recursion theory, we are only interested in algorithmic computation.  There is no reason for the Turing machine article to mention things such as continuous time or analog computation; a link can be provided to an article on hypercomputation, but there is no reason to give it airtime in this article. CMummert 13:56, 19 July 2006 (UTC)


 * Fully agree. Turing-machine article however should not make (incorrect [S1] or false [S2]) claims that go beyond classical recusion theory. Thus my original objection to the claim [S1] and [S2] above, to be corrected. It should be clear to the reader that all these (and possible other) claims refer exclusively to certain model of thought, and certain assumed properties of what intuitive notion of computability is within the scope of algorithmic computation (and classical recursion theory). In general, for a whole picture, reader should be referred to "other models of computation", including o-machines, c-machines, analog computing, hypercomputation, etc. After reading statements like [S1] the reader may (and uninformed one will for sure) be left with a false belief that there is nothing else to be learned or understood as general notion of computability goes, which would be misleading.--Marni 21:44, 19 July 2006 (UTC)


 * Response to Marni. The statement you call [S2], namely,
 * any multi-tape machine, no matter how large the k, can be simulated by a single-tape machine using only quadratically more computation time (Papadimitriou 1994, Thrm 2.1).
 * is a correct statement and a well known theorem of classical recursion theory. The fact that someone somewhere might consider a multitape nonTuring machine that moves in continuous time does not make the theorem incorrect.  I would say that the study of continuous time machines is not of sufficiently general interest to require even a disclaimer on the theorem.  This is not misleading; it is an accurate assessment of the relative interest in different areas.  CMummert 22:03, 19 July 2006 (UTC)


 * I disagree. A reader reading the original book in the original context KNOWS under what assumption the theorem is true. The reader of the Wikipedia article, who can be anyone, with the statement suggesting the theorem to be ALWAYS true, which is false, will be mislead. The wording of S2 is misleading, and does require, at least, a footnote, clarifying under what assumptions the theorem is true, on the Wikipedia page. I agree, that in the context of the original book, such details would not be necessary, because the reader would know the context.


 * The theorem is always true; that's what makes it a theorem. CMummert 12:43, 20 July 2006 (UTC)


 * This is not correct. The theorem is not always true. The theorem is always true under certain initial assumptions. Given different set of initial assumption the theorem is not applicable anymore, hence, it is not valid, hence, it is not true. --Marni 23:15, 20 July 2006 (UTC)


 * There is no reason to be pedantic in the statement of it here.


 * Yes, there is plenty of reasons to be precise and pedantic. This is what science is all about. --Marni 23:15, 20 July 2006 (UTC)


 * Someone reading this article who is otherwise unfamiliar with computability theory will understand the statement correctly, because that person will not think about machines that run in continuous time, or machines that use analog inputs, etc.


 * This is plainly wrong. Non-CS readers have no idea what is the difference between machines that run in continuous time, and machines that run in discrete time. Ask anyone, who is not in the CS field, what the computer will measure when one clicks the mouse twice - a) a real number being exactly the time between the clicks, or b) an integer. being a computer discrete representation of the time that elapsed between the clicks. You may be surprised what most people actually THINK.--Marni 23:15, 20 July 2006 (UTC)


 * These things are so far removed from the subject of the article that it is not worth mentioning them. A link at the end of the article to hypercomputation would allow a reader to explore farther if she wants to.  A footnote disclaiming anlog machines only serves to overemphassize their importance, which is miniscule.  CMummert 12:43, 20 July 2006 (UTC)


 * I do not see any value of concepts such as "importance" and "miniscule" between different models in the context of this discussion. Something is either a fact, or is not. And the assumptions under which the theorem in question is true, are simply a fact, and should be clearly stated, because the implied context is not properly communicated to the non-informed reader. Without this, the theorem is presented in a misleading way, as if it is ALWAYS true, no matter what model of computing machine is taken into account--Marni 23:15, 20 July 2006 (UTC)

I do not understand this article
Can this article be written so that nonexperts can understand it? Thanks. (Bjorn Tipling 20:03, 4 July 2006 (UTC))

Yes. But this will require some time and some work. wvbaileyWvbailey 04:47, 12 July 2006 (UTC)

Models equivalent to the Turing machine model
G'day, I'm pretty good with maths and chemistry (and a bit of computing) but bits of this are way over my head. Models equivalent to the Turing machine model sub-chapter on Minsky's programs equivalent to Turing machines needs some kind of explanation; interesting but I don't know what you're talking about! ben 17:42, 11 July 2006 (UTC)

Your point is a good one and one that wikipedia fails at -- giving background info. Mathematicians have shown that numerous models similar to "computers" are "equivalent to Turing Machines" -- meaning that they can compute any "number" that a Turing Machine can compute. Marvin Minsky is a rather celebrated mathematician very busy in the 1960's and '70's. What is a Minsky machine? ... I believe it is a computer-like machine with about 2 or 3 instructions working on one "register" or two "registers" [memories] -- the instructions are extremely simple, such as "Decrement register and jump if zero to instruction xxx else go to instruction yyy", "set register = N". But to get what's going on here without a lot of background info you would need to know what assembly language is and know what a Gödel number is. Follow the blue links to learn more. wvbaileyWvbailey 04:43, 12 July 2006 (UTC)

Converting DTM to NDTM
Just a nitpick:
 * The two are computationally equivalent, that is, it is possible to turn any NDTM into a DTM (and vice versa).

This is perhaps misleading with respect to the idea of converting a DTM into a NDTM. A DTM is a trivial case of a NDTM.

Merge Post-Turing machine here
It is confusing and makes no sense for Turing machine and Post-Turing machine to be different articles. I propose to merge Post-Turing machine here, and wikify it in the process. That page discusses several concrete models of Turing machine that have been proposed by Post, Davis, and Wang. The material would fit into a secton of the Turing machine article. I would then redirect Post-Turing machine here.

An alternate suggestion is to make a new page on Specific models of Turing like machines and move content from Post-Turing machine and this article to that page.

CMummert 20:32, 15 July 2006 (UTC)


 * I recommend that you leave the P-T page alone. To create this page was a very intentional event. I did some research re the name -- Post-Turing Machine -- because oDavis (from Post's treatment) created a model which is more primitive than a "Turing Machine"; it is the one that I built (see my User page) and is much easier to understand than a "Turing" machine with its difficult-to-program state table. The P-T model is very much like a "computer" because the instructions are sequential unless a "test" directs the program elsewhere. And because the P-T's "alphabet" is much smaller i.e. just { blank, mark} = { { }, | } and because it follows Post's model better than Turing's (with his virtually unlimited alphabet and difficult state table), a reader can create a model on an Excel spreadsheet in a matter of minutes. I and other sophisticated readers know that they are "equivalent", but we are having problems with readers unable to understand a Turing machine (see the discussions above) -- the P-T machine is the place to start because the model is so easy. I have directed readers to the P-T page when they've failed to grasp the "Turing" machine. wvbaileyWvbailey 01:53, 16 July 2006 (UTC)


 * Response to Wvbailey: I appreciate the work you are doing on Halting problem, Turing's proof and the Turing machine pages.  These are two areas that include basic foundational ideas, technical content, and broad interest, and I don't envy the task of making the pages satisfy all these needs.


 * Nevertheless, I don't see how to have both Turing machine and Post-Turing machine as different pages;  these titles are just too similar, and so they confuse the issue.  Maybe there is some other way of dividing the material that is more transparent to casual readers (such as Turing machine and Models of Turing Machines and Early history of computability theory).  You have been working in this area, and you have the material at your fingertips -- can you suggest a better division?  Look at the Mathematics page for an example of how to split a general page into more technical subpages.   Something like that might work well here. I would be glad to contribute some, once a general outline is established.  This should include lambda calculus and the hopefully soon-to-be page on mu recursive functions.


 * CMummert 02:53, 16 July 2006 (UTC)


 * Right now I'm on vacation & away from home; I keep loosing my crummy Best Western wireless connection....


 * Maybe a "Models of Turing machines" page is okay. So then the entire "models equivalent" section on the "Turing machine" article page could be moved to this new page and simplify the "Turing machine" page. (I agree a "history" page would be good). Then we could direct readers from the new page(s) to individual detapages that already exist e.g. "Kolmogorov machine", "Post-Turing machine", "Minsky machine", "deterministic Turing machine", "non-deterministic Turing machine" etc. for more details. Just to see what would happen I linked a few of these on the "Turing machine" article page. The problem is: there are so many models now -- and so many articles-- that one page cannot contain even a portion of them with any useful detail.


 * Will be back in a week and then will be able to work on this more effectively. My wireless link is awful. Do what you think is best. I myself would like to work on a very basic explanation of a Turing machine for the beginning reader, including a good drawing etc. wvbaileyWvbailey 04:42, 16 July 2006 (UTC)

I've added a footnote derived from and closely quoting Kleene's discussion of why he adopted a Post-like model in his description of a Turing-machine (1952). He discusses why a "Turing machine" and his model derived from Post are not quite the same -- they are clearly equivalent, but the Post model further "atomizes" the state-table instructions.

By the way, Kleene's treatment of Turing machines is the best I've read. Too bad Wikipedia cannot copy it word for word. wvbaileyWvbailey 01:59, 25 July 2006 (UTC)

I disagree with the merger. It would make Turing machine harder to read, and perhaps less acessible. If you wish, you could add a section on post-Turing machines to Turing machine, while leaving Post-Turing machine a bigger article where the reader could look for details. Oleg Alexandrov (talk) 02:36, 25 July 2006 (UTC)

Merging the pages would be complete confusion, because then one would have to search for the Post machine into the Turing machine page. That would be a lot more confusing. And if you take a look at the books of computer theory you will see that the machines have always their own chapters, because they are just not the same. My question here is: why is the article entitled "Post-Turing Machine" instead of "Post Machine" since Turing and Post machine were developed independently?


 * Martin Davis coined the name "Post-Turing machine" in a series of lectures at the Courant Institute in the 1973-1974. His student Barry Jacobs transcribed them -- cf page 69 of the lecture where he uses the words "Post-Turing machine" and "Post-Turing program". Post's (1936) treatment was a model of computation that involved a "computer" aka person moving from box to box making marks and erasing them, etc. per a sheet of instructions. Unlike Turing's much more thorough treatment, Post never mentioned "a machine" in his paper. But the Post and Turing models were taken up by Kleene (1943) when he proposed "Church's Thesis". Martin Davis was one of Kleene's students; both knew Emil Post, etc etc. There is also a "Post system" (1943) and "Post's correspondence problem" (1946) and Post tag system", (cf Hopcroft and Ullman), "Post word" (cf Kleene (1952) from the Thue problem) etc. -- these are entirely different concepts having to do with undecidable problems.wvbaileyWvbailey 17:15, 14 August 2006 (UTC)

Bad metaphor? (about Operating System and UTM relationships)
'''This was, perhaps, the seminal theoretical idea for operating system, a program to run (controlledly) other programs... showing that its existence was possible and encouraging the plausiblity of investing in practical applications.'''

This seems like a red herring, and confuses the reader. An operating system is an interface between a program and the hardware -- something to abstract away the hardware. A turing machine is analagous to the computer itself, not an OS. Also, I'm skeptical that the existence of the Turing model of computation "encouraged the plausibility of investing in practical applications"

Actually in reading that sentence a few times through, it's poor in many respects. I'm going to delete it.

-- 21:38, 20 July 2006 65.113.40.130 (Anonymous)

Yes, it have "...", "perhaps", etc. vague/imprecise, not good for wikipedia... You not wrong, but here is wiki... It was a 10/April/2006 Krauss contribution, more than 3 months and 50 contributions later, you was the first to talk about. I prefer "correct" it (see 07:38, 29/Jul/2006 new text on UTM).

My arguments (to preserve the link to OS)... it is a not-mathematical conclusion. We need remember History and Economy:
 * the Babbage's Analytical Engine was the first computer in 1830s, but only with a solid theory others than Babbage invested (in 1930s)!
 * ask to investors and engineers if they put a lot of money, time and people to develop a very very complex thing, if they not have a very solid guarantee.

This link (with a exposed context), from Turing Machine to OS, is important for the wikipedia objectives, and to integrate (not isolate) knowledges.

Responding about "(...) operating system is an interface between a program and the hardware (...)", it is not complete, OS also "(...) performs basic tasks, such as controlling and allocating memory, prioritizing the processing of instructions (...)" (see Operating system and scheduling tasks), or, in other words, OS is also "a program to run (controlledly) other programs".

Krauss 29/jul/2006.

URGENT SUGESTION
1 to revert all the augost/2006 Wvbailey's modifications 2 put back modifications, step by step, in a "discussed consensus base"


 * I changed very little of the old text. I just moved it here and there. (There's still a lot of unverifiable stuff by the way). What I did change had no source. Or I worked it over with a source attached. The sources must be within the text -- e.g. the 6-tuple versus 7-tuple. For example, 6-tuple is bullshit until we can find a source (I looked, couldn't find a source) and then we can say that some writers use the 6-tuple, and give the source. What has changed is the new content, and as you can see, it is verifiable as to source.wvbaileyWvbailey 15:33, 13 August 2006 (UTC)


 * If we read the Featured articles, they are not "academic" (pollutedly stuffed of citations), they use citation recurse with relevance criteria and parcimonie. (ciations can be mere text pollution and references autors "spans")... The references are the surces, do not need a lot of citations... I think the "a lot of citation" pratique is style question, not a verifiability guarantee.
 * Not where I went to college. You don't cite, you find your way to the Dean's office to answer questions of academic fraud, and then you leave forever in disgrace.wvbaileyWvbailey 20:23, 15 August 2006 (UTC)
 * Sorry (my english also)... perhaps I have exaggerated (and deviated me from) my point, seeming half coarse... the point is only "Hey, let's relax the citations (a question of style) and concentrate on consensus of good references (the need of verifiability)" or "let's vote/talk the style of the article" (if we want style uniformity here). -- Krauss 16 August 2006


 * The complete "guarantee of verifiability" on wikipedia is the public confirmation/consensus (about the references and mainly aboute the text!). -- Krauss 15 August 2006


 * Wiki makes it very clear that they are not after truth, but rather verifiability. Consensus isn't truth. I won't be persuaded on this issue. It will be a waste of my time to debate it further. wvbaileyWvbailey 20:23, 15 August 2006 (UTC)


 * Sorry started a Verifiability discussion, perhaps here not the place. We can clean it. The point, was other, may I expose with more detail... I think we need a little of consensus here (on Talk) about:  --Krauss 16 August 2006
 * what sources (references) are reliable sources here on this article... I can waste of my time selecting, fiding, and citing, if we have consensus.
 * what is "relevant and needed citations", and what is not (need only a "Talk defense").


 * Your contention about OS (in the little dialog in the section above) cannot be verified, and the evidence from Davis (2000) works against your contention. What little I found in Davis (2000) I put into the article. What you write must be verifiable as to your source. I do not want to see your opinions in the article. If you don't give a source -- and I expect you to give the source within the text e.g. "Davis (2000) p. 200"-- I will remove your opinion. And this goes for every other contributor.wvbaileyWvbailey 15:33, 13 August 2006 (UTC)


 * It was explained and accepted on Turing_completeness, "The gap from the 1830s to the 1940s was (...)". We need better than Pierce fonts, I agree, but we need "wiki time" to people see and contrinbute with more fonts and/or talk... If we here (on Talk) undertand that it is "not very verificable" but it is truth (here on wikipedia the convergence of consensus is also "the truth"), it is ok. -- Krauss 15 August 2006


 * At this time I don't care about the supposed quality of other articles, just this one. The trick is to do something right -- this article. By "right" I mean provide sources with verifiable information. The 6-tuple thing is the best example of a failure. Find me a source, we'll include it as an alternate. Wikipedia is known for its bad sourcing/attribution and false information. Both of my kids -- one a postdoc and the other a senior-in-college student -- refuse to use Wikipedia. Look on google for "problems with wikipedia" for example. Your "truth" and my "truth" are clearly not the same thing -- otherwise we wouldn't be discussing this. Eventually we might hide the in-text citations, but until the article is first-rate.

wvbaileyWvbailey 20:23, 15 August 2006 (UTC)
 * This is not a email reply (like in a email forum) -- I can only comment that if you have now peace with your kids, you have more time for wikipedia than me and many others (that have kids!). I think I need more time to study OS question (may be my misinterpretation of the UTM and "meta-programs")... your new section "Universal Turing Machine as a model of the 'stored program computer'" was a very good iniciative for explain it (!). -- Krauss 16 August 2006


 * As for sources, I want to see hard copy, not web links. I have an excellent libray -- at Dartmouth College -- close at hand. Journals, magazines, books are all fair game. But not web-links. These are unverifiable, and not per-reviewed and vetted. For a truly excellent example of what professionally-done writing looks like see the various "History and Bibliography" sections in Donald Knuth's (1973) Volume 1: Fundamental Algorithms: The Art of Computer Programming, 2nd edition, Addison-Wesley, Reading, Mass. wvbaileyWvbailey 18:51, 13 August 2006 (UTC)


 * If you have printed sources I can't find you can send it to me via pdf. And vice versa. I have been doing this successfully with another contributor.wvbaileyWvbailey 18:51, 13 August 2006 (UTC)


 * I paid a lot of attention to what other articles are doing. Algorithm and Finite state machine and Busy Beaver. For example, I would have preferred to do the state tables in a different way (with the symbols at the top and new states down the side, as engineers do) but the other articles put the states across the top and the symbols down the left side, and this lends a commonality and uniformity to this series of "foundations" articles. (see July CMummert-wvbailey dialog in sections above). And this works better for the Excel spreadsheet examples, as it turns out. So that's the way I did the tables. And you will see that I mentioned that various writers present the "m-configuration" 5-tuples in a couple different forms. I had to pick a form, and I picked Turing's. wvbaileyWvbailey 15:33, 13 August 2006 (UTC)

-- Krauss 12/8/2006

reverting recent Wvbailey's modifications
A lot of figures, new examples, references, etc. are well come!

We only need "wiki time" to see, merge, adapt, correct, etc. ... or "Wvbailey modifications" will be a tractor and the old versions and consensus will vanish.


 * As I wrote immediately above most of the original text is still there, it may be on new pages Turing machine examples and Turing machine equivalents.wvbaileyWvbailey 15:33, 13 August 2006 (UTC)

put back modifications, step by step
Needs/sugestions: 1 Figures and "text copy/paste" Copyright is OK??? We can check it?
 * Click on each figure to see its source -- These are all my original work -- attributed to source where necessary on the figure-- and I've signed over the copyrights. "Text copy and paste" is okay here in the US because it is attributed and it is "small" -- i.e. within fair use. I've been over this with Europeans before -- our laws allow this. And Turing's work is in the public domain.wvbaileyWvbailey 15:33, 13 August 2006 (UTC)
 * Ok -- krauss

2 Ilustrations need clean and captions (subtitles); they also repeat and not uniform
 * Go ahead and add subtitles. Suggestions as to content are welcome. But ask yourself, who will do the drawings? Little elves didn't cause them to appear magically. wvbaileyWvbailey 15:33, 13 August 2006 (UTC)
 * Ok, see "SandBox for figures review".

3 the examples and tables need some wiki talk

4 etc.

We can fix a date to finish steps, accepting integrally Wvbailey's "step contributions" if at the date we do nothing.

= SandBox for figures review =

Review of Wvbailey's figures.

Turing_machine_1.JPG
I think we have not space to "complex pictorical models"... sugest remove. -- krauss


 * We are writing this article for people who don't know what a Turing machine is. Ask yourself, why would anyone who knows what a Turing machine is come to Wikipedia to learn about Turing machines? Read some of the criticism -- people don't get what the article is saying. It does no harm to have some "fanciful drawings" -- maybe eventually an entire gallery of drawings! See the fractal page for examples and their talk page (actually a gallery page would be good for them too!). Many people learn better if they have visualizations as well as text. That is why if it were left to me I'd put the whole business of "7-tuples" on a separate page. It intimidates the reader and adds very little ... Again, why would an expert -- the only folks who care about "7-tuples" -- come to Wikipedia for information about Turing machine "7-tuples"? They'd have their own texts and don't need Wikipedia.wvbaileyWvbailey 14:03, 15 August 2006 (UTC)
 * my agreement/understanding is of that "complex pictorical representations" is didatic only if we have space to explain the details (complexity)... here it will need a second article to explain. "(...) learn better if they have visualizations (...)" is very good, but not always "conext visualizations", with the richness of a specific context. -- Krauss 15 August 2006 (UTC)

I put the "fanciful drawing" on a new Turing machine gallery page. If a reader is curious they can go there, and thus the article is not obstructed. Maybe other folks will add to "the gallery". Claude Shannon's work of 1936 had pointed the way to the use of relays in "logic", and George Stibitz had actually built a binary adder (1936-1937), and eventually Turing built a multiplier (see gallery page for source of this info). A "fanciful drawing" of a Turing machine made from relays might be in order. Certainly stuff re his work on "the Colossus" computer is in order, and the ACE.wvbaileyWvbailey 14:52, 15 August 2006 (UTC)
 * good idea the gallery; I think there are other good/didatic representations, and also animations! -- Krauss 15 August 2006 (UTC)

Turing machine 2




These look better to me; just add the references. (What is it with wiki peoples' reluctance to add references?) and I say these are improvements.wvbaileyWvbailey 13:43, 15 August 2006 (UTC)

Its interesting how much poorer .JPG and .gif drawings look with the Microsoft Intenet Explorer than with the AOL-Netscape browser. I don't know how they look with Foxfire (or whatever it's called).wvbaileyWvbailey 13:52, 15 August 2006 (UTC)

I've placed them in the article.wvbaileyWvbailey 14:04, 15 August 2006 (UTC)

"stationary tape" vs "stationary head" representations:   -- Krauss 17 August 2006
 * 1. What Turing and "the beginners" used?
 * 2. Which the more didactic (!) and/or most used form?
 * I think it is more didactic and traditional the "stationary tape" (and we can read at the old version "A head that can (...) and move left and right one (...)"). -- Krauss

State_diagram_3_state_busy_beaver_2_


Needs cut... but also review for other places/articles where StateChart representation are also doing...


 * The image at left is bizarre. See more about this in new section below. wvbaileyWvbailey 14:29, 17 August 2006 (UTC)


 * Google Turing machine and look at the Stanford article on Turing machines. There the author uses state drawings; however, the drawings are not very good, and certainly not complete, and don't follow engineering practice (or any other practice that I can see). No drawings appear on Busy beaver, but drawings are used extensively in the literature. The article finite state machine drawings are not very good (this page needs some work)-- nor do they follow engineering practice/convention (e.g. Hill and Peterson (1968, 1974), Booth (1967), McClusky (1965)) and which is what I've used here. The conventions of the science/art of Finite state machines have been defined since the 1950's, and why authors persist in inventing their own "schemes" just goes to show they don't know the literature --for example, Minksy's drawings are not good, and if you try to use them they refuse to "run" on simulations. wvbaileyWvbailey 13:36, 15 August 2006 (UTC)
 * Diagrams (as Harel/UML statecharts or finite state machine diagrams) are very good/didatic alternative to tables and "literal" representation. There are good animations also... Here (TM article) I sugest to use Finite state machine as "referential representation standards" for the pictures (will be easy to adapt your imgs).

Sugestion:



finite state machines, what are they?
Minsky (1967) spends about 20 pages giving us a definition of a "finite-state machine". It includes the following (italics in original):
 * "...a class of machines known as finite-state machines or finite automata. These are the machines which proceed in clearly separate 'discrete' steps from one to another of a finite number of configurations or states." (p. 11)


 * "2.0.1 Moments of Time. The theory of finite-state machines deal with time in a rather peculiar way. The behavior of a machine is described as a simple, linear sequence of events in time. These events occur only at discrete "moments" -- between which nothing happens. One may imagine these moments as occuring regularly like the ticking of a clock, and we identify the moments with integers -- the variable for time, t, takes on only the values 0, 1, 2, ...


 * "the system [must meet] the conditions we will impose -- that by the end of each interval the machine does, in effect, "settle down" into one of a finite number of describable states" (p. 12)"

In this context the word "state" is derived as follows:
 * state n. from Latin status, pp. of stare to stand. more at STAND. a condition or stage in the physical being of something.


 * stand from Latin stare from Greek histanai to cause to stand. usage #1: to maintain one's position (~ firm). usage #2: (1592) an act of stopping or staying in one place.

There is another usage of "state" -- in mechanical dynamics theory. "State" here is the instantaneous snap-shot of an object relative to a frame of reference, but giving both its position (x, y, z) and velocity (dx/dt, dy/dt, dz/dt). The following is from pages 39-40 of Robert H. Cannon Jr, Dynamics of Physical Systems, McGraw-Hill Book Company, 1967.


 * 'The state of a system. What we mean by the state of a mechanical system may be introduced by analogy with configuration: The state of a system is often defined by an independent set of position coordinates, plus their derivatives. Thus, state implies configuration plus velocity. Configuration tells only where the system is, but state tells both where it is and how fast (and in what direction) it is going; and as expressed by professor L. Zadeh, 'the state of a system at a given time, plus its differential equations of motion and inputs, will detrmine its configuration for all future time....
 * Although state comes from the Latin status, a standing or position, a more helpful image for our purposes is that of a stopping or freezing of action, as when a moving-picture film is stopped on one frame, but the instantaneous speed and direction of motion are revealed by blurring of the picture."

Thus conventional, canonical state-machine analysis doesn't allow for "incoming" actions produced by a state. Input causes a change to a new state. "Outgoing" action, maybe -- at least in terms of "direction of change" shown by the arrow. Mealy machines represent a problem because:
 * "One restriction we will introduce here is this -- the output state at the moment t does not depend on the input state at that same instant. This is to say that we won't admit the possibility of signals traversing a unit instantly" (Minsky (1967) p. 14).

And there really is no need for 'Mealy machines' anyway, because any 'Mealy' can be converted into a 'Moore' (cf Booth (1967), p. 960. Here he discusses this problem, that a 'Mealy' produces no output unless there's an input. He also notes that "a short time is allowed after the input symbol is applied before the output is observed", etc.

This is bizarre. No input e.g. (0,0,0,0) produces no output (0,0,0,0) but the machine is in a particular state, call it "B". As soon as an input is applied i.e. (0,1,0,0) the machine goes to a new state, call it "D". During its brief time going from B to D it produces an output (0,0,1,1). This appears as a pulse during the transition. If D is to sustain this pulse it must have a recirculating path back to itself i.e. (0,1,0,0) produces a recirculation back to D and maintains (0,0,1,1). Clearly, this is not trival stuff.

There appears to be a kind of pseudo-state used by software folks -- but you can always atomize this so-called "state of many colors" into true states each of one color. I've questioned this on a talk page. Over the years I've both written and debugged thousands of lines of pseudo-state-machine software -- thousands of pieces of equipment use the code-- and I have no idea what the fuck the article is talking about. wvbaileyWvbailey 14:29, 17 August 2006 (UTC)

= Split proposal =

Reading with more attention, and reading other fonts... we can see "Turing Machice" as two (not very distinct but) separable things:
 * 1) The Alan Turing invention/concept... as (or near) he described in 1936 (without variants).
 * 2) A very simple, basic (the theoretical basis) and power concept to understand algorithm, computer, computability, etc. "Turing Machine" is only a label for a lot of "model and representation variants" (Turing-equivalent and/or UTM-equivalence)... and a lot of (historically) simultaneous seminal ideas. It was the label, grouping then, is only a homage to the first and/or main autor of this conceptualizations.

Proposal: re-structure the article, breaking or evidencing, as a possible, the 2 separable themes.

-- Krauss 15/8/2006.

I was working on a "history" but didn't finish it. Am unsure how to proceed -- there are too many variants. From my sources, what exists as a "modern" single-tape "off-line" Turing machine are all of the following. See the next sections for a survey of various text-book authors' interpretations:

A nutshell description of a "Turing machine":
 * "A Turing machine is a finite-state machine associated with an external storage or memory medium." (Minsky (1967) p. 117)


 * "A Turing machine is essentially a finite-state sequential machine that has the ability to communicate with an external store of information"(Booth (1967), p. 354)

This storage medium or "scrach-paper" (Stone 1972 p. 8) is called the TAPE:
 * 1) The TAPE either (i) effectively-infinitely long in both directions, or (ii) left ended and infinitely long to the right. OR the tape is of finite length but either one or both ends can have more tape added onto it whenever the machine needs more tape.
 * 2) TAPE is divided into discrete SQUARES.
 * 3) The Turing machine passes the tape through/over a read/write HEAD. When the HEAD is on the SCANNED SQUARE the machine "reads the scanned symbol" then "writes/prints a symbol", overprinting and erasure allowed.
 * 4) ERASURE to BLANK is a special kind of "print/write" operation. "blank" means either truly blank { } or some symbol usually "b", "B", "0", "U" (empty cup)
 * 5) Either the HEAD or the TAPE moves one discrete square at a time: a motion is a single Left or Right or None
 * 6) when writing/printing, only one of any number of specific set/collection Σ of symbols may be printed or overprinted -- this collection must be specified at the outset
 * 7) The TABLE is the finite-state machine. A completely-defined TABLE T is specified by the cross-product T = Q x Σ of its (discrete, finite) collection Q of states and the collection Σ of (discrete, finite number of) symbols that can appear on the tape, including the blank. Each entry in the table specifies (i) two discrete, sequential output events (tape-events) chosen from 9 possibilites { (Ps,L), (Ps,N), (Ps, R), (N,L), (N, N), (N, R), (E,L), (E,N), (E,R) } = (Print/overprint symbol, do Nothing, Erase symbol) x (move Left, No move, move Right); and (ii) the next state qn from the collection of states Q. Alternately, the TABLE can be specified as a list of 5-tuples of "m-configurations/states/instructions".
 * 8) A "state register/memory" -- a temporary scratch-pad -- stores the current instruction's identification "tag/name/identifier" i.e. q4.
 * 9) The machine specification identifies the initial state q0, and the scratch-pad is set to that identifier (e.g. 0 or 1)
 * 10) A description of how and where the data/parameters is to appear on the tape, and how and where the data/(parameters will appear as output. This is especially important with regards to the universal machine (UTM).

No mention is ever made of:
 * 1) timing/clock(s) -- "ticks" of successive motions of the machine (from timing/clocks) can be "desultory" (Turing's choice of words)
 * 2) how the input gets on the TAPE
 * 3) how the finite-state machine is set/reset to the initial state
 * 4) any particulars of the mechanism except that its motions are discrete (as they must be if the TABLE is truly a finite state machine )

Emil Post (1947) provides some of the few comments re "Turing convention machines" versus "Turing machines". I asked Martin Davis about a similar issue, and Post's work is all he had to cite in response.

Anyone who has read Turing's 1936-7 paper realizes that an in-depth study of the particularities of his "convention" and in particular his universal machine TABLE is not particularly rewarding (i.e. worth the large amount of time necessary).

The "Turing-convention machine" seems to be the following:

(1) Tape has a left end, and is infinite to the right (Post observes this p. 300 Undecidable, copied below)

(2) Turing's encoding scheme uses alternating E-squares and F-squares. The E-squares will hold "markers" to keep track of computations.
 * (2.1) E-squares are "liable to erasure"


 * (2.2) F-squares are never erased.

(3) He reduces long strings of instructions within a "state"/aka m-configuration to his quantity 3 of the 5-tuples (N1, N2, N3).


 * (3.1) for any instruction/state/m-configuration printing or erasing always occurs

Post wrote the following:
 * "Primarily as a matter of practice, Turng makes his machines satisfy the following convention. Starting with the first square [placed on the left, where the calculation always begins], alternate squares are called F-squares, the rest, E-squares. In its action the machine then never directs motion left when it is scanning the initial sqaure, never orders the erasure, or change, of a symbol on an F-square, never orders the printing of a symbol on a blank F-square if the previous F-square is blank and, in the case of a computing machine, never orders the printing of 0 or 1 on an E-square....


 * "By a uniform method of representation [i.e. Turing's N1, N2, N3 5-tuples], Turing represents the set of instructions, correspoinding to our quadruplets[^12]," etc. etc.


 * "^12 our quadruplets are quintuplets in the Turing development. That is, where our standard instruction orders either a printing (overprinting) or motion, left or right, Turing's standard instruction always orders a printing and a motion, right, left, or none. Turing's method has a certain technical advantages, but complicates theory by introducing an irrelevant "printing" of a symbol each time that symbol is merely passed over." (emphasis added, Emil Post (1947), Recursive Unsolvability of a Problem of Thue, reprinted in The Undecidable pp.293 ff)

Thus here we see Post's origination of the Post-Turing convention aka Post-Turing machine.

As far as I can see, this is about all that needs to be said about Turing-convention machines.

One approach might be in "Turing's first example", where I did mention the E- and F-squares, and we see that the machine skips squares. This could be moved to the last example, or even to another page if it were worth the bother. But we only really see the emergence of the "Turing-convention" in the UTM. And the UTM (anybody's UTM) is an ugly thing when you try to actually design it. Hennie (1977) (pages 90-103) designs it up to sub-routine-code examples and flow-charts. I did it for the Post-Turing machine and have the code, but this is considered Original Research. wvbaileyWvbailey 21:20, 20 August 2006 (UTC)

=To separate Universal Turing Machine (UTM) in other article =

UTM stay here (Turing machine article) as a introduction, but (a sugestion) details in a new/complete article.

-- krauss 15/8/2006

I think this is a good idea. The question is: what is a good introduction? I've had a thought. To make it interesting and relevant -- to make analogies to von Neumann versus harvard machine architectures:

When a particular set of instructions for a certain calculation are, on the TAPE rather than the TABLE and next to them are the input and output data, and "interpreted" by a "universal TABLE", then this is a UTM and is analogous to a von Neumann architecture (Davis 2000 supports this interpretation). When a specific set of instructions are in the "read-only" TABLE and the input and output data is on the TAPE then this is analogous to a Harvard architecture (I have no good citation-support for this).

I guarantee that the confusion will be around the "universal" TABLE:

(i) The UTM still has a TABLE, but this will be a "universal table" -- the same for all particular instances of machines, e.g. the same TABLE for a machine that multiplies versus a 3-state busy beaver. What will be different will be the "programs" -- a multiply program versus a 3-state busy-beaver program that now are located on the TAPE rather than in the TABLE.

(ii) But there is no universal "universal-TABLE". Hence we have a jillion computer languages.

(iii) Given a specific UTM (with its specific TABLE), we have to be sure that we write the multiply and busy-beaver "programs" in a format specific to that UTM's TABLE. This also goes for the input and output data. So, you can't write "binary machine code" (or assembly language programs) for a Motorola processor using Texas Instruments binary code or assembly mnemonics. For example, on a Post-Turing machine, we might encode our instructions (to appear in a TAPE-program) in one of a couple different ways:

Thus the little string of code J0,4,E,L,J1,1,H erases a string of ones to the left until it hits a zero will have two encodings:
 * (1)...01111110111110111101101111111011011111110....
 * (2)...01000000101000001010000101001010000000101001010000000010.....

And the reader must understand that the UTM requires placing data to the left or right (usually the right) of the program; both the position and the format must be known by the UTM TABLE. For example, the erasing program above needs some data to erase; the UTM TABLE will have to go hunting to the right of the "program-string" to find a string of 1's to erase. The UTM TABLE needs to know that, for example, 00 separates any data (shown in bold, the string of seven 1's to the right are to be erased):
 * (1)..000111111011111011110110111111101101111111001111111000000000.....

(iv) The UTM TABLE needs to use tricks to keep track of where it is in the (1) "fetch-instruction phase" and (2) "execute" phase. In the first little program above it would use erasures (the single bold 0) to mark its position in the "fetch":
 * (1)..000101111011111011110110111111101101111111001111111000000000.....

In the second it would use 1's:
 * (2)...011000001010000010100001010010100000001010010100000000101101111111.....

Clearly, contemplating this is enough to make you go insane. But examples are the only way I know of to make the points clear. wvbaileyWvbailey 15:27, 17 August 2006 (UTC)

= No agreed-upon conventions in the literature! =

The following table is a survey of the "conventions" of the various authors (text-book authors).
 * u = unknown
 * qa = present state qa
 * S = Scanned Symbol (i.e. beneath the head)
 * Ps = Print symbol
 * all symbols for "blank": b, B, 0, { }, square, U-as-empty-cup
 * -- means "no-print"
 * LNR, (left, no-motion, right), LCR (left, center, right), LBR (left, no motion, right),
 * -1 0 +1 (left, no-motion right), L -- R (Left, no-motion, right), LR (always move left, right),
 * <-- --> (always move left, right), <-- * --> (left, no-motion, right)
 * qb = transition-to state qb

Some symbols cannot be reproduced here exactly --
 * U -- blank,
 * upside-down e of Turing
 * left-end markers | and >

Tentative conclusions:
 * 1) recent trend acknowledges a left end, with a marker, similar to Turing's convention
 * 2) Formal Turing machine "descriptions" as 4-, 5-, 6-, 7-, 9-tuples? The 9-tuples reflect the end-marker and blank symbols as "line items"; but also silly convention of terminal states "accept" and "reject"
 * 3) m-configuration 5-tuple: has state qb appearing about anywhere the author wants to put it, although two trends predominate e.g. (qa,S,Psb,LNR,qb), (qa,S,,qbPsb,LNR)
 * 4) state diagrams: older state tables use Minsky convention, modern convention closely resembles "engineering" convention of the article
 * 5) state transition tables: most reflect engineering practice with symbols along top and states down the left side. however, Turing's convention occassionally, and Minsky uses an odd one all his own (a mixture of the two).

wvbaileyWvbailey 20:34, 18 August 2006 (UTC)

Conclusions: all specifications include (one way or another) the following 5 elements:
 * 1) a set of states e.g. Q
 * 2) tape symbols e.g. Σ
 * 3) blank-tape symbol e.g. b, B, { }, U (empty cup)
 * 4) state-transition/state output function of one sort or another e.g. δ = finite-state machine specification-table
 * 5) initial state e.g. q0

A wrinkle in the form of a special symbol appears with the tapes with a left end.

wvbaileyWvbailey 20:11, 20 August 2006 (UTC)

= Removed Busy Beaver Reference = I removed the Busy Beaver reference in the justifications for the Turing machine as a model of real computation. It claimed to exhibit the busy beaver function as an example of a function that requires a lot of time, but not much space, to compute. However, this is incorrect. The busy beaver function starts from a very small number of initial bits, but then builds up an enormous number of intermediate bits (i.e. space) used to complete the computation. In fact, it can easily be proven that it requires an uncomputably large amount of space to compute. Pexatus 02:27, 29 August 2006 (UTC)


 * I accidentally made this a subsection. Sorry for not previewing first. Pexatus 02:46, 29 August 2006 (UTC)

= Artistic representations =

I thought the colorful "rendering" of the machine was kind of cute. I don't have a preference one way or the other. So it doesn't disappear I pasted it into the lead of the Turing machine gallery. wvbaileyWvbailey 14:55, 18 October 2006 (UTC)
 * I find it equally cute, but I think your definition of "artistic" to be a bit... broad... -Tiak 06:06, 20 October 2006 (UTC)

Ah, but considering what passes for art today it does pass the test (the shock- and awe-test). I took studio art from a professor who said art should be "awesome and frightening"). We can probably agree that the rendering is "colorful" (you can read that word a number of ways). wvbaileyWvbailey 15:10, 20 October 2006 (UTC)

Style for Algorithms!
SEE Algorithms on Wikipedia.

Sorry, but the above is bogus. I am sticking with the convention in Boolos-Burgess-Jeffrey (2002) because it is a convention to be found in a published text. wvbaileyWvbailey 20:59, 13 November 2006 (UTC)

= Missing Reference =

Boothe is referenced several times but is not in the references. I suspect that the 1967 reference is the same as found on the Wikipedia State diagram page, but I don't know what the 1965 reference is.


 * Taylor Booth (no "e") should be 1967; this has been added to references, along with Kleene. I dunno about Boothe or "1965"; when I catch it I'll fix it. wvbaileyWvbailey 14:39, 11 December 2006 (UTC)