Esempio n. 1
0
        public override void EvaluateSolutionQuality(ACO.Solution <double> solution)
        {
            double value = this._function.Calculate(solution.ToList().ToArray());

            if (_function.Type == OptimizationType.Maximization)
            {
                solution.Quality = value;
            }
            else
            {
                solution.Quality = 1.0 / (1 + value);
            }

            this.CurrentFitness = value;
        }
Esempio n. 2
0
        public override void EvaluateSolutionQuality(ACO.Solution <double> solution)
        {
            if (solution.Components.Count != this._problemSize)
            {
                return;
            }


            this._problem.SolutionQualityEvaluator.EvaluateSolutionQuality(solution);
            this.EvaluationCounter++;

            double fitness = ((OptimizationFunctionQualityEvaluator)this._problem.SolutionQualityEvaluator).Function.Calculate(solution.ToList().ToArray());

            this.CheckTerminationCondition(fitness);
        }