Slashdot Mirror


A Few Million Virtual Monkeys Randomly Recreate Shakespeare

First time accepted submitter eljefe6a writes "On September 23 at 2:30 PST the A Million Amazonian Monkeys project successfully recreated A Lover's Complaint. This is the first time a work of Shakespeare has actually been randomly reproduced. It is one small step for a monkey, one giant leap for virtual primates everywhere. From the article: 'For this project, I used Hadoop, Amazon EC2, and Ubuntu Linux. Since I don’t have real monkeys, I have to create fake Amazonian Map Monkeys. The Map Monkeys create random data in ASCII between a and z. It uses Sean Luke’s Mersenne Twister to make sure I have fast, random, well behaved monkeys. Once the monkey’s output is mapped, it is passed to the reducer which runs the characters through a Bloom Field membership test. If the monkey output passes the membership test, the Shakespearean works are checked using a string comparison. If that passes, a genius monkey has written 9 characters of Shakespeare. The source material is all of Shakespeare’s works as taken from Project Gutenberg.'"

13 of 312 comments (clear)

  1. Huh? by Anonymous Coward · · Score: 0, Insightful

    Computers used to be serious tools made by serious people to solve serious problems. What the hell kind of auto-fellatio is this nonsense? You software retards are really so far up your own ass you've emerged in a new universe. Better thank your lucky stars that the hardware engineers, you know, the people doing the real computing work, have designed fast and cheap computers....

    1. Re:Huh? by Sarten-X · · Score: 4, Insightful

      As a programmer of several "stupid computer tricks" myself (like a filesystem driver for mounting IRC!), I am very appreciative for the fast computers that let us simulate very complex systems very quickly. I understand that it is my responsibility, as a software engineer, to use that speed and memory efficiently to optimize the results of the simulation.

      This project has generated better illustrative proof than ever before that randomness will eventually produce everything. This is often a difficult concept for non-mathematical people to accept, so a nice example is always welcome among those who seek to educate. It is also worth noting that this project is running on Hadoop, which is not yet considered stable. While monkeys type Shakespeare, they also find bugs, stress-test releases, and educate at least one programmer. After such a test, Hadoop is much more favorable as a platform for more "real computing work" projects, like processing medical records looking for previously-unknown medication side effects.

      While on the subject of "real computing work", please note that all nontrivial computation is done by software, and that all software can run on a Turing machine as designed in 1937. Those hardware engineers are doing real electrical engineering work, making circuits run with less power and smaller size. Those chemical engineers are doing real chemistry work, making semiconductors that can switch faster and at lower voltage. The software engineers are doing real computing work, finding fast algorithms and optimizing processes.

      --
      You do not have a moral or legal right to do absolutely anything you want.
  2. HRmm...... by malakai · · Score: 5, Insightful

    If i'm understanding this, this isn't as cool as it seems. It seems like his 'monkeys' are just randomly creating words, and he matches those words against any word used in Shakespeare. If he gets a match, he marks that one as done. So, as some point one monkey made the word "be" and all of a sudden green lights all over the place.

    I think the original saying was how random and unique it would be for a solid set of strings to randomly create a whole piece of work _in one go_ . Not a word here, a word there, OMG 100% of Shakespeare words have been randomly created.

    1. Re:HRmm...... by Dan+East · · Score: 5, Insightful

      Exactly. So if it's going to be done in this way, then why not break it down into INDIVIDUAL characters. Have a monkey generate a single letter, and see if that happens to match something one of Shakespeare's works. I bet that algorithm would be even faster.

      --
      Better known as 318230.
    2. Re:HRmm...... by cgenman · · Score: 4, Insightful

      It's not that a million monkeys could randomly create the works of Shakespeare. It is that an infinite number of monkeys could recreate all of the work in the known world, including Shakespeare. The thing about infinity, is that it is really, really big. If the amount of resources thrown at a problem is truly infinite, all possible results just happen, no matter how improbable.

      The point of the saying is how mind-meldingly large infinite is, and how bad our minds are at comprehending the ramifications. This is one.

  3. Does anyone else think this is supid? by nzac · · Score: 5, Insightful

    and that he missed the point of the expression?

    Of course it will work the Mersenne twister will eventually cover the entire 9 letter space and then he can search though for the parts that match (yes he is doing it concurrently but that’s just an inefficient way of doing it). If he had the RAM and time he could eventually recreate every book possible.

    The Wikipedia page explains it better that infinite random sting is bound to contain something that is perceived as useful. Of course the literal take on on the expression is the most funny.

  4. It is in fact virtually impossible by martin-boundary · · Score: 5, Insightful
    This experiment, while fun, isn't exactly the infinite monkey experiment.

    What's happening here (if I understand the writeup) is that the monkeys are typing random letter combinations, until they hit a small phrase that happens to be in shakespeare. Then that phrase is marked as done.

    Let n be the size in characters of the target phrase. If n=1, then the complete works of shakespeare are obtained as soon as each of the letters of the alphabet have been typed at least once. You could do this in a few seconds on your computer keyboard. If n=2, then the complete works are obtained as soon as all the possible pairs of letters have been typed. The experiment in TFA has n=9 I think.

    As n grows larger, the time until completion grows exponentially. Once his expeiment is done, the case n=10 should take roughly 26 times as long (ignoring punctuation capitals and diacritical marks). Alternatively, it would require a cloud roughly 26 times bigger to do it in the same amount of time.

  5. I did think of it. by Chibi+Merrow · · Score: 4, Insightful

    I did think of it. I even registered a domain (see my URL and e-mail address). Planned on making a screensaver that would randomly generate stuff, and convince people to run it, ala SETI@Home. Then college happened, then graduate school happened, then marriage happened, then baby happened... And then (once again), I read on SlashDot that someone else has done one of my ideas again and made the front page.

    But then again, literally as I'm reading this, my daughter is singing the Blue's Clues theme song next to me while my wife and I get ready to queue up for our nightly game of League of Legends... Sitting in the downstairs den/office that's full of years of gamer stuff that all represents the happy memories of those several years of college. That guy can have my monkeys. Good for him. I found something better. :)

    --
    Maxim: People cannot follow directions.
    Increases in truth directly with the length of time spent explaining them
    1. Re:I did think of it. by bill_mcgonigle · · Score: 4, Insightful

      One thing the Internet has taught me is that (nearly) all my ideas are non-unique. It's the execution that counts.

      --
      My God, it's Full of Source!
      OUTSIDE_IP=$(dig +short my.ip @outsideip.net)
  6. Re:Frankly, that's cool by Gadget_Guy · · Score: 1, Insightful

    What a depressingly dull world you live in. By that thinking, all human endeavor is a waste of time because it is a forgone conclusion that we all die in the end.

    Sometimes it is the journey that is more important than the final destination. This was not about making another copy of a work of literature, but the creation of a simulation of virtual monkeys.

  7. Re:It is in fact virtually impossible by Anonymous Coward · · Score: 4, Insightful

    Exactly. Breaking down the problem of "randomly finding thousands of characters in the right order" to "randomly finding 9 characters in the right order" is bullshit, because this requires information about the order of all the 9-character-blobs you find.

    In other news: I compressed a Gigabyte down to 2 bits. You just have to know the order of the bits!

    Stupid article. Stupid submitter. Stupid waste of energy. That's the 21st century for you. Idiocracy at its best.

  8. Re:It is in fact virtually impossible by cgenman · · Score: 3, Insightful

    You could prove that for the length of a work of Shakespeare (N), the amount of "monkeys" required to solve the problem in the same amount of time is 26^(N-9). Or, as it relates to the proverb, the solution to the equation has the time required to create a work of Shakespeare as infinite and the number of monkeys required to solve it in that time as infinite.

    Of course, that solution didn't require programming the monkeys. But it is extrapolatable out to an entire work.

  9. Re:Frankly, that's cool by RobDude · · Score: 4, Insightful

    I don't even understand it.....

    He randomly generates 9 characters until he gets the 9 characters he wants. Then he repeats until he has the Shakespeare book he wanted? That's not how 'random' works. Why 9 characters? Why not 1?

    I will have my computer randomly guess letters until an A comes up. Then until a B comes up. And then, at the end I'll have the ABCs! RANDOMLY!

    Am I being retarded? Did I miss why this is cool?