In a post a couple of days ago I asked the class to discuss a little computer program designed to “illustrate” natural selection. Of course, the class jumped all over it and easily demonstrated how ludicrous the program’s assumptions were. That day I got the following emai:
First, let me agree that the simulation does [not?] make a good case for RM&NS, but that is because the simulation itself is poor. One of your more astute commentators makes the comment that intermediaries should themselves be words, to be ‘viable as life’. This can be done. Zachriel . . . has a very good simulation that will do that. http://www.zachriel.com/mutagenation/
I am just a humble lawyer, so evaluating Mr. X’s claim that this simulation really is as “golly gee whiz right on the money” as claimed is beyond my ken. So I asked Gil Dodgen, UD’s resident programing expert, to review the program and give me his take. His kind reply is below.
I downloaded the simulation and looked at the source code. It is written in a programming language with which I am extremely familiar because I used it to develop the mission planner for our company’s guided airdrop system. I had to chuckle. The program takes a “seed” word and randomly alters it in a variety of ways, then searches a 100,000-word dictionary, loaded into RAM to facilitate the efficiency of the search algorithm. If the altered character string is found in the dictionary it is preserved in an array, awaiting further alteration, otherwise it is discarded.
The dictionary is probed with a binary search, which works as follows: The entries in the dictionary are presorted in ascending numerical order. A binary search, seeking a match in a presorted array, looks at the middle. If the value being sought is less than the value found in the middle, the top half of the array is ignored, only the bottom half is considered, and the search looks in the middle of it (or the bottom half is ignored if the value being sought is greater than that found in the middle of the array). This process is repeated until a match is made or it is discovered that the sought-after data does not exist in the array. A binary search takes advantage of the fact that the database is already sorted.
Binary searches are extremely powerful and efficient, assuming that the database in question has been presorted in ascending or descending numerical order. A presorted database with 2^n entries can be exhaustively searched with a maximum of n probes. Since 2^32 is 4.29 billion, a presorted database with more than four billion entries can be searched with a maximum of 32 probes.
Using a binary search on the presorted 100,000-entry dictionary included in the program, a random string can either be found or discarded with a maximum of 17 probes of the RAM-based dictionary (2^17 is greater than 100,000).
The bottom line: This program is a joke, just like Dawkins’ Weasel program. In the Weasel program a prescribed letter in a prescribed location in a prescribed character string is conserved when a match is made. In the case of the Zachriel program a prescribed word in a prescribed location in a prescribed English dictionary, presorted to effect an efficient binary search, is conserved when a match is made. Weasel and Zachriel are essentially identical concerning matching and conservation, but Zachriel requires more sophisticated programming techniques.
None of this has anything to do with biological Darwinian evolution.
By the way, if you want to defeat Zachriel just enter a long random string containing only consonants.