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