Dembski and Marks Are Still Mischaracterizing Dawkins’ “Weasel”

William Dembski has a post up at Uncommon Descent that brings us up-to-date, somewhat, with what Dembski and Bob Marks have been doing. From that, Dembski says that one of the paper manuscripts he and Marks collaborated upon has been accepted by a computational intelligence journal. So much the worse for the rep of that journal, I’d say, though I plan to offer a rebuttal there as well, so I guess we’ll see. There’s also some pimping of a new webpage.

In the meantime, you might be interested in our online interactive critique of Richard Dawkins’s weasel program, Tom Schneider’s ev, and Richard Lenski et al.’s AVIDA. We call it Weasel Ware, and we’ve been enormously helped in its development by a UD participant who has implemented Bob Marks’s Matlab code on our evolutionary informatics lab website. Here’s the link:

Before going further, I must remark that the description itself is both inept and inapt. The site only takes up Dembski’s (and now, sadly, Marks’) delusions concerning the “weasel” program presented by Richard Dawkins in his book, “The Blind Watchmaker“. In fact, in my perusal of the pages there, I saw no mention of Schneider and “ev” nor of Lenski and Avida. This is of a piece with the curious antievolutionist cognitive difficulty in recognizing that Dawkins’ “weasel” program does not comprise the totality of evolutionary computation efforts. That was well exemplified in the 2004 paper by Stephen C. Meyer, where he airily dismissed all of evolutionary computation based upon a misunderstanding of “weasel”.

Dembski and Marks:

The active information supplied by the "divide and conquer" oracle is necessary to perform the search.  In essence, Dr. Dawkins concurs when he writes

   "Chance is a minor ingredient in the Darwinian recipe [as exemplified in the WEASEL example], but the most important ingredient is the cumulative selection [i.e. the divide and conquer oracle]  which is quintessentially nonrandom." (Italics not added )  [5].

In evolutionary computing, the active information can be generated by a programmer skillfully querying an information rich oracle.

I informed Dembski of the basic error in his mis-reading of Dawkins over eight years ago. I similarly notified Bob Marks last year that he was following Dembski into long-known error.

From my response last year:

The accurate way to describe Dawkins’s “weasel” program is this way:

1. Use a set of characters that includes the upper case alphabet and a space.

2. Initialize a population of n 28-character strings with random assignments of characters from our character set.

3. Identify the string or strings closest to the target string in the population.

4. If a string matches the target, terminate.

5. Base a new generation population of size n upon copies of the closest matching string or strings, where each position has a chance of randomly mutating, based upon a set mutation rate.

6. Go to step 3.

Dembski and Marks claim that Dawkins’s “weasel” program smuggles in information of the target by use of partitioned search, by which they mean that every time a particular letter matches in a string, that correct assignment of letter and position are retained in all future generations. This is equivalent to the bad old password login scheme on DEC machines, where one could figure out which characters in a proffered password matched and continue login attempts until all of them matched. However, that is not how Dawkins’s “weasel” program worked, so every statement Dembski and Marks make that is based upon that false premise is utterly meaningless. Just as the Marks and Dembski “ev” critique failed upon easily checkable stuff, one can run Dawkins’s “weasel” and get results similar to those reported by Dawkins; however, running Dembski and Marks’s “weasel” with the partitioned search will return results that are far different from what Dawkins reported.

The accurate version of Dawkins' "weasel" is conspicuous by its absence from the Dembski and Marks page, primarily, one presumes, because the outcome of analysis of that version sinks their claims completely.

I knew I had done up a graph of the comparison between an accurate rendition of Dawkins' "weasel" and Dembski's mistaken "oracle weasel" version.

The following graph is comprised of data taken from 100 runs of the program per mutation rate per treatment, and reports the average number of unique candidate solutions examined to get to a matching string.

The accurate version of Dawkins' "weasel" is shown in purple. The Dembski-Marks fantasy of "oracle-weasel" is yellow-orange. The average performance of Dawkins' "weasel", which does not utilize the partitioning ("divide and conquer") that Dembski and Marks claim, is only two to three times worse on average than the "oracle weasel" Dembski and Marks fabricated, right up to the point where an increase in the mutation rate makes it likely that two or more characters in the string would be mutated per offspring. At higher mutation rates, it is clear that the Dembski-Marks "oracle weasel" has the advantage in performance due to "locking-in" of correct letters, which the accurate Dawkins' "weasel" does not do. But the graph clearly shows that even without "locking-in" of letters the accurate Dawkins' "weasel" does eventually get to the correct string, and takes only slightly over ten times as many candidates as does the Dembski-Marks "oracle weasel".

