public class PBILSpecies extends IntegerVectorSpecies
PBILSpecies must be used in combination with PBILBreeder, which will call it at appropriate times to revise the distribution and to generate a new subpopulation of individuals. Since the initial population is built based on the marginal distributions, SimpleInitializer is used to generate the initial population.
PBILSpecies needs the population size and also truncation size. The truncation size which is the 'b' parameter, denotes how many fittest individuals to pick out from the generated population of individuals. It also needs the genome size and the minimum and maximum values of the genes. The size of the range of min and max gene values should be specified for each gene in the parameters file.
PBILSpecies also uses the learning rate 'alpha' based on which it decides the amount of old distribution to be retained and how much of the new distribution to be added. 'alpha' and 'b' values are printed out when running so the user may see what values it used for that given run.
Parameters
base.alpha Floating-point value ranging from 0 to 1.0 |
(the learning rate parameter) If not provided, this defaults to 0.05. |
base.popsize Integer > 0 |
(pop.subpop.0.size population size) This parameter must be provided. |
base.b Integer ranging from 1 to popsize |
(b truncated population size) This parameter must be provided. |
base.n Integer > 1 |
(n genome size) This parameter must be provided. |
Default Base
eda.pbil.species
Modifier and Type | Field and Description |
---|---|
double |
alpha |
int |
b |
static java.lang.String |
P_ALPHA |
static java.lang.String |
P_B |
static java.lang.String |
P_PBIL_SPECIES |
C_RANDOM_WALK_MUTATION, C_RESET_MUTATION, maxGene, minGene, mutationIsBounded, mutationType, P_MAXGENE, P_MINGENE, P_MUTATION_BOUNDED, P_MUTATIONTYPE, P_NUM_SEGMENTS, P_RANDOM_WALK_PROBABILITY, P_SEGMENT, P_SEGMENT_END, P_SEGMENT_START, P_SEGMENT_TYPE, randomWalkProbability, V_RANDOM_WALK_MUTATION, V_RESET_MUTATION
C_ANY_POINT, C_GEOMETRIC, C_INTERMED_RECOMB, C_LINE_RECOMB, C_NONE, C_ONE_POINT, C_ONE_POINT_NO_NOP, C_SIMULATED_BINARY, C_TWO_POINT, C_TWO_POINT_NO_NOP, C_UNIFORM, chunksize, crossoverDistributionIndex, crossoverProbability, crossoverType, duplicateRetries, dynamicInitialSize, genomeIncreaseProbability, genomeResizeAlgorithm, genomeSize, lineDistance, maxInitialSize, minInitialSize, mutationProbability, P_CHUNKSIZE, P_CROSSOVER_DISTRIBUTION_INDEX, P_CROSSOVERPROB, P_CROSSOVERTYPE, P_DUPLICATE_RETRIES, P_GENOMESIZE, P_GEOMETRIC_PROBABILITY, P_LINEDISTANCE, P_MUTATIONPROB, P_UNIFORM_MAX, P_UNIFORM_MIN, P_VECTORSPECIES, V_ANY_POINT, V_GEOMETRIC, V_INTERMED_RECOMB, V_LINE_RECOMB, V_ONE_POINT, V_ONE_POINT_NO_NOP, V_SIMULATED_BINARY, V_TWO_POINT, V_TWO_POINT_NO_NOP, V_UNIFORM
f_prototype, i_prototype, P_FITNESS, P_INDIVIDUAL, P_PIPE, pipe_prototype
Constructor and Description |
---|
PBILSpecies() |
Modifier and Type | Method and Description |
---|---|
java.lang.Object |
clone()
Creates a new individual cloned from a prototype,
and suitable to begin use in its own evolutionary
context.
|
double[] |
getMarginalDistribution(int gene) |
Individual |
newIndividual(EvolutionState state,
int thread)
Provides a brand-new individual to fill in a population.
|
void |
setup(EvolutionState state,
Parameter base)
The default version of setup(...) loads requested pipelines and calls setup(...) on them and normalizes their probabilities.
|
void |
updateDistribution(EvolutionState state,
Subpopulation subpop)
Revises the PBIL distribution to reflect the current fitness results in the provided subpopulation.
|
inNumericalTypeRange, inNumericalTypeRange, loadParametersForGene, maxGene, minGene, mutationIsBounded, mutationType, randomWalkProbability
contains, contains, contains, contains, defaultBase, duplicateRetries, fill, fill, fill, fill, initializeGenomeSegmentsByEndIndices, initializeGenomeSegmentsByStartIndices, mutationProbability, setupGenome
buildMisc, newIndividual, newIndividual, updateIndividual, updateSubpopulation
public static final java.lang.String P_PBIL_SPECIES
public static final java.lang.String P_ALPHA
public static final java.lang.String P_B
public double alpha
public int b
public double[] getMarginalDistribution(int gene)
public void setup(EvolutionState state, Parameter base)
Species
setup
in interface Prototype
setup
in interface Setup
setup
in class IntegerVectorSpecies
Prototype.setup(EvolutionState,Parameter)
public java.lang.Object clone()
Prototype
Typically this should be a full "deep" clone. However, you may share certain elements with other objects rather than clone hem, depending on the situation:
Implementations.
public Object clone()
{
try
{
return super.clone();
}
catch ((CloneNotSupportedException e)
{ throw new InternalError(); } // never happens
}
public Object clone()
{
try
{
MyObject myobj = (MyObject) (super.clone());
// put your deep-cloning code here...
}
catch ((CloneNotSupportedException e)
{ throw new InternalError(); } // never happens
return myobj;
}
public Object clone()
{
MyObject myobj = (MyObject) (super.clone());
// put your deep-cloning code here...
return myobj;
}
public Individual newIndividual(EvolutionState state, int thread)
Species
newIndividual
in class VectorSpecies
public void updateDistribution(EvolutionState state, Subpopulation subpop)