public MultiThreadedSolvingEnvironment(Problem problem, EnvironmentConfig environmentConfig, int numberOfThreads = 0)
        {
            if (problem == null)
            {
                throw new ArgumentNullException(nameof(problem));
            }

            if (environmentConfig == null)
            {
                throw new ArgumentNullException(nameof(problem));
            }

            if (numberOfThreads == 1)
            {
                throw new ArgumentException("Cannot be equal to 1", nameof(numberOfThreads));
            }

            this.problem           = problem;
            this.environmentConfig = environmentConfig;
            this.numberOfThreads   = numberOfThreads > 0 ? numberOfThreads : System.Environment.ProcessorCount;
        }
Beispiel #2
0
        public SimpleSolvingEnvironment(Problem problem,
                                        EnvironmentConfig environmentConfig, bool logFitnessImprovement = true)
        {
            if (problem == null)
            {
                throw new ArgumentNullException(nameof(problem));
            }

            if (environmentConfig == null)
            {
                throw new ArgumentNullException(nameof(environmentConfig));
            }

            this.computationTerminationManager = new ComputationTerminationManager(
                environmentConfig.MaxExecutionTimeMilliseconds,
                environmentConfig.MaxEpochs,
                environmentConfig.MaxEpochsWithoutFitnessImprovement);
            this.environmentConfig     = environmentConfig;
            this.problem               = problem;
            this.logFitnessImprovement = logFitnessImprovement;
        }
Beispiel #3
0
 internal SolverThread(Problem problem, EnvironmentConfig environmentConfig)
 {
     this.solvingEnvironment = new SimpleSolvingEnvironment(problem, environmentConfig, false);
     this.solvingEnvironment.OnFitnessImprovement += SolvingEnvironment_OnFitnessImprovement;
     this.thread = null;
 }
 private SolvingEnvironmentBuilder()
 {
     this.environmentConfig = new EnvironmentConfig();
 }