189 thoughts on “Richard Dawkins’ Software

  1. keiths,

    Isn’t it unbelievable? People here take the time to explain the model in extreme detail, and then to implement it, share the results, discuss them, compare them to what the model predicts, plot the data, etc… and Mung still doesn’t get it and now demands tests to document the code? Because of course, in Mung’s world the best documentation is the one produced by automated tests. Like he would get it if he had it anyway. He can’t appreciate the time and effort you guys put into this, and he won’t even try to understand.

    Mung, if at this point you still don’t get it, it’s entirely your fault. You’ve been spoon-fed all the relevant data yet you keep demanding more irrelevant stuff to your satisfaction. Your intellectually lazy and arrogantly stubborn willful ignorance is just pathetic

  2. A Weasel without selection will on average match the target at 28/27 sites, so a bit more than one match. The variance and standard deviation of matches will be a bit less than 1. So if you match at, say 10 positions, that is 9 standard deviations out, and is incredibly improbable. It will take about 10^{40} different trials to come up with the target sequence.

    On the other side, I have never seen a run of a Weasel program that didn’t get to, or close to, the target in less than 10,000 steps (mostly they do it in hundreds of steps). That’s noticeably sooner.

    Mung said in a previous thread that “I’ve never doubted the power of cumulative selection.” Now Mung is not willing to believe that Weasel programs have this power without “empirical tests”.

    And Mung then changes the subject to whether or not the Weasel algorithms are “directed”. Mung, meet Mung, and let us know when one of you convinces the other.

    No one is going to waste time writing elaborate test suites when results this dramatically clear do not convince Mung.

  3. A little over ten year ago I worked for a company called Software Quality Engineering. Our product was training in how to test software. Clients included nobodies like HP, Microsoft, Apple, Oracle, and such.

    Automated test suites were a big deal.

    What mung seems incapaple of understanding is that a GA is a kind of automated test suite.

  4. Mung: Automated Tests as Documentation

    Apparently Mung didn’t even bother reading the link he posted:

    Tests might be more useful as documentation to testers. After all, it’s a tester’s job to understand the tests in order to maintain them or add to them. But most testers aren’t going to learn much from most tests. When it comes to unit tests, it is the same for testers as it is for developers: unit tests aren’t useful unless you understand the code – and if you understand the code, then you should read it instead.

    Higher-level acceptance tests are easier to understand and more useful to look at especially for non-technical people […] But even if you can follow these tests, there’s no way to know how well they describe what the system does without spending time talking to people, learning about the domain, testing the system yourself, and… reading the code.

    I asked Jonathan Kohl, one of the smartest testers I know, about his experience using automated tests as documentation:

    Back in ’03 and ’04, Brian Marick and I were looking into this. We held an experimental workshop at XP/Agile Universe in 2004 with testers, developers and other project stakeholders to see what would happen if people who were unfamiliar with the program code (both the code and the automated unit tests) could get something useful from the automated tests as documentation. It was a complete and utter failure. No one really got any value whatsoever from the automated unit tests from a doc perspective. We had to explain what was going on afterwards…

    There are a lot of benefits to automated testing, especially once you have a good automated suite in place. But documentation is not one of them.

  5. petrushka,

    A little over ten year ago I worked for a company called Software Quality Engineering. Our product was training in how to test software. Clients included nobodies like HP, Microsoft, Apple, Oracle, and such.

    Automated test suites were a big deal.

    Automated test suites are appropriate in some circumstances but not others. In the context of my Weasel and Drift-Weasel implementations, an automated test suite would have been a waste of time. Other less expensive methods made more sense, such as validating the program against Joe’s Wright-Fisher model.

    What mung seems incapaple of understanding is that a GA is a kind of automated test suite.

    No, because a GA tests the fitnesses of genotypes, not the correctness of the GA program itself.

  6. petrushka: What mung seems incapaple of understanding is that a GA is a kind of automated test suite.

    I’m sure that attitude would have gone over great with your clients. You don’t need any tests. What you don’t understand is that your software is a kind of automated test suite. Ship it!

    Empirical verification? Who needs it.

  7. keiths: No, because a GA tests the fitnesses of genotypes, not the correctness of the GA program itself.

    Your WEASEL program does not test the fitnesses of genotypes, it assigns the fitnesses of genotypes. A unit test would test that the correct fitness was assigned to a genotype.

    Here’s the comments from your own code:
    // Calculate a genome’s fitness by determining the number of loci at which
    // it matches the target.
    // scan the entire genome, counting the number of loci that match the target

    Do you deny that your code assigns the fitness to the genome?

    This is why you won’t write the requested tests because doing so would show how fraudulent your claims are.

    Write a test to validate that the correct fitness is assigned to the genotypes. You can do it, I know you can. What they will show is that the “correct” fitness is relative to the target phrase.

    Get rid of the target phrase and how do you know what the correct fitness is? Now write that test. How then do you assign the fitness to the genotype?

  8. Joe Felsenstein: Now Mung is not willing to believe that Weasel programs have this power without “empirical tests”.

    Joe, why not just admit that you can’t follow every thread and every comment on the site. I am mocking people like Patrick who don’t believe anything without “objective empirical evidence.” I’m just exercising my right to be “skeptical” here at “The Skeptical Zone.”

    I used to believe in “the power of cumulative selection” because I used to think I knew where that power came from. But people keep telling me I’m wrong.

    You’re the one who indicated “the power” was in guidance. It’s not a change in subject on my part. It’s the freaking point.

  9. Mung: What they will show is that the “correct” fitness is relative to the target phrase.

    You didn’t learn anything from Richard’s PI calculator GA did you?
    There was no explicit or implicit target solution there

    Mung: Get rid of the target phrase and how do you know what the correct fitness is?

    One can easily get rid of the target phrase and have that as an arbitrary input. But the main issue is that you still don’t get how irrelevant that is

  10. Tom English: HT: RichardTHughes.

    Is this supposed to be relevant to the “silly, silly belief that you would be embarrassed to hold if you had an inkling of how silly it is”? I ask other people to take a stand and from that you infer that I believe those things?

  11. dazz: There was no explicit or implicit target solution there.

    Which one of his posts?

    Here’s the second one:

    I’m going to propose a *much* bigger search / smaller target.

    Friends, you target is Pi

    I’ve chosen Pi because of its qualities, being irrational and transcendental you cannot describe it in an equation, only approximate it.

    Our target is the first 150 digits of Pi.

    Target. Target. Target.

    I don’t believe his first exercise specifically called for a GA.

    Your intellectually lazy and arrogantly stubborn willful ignorance is just pathetic

    Glass houses and all that shit.

  12. dazz: One can easily get rid of the target phrase and have that as an arbitrary input. But the main issue is that you still don’t get how irrelevant that is.

    Are you saying that having a target is irrelevant, or that having one hard-coded into the program is irrelevant?

    Let’s say there is no target. How do you calculate fitness? Write the unit test validating that the correct fitness is assigned to the genome. Go ahead.

  13. dazz:

    Isn’t it unbelievable? People here take the time to explain the model in extreme detail, and then to implement it, share the results [and the source code!], discuss them, compare them to what the model predicts, plot the data, etc… and Mung still doesn’t get it and now demands tests to document the code? Because of course, in Mung’s world the best documentation is the one produced by automated tests. Like he would get it if he had it anyway. He can’t appreciate the time and effort you guys put into this, and he won’t even try to understand.

    Mung, if at this point you still don’t get it, it’s entirely your fault. You’ve been spoon-fed all the relevant data yet you keep demanding more irrelevant stuff to your satisfaction. Your intellectually lazy and arrogantly stubborn willful ignorance is just pathetic

    Indeed. I don’t know how much of it is willful ignorance versus a lack of the required abilities, but either way the problem lies with Mung.

    Mung, instead of asking to be spoon-fed by the people who already understand this stuff, why not go off and study it yourself until you get it?

    Then you can search for fatal flaws in the Weasel implementations. I predict that you won’t find any, thus continuing your losing streak.

  14. Joe Felsenstein: A Weasel without selection will on average match the target at 28/27 sites, so a bit more than one match. The variance and standard deviation of matches will be a bit less than 1. So if you match at, say 10 positions, that is 9 standard deviations out, and is incredibly improbable.

    ok, see, this is great. This is exactly the sort of analysis that I was hoping for. But in order to do these calculations, don’t you need to know that there is a target and what that target is? Else how do you calculate the standard deviation?

    What similar analysis can be done without knowing there is a target or knowing what the target is?

    Is there any “power of cumulative selection” if the genomes are not converging? What would the units be of “the power of cumulative selection”?

  15. keiths: Then you can search for fatal flaws in the Weasel implementations. I predict that you won’t find any, thus continuing your losing streak.

    What flaws in WEASEL implementations do you think I am looking for?

    Are you going to admit that your own WEASEL program assigns the fitness? So sure, no need for you to test that, lol.

  16. For sure, I get a good laugh every time they come running to defend WEASEL. It’s like I was trying to take a piss on their holy book or something.

  17. Mung,

    What flaws in WEASEL implementations do you think I am looking for?

    The same thing you’ve been trying and failing to find all along: flaws that would show that Weasel doesn’t demonstrate the power of cumulative selection.

    For example, you claimed that

    Given small population sizes drift ought to dominate yet in GAs drift does not dominate.

    …and:

    Given an effective population size of one, drift ought to dominate, but it doesn’t.

    Both of your claims were wrong, of course, as was easily demonstrated.

  18. keiths:
    Mung: What flaws in WEASEL implementations do you think I am looking for?

    keiths: The same thing you’ve been trying and failing to find all along: flaws that would show that Weasel doesn’t demonstrate the power of cumulative selection.

    You haven’t been paying attention.

    Let’s hop into The Way Back Time Machine:

    I’ve never doubted the power of cumulative selection. What I ask is, where does that power come from and how does the Dawkins Weasel program answer that question?

    Many critics of ID claim that evolution is not a search. But “the power of cumulative selection” is dependent upon this view of evolution as a search. After all, the Weasel program is a search algorithm. My view is that the Weasel program incorporates and relies on information that is coded into the program to make the search tractable. The “power of cumulative selection” is an artifact of the design of the program.

    So you’re wrong. You fail. You either haven’t understood what I’ve been saying or you’re misrepresenting what I’ve been saying. I won’t accuse you of doing it deliberately, because I really think you’re just sloppy.

    There is no doubt in my mind that we can change the code of a typical WEASEL program such that it would utterly fail to “demonstrate the power of cumulative selection.” You even managed to agree with me about that even if only as an accidental byproduct of the discussion over numerous threads.

    So the question still remains. We have a WEASEL that does not demonstrate the power of cumulative selection and we have a WEASEL that presumably does demonstrate the power of cumulative selection. And the difference is?

    If we dispensed with a “target” would the program still demonstrate the power of cumulative selection, and if so, how so? This is where empirical tests would really come in handy. But alas, we have none, and none are in sight. That’s just how I’d want it if I were in your shoes.

  19. Hi keiths,

    Your WEASEL program is written in C. And in C the ‘=’ sign is known as the assignment operator. So when your code is as follows:

    genome->fitness = fitness(genome);

    Aren’t you ASSIGNING a fitness to the genome?

    Just say yes. It won’t kill you to admit it. I promise.

    Perhaps that’s part of the magic of “the power of cumulative selection.” What do you think?

    p.s. In looking over your code again, perhaps you should have written a test to validate that you were assigning the correct fitness value to the genome. Or perhaps it doesn’t really matter what fitness value you assign. 🙂

  20. Some Intelligent Design proponents criticized the value of Dawkins’ Weasel program on a number of points that were readily answered by Dawkins and others. However, one such criticism is worth discussion and that is that the program itself already contains the information that is supposedly created by the process.

    This is silly. Besides, I don’t think I’ve ever argued about whether or not the WEASEL algorithm creates information. What it does is create an illusion that evolution is somehow analogous to the WEASEL program while at the same time denying that there is an analogy there at all. WEASEL fails as a model of evolution.

    And yes, there are search algorithms that perform better than blind search. Who ever thought otherwise? The thing that is misleading about the WEASEL program is the implication that evolution uses a search algorithm that performs better than blind search.

    This is what the “WEASEL WARS” are about.

    I can write a search algorithm that performs better than blind search. So what.

  21. OK, so Mung isn’t worried that the programs might be incorrectly written, or that the Weasel algorithm will not succeed in finding the target. Mung’s call for “empirical tests” is just a terribly indirect and laborious way of pointing out that the Weasel algorithm has a target. (And Mung’s previous acceptance of the “power of cumulative selection” was because Mung was somehow misled by the fans of the Weasel).

    Yup, the Weasel algorithms have a target. Yup, fitnesses of genotypes are calculated with respect to that target. Was anyone in doubt about that? Ever?

    So, does that mean that when evolution (or else evolutionary algorithms) do remarkable things, finding more fit genotypes, does there have to be a target? Is there necessarily information as to the details of the exact solution desired coded into the algorithm?

    No. Several of us have pointed out simulations that do marvellous things without the details of the result being coded in. Interestingly, these involve some sort of simulated physics or geometry. I have pointed some of these out here more than once. In the following comment I will list them once more. These points have been met with silence from the critics of evolutionary biology. Maybe this time they will feel them worthy of comment.

  22. Tom English: Which is to say, ID is SOL without arguments from improbability.

    I disagree. Douglas Axe has a new book coming out soon. It will be interesting to see whether and to what extent it depends on arguments from improbability.

    But the problem you face is that programs like WEASEL are designed to demonstrate how the “effects” of evolution are not as improbable as they seem. So arguments against ID are probability arguments and as long as that continues to be the case ID will not be SOL because those arguments grant the premise.

  23. Tom English: So what do you make of the evidence in “Parameter Dependence in Cumulative Selection,” by Christian apologist David Glass? (By the way, I think well of Glass, though not of his paper.)

    I read the article a while back and at that time I didn’t see anything relevant to any arguments I was making, but I’ll take a second look.

    I think the impression that the WEASEL program leaves of “the power of cumulative selection” depends the program itself and have said so. Dawkins fine tuned the program to get the results he got.

  24. Mung,

    You haven’t been paying attention.

    Sure I have. I notice the dumb things you say and I quote them back at you, explaining why they are wrong.

    Perhaps that’s part of the magic of “the power of cumulative selection.” What do you think?

    I think that wascally Weasel has defeated you once again, Elmer.

  25. Well, if we’re pointing out dumb things:

    keiths claimed that GAs test fitness whereas his own GAs assign fitness. keiths can’t seem to bring himself to admit that his own WEASEL programs actually assign fitnesses to genomes. And that’s sad.

  26. Joe Felsenstein: OK, so Mung isn’t worried that the programs might be incorrectly written, or that the Weasel algorithm will not succeed in finding the target.

    I wouldn’t go that far Joe. 🙂

    How would a program that claims to demonstrate the power of cumulative selection need to be written? Let’s assume we can agree that there are incorrect ways to write such a program. Can we at least agree on that?

    Can we write a test or tests to demonstrate that a program which claims to demonstrate the power of cumulative selection actually fails to do so? Can we at least agree that if such a test or tests can be written that a program that failed that test or tests is not correctly written? Can we at least agree on that?

    And there’s the rub. If it can’t be tested, it’s not empirical. Can we at least agree on that? Objective empirical tests that can validate that a program demonstrates the power of cumulative selection do not exist.

    keiths claims such tests are not necessary. How convenient.

  27. Here is a list of simulations that are evolutionary algorithms that do not have a target (an explicit genotype that is being sought). I listed two of them in a previous comment last February:

    For those who want to see an evolutionary simulation which does not have a target built in, there are genetic algorithms that do not have any detailed specification of the goal genotype or phenotype built in, but achieve remarkable adaptations:

    (1) Karl Sims (site here) had a genetic algorithm that described organisms made of blocks and links that existed in a simulated physics. They were under selection (to pick a dramatic case) to swim through the medium to the right. Starting with phenotypes that could barely wiggle, they evolve to “swim” in all sorts of fascinating ways. Sims’s code is not available but there is an imitation of it called breve that is available from Jonathan Klein (here).

    (2) A similar effort called Boxcar2d evolves imaginary vehicles that move to the right across a 2-dimensional landscape. It will be found here.

    I have mentioned these here before.

    Plus, others here have developed the Steiner Weasel, which solves Steiner Problems without having the particular solution built into the algorithm. A really great version runnable through a browser was posted recently near here (I have lost it for the moment but someone here should post a link to it).

    And earlier this year, at Panda’s Thumb, Dave Thomas gave some good explanation and history of the War of the Weasels which centered around this example and ended badly for the ID advocates.

  28. Joe Felsenstein: Mung’s call for “empirical tests” is just a terribly indirect and laborious way of pointing out that the Weasel algorithm has a target.

    That is incorrect.

    (And Mung’s previous acceptance of the “power of cumulative selection” was because Mung was somehow misled by the fans of the Weasel).

    That is incorrect.

    Yup, the Weasel algorithms have a target. Yup, fitnesses of genotypes are calculated with respect to that target. Was anyone in doubt about that? Ever?

    If we remove the target, how do we then manage to demonstrate the power of cumulative selection? In the WEASEL program, the power of cumulative selection is due to the presence of a target. If you dispute this claim, how do you propose to demonstrate the power of cumulative selection in the absence of a target?

    Now we are getting at the heart of my position. What is it that allows us to demonstrate the power of cumulative selection? What happens to “the power” when we remove the target? How can we objectively test the claims?

  29. Joe Felsenstein: Here is a list of simulations that are evolutionary algorithms that do not have a target (an explicit genotype that is being sought).

    How do they fail to demonstrate the power of cumulative selection? What tests exist to validate that they fail to demonstrate the power of cumulative selection? What test could be written to demonstrate that they fail to demonstrate the power of cumulative selection?

    Objective empirical evidence. The Holy Grail of “Skeptics” everywhere.

  30. Joe:

    Here is a list of simulations that are evolutionary algorithms that do not have a target (an explicit genotype that is being sought).

    In addition, the GAs I wrote for Rich’s two threads (link, link) do not seek explicit genotypes.

    The target objection is bogus. Yet another Mung fail.

  31. keiths: In addition, the GAs I wrote for Rich’s two threads (link, link) do not seek explicit genotypes.

    How do they fail to demonstrate the power of cumulative selection? What tests exist to validate that they fail to demonstrate the power of cumulative selection? What test could be written to demonstrate that they fail to demonstrate the power of cumulative selection?

    The target objection is bogus. Yet another Mung fail.

    Why do I not trust your Papal decrees? You probably don’t even understand what you call “the target objection.”

    I don’t object to targets. I just want to know how they factor into the results and what happens when you remove them. Absent a target, what is the impact on “the power of cumulative selection,” and how is that demonstrated, empirically?

    You have no tests, and we know why you don’t have tests, because they would expose the fraudulent nature of your claims. Write tests. Prove me wrong. You won’t. You can’t.

  32. Mung: How do they fail to demonstrate the power of cumulative selection? What tests exist to validate that they fail to demonstrate the power of cumulative selection? What test could be written to demonstrate that they fail to demonstrate the power of cumulative selection?

    Objective empirical evidence. The Holy Grail of “Skeptics” everywhere.

    Very simple: they don’t “fail to demonstrate the power of cumulative selection”.

    They are pretty impressive to me. And Weasels of all sorts seem to succeed in a lot less than 10^{40} tries.

    And if you think otherwise, present your evidence.

  33. Apparently falsifiability only applies to claims made by theists and ID’ists.

    But when testing software, there exists what is known as the Red, Green, Refactor cycle. Should we trust a test that cannot fail? Should we trust claims that are not subjected to tests?

  34. Joe Felsenstein: And if you think otherwise, present your evidence.

    Sorry Joe, but this is “The Skeptical Zone.” Maybe you don’t really belong here. You must support your claims or retract them. That’s THE RULEZ!

  35. I suggested Bob O’s avatar at AtBC. Mung, do you fancy this one?

  36. Mung:

    Objective empirical tests that can validate that a program demonstrates the power of cumulative selection do not exist.

    Sure they do, and I have tested my Weasel implementations. The fact that you don’t recognize this is due solely to your own limitations. You simply don’t understand software testing.

    keiths claims such tests are not necessary. How convenient.

    Hardly. Tests are necessary, but automated tests are not. Competent programmers know this and choose the testing method that is appropriate for the occasion.

    As an incompetent programmer, you are inflexibly demanding automated tests in a context in which they are a waste of time. Don’t expect me to take your foolish advice.

    On the other hand, if you want to waste your time doing automated tests, have at it.

    Or you could do the smarter thing and follow my lead. For example, you could run my Weasel program and toggle selection on and off, observing the difference in convergence. It should be obvious even to you.

    With selection on, convergence will typically happen in a matter of seconds. With selection off, you’ll wait your entire lifetime.

  37. Richardthughes has no tests. keiths has no tests. Mocks are not tests.

    But this is “The Skeptical Zone,” where content does not matter. I feel right at home.

  38. keiths:
    Mung: Objective empirical tests that can validate that a program demonstrates the power of cumulative selection do not exist.

    keiths: Sure they do, and I have tested my Weasel implementations. The fact that you don’t recognize this is due solely to your own limitations. You simply don’t understand software testing.

    Your tests are subjective. They are not objective empirical tests. You simply don’t understand what objective and empirical mean. The fact that you don’t recognize this is due solely to your own limitations. You simply don’t understand objective empirical software testing.

  39. Mung:

    Your tests are subjective. They are not objective empirical tests.

    Incorrect. Convergence time is objectively measurable.

    Another swing and a miss by Mung.

  40. keiths: Convergence time is objectively measurable.

    Let us know when you and Richardthughes publish your results.

  41. keiths: Convergence time is objectively measurable.

    So?

    Another swing and a miss by Mung.

    Did I claim that convergence time is not objectively measurable?

  42. I apologize to all those who were offended by my failure to properly state that it was as if I was pissing on their HOLY BOOK.

  43. Richardthughes: I’m asking who ‘us’ is. Who (do you think) you speak for?

    You either have tests or you don’t. The empirical evidence available to me indicates that you don’t. The demand for objective empirical evidence defines what it means to be a “proper skeptic” here at TSZ. If you are not a skeptic then perhaps this is not the site for you. If you are looking to hook up with keiths, perhaps this is not the site for you.

    Why don’t you go back to Noyau where you belong, since you lack the balls to challenge the claims by people like dazz, who flat out lie about things you’ve written?

Leave a Reply