public void AdjustSpeciesScore()
{
foreach (ISpecies s in Population.Species)
{
// loop over all genomes and adjust scores as needed
foreach (IGenome member in s.Members)
{
double score = member.Score;
// apply a youth bonus
if (s.Age < Population.YoungBonusAgeThreshold)
{
score = Comparator.ApplyBonus(score,
Population.YoungScoreBonus);
}
// apply an old age penalty
if (s.Age > Population.OldAgeThreshold)
{
score = Comparator.ApplyPenalty(score,
Population.OldAgePenalty);
}
double adjustedScore = score/s.Members.Count;
member.AdjustedScore = adjustedScore;
}
}
}