/// <summary> /// Creates parameters suitable for use during the simplifying mode of a NEAT search. Addition /// mutations are disabled, deletion and weight mutation rates are increased. /// </summary> public static NeatGenomeParameters CreateSimplifyingParameters(NeatGenomeParameters copyFrom) { NeatGenomeParameters newParams = new NeatGenomeParameters(copyFrom); newParams._connectionWeightMutationProbability = 0.6; newParams._addNodeMutationProbability = 0.0; newParams._addConnectionMutationProbability = 0.0; newParams._nodeAuxStateMutationProbability = copyFrom._nodeAuxStateMutationProbability; newParams._deleteConnectionMutationProbability = 0.4; newParams._rouletteWheelLayout = newParams.CreateRouletteWheelLayout(); newParams._rouletteWheelLayoutNonDestructive = newParams.CreateRouletteWheelLayout_NonDestructive(); newParams._connectionMutationInfoList = new ConnectionMutationInfoList(copyFrom._connectionMutationInfoList); newParams._connectionMutationInfoList.Initialize(); return(newParams); }
/// <summary> /// Creates parameters suitable for use during the simplifying mode of a NEAT search. Addition /// mutations are disabled, deletion and weight mutation rates are increased. /// </summary> public static NeatGenomeParameters CreateSimplifyingParameters(NeatGenomeParameters copyFrom) { NeatGenomeParameters newParams = new NeatGenomeParameters(copyFrom); newParams._connectionWeightMutationProbability = 0.6; newParams._addNodeMutationProbability = 0.0; newParams._addConnectionMutationProbability = 0.0; // TODO: better method for automatically generating simplifying parameters? newParams._nodeAuxStateMutationProbability = copyFrom._nodeAuxStateMutationProbability; newParams._deleteConnectionMutationProbability = 0.4; newParams._rouletteWheelLayout = newParams.CreateRouletteWheelLayout(); newParams._rouletteWheelLayoutNonDestructive = newParams.CreateRouletteWheelLayout_NonDestructive(); newParams._connectionMutationInfoList = new ConnectionMutationInfoList(copyFrom._connectionMutationInfoList); // SharpNEAT version 1.x used this scheme. // newParams._connectionMutationInfoList.Add(new ConnectionMutationInfo(0.333, ConnectionPerturbanceType.JiggleUniform, ConnectionSelectionType.Proportional, 0.3, 0, 0.05, 0.0)); // newParams._connectionMutationInfoList.Add(new ConnectionMutationInfo(0.333, ConnectionPerturbanceType.JiggleUniform, ConnectionSelectionType.Proportional, 0.1, 0, 0.05, 0.0)); // newParams._connectionMutationInfoList.Add(new ConnectionMutationInfo(0.333, ConnectionPerturbanceType.JiggleUniform, ConnectionSelectionType.Proportional, 0.01, 0, 0.05, 0.0)); newParams._connectionMutationInfoList.Initialize(); return(newParams); }
/// <summary> /// Creates parameters suitable for use during the simplifying mode of a NEAT search. Addition /// mutations are disabled, deletion and weight mutation rates are increased. /// </summary> public static NeatGenomeParameters CreateSimplifyingParameters(NeatGenomeParameters copyFrom) { NeatGenomeParameters newParams = new NeatGenomeParameters(copyFrom); newParams._connectionWeightMutationProbability = 0.6; newParams._addNodeMutationProbability = 0.0; newParams._addConnectionMutationProbability = 0.0; // TODO: better method for automatically generating simplifying parameters? newParams._nodeAuxStateMutationProbability = copyFrom._nodeAuxStateMutationProbability; newParams._deleteConnectionMutationProbability = 0.4; newParams._rouletteWheelLayout = newParams.CreateRouletteWheelLayout(); newParams._rouletteWheelLayoutNonDestructive = newParams.CreateRouletteWheelLayout_NonDestructive(); newParams._connectionMutationInfoList = new ConnectionMutationInfoList(copyFrom._connectionMutationInfoList); // SharpNEAT version 1.x used this scheme. // newParams._connectionMutationInfoList.Add(new ConnectionMutationInfo(0.333, ConnectionPerturbanceType.JiggleUniform, ConnectionSelectionType.Proportional, 0.3, 0, 0.05, 0.0)); // newParams._connectionMutationInfoList.Add(new ConnectionMutationInfo(0.333, ConnectionPerturbanceType.JiggleUniform, ConnectionSelectionType.Proportional, 0.1, 0, 0.05, 0.0)); // newParams._connectionMutationInfoList.Add(new ConnectionMutationInfo(0.333, ConnectionPerturbanceType.JiggleUniform, ConnectionSelectionType.Proportional, 0.01, 0, 0.05, 0.0)); newParams._connectionMutationInfoList.Initialize(); return newParams; }