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);
        }
示例#2
0
 public SimpleComparison(EOptimizationMode optimizationMode = EOptimizationMode.Maximize)
 {
     OptimizationMode = optimizationMode;
     _fitnessFunction ??= new TFitnessFunctionFactory().Make();
 }