Class SimulatedBinaryCrossover<G extends NumericGene<?,​G>,​C extends Comparable<? super C>>

  • All Implemented Interfaces:
    Alterer<G,​C>

    public class SimulatedBinaryCrossover<G extends NumericGene<?,​G>,​C extends Comparable<? super C>>
    extends Crossover<G,​C>
    Performs the simulated binary crossover (SBX) on a Chromosome of NumericGenes such that each position is either crossed contracted or expanded with a certain probability. The probability distribution is designed such that the children will lie closer to their parents as is the case with the single point binary crossover.

    It is implemented as described in Deb, K. and Agrawal, R. B. 1995. Simulated binary crossover for continuous search space. Complex Systems, 9, pp. 115-148.

    Since:
    3.5
    Version:
    6.0
    • Constructor Detail

      • SimulatedBinaryCrossover

        public SimulatedBinaryCrossover​(double probability,
                                        double contiguity)
        Create a new simulated binary crossover alterer with the given parameters.
        Parameters:
        probability - the recombination probability
        contiguity - the contiguity value that specifies how close a child should be to its parents (larger value means closer). The value must be greater or equal than 0. Typical values are in the range [2..5].
        Throws:
        IllegalArgumentException - if the probability is not in the valid range of [0, 1]
        IllegalArgumentException - if contiguity is smaller than zero
      • SimulatedBinaryCrossover

        public SimulatedBinaryCrossover​(double probability)
        Create a new simulated binary crossover alterer with the given parameters. The contiguity value is set to 2.5.
        Parameters:
        probability - the recombination probability
        Throws:
        IllegalArgumentException - if the probability is not in the valid range of [0, 1]
        IllegalArgumentException - if contiguity is smaller than zero