Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //Configuration file for the experiments used to evolve metamorphic animats
- //The file accompanies the ECAL 2015 paper "From tadpole to frog: artificial metamorphosis as a method of evolving self-reconfiguring robots" by Michal Joachimczak, Reiji Suzuki, Takaya Arita
- //This file is read by the MultiNEAT library available at: http://multineat.com/
- //We used git revision d361660 acquired at 30.10.2013
- //Please contact Michal Joachimczak mjoach@gmail.com for questions and software package that evolves metamorphic individuals
- NEAT_ParametersStart
- ////////////////////
- // Basic parameters
- ////////////////////
- // Size of population
- PopulationSize 300
- // If true, this enables dynamic compatibility thresholding
- // It will keep the number of species between MinSpecies and MaxSpecies
- DynamicCompatibility true
- // Minimum number of species
- MinSpecies 5
- // Maximum number of species
- MaxSpecies 30
- // Don't wipe the innovation database each generation?
- InnovationsForever true
- ////////////////////////////////
- // GA Parameters
- ////////////////////////////////
- // Age treshold, meaning if a species is below it, it is considered young
- YoungAgeTreshold 5
- // Fitness boost multiplier for young species (1.0 means no boost)
- // Make sure it is > 1.0 to avoid confusion
- YoungAgeFitnessBoost 1.1
- // Number of generations without improvement (stagnation) allowed for a species
- SpeciesDropoffAge 50
- // Minimum jump in fitness necessary to be considered as improvement.
- // Setting this value to 0.0 makes the system to behave like regular NEAT.
- StagnationDelta 0.0
- // Age threshold, meaning if a species is above it, it is considered old
- OldAgeTreshold 30
- // Multiplier that penalizes old species.
- // Make sure it is < 1.0 to avoid confusion.
- OldAgePenalty 1.0
- // Detect competetive coevolution stagnation
- // This kills the worst species of age >N (each X generations)
- DetectCompetetiveCoevolutionStagnation false
- // Each X generation..
- KillWorstSpeciesEach 15
- // Of age above..
- KillWorstAge 10
- // Percent of best individuals that are allowed to reproduce. 1.0 100%
- SurvivalRate 0.25
- // Probability for a baby to result from sexual reproduction (crossover/mating). 1.0 100%
- // If asexual reprodiction is chosen, the baby will be mutated 100%
- CrossoverRate 0.75
- // If a baby results from sexual reproduction, this probability determines if mutation will
- // be performed after crossover. 1.0 100% (always mutate after crossover)
- OverallMutationRate 0.25
- // Probability for a baby to result from inter-species mating.
- InterspeciesCrossoverRate 0.0001
- // Probability for a baby to result from Multipoint Crossover when mating. 1.0 100%
- // The default is the Average mating.
- MultipointCrossoverRate 0.75
- // Performing roulette wheel selection or not?
- RouletteWheelSelection false
- ///////////////////////////////////
- // Phased Search parameters //
- ///////////////////////////////////
- // Using phased search or not
- PhasedSearching true
- // Using delta coding or not
- DeltaCoding true
- // What is the MPC + base MPC needed to begin simplifying phase
- SimplifyingPhaseMPCTreshold 20
- // How many generations of global stagnation should have passed to enter simplifying phase
- SimplifyingPhaseStagnationTreshold 30
- // How many generations of MPC stagnation are needed to turn back on complexifying
- ComplexityFloorGenerations 40
- /////////////////////////////////////
- // Novelty Search parameters //
- /////////////////////////////////////
- // the K constant
- NoveltySearch_K 15
- // Sparseness treshold. Add to the archive if above
- NoveltySearch_P_min 0.5
- // Dynamic Pmin?
- NoveltySearch_Dynamic_Pmin true
- // How many evaluations should pass without adding to the archive
- // in order to lower Pmin
- NoveltySearch_No_Archiving_Stagnation_Treshold 150
- // How should it be multiplied (make it less than 1.0)
- NoveltySearch_Pmin_lowering_multiplier 0.9
- // Not lower than this value
- NoveltySearch_Pmin_min 0.05
- // How many one-after-another additions to the archive should
- // pass in order to raise Pmin
- NoveltySearch_Quick_Archiving_Min_Evaluations 8
- // How should it be multiplied (make it more than 1.0)
- NoveltySearch_Pmin_raising_multiplier 1.1
- // Per how many evaluations to recompute the sparseness of the population
- NoveltySearch_Recompute_Sparseness_Each 25
- ///////////////////////////////////
- // Structural Mutation parameters
- ///////////////////////////////////
- // Probability for a baby to be mutated with the Add-Neuron mutation.
- MutateAddNeuronProb 0.05
- // Allow splitting of any recurrent links
- SplitRecurrent true
- // Allow splitting of looped recurrent links
- SplitLoopedRecurrent true
- // Probability for a baby to be mutated with the Add-Link mutation
- MutateAddLinkProb 0.15
- // Probability for a new incoming link to be from the bias neuron
- // This enforces it. A value of 0.0 doesn't mean there will not be such links
- MutateAddLinkFromBiasProb 0.2
- // Probability for a baby to be mutated with the Remove-Link mutation
- MutateRemLinkProb 0.1
- // Probability for a baby that a simple neuron will be replaced with a link
- MutateRemSimpleNeuronProb 0.1
- // Maximum number of tries to find 2 neurons to add/remove a link
- LinkTries 128
- // Probability that a link mutation will be made recurrent
- RecurrentProb 0.0
- // Probability that a recurrent link mutation will be looped
- RecurrentLoopProb 0.0
- ///////////////////////////////////
- // Parameter Mutation parameters
- ///////////////////////////////////
- // Probability for a baby's weights to be mutated
- MutateWeightsProb 0.75
- // Probability for a severe (shaking) weight mutation
- MutateWeightsSevereProb 0.25
- // Probability for a particular gene's weight to be mutated. 1.0 100%
- //note: this has been modified in relation to the original MultiNEAT library, though is extremely unlikely to be of relevance for replicating the results as seen in the paper
- //the weight mutation rate applied to each connection is randomized for each individual and equal to max(WeightMutationRate*pow(rand,6),1/numlinks)
- WeightMutationRate 0.5
- // Maximum perturbation for a weight mutation
- WeightMutationMaxPower 1.0
- // Maximum magnitude of a replaced weight
- WeightReplacementMaxPower 5.0
- // Maximum absolute magnitude of a weight
- MaxWeight 8.0
- // Probability for a baby's A activation function parameters to be perturbed
- MutateActivationAProb 0.0
- // Probability for a baby's B activation function parameters to be perturbed
- MutateActivationBProb 0.0
- // Maximum magnitude for the A parameter perturbation
- ActivationAMutationMaxPower 0.0
- // Maximum magnitude for the B parameter perturbation
- ActivationBMutationMaxPower 0.0
- // Activation parameter A min/max
- MinActivationA 1.0
- MaxActivationA 1.0
- // Activation parameter B min/max
- MinActivationB 0.0
- MaxActivationB 0.0
- // Maximum magnitude for time costants perturbation
- TimeConstantMutationMaxPower 0.0
- // Maximum magnitude for biases perturbation
- BiasMutationMaxPower 0.5
- // Probability for a baby's neuron time constant values to be mutated
- MutateNeuronTimeConstantsProb 0.0
- // Probability for a baby's neuron bias values to be mutated
- MutateNeuronBiasesProb 0.0
- // Time constant range
- MinNeuronTimeConstant 0.0
- MaxNeuronTimeConstant 0.0
- // Bias range
- MinNeuronBias 0.0
- MaxNeuronBias 0.0
- // Probability for a baby that an activation function type will be changed for a single neuron
- // considered a structural mutation because of the large impact on fitness
- MutateNeuronActivationTypeProb 0.1
- // Probabilities for a particular activation function appearance
- ActivationFunction_SignedSigmoid_Prob 1.0
- ActivationFunction_UnsignedSigmoid_Prob 0.0
- ActivationFunction_Tanh_Prob 0.0
- ActivationFunction_TanhCubic_Prob 0.0
- ActivationFunction_SignedStep_Prob 0.0
- ActivationFunction_UnsignedStep_Prob 0.0
- ActivationFunction_SignedGauss_Prob 0.0
- ActivationFunction_UnsignedGauss_Prob 0.0
- ActivationFunction_Abs_Prob 0.0
- ActivationFunction_SignedSine_Prob 0.0
- ActivationFunction_UnsignedSine_Prob 0.0
- ActivationFunction_Linear_Prob 0.0
- //not implemented
- ActivationFunction_SignedSquare_Prob 0.0
- ActivationFunction_UnsignedSquare_Prob 0.0
- /////////////////////////////////////
- // Speciation parameters
- /////////////////////////////////////
- // Percent of disjoint genes importance
- DisjointCoeff 1.0
- // Percent of excess genes importance
- ExcessCoeff 1.0
- // Average weight difference importance
- WeightDiffCoeff 1.5
- // Node-specific activation parameter A difference importance
- ActivationADiffCoeff 0.0
- // Node-specific activation parameter B difference importance
- ActivationBDiffCoeff 0.0
- // Average time constant difference importance
- TimeConstantDiffCoeff 0.0
- // Average bias difference importance
- BiasDiffCoeff 0.0
- // Activation function type difference importance
- ActivationFunctionDiffCoeff 0.0
- // Compatibility treshold
- CompatTreshold 5.0
- // Minumal value of the compatibility treshold
- MinCompatTreshold 0.2
- // Modifier per generation for keeping the species stable
- CompatTresholdModifier 0.2
- // Per how many generations to change the treshold
- // (used in generational mode)
- CompatTreshChangeInterval_Generations 1
- // Per how many evaluations to change the treshold
- // (used in steady state mode)
- CompatTreshChangeInterval_Evaluations 10
- NEAT_ParametersEnd
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement