Operators
Each step of an evolutionary algorithm is represented by an Operator. The @define_op macro defines new operator structs with fields specified in the operator documentation. The create_op function generates new operator objects with default values for unspecified operator fields. This section provides an overview of the operators implemented so far in Jevo.jl.
Retrievers
Retrievers are a struct or function that, retrieve data from the state.
- Jevo.PopulationCreatorRetriever, used in InitializeAllPopulations
- PopulationRetriever, used in AllVsAllMatchMaker, and many others
- get_individuals, used in ClearInteractionsAndRecords
Updaters
- Jevo.ComputeInteractions!, used in Performer
- PopulationAdder, used in InitializeAllPopulations
- PopulationUpdater, currently unused because I forgot to use it
- Jevo.add_matches!, used in AllVsAllMatchMaker and SoloMatchMaker
- Jevo.RecordAdder, used in ScalarFitnessEvaluator
Matchmaker
- AllVsAllMatchMaker
- SoloMatchMaker, individuals play a match alone, used for evolutionary computing
Evaluators
Selectors
Reproducers
Performer
Mutators
- Mutator, uses Jevo.mutate as its
.operator
.
Assertors
Assertors are operators that you can add at any point in the pipeline to check that certain aspects of the state are as expected.
Reporters
- Reporter, can log data if
Jevo.measure
for a specified Jevo.AbstractMetric as its.operator
.
Checkpointer
Initializers
- InitializeAllPopulations, uses Jevo.create as its
.operator
.
Miscellaneous
- CreateMissingWorkers. SLURM compatible, but only for a single node.
Phylogenies
- See Phylogeny