Those Weasely IDCists!

A couple recent comments here at TSZ by Patrick caught my eye.

First was the claim that arguments for the existence of God had been refuted.

I don’t agree that heaping a bunch of poor and refuted arguments together results in a strong argument.

here

Second was the claim that IDCists do not understand cumulative selection and Dawkins’ Weasel program.

The first time I think I was expecting more confusion on Ewert’s part about the power of cumulative selection (most IDCists still don’t understand Dawkin’s Weasel).

here

In this OP I’d like to concentrate on the second of these claims.

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? I’m capable of coding a version of the Weasel program. But I’m also interested in the mathematics involved. I’d like to see if we can agree on what is involved in the coding and how that affects the mathematics involved. What is the power of cumulative selection?

METHINKS IT IS LIKE A WEASEL

A string with a length of 28 characters. Each position in the string can assume one of 27 different values. 27^28 would be the size of the sequence space. Call it the search space.

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. We lack justification to extend this “power” to biology.

So are there people here who can explain the mathematics and the probabilities and make the necessary connection to biological evolution? Is it a mistake to think that Dawkins’ Weasel program tells us anything about biological evolution.

307 thoughts on “Those Weasely IDCists!”

1. Mung:

I’ve already explained this. If the program failed to halt then no one would know that it’s performing any better than random chance drawings. It would fail in it’s mission to demonstrate the power of cumulative selection.

You are aware that the program outputs the fittest string at every generation (i.e. while it’s still running)? It doesn’t print out the whole list at the end. So it wouldn’t change anything if it didn’t halt.

2. Mung:

I’ve already explained this. If the program failed to halt then no one would know that it’s performing any better than random chance drawings. It would fail in it’s mission to demonstrate the power of cumulative selection.

From someone who claims to be a programmer, that’s a remarkably obtuse statement. You think halting is the only way a program can indicate its progress?

Enable STEP_MODE in my program and watch it converge on the target phrase even when FITNESS_THRESHOLD is set too high for the program to halt.

3. keiths: You think halting is the only way a program can indicate its progress?

LoL. Halting is the opposite of making progress. So no.

Progress. Is that required for cumulative selection?

4. Mung:

I’ve already explained this. If the program failed to halt then no one would know that it’s performing any better than random chance drawings. It would fail in it’s mission to demonstrate the power of cumulative selection.

keiths:

From someone who claims to be a programmer, that’s a remarkably obtuse statement. You think halting is the only way a program can indicate its progress?

Mung:

LoL. Halting is the opposite of making progress. So no.

Halting can be the result of making progress, in which case it is an indication of progress. Every competent programmer knows this.

Having failed to identify anything illegitimate about Weasel or its demonstration of the power of cumulative selection, you are now clumsily attempting, and failing, to snare your opponents in linguistic gotchas.

It’s classic OldMung behavior.

5. keiths: Having failed to identify anything illegitimate about Weasel or its demonstration of the power of cumulative selection, you are now clumsily attempting, and failing, to snare your opponents in linguistic gotchas.

I’ve not being attempting to identify anything illegitimate about Weasel or it’s demonstration of the power of cumulative selection. Reign in that overactive imagination of yours and get back on track, please.

I am not arguing that Weasel cheats. That’s something you introduced.

I am not arguing that Weasel is illegitimate. That’s something you introduced.

I accept that Weasel demonstrates the power of cumulative selection.

How does it manage to do that?

Your answer, to date, is “that’s what it does.” If that’s the best you can do, well, that’s the best you can do.

6. Let’s go back to some basics.

Mung: In computer science, a search algorithm is an algorithm for finding an item with specified properties among a collection of items which are coded into a computer program, that look for clues to return what is wanted.

Is anyone disputing that Weasel is, or contains an implementation of, a search algorithm?

keiths? Richardthughes? Neil? Anyone?

So what Weasel teaches us is that in order to demonstrate the power of cumulative selection one must implement a search algorithm.

7. I probably screwed this up royally, lol. I used New -> Media.

Let’s discuss whether the following is or is not an example of cumulative selection:

Crude Weasel

The language is Ruby.

8. Mung,

Mung:
It’s amazing, really. Such a simple question. Why so much obfuscation?

To be clear Mung, he gave you code. One could not hope for more clarity.

9. Mung,

I’ve not being attempting to identify anything illegitimate about Weasel or it’s demonstration of the power of cumulative selection.

That’s exactly what you’ve been trying to do:

Perhaps the power of cumulative selection is just an artifact of the design of the program. Humans think they see something that’s not really there. Like the shape of a weasel in a cloud.

Jesus, Mung. We’re not as stupid as your audience at UD.

