Package ec
Class SelectionMethod
java.lang.Object
ec.BreedingSource
ec.SelectionMethod
- All Implemented Interfaces:
Prototype,Setup,RandomChoiceChooserD,Serializable,Cloneable
- Direct Known Subclasses:
AnnealedSelection,BestSelection,BucketTournamentSelection,DoubleTournamentSelection,ESSelection,FirstSelection,FitProportionateSelection,GreedyOverselection,LexicaseSelection,MultiSelection,RandomSelection,RatioBucketTournamentSelection,SUSSelection,TopSelection,TournamentSelection
A SelectionMethod is a BreedingSource which provides direct IMMUTABLE pointers
to original individuals in an old population, not fresh mutable copies.
If you use a SelectionMethod as your BreedingSource, you must
SelectionMethods might include Tournament Selection, Fitness Proportional Selection, etc.
SelectionMethods don't have parent sources.
Typical Number of Individuals Produced Per produce(...) call
Always 1.
- See Also:
-
Field Summary
FieldsFields inherited from class ec.BreedingSource
NO_PROBABILITY, P_PROB, probability -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidfinishProducing(EvolutionState s, int subpopulation, int thread) A default version of finishProducing, which does nothing.voidprepareToProduce(EvolutionState s, int subpopulation, int thread) A default version of prepareToProduce which does nothing.final intproduce(int min, int max, int subpopulation, ArrayList<Individual> inds, EvolutionState state, int thread, HashMap<String, Object> misc) Produces n individuals from the given subpopulation and puts them into inds[start...start+n-1], where n = Min(Max(q,min),max), where q is the "typical" number of individuals the BreedingSource produces in one shot, and returns n.abstract intproduce(int subpopulation, EvolutionState state, int thread) An alternative form of "produce" special to Selection Methods; selects an individual from the given subpopulation and returns its position in that subpopulation.booleanproduces(EvolutionState state, Population newpop, int subpopulation, int thread) A default version of produces -- this method always returns true under the assumption that the selection method works with all Fitnesses.intproduceWithoutCloning(int min, int max, int subpopulation, ArrayList<Individual> inds, EvolutionState state, int thread, HashMap<String, Object> misc) intReturns 1 (the typical default value)Methods inherited from class ec.BreedingSource
clone, fillStubs, getProbability, pickRandom, preparePipeline, setProbability, setup, setupProbabilitiesMethods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface ec.Prototype
defaultBase
-
Field Details
-
INDS_PRODUCED
public static final int INDS_PRODUCED- See Also:
-
KEY_PARENTS
- See Also:
-
-
Constructor Details
-
SelectionMethod
public SelectionMethod()
-
-
Method Details
-
typicalIndsProduced
public int typicalIndsProduced()Returns 1 (the typical default value)- Specified by:
typicalIndsProducedin classBreedingSource
-
produces
A default version of produces -- this method always returns true under the assumption that the selection method works with all Fitnesses. If this isn't the case, you should override this to return your own assessment.- Specified by:
producesin classBreedingSource
-
prepareToProduce
A default version of prepareToProduce which does nothing.- Specified by:
prepareToProducein classBreedingSource
-
finishProducing
A default version of finishProducing, which does nothing.- Specified by:
finishProducingin classBreedingSource
-
produce
public final int produce(int min, int max, int subpopulation, ArrayList<Individual> inds, EvolutionState state, int thread, HashMap<String, Object> misc) Description copied from class:BreedingSourceProduces n individuals from the given subpopulation and puts them into inds[start...start+n-1], where n = Min(Max(q,min),max), where q is the "typical" number of individuals the BreedingSource produces in one shot, and returns n. max must be >= min, and min must be >= 1. For example, crossover might typically produce two individuals, tournament selection might typically produce a single individual, etc.- Specified by:
producein classBreedingSource
-
produceWithoutCloning
public int produceWithoutCloning(int min, int max, int subpopulation, ArrayList<Individual> inds, EvolutionState state, int thread, HashMap<String, Object> misc) -
produce
An alternative form of "produce" special to Selection Methods; selects an individual from the given subpopulation and returns its position in that subpopulation.
-