Advertisement
mjoach

MultiNEAT library configuration file

Jun 15th, 2015
192
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.26 KB | None | 0 0
  1. //Configuration file for the experiments used to evolve morphologies of soft-bodied animats using NEAT search and novelty search
  2. //The file accompanies the Frontiers in Robotics and AI paper "Improving evolvability of morphologies and controllers of developmental soft-bodied robots with novelty search" 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 10
  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 15
  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 50
  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 1
  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. //MICHAL - this is now a flexible rate, from 0-0.5, pow(rand,6) but with a minimum of 1/numlinks
  200. WeightMutationRate 0.5
  201.  
  202. // Maximum perturbation for a weight mutation
  203. WeightMutationMaxPower 1.0
  204.  
  205. // Maximum magnitude of a replaced weight
  206. WeightReplacementMaxPower 5.0
  207.  
  208. // Maximum absolute magnitude of a weight
  209. MaxWeight 8.0
  210.  
  211. // Probability for a baby's A activation function parameters to be perturbed
  212. MutateActivationAProb 0.0
  213.  
  214. // Probability for a baby's B activation function parameters to be perturbed
  215. MutateActivationBProb 0.0
  216.  
  217. // Maximum magnitude for the A parameter perturbation
  218. ActivationAMutationMaxPower 0.0
  219.  
  220. // Maximum magnitude for the B parameter perturbation
  221. ActivationBMutationMaxPower 0.0
  222.  
  223. // Activation parameter A min/max
  224. MinActivationA 1.0
  225. MaxActivationA 1.0
  226.  
  227. // Activation parameter B min/max
  228. MinActivationB 0.0
  229. MaxActivationB 0.0
  230.  
  231. // Maximum magnitude for time costants perturbation
  232. TimeConstantMutationMaxPower 0.0
  233.  
  234. // Maximum magnitude for biases perturbation
  235. BiasMutationMaxPower 0.5
  236.  
  237. // Probability for a baby's neuron time constant values to be mutated
  238. MutateNeuronTimeConstantsProb 0.0
  239.  
  240. // Probability for a baby's neuron bias values to be mutated
  241. MutateNeuronBiasesProb 0.0
  242.  
  243. // Time constant range
  244. MinNeuronTimeConstant 0.0
  245. MaxNeuronTimeConstant 0.0
  246.  
  247. // Bias range
  248. MinNeuronBias 0.0
  249. MaxNeuronBias 0.0
  250.  
  251.  
  252.  
  253.  
  254.  
  255. // Probability for a baby that an activation function type will be changed for a single neuron
  256. // considered a structural mutation because of the large impact on fitness
  257. MutateNeuronActivationTypeProb 0.1
  258.  
  259. // Probabilities for a particular activation function appearance
  260. ActivationFunction_SignedSigmoid_Prob 1.0
  261. ActivationFunction_UnsignedSigmoid_Prob 0.0
  262. ActivationFunction_Tanh_Prob 0.0
  263. ActivationFunction_TanhCubic_Prob 0.0
  264. ActivationFunction_SignedStep_Prob 0.0
  265. ActivationFunction_UnsignedStep_Prob 0.0
  266. ActivationFunction_SignedGauss_Prob 0.0
  267. ActivationFunction_UnsignedGauss_Prob 0.0
  268. ActivationFunction_Abs_Prob 0.0
  269. ActivationFunction_SignedSine_Prob 0.0
  270. ActivationFunction_UnsignedSine_Prob 0.0
  271. ActivationFunction_Linear_Prob 0.0
  272. //not implemented
  273. ActivationFunction_SignedSquare_Prob 0.0
  274. ActivationFunction_UnsignedSquare_Prob 0.0
  275.  
  276.  
  277.  
  278.  
  279. /////////////////////////////////////
  280. // Speciation parameters
  281. /////////////////////////////////////
  282.  
  283. // Percent of disjoint genes importance
  284. DisjointCoeff 1.0
  285.  
  286. // Percent of excess genes importance
  287. ExcessCoeff 1.0
  288.  
  289. // Average weight difference importance
  290. WeightDiffCoeff 1.5
  291.  
  292. // Node-specific activation parameter A difference importance
  293. ActivationADiffCoeff 0.0
  294.  
  295. // Node-specific activation parameter B difference importance
  296. ActivationBDiffCoeff 0.0
  297.  
  298. // Average time constant difference importance
  299. TimeConstantDiffCoeff 0.0
  300.  
  301. // Average bias difference importance
  302. BiasDiffCoeff 0.0
  303.  
  304. // Activation function type difference importance
  305. ActivationFunctionDiffCoeff 0.0
  306.  
  307. // Compatibility treshold
  308. CompatTreshold 5.0
  309.  
  310. // Minumal value of the compatibility treshold
  311. MinCompatTreshold 0.2
  312.  
  313. // Modifier per generation for keeping the species stable
  314. CompatTresholdModifier 0.2
  315.  
  316. // Per how many generations to change the treshold
  317. // (used in generational mode)
  318. CompatTreshChangeInterval_Generations 1
  319.  
  320. // Per how many evaluations to change the treshold
  321. // (used in steady state mode)
  322. CompatTreshChangeInterval_Evaluations 10
  323.  
  324. NEAT_ParametersEnd
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement