Dembski, “Weasel”, and Video-Level Evidence

A post over at Uncommon Descent with a long-running series of comments resulted in a link to a video segment that bears on a stance taken by William Dembski and others that Richard Dawkins’ “weasel” program somehow worked by locking-in correct characters, protecting those from further mutation. The video shows that no such protection was given to correct characters. I’ve sent an email to Dembski and Robert Marks to bring this directly to their attention. I’ll share it with you here.

“David Kellogg” on Uncommon Descent linked to a YouTube video of a 1987 BBC Horizons program on Richard Dawkins’ “The Blind Watchmaker”. It includes video closeups of Dawkins’ “weasel” program in operation. The video also plainly shows that letters that match the target string are not locked or latched, just as I informed you some time ago (2000/10/09 for Dr. Dembski and 2007/10/11 for Dr. Marks).

View the following video:

The relevant part begins at 6:15 into the video. The camera is close enough to the screen to show the letters in the evolutionary computation clearly, and it plainly shows that there is no latching of any character in any position.

You have continued to present Dawkins’ “weasel” program as incorporating a latching mechanism for correct characters, and have gone so far as to term “weasel” a partitioned search. You concluded in drafts of papers that “weasel”‘s performance advantage over blind search was due to it having a partitioned search as its mechanism.

I previously laid out the evidence that the description of “weasel” provided by you was incorrect, without apparent effect. I have a further blog post that plots the performance of the partitioned search as you described it, and an accurately implemented version of the “weasel” program.


While actual “weasel” is slightly less efficient than Dembski-partitioned-search, both are dramatically better than blind search. This is at variance with several of the claims that you have made.

Given that now the evidence is as clear that Dawkins’ did not use a partitioned search as it always has been that he never described a partitioned search, I would hope that you each and jointly will take steps to remove the inaccurate descriptions and invalidated conclusions that were made on an incorrect premise.

Wesley R. Elsberry

Why pay attention to persistent antievolutionist error over a toy pedagogical example from 23 years ago? Because the antievolutionists don’t seem to be able to understand even the simplest sort of illustration of evolutionary computation, and that implies that understanding the basics of the principles behind “weasel” is also far from them. The incorrect description of “weasel” is propagated in the text of a paper that Dembski has claimed has been accepted for publication somewhere, though the correction was brought to Dembski’s attention over eight years ago, and to his co-author’s attention in 2007. Not only is the description incorrect, but the incorrect elements of the description were the ones that were the subject of analysis and the basis for the erroneous conclusions that they drew. Further, the tenacity with which this error has been clung to has resulted in the incorrect description and conclusion being used by others in the religious antievolution movement, as may be seen in Meyer’s Hopeless Monster. Error this basic whose effects have been so protracted needs to be exposed assiduously.

Wesley R. Elsberry

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

12 thoughts on “Dembski, “Weasel”, and Video-Level Evidence

  • 2009/03/15 at 9:15 am

    Actually, the programme was called Horizon (in the singular). I dimly remember watching it when it was first broadcast.

    Don’t worry, I’ll give you 8 years to correct yourself. :-)

  • 2009/03/15 at 9:28 am

    I eagerly anticipate the resolution of this long standing error in the antievolutionist propaganda literature. lol. i’m sure it is in the pipes.

    The UD post has been highly entertaining and is an excellent case of the epistemological (not to mention ethical) problems with intelligent design creationism as you have been documenting for years. always your fan


  • 2009/03/15 at 9:39 am

    I can’t say that I really expect the sort of retractions and notice to follow that would be just the standard thing if someone working in science were to discover an error in their work. Primarily, it gives me the ability to say that they were informed of relevant evidence telling them that they were wrong at a particular date. And that I can reference if/when any of the stuff they say is pending publication actually makes it into print.

  • 2009/03/15 at 11:55 am

    David, thanks for the complete set of attributions.

    As I noted on AtBC, it should be instructive to see the response in an instance where antievolutionists get the video-level evidence that they often claim is what it would take to make them change their minds.

    I note that Gordon Mullings at UD has taken it rather badly so far, lapsing into bizarre fantasies about Dawkins’ actions in 1986 and 1987 rather than accepting the far simpler explanation that Mullings had the wrong end of the argument all along.

  • 2009/03/15 at 8:30 pm

    Thanks for the hat tip, David, but the real credit goes to you for holding KF’s feet to the fire in the face of thousands of distracting verbal bullets. I only got involved because I was wondering why I was getting links from the funny farm all of a sudden.



  • 2009/03/25 at 3:26 am

    Curiously, I have not heard anyone suggest that Dawkins produce the source code of his program to end the debate emphatically.

    I did hear that a commentator on the UD thread contacted Dawkins, who advised no latching took place. Why not simply have Dawkins produce the actual source code? Or is Dawkins balking at such a move?

  • 2009/03/25 at 12:09 pm

    No, someone noted in the comments at UD that I had contacted Dawkins, who said no latching took place. I did that in 2000, informed William Dembski of that, and … Dembski simply keeps on with asserting that stuff never said by Dawkins must be the case. Dembski could have communicated with Dawkins to ask if he had gotten the description right, but he didn’t. Dembski could have revised his description on being informed it was in error in 2000, but he didn’t. Dembski could have written his own version of the program to find out that “latching” wasn’t required for “weasel” to work, but he didn’t.

    “weasel” wasn’t intended to be some monumental achievement. It was essentially the computer science equivalent of a napkin doodle. Dawkins doesn’t have the original code, just as I’m sure he isn’t using the original computer, either.

    But Dawkins gave us a description of the steps the program takes, and any number of people have programmed their own “weasel” instances that get results like Dawkins reported without “latching”. It isn’t Dawkins who needs to substantiate a claim; it is the religiious antievolutionists who have been in obvious error about this for years.

    The video demonstrates that the “weasel” program used by Dawkins was not latching, no source code is needed to confirm that. The religious antievolutionists have themselves latched onto the utterly demented notion that Dawkins used a different “latching” program for “weasel” output in “The Blind Watchmaker” and “New Scientist” in 1986 than in the 1987 video. Why is it demented? First, because “latching” is completely unlike the biology, and Dawkins is an accomplished biologist. Second, because the program Dawkins obviously did use in the video documentary about his book “The Blind Watchmaker” obviously doesn’t use latching. Third, because the math says that for reasonable population sizes and mutation rates, one doesn’t expect to see the best candidates from successive generations lose correct characters. Fourth, because Dawkins himself has said that he didn’t do anything of the sort.

  • 2010/08/28 at 10:11 am

    With regard to the inner workings of Dawkins’ “Weasels,” I offer my “Weasels TNG” for your perusal. A zip archive can be downloaded via (1.3Mb). The archive holds the C source code and documentation (User’s Guide) of my version of “Weasels” (the last two sections in the User’s Guide discusses Dawkins version in some detail, and the difficulties of “cumulative selection” (respectively).

    Please note that I am not advocating ID or “creationism,” I just cannot (yet?) see how random mutations can “accumulate” in the fashion suggested by professors Dawkins and Coyne.

    Constructive feedback would be of great value to me, as I would really like to get an understanding of how “cumulative selection” can possibly work…

    Bottom line, regarding Dawkins “Weasels” from TBW: there is no way that a random algorithm can produce 9 matching characters (out of 28) in ten generations (as shown by Dawkins in TBW). Not without some kind of cheating.

    Henry Norman
    Tagaytay City, Philippines

  • 2010/08/29 at 8:01 am

    The point of “weasel” is that it is *not* random. There is a non-deterministic process within “weasel”, but this isn’t like post-Civil War race accounting, where if you had any African-American ancestry, no matter how many generations removed, you were considered African-American. Unless, of course, you want to class as “random” things like meteorological analysis and encryption algorithms, too. It may become more obvious why others aren’t joining in when that is made clear. The purpose of “weasel” was to show how selection changes things from purely random search.

    Apparently, I need to finish up the series of posts I started back in spring 2009.

    The Weasel Saga, With Math — Part 1

    This post lays out the math for random search.

    The Weasel Saga, With Math — Part 2

    That one delves into some of the differences “weasel” has from random search. I presented a minimalistic “weasel” program in Python and output from an example run. By the way, the example run shows a match of 10 characters out of 28 by generation 10, so we can reduce this to practice and you can explain to me how I “cheated” to get that example. I don’t think that you’ll be able to do so, since I didn’t.

    I suspect that Part 2 is going to be a sufficient base for discussion of where we differ.

    Where I’m going with the third installment, should I ever get time to finish it up, is to include things such as I discussed here.

  • 2010/08/29 at 8:35 am


    You didn’t bother to mention that you advocate the notion that “locking” or “latching” is part of Dawkins’ “weasel” program. You make that claim in the PDF with your program. That’s a falsehood. You should remove that as soon as possible. The point of the post that you are replying to is that Dawkins demonstrated, on video, that no “latching” was going on in his program, and yet it converged.

    Your search for programs implementing “weasel” was flawed, too. I’ve posted several myself over the years, and *none* of those ever used “latching”. I don’t think any in the big list compiled by Ian Musgrave had that flaw.

    Your method of mutating strings is off, too. As you would see in my recent Python implementation, the mutation rate is applied to each and every “base” in the string to determine whether it mutates or not. This allows for the possibility of multiple mutations within one offspring string. Yours, instead, is *described* as determining the chance that a string accrues one mutation in it, which is both idiosyncratic and also does not reflect the biological process. This is one place within “weasel” that we can get closer to what happens in biology. I haven’t confirmed that your code matches your text description.

    Your “Table 5” does not show that Dawkins uses “latching”. I’ve had a batch of posts here addressing that error. Here’s something from one of them:

    Dembski and others make much of the fact that the few lines Dawkins used to illustrate output from his “weasel” don’t show an instance of a stepback in performance. They insist that this means that Dawkins must have used a rule in his program that would not allow a stepback in performance, but that is simply induction gone wild and sloppy thinking. One can verify with my page that for reasonable mutation rates and population sizes, stepbacks are rare. Why is this? To get a stepback, every single string in a new population has to be have at least one less matching character than was present in its parent from the previous generation. The more strings that are generated in a new population, the smaller the probability that all of them will alter at least one of the already-matched characters from the parent string. So small population size is critical to observing stepbacks. Also, strings changing at least one already-matched character from the parent are less likely with lower mutation rates, so a high mutation rate is also critical to observing stepbacks. Neither of these conditions is didactically similar to the process that Dawkins wanted to make an analogy to, natural selection in biology.

    How likely is it that Dawkins could present a run that shows no obvious change in an already-matched character when the best match out of the population every ten generations is shown? One can do runs to characterize this, which I’ve done.

    It is quite plausible that Dawkins used a population size and mutation rate that would give an expectation of less than half the time one would be able to see such in summary output. Your conclusion is unsupported by the evidence.

    If your “weasel” is programmed not to latch and still doesn’t converge, you have an error in the program. See my post here for a graph showing the difference between what Dembski calls “partitioned search” and an actual “weasel” program. It is Dembski’s mistaken view of “partitioned search” that you should find “predetermined, and thus of no interest”.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.