At the forefront of Artificial Intelligence
  Home Articles Reviews Interviews JDK Glossary Features Discussion Search
Home » Articles » Robotics » LEGO Mindstorms

LEGO Pseudo-Turing Machine

By Aatish Bhatia

The Turing Machine is a concept devised by Alan Turing in an attempt to discover whether the field of mathematics can be simplified into mechanical computation. Imagine a mathematician performing calculations on a (infinitely) long scroll of paper. Given enough time, he can solve any solvable computational problem. What Turing said is that any calculation that can be performed by a smart mathematician can also be performed by a stupid but hard working clerk who follows a simple set of rules for reading and writing information on the scroll. The elegance of the Turing Machine lies in its simplicity, and its ability to perform all possible mathematical operations. It is an abstraction of thought, i.e. it is not a real machine. However, for entertainment I have built such a machine out of lego. The mathematical operation that it is performing is the addition of two binary numbers.

28 March: My lego pseudo-turing machine is now complete! This is not a pure turing machine for two reasons. The first is that a turing machine must have a read/write head while this is read only. The second reason is because in my code, I have added the two numbers using a normal algorithm, not a turing one. To get an idea of the difference, heres an excellent website on Programming Turing Machines. This change can be easily implemented, once I figure out the code of it. If you're interested in understanding Turing machines, a MUST read is Roger Penrose's The Emperor's New Mind. Another great book is Godel, Escher, Bach: an Eternal Golden Braid by Douglas Hofstadter.

What it does:

As you can see from the pictures, I have constructed a sort of 'card drive' on the RCX. The user attaches yellow and black bricks onto a plate. Yellow stands for one and black for zero, so you're actually inputting a binary number. Sort of like an old punch card system. This is the 'scroll' referred to above. The machine reads the ones and zeros then spits the card back out.

Then you input a new binary number. After performing some operations according to simple predefined rules, the RCX calculates the sum of these numbers. The LCD display will then show you the sum of your two numbers in binary.

Binary Output

SOURCE CODE: binaryadd.nqc

PICTURES

In case you've been here earlier, all pictures have been updated as I have changed the design.

Submitted: 29/03/2002

Article content copyright © Aatish Bhatia, 2002.
 Article Toolbar
Print
BibTeX entry

Search

Latest News
- Generation5 10-year Anniversary (03/09/2008)
- New Generation5 Design! (09/04/2007)
- Happy New Year 2007 (02/01/2007)
- Where has Generation5 Gone?! (04/11/2005)
- NeuroEvolving Robotic Operatives (NERO) (25/06/2005)

What's New?
- Back-propagation using the Generation5 JDK (07/04/2008)
- Hough Transforms (02/01/2008)
- Kohonen-based Image Analysis using the Generation5 JDK (11/12/2007)
- Modelling Bacterium using the JDK (19/03/2007)
- Modelling Bacterium using the JDK (19/03/2007)


All content copyright © 1998-2007, Generation5 unless otherwise noted.
- Privacy Policy - Legal - Terms of Use -