Package ec.vector

Class BitVectorSpecies

All Implemented Interfaces:
Prototype, Setup, Serializable, Cloneable

public class BitVectorSpecies extends VectorSpecies
BitVectorSpecies is a subclass of VectorSpecies with special constraints for boolean vectors, namely BitVectorIndividual.

BitVectorSpecies can specify some parameters globally, per-segment, and per-gene. See VectorSpecies for information on how to this works.

BitVectorSpecies provides support for two ways of mutating a gene.

  • reset Replacing the gene's value with a value uniformly drawn from the gene's range [true, false].
  • flipFlipping the bit of the gene value. This is the default.

BitVectorSpecies provides support for two ways of initializing a gene. The initialization procedure is determined by the choice of mutation procedure as described above. If the mutation is floating-point (reset, gauss, polynomial), then initialization will be done by resetting the gene to uniformly chosen double floating-point value between the minimum and maximum legal gene values, inclusive. If the mutation is integer (integer-reset, integer-random-walk), then initialization will be done by performing the same kind of reset, but restricting values to integers only.

Parameters

 
base.mutation-type   or
base.segment.segment-number.mutation-type   or
base.mutation-prob.gene-number
reset, flip, (default=flip)
(the mutation type)
See Also:
  • Field Details

    • P_MUTATIONTYPE

      public static final String P_MUTATIONTYPE
      See Also:
    • V_RESET_MUTATION

      public static final String V_RESET_MUTATION
      See Also:
    • V_FLIP_MUTATION

      public static final String V_FLIP_MUTATION
      See Also:
    • C_RESET_MUTATION

      public static final int C_RESET_MUTATION
      See Also:
    • C_FLIP_MUTATION

      public static final int C_FLIP_MUTATION
      See Also:
    • mutationType

      protected int[] mutationType
      Mutation type, per gene. This array is one longer than the standard genome length. The top element in the array represents the parameters for genes in genomes which have extended beyond the genome length.
  • Constructor Details

    • BitVectorSpecies

      public BitVectorSpecies()
  • Method Details

    • mutationType

      public int mutationType(int gene)
    • setup

      public void setup(EvolutionState state, Parameter base)
      Description copied from class: Species
      The default version of setup(...) loads requested pipelines and calls setup(...) on them and normalizes their probabilities. If your individual prototype might need to know special things about the species (like parameters stored in it), then when you override this setup method, you'll need to set those parameters BEFORE you call super.setup(...), because the setup(...) code in Species sets up the prototype.
      Specified by:
      setup in interface Prototype
      Specified by:
      setup in interface Setup
      Overrides:
      setup in class VectorSpecies
      See Also:
    • loadParametersForGene

      protected void loadParametersForGene(EvolutionState state, int index, Parameter base, Parameter def, String postfix)
      Called when VectorSpecies is setting up per-gene and per-segment parameters. The index is the current gene whose parameter is getting set up. The Parameters in question are the bases for the gene. The postfix should be appended to the end of any parameter looked up (it often contains a number indicating the gene in question), such as state.parameters.exists(base.push(P_PARAM).push(postfix), def.push(P_PARAM).push(postfix)

      If you override this method, be sure to call super(...) at some point, ideally first.

      Overrides:
      loadParametersForGene in class VectorSpecies