that were easily visualized; the modeling programs successfully generated a range of spider webs similar to those found in nature. Example algorithm Although Dawkins did not provide the source code for his program, a "Weasel" style algorithm could run as follows. Start with a random string of 28 characters. Make 100 copies of the string (reproduce). For each character in each of the 100 copies, with a probability of 5%, replace (mutate) the character with a new random character. Compare each new string with the target string "METHINKS IT IS LIKE A WEASEL", and give each a score (the number of letters in the string that are correct and in the correct position). If any of the new strings has a perfect score (28), halt. Otherwise, take the highest scoring string, and go to step 2. For these purposes, a "character" is any uppercase letter, or a space. The number of copies per generation, and the chance of mutation per letter are not specified in Dawkins's book; 100 copies and a 5% mutation rate are examples. Correct letters are not "locked"; each correct letter may become incorrect in subsequent generations. The terms of the program and the existence of the target phrase do however mean that such 'negative mutations' will quickly be 'corrected'. See also Genetic algorithm Objections to evolution Watchmaker analogy References Dawkins, R. (1986) The Blind Watchmaker Oxford University Press. External links Many examples of Weasel programs in various computer languages The Weasel Applet (the "weasel program" written in Java) Dawkin's Weasel demo applet (in Monash University's Virtual Lab) Talk.origins claim CF011_1 Dawkins' WEASEL simulation An open sourced, HTML/Javascript web-based version by Damian Peterson An open sourced python script by Iddo Friedberg Artificial life Genetic algorithms Richard Dawkins Simulation software Thought experiments