The configuration library allows for users to specify string keys that relate to double or integer values specified in a Config.ini file, such that relevant parameters can be read from a text file. In version 1.0.0 this is used exclusivly for machine learning. The parameters in the included config files are explained below:
Parameters
For binary parameters - 0 is "off" 1 is "on"
Startup Parameters
- learning: if learning is off, it loads from the file logs/bestParameters-<argv>.prm The default is logs/bestParameters-default.prm
- startSeed: Whether or not to 'seed' the population with the data from bestParameters. Good for resuming a run or changing learning modes.
Controller parameters
- numberOfActions: The number of parameters in a "unit" of the system. For example, the CPGEdges have two: weight and phase
- numberOfControllers: Number of units in the system.
Learning Parameters
- coevolution: Coevolution on selects a random element from the pool. Off ensures all elements are tested. Off is better with max score, on is better with average
- populationSize: Number of controllers in the population. Allows for genetic algorithms to be used.
- numberOfElementsToMutate: Number of elements to mutate between each generation
- numberOfTestsBetweenGenerations: Number of tests between run between mutiations. Only used if coevolution is on, otherwise test all new controllers
- leniencyCoef: How much past scores are factored in. 1.0 considers the current score
- MonteCarlo: If on, parameters will be chosen in a flat random between 0.0 and 1.0. AnnealEvolution only
- deviation: How large of a standard deviation to mutate by if MonteCarlo is off. AnnealEvolution only
- compareAverageScores: Comparing the average scores over a number of previous generations. Setting to 0 will compare maximum scores
- clearScoresBetweenGenerations: Whether or not to clear scores between generations. If looking for a maximum, do not clear.
Neuro Learning Parameters
- numberOfStates: Number of states for a neural network input
numberOfChildren: Number of population members to replace with "children" that combine the parameters of two neural networks. Can be used in combination with numberOfElements to mutate, as long as their sum is less than the population size.
Unsupported Parameters
The following parameters are from an older version of the code, but are explained here since they are still in the .ini files or in case you are trying to use V 0.1 (not recommended generally)
- graphics: Work around is to change
- brokenLink: Break one string
- noise: Including noise into muscle control
- addObstacles: Terrain adjustment - can be adjusted with tgGround classes
- addBumps: Terrain adjustment - can be adjusted with tgGround classes
- addRandomTerrain: Terrain adjustment - can be adjusted with tgGround classes
- addSlope: Terrain adjustment - can be adjusted with tgGround classes
- recordPositions: See version 0.1
- numberOfMusclesPerController: See version 0.1
- cycleDuration: See version 0.1
- Version
- 1.1.0