Advertisement
mjoach

Metamorphosis MultiNEAT library configuration file

May 17th, 2015
202
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.40 KB | None | 0 0
  1. //Configuration file for the experiments used to evolve metamorphic animats
  2. //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
  3. //This file is read by the MultiNEAT library available at: http://multineat.com/
  4. //We used git revision d361660 acquired at 30.10.2013
  5. //Please contact Michal Joachimczak mjoach@gmail.com for questions and software package that evolves metamorphic individuals
  6.  
  7. NEAT_ParametersStart
  8. ////////////////////
  9. // Basic parameters
  10. ////////////////////
  11.  
  12. // Size of population
  13. PopulationSize 300
  14.  
  15. // If true, this enables dynamic compatibility thresholding
  16. // It will keep the number of species between MinSpecies and MaxSpecies
  17. DynamicCompatibility true
  18.  
  19. // Minimum number of species
  20. MinSpecies 5
  21.  
  22. // Maximum number of species
  23. MaxSpecies 30
  24.  
  25. // Don't wipe the innovation database each generation?
  26. InnovationsForever true
  27.  
  28.  
  29.  
  30.  
  31. ////////////////////////////////
  32. // GA Parameters
  33. ////////////////////////////////
  34.  
  35. // Age treshold, meaning if a species is below it, it is considered young
  36. YoungAgeTreshold 5
  37.  
  38. // Fitness boost multiplier for young species (1.0 means no boost)
  39. // Make sure it is > 1.0 to avoid confusion
  40. YoungAgeFitnessBoost 1.1
  41.  
  42. // Number of generations without improvement (stagnation) allowed for a species
  43. SpeciesDropoffAge 50
  44.  
  45. // Minimum jump in fitness necessary to be considered as improvement.
  46. // Setting this value to 0.0 makes the system to behave like regular NEAT.
  47. StagnationDelta 0.0
  48.  
  49. // Age threshold, meaning if a species is above it, it is considered old
  50. OldAgeTreshold 30
  51.  
  52. // Multiplier that penalizes old species.
  53. // Make sure it is < 1.0 to avoid confusion.
  54. OldAgePenalty 1.0
  55.  
  56. // Detect competetive coevolution stagnation
  57. // This kills the worst species of age >N (each X generations)
  58. DetectCompetetiveCoevolutionStagnation false
  59. // Each X generation..
  60. KillWorstSpeciesEach 15
  61. // Of age above..
  62. KillWorstAge 10
  63.  
  64. // Percent of best individuals that are allowed to reproduce. 1.0 100%
  65. SurvivalRate 0.25
  66.  
  67. // Probability for a baby to result from sexual reproduction (crossover/mating). 1.0 100%
  68. // If asexual reprodiction is chosen, the baby will be mutated 100%
  69. CrossoverRate 0.75
  70.  
  71. // If a baby results from sexual reproduction, this probability determines if mutation will
  72. // be performed after crossover. 1.0 100% (always mutate after crossover)
  73. OverallMutationRate 0.25
  74.  
  75. // Probability for a baby to result from inter-species mating.
  76. InterspeciesCrossoverRate 0.0001
  77.  
  78. // Probability for a baby to result from Multipoint Crossover when mating. 1.0 100%
  79. // The default is the Average mating.
  80. MultipointCrossoverRate 0.75
  81.  
  82. // Performing roulette wheel selection or not?
  83. RouletteWheelSelection false
  84.  
  85.  
  86.  
  87.  
  88.  
  89. ///////////////////////////////////
  90. // Phased Search parameters //
  91. ///////////////////////////////////
  92.  
  93. // Using phased search or not
  94. PhasedSearching true
  95.  
  96. // Using delta coding or not
  97. DeltaCoding true
  98.  
  99. // What is the MPC + base MPC needed to begin simplifying phase
  100. SimplifyingPhaseMPCTreshold 20
  101.  
  102. // How many generations of global stagnation should have passed to enter simplifying phase
  103. SimplifyingPhaseStagnationTreshold 30
  104.  
  105. // How many generations of MPC stagnation are needed to turn back on complexifying
  106. ComplexityFloorGenerations 40
  107.  
  108.  
  109.  
  110.  
  111.  
  112.  
  113. /////////////////////////////////////
  114. // Novelty Search parameters //
  115. /////////////////////////////////////
  116.  
  117. // the K constant
  118. NoveltySearch_K 15
  119.  
  120. // Sparseness treshold. Add to the archive if above
  121. NoveltySearch_P_min 0.5
  122.  
  123. // Dynamic Pmin?
  124. NoveltySearch_Dynamic_Pmin true
  125.  
  126. // How many evaluations should pass without adding to the archive
  127. // in order to lower Pmin
  128. NoveltySearch_No_Archiving_Stagnation_Treshold 150
  129.  
  130. // How should it be multiplied (make it less than 1.0)
  131. NoveltySearch_Pmin_lowering_multiplier 0.9
  132.  
  133. // Not lower than this value
  134. NoveltySearch_Pmin_min 0.05
  135.  
  136. // How many one-after-another additions to the archive should
  137. // pass in order to raise Pmin
  138. NoveltySearch_Quick_Archiving_Min_Evaluations 8
  139.  
  140. // How should it be multiplied (make it more than 1.0)
  141. NoveltySearch_Pmin_raising_multiplier 1.1
  142.  
  143. // Per how many evaluations to recompute the sparseness of the population
  144. NoveltySearch_Recompute_Sparseness_Each 25
  145.  
  146.  
  147.  
  148.  
  149. ///////////////////////////////////
  150. // Structural Mutation parameters
  151. ///////////////////////////////////
  152.  
  153. // Probability for a baby to be mutated with the Add-Neuron mutation.
  154. MutateAddNeuronProb 0.05
  155.  
  156. // Allow splitting of any recurrent links
  157. SplitRecurrent true
  158.  
  159. // Allow splitting of looped recurrent links
  160. SplitLoopedRecurrent true
  161.  
  162. // Probability for a baby to be mutated with the Add-Link mutation
  163. MutateAddLinkProb 0.15
  164.  
  165. // Probability for a new incoming link to be from the bias neuron
  166. // This enforces it. A value of 0.0 doesn't mean there will not be such links
  167. MutateAddLinkFromBiasProb 0.2
  168.  
  169. // Probability for a baby to be mutated with the Remove-Link mutation
  170. MutateRemLinkProb 0.1
  171.  
  172. // Probability for a baby that a simple neuron will be replaced with a link
  173. MutateRemSimpleNeuronProb 0.1
  174.  
  175. // Maximum number of tries to find 2 neurons to add/remove a link
  176. LinkTries 128
  177.  
  178. // Probability that a link mutation will be made recurrent
  179. RecurrentProb 0.0
  180.  
  181. // Probability that a recurrent link mutation will be looped
  182. RecurrentLoopProb 0.0
  183.  
  184.  
  185.  
  186.  
  187.  
  188. ///////////////////////////////////
  189. // Parameter Mutation parameters
  190. ///////////////////////////////////
  191.  
  192. // Probability for a baby's weights to be mutated
  193. MutateWeightsProb 0.75
  194.  
  195. // Probability for a severe (shaking) weight mutation
  196. MutateWeightsSevereProb 0.25
  197.  
  198. // Probability for a particular gene's weight to be mutated. 1.0 100%
  199.  
  200. //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
  201. //the weight mutation rate applied to each connection is randomized for each individual and equal to max(WeightMutationRate*pow(rand,6),1/numlinks)
  202. WeightMutationRate 0.5
  203.  
  204. // Maximum perturbation for a weight mutation
  205. WeightMutationMaxPower 1.0
  206.  
  207. // Maximum magnitude of a replaced weight
  208. WeightReplacementMaxPower 5.0
  209.  
  210. // Maximum absolute magnitude of a weight
  211. MaxWeight 8.0
  212.  
  213. // Probability for a baby's A activation function parameters to be perturbed
  214. MutateActivationAProb 0.0
  215.  
  216. // Probability for a baby's B activation function parameters to be perturbed
  217. MutateActivationBProb 0.0
  218.  
  219. // Maximum magnitude for the A parameter perturbation
  220. ActivationAMutationMaxPower 0.0
  221.  
  222. // Maximum magnitude for the B parameter perturbation
  223. ActivationBMutationMaxPower 0.0
  224.  
  225. // Activation parameter A min/max
  226. MinActivationA 1.0
  227. MaxActivationA 1.0
  228.  
  229. // Activation parameter B min/max
  230. MinActivationB 0.0
  231. MaxActivationB 0.0
  232.  
  233. // Maximum magnitude for time costants perturbation
  234. TimeConstantMutationMaxPower 0.0
  235.  
  236. // Maximum magnitude for biases perturbation
  237. BiasMutationMaxPower 0.5
  238.  
  239. // Probability for a baby's neuron time constant values to be mutated
  240. MutateNeuronTimeConstantsProb 0.0
  241.  
  242. // Probability for a baby's neuron bias values to be mutated
  243. MutateNeuronBiasesProb 0.0
  244.  
  245. // Time constant range
  246. MinNeuronTimeConstant 0.0
  247. MaxNeuronTimeConstant 0.0
  248.  
  249. // Bias range
  250. MinNeuronBias 0.0
  251. MaxNeuronBias 0.0
  252.  
  253.  
  254.  
  255.  
  256.  
  257. // Probability for a baby that an activation function type will be changed for a single neuron
  258. // considered a structural mutation because of the large impact on fitness
  259. MutateNeuronActivationTypeProb 0.1
  260.  
  261. // Probabilities for a particular activation function appearance
  262. ActivationFunction_SignedSigmoid_Prob 1.0
  263. ActivationFunction_UnsignedSigmoid_Prob 0.0
  264. ActivationFunction_Tanh_Prob 0.0
  265. ActivationFunction_TanhCubic_Prob 0.0
  266. ActivationFunction_SignedStep_Prob 0.0
  267. ActivationFunction_UnsignedStep_Prob 0.0
  268. ActivationFunction_SignedGauss_Prob 0.0
  269. ActivationFunction_UnsignedGauss_Prob 0.0
  270. ActivationFunction_Abs_Prob 0.0
  271. ActivationFunction_SignedSine_Prob 0.0
  272. ActivationFunction_UnsignedSine_Prob 0.0
  273. ActivationFunction_Linear_Prob 0.0
  274. //not implemented
  275. ActivationFunction_SignedSquare_Prob 0.0
  276. ActivationFunction_UnsignedSquare_Prob 0.0
  277.  
  278.  
  279.  
  280.  
  281. /////////////////////////////////////
  282. // Speciation parameters
  283. /////////////////////////////////////
  284.  
  285. // Percent of disjoint genes importance
  286. DisjointCoeff 1.0
  287.  
  288. // Percent of excess genes importance
  289. ExcessCoeff 1.0
  290.  
  291. // Average weight difference importance
  292. WeightDiffCoeff 1.5
  293.  
  294. // Node-specific activation parameter A difference importance
  295. ActivationADiffCoeff 0.0
  296.  
  297. // Node-specific activation parameter B difference importance
  298. ActivationBDiffCoeff 0.0
  299.  
  300. // Average time constant difference importance
  301. TimeConstantDiffCoeff 0.0
  302.  
  303. // Average bias difference importance
  304. BiasDiffCoeff 0.0
  305.  
  306. // Activation function type difference importance
  307. ActivationFunctionDiffCoeff 0.0
  308.  
  309. // Compatibility treshold
  310. CompatTreshold 5.0
  311.  
  312. // Minumal value of the compatibility treshold
  313. MinCompatTreshold 0.2
  314.  
  315. // Modifier per generation for keeping the species stable
  316. CompatTresholdModifier 0.2
  317.  
  318. // Per how many generations to change the treshold
  319. // (used in generational mode)
  320. CompatTreshChangeInterval_Generations 1
  321.  
  322. // Per how many evaluations to change the treshold
  323. // (used in steady state mode)
  324. CompatTreshChangeInterval_Evaluations 10
  325.  
  326. NEAT_ParametersEnd
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement