Uncommon Descent Serving The Intelligent Design Community

Uncommon Descent Contest Question 10: Provide the Code for Dawkins’ WEASEL Program

Share
Facebook
Twitter
LinkedIn
Flipboard
Print
Email

Special invitation for Richard Dawkins – but any civil person is entitled to enter.

There’s been some discussion here and elsewhere whether the the recent IEEE article by Dembski and Marks correctly characterizes Richard Dawkins’ famous METHINKS IT IS LIKE A WEASEL program.

Does the program ratchet correct letters or does it let them vary? One is a partitioned or stair-step search, the other a more realistic evolutionary search. From The Blind Watchmaker, where Dawkins describes the program, its performance suggests that it could be either of these options (though he doesn’t say).

On the other hand, from a (video-run of the program , go to 6:15), it seems to be the latter.

It’s easy enough to settle this question: Make the code for the program public. Perhaps Richard Dawkins himself or his friends at RichardDawkins.net can finally provide this code (apparently a program written in BASIC).

The prize is a copy of either Stephen Meyer’s new Signature in the Cell or Richard Dawkins’ soon-to-be-out The Greatest Show on Earth.

Should the winner choose the latter, I will ask Dawkins’s publicist to mail the copy. Given that at his site, he calls himself “the most formidable intellect in public discourse,” I would assume that if he signs the copy, it will be worth millions.

But wait. Let’s see that code first.

