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; }
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); }