Package ec.vector
Class IntegerVectorSpecies
java.lang.Object
ec.Species
ec.vector.VectorSpecies
ec.vector.IntegerVectorSpecies
- All Implemented Interfaces:
Prototype,Setup,Serializable,Cloneable
- Direct Known Subclasses:
DOVSSpecies,GESpecies,PBILSpecies
IntegerVectorSpecies is a subclass of VectorSpecies with special constraints
for integral vectors, namely ByteVectorIndividual, ShortVectorIndividual,
IntegerVectorIndividual, and LongVectorIndividual.
IntegerVectorSpecies can specify a number of parameters globally, per-segment, and per-gene. See VectorSpecies for information on how to this works.
IntegerVectorSpecies defines a minimum and maximum gene value. These values are used during initialization and, depending on whether mutation-bounded is true, also during various mutation algorithms to guarantee that the gene value will not exceed these minimum and maximum bounds.
IntegerVectorSpecies 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 (the default behavior).
- random-walkReplacing the gene's value by performing a random walk starting at the gene value. The random walk either adds 1 or subtracts 1 (chosen at random), then does a coin-flip to see whether to continue the random walk. When the coin-flip finally comes up false, the gene value is set to the current random walk position.
IntegerVectorSpecies performs gene initialization by resetting the gene.
Parameters
| base.min-gene or | |
| base.segment.segment-number.min-gene or | |
| base.min-gene.gene-number long (default=0) |
(the minimum gene value) |
| base.max-gene or | |
| base.segment.segment-number.max-gene or | |
| base.max-gene.gene-number long >= base.min-gene |
(the maximum gene value) |
| base.mutation-type or | |
| base.segment.segment-number.mutation-type or | |
| base.mutation-prob.gene-number reset or random-walk (default=reset) |
(the mutation type) |
| base.random-walk-probability or | |
| base.segment.segment-number.random-walk-probability or | |
| base.random-walk-probability.gene-number 0.0 <= double <= 1.0 |
(the probability that a random walk will continue. Random walks go up or down by 1.0 until the coin flip comes up false.) |
| base.mutation-bounded or | |
| base.segment.segment-number.mutation-bounded or | |
| base.mutation-bounded.gene-number boolean (default=true) |
(whether mutation is restricted to only being within the min/max gene values. Does not apply to SimulatedBinaryCrossover (which is always bounded)) |
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final intstatic final intprotected long[]Max-gene value, per gene.protected long[]Min-gene value, per gene.protected boolean[]Whether mutation is bounded to the min- and max-gene values, per gene.protected int[]Mutation type, per gene.static final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringprotected double[]The continuation probability for Integer Random Walk Mutation, per gene.static final Stringstatic final StringFields inherited from class ec.vector.VectorSpecies
C_ANY_POINT, C_GEOMETRIC, C_INTERMED_RECOMB, C_LINE_RECOMB, C_NONE, C_ONE_POINT, C_ONE_POINT_NO_NOP, C_SIMULATED_BINARY, C_TWO_POINT, C_TWO_POINT_NO_NOP, C_UNIFORM, chunksize, crossoverDistributionIndex, crossoverProbability, crossoverType, duplicateRetries, dynamicInitialSize, genomeIncreaseProbability, genomeResizeAlgorithm, genomeSize, lineDistance, maxInitialSize, minInitialSize, mutationProbability, P_CHUNKSIZE, P_CROSSOVER_DISTRIBUTION_INDEX, P_CROSSOVERPROB, P_CROSSOVERTYPE, P_DUPLICATE_RETRIES, P_GENOMESIZE, P_GEOMETRIC_PROBABILITY, P_LINEDISTANCE, P_MUTATIONPROB, P_UNIFORM_MAX, P_UNIFORM_MIN, P_VECTORSPECIES, V_ANY_POINT, V_GEOMETRIC, V_INTERMED_RECOMB, V_LINE_RECOMB, V_ONE_POINT, V_ONE_POINT_NO_NOP, V_SIMULATED_BINARY, V_TWO_POINT, V_TWO_POINT_NO_NOP, V_UNIFORMFields inherited from class ec.Species
f_prototype, i_prototype, P_FITNESS, P_INDIVIDUAL, P_PIPE, pipe_prototype -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionbooleaninNumericalTypeRange(double geneVal) booleaninNumericalTypeRange(long geneVal) protected voidloadParametersForGene(EvolutionState state, int index, Parameter base, Parameter def, String postfix) Called when VectorSpecies is setting up per-gene and per-segment parameters.longmaxGene(int gene) longminGene(int gene) booleanmutationIsBounded(int gene) intmutationType(int gene) doublerandomWalkProbability(int gene) voidsetup(EvolutionState state, Parameter base) The default version of setup(...) loads requested pipelines and calls setup(...) on them and normalizes their probabilities.Methods inherited from class ec.vector.VectorSpecies
contains, contains, contains, contains, defaultBase, duplicateRetries, fill, fill, fill, fill, initializeGenomeSegmentsByEndIndices, initializeGenomeSegmentsByStartIndices, mutationProbability, newIndividual, setupGenomeMethods inherited from class ec.Species
buildMisc, clone, newIndividual, newIndividual, updateIndividual, updateSubpopulation
-
Field Details
-
P_MINGENE
- See Also:
-
P_MAXGENE
- See Also:
-
P_NUM_SEGMENTS
- See Also:
-
P_SEGMENT_TYPE
- See Also:
-
P_SEGMENT_START
- See Also:
-
P_SEGMENT_END
- See Also:
-
P_SEGMENT
- See Also:
-
P_MUTATIONTYPE
- See Also:
-
P_RANDOM_WALK_PROBABILITY
- See Also:
-
P_MUTATION_BOUNDED
- See Also:
-
V_RESET_MUTATION
- See Also:
-
V_RANDOM_WALK_MUTATION
- See Also:
-
C_RESET_MUTATION
public static final int C_RESET_MUTATION- See Also:
-
C_RANDOM_WALK_MUTATION
public static final int C_RANDOM_WALK_MUTATION- See Also:
-
minGene
protected long[] minGeneMin-gene value, 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. -
maxGene
protected long[] maxGeneMax-gene value, 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. -
mutationType
protected int[] mutationTypeMutation 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. -
randomWalkProbability
protected double[] randomWalkProbabilityThe continuation probability for Integer Random Walk Mutation, 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. -
mutationIsBounded
protected boolean[] mutationIsBoundedWhether mutation is bounded to the min- and max-gene values, 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
-
IntegerVectorSpecies
public IntegerVectorSpecies()
-
-
Method Details
-
maxGene
public long maxGene(int gene) -
minGene
public long minGene(int gene) -
mutationType
public int mutationType(int gene) -
randomWalkProbability
public double randomWalkProbability(int gene) -
mutationIsBounded
public boolean mutationIsBounded(int gene) -
inNumericalTypeRange
public boolean inNumericalTypeRange(double geneVal) -
inNumericalTypeRange
public boolean inNumericalTypeRange(long geneVal) -
setup
Description copied from class:SpeciesThe 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. -
loadParametersForGene
protected void loadParametersForGene(EvolutionState state, int index, Parameter base, Parameter def, String postfix) Description copied from class:VectorSpeciesCalled 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:
loadParametersForGenein classVectorSpecies
-