Zachriel
Posts: 2723 Joined: Sep. 2006
|
The calculation of "working fitness" is seemingly broke. From Mendel's Accountant:
do i=1,total_offspring work_fitness(i) = work_fitness(i)/(randomnum(1) + 1.d-15) end do
We can test this by taking a series of fitnesses k from 1.001 to 2,
For k = 1 To 1000 Cells(k, "a") = 1+ k / 1000 Cells(k, "b") = Cells(k, "a") / Rnd Next k
This is a typical result:
9 Average 31 St.Dev. 362% Relative St.Dev. 1.04 Min 533 Max
The original distribution of k has a Relative St.Dev. of 19%. It's worse for fitnesses distributed between 0.5 and 1.5 or 0.5 and 1. (Just like the phylogenetic fitness, the calculation is not normalized. And why ÷Rnd^1? Why not ÷Rnd^½ or ÷Rnd^¾?) This single operation eliminates the vast majority of the signal from genetic or phylogenetic fitness.
A more reasonable calculation is Roulette Wheel selection.
I have a working version of Gregor's Bookkeeper. I'll post on that in the next few rotations.
- Fixed a problem.
--------------
You never step on the same tard twice—for it's not the same tard and you're not the same person.
|