This is a universal cheering machine implemented in Minecraft the video is running at 60 times normal speed in other words each minute is an hour of run time the total run for this tape took just over 13 hours a universal cheering machine is a curing machine With a fixed action table that can be used to simulate any other turing machine both the description of the other turing machine and its data are encoded onto the tape of the universal turing machine so universal cheering machine can calculate any computable function i’ve drawn from the particular Machine that was created by paul Rendell for his game of life implementation because I had similar goals that have been reasonably simple but also not take too many cycles to perform the simulation apart from reversing the tape and changing the symbol encoding it is essentially the same machine with 13 States and eight symbols the Turing machine being simulated simply duplicate sass string of symbols effectively a unary multiply by two the data here being operated on is a string of just three symbols the entire run takes over 6000 actions of the universal Turing machine not bad by universal Turing machine standards but Painfully slow in this minecraft implementation most of the time spent shuttling back and forth between the program section and the data section on the tape each time an action is simulated here are the parts in more detail the tape is a sequence of blocks the colors have no significance to the Operation they just help to show the motion of the tape I’ve marked the division between the stored program and the data using red blocks towards the right end of the tape as the data being operated on and to the left end is the encoded program of the tearing machine Being simulated the head reads the symbol from the tape in place using redstone torches underneath the tape these bits in their inverse are conveyed to the action table where they can be matched by placing torches on the columns in some cases I’ve left out torches so that more than one symbol can Be matched by single-action which helps to reduce the size of the action table across from the symbol matching rows of the state matching rows at the head of these rows are the four lectures holding the current state of the machine and again redstone torches are used to match against particular States underneath the Matching rows are the wires that trigger when there is a match at the end of the wire is a redstone torch used to trigger the next action after the current one is finished or left out if the machine should hold back from this there’s a torch in one of two columns which Triggers either the right or the left tape shift at the end of the action further along there is a set of four torch positions and these torch positions set the next Machine state after the action I’ve reserved state zero for the error case when no action Matches and still further along is a set of three torch positions that define the change to the symbol for simplicity these invert bits of the symbol rather than setting it which also helps when combining action rows that leave the symbol unchanged the outputs from the action table are all relayed underneath From the far end of the action table so that the delay time is the same no matter which action is matched out of the array the symbol change outputs feed back underneath the head and in from the back of the head the head uses Pistons to change the bit values these Pistons Pull back the top block then they raise the bottom block and lower the top block and then they push this new bottom block back into place a solid block at the bottom represents a bit value of one and a glass block a bit value of zero from here Then go back to the rest of the sequence you Video Information
This video, titled ‘Universal Turing Machine implemented in Minecraft redstone logic’, was uploaded by neonsignal on 2011-08-27 21:14:39. It has garnered 81485 views and 766 likes. The duration of the video is 00:12:50 or 770 seconds.
This is a Universal Turing Machine implemented in Minecraft. The video is running at 60 times normal speed, in other words, each minute is an hour of run time. The total run for this tape took just over 13 hours.
A Universal Turing Machine is a Turing Machine with a fixed action table that can be used to simulate any other Turing Machine. Both the description of the other Turing Machine and its data are encoded onto the tape of the Universal Turing Machine. So a Universal Turing Machine can calculate any computable function. http://en.wikipedia.org/wiki/Universal_turing_machine
I have drawn from the particular machine that was created by Paul Rendell for his Game of Life implementation, because I had similar goals – that it be reasonably simple, but also not take too many cycles to perform the simulation. Apart from reversing the tape and changing the symbol encoding, it is essentially the same machine, with 13 states and 8 symbols. http://rendell-attic.org/gol/utm/utmprog.htm
The Turing Machine being simulated simply duplicates a string of symbols, effectively a unary multiply by 2. The data being operated on is a string of three symbols. The entire run takes over six thousand actions of the Universal Turing Machine, not bad by UTM standards, but painfully slow in this Minecraft implementation. Most of the time is spent shuttling back and forth between the program section and the data section on the tape, each time an action is simulated. http://rendell-attic.org/gol/utm/utmtm.htm
Here are the parts in more detail:
The tape is a sequence of blocks. The colors have no significance to the operation, they just help show the motion of the tape.
I have marked the division between the stored program and the data using red blocks. Towards the right end of the tape is the data being operated on. And to the left end is the encoded program of the Turing machine being simulated.
The head reads the symbol from the tape in place, using redstone torches underneath the tape. These bits and their inverse are conveyed to the action table, where they can be matched by placing torches on the columns. In some cases, I have left out torches so that more than one symbol can be matched by a single action, which helps to reduce the size of the action table.
Across from the symbol matching rows are the state matching rows. At the head of these rows are the four latches holding the current state of the machine, and again redstone torches are used to match against particular states.
Underneath the matching rows are the wires that trigger when there is a match. At the end of the wire is a redstone torch, used to trigger the next action after the current one is finished, or left out if the machine should halt.
Back from this there is a torch in one of two columns, which triggers the right or left tape shift at the end of the action.
Further along is the set of four torch positions which set the next machine state for each action. I have reserved state zero for the error case when no action matches.
And still further along is the set of three torch positions that define the change to the symbol. For simplicity, these invert bits of the symbol, rather than setting it, which also helps when combining action rows that leave the symbol unchanged.
The outputs are all relayed underneath from the far end of the action table, so that the delay time is the same no matter which action is matched out of the array.
The symbol change outputs feed underneath the head and in from the back. The head uses pistons to change the bit values, pulling back the top block, raising the bottom block and lowering the top block, and then pushing the new bottom block into place. A solid block at the bottom represents a bit value of 1, and a glass block a bit value of 0.
This video features the tracks “Klik” and “Grom” by Jaap Blonk & Radbood Mens available under a Creative Commons License http://freemusicarchive.org/music/Jaap_Blonk__Radboud_Mens/Bek_Mouth
[Notes]
Symbol encodings: ‘0’ 000 ‘A’ 100 ‘1’ 001 ‘B’ 101 ‘C’ 010 ‘D’ 110 ‘M’ 011 ‘X’ 111
Initial tape sequence : M00C0100M1C0100M11C0101M00C1111M00C0001M11C011XBBDBABXAABABA10000000
Final tape sequence: M00C0100M1C0100XBBDABABXAADBBBBXAADAAABXBBDABBXBBDBABXAABABABABABAB0