Main Page Team ACC Members Team ACC Forum BOINC Arthur C Clarke Links
More Links kinhull Contact Me BOINC miniFAQ Games
SETI@Home Postage Stamps BOINC Poetry    

The Weasel Applet:

You're either not loading Java applets or your browser doesn't support them.

Weasel's 81-character alphabet: abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ 0123456789,.?;:'@!£$&%+-*/><

1.) Type a Goal Phrase using any of the characters listed above. The default Goal Phrase is SETI@Home will find ET

2.) Choose a population size, minimum is 2 (Population Size refers to the number of guesses per generation)

3.) Choose how frequently to update the display, after every n generations

4.) Start by clicking on Evolve A Solution, let it run until it completes, otherwise click on Stop Breeding! to stop

A non-technical description of Weasel

This exhibit, which was inspired by a description of a program in Richard Dawkins 's excellent book The Blind Watchmaker , demonstrates the ability of evolutionary techniques to solve enormous problems rapidly.

The applet works like this:

A) You provide a phrase to one part of the program, the Scorer, and another part of the program (the Breeder) tries to make the Scorer happy by breeding possible solutions until it matches the supplied phrase.

B) The Breeder starts by making lots of random guesses and presenting each to the Scorer. The highest-scoring guess is then bred with other guesses (by combining parts of each guess) and some of the guesses are randomly mutated. The Breeder continues to breed and mutate guesses until it finds your original phrase.

C) Along the way, the Scorer only tells the Breeder how close each guess is to the target phrase, not what the target phrase is. The Scorer doesn't even tell the Breeder which parts of its guess are right or wrong. This is vaguely like trying to find a random spot in the galaxy, being told only how "hot" or "cold" you are after each step.

There are many possible phrases of the same length as the phrase "Methinks it is like a weasel" (that's well over 2 million billion billion billion billion billion phrases). An exhaustive search -- systematically trying all possible guesses -- would virtually never complete; the universe would run down first. But even the simple-minded evolutionary programming techniques used in this applet typically find a solution after examining only about sixty thousand alternatives.

Most of the applet is independent of the particular problem it's trying to solve, illustrating the generality of evolutionary techniques. (That is, you wouldn't have to change much code to get it to find efficient travel plans instead of guessing phrases.) It would be simple to repackage most of the applet as a highly general problem-solver.

Curious readers may wish to examine the applet's source code (in Java).

Conclusion

This applet's ability to guess phrases doesn't prove that evolution happened, of course. (There's plenty of evidence for that anyway, with or without my help.) But you should think of this applet when you hear someone claim that "blind chance" couldn't possibly have produced something as complex as, say, a hemoglobin molecule. When the results are subject to non-random pressures, "blind chance" can do a lot more than your intuition suggests.

The program was never intended to model evolution accurately, but only to demonstrate the power of cumulative selection as compared to random selection.

(Mathematically inclined readers may be interested in a technical note about an alternate solution.)

(The original source for this page is here)

1