-
Notifications
You must be signed in to change notification settings - Fork 24
Optimizer Lexicase
The Lexicase Optimizer implements the lexicase algorithom deveoped by Lee Spector and Thomas Helmuth. Lexicase selection is a multi objective selection algorithom where a number of optimizing formula are defined. To select a single parent the order of the formula are randomized and then applied as filters to the population (or some subset of the population in the case of pools). If at any point all but one organism has been filtered out, then this is returned. If there is more then one organism remaining after filtering, then an organism is chosen at random from this set and returned.
In this implementation, a population is povided to the optimizer and an entirly new population is generated (no survival) usinging the algorithm defined above for each parent... which is then copied and the copy mutated to produce an offspring. In the case of multiple parnets, then for each offspring the selection process is repeated until there are a correct number of parents (there are no sexes or sexual selection in this optimizer).
the parameters avalible with this optimizer follow:
% OPTIMIZER_LEXICASE
epsilon = 0.1 #(double) cutoff when conducting per formula selection.
# e.g. 0.1 = organisms in the top 90% are kept. use 0.0 for classic Lexicase.
epsilonByRange = 0 #(bool) if true epsilon will be relative to min and max score
# i.e. keep orgs with (score > maxScore - (maxScore-minScore) * epsilon)
# if false, epsilon will be relative to organism ranks
# i.e. keep (best current keepers * epsilon) organisms
nextPopSize = -1 #(string) size of population after optimization(MTree). -1 indicates use current population size
numberParents = 1 #(int) number of parents used to produce offspring
optimizeFormulaNames = default #(string) column names to associate with optimize formulas in data files.
# 'default' will auto generate names as optimizeValue_1, optimizeValue_2,
optimizeFormulas = DM_AVE[score] #(string) values to optimize with lexicase selection (list of MTrees)
# example for BerryWorld: [DM_AVE[food1],DM_AVE[food2],(0-DM_AVE[switches])]
poolSize = -1 #(int) number of organisms used when selecting parent(s) in the lexicase algorithm, -1 indicates to use entire population
recordOptimizeValues = 1 #(bool) record optimize values to data files using optimizeFormulaNames
home
welcome
MABE Parameter Widget
Installation and quick start
license
citations
release notes
developer contributions
consistency testing
Using MABE
Using Settings Files
Output Files
Creating Graphs with python
MABE framework
Defining Update
Brains
Markov Brain
Neuron Gate
Wire Brain
Human Brain
ConstantValues Brain
CGP Brain
Genetic Programing Brain
Artificial Neural Networks
Brains Structure and Connectome
Genomes
Circular Genome
Multi Genome
Genome Handlers
Genome Value Conversions
Organisms
Groups
Archivists
popFileColumns
Optimizers
Lexicase Optimizer
Worlds
Berry World
ComplexiPhi World
MultiThreadTemplate World
Utilities
DataMap
Parameters
Parameters Name Space
Adding Parameters to Code
ParametersTable
MTree
sequence function
Population Loading
PythonTools
MBuild
MGraph
MQ
findRelatedness
generatePhylogeny
Information Theory Tools
Brain States and Life Times
TimeSeries
Entropy Functions
Smearing
Fragmentation
State to State
Brain Infomation Tools
ProcessingTools