You probably heard about it if you're the kind of person who appreciates this, but a man named Mike Davey has built an actual Turing Machine, moving tape and all. This is amazingly cool, at least as good as the lava lamp centrifuge I posted a few weeks ago.
A Turing Machine is a theoretical model of computation, an idealized, maximally simplified computer. The Turing machine can theoretically do anything any computer can do. Specifically, you can show that there is a Turing machine that can take a description of any other Turing machine - or any computer - and emulate its operation. So any results you prove about the Turing machine is also true about any real-world computing device. Anything the Turing machine can do, a normal computer can do too. ANything shown to be impossible for a Turing machine (not just slow, but impossible), is also impossible with a real computer, no matter how big and powerful.
For instance, through the Turing machine we know that it is impossible to create a program that will take any program as input and find out whether that program will ever finish or if it will just loop forever (the Halting problem). Why is that important? It's the same thing as saying you can't make an automated test to verify that any real-world program is bug-free or that it does what it's supposed to do. Any testing or verification has to be specific to a program. That has some pretty important real-world consequences for the quality of important software systems and the cost of developing them.
A more fundamental consequence is that it sets important limits on what functions a Turing machine can actually compute. There are a classes of functions that you can express, but that you can't resolve - you can't get an answer - using a Turing machine. And as a Turing machine is exactly as powerful as any real-world computer (speed is immaterial), it means the same restrictions apply to them as well. Before you start gloating too much about the superiority of humans to computers, remember that it's quite probable that we are the same kind of computing devices and are just as unable to resolve this class of functions.
The Turing machine is an abstract tool for people working on theory of computation and algorithms. Building a real-world machine that looks and operates like Alan Turings imaginary machine is perhaps not the most useful thing in the world, but it's hugely, amazingly cool.
Showing posts with label cool. Show all posts
Showing posts with label cool. Show all posts
Saturday, March 27, 2010
Wednesday, May 27, 2009
Dice Rolling Machine
Not my usual fare, I know, but: A guy runs a website that caters to play-by-email boardgame players - backgammon, risk, that sort of thing. He needs lots of random numbers - lots and lots of numbers - and to make the players happy he needs to get them from real dice, not a random number generator. So, proving that anything worth doing is worth way, way overdoing, he built an automatic dice rolling machine that can generate over 1.3 million dice rolls per day:
I am so very envious right now.
I am so very envious right now.
Subscribe to:
Posts (Atom)