dvunkannon
Posts: 1377 Joined: June 2008
|
Quote (Zachriel @ June 25 2009,09:41) | 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. |
I assume you mean the scaling of fitness by total population fitness used in routlette selection, correct?
I'm not following the dissection of MA, is work_fitness being used to drive a selection algorithm? If so, the division by rnd() is equivalent to assuming that all selection takes place after a night of drinking heavily.
Roulette selection assumes that details don't matter - of several equally snappily dressed men at the bar, the one with the clean fingernails will not be selected much more frequently than the rest with dirty fingernails. Is this "realistic"? What does MA assume about sexual selection?
A lot of GAs use tournament selection to maintain a more constant selection pressure. I think you could argue that tournament selection models some part of the sexual selection process.
ETA - or give users a choice of selection algorithm.
-------------- I’m referring to evolution, not changes in allele frequencies. - Cornelius Hunter
I’m not an evolutionist, I’m a change in allele frequentist! - Nakashima
|