/// <summary> /// Copy constructor. /// </summary> public ConnectionMutationParameterGroupList(ConnectionMutationParameterGroupList copyFrom) { foreach (ConnectionMutationParameterGroup paramGroup in copyFrom) { Add(new ConnectionMutationParameterGroup(paramGroup)); } }
/// <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 }
/// <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; }