Package io.jenetics.ext
Class TreeCrossover<G extends TreeGene<?,G>,C extends Comparable<? super C>>
- java.lang.Object
-
- io.jenetics.AbstractAlterer<G,C>
-
- io.jenetics.Recombinator<G,C>
-
- io.jenetics.ext.TreeCrossover<G,C>
-
- All Implemented Interfaces:
Alterer<G,C>
- Direct Known Subclasses:
SingleNodeCrossover
public abstract class TreeCrossover<G extends TreeGene<?,G>,C extends Comparable<? super C>> extends Recombinator<G,C>
Abstract implementation of tree base crossover recombinator. This class simplifies the implementation of tree base crossover implementation, by doing the transformation of the flattened tree genes to actual trees and vice versa. Only thecrossover(TreeNode, TreeNode)
method must be implemented.- Since:
- 3.9
- Version:
- 3.9
-
-
Field Summary
-
Fields inherited from class io.jenetics.AbstractAlterer
_probability
-
Fields inherited from interface io.jenetics.Alterer
DEFAULT_ALTER_PROBABILITY
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
TreeCrossover(double probability)
Constructs an tree crossover with a given recombination probability.
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected abstract <A> int
crossover(TreeNode<A> that, TreeNode<A> other)
Template method which performs the crossover.protected int
recombine(MSeq<Phenotype<G,C>> population, int[] individuals, long generation)
-
Methods inherited from class io.jenetics.Recombinator
alter, order
-
Methods inherited from class io.jenetics.AbstractAlterer
probability
-
-
-
-
Constructor Detail
-
TreeCrossover
protected TreeCrossover(double probability)
Constructs an tree crossover with a given recombination probability.- Parameters:
probability
- the recombination probability- Throws:
IllegalArgumentException
- if theprobability
is not in the valid range of[0, 1]
-
-
Method Detail
-
recombine
protected int recombine(MSeq<Phenotype<G,C>> population, int[] individuals, long generation)
- Specified by:
recombine
in classRecombinator<G extends TreeGene<?,G>,C extends Comparable<? super C>>
-
crossover
protected abstract <A> int crossover(TreeNode<A> that, TreeNode<A> other)
Template method which performs the crossover. The arguments given are mutable non null trees.- Type Parameters:
A
- the existential allele type- Parameters:
that
- the first (chromosome) treeother
- he second (chromosome) tree- Returns:
- the number of altered genes
-
-