Esempio n. 1
0
 /// <summary>
 /// Constructs with the provided IActivationFunctionLibrary, NeatGenomeParameters and ID generators.
 /// </summary>
 public RbfGenomeFactory(int inputNeuronCount, int outputNeuronCount,
                         IActivationFunctionLibrary activationFnLibrary,
                         NeatGenomeParameters neatGenomeParams,
                         UInt32IdGenerator genomeIdGenerator, UInt32IdGenerator innovationIdGenerator)
     : base(inputNeuronCount, outputNeuronCount, activationFnLibrary, neatGenomeParams, genomeIdGenerator, innovationIdGenerator)
 {
 }
        /// <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;
        }
 /// <summary>
 /// Construct by assigning new IDs gemnerated by the provided UInt32IdGenerator.
 /// </summary>
 public AddedNeuronGeneStruct(UInt32IdGenerator idGenerator)
 {
     _addedNeuronId           = idGenerator.NextId;
     _addedInputConnectionId  = idGenerator.NextId;
     _addedOutputConnectionId = idGenerator.NextId;
 }