public abstract class Recombinator<G extends Gene<?,G>> extends AbstractAlterer<G>
An enhanced genetic algorithm (EGA) combine elements of existing solutions in order to create a new solution, with some of the properties of each parent. Recombination creates a new chromosome by combining parts of two (or more) parent chromosomes. This combination of chromosomes can be made by selecting one or more crossover points, splitting these chromosomes on the selected points, and merge those portions of different chromosomes to form new ones.
The recombination probability P)r) determines the probability that a
given individual (genotype, not gene) of a population is selected for
recombination. The (mean) number of changed individuals depend on the
concrete implementation and can be vary from
P(r)·NG to
P(r)·NG·OR, where
OR is the order of the recombination, which is the number
of individuals involved int the recombine(org.jenetics.Population<G, C>, int[], int) method.
_probability, DEFAULT_ALTER_PROBABILITY| Modifier | Constructor and Description |
|---|---|
protected |
Recombinator(double probability,
int order)
Constructs an alterer with a given recombination probability.
|
| Modifier and Type | Method and Description |
|---|---|
<C extends Comparable<? super C>> |
alter(Population<G,C> population,
int generation)
Alters (recombine) a given population.
|
int |
getOrder()
Return the number of individuals involved in the
recombine(Population, int[], int) step. |
protected abstract <C extends Comparable<? super C>> |
recombine(Population<G,C> population,
int[] individuals,
int generation)
Recombination template method.
|
equals, getProbability, hashCode, Nullprotected Recombinator(double probability, int order)
probability - The recombination probability.IllegalArgumentException - if the probability is not in the
valid range of [0, 1] or the given order is
smaller than two.public int getOrder()
recombine(Population, int[], int) step.public final <C extends Comparable<? super C>> int alter(Population<G,C> population, int generation)
Altererpopulation
is empty, nothing is altered.population - The Population to be altered. If the
population is null or empty, nothing is altered.generation - the date of birth (generation) of the altered phenotypes.protected abstract <C extends Comparable<? super C>> int recombine(Population<G,C> population, int[] individuals, int generation)
C - the fitness result typepopulation - the population to recombineindividuals - the array with the indexes of the individuals which
are involved in the recombination step. The length of the
array is getOrder(). The first individual is the
primary individual.generation - the current generation.© 2007-2013 Franz Wilhelmstötter (2013-12-18 20:17)