/// <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; }
/// <summary> /// Compare this IGenome with the provided one. They are compatibile if their calculated difference /// is below the current threshold specified by NeatParameters.compatibilityThreshold /// </summary> /// <param name="comparisonGenome"></param> /// <param name="neatParameters"></param> /// <returns></returns> abstract public bool IsCompatibleWithGenome(IGenome comparisonGenome, NeatParameters neatParameters);