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 the crossover(TreeNode, TreeNode) method must be implemented.
Since:
3.9
Version:
3.9
  • Constructor Details

    • TreeCrossover

      protected TreeCrossover(double probability)
      Constructs a tree crossover with a given recombination probability.
      Parameters:
      probability - the recombination probability
      Throws:
      IllegalArgumentException - if the probability is not in the valid range of [0, 1]
  • Method Details

    • recombine

      protected int recombine(MSeq<Phenotype<G,C>> population, int[] individuals, long generation)
      Specified by:
      recombine in class Recombinator<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) tree
      other - he second (chromosome) tree
      Returns:
      the number of altered genes