This is the code accompanying the GECCO 2020 paper, Diversity Preservation in Minimal Criterion Coevolution through Resource Limitation.
The project that runs the published MCC experiments is titled "MCC_Executor". This is the contained within the source code zip/tar files. For a description of each execution parameter, refer to MCC Parameters. The following exemplar executes a single run of MCC resource limition with a configuration identical to that in the paper. It assumes that the experiment is being run from the solution directory (i.e. one level up from the MCC_Executor project). Seed agents are given to ensure that each run starts from a common baseline, though a random population can be generated by setting the GenerateAgentPopulation parameter to true. Note that the seed agents are themselves randomly generated, so the bootstrap process (which evolves competent agents that can satisfy the non-trivial MC of maze navigation) must execute regardless.
MCC_Executor.exe maze_navigation \
ExperimentSource=file \
NumRuns=1 \
ExperimentConfigDirectory=./MCC_Executor/MazeNavigation/ExperimentConfigurations/ \
OutputFileDirectory=../ExperimentResults/ \
SeedAgentFile=./MCC_Executor/MazeNavigation/SeedAgents/SeedAgents_Acyclic_20_Genomes_10_Size_2_Waypoints_2_Walls_5_LR.xml \
SeedMazeFile=./MCC_Executor/MazeNavigation/SeedAgents/GeneratedMaze_10_Genomes_10_Height_10_Width_2_Waypoints_2_Walls.xml \
ExperimentNames="MCC-LimitedResources"
StartFromRun=1
IsDistributedExecution=false
MCC Parameters
The below table enumerates all MCC experiment parameters and their function/purpose.
Parameter | Description |
---|---|
ExperimentSource | Source for the experiment configuration (file or database). The default selection is file; however, MCC can also be executed from a configuration persisted to an RDBMS (the schema is contained within the ExperimentEntities project). |
NumRuns | Number of runs of MCC to execute. |
ExperimentConfigDirectory | Directory containing experiment configuration files (these are the XML files under /MCC_Executor/MazeNavigation/ExperimentConfigurations). This must be specified if ExperimentSource is set to file (which is the default). |
OutputFileDirectory | The directory in which to persist experiment CSV output files containing experiment results. |
SeedAgentFile | XML file containing seed agent genomes. If this parameter is not specified, a random population will be generated. |
SeedMazeFile | XML file containing seed maze genomes. Mazes are not generated by default, so this must be specified. |
ExperimentNames | Comma-delimited list of experiments to execute (or just single experiment). The experiment name must match the name of the experiment configuration file. |
StartFromRun | Run number at which to begin execution. This is useful when executing multiple runs of the same MCC experiment in parallel. |
IsDistributedExecution | This should almost always be set to false. It enables behavior very specific to the HPC environment in which the initial MCC experiments were executed (such as additional logic for interfacing with Slurm, interfacing with external processes for moving data off the cluster, etc.) and is likely of little use in any other environment. |