public Evaluator(INeatConfiguration neatConfiguration, IGenesisGenomeProvider genomeProvider, IInnovationPointGenerator nodeInnovationGenerator, IInnovationPointGenerator connectionInnovationGenerator, IMutation addConnectionMutation, IMutation addNodeMutation, IMutation weightMutation, ICrossFunctionStrategy crossFunctionStrategy, IRandom random) { _neatConfiguration = neatConfiguration; _nodeInnovationGenerator = nodeInnovationGenerator; _connectionInnovationGenerator = connectionInnovationGenerator; _addConnectionMutation = addConnectionMutation; _addNodeMutation = addNodeMutation; _weightMutation = weightMutation; _crossFunctionStrategy = crossFunctionStrategy; _random = random; _genomes = Enumerable.Repeat(genomeProvider.GenerateGenesisGenome(), neatConfiguration.PopulationSize).ToList(); _evaluatedGenomes = new List <FitnessGenome>(); _nextGeneration = new List <Genome>(); _lastGenerationResults = new List <FitnessGenome>(); }
public NeatCrossFunction(IRandom random, INeatConfiguration configuration) { _random = random; _disabledGeneInheritingChance = configuration.DisabledGeneInheritingChance; }
public AddConnectionMutation(IInnovationPointGenerator connectionInnovator, IRandom random, INeatConfiguration configuration) : this(connectionInnovator, random, configuration.PerturbingRate, configuration.MaxAttemptsAtFindingConnections) { }
public ApplyWeightMutation(IRandom random, INeatConfiguration configuration) { _random = random; _probabilityPerturbing = configuration.PerturbingRate; }
public WeightOfAHundred(INeatConfiguration neatConfiguration, IGenesisGenomeProvider genomeProvider, IInnovationPointGenerator nodeInnovationGenerator, IInnovationPointGenerator connectionInnovationGenerator, IMutation addConnectionMutation, IMutation addNodeMutation, IMutation weightMutation, ICrossFunctionStrategy crossFunctionStrategy, IRandom random) : base(neatConfiguration, genomeProvider, nodeInnovationGenerator, connectionInnovationGenerator, addConnectionMutation, addNodeMutation, weightMutation, crossFunctionStrategy, random) { }
public XORNNEvaluator(INeatConfiguration neatConfiguration, IGenesisGenomeProvider genomeProvider, IInnovationPointGenerator nodeInnovationGenerator, IInnovationPointGenerator connectionInnovationGenerator, IMutation addConnectionMutation, IMutation addNodeMutation, IMutation weightMutation, ICrossFunctionStrategy crossFunctionStrategy, IRandom random, ProblemDomain problemDomain) : base(neatConfiguration, genomeProvider, nodeInnovationGenerator, connectionInnovationGenerator, addConnectionMutation, addNodeMutation, weightMutation, crossFunctionStrategy, random) { _problemDomain = problemDomain; }