Class TreeCrossover<G extends TreeGene<?,​G>,​C extends Comparable<? super 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 Detail

      • TreeCrossover

        protected TreeCrossover​(double probability)
        Constructs an 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 Detail

      • 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