Class ImmutableGPUEAConfiguration<T extends Comparable<T>>


@Generated("org.immutables.processor.ProxyProcessor") public final class ImmutableGPUEAConfiguration<T extends Comparable<T>> extends GPUEAConfiguration<T>
Immutable implementation of GPUEAConfiguration.

Use the builder to create immutable instances: new GPUEAConfiguration.Builder().

  • Field Details

  • Constructor Details

  • Method Details

    • chromosomeSpecs

      public List<ChromosomeSpec> chromosomeSpecs()
      Description copied from class: AbstractEAConfiguration
      Genotype of the population
      Specified by:
      chromosomeSpecs in class AbstractEAConfiguration<T extends Comparable<T>>
      Returns:
      The value of the chromosomeSpecs attribute
    • parentSelectionPolicy

      public SelectionPolicy parentSelectionPolicy()
      Description copied from class: AbstractEAConfiguration
      Defines the policy to select the parents. The selected parents will be used for generating the new offsprings
      Specified by:
      parentSelectionPolicy in class AbstractEAConfiguration<T extends Comparable<T>>
      Returns:
      The value of the parentSelectionPolicy attribute
    • combinationPolicy

      public CombinationPolicy combinationPolicy()
      Description copied from class: AbstractEAConfiguration
      Defines the policy to generate new offsprings from two parents
      Specified by:
      combinationPolicy in class AbstractEAConfiguration<T extends Comparable<T>>
      Returns:
      The value of the combinationPolicy attribute
    • mutationPolicies

      public List<MutationPolicy> mutationPolicies()
      Description copied from class: AbstractEAConfiguration
      Defines what mutations to be performed on the offsprings
      Specified by:
      mutationPolicies in class AbstractEAConfiguration<T extends Comparable<T>>
      Returns:
      The value of the mutationPolicies attribute
    • replacementStrategy

      public ReplacementStrategy replacementStrategy()
      Description copied from class: AbstractEAConfiguration
      Defines the replacement strategy

      The replacement strategy is what will determine the next population based on the generated and mutated offsprings along with the current population

      If not specified, the default replacement strategy will be to use Elitism with tournament selection of 3 individuals for both offsprings and survivors. The default offspring ratio is Elitism.DEFAULT_OFFSPRING_RATIO

      Overrides:
      replacementStrategy in class AbstractEAConfiguration<T extends Comparable<T>>
      Returns:
      The value of the replacementStrategy attribute
    • postEvaluationProcessor

      public Optional<Function<Population<T>,Population<T>>> postEvaluationProcessor()
      Description copied from class: AbstractEAConfiguration
      Post-processing of a population after it got evaluated

      This gives the opportunity to filter out, repair or rescore individuals

      Specified by:
      postEvaluationProcessor in class AbstractEAConfiguration<T extends Comparable<T>>
      Returns:
      The value of the postEvaluationProcessor attribute
    • termination

      public Termination<T> termination()
      Description copied from class: AbstractEAConfiguration
      Defines termination condition
      Specified by:
      termination in class AbstractEAConfiguration<T extends Comparable<T>>
      Returns:
      The value of the termination attribute
    • genotypeGenerator

      public Optional<Supplier<Genotype>> genotypeGenerator()
      Description copied from class: AbstractEAConfiguration
      Defines how to generate individuals

      If not specified, the system will rely on the chromosome factories

      Specified by:
      genotypeGenerator in class AbstractEAConfiguration<T extends Comparable<T>>
      Returns:
      The value of the genotypeGenerator attribute
    • seedPopulation

      public Collection<Genotype> seedPopulation()
      Description copied from class: AbstractEAConfiguration
      Seed the initial population with specific individuals
      Overrides:
      seedPopulation in class AbstractEAConfiguration<T extends Comparable<T>>
      Returns:
      The value of the seedPopulation attribute
    • genotypeCombinator

      public GenotypeCombinator genotypeCombinator()
      Description copied from class: AbstractEAConfiguration
      Defines how to combine the offspring chromosomes generated

      Combination of individuals is done on a per chromosome basis. This means some parents may generate a different number of children for each chromosome. This method will therefore define how to take all these generated chromosomes and combine them into offspring individuals

      The current default implementation is to generate as many individual as there are combinations of generated chromosomes

      Overrides:
      genotypeCombinator in class AbstractEAConfiguration<T extends Comparable<T>>
      Returns:
      The value of the genotypeCombinator attribute
    • offspringGeneratedRatio

      public double offspringGeneratedRatio()
      Description copied from class: AbstractEAConfiguration
      Defines how many children will be generated at each iteration. Value must be between 0 and 1 (inclusive) and represents a fraction of the population size
      Overrides:
      offspringGeneratedRatio in class AbstractEAConfiguration<T extends Comparable<T>>
      Returns:
      The value of the offspringGeneratedRatio attribute
    • optimization

      public Optimization optimization()
      Description copied from class: AbstractEAConfiguration
      Defines the optimization goal, whether we want to maximize the fitness or minimize it
      Overrides:
      optimization in class AbstractEAConfiguration<T extends Comparable<T>>
      Returns:
      The value of the optimization attribute
    • program

      public Program program()
      Specified by:
      program in class GPUEAConfiguration<T extends Comparable<T>>
      Returns:
      The value of the program attribute
    • fitness

      public OpenCLFitness<T> fitness()
      Specified by:
      fitness in class GPUEAConfiguration<T extends Comparable<T>>
      Returns:
      The value of the fitness attribute
    • withChromosomeSpecs

      public final ImmutableGPUEAConfiguration<T> withChromosomeSpecs(ChromosomeSpec... elements)
      Copy the current immutable object with elements that replace the content of chromosomeSpecs.
      Parameters:
      elements - The elements to set
      Returns:
      A modified copy of this object
    • withChromosomeSpecs

      public final ImmutableGPUEAConfiguration<T> withChromosomeSpecs(Iterable<? extends ChromosomeSpec> elements)
      Copy the current immutable object with elements that replace the content of chromosomeSpecs. A shallow reference equality check is used to prevent copying of the same value by returning this.
      Parameters:
      elements - An iterable of chromosomeSpecs elements to set
      Returns:
      A modified copy of this object
    • withParentSelectionPolicy

      public final ImmutableGPUEAConfiguration<T> withParentSelectionPolicy(SelectionPolicy value)
      Copy the current immutable object by setting a value for the parentSelectionPolicy attribute. A shallow reference equality check is used to prevent copying of the same value by returning this.
      Parameters:
      value - A new value for parentSelectionPolicy
      Returns:
      A modified copy of the this object
    • withCombinationPolicy

      public final ImmutableGPUEAConfiguration<T> withCombinationPolicy(CombinationPolicy value)
      Copy the current immutable object by setting a value for the combinationPolicy attribute. A shallow reference equality check is used to prevent copying of the same value by returning this.
      Parameters:
      value - A new value for combinationPolicy
      Returns:
      A modified copy of the this object
    • withMutationPolicies

      public final ImmutableGPUEAConfiguration<T> withMutationPolicies(MutationPolicy... elements)
      Copy the current immutable object with elements that replace the content of mutationPolicies.
      Parameters:
      elements - The elements to set
      Returns:
      A modified copy of this object
    • withMutationPolicies

      public final ImmutableGPUEAConfiguration<T> withMutationPolicies(Iterable<? extends MutationPolicy> elements)
      Copy the current immutable object with elements that replace the content of mutationPolicies. A shallow reference equality check is used to prevent copying of the same value by returning this.
      Parameters:
      elements - An iterable of mutationPolicies elements to set
      Returns:
      A modified copy of this object
    • withReplacementStrategy

      public final ImmutableGPUEAConfiguration<T> withReplacementStrategy(ReplacementStrategy value)
      Copy the current immutable object by setting a value for the replacementStrategy attribute. A shallow reference equality check is used to prevent copying of the same value by returning this.
      Parameters:
      value - A new value for replacementStrategy
      Returns:
      A modified copy of the this object
    • withPostEvaluationProcessor

      public final ImmutableGPUEAConfiguration<T> withPostEvaluationProcessor(Function<Population<T>,Population<T>> value)
      Copy the current immutable object by setting a present value for the optional postEvaluationProcessor attribute.
      Parameters:
      value - The value for postEvaluationProcessor
      Returns:
      A modified copy of this object
    • withPostEvaluationProcessor

      public final ImmutableGPUEAConfiguration<T> withPostEvaluationProcessor(Optional<? extends Function<Population<T>,Population<T>>> optional)
      Copy the current immutable object by setting an optional value for the postEvaluationProcessor attribute. A shallow reference equality check is used on unboxed optional value to prevent copying of the same value by returning this.
      Parameters:
      optional - A value for postEvaluationProcessor
      Returns:
      A modified copy of this object
    • withTermination

      public final ImmutableGPUEAConfiguration<T> withTermination(Termination<T> value)
      Copy the current immutable object by setting a value for the termination attribute. A shallow reference equality check is used to prevent copying of the same value by returning this.
      Parameters:
      value - A new value for termination
      Returns:
      A modified copy of the this object
    • withGenotypeGenerator

      public final ImmutableGPUEAConfiguration<T> withGenotypeGenerator(Supplier<Genotype> value)
      Copy the current immutable object by setting a present value for the optional genotypeGenerator attribute.
      Parameters:
      value - The value for genotypeGenerator
      Returns:
      A modified copy of this object
    • withGenotypeGenerator

      public final ImmutableGPUEAConfiguration<T> withGenotypeGenerator(Optional<? extends Supplier<Genotype>> optional)
      Copy the current immutable object by setting an optional value for the genotypeGenerator attribute. A shallow reference equality check is used on unboxed optional value to prevent copying of the same value by returning this.
      Parameters:
      optional - A value for genotypeGenerator
      Returns:
      A modified copy of this object
    • withSeedPopulation

      public final ImmutableGPUEAConfiguration<T> withSeedPopulation(Collection<Genotype> value)
      Copy the current immutable object by setting a value for the seedPopulation attribute. A shallow reference equality check is used to prevent copying of the same value by returning this.
      Parameters:
      value - A new value for seedPopulation
      Returns:
      A modified copy of the this object
    • withGenotypeCombinator

      public final ImmutableGPUEAConfiguration<T> withGenotypeCombinator(GenotypeCombinator value)
      Copy the current immutable object by setting a value for the genotypeCombinator attribute. A shallow reference equality check is used to prevent copying of the same value by returning this.
      Parameters:
      value - A new value for genotypeCombinator
      Returns:
      A modified copy of the this object
    • withOffspringGeneratedRatio

      public final ImmutableGPUEAConfiguration<T> withOffspringGeneratedRatio(double value)
      Copy the current immutable object by setting a value for the offspringGeneratedRatio attribute. A value strict bits equality used to prevent copying of the same value by returning this.
      Parameters:
      value - A new value for offspringGeneratedRatio
      Returns:
      A modified copy of the this object
    • withOptimization

      public final ImmutableGPUEAConfiguration<T> withOptimization(Optimization value)
      Copy the current immutable object by setting a value for the optimization attribute. A value equality check is used to prevent copying of the same value by returning this.
      Parameters:
      value - A new value for optimization
      Returns:
      A modified copy of the this object
    • withProgram

      public final ImmutableGPUEAConfiguration<T> withProgram(Program value)
      Copy the current immutable object by setting a value for the program attribute. A shallow reference equality check is used to prevent copying of the same value by returning this.
      Parameters:
      value - A new value for program
      Returns:
      A modified copy of the this object
    • withFitness

      public final ImmutableGPUEAConfiguration<T> withFitness(OpenCLFitness<T> value)
      Copy the current immutable object by setting a value for the fitness attribute. A shallow reference equality check is used to prevent copying of the same value by returning this.
      Parameters:
      value - A new value for fitness
      Returns:
      A modified copy of the this object
    • equals

      public boolean equals(Object another)
      This instance is equal to all instances of ImmutableGPUEAConfiguration that have equal attribute values.
      Overrides:
      equals in class Object
      Returns:
      true if this is equal to another instance
    • equalTo

      private boolean equalTo(int synthetic, ImmutableGPUEAConfiguration<?> another)
    • hashCode

      public int hashCode()
      Computes a hash code from attributes: chromosomeSpecs, parentSelectionPolicy, combinationPolicy, mutationPolicies, replacementStrategy, postEvaluationProcessor, termination, genotypeGenerator, seedPopulation, genotypeCombinator, offspringGeneratedRatio, optimization, program, fitness.
      Overrides:
      hashCode in class Object
      Returns:
      hashCode value
    • toString

      public String toString()
      Prints the immutable value GPUEAConfiguration with attribute values.
      Overrides:
      toString in class Object
      Returns:
      A string representation of the value
    • validate

      private static <T extends Comparable<T>> ImmutableGPUEAConfiguration<T> validate(ImmutableGPUEAConfiguration<T> instance)
    • copyOf

      public static <T extends Comparable<T>> ImmutableGPUEAConfiguration<T> copyOf(GPUEAConfiguration<T> instance)
      Creates an immutable copy of a GPUEAConfiguration value. Uses accessors to get values to initialize the new immutable instance. If an instance is already immutable, it is returned as is.
      Type Parameters:
      T - generic parameter T
      Parameters:
      instance - The instance to copy
      Returns:
      A copied immutable GPUEAConfiguration instance
    • createSafeList

      private static <T> List<T> createSafeList(Iterable<? extends T> iterable, boolean checkNulls, boolean skipNulls)
    • createUnmodifiableList

      private static <T> List<T> createUnmodifiableList(boolean clone, List<T> list)