The configuration file config.txt is a text file that is read once when evolve starts. Each line of the file is in the format:
PARAMETER_NAME value
Parameters that are not set explicitly in this file are given their default value. The config.txt file for the cheetah-test example is:
POPULATION_SIZE 500
RANK_PARENTS 250
NUM_STEPS_PER_TRIAL 100
NUM_TRIALS_PER_GENERATION 1
MAXIMISE 1
PROGRAM_MEMORY_SIZE 1024
MAX_RUN_CYCLES 1024
INPUT_MEMORY_SIZE 32
OUTPUT_MEMORY_SIZE 8
The configuration parameters, their default values and their interpretations are given in the sections below.
Default: 5000
This is the number of individuals in the population. Higher numbers improve the search performance and enable many combinations of behaviours to be tested per generation.
This parameter has a direct impact on memory required by evolve when running. If evolve crashes due to lack of resources then try reducing this value.
Default: 2500
This is the number of individuals in the population that will be designated to be parents based upon their performance ranking. This number should always be less than POPULATION_SIZE. The difference between POPULATION_SIZE and RANK_PARENTS will be the number of children tested per generation. More children enables more combinations of behaviours to be tested, however more parents promotes diversity of these behaviours.
Default: 500
This is the number of times StepEnv will be called per trial per individual and the number of times the learned program will be run per trial per individual. StepEnv will return a fitness value each time it is called and therefore this is also the number of fitness values that will be accumulated per trial.
Default: 1
This is the number of trials that are run per individual per generation. The ResetEnv function will be called for every new trial and therefore every trial can be an independent event as determined by problemDefinition.py. The total fitness function for the individual will not be reset between trials and therefore is the accumulated value over all steps in all trials.
If there is randomness in the environment, using multiple trials can produce more robust solutions at the cost of longer runtimes. This feature can also be used to subject the agent to different types of trial and therefore to encourage more complex behaviours to emerge.
Default: 0
Setting this to 1 causes evolve to maximise the fitness value. Setting to 0 causes evolve to minimise the fitness value.
Default: 128
The maximum number of instructions that can be in the learned program. Higher values are required for more complex programs. This has to be a 2N value where N is an integer.
Default: 128
The maximum number of instructions that can be executed in a single run of the program. Higher values are required for more complex programs.
Default: 128
The size of the data memory available to the learned program. Higher values are required for more complex programs. This has to be a 2N value where N is an integer.
Default: 4
The number of program contexts available in the learned program. Higher values are required for more complex programs.
Default: 128
The number of outputs that can be produced by the program. This has to be a 2N value where N is an integer. This also needs to be equal to or higher than the size of the action array expected back by StepEnv.
Default: 128
The number of inputs expected by the program. This has to be a 2N value where N is an integer. This also needs to be equal to or higher than the size of the observation array received from StepEnv.
Default: 10
When evolve first starts, it will take files seedN.hif (where N is in the range 0 to NUM_SEED_FILES) and load these into children in the next generation.
NUM_SEED_FILES is the maximum N that will be checked when looking for files seedN.hif. If less that NUM_SEED_FILES exist, the process of seeding the individuals will continue by looping through the available files.
Default: 10
When evolve first starts, it will take files seedN.hif (where N is in the range 0 to NUM_SEED_FILES) and load these into children in the next generation. The number of generations it will perform this action is controlled by this parameter.
Default: 10
When evolve first starts, it will take files seedN.hif (where N is in the range 0 to NUM_SEED_FILES) and load these into children in the next generation. The number of children seeded at each generation is controlled by this parameter.
Default: 0.0
Constants within the generated software are based upon random numbers. These random numbers have a normal distribution in the log10 space. The default value of 0.0 gives the centre of the distribution of random numbers at 100.0 = 1.0
Default: 1.0
Constants within the generated software are based upon random numbers. These random numbers have a normal distribution in the log10 space. The default value of sigma is 1.0. Given that the default value for the mean is 0.0 the +1 sigma point is 101.0 = 10.0 and the -1 sigma point is 10-1.0 = 0.1
Evolve software to solve your problem, unlimited by human design.
contact: support@hyperlect.com
Download eCode and get a 7-day free trial.
©2024 Hyperlect Limited. All Rights Reserved.