public class Rand1EitherOrDEBreeder extends DEBreeder
Rand1EitherOrDEBreeder requires that all individuals be DoubleVectorIndividuals.
In short, the algorithm is as follows. For each individual in the population, we produce a child by selecting three (different) individuals, none the original individual, called r0, r1, and r2. We then create an individal c, defined either c = r0 + F * (r1 - r2), or as c = r0 + 0.5 * (F+1) * (r1 + r2 - 2 * r0), depending on a coin flip of probability "PF" (if 'true', the first equation is used, else the second). Unlike the other DEBreeders in this package, we do *not* cross over the child with the original individual. In fact, if the crossover probability is specified, Rand1EitherOrDEBreeder will issue a warning that it's not using it.
This class should be used in conjunction with DEEvaluator, which allows the children to enter the population only if they're superior to their parents (the original individuals). If so, they replace their parents.
Parameters
| base.pf 0.0 <= double <= 1.0 |
The "PF" probability of mutation type |
| Modifier and Type | Field and Description |
|---|---|
static String |
P_PF |
double |
PF |
bestSoFarIndex, Cr, CR_UNSPECIFIED, F, P_Cr, P_F, P_OUT_OF_BOUNDS_RETRIES, previousPopulation, retries| Constructor and Description |
|---|
Rand1EitherOrDEBreeder() |
| Modifier and Type | Method and Description |
|---|---|
DoubleVectorIndividual |
createIndividual(EvolutionState state,
int subpop,
int index,
int thread) |
void |
setup(EvolutionState state,
Parameter base)
Sets up the object by reading it from the parameters stored
in state, built off of the parameter base base.
|
breedPopulation, crossover, prepareDEBreeder, validpublic double PF
public static final String P_PF
public void setup(EvolutionState state, Parameter base)
Setuppublic DoubleVectorIndividual createIndividual(EvolutionState state, int subpop, int index, int thread)
createIndividual in class DEBreederCopyright © 2014 Evolutionary Computation Laboratory at George Mason University. All rights reserved.