public virtual double GetAverageImprovement(int startIndex, uint generations, EOptimizationMode optimizationMode = EOptimizationMode.Maximize) { if (startIndex + generations > History.Length) { throw new ArgumentException("History too short to calculate such statistic"); } double sum = 0; for (var i = startIndex; i < startIndex + generations; i++) { sum += History[i] * (optimizationMode == EOptimizationMode.Minimize ? -1 : 1); } sum /= generations; return(sum); }
public SimpleComparison(EOptimizationMode optimizationMode = EOptimizationMode.Maximize) { OptimizationMode = optimizationMode; _fitnessFunction ??= new TFitnessFunctionFactory().Make(); }