|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectec.BreedingSource
ec.SelectionMethod
ec.select.TournamentSelection
ec.parsimony.ProportionalTournamentSelection
public class ProportionalTournamentSelection
This selection method adds parsimony pressure to the regular tournament selection. The comparison of individuals is based on fitness with probability prob, and it is based on size with probability 1-prob. For each pairwise comparsion of individuals, the ProportionalTournamentSelection randomly decides whether to compare based on fitness or size.
Typical Number of Individuals Produced Per produce(...) call
Always 1.
Parameters
base.size int >= 1 |
(the tournament size) |
base.pick-worst bool = true or false (default) |
(should we pick the worst individual in the tournament instead of the best?) |
base.fitness-prob double >= 0 and <= 1 |
(the probability of comparing individuals based on fitness, rather than size) |
Default Base
select.proportional-tournament
Field Summary | |
---|---|
double |
fitnessPressureProb
The probability of having the tournament based on fitness |
static java.lang.String |
P_PROBABILITY
The parameter for the probability of having the tournament based on fitness |
static java.lang.String |
P_PROPORTIONAL_TOURNAMENT
default base |
Fields inherited from class ec.select.TournamentSelection |
---|
DEFAULT_SIZE, P_PICKWORST, P_SIZE, P_TOURNAMENT, pickWorst, probabilityOfPickingSizePlusOne |
Fields inherited from class ec.SelectionMethod |
---|
INDS_PRODUCED |
Fields inherited from class ec.BreedingSource |
---|
NO_PROBABILITY, P_PROB, probability |
Constructor Summary | |
---|---|
ProportionalTournamentSelection()
|
Method Summary | |
---|---|
boolean |
betterThan(Individual first,
Individual second,
int subpopulation,
EvolutionState state,
int thread)
Returns true if *first* is a better (fitter, whatever) individual than *second*. |
Parameter |
defaultBase()
Returns the default base for this prototype. |
void |
setup(EvolutionState state,
Parameter base)
Sets up the BreedingPipeline. |
Methods inherited from class ec.select.TournamentSelection |
---|
getRandomIndividual, getTournamentSizeToUse, individualReplaced, produce, sourcesAreProperForm |
Methods inherited from class ec.SelectionMethod |
---|
finishProducing, prepareToProduce, produce, produces, typicalIndsProduced |
Methods inherited from class ec.BreedingSource |
---|
clone, getProbability, pickRandom, preparePipeline, setProbability, setupProbabilities |
Methods inherited from class java.lang.Object |
---|
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
public static final java.lang.String P_PROPORTIONAL_TOURNAMENT
public static final java.lang.String P_PROBABILITY
public double fitnessPressureProb
Constructor Detail |
---|
public ProportionalTournamentSelection()
Method Detail |
---|
public Parameter defaultBase()
Prototype
defaultBase
in interface Prototype
defaultBase
in class TournamentSelection
public void setup(EvolutionState state, Parameter base)
BreedingSource
The most common modification is to normalize it with some other set of probabilities, then set all of them up in increasing summation; this allows the use of the fast static BreedingSource-picking utility method, BreedingSource.pickRandom(...). In order to use this method, for example, if four breeding source probabilities are {0.3, 0.2, 0.1, 0.4}, then they should get normalized and summed by the outside owners as: {0.3, 0.5, 0.6, 1.0}.
setup
in interface Prototype
setup
in interface Setup
setup
in class TournamentSelection
Prototype.setup(EvolutionState,Parameter)
public boolean betterThan(Individual first, Individual second, int subpopulation, EvolutionState state, int thread)
TournamentSelection
betterThan
in class TournamentSelection
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |