Exemple #1
0
        /// <summary>Evaluates the current population and updates their fitness values.</summary>
        /// <remarks>
        /// Evaluates the current population and updates their fitness values. This
        /// method may be overridden by subclasses to customize GA behavior.
        /// </remarks>
        protected internal virtual void Evaluate()
        {
            double totalFitness = 0;

            _bestMeanFitness = float.MaxValue;
            for (int n = 0; n < _populations[_currentPopulation].Length; n++)
            {
                GAIndividual i = _populations[_currentPopulation][n];
                EvaluateIndividual(i);
                totalFitness += i.GetFitness();
                if (i.GetFitness() < _bestMeanFitness)
                {
                    _bestMeanFitness = i.GetFitness();
                    _bestIndividual  = n;
                    _bestErrors      = i.GetErrors();
                }
            }
            _populationMeanFitness = totalFitness / _populations[_currentPopulation].Length;
        }
Exemple #2
0
        protected internal override void Evaluate()
        {
            float totalFitness = 0;

            _bestMeanFitness = float.MaxValue;
            for (int n = 0; n < _populations[_currentPopulation].Length; n++)
            {
                GAIndividual i = _populations[_currentPopulation][n];
                EvaluateIndividual(i);
                totalFitness += i.GetFitness();
                // fitness is minimized.
                if (i.GetFitness() < _bestMeanFitness)
                {
                    _bestMeanFitness = i.GetFitness();
                    _bestIndividual  = n;
                    _bestSize        = ((PushGPIndividual)i)._program.ProgramSize();
                    _bestErrors      = i.GetErrors();
                }
            }
            _populationMeanFitness = totalFitness / _populations[_currentPopulation].Length;
        }