/// <summary> /// Constructs a NeatGenomeFactory with the provided NeatGenomeParameters and ID generators initialized to zero. /// </summary> public NeatGenomeFactory(int inputNeuronCount, int outputNeuronCount, NeatGenomeParameters neatGenomeParams) { _inputNeuronCount = inputNeuronCount; _outputNeuronCount = outputNeuronCount; _activationFnLibrary = DefaultActivationFunctionLibrary.CreateLibraryNeat(neatGenomeParams.ActivationFn); _neatGenomeParamsCurrent = neatGenomeParams; _neatGenomeParamsComplexifying = _neatGenomeParamsCurrent; _neatGenomeParamsSimplifying = NeatGenomeParameters.CreateSimplifyingParameters(_neatGenomeParamsComplexifying); _genomeIdGenerator = new UInt32IdGenerator(); _innovationIdGenerator = new UInt32IdGenerator(); }
/// <summary> /// Constructs with the provided IActivationFunctionLibrary, NeatGenomeParameters and /// ID Generators. /// This overload required for CPPN support. /// </summary> public NeatGenomeFactory(int inputNeuronCount, int outputNeuronCount, IActivationFunctionLibrary activationFnLibrary, NeatGenomeParameters neatGenomeParams, UInt32IdGenerator genomeIdGenerator, UInt32IdGenerator innovationIdGenerator) { _inputNeuronCount = inputNeuronCount; _outputNeuronCount = outputNeuronCount; _activationFnLibrary = activationFnLibrary; _neatGenomeParamsCurrent = neatGenomeParams; _neatGenomeParamsComplexifying = _neatGenomeParamsCurrent; _neatGenomeParamsSimplifying = NeatGenomeParameters.CreateSimplifyingParameters(_neatGenomeParamsComplexifying); _genomeIdGenerator = genomeIdGenerator; _innovationIdGenerator = innovationIdGenerator; }