Ejemplo n.º 1
0
 public ProblemPerformanceAssessor(
     OptimiserBuilder builder,
     ProblemSingleObjective evaluator,
     Func <Population, bool> convergenceCheckers)
 {
     this.builder             = builder;
     this.evaluator           = evaluator;
     this.convergenceCheckers = convergenceCheckers;
 }
Ejemplo n.º 2
0
        /// <summary>
        /// Constructs the performance assessment class.
        /// </summary>
        /// <param name="optimiserDescription">A user-friendly description of the optimiser (perhaps its class name).</param>
        /// <param name="problem">The problem description.</param>
        /// <param name="results">The completed optimisation runner.</param>
        public ProblemPerformanceSingleObjective(
            string optimiserDescription,
            ProblemSingleObjective problem,
            OptimiserRunner results)
        {
            this.optimiserDescription = optimiserDescription;
            this.problem = problem;

            if (results.StartTime == null || results.BestFound == null || results.AllEvaluated == null)
            {
                throw new ArgumentNullException(nameof(results), "Optimisation has not been run.");
            }

            startRunTime = (DateTime)results.StartTime;
            bestFound    = results.BestFound;
            allEvaluated = results.AllEvaluated;

            GlobalOptimumSolution = problem.Evaluate(problem.GetGlobalOptimum()).ToArray();
        }