Class AbstractListChromosome<T>

  • Type Parameters:
    T - type of the representation list
    All Implemented Interfaces:
    java.lang.Comparable<Chromosome>, Fitness
    Direct Known Subclasses:
    BinaryChromosome, RandomKey

    public abstract class AbstractListChromosome<T>
    extends Chromosome
    Chromosome represented by an immutable list of a fixed length.
    Since:
    2.0
    • Constructor Detail

      • AbstractListChromosome

        public AbstractListChromosome​(java.util.List<T> representation)
                               throws InvalidRepresentationException
        Constructor, copying the input representation.
        Parameters:
        representation - inner representation of the chromosome
        Throws:
        InvalidRepresentationException - iff the representation can not represent a valid chromosome
      • AbstractListChromosome

        public AbstractListChromosome​(T[] representation)
                               throws InvalidRepresentationException
        Constructor, copying the input representation.
        Parameters:
        representation - inner representation of the chromosome
        Throws:
        InvalidRepresentationException - iff the representation can not represent a valid chromosome
      • AbstractListChromosome

        public AbstractListChromosome​(java.util.List<T> representation,
                                      boolean copyList)
        Constructor.
        Parameters:
        representation - inner representation of the chromosome
        copyList - if true, the representation will be copied, otherwise it will be referenced.
        Since:
        3.3
    • Method Detail

      • checkValidity

        protected abstract void checkValidity​(java.util.List<T> chromosomeRepresentation)
                                       throws InvalidRepresentationException
        Asserts that representation can represent a valid chromosome.
        Parameters:
        chromosomeRepresentation - representation of the chromosome
        Throws:
        InvalidRepresentationException - iff the representation can not represent a valid chromosome
      • getRepresentation

        protected java.util.List<T> getRepresentation()
        Returns the (immutable) inner representation of the chromosome.
        Returns:
        the representation of the chromosome
      • getLength

        public int getLength()
        Returns the length of the chromosome.
        Returns:
        the length of the chromosome
      • newFixedLengthChromosome

        public abstract AbstractListChromosome<T> newFixedLengthChromosome​(java.util.List<T> chromosomeRepresentation)
        Creates a new instance of the same class as this is, with a given arrayRepresentation. This is needed in crossover and mutation operators, where we need a new instance of the same class, but with different array representation.

        Usually, this method just calls a constructor of the class.

        Parameters:
        chromosomeRepresentation - the inner array representation of the new chromosome.
        Returns:
        new instance extended from FixedLengthChromosome with the given arrayRepresentation
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object