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.
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).
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.
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.
Mung:
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.
LoL. Halting is the opposite of making progress. So no.
Progress. Is that required for cumulative selection?
Mung:
keiths:
Mung:
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.
keiths,
I’d be miffed too if my fishing trip was a bust.
And you’d be even miffeder if the last one had been a bust, too.
Learning is hard.
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.
It’s amazing, really. Such a simple question. Why so much obfuscation?
Let’s go back to some basics.
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.
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.
Mung,
To be clear Mung, he gave you code. One could not hope for more clarity.
Mung,
That’s exactly what you’ve been trying to do:
Jesus, Mung. We’re not as stupid as your audience at UD.
Mung,
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.
Mung,
No, you’re questioning whether it actually does:
Mung:
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.
The ‘I know it works but it’s not real’ defense ?
Mung:
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
Pay attention, Mung.
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.
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?
Great. From now on I shall speak to you in code.
freep dop tilbush nodgrats.
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 …
Mung,
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?
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.
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’.
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?
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?
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.
Please.
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?
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.
Mung,
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.
Yeah, go for it Mung. Word gaming is always such fun!
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!
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.
Mung,
The program could sound a bell and then carry on chugging away …
Mung,
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.
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…
DNA_Jock,
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.
Mung,
Address the post, not the poster.
You should put this in a letter to Nature, I’m sure they’d be keen to hear such refined and erudite arguments.
OMagain,
Or National Lampoon. I think they are of similar journalistic quality.
Wow. Just wow.
Heh. Sure. It’s a giant conspiracy really.
OMagain,
Isn’t that what you all claim about people who believe in ID?
Mung,
If you truly want to understand Weasel and cumulative selection, then make an effort to learn about them.
My suggestion, again:
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.
Not. Even. Wrong.
What do you think about ID publications?
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.”
My program mutates a genome and allows the mutations to accumulate. It beats random chance. I think that qualifies as cumulative selection.
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.
Moved a post to guano.
Mung, I’m really not sure what you are asking that hasn’t been answered. Can you explain your point?
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.