Turncoat
Posts: 129 Joined: Dec. 2007
|
Quote (Wesley R. Elsberry @ Sep. 20 2009,16:49) | Quote (Zachriel @ Sep. 20 2009,14:44) | Quote (DiEb @ Sep. 20 2009,14:03) | 2: For his interview, Dawkins needed the program to run for ~ 2000 generations. This could be achieved by the combination (10 children, 4% mutation rate) But I suppose that Dawkins just fooled around a little bit with his program to get an optimal number of runs, i.e., the program was running during the length of his interview… |
Is that correct? Dawkins seems to be showing all the children, not just the parents. It's slower because it takes time to display on the antique system he's using. [...] |
I think the number 2485 comes up at the end of the video as the number of individuals. If that is the case, Dawkins likely did have to find fairly particular parameters in order to terminate in the short time of the video sequence, and the slow display system likely did have an impact on that. I think I posted some numbers here before on the likely parameter space the video run's parameters were taken from. |
In contrast, the mean number of trials for the simple hill-climber encoded in Weasel2 to reach the target is about 5800. The closer Weasel2 gets to the target, the greater the expected number of trials for an uphill step on the fitness landscape. The expected number of trials to reach the target is in the ballpark of 2485 only when 25 or 26 of the characters in the best-so-far sentence match the target.
1. Weasel2 never takes a downhill step.
2. Weasel2 mutates the character in just one position in each trial. If the character is already correct, the mutation cannot yield an uphill step. The probability of selecting an incorrect character for mutation is (28 - n) / 28, where n is the number of correct characters. The probability that mutation yields the correct character is 1 / 27. Thus the probability of an uphill step when n characters are correct is p = (28 - n) / 28 / 27.
3. The expected number of trials for an uphill step is 2 * (1 - p) / p. This is the mean of a random variable following a negative binomial distribution. See Wikipedia.
4. The number of correct characters in the randomly initialized sentence is binomially distributed with mean 28 * (1 / 27) = 1.037 and variance 28 * (1 / 27) * (1 - 1 / 27) = 0.999. That is, the mean and variance are both about 1, and 25 correct characters in the initial sentence (see above) would be about 24 standard deviations above the mean.
5. Here is code and example outputs for the Unix bc utility. The function f takes as its argument the number of correct characters in the initial parent, and returns the expected number of trials to reach the target. The "for" loop sums the expected numbers of trials for all the uphill steps required to maximize fitness. (The expectation of a sum of random quantities is the sum of the expectations.)
Code Sample | scale=25
define f(m) { auto p, n, t
t = 0
for (n = m; n < 28; n++) { p = (28 - n) / 28.0 / 27.0 t += 2 * (1 - p) / p }
return(t) }
f(27) 1510.0000000000000000000586656
f(26) 2264.0000000000000000000594216
f(25) 2766.0000000000000000000662760
f(0) 5881.8826109171485399780675527
f(1) 5829.8826109171485399780674987
f(2) 5775.8826109171485399780673643
f(3) 5719.7287647633023861319134600
(f(0)+f(1)+f(2)+f(3))/4.0 5801.8441493786870015165289689
|
I could go further with the analysis, but I don't see why I should. It is highly improbable that Weasel2 was at work in the BBC show.
-------------- I never give them hell. I just tell the truth about them, and they think it's hell. — Harry S Truman
|