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_MUTATIONC_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_UNIFORMf_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, randomWalkProbabilitycontains, contains, contains, contains, defaultBase, duplicateRetries, fill, fill, fill, fill, initializeGenomeSegmentsByEndIndices, initializeGenomeSegmentsByStartIndices, mutationProbability, setupGenomebuildMisc, newIndividual, newIndividual, updateIndividual, updateSubpopulationpublic 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)
Speciessetup in interface Prototypesetup in interface Setupsetup in class IntegerVectorSpeciesPrototype.setup(EvolutionState,Parameter)public java.lang.Object clone()
PrototypeTypically 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)
SpeciesnewIndividual in class VectorSpeciespublic void updateDistribution(EvolutionState state, Subpopulation subpop)