Comments
PS: The search used for the printoffs I have given in earlier threads is the obvious one: the proximity reward search algorithm. And this is the one that is probably closest in concept to -- certainly thee 1987 algor, and with parameters co-tuned to give latching, probably the 1986 ones. PPS: An explicitly latched algor can also use a population of mutants in each generation and pick the closest to target, but that will make but little difference other than somewhat speeding up run to target. (Cases where a gen size of 1 is used are simplifications for convenience; but such should now be avoided as they will become targets for idea hit-man rhetoric.)kairosfocus
August 27, 2009
August
08
Aug
27
27
2009
06:06 AM
6
06
06
AM
PDT
kairosfocus#66
So, what we have to deal with is a minor (but instructive) bit of real-world scientific analysis, as I have documented here, months ago now. That is, we have to look at empirical evidence that is not complete — here, published showcased samples of runs of generational champions c 1986, and descriptions — and come up with a reasonable best explanation, using replication of results as a good cross-check, e.g through Atom’s adjustable Weasel, here.
No, that's not what we have to do. What we have to do is read Dawkins' very clear explanation of the Weasel algorithm as written in The Blind Watchmaker. Here it is:
So much for single-step selection of random variation. What about cumulative selection; how much more effective should this be? Very very much more effective, perhaps more so than we at first realize, although it is almost obvious when we reflect further. We again use our computer monkey, but with a crucial difference in its program. It again begins by choosing a random sequence of 28 letters, just as before: WDLMNLT DTJBKWIRZREZLMQCO P 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. In this instance the winning phrase of the next 'generation' happened to be: WDLTMNLT DTJBSWIRZREZLMQCO P Not an obvious improvement! But the procedure is repeated, again mutant 'progeny' are 'bred from' the phrase, and a new 'winner' is chosen. This goes on, generation after generation. After 10 generations, the phrase chosen for 'breeding' was: MDLDMNLS ITpSWHRZREZ MECS P After 20 generations it was: MELDINLS IT ISWPRKE Z WECSEL By now, the eye of faith fancies that it can see a resemblance to the target phrase. By 30 generations there can be no doubt: METHINGS IT ISWLIKE B WECSEL Generation 40 takes us to within one letter of the target: METHINKS IT IS LIKE I WEASEL And the target was finally reached in generation 43.
There is no rational reading of that description that could possibly suggest that letters are fixed in place once correct. All daughter strings are created by mutation of the parent and the mutation mechanism has no knowledge of the fitness of the resulting string. If you disagree, show how Dawkins' own words can be construed otherwise.DeLurker
August 27, 2009
August
08
Aug
27
27
2009
06:01 AM
6
06
01
AM
PDT
Indium: 1] You now concede that IMPLICIT latching works. Implicit latching is real. 2] You then attribute it -- in the face of the explicitly tagetted search based on reward of mere proximity of "nonsense phrases" to the target -- to "the power of random mutation + selection" 3] Onlookers, observe, not "NATURAL selection." A telling omission indeed. In short, Indium cannot bring her-/him-self to explicitly acknowledge that the selection in Weasel is artificial and intelligent based on active information, and is not parallel to what is said of natural selection. (CRD concedes this in some "fine print.") 4] Indium, had you simply bothered to read the always linked app 7, s/he would have seen that on the balance of evidence and in particular a reported claim by CRD c 2000, the best explanation is that the evident latching is IMPLICIT. 5] You then proceed to discuss irrelevancies. D & M use an illustration of what partitioning is, and provide an analysis that will apply to any march of generational champions that exhibits latching. That is, partitioning into the on-target and active search zones, however achieved, will have the same relevant mathematical characteristics. This I have already pointed out. 6] In short, the analysis in the paper is independent of the algorithm, so long as ratcheting action shows up. Partitioning is a cognate of ratcheting and associated latching in a targetted search. GEM of TKIkairosfocus
August 27, 2009
August
08
Aug
27
27
2009
06:00 AM
6
06
00
AM
PDT
kf, you are correct in that Weasel is a GA that exhibits latching behaviour, which can be achieved without any latching mechanism, for the reasons you outline in your point 17 and acknowledge when you say "samples do not revert because the generational champions preserve correct letters very strongly." (#3) Isn't it cool? You are also correct when you say (#23) " on p. 1055, they[D&M] simply describe, exemplify and analyse a partitioned search. " The ONLY issue in this particular round of Weasel Wars is that D&M mis-characterize Weasel, as described in TBW, and that this mischaracterization has been previously pointed out to them. It is obvious from the behavior of Weasel in TBW that it is NOT a partitioned search as described by D&M. A high school student can see this. Why then did the paper cite TBW as the source of the partitioned search?DNA_Jock
August 27, 2009
August
08
Aug
27
27
2009
06:00 AM
6
06
00
AM
PDT
38 HouseStreetRoom
LOLtsmith
August 27, 2009
August
08
Aug
27
27
2009
05:56 AM
5
05
56
AM
PDT
PS: Here is Simon Greenleaf, a founding father of the modern theory of evidence, on the error of the skeptic, which I have descriptively tagged, selective hyperskepticism: ____________________ >> [26] . . . It should be observed that the subject of inquiry [i.e. evidence relating to the credibility of the New Testament accounts, but also generally applicable to matters of fact on the balance of evidence] is a matter of fact, and not of abstract mathematical proof. The latter alone is susceptible of that high degree of proof, usually termed demonstration, which excludes the possibility of error . . . In the ordinary affairs of life we do not require nor expect demonstrative evidence, because it is inconsistent with the nature of matters of fact, and to insist on its production would be unreasonable and absurd . . . The error of the skeptic consists in pretending or supposing that there is a difference in the nature of things to be proved; and in demanding demonstrative evidence concerning things which are not susceptible of any other than moral evidence alone, and of which the utmost that can be said is, that there is no reasonable doubt about their truth . . . . [27] . . . . In proceeding to weigh the evidence of any proposition of fact, the previous question to be determined is, when may it be said to be proved? The answer to this question is furnished by another rule of municipal law, which may be thus stated: A proposition of fact is proved, when its truth is established by competent and satisfactory evidence. By competent evidence, is meant such as the nature of the thing to be proved requires; and by satisfactory evidence, is meant that amount of proof, which ordinarily satisfies an unprejudiced mind, beyond any reasonable doubt. . . . . If, therefore, the subject is a problem in mathematics, its truth is to be shown by the certainty of demonstrative evidence. But if it is a question of fact in human affairs, nothing more than moral evidence can be required, for this is the best evidence which, from the nature of the case, is attainable. Now as the facts, stated in Scripture History, are not of the former kind, but are cognizable by the senses, they may be said to be proved when they are established by that kind and degree of evidence which, as we have just observed, would, in the affairs of human life, satisfy the mind and conscience of a common man. [Testimony, Sections 26, 27, emphases added.] >> ____________________ Selective hyperskepticism reveals itself -- and simultaneously reduces itself to absurdity -- by the fact of inconsistency and unreasonableness in demand for evidence on matters of fact. In this case, no-one would even be pretending that the o/p of Weasel 1986 as showcased did not show a latched, ratcheting pattern and/or that both explicit and implicit latching has been demonstrated [with code accessible for inspection!], apart from other extraneous considerations that are irrelevant to the weight/balance of evidence sufficient to decide an ordinary, unprejudiced mind. Or, the man in the Clapham Bus Stop if you will.kairosfocus
August 27, 2009
August
08
Aug
27
27
2009
05:45 AM
5
05
45
AM
PDT
kf, the absence of reversing correct letters is easily explained by what you call implicit latching*, eg the power of random mutation + selection. This is exactly what was supposed to be demonstrated by Weasel and is verified by what you say in your point number 17. Non reversing letters are no proof of anything. Since this is the only argument for latching you have you really have no argument at all. Since you still evade some important issues it is probably a good idea to remind you of them: From Atoms software suite, which algorithm do you think is representative of Dawkins´ Weasel and which one corresponds to the algorithm used by D+M in their paper? Main differences between the Partitioned Search and Weasel: D+M don´t use a population, they don´t use selection. Weasel uses both. It has to, otherwise it would not work. A fundamental difference if I have ever seen one! * I hesitate to use your "implicit" smokescreen, because incorrect letters are not protected from mutations when generating the next population, so there is no latching at all, just a successfull evolutionary search.Indium
August 27, 2009
August
08
Aug
27
27
2009
05:21 AM
5
05
21
AM
PDT
Indium: Clearly you have a problem with evidence-based reasoning. Here is the showcased 1986 o/p|: ___________ >> 1 WDL*MNLT*DTJBKWIRZREZLMQCO*P 2? WDLTMNLT*DTJBSWIRZREZLMQCO*P 10 MDLDMNLS*ITJISWHRZREZ*MECS*P 20 MELDINLS*IT*ISWPRKE*Z*WECSEL 30 METHINGS*IT*ISWLIKE*B*WECSEL 40 METHINKS*IT*IS*LIKE*I*WEASEL 43 METHINKS*IT*IS*LIKE*A*WEASEL 1 Y*YVMQKZPFJXWVHGLAWFVCHQXYPY 10 Y*YVMQKSPFTXWSHLIKEFV*HQYSPY 20 YETHINKSPITXISHLIKEFA*WQYSEY 30 METHINKS*IT*ISSLIKE*A*WEFSEY 40 METHINKS*IT*ISBLIKE*A*WEASES 50 METHINKS*IT*ISJLIKE*A*WEASEO 60 METHINKS*IT*IS*LIKE*A*WEASEP 64 METHINKS*IT*IS*LIKE*A*WEASEL >> _______________ 1] Kindly find a case of reversion in the 200+ possible cases in the runs of champions above, where such could happen; or else discuss their absence cogently in light of the law of large numbers. 2] Kindly compare CRD's remarks on how the program cumulatively progresses to target (as already excerpted), demonstratin how reading the remarks as meaninfg what they say is not correct. Otherwise, you are simply "bravely" whistling by the graveyard in the dark; while the duppies leaning on the fence are looking on and shaking their heads. GEM of TKIkairosfocus
August 27, 2009
August
08
Aug
27
27
2009
05:09 AM
5
05
09
AM
PDT
kf, what you write boils down to "Just from the output we can´t decide if latching was used, but we will assume it was anyway. Without any proof or any mentioning of latching in the explanation if Weasel in the BW we will assume Dawkins lies and the video from 1987 is a different and more or less faked algorithm. We have to admit that the algorithm is good enough to preserve good letters, as a smokescreen we call that implicit latching.". The question is not if Weasel latches implicitly, we know that it does (for certain parameters) and that´s exactly the demonstration of cumulative selection. The question is wether Weasel latches explicitly or, put in another way, if it treats correct and incorrect letters differently during the mutaion routine. It doesn´t. It doesn´t need to. Dawkins said it doesn´t. A video that shows the algoritthm running with different parameters shows it doesn´t. Mutations are supposed to be independend of resulting fitness, so there would be no reason to let it latch. When it is decided which "gene" mutates, the algorithm does not know which letters are correct. The orakel, as D+M call it, does not return the exact correct letter indices, it just returns a total fitness value (as it should). From Atoms software suite, which algorithm do you think is representative of Dawkins´ Weasel and which one corresponds to the algorithm used by D+M in their paper? I further note that you still do not adress the fundamental differences: DM don´t use a population, they don´t use selection. Weasel uses both. It has to, otherwise it would not work. A fundamental difference if I have ever seen one!Indium
August 27, 2009
August
08
Aug
27
27
2009
04:41 AM
4
04
41
AM
PDT
PS: Atom's source code is available, through the linked GUI page, here.kairosfocus
August 27, 2009
August
08
Aug
27
27
2009
02:40 AM
2
02
40
AM
PDT
I don't really understand why it is so important to get Dawkin's original code - even if Dawkins never wrote any code, and just imagined up the algorithm, the fact that it has been reproduced by many different people and operates exactly according to his description would indicate that the idea behind it and the principles involved in it are correct. It's like not believing that aeroplanes exist until you see the original blueprints for the Wright Brother's aeroplane. It has been done, its been reproduced, it works. Atom's code at http://www.evoinfo.org/Resources/WeaselWare/WeaselGUI.html for the "proximity reward search" is a faithful reproduction of Dawkins code - there isn't any latching (run a few trials and occasionally you'll see a correct letter being dropped). What else do you need? Dawkins described an algorithm (without latching), and Atom and many others have programmed an algorithm that behaves exactly how he said it would. Even if the code didn't exist when Dawkins wrote his book, it does now, so the points he was making in regards to the search are valid. (note that the "partitioned search" is an incorrect model of Dawkin's search).Laughable
August 27, 2009
August
08
Aug
27
27
2009
02:12 AM
2
02
12
AM
PDT
Onlookers: First, the bottomline: after many months of exchanges, it is clear that --absent a near-miracle -- no credible Weasel code c 1986 [and yes, per CRD's statements in BW, the basic version ran across a lunchtime and the Pascal one did so in 11 seconds] will be forthcoming. So, what we have to deal with is a minor (but instructive) bit of real-world scientific analysis, as I have documented here, months ago now. That is, we have to look at empirical evidence that is not complete -- here, published showcased samples of runs of generational champions c 1986, and descriptions -- and come up with a reasonable best explanation, using replication of results as a good cross-check, e.g through Atom's adjustable Weasel, here. Also, it seems that the exchanges aptly model the patterns of contention and conflict that often happen at the cusp of scientific revolutions, as the old order reacts with cognitive dissonance -- and, often, rage and associated idea hit-man rhetorical tactics designed to restore the old order and defeat the new by "any means necessary" -- to that which threatens to overturn their comfortable world. Let us note: 1 --> The printoffs of sampled, showcased generational champions c 1986 show altogether 300+ letters, 200+ of which are of letters that were initially correct in the seed or which have subsequently gone correct. 2 --> IN EVERY INSTANCE WHERE A LETTER GOES CORRECT IN ANY ONE GENERATION, IT REMAINS SO IN ALL FURTHER SAMPLES UNTIL THE PROGRAM HITS THE FULL TARGET. 3 --> On law of large no's [the correct form of the layman's crude "law of averages"], that strongly supports the inference that the samples do not revert because the generational champions preserve correct letters very strongly. 4 --> Examination of Dawkins' remarks on the program (and Joseph and I are by now tired of the dozens of times we have had to point out what should be obvious facts of basic reading of direct statements in rather plain English] support that observation:
[Weasel] . . . begins by choosing a random sequence of 28 letters ... 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 . . . . What matters is the difference between the time taken by cumulative selection, and the time which the same computer, working flat out at the same rate, would take to reach the target phrase if it were forced to use the other procedure of single-step selection
5 --> Weasel is targetted search that rewards mere proximity of non-functional phrases through a process of random variation of a seed to create a population and artificial selection based on mere proximity to a set target. 6 --> Weasel's gain in performance over random search is therefore directly -- though inadvertently -- acknowledged to be due to ACTIVE INFORMATION. (Thus, the relevance of Dembski's and Marks' analysis.) 7 --> And, the failure to use realistic degree of functionality as a threshold of preservation -- note the dismissal of "single step selection" begs the question of first getting TO shores of function in large config spaces before climbing to peaks of performance. 8 --> In short, the root issue is being distracted from and misrepresented then dismissed. No wonder Weasel is "misleading." 9 --> However, we still have to explain the behaviour of the run of generational champions as evidenced by teh showcased samples c 1986. 10 --> CRD speaks of selecting slightest increments to target, which by virtue of the digital, alphanumeric character system, is one letter. 11 --> Similarly, he speaks of "cumulative selection." 12 --> Cumulative, as a word, means: "Increasing or enlarging by successive addition." The increment in question plainly being that of proximity to target, per the selection of the greatest relative advance to target for generational champions. 13 --> Thus, Weasel ratchets towards the target. Ratcheting, being:" To cause to increase or decrease by increments." (Implicit in that is the dogging action of a pawl, whereby progress is one-way.) 14 --> Thus also, a ratcheted advance latches progress so far. Latching being: "To close or lock with or as if with a latch." (In this case, correct letters of the generational champions in the showcased runs c 1986, credibly appear to latch.) 15 --> Such ratcheting-latching cumulative progress to target of course first and foremost is NOT a de novo creation of complex functional information. For, the information is preloaded through the presence of a target and a cumulative progressive mechanism that step by step advances to an already present target. 16 --> This latching action can be fairly simply achieved EXPLICITLY by using a masking filter:
a] say, let letter correct = 1, letter incorrect = 0. Then with perfect match we have 28 as a metric, and with perfect mismatch, we have 0. b] So, we compare members of the mutated population of a given generation with the target, assigning to each one a metric string, with 1's and 0's to match correct or incorrect letters. c] closest to target becomes new champion, and the 1's act as mask bits that block further mutation of correct letters. (After all, they are perfectly functional and would be preserved by "natural selection.") d] Each new generation will at least preserve what has been achieved and the march of generations will cumulatively ratchet their way to the target.
17 --> The result can also be achieved -- for "good runs" -- IMPLICITLY. In this case:
e] when population size and per letter mutation rate are set so that with very high probability there will be no change members of the population, and single changes will prevail otherwise, e.g. 4% rate, 50 - 100 member population seems a plausible set of parameters -- there will be a strong tendency to preserve progress to darte and/or to reward single step advances that do not corrupt already correct letters. f] with a suitable filter, the resulting trend will be to choose generational champions that are either the same or single step advances. g]the showcased 1986 runs hit target in 40+ and 60+ generations, supporting that about half the time, no-change was the generational champion. h] similarly, single step advances predominated the rest. i] but with other parameter values, various effects uch as substitutions of correct and incorrect letters, or reversions will occur. j] As already noted and linked, these patterns have been demonstrated through actual runs of Atom's adjustable Weasel, from EIL.
18 --> Under other circumstances, weasel will show quasi-latched behaviour with relatively rare reversions on correct letters [similar to how anglers who use baitcasters will know that a ratchet and pawl may begin to slip if the dog is worn]. 19 --> under yet other circumstances, far from latched behaviour will occur. 20 --> It has recetnly been suggested that the 1987 run is simply showing all members of population, and is in a condition where champions will show fairly frequent reversion. this can be accounted for by a case of a Weasel that is detuned sufficiently for that to happen. 21 --> But, the 1986 runs of champions -- here, taking into reckoning CRD's claim that he never wrote an explicitly latched weasel -- would very easily be explained as "good" runs of a tuned set of parameters, so that we see latching action. 22 --> Now also there has been much digital ink spilled over how Marks and Dembski in their recvent paper have distorted the weasel relative to CRD's program. 23 --> however, on p. 1055, they simply describe, exemplify and analyse a partitioned search. Whether such partitioning of runs of generational champions into the active search subset of the string and the locked in subset is achieved explicitly or implicitly makes no material difference tot he analysis of how many generations on average it takes to hit target or the associated probabilities associated with the injection of active information. 24 --> And, no, M & D do not provide an algorithm for a weasel, just an analysis of the sort of run of champions showcased in BW, 1986, that shows latched behaviour based on targeted search; to deduce the effect of active information by comparison with the yardstick, random walk search. 25 --> As CRD remarked in BW and as was cited above, targetted search's injection of active information makes a HUGE difference, one that M & D provide a quantitative analysis for and thence a metric of active information injected. 26 --> And the relevance of active information to Intelligent Design is that it gives us a mechanism for explaining the action and impact of intelligence. 27 --> Intelligent search works batter than random search [or a search algorithm picked at random from a large pool of diverse algorithms] because the active information coming from knowledge and creative imagination sharply restricts the scope of search to a zone much more likely to be close to success than a blind process. 28 --> Going back tot he flooded fitness function landscape model, we can also se that an intelligent search that is not successful can cotribute to success. (For, if the bottom of the sea of non-function slopes up towards the beach of function, partial success and trends of partial success can guide further intelligent search by sending warmer-colder signals and trends, i.e increments in active information through a beacon.) 29 --> In fact, Weasel is an inadvertent example of this! (Non-functional nonsense phrases progress to target through gradual warmer-colder signals emitted by an algorithm that has a distance to target/success metric.) ++++++++++++ Now, onlookers, let us observe and analyse how the Darwinist critics of the latching analysis respond to the above. GEM of TKIkairosfocus
August 27, 2009
August
08
Aug
27
27
2009
02:03 AM
2
02
03
AM
PDT
O'Leary:
But lots of cats here ARE computer whizzes, and will sure know if Dawkins is funnin’ them.
Ok, so a follow up question. Lets say Dawkins or anyone else posts some code, in the correct language, that produces the correct behaviour. If the code does not contain a latching mechanism, includes a population of more than one, and a mutation rate not fixed at 0 or 100, that applies to all letters ... Will the judges here conclude that it is the correct code, or will they cite these differences between it and Dembski and Mark's algorithm as evidence that it is a fake? I have a strong feeling that some here would.BillB
August 27, 2009
August
08
Aug
27
27
2009
01:02 AM
1
01
02
AM
PDT
Joseph:
Using the description of cumulative selection along with the illustration using the weasel program (both in TBW), the only inference is one of a ratcheting process. Otherwise he should have chosen a better term like “lost, found, lost, found again, then lost, and found again selection”
Or he could have use cumulative, as in cumulative height, cumulative wealth... If he wanted to describe a letter locking mechanism he could have just said that once a letter is found the search for it is over.BillB
August 27, 2009
August
08
Aug
27
27
2009
12:31 AM
12
12
31
AM
PDT
I don't understand why so many here are arguing against letting Dr Dawkins release his program. Or I should say "programS." Inspired by the many posts about this Weasel idea, I stopped at the library on my way home from work and picked up a copy of The Blind Watchmaker. It turns out that the Weasel program was written not only in Basic, but also in Pascal (see page 49). These would be fairly small programs, so it would not surprise me if Dr Dawkins printed them out when he first made them, as I used to do when programming in Fortan during that same time period. Finally, many thanks to kibitzer for advocating so strongly for the position of openness in these matters. You are not afraid to mix it up with people who don't share your views. I dare say you could not be advocating this position better if you were Dr Dembski himself. Now, let's see BOTH these original programs, to get to the bottom of these issues of demi-ratcheting, cumulative selection, and so forth.feebish
August 26, 2009
August
08
Aug
26
26
2009
11:54 PM
11
11
54
PM
PDT
denyse, kairosfocus and reader from riesel, are you aware that you're using the word "ratchet" instead of "latching"? Darwinian evolution does "ratchet" information into the DNA. It's been described that way by scientists for decades. It does this ratcheting through the simple technique of making many copies of successful DNA strings and letting natural selection get rid of any unsuccessful mutations to those strings - such as restoring a former incorrect letter. This is EXACTLY what happens in Dawkins' program or any other program that successfully mimics evolution. That is why Dawkins did not have to put any kind of latching into his program - the latching / ratcheting is inherent in Darwinian evolution and his program merely simulates one part of it. Spiny Norman: Dawkins wrote "Weasel" as a pedagogical tool to demonstrate how the cumulative selection that is used by Darwinian evolution is almost infinitely faster than the type of "all-at-once" selection that creationists and IDists typically use. (You know, where they calculate that it would take 20^100 tries to find a 100 amino acid length protein by chance or 4^150 tries to find a 150 base pair long stretch of DNA by chance.) Because it was a teaching tool, he selected a specific target for it to find rather than confuse the issue by cobbling together some sort of moving target. However, as I've written on this blog, if you re-write the program to look into an external file for the "target", you can change that target whenever you wish and the program will continue to find the new strings just as quickly as it finds the fixed "Methinks it is like a weasel".djmullen
August 26, 2009
August
08
Aug
26
26
2009
11:44 PM
11
11
44
PM
PDT
mike, I know why us "Darwinists" are so hung up with it: Because Dembski for some reason continues to misrepresent it. This fact is, btw, independend of the latching issue at hand. Dembski describes a partitioned search: No population, no selection, 100% mutation rate of incorrect letters. Dawkins describes a GA: He selects strings from a population using a fitness criterion. Incorrect letters have a biologically at least more or less realistic mutation rate <10%. Also, it is fun to see kf and others come up with rethoric herring oil soaked smokescreens like "implicit latching"!Indium
August 26, 2009
August
08
Aug
26
26
2009
11:05 PM
11
11
05
PM
PDT
OP, why is anyone hung up on Dawkin's weasle programs? It's ONLY purpose was to demonstrate stepwise build up of information. It's was not meant as complete analogy of evolution. As Dawkin's said in Blind Watchmaker: "Although the [WEASEL] model is useful for explaining the distinction between single-step selection and cumulative selection, it is misleading in important ways. One of these is that, in each generation of selective 'breeding', the mutant 'progeny' phrases were judged according to the criterion of resemblance to a distant ideal target, the phrase METHINKS IT IS LIKE A WEASEL. Life isn't like that. Evolution has no long-term goal. There is no long-distance target, no final perfection to serve as a criterion for selection, although human vanity cherishes the absurd notion that our species is the final goal of evolution. In real life, the criterion for selection is always short-term, either simple survival or, more generally, reproductive success."mike1962
August 26, 2009
August
08
Aug
26
26
2009
08:07 PM
8
08
07
PM
PDT
This comment system doesn't seem to know how to handle greater-than / less-than characters, so let's try encoding them. You can also email me, and I'll be happy to provide this as a text file: ;;;;;;;;;;;;;;;; (defparameter target-string "methinks it is like a weasel") (defparameter population-size 10000) (defparameter p-mutation 0.001) (defun count-matches (x y) (length (loop for n from 0 to (1- (length x)) when (eql (aref x n) (aref y n)) collect n))) (defun copy-mutate (x mutation) (let ((cp (make-string (length x)))) (loop for n from 0 to (1- (length x)) do (setf (aref cp n) (if (< (random 1.0) mutation) (code-char (+ 32 (random 95))) (aref x n)))) cp)) (defun best-match (x pop-size mutation target) (let (child new-score (score 0)) (loop for n from 1 to pop-size do (when (> (setf new-score (count-matches (setf child (copy-mutate x mutation)) target)) score) (format *standard-output* " Best match so far (this generation) == ~D : |~D|~%" new-score child) (setf x child score new-score))) (cons x score))) (defun random-string (len) (let ((str (make-string len))) (loop for n from 1 to (1- len) do (setf (aref str n) (code-char (+ 32 (random 95))))) str)) (defun weasel (&key (target target-string) (pop-size population-size) (mutation p-mutation)) (format *standard-output* "Population size: ~D~%P(Mutation): ~D~%Target: |~D|~%" pop-size mutation target) (let (gen matches (gen-count 0) (leader (random-string (length target)))) (format *standard-output* "Initial (random) string: |~D|~%" leader) (setf matches (count-matches target leader)) (loop while (< matches (length target)) do (setf gen (best-match leader pop-size mutation target)) (setf leader (car gen) matches (cdr gen)) (format *standard-output* "Best generation ~D match == ~D : |~D|~%" (incf gen-count) matches leader))))random coder
August 26, 2009
August
08
Aug
26
26
2009
07:50 PM
7
07
50
PM
PDT
Any semi-competent programmer can implement Dawkin's weasel algorithm. Here's my version in Common Lisp - the language God used to create the universe - I'm pretty sure it behaves the same as Dawkins' original. I used SBCL to run it, but any Common Lisp implementation should do. Note that in this version, you can make the target string be anything you want, just change it in the first defparameter. You can also change the mutation rate & population size to see how they affect the evolution of the string. Note that the copy-mutate function has no knowledge of the target string. ;;;;;;;;;;;;;;;; (defparameter target-string "methinks it is like a weasel") (defparameter population-size 10000) (defparameter p-mutation 0.001) (defun count-matches (x y) (length (loop for n from 0 to (1- (length x)) when (eql (aref x n) (aref y n)) collect n))) (defun copy-mutate (x mutation) (let ((cp (make-string (length x)))) (loop for n from 0 to (1- (length x)) do (setf (aref cp n) (if ( (setf new-score (count-matches (setf child (copy-mutate x mutation)) target)) score) (format *standard-output* " Best match so far (this generation) == ~D : |~D|~%" new-score child) (setf x child score new-score))) (cons x score))) (defun random-string (len) (let ((str (make-string len))) (loop for n from 1 to (1- len) do (setf (aref str n) (code-char (+ 32 (random 95))))) str)) (defun weasel (&key (target target-string) (pop-size population-size) (mutation p-mutation)) (format *standard-output* "Population size: ~D~%P(Mutation): ~D~%Target: |~D|~%" pop-size mutation target) (let (gen matches (gen-count 0) (leader (random-string (length target)))) (format *standard-output* "Initial (random) string: |~D|~%" leader) (setf matches (count-matches target leader)) (loop while (< matches (length target)) do (setf gen (best-match leader pop-size mutation target)) (setf leader (car gen) matches (cdr gen)) (format *standard-output* "Best generation ~D match == ~D : |~D|~%" (incf gen-count) matches leader))))random coder
August 26, 2009
August
08
Aug
26
26
2009
07:29 PM
7
07
29
PM
PDT
Joseph#50
Using the description of cumulative selection along with the illustration using the weasel program (both in TBW), the only inference is one of a ratcheting process.
Like kibitzer and kairosfocus, you are not addressing the full description of the Weasel algorithm as clearly and cogently explained by Dawkins in The Blind Watchmaker. Picking one term ("cumulative selection") out of a two page explanation is unconvincing in the extreme. Please refer to http://www.softwarematters.org/more-weasel.html for an example of how to go through the details of the Weasel algorithm step by step to create an implementation. There is no way that I can see to come to the conclusion that the mutation operator has any knowledge of the target string. If you can logically defend that proposition, please do so.DeLurker
August 26, 2009
August
08
Aug
26
26
2009
07:02 PM
7
07
02
PM
PDT
kairosfocus:
Now, in 1987, the video runs most definiteoly do not have the latching action that is credible for 1986. This is suggestive of detuning of parameters and possibly a different filter.
Keeping in mind that the video shows all candidates, not just the winners, do you see any correct letters being lost from one generation to the next? How can you tell?R0b
August 26, 2009
August
08
Aug
26
26
2009
06:18 PM
6
06
18
PM
PDT
Joseph,
Also the program is evidence for ID as ID can be reduced to nothing more than a targeted search- along with the resources required to reach that target.
This makes no sense. Is Guitar Hero also evidence for ID?yakky d
August 26, 2009
August
08
Aug
26
26
2009
05:37 PM
5
05
37
PM
PDT
I guess I have to be counted among the group that wonders why having the original code is so important. Both latching and non-latching algorithms can be coded, the various parameters (such as mutation rate) set, and the algorithms analyzed. As a historical note, there is code that I wrote 20+ years ago that I no longer have, but wish I did. Neither the listings, nor the punch tape, survived. IMO, this is much ado about nothing. Is there something I didn't understand?wrf3
August 26, 2009
August
08
Aug
26
26
2009
05:18 PM
5
05
18
PM
PDT
Also the program is evidence for ID as ID can be reduced to nothing more than a targeted search- along with the resources required to reach that target.Joseph
August 26, 2009
August
08
Aug
26
26
2009
05:17 PM
5
05
17
PM
PDT
DeLurker:
“Please read the full description of the Weasel algorithm in TBW and explain how anyone could come to the conclusion that letters are fixed once correct.”
Using the description of cumulative selection along with the illustration using the weasel program (both in TBW), the only inference is one of a ratcheting process. Otherwise he should have chosen a better term like "lost, found, lost, found again, then lost, and found again selection" Or "back and forth selection". Or the "whatever bloody survives selection". Or better yet "badda-bing, badda-boom selection". But that wouldn't have misled the populace into thinking the blind watchmaker is something that "he" isn't.Joseph
August 26, 2009
August
08
Aug
26
26
2009
05:13 PM
5
05
13
PM
PDT
As a programmer, I can tell you that Dawkins' weasel algorithm is useless as an argument for evolution. It is just a trick to impress fools because it assumes an end goal. Intelligent design is written all over it. Darwinian evolution, on the other end, has no end goal. It is dead on arrival.Mapou
August 26, 2009
August
08
Aug
26
26
2009
04:35 PM
4
04
35
PM
PDT
BillB at 40: No use asking me. Everything I know about computers, I learned from WordPerfect 5.0 20 years ago, and have since updated to WordPerfect 12. But lots of cats here ARE computer whizzes, and will sure know if Dawkins is funnin' them. You may wish to consider pasting Dawkins's original code onto a Web page, in case you have problems with length restrictions or other problems in our combox. Ours is a good system but was not intended to accommodate long strings of code, so I can't answer for what will happen if you try to do it that way.O'Leary
August 26, 2009
August
08
Aug
26
26
2009
03:55 PM
3
03
55
PM
PDT
The amazing thing is that all agree that the WEASEL program is meaningless for anything and the concept of cumulative selection is meaningless in the scheme of evolution other than the trivial. But here we are debating this nonsense like the fate of the world depended on it. For one reason only. Whether Bill Dembski interpreted the original code correctly. There is this intense obsession by the anti ID people to impugn Bill Dembski in any way they can but in the process they end up revealing how intellectually barren they are. The anti ID people essentially admit they have nothing of substance to say. So have at it with these feeble complaints. Every comment just makes it easier for the pro ID people.jerry
August 26, 2009
August
08
Aug
26
26
2009
03:39 PM
3
03
39
PM
PDT
kibitzer#45 Let's try this instead (from my #20): "Please read the full description of the Weasel algorithm in TBW and explain how anyone could come to the conclusion that letters are fixed once correct." You have yet to address this core issue.DeLurker
August 26, 2009
August
08
Aug
26
26
2009
03:17 PM
3
03
17
PM
PDT
1 9 10 11 12 13

Leave a Reply