public GeneticLearner(int populationSize, int selectionSize, IModelInitializer modelInitializer, IModelExecuter modelExecuter, IPopulationBreeder populationBreeder, ThreadSafeRandom random) { this.populationSize = populationSize; this.selectionSize = selectionSize; this.modelInitializer = modelInitializer; this.modelExecuter = modelExecuter; this.populationBreeder = populationBreeder; this.random = random; populationCostLocks = new object[populationSize].Select(o => new object()).ToArray(); population = new CostModel <FullyConnectedNeuralNetworkModel> [populationSize]; }
public void TestInitialize() { random = new ThreadSafeRandom(); modelInitializer = new FullyConnectedNeuralNetworkInitializer(random); sigmoidActivationFunction = new SigmoidActivationFunction(); modelExecuter = new FullyConnectedNeuralNetworkExecuter(sigmoidActivationFunction); modelBreeder = new GeneticModelBreeder(modelInitializer, random); populationBreeder = new PolygamousPopulationBreeder(modelBreeder, random); sut = new GeneticLearner(populationSize, selectionSize, modelInitializer, modelExecuter, populationBreeder, random); }