Posted
by
Soulskill
on Friday March 26, 2010 @01:31PM
from the i'll-order-a-dozen dept.

stronghawk writes "The creator of the Nickel-O-Matic is back at it and has now built a Turing Machine from a Parallax Propeller chip-based controller, motors, a dry-erase marker and a non-infinite supply of shiny 35mm leader film. From his FAQ: 'While thinking about Turing machines I found that no one had ever actually built one, at least not one that looked like Turing's original concept (if someone does know of one, please let me know). There have been a few other physical Turing machines like the Logo of Doom, but none were immediately recognizable as Turing machines. As I am always looking for a new challenge, I set out to build what you see here.'"

I don't think it has been done before though. At least not as a hardware implementation. The reason being that while it's an interesting hypohetical machine, it's extremely inefficient means of computing anything. But it is very nice to actually see a visualisation of such a machine

Well, infinite tape is the optimal design. In practice you only need a tape of adequate length for the calculation you're performing. If you want to print every number then yes, you will need an infinitely long tape. But it will take forever to actually complete that task. And of course, if you had an infinitely long tape the machine would be able to cope with it.

Who modded this 'troll'? Are people not allowed to muse wonderingly anymore? Sheesh, some people need to unclench.

Personally, having been entirely fascinated with Turing and his work during my college years (from a mathematical point of view - the Entscheidungsproblem [wikipedia.org] rather than CS), seeing an actual Turing machine sends shivers up my spine. Kudos!

This is o.t., I guess.
But that amazon link lists a paperback new version of the book for $147.78 !!!. Is this a slashdot price spike of some sort?
I love old and rare books, and I am a great admirer of Turing (he did save the world, after all).
Just wondering when the price for that particular paperback went through the roof..

It's not really the Amazon price - they don't have it in stock. It's a marketplace seller who says the following: "New - Out-of-Print and VERY rare title to find in new condition".

I didn't think it was all that rare but the last time I read it was in 2000 and borrowed from the university library so I might be mistaken. I guess if you really can't find a lower price, I'd just check out the movie with Kate Winslet;-).

Here's the link to the UK version (if you don't mind paying international shipping)

maybe i'm missing something but i'm used to people talking about "turing machines" as a machine that is "turing-complete", not looking like a hypothetical turing machine he described in his paper. Is this aesthetics over the principle he meant it to be taken by? Cool hardhack though btw, love to have one of those on my coffee table.

For the ultimate in coffee table extravagance, you need this turing machine running an implementation of Conway's game of life, ideally using a chessboard as the display device for that: full cells would rise slightly above the board, moving back down when declared empty.

To provide randomized starting positions for your game of life simulations, without sinning against Von Neumann, a vintage mahogany-clad Geiger-Müller counter would of course be included...

We just had a talk about Turing machines at my university, and I just have to say that that looks flippin' awesome, especially considering that it allegedly actually computes something! Unfortunately I have no mod points.

A "Turing machine" is what you see in the video—or at least it would be, if it were an ideal abstraction with an infinite supply of tape and the ability to remember an unlimited number of states (although the number of states would be finite in any given program). A "Turing-complete" machine/language is one that is capable of simulating a Turing machine—again, adjusting for finite memory within the bounds of common sense.

The significance is that Turing proved that a Turing machine can execute an

For social reasons I will refrain from mentioning this to my friends (which I have) later tonight. Baaaah, I want one! This is so pointless but nifty, my inner collector is crying out. Damn fiscal responsibilities in life tell me it's a waste of money, but oh, the geeky child inside cries out!

verb 1 arrange for compensation in the event of damage to or loss of (property, life, or a person), in exchange for regular payments to a company. 2 secure the payment of (a sum) in this way. 3 (insure against) protect (someone) against (a possible eventuality). 4 another term for ENSURE.

I would sure like to see your keyboard that has an infinite number of keys. There's a very important distinction between "practically infinite" and really infinite. A standard computer keyboard, not counting shift/ctrl/alt would have n! / (k! (n - k) !) or whatever the formula is, where ~105 is the number of keys on the keyboard.

No, actually he was correct. Having an unlimited amount of input (over a finite alphabet) does not promote a finite state machine to being a (classical) Turing machine. If you want to have a real Turing machine, then you must have unlimited writable memory (as well as a few other things). Finite state machines handle unlimited input just fine. Actual desktop computers have "only" a finite (gigantic) number of possible states, assuming you don't let people swap in an unlimited number of new hard drives.

I will bequeath my computer to my heirs along with instructions to enter new data every... let's say 108 minutes.As parts break they will have to replace them in time for the next input.See you in 80 years.

Actually, in a sense, you can. The Turing machine doesn't require an infinite tape, just a tape of arbitrary length. Basically, you need to be able to always add more tape. Eventually, of course, the universe will run out of mass for you to make tape out of, but the machine is still a proper Turing machine.
The distinction may seem meaningless, but consider the set of all finite bitstrings. This set will not contain any infinitely long strings, but it will contain arbitrarily long string. However long you want your string, there's one in the set, and a longer one, but no infinitely long ones. There's a definite difference between arbitrary finite length and infinite length.
I've always found that this realization makes the Turing Machine just a little bit more real.

How is this "still a proper Turing machine"? There are programs that would work on a theoretical Turing machine (with arbitrary amount of tape), but would run out of memory in your scheme.

"Good news, guys, we've solved the halting problem [wikipedia.org]... only wrinkle is, it requires all the matter in the universe, and complete entropic heat death. Oh, and it doesn't really come up with a solution, it just halts."

Purely technically, a Turing Machine that hasn't infinite tapes is simply a Finite State Machine.

Then by extension, you could not program one either. So essentially all those Turing machines programmed in computers really aren't. The fact is, from the busy beaver's point of view, the Turing machine is real as long as you don't run out of tape. It perhaps would help this Turing machine if the reels of tape were larger (so it would not run out of tape before it halted). Of course, the more complex Turing machines will run out of tape (or exceed the limits of the computer!).

A Turing Machine is a mathematical model of computation. In any math model there may be an impedance mismatch between the model and it's translation to physical representation. The key is to make sure the mismatch only affects items which are not critical to the usefulness of the model.

I agree that from a physical and practical point of view, this is a Turning Machine, because it is the best approximation of the model in physical form that anyone will be able to build.

Was anyone else reminded of this quote?
"If, he thought to himself, such amachine is a virtual impossibility, then it must logically be a finite improbability. So all I have to do in order to make one, is to work out exactly how improbable it is, feed that figure into the finite improbability generator, give it a fresh cup of really hot tea... and turn it on!"

I think what we have here is something that can implement a large subset of Turing machines (i.e. specific initial tape/state table combinations) but falls short of being a universal Turing machine because there will always be computable algorithms that it can't run because of (a) lack of tape or (b) tape melting due to the sun leaving the main sequence.

My call would be that you can't have a physical implementation of a true universal Turing machine - because you need to be able to "run" a non-computable

A Turing machine is supposed to represent what an infinitely patient mathematician with no insight can achieve when he has an infinite amount of paper and pencils. Obviously, the infinity here poses some problems, but you can build a finite Turing machine by finding a mathematician that has no insights,giving him tranquilizers to make him more patient, and locking him into your basement with some food and papers and pencils.

You're getting into the upper ranks. Once you earn your first Circular Slide Rule, doors you never even knew existed start opening up for you. Try the Transcendental Hyper-Sphere Squared Quantum State Slide Rule. It's the same model used by Nuclear Scientists and NASA Physicists. Of course, immediately prior to use you need to calibrate it with three independent agencies to be dead on balls accurate. It's an industry term.

Until he installs an infitite tape, this is computationaly equivalent to a Finite Automata.

If you're going to be pedantic, then get it right --- the machine is computationally equivalent to a finite automaton.

What I find tickling about this implementation is the clear evidence of an embedded FSM emulating the programmed TM. Since the erase, write, and read portions of the head are physically displaced, the interpreter needs to shift the tape back and forth to execute a simple TM operation like "read symbol at current location" or "write a 1 at current location". Then, of course, there are the m

Nice to see religion come up on Slashdot and not be the topic of vociferous argument for once:) Like that one quote in a Hitchhiker's book about the religion of Everybody Should Stop Taking This Religion Thing So Seriously And Have A Pizza, or however it came out...I can't find it by a quick googling...

Experimentally, this machine is indistinguishable from a real Turing machine until it whumps up against the end of the tape and the tape daemon refuses to splice a continuation tape. This is known as Fermat's procurement failure.

Then again, there is no such thing as an observable distinction of a real Turing machine from a fake o

I guess you were joking, but just for the benefit of any passing geek wannabes:

The Turing Test (an "hard AI" concept) and the Turing Machine (a conceptual computer) are related only in that they were conceived by the same man. You don't need a Turing Machine to pass the Turing Test.

A default Turing machine tape is infinite, it's an important part of the concept. Thus it has to be accented that this one isn't infinite. Saying it's a "finite tape" would suggest that it's a choice as arbitrary as "shiny" and "35mm".

As Alan M. Turing himself wrote [alanturing.net] in his 1948 National Physical Laboratory report on Intelligent Machinery (transcript [oxfordjournals.org] from a law journal, of all places):

It is possible to produce the effect of a computing machine by writing down a set of rules of procedure and asking a man to carry them out. Such a combination of a man with written instructions will be called a ‘Paper Machine.’ A man provided with paper, pencil and rubber, and subject to strict discipline is in effect a universal machine.

Maybe he can put my friend's annoying cat in a box that's rigged up to release a hammer that will shattering a vial of acid if a radioactive isotope decays. Though in practice, nothing will change. It seems like it simultaneously may or may not claw me at any given point. I can't see how it simultaneously being dead or alive will be any more or less predictable than its own capricious nature, with respect to being clawed.

RTFA. I know that's a sin, but seriously, do. You'll discover you are wrong.

The microcontroller loads the program as written in ascii on an SD card. It also can write the initial data onto the tape. After that, the computation is, indeed, performed by the "machine". Hence the optical reader for the characters on the tape.

No, I'm right. He says the micro's job is to read and write to the tape, and perform the simple steps as instructed by the tape.

That's fine, and that's cool. But it's not a Turing machine; it's a Turing machine emulator. I could write a program on my computer, feed it a virtual "tape" and do the same thing. It'd only be following the directions on the 'tape', but it'd be an interpreter.

Actually, sorry but you're wrong. Alan Turing himself described a Turing Machine as a "Logical Computing Machine" which consisted of:

an infinite memory capacity obtained in the form of an infinite tape marked out into squares on each of which a symbol could be printed. At any moment there is one symbol in the machine; it is called the scanned symbol. The machine can alter the scanned symbol and its behavior is in part determined by that symbol, but the symbols on the tape elsewhere do not affect the behavior of the machine. However, the tape can be moved back and forth through the machine, this being one of the elementary operations of the machine.

Now, let's look at how this works. It reads a symbol from the tape using the camera. Then it checks its internal state, and sees what it should do with that symbol (should it change the symbol, change the state, and/or how should it move). Then it does that action and moves on to the next symbol as instructed by the last "rule". Considering that the only thing that the machine keeps track of from position to position is the state, it is indeed a Turing machine. The microprocessor's job (as he states) is to act as the read/write head for the machine. Turing never described HOW the head worked, just WHAT it did. And this head performs EXACTLY what Turing described. And that's why this is a Turing machine. If you wrote a program on your computer that did this, it too would be a Turing machine. The delineation is in how it handles and stores states, not the method in which it "processes" data... And Turing's original work described a Turing machine as using a person to perform the actions (but strictly following the ruleset). So I fail to see how this could possibly NOT be a Turing machine...

I agree, although for the sake of appearances, it would be cool if the finite state machine portion were hard-coded to implement a universal turing machine, and the only programmability was the starting contents of the tape.

I agree, although for the sake of appearances, it would be cool if the finite state machine portion were hard-coded to implement a universal turing machine, and the only programmability was the starting contents of the tape.

It would be more than cool--it would be actually demonstrate Turing's remarkable core insight. As it is, this a very clever micro-controller implementation of a programmable finite state machine that uses a long tape as an book-keeping device. He says in the description, "In a way the tape is the computer" but this is false. The programmable finite state machine in the micro-controller is a the computer.

The tape in this machine isn't doing any computing at all. It is just helping the finite state machin

Turing's core insight was that you can get rid of the finite state machine and just have the tape, and a very simple set of universal rules.

Do you mean to say that a true universal turing machine has a fixed state transition table regardless of what the desired program was, and that programming is done solely by setting the initial tape? Having the program contained solely in the tape and manipulated with a fixed universal rule set, and still be able to program anything so to speak, would indeed be amazing.

A Turing machine is an interpreter. It interprets the code on the tape.

Imagine it was a human instead. This human is given a list of rules (a program) to follow. Then we give the human the tape (a program) and we tell him to follow the rules. That is a Turing machine, and that is what we have here, encoded into an actual machine instead of a list of rules. I think what you are missing is that the list of rules that the human is given is encoded as a program on the microcontroller. This is exactly what one e

Actually, if you'd bother reading the article, you'd find that the micro-controller is being used to do drive the electric motors, image process and maintain the turing machine's "state" [wikipedia.org]. that's it.

The duality between data and program is one of the fundamental concepts of computer science.
The Turing machine is a program that runs another program. The outer program encodes the (simple, encodable) rules of the Turing machine, and was originally intended to be a human with unlimited paper and pencil. The inner program is the tape.
Ask yourself this: what would this machine do without a tape?

Actually that's a great question, and I'm curious about that too, except I think that the answer is if we consider voltage states. Technically there's three states that a signal could be in, which are {off, on, neither} where the third state is easier to illustrate if I can use voltages instead. Let's say that instead of off and on we consider nearly zero (demonstrated as 0) volts for off (makes sense, right?), five volts for on and then a third state where we're neither at 5V or 0V, say 2.5V.

I believe the 1, 0 and blank are the characters of the TM's alphabet, not the states. The states are internal to the machine and there can be quite a lot of them depending on what the program is to accept the TM's language.