eCode software overview

Components

A single binary called evolve performs the training phase. When run it reads a config.txt file from the current directory and this gives evolve its configuration. See section 7 for details of the configuration options available.

 

evolve expects a problemDefinition.py to be present in the current directory. This python file is where the training is customised to the user’s task. See section 6 for a description of this file and the customisation process.

 

evolve will generate text output to stdout. This includes a best fitness value at each generation.

 

evolve will save a file pmX.hif to the current directory for every generation where X is replaced by the generation index. This file is the learned program that gave the best fitness result at generation X. This file can be executed using the vmRun utility described below.

 

If selected via configuration options in config.txt, evolve will look for learned program files in the current directory when it is first run and use these as individuals in the training process. This allows learned programs to be used as a seed to prime a new search. Up to 5 seed files can be supplied and these should be called seedY.hif where Y is an index from 0 to 4.  Each seed file will be loaded into one individual in the next generation. This will continue for a number of generations as specified by the configuration file. These seed files can be copied from the pmX.hif files that are the result of previous training.

 

A utility called vmRun is used to run the learned program file and this uses the same config file config.txt. It is important that the configuration file used during the training process is the same configuration file used when running the learned program file. Command line arguments are used to pass the learned program file and the input parameters to vmRun.

 

vmRun pmfile.hif param1 param2 …… paramN

 

where paramX is the Xth parameter or observation supplied as input to the run. For example, if a learned program has been trained with 4 input parameters, then the generation 4 learned output of evolve can be executed using:

 

vmRun pm4.hif 0.1 0.2 0.3 0.4

 

The resulting output will be output in text format to stdout.

Suggested usage

It is suggested that a new directory is started for every training session. The problem definition file and configuration file should be copied into this directory along with any seed learned program files. The training process can then be started using:

nohup evolve > results.log &

 

and this will place the training into the background and save the progress to results.log. The results can be viewed using:

 

tail -f results.log

 

To stop the training the, the process can be killed by by calling:

 

evolveKill

 

evolveKill must be called in the working directory that the training process is using.

 

By working in this suggested way there is a single directory per training that records the configuration, the problem being investigated and the results.