コード例 #1
0
 /// <summary>
 /// Copy constructor.
 /// </summary>
 public ConnectionMutationParameterGroupList(ConnectionMutationParameterGroupList copyFrom)
 {
     foreach (ConnectionMutationParameterGroup paramGroup in copyFrom)
     {
         Add(new ConnectionMutationParameterGroup(paramGroup));
     }
 }
コード例 #2
0
        /// <summary>
        /// Default Constructor.
        /// </summary>
        public NeatParameters()
        {
            histogramBins = new List <int>();

            noveltySearch    = false;
            noveltyHistogram = false;
            noveltyFixed     = false;
            noveltyFloat     = false;

            populationSize = DEFAULT_POPULATION_SIZE;
            pInitialPopulationInterconnections = DEFAULT_P_INITIAL_POPULATION_INTERCONNECTIONS;

            pOffspringAsexual   = DEFAULT_P_OFFSPRING_ASEXUAL;
            pOffspringSexual    = DEFAULT_P_OFFSPRING_SEXUAL;
            pInterspeciesMating = DEFAULT_P_INTERSPECIES_MATING;

            pDisjointExcessGenesRecombined = DEFAULT_P_DISJOINGEXCESSGENES_RECOMBINED;

            //----- High level mutation proportions
            pMutateConnectionWeights  = DEFAULT_P_MUTATE_CONNECTION_WEIGHTS;
            pMutateAddNode            = DEFAULT_P_MUTATE_ADD_NODE;
            pMutateAddModule          = DEFAULT_P_MUTATE_ADD_MODULE;
            pMutateAddConnection      = DEFAULT_P_MUTATE_ADD_CONNECTION;
            pMutateDeleteConnection   = DEFAULT_P_MUTATE_DELETE_CONNECTION;
            pMutateDeleteSimpleNeuron = DEFAULT_P_MUTATE_DELETE_SIMPLENEURON;

            //----- Build a default ConnectionMutationParameterGroupList.
            ConnectionMutationParameterGroupList = new ConnectionMutationParameterGroupList();
            ConnectionMutationParameterGroupList.Add(new ConnectionMutationParameterGroup(0.125, ConnectionPerturbationType.JiggleEven, ConnectionSelectionType.Proportional, 0.5, 0, 0.05, 0.0));
            ConnectionMutationParameterGroupList.Add(new ConnectionMutationParameterGroup(0.125, ConnectionPerturbationType.JiggleEven, ConnectionSelectionType.Proportional, 0.1, 0, 0.05, 0.0));
            ConnectionMutationParameterGroupList.Add(new ConnectionMutationParameterGroup(0.125, ConnectionPerturbationType.JiggleEven, ConnectionSelectionType.FixedQuantity, 0.0, 1, 0.05, 0.0));
            ConnectionMutationParameterGroupList.Add(new ConnectionMutationParameterGroup(0.5, ConnectionPerturbationType.Reset, ConnectionSelectionType.Proportional, 0.1, 0, 0.0, 0.0));
            ConnectionMutationParameterGroupList.Add(new ConnectionMutationParameterGroup(0.125, ConnectionPerturbationType.Reset, ConnectionSelectionType.FixedQuantity, 0.0, 1, 0.0, 0.0));

            //-----
            compatibilityThreshold        = DEFAULT_COMPATIBILITY_THRESHOLD;
            compatibilityDisjointCoeff    = DEFAULT_COMPATIBILITY_DISJOINT_COEFF;
            compatibilityExcessCoeff      = DEFAULT_COMPATIBILITY_EXCESS_COEFF;
            compatibilityWeightDeltaCoeff = DEFAULT_COMPATIBILITY_WEIGHTDELTA_COEFF;

            elitismProportion   = DEFAULT_ELITISM_PROPORTION;
            selectionProportion = DEFAULT_SELECTION_PROPORTION;

            targetSpeciesCountMin = DEFAULT_TARGET_SPECIES_COUNT_MIN;
            targetSpeciesCountMax = DEFAULT_TARGET_SPECIES_COUNT_MAX;

            pruningPhaseBeginComplexityThreshold         = DEFAULT_PRUNINGPHASE_BEGIN_COMPLEXITY_THRESHOLD;
            pruningPhaseBeginFitnessStagnationThreshold  = DEFAULT_PRUNINGPHASE_BEGIN_FITNESS_STAGNATION_THRESHOLD;
            pruningPhaseEndComplexityStagnationThreshold = DEFAULT_PRUNINGPHASE_END_COMPLEXITY_STAGNATION_THRESHOLD;

            speciesDropoffAge = DEFAULT_SPECIES_DROPOFF_AGE;

            connectionWeightRange = DEFAULT_CONNECTION_WEIGHT_RANGE;

            Dictionary <string, double> actFunDictionary = new Dictionary <string, double>(15);           // Add values in the MainLoop class
        }
コード例 #3
0
        /// <summary>
        /// Copy constructor.
        /// </summary>
        /// <param name="copyFrom"></param>
        public NeatParameters(NeatParameters copyFrom)
        {
            //joel
            noveltySearch    = copyFrom.noveltySearch;
            noveltyHistogram = copyFrom.noveltyHistogram;
            noveltyFixed     = copyFrom.noveltyFixed;
            noveltyFloat     = copyFrom.noveltyFloat;
            histogramBins    = copyFrom.histogramBins;

            populationSize = copyFrom.populationSize;

            pOffspringAsexual   = copyFrom.pOffspringAsexual;
            pOffspringSexual    = copyFrom.pOffspringSexual;
            pInterspeciesMating = copyFrom.pInterspeciesMating;

            pDisjointExcessGenesRecombined = copyFrom.pDisjointExcessGenesRecombined;

            pMutateConnectionWeights  = copyFrom.pMutateConnectionWeights;
            pMutateAddNode            = copyFrom.pMutateAddNode;
            pMutateAddModule          = copyFrom.pMutateAddModule;
            pMutateAddConnection      = copyFrom.pMutateAddConnection;
            pMutateDeleteConnection   = copyFrom.pMutateDeleteConnection;
            pMutateDeleteSimpleNeuron = copyFrom.pMutateDeleteSimpleNeuron;

            // Copy the list.
            ConnectionMutationParameterGroupList = new ConnectionMutationParameterGroupList(copyFrom.ConnectionMutationParameterGroupList);

            compatibilityThreshold        = copyFrom.compatibilityThreshold;
            compatibilityDisjointCoeff    = copyFrom.compatibilityDisjointCoeff;
            compatibilityExcessCoeff      = copyFrom.compatibilityExcessCoeff;
            compatibilityWeightDeltaCoeff = copyFrom.compatibilityWeightDeltaCoeff;

            elitismProportion   = copyFrom.elitismProportion;
            selectionProportion = copyFrom.selectionProportion;

            targetSpeciesCountMin = copyFrom.targetSpeciesCountMin;
            targetSpeciesCountMax = copyFrom.targetSpeciesCountMax;

            pruningPhaseBeginComplexityThreshold         = copyFrom.pruningPhaseBeginComplexityThreshold;
            pruningPhaseBeginFitnessStagnationThreshold  = copyFrom.pruningPhaseBeginFitnessStagnationThreshold;
            pruningPhaseEndComplexityStagnationThreshold = copyFrom.pruningPhaseEndComplexityStagnationThreshold;

            speciesDropoffAge = copyFrom.speciesDropoffAge;

            connectionWeightRange = copyFrom.connectionWeightRange;
        }