To LUGNET HomepageTo LUGNET News HomepageTo LUGNET Guide Homepage
 Help on Searching
 
Post new message to lugnet.robotics.rcx.nqcOpen lugnet.robotics.rcx.nqc in your NNTP NewsreaderTo LUGNET News Traffic PageSign In (Members)
 Robotics / RCX / NQC / 1398
1397  |  1399
Subject: 
Re: lego turing machine
Newsgroups: 
lugnet.off-topic.geek, lugnet.robotics, lugnet.robotics.rcx.nqc
Date: 
Fri, 29 Mar 2002 19:43:14 GMT
Viewed: 
492 times
  
In article <Gtquyo.FF4@lugnet.com>, Aatish Bhatia <aatish@mac.com> wrote:
As I can't use a read/write head because of obvious construction
difficulties I have stretched Turing's idea, implementing that actual moving

I got to thinking, maybe this isn't so impossible after all. Imagine if
you used 2x2 blocks with 2x2 tiles on top. Now you have something the RCX
can lift.

Run two pieces of train track parallel to each other, with four spots'
width separating them. In that area, build along the track 2x2 cells to
set these into.

On your read-write head, have a long piece sticking out at an angle that
has a row of 0s and a row of 1s. As a bit is removed from this slide, the
rest slide down, so there should always be a bit at the bottom of the slide.

You can then do reading and writing-- when you don't need the bit you have
there, pick it up, set it off to the side, and pick a new bit off your slide.

The read/write head can then roll either direction on the train track as
it needs. Instead of moving the tape, you move the machine on the tape.

1) first card is fed in and the value is stored in a integer array
2) same for second card
3) These two arrays are merged into a larger third array, the final turing
tape. So all data to work with is on one single tape on which the answer
will be written.

This is what makes a Turing machine so tricky-- you can't simply
say, "Read in the first bit, multiply it by 64, then add in the next bit
multiplied by 32"-- the Machine doesn't know what bit it's on. There's
not really an array.

Let me give the less-theory-oriented folks here an example of reading in a
three-bit number:

STATES: I have 15 states. These are named:

I_Know_Nothing
Number = 0
Number = 1
Number = 2
Number = 3
Number = 4
Number = 5
Number = 6
Number = 7
Number <  Four
Number >= Four
Number < Two
Number >= Two < Four
Number < 6 >= 4
Number > 6

PROGRAM:

Define the initial state as I_Know_Nothing.
If State = I_Know_Nothing
if BIH (Bit-under-head) = 1
State gets Number >= Four
        else
State gets Number < Four
Move Head Left
If State = Number < Four
if BIH = 1
State gets Number >= Two < Four
else
State gets Number < Two
Move Head Left
if State = Number < Two
if BIH = 1
State gets Number = 1
else
State gets Number = 0

...and so-on until you have defined program behaviors for each state and
each input. (the pedants among you will note that I probably techically
should in this case write back out the bit I just read...)

Now here's the really sucky part: You have a state, but a casual observer
doesn't know what that state is. You then have to go through the same sort
of hoops to do output.

This is why a turing machine in Lego would be so darned impressive. The
way it works is you have a program, you set the initial state, and then
when you get to each new cell, you run the program again. The program
can't remember anything except what state it is in between cells. And
you have to define all the states up front.

hope that clarifies all doubts. sorry i didn't mention this on the site, I'm
gonna put this thread up onto the site as an explanation if you don't mind.

No problem.

-JDF
--
J.D. Forinash                                     ,-.
jd@forinash.not                                  ( <
The more you learn, the better your luck gets.    `-'



Message has 1 Reply:
  USB Tower Software without RIS2.0 install
 
(...) Just run "ReinstallUsbTower.exe" from the CD or copy all files that begin with ltower plus "ReinstallUsbTower.exe" and "TowerApi.dll" to another location (< 350K) and run Reinstall. You do not have to load the remaining RIS2.0 software. -- (...) (23 years ago, 30-Mar-02, to lugnet.robotics)

Message is in Reply To:
  Re: lego turing machine
 
Hi JDF, Thanks for the feedback. I know it's not a Turing machine in the true sense, but let me tell you what I'm trying to do. At the moment I realize that I have built a sort of binary adder. But what I am currently implementing is a change in (...) (23 years ago, 29-Mar-02, to lugnet.off-topic.geek, lugnet.robotics, lugnet.robotics.rcx.nqc)

9 Messages in This Thread:

Entire Thread on One Page:
Nested:  All | Brief | Compact | Dots
Linear:  All | Brief | Compact

This Message and its Replies on One Page:
Nested:  All | Brief | Compact | Dots
Linear:  All | Brief | Compact
    
Active threads in Robotics

 
Verified and Trusted Team of Hackers
17 hours ago
Custom Search

©2005 LUGNET. All rights reserved. - hosted by steinbruch.info GbR