|
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:
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
|
|
|
|