Interface CrossOverFunction

  • All Superinterfaces:
    Changeable
    All Known Implementing Classes:
    AbstractCrossOverFunction, CrossOverFunction.NoCross, OrderCrossover, SimpleCrossOverFunction

    public interface CrossOverFunction
    extends Changeable
    Crosses two chromosomes. The basic usage of the class would be something like choosing two chromosomes that you want to cross over and setting these with the setChromosomePair method. Next you would call one of the performCrossOver methods to do the crossing and finally you would retreive the chromsome pair with the getChromosomes method.
    Since:
    1.5
    Version:
    1.0
    Author:
    Mark Schreiber
    • Method Detail

      • performCrossOver

        GACrossResult performCrossOver​(SymbolList chromA,
                                       SymbolList chromB)
                                throws ChangeVetoException
        Performs a cross between the pair of chromosomes
        Parameters:
        chromA - The first chromosome in the cross
        chromB - The second chromosome in the cross
        Returns:
        A GACross that holds the results of the cross
        Throws:
        ChangeVetoException - if the chromosomes are unmodifiable
      • setMaxCrossOvers

        void setMaxCrossOvers​(int maxCrossOvers)
                       throws ChangeVetoException
        Sets an upper limit on the number of crosses. Its up to the implementation to decide what to do when the limit is reached although a good convention would be to keep only the first N crosses from the left end (5' end) of the sequence. By convention the default upper limit is DEFAULT_MAX_CROSS (eg infinite). This value should be used as the default by all implementations.
        Parameters:
        maxCrossOvers - the limit on crosses
        Throws:
        ChangeVetoException - if a ChangeListener vetoes this change
      • getMaxCrossOvers

        int getMaxCrossOvers()
        Returns:
        the limit on crosses.
      • setCrossOverProbs

        void setCrossOverProbs​(double[] crossOverProbs)
                        throws ChangeVetoException
        Sets the probability of crossing at each base. Each position in the array corresponds to a position in the sequences to be crossed. The probability of a cross occuring after position 1 in the SymbolList is given by crossOverProbs[1]. CrossOverProbs[0] is effectively redundant as the cross would occur before the 1st position in the SymbolList. By convention if the array is shorter than the SymbolList it is being applied to then the last value in the array will be applied to every subsequent residue. The default value in all implementations should be DEFAULT_CROSS_PROB
        Parameters:
        crossOverProbs - an array of doubles giving the probability of a cross occuring at any place.
        Throws:
        ChangeVetoException
      • getCrossOverProbs

        double[] getCrossOverProbs()