ec.vector
Class VectorSpecies

java.lang.Object
  extended by ec.Species
      extended by ec.vector.VectorSpecies
All Implemented Interfaces:
Prototype, Setup, java.io.Serializable, java.lang.Cloneable
Direct Known Subclasses:
FloatVectorSpecies, GeneVectorSpecies, IntegerVectorSpecies

public class VectorSpecies
extends Species

VectorSpecies is a species which can create VectorIndividuals. Different VectorSpecies are used for different kinds of VectorIndividuals: a plain VectorSpecies is probably only applicable for BitVectorIndividuals.

VectorSpecies contains a number of parameters guiding how the individual crosses over and mutates.

Parameters

base.n.genome-size
int >= 1
(size of the genome)
base.n.chunk-size
1 <= int <= genome-size (default=1)
(the chunk size for crossover (crossover will only occur on chunk boundaries))
base.crossover-type
string, one of: one, two, any
(default crossover type (one-point, two-point, or any-point (uniform) crossover)
base.crossover-prob
0.0 >= float >= 1.0
(probability that a gene will get crossed over during any-point crossover)
base.mutation-prob
0.0 <= float <= 1.0
(probability that a gene will get mutated over default mutation)

Default Base
vector.species

Version:
1.0
Author:
Sean Luke and Liviu Panait
See Also:
Serialized Form

Field Summary
static int C_ANY_POINT
           
static int C_ONE_POINT
           
static int C_TWO_POINT
           
 int chunksize
          How big of chunks should we define for crossover?
 float crossoverProbability
          Probability that a gene will cross over -- ONLY used in V_ANY_POINT crossover
 int crossoverType
          What kind of crossover do we have?
 int genomeSize
          How big of a genome should we create on initialization?
 float mutationProbability
          Probability that a gene will mutate
static java.lang.String P_CHUNKSIZE
           
static java.lang.String P_CROSSOVERPROB
           
static java.lang.String P_CROSSOVERTYPE
           
static java.lang.String P_GENOMESIZE
           
static java.lang.String P_MUTATIONPROB
           
static java.lang.String P_VECTORSPECIES
           
static java.lang.String V_ANY_POINT
           
static java.lang.String V_ONE_POINT
           
static java.lang.String V_TWO_POINT
           
 
Fields inherited from class ec.Species
f_prototype, i_prototype, P_FITNESS, P_INDIVIDUAL, P_PIPE, pipe_prototype
 
Constructor Summary
VectorSpecies()
           
 
Method Summary
 Parameter defaultBase()
          Returns the default base for this prototype.
 Individual newIndividual(EvolutionState state, int thread)
          Provides a brand-new individual to fill in a population.
 void setup(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.Species
clone, newIndividual, newIndividual
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

P_VECTORSPECIES

public static final java.lang.String P_VECTORSPECIES
See Also:
Constant Field Values

P_CROSSOVERTYPE

public static final java.lang.String P_CROSSOVERTYPE
See Also:
Constant Field Values

P_CHUNKSIZE

public static final java.lang.String P_CHUNKSIZE
See Also:
Constant Field Values

V_ONE_POINT

public static final java.lang.String V_ONE_POINT
See Also:
Constant Field Values

V_TWO_POINT

public static final java.lang.String V_TWO_POINT
See Also:
Constant Field Values

V_ANY_POINT

public static final java.lang.String V_ANY_POINT
See Also:
Constant Field Values

P_MUTATIONPROB

public static final java.lang.String P_MUTATIONPROB
See Also:
Constant Field Values

P_CROSSOVERPROB

public static final java.lang.String P_CROSSOVERPROB
See Also:
Constant Field Values

P_GENOMESIZE

public static final java.lang.String P_GENOMESIZE
See Also:
Constant Field Values

C_ONE_POINT

public static final int C_ONE_POINT
See Also:
Constant Field Values

C_TWO_POINT

public static final int C_TWO_POINT
See Also:
Constant Field Values

C_ANY_POINT

public static final int C_ANY_POINT
See Also:
Constant Field Values

mutationProbability

public float mutationProbability
Probability that a gene will mutate


crossoverProbability

public float crossoverProbability
Probability that a gene will cross over -- ONLY used in V_ANY_POINT crossover


crossoverType

public int crossoverType
What kind of crossover do we have?


genomeSize

public int genomeSize
How big of a genome should we create on initialization?


chunksize

public int chunksize
How big of chunks should we define for crossover?

Constructor Detail

VectorSpecies

public VectorSpecies()
Method Detail

defaultBase

public Parameter defaultBase()
Description copied from interface: Prototype
Returns the default base for this prototype. This should generally be implemented by building off of the static base() method on the DefaultsForm object for the prototype's package. This should be callable during setup(...).


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 Species
See Also:
Prototype.setup(EvolutionState,Parameter)

newIndividual

public Individual newIndividual(EvolutionState state,
                                int thread)
Description copied from class: Species
Provides a brand-new individual to fill in a population. The default form simply calls clone(), creates a fitness, sets evaluated to false, and sets the species. If you need to make a more custom genotype (as is the case for GPSpecies, which requires a light rather than deep clone), you will need to override this method as you see fit.

Overrides:
newIndividual in class Species