There's the whole other issue of what, exactly, Dembski and Marks take to be a "query". Dembski and Marks derive a number of 98 queries for the Dembski-Marks "oracle weasel". I never saw a solution arrived at without at least 338 unique candidate solutions examined for "oracle weasel" in runs I made, which indicates something of a mismatch between Dembski-Marks analysis and practice. If we accept their estimate of 8.3e38 queries as approximately accurate for random search, accurate Dawkins' "weasel" outperformed that by a factor of 2.9e35 times. Evolutionary computation considered accurately vastly outperforms random search for this problem, and closely approaches the oracular and deterministic performance that Dembski and Marks do take up. The result is counter to the claims Dembski and Marks make that evolutionary computation requires oracles/"divide and conquer" techniques to beat random search.

Sweet. I seems that next year I may have an easy peer-reviewed publication rebutting Dembski and Marks, if this is the stuff they are putting out there.

Over eight years of knowing he’s been in error has not deterred Bill Dembski from continuing to advance things he knows to be false. Bob Marks apparently is completely on board with this program of blatant lying. The drafts of manuscripts that they had on site include at least one with this particular lie prominently displayed therein. I guess we’ll know pretty soon which journal has lax review standards.

Wesley R. Elsberry

Falconer. Interdisciplinary researcher: biology and computer science. Data scientist in real estate and econometrics. Blogger. Speaker. Photographer. Husband. Christian. Activist.

7 thoughts on “Dembski and Marks Are Still Mischaracterizing Dawkins’ “Weasel”

  • 2008/10/19 at 4:02 pm

    I went through those pages this afternoon too, and like you found nothing at all having to do with avida or ev. Just the same old misconception of the WEASEL program you identified. Dembski reminds me more and more of Sal Cordova.

  • 2008/11/11 at 11:06 am

    I found this page while looking for other implementations of Dawkins’ Weasel. I’d seen a few creationist misrepresentations, so decided to implement a tougher version. It’s available here:

    My implementation uses a stochastic selection mechanism and subjects all bits in the genome to mutation. It also operates on a far larger search space. Unsurprisingly, unless you’re a creationist, differential reproduction operating on random mutation still converges to a solution rapidly.

    I think I’ll make some modifications to ev next.

  • 2008/11/11 at 11:49 am

    I have another post up here discussing an implementation of mine. You can see the implementation itself here.

    Which Lisp implementations should your code work with?

  • 2008/11/11 at 1:02 pm

    Cool, two examples demonstrating that “cumulative selection” doesn’t entail explicit locking of correct characters.

    I’ve run my GA engine under both SBCL and Clozure CL (formerly OpenMCL). It doesn’t use threading (yet) and doesn’t have a GUI, so it should run under any standard Common Lisp.

  • 2009/03/22 at 5:24 am

    Doesn’t some sort of locking exist in the reality of natural selection ? Since a “good” mutation might benefit the organism disproportionately, any mutation of that element would potentially lead to a lower fitness, so the mutation would tend to stay fixed anyway ?


  • 2009/03/22 at 9:35 pm

    I corrected an antievolutionst on “locking” recently. The issue is what mechanism applies. IDC advocates would like people to think that “locking” is the only way to achieve an increase in performance over random search, since that essentially requires fore-knowledge and would make “weasel” a point in their favor. But the actual mechanism used in “weasel” doesn’t lock and doesn’t require fore-knowledge.

    “Latching” would require an internal mechanism with knowledge of “correct” states and the ability to protect “correct” states from mutational processes. That would be counter to what we know of biology, and, indeed, Dawkins himself thought that ascribing “latching” would be didactically wrong.

    But if there is no protection of “correct” states, how in the world can there be a mechanism that will accumulate adaptive information over time where all individual traits are treated just the same? Especially when mutating from an adaptive to a maladaptive character is so much more probable than mutating an adaptive character to a maladaptive one. That is what the “weasel” program by Dawkins demonstrates, that given the use of cumulative selection, it becomes likely that an evolving population can be in a situation where adaptive information is retained. It does so in a way that promotes an understanding of why biological evolution happens in reasonable-sized populations with a small but appreciable rate of mutation of inherited information.

    Yes, adaptive information is retained in populations meeting those two biologically-relevant criteria (reasonable population size and non-zero small mutation rate), but it is precisely the point at issue that “latching” is not done in order to achieve that. We have no evidence of a generic “latching” capability in biology, but we do have plenty of evidence concerning biological population sizes and mutation rates. So no one is ignoring the fact that “weasel” works; it is precisely to the point that argument ensues when certain people persistently misrepresent the mechanism by which it works. I wonder why they ignore that fact?

  • Pingback: Dembski, “Weasel”, and Video-Level Evidence – The Austringer

Comments are closed.