private void RankPopulation() { m_totalFitness = 0; for (int i = 0; i < m_populationSize; i++) { Genome g = ((Genome)m_thisGeneration[i]); g.Fitness = FitnessFunction(g.Genes()); m_totalFitness += g.Fitness; /// /// } m_thisGeneration.Sort(new GenomeComparer()); int fitness = 0; m_fitnessTable.Clear(); if (ellit != null && m_elitism && ((Genome)m_thisGeneration[m_populationSize - 1]).Fitness < ellit.Fitness) { m_thisGeneration[m_populationSize - 1] = ellit; } for (int i = 0; i < m_populationSize; i++) { fitness += ((Genome)m_thisGeneration[i]).Fitness; m_fitnessTable.Add(fitness); } }
/// <summary> /// Rank population and sort in order of fitness. /// </summary> private void RankPopulation() { m_totalFitness = 0; for (int i = 0; i < m_populationSize; i++) { Genome g = ((Genome)m_thisGeneration[i]); g.Fitness = FitnessFunction(g.Genes()); m_totalFitness += g.Fitness; } m_thisGeneration.Sort(new GenomeComparer()); // now sorted in order of fitness. double fitness = 0.0; m_fitnessTable.Clear(); for (int i = 0; i < m_populationSize; i++) { fitness += ((Genome)m_thisGeneration[i]).Fitness; m_fitnessTable.Add((double)fitness); } }