10. Mung,

It’s amazing, really. Such a simple question. Why so much obfuscation?

I think it’s because you realize you’ve lost another battle, and obfuscation seems like the only way to extricate yourself from your predicament.

11. Mung,

I accept that Weasel demonstrates the power of cumulative selection.

No, you’re questioning whether it actually does:

If Weasel does in fact demonstrate the power of cumulative selection I want to know how Weasel does that.

Mung:

How does it manage to do that?

No, my answer is that it demonstrates the power of cumulative selection by deploying cumulative selection and achieving a result it could not achieve with a random algorithm.

12. Mung:

Let’s go back to some basics.

Mung: In computer science, a search algorithm is an algorithm for finding an item with specified properties among a collection of items which are coded into a computer program, that look for clues to return what is wanted.

Is anyone disputing that Weasel is, or contains an implementation of, a search algorithm?

Yes. By that extremely poor definition, Weasel is not and does not contain a search algorithm, because the items are not coded into the program. Didn’t you notice the banner at the top of the Wikipedia page saying

This article needs attention from an expert in Computer science. The specific problem is: longstanding subpar state of article structure and content…

Pay attention, Mung.

So what Weasel teaches us is that in order to demonstrate the power of cumulative selection one must implement a search algorithm.

Even if Weasel were a search algorithm by your poor definition, your conclusion wouldn’t follow.

Your logic error is equivalent to this:

1. Celia has red hair.
2. Celia can do the splits.
3. Therefore, red hair is required in order to do the splits.

13. Mung,

The code you provided confirms that you don’t understand Weasel or cumulative selection at all.

For the benefit of folks who don’t read Ruby, here’s what Mung’s program does:

1. Create a single genotype and initialize it randomly from the set of all unique characters contained in “METHINKS IT IS LIKE A WEASEL”.

2. Start with the first character in the random genotype. Keep mutating that character and only that character until it matches the “M” in “METHINKS”. Never change it again.

3. Repeat step 2 for the second character, then the third character, and so on until the end of the genotype is reached, at which point the entire genotype will match the target phrase.

That’s it, believe it or not.

Jesus, Mung, no wonder you thought that Weasel would have trouble with changing targets. Your program certainly would.

At least you copied the target phrase correctly.

Why not study my code so that you’ll understand what the rest of us are talking about? Or Google “Dawkins weasel” and read some of the informal descriptions of the algorithm?

14. Richardthughes: To be clear Mung, he gave you code. One could not hope for more clarity.

Great. From now on I shall speak to you in code.

freep dop tilbush nodgrats.

15. keiths: The code you provided confirms that you don’t understand Weasel or cumulative selection at all.

How so?

You claim that from my code you can deduce that I don’t understand Weasel or cumulative selection at all. You then go on to describe what my program does. What you do not do, is substantiate your claim. For that, you would need to “connect the dots.” You would need to make an actual argument.

Mung: Let’s discuss whether the following is or is not an example of cumulative selection

keiths will tell us why it is not, and give his reasons. Or he won’t.

Waiting …

16. Mung,

You claim that from my code you can deduce that I don’t understand Weasel or cumulative selection at all. You then go on to describe what my program does.

Yes, and anyone who understands Weasel and cumulative selection will look at the description of your program and conclude that you don’t understand them at all.

If you don’t see that, it’s because you don’t understand Weasel and cumulative selection.

Rather than demanding that I explain them to you and show where your program falls short, why don’t you take up my suggestion?

Why not study my code so that you’ll understand what the rest of us are talking about? Or Google “Dawkins weasel” and read some of the informal descriptions of the algorithm?

17. A few people suggested that I should write my own Weasel program.

So I did.

My program defines the same target phase as the Dawkins Weasel program.

“METHINKS IT IS LIKE A WEASEL”

My program then creates a genotype and initializes it randomly. Even keiths admits this is true.

My program then subjects that genotype to multiple rounds of mutation and selection. keiths, if he is willing to be honest, will admit that this is true.

My program causes the initially randomly generated genotype to converge on the target sequence. Even keiths admits this is true.

Mung:
Let’s discuss whether the code is or is not an example of cumulative selection:

I never claimed that it was an example of cumulative selection. I asked for arguments one way or the other.

The claim by keiths that the code I provided confirms that I don’t understand Weasel or cumulative selection at all is simply gratuitous posturing. It utterly lacks any empirical content. Par for the course.

18. Our Gracious Hostess wants all TSZ participants to “park their priors at the door”. Which is a laudable ideal, but it’s worth noting that said ideal does not mean we should forget everything and reduce ourselves to tabula rasa whilst we’re participating here.

We can remember past encounters with other participants, even when those encounters took place in some venue other than TSZ. We are not required to forget when some Participant X has indulged in disingenuous argumentation, in quote-mining, in mousetrap-setting ‘gotcha!’ gambits, or any of the all-too-wide variety of rhetorical tactics whose deployment is indicative of a palpable absence of the good faith which TSZ requires, as a Rule Of The Game, a presumption of when composing a response to another participant’s text(s).

Just sayin’.

19. Richardthughes: Mung, you have some coding chops I believe?

I created a program capable of beginning with a randomly generated “genome” which is then subjected to rounds of mutation and selection which converges on the target phrase. I posted a link to the code.

Do you dispute that it performs better than a random search?

If not, how do you propose that we distinguish what my program manages to accomplish from what the power of cumulative selection can accomplish?

20. cubist: Just sayin’.

Therefore … What?

If you don’t understand the code, that’s fine. There are other ways you can contribute. For example, what would it take to convince you of the power of cumulative selection?

21. keiths:That’s exactly what you’ve been trying to do:

Actually, no. That’s the motive you are attempting to impute. Big difference.

Of course, if you have facts on your side, you can present them.

22. keiths: Rather than demanding that I explain them to you and show where your program falls short, why don’t you take up my suggestion?

I wrote my own program and didn’t crib from yours [your suggestion]. Now you want to complain that I did not crib from yours.

My program does or does not demonstrate the power of cumulative selection. If you can say that it does not, but you cannot explain why it does not, why should anyone believe you?

23. Mung: I am not arguing that Weasel cheats. That’s something you introduced.

I am not arguing that Weasel is illegitimate. That’s something you introduced.

I accept that Weasel demonstrates the power of cumulative selection.

How does it manage to do that?

It does it because by providing an environment in which the more similar a string is to METHINKS IT IS LIKE A WEASEL, the more likely that string is to reproduce.

OK?

ETA: it also provides, of course, a starting population of strings that can reproduce with variance.

24. Mung,

I saw you say what selection means and what cumulative means, are we supposed to be able to add those two together to get the definition of cumulative selection?

Well, you could I guess – what do you reckon? The definition of (biological) selection makes no mention of targets. The definition of cumulative makes no mention of targets. Maybe you’ll find a definition of ‘cumulative selection’ that does, but it would be a strange one.

Cumulative selection is like a ‘cumulative breeze’. A gust blows a paper along the road a bit. If the breeze continues to come from the same quarter, it will blow it a bit more. It does not have a target. In the Weasel case, there is a target, and it gives a constant direction to selection – moves are either towards it or away from it, and you discard the ones that move away. They are less fit in that environment.

Maybe I’ll look up definitions of “cumulative selection” online and see how well they fit the Weasel program. I mean, I was sort of taking Dawkins’ word that it demonstrates the power of cumulative selection, but maybe it doesn’t do any such thing.

Yeah, go for it Mung. Word gaming is always such fun!

25. Mung,

Down to an average of 16 iterations per run. The power of cumulative Mung!

I think you could get it down to 1 if you really put some work in. Like, start at your target.

All versions that don’t include selection fail to demonstrate the power of selection. All runs that turn up the confounding parameters to levels that swamp selection don’t demonstrate selection, cumulative or otherwise. Go Mung!

26. Mung: I wrote my own program and didn’t crib from yours [your suggestion]. Now you want to complain that I did not crib from yours.

My program does or does not demonstrate the power of cumulative selection. If you can say that it does not, but you cannot explain why it does not, why should anyone believe you?

Your program does not even remotely resemble cumulative selection as found in nature. The various loci are not part of a larger genotype. Each letter is treated as if it were an individual. But getting the correct match on one letter could easily happen by chance. So no power of cumulative selection demonstrated there. But then you create an order among the individuals (so you get the right WEASEL sequence and not some random permutation) and impose a requirement that one individual cannot even start to evolve before the previous one is finished (which wouldn’t happen if they really were distinct individuals). This is not equivalent to Dawkins’ program. The best natural analogue of what you wrote that I can think of is a host that has an obligate parasite, which itself has an obligate sub-parasite, etc. 28 times over. And even that is still a very poor fit. For example, it doesn’t explain the fact that a letter can’t change when its fitness is high (remember that in your program, there are only two fitnesses, high and low). Either you didn’t think this through or you couldn’t decide whether the organisms in your simulation would represent letters or sequences, and settled for a halfway solution that makes no sense.
Your algorithm demonstrates the power of muddled thinking.

27. Mung,

If the program failed to halt then no one would know that it’s performing any better than random chance drawings. It would fail in it’s mission to demonstrate the power of cumulative selection.

The program could sound a bell and then carry on chugging away …

28. Mung,

So what Weasel teaches us is that in order to demonstrate the power of cumulative selection one must implement a search algorithm.

Not really. I accept that Weasel can be classified as a search algorithm ( I simply had a linguistic chuckle at the idea of searching for something you’ve already got). However, cumulative selection does not depend on it being a search algorithm, it depends on there being more than 1 successive adaptive step that can be taken under the same selective pressure.

If cold kills a disproportionate number of organisms, the ones that survive enrich the population in genetic constructs that deal better with the cold. But if it stays cold, among those survivors, cold still acts as a selective pressure. The previous ‘genetic constructs’ can be improved, and others added. This can be iterated. Cumulatively.

In Weasel, the target phrase functions as a selective constant, rather than a goal per se. Or rather, it’s both. It ‘attracts’ genomes towards itself, in the way cold ‘attracts’ better genes for cold regions. But one could implement a GA without a target – with an analogue for cold – and still have cumulative selection.

29. Mung, your code demonstrates the power of a partitioned search, not cumulative selection.
Over at UD, you can read the thread “Uncommon Descent Contest Question 10: Provide the Code for Dawkins’ WEASEL Program” to see the difference…

30. All a cumulative search means is that you keep searching for something that matches what you are searching for. It demonstrates nothing other then if you select the things you want, and get rid if the things you don’t want, you get what you want. What a ridiculous an obvious point. If I want to build a house, I select everything I need to build a house, and select nothing I don’t need to build a house. So every carpenter who builds a house is using cumulative selection. If I carve the statue of David I am using cumulative selection. If I cook an apple pie I use cumulative selection. Who the heck needs a program to understand this.

Of course this is the exact opposite of what people claim for evolution. In evolution, First you select a bunch of things, and then you decide what you want. Like you choose some sheetrock, and then some spinach, and then some slinkys and then some table doilies, and some rubber ducks, and a bottle of ketchup, and then you have to make it into something that is better than the separate parts. The only catch being that you have to use each part when you first get it, so you can’t use the ketchup with the spinach until you figure out what the rubber duck is for. You might be able to change what the slinky is for halfway, but you can’t change everything, or you will just have a bunch of fucked up ducks.

31. phoodoo: You might be able to change what the slinky is for halfway, but you can’t change everything, or you will just have a bunch of fucked up ducks.

You should put this in a letter to Nature, I’m sure they’d be keen to hear such refined and erudite arguments.

32. All a cumulative search means is that you keep searching for something that matches what you are searching for.It demonstrates nothing other then if you select the things you want, and get rid if the things you don’t want, you get what you want.

Wow. Just wow.

33. Mung,

If you truly want to understand Weasel and cumulative selection, then make an effort to learn about them.

My suggestion, again:

Why not study my code so that you’ll understand what the rest of us are talking about? Or Google “Dawkins weasel” and read some of the informal descriptions of the algorithm?

Don’t be lazy. The information is out there. If you’re still confused after making an effort to study it, then bring your questions here and I’m sure people will help you out.

34. Or Google “Dawkins weasel” and read some of the informal descriptions of the algorithm?

Or Dawkins’ original description:

“It again begins by choosing a random sequence of 28 letters…it now ‘breeds from’ this random phrase. It duplicates it repeatedly, but with a certain chance of random error – ‘mutation’ – in the copying. The computer examines the mutant nonsense phrases, the ‘progeny’ of the original phrase, and chooses the one which, however slightly most resembles the target phrase, METHINKS IT IS LIKE A WEASEL.”

35. My program mutates a genome and allows the mutations to accumulate. It beats random chance. I think that qualifies as cumulative selection.

36. Vanellus vindex: Your program does not even remotely resemble cumulative selection as found in nature.

It’s not meant to, and neither does Dawkins’ Weasel.

It’s meant to demonstrate the power of cumulative selection. If we wanted it to simulate nature we’d need to make significant changes, and the same is true of the Dawkins Weasel program.

Bu there’s no reason to even go there, since cumulative selection isn’t found only in nature.

37. Mung: It’s not meant to, and neither does Dawkins’ Weasel.

I disagree. The WEASEL program is a toy-model, sure, but at least Dawkins didn’t go out of his way making departures from the real thing for no discernible purpose. Your model is no simpler than Dawkins’, but it is much less realistic.
Also, as I’ve already explained to you, it hardly demonstrates the power of cumulative selection, since you’ve reduced the search space (by partitioning, as DNA_jock notes) to the point where brute force is not only a viable alternative, but more advantageous.
TL;DR: a bad model all round.

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