| java.lang.Object org.jgap.BaseChromosome org.jgap.Chromosome
All known Subclasses: org.jgap.ChromosomeForTesting, examples.distinctGenes.MyChromosome,
Chromosome | public class Chromosome extends BaseChromosome (Code) | | Chromosomes represent potential solutions and consist of a fixed-length
collection of genes. Each gene represents a discrete part of the solution.
Each gene in the Chromosome may be backed by a different concrete
implementation of the Gene interface, but all genes in a respective
position (locus) must share the same concrete implementation across
Chromosomes within a single population (genotype). In other words, gene 1
in a chromosome must share the same concrete implementation as gene 1 in all
other chromosomes in the population.
author: Neil Rotstan author: Klaus Meffert since: 1.0 |
Field Summary | |
protected double | m_fitnessValue Stores the fitness value of this Chromosome as determined by the
active fitness function. |
Constructor Summary | |
public | Chromosome() Default constructor, only provided for dynamic instantiation.
Attention: The configuration used is the one set with the static method
Genotype.setConfiguration. | public | Chromosome(Configuration a_configuration) Constructor, provided for dynamic or minimal instantiation. | public | Chromosome(Configuration a_configuration, String a_persistentRepresentatuion) Constructor, provided for instantiation via persistent representation. | public | Chromosome(Configuration a_configuration, int a_desiredSize) Constructor for specifying the number of genes. | public | Chromosome(Configuration a_configuration, Gene a_sampleGene, int a_desiredSize) Constructs a Chromosome of the given size separate from any specific
Configuration. | public | Chromosome(Configuration a_configuration, Gene a_sampleGene, int a_desiredSize, IGeneConstraintChecker a_constraintChecker) | public | Chromosome(Configuration a_configuration, Gene[] a_initialGenes) Constructs a Chromosome separate from any specific Configuration. | public | Chromosome(Configuration a_configuration, Gene[] a_initialGenes, IGeneConstraintChecker a_constraintChecker) Constructs a Chromosome separate from any specific Configuration. |
m_fitnessValue | protected double m_fitnessValue(Code) | | Stores the fitness value of this Chromosome as determined by the
active fitness function. A value of -1 indicates that this field
has not yet been set with this Chromosome's fitness values (valid
fitness values are always positive).
since: 2.0 (until 1.1: type int) |
Chromosome | public Chromosome(Configuration a_configuration, Gene a_sampleGene, int a_desiredSize) throws InvalidConfigurationException(Code) | | Constructs a Chromosome of the given size separate from any specific
Configuration. This constructor will use the given sample Gene to
construct a new Chromosome instance containing genes all of the same
type as the sample Gene. This can be useful for constructing sample
chromosomes that use the same Gene type for all of their genes and that
are to be used to setup a Configuration object.
Parameters: a_configuration - the configuration to use Parameters: a_sampleGene - a concrete sampleGene instance that will be usedas a template for all of the genes in this Chromosome Parameters: a_desiredSize - the desired size (number of genes) of this Chromosome throws: InvalidConfigurationException - author: Neil Rotstan author: Klaus Meffert since: 1.0 |
Chromosome | public Chromosome(Configuration a_configuration, Gene[] a_initialGenes) throws InvalidConfigurationException(Code) | | Constructs a Chromosome separate from any specific Configuration. This
can be useful for constructing sample chromosomes that are to be used
to setup a Configuration object.
Parameters: a_configuration - the configuration to use Parameters: a_initialGenes - the initial genes of this Chromosome throws: InvalidConfigurationException - author: Neil Rotstan since: 1.0 |
Chromosome | public Chromosome(Configuration a_configuration, Gene[] a_initialGenes, IGeneConstraintChecker a_constraintChecker) throws InvalidConfigurationException(Code) | | Constructs a Chromosome separate from any specific Configuration. This
can be useful for constructing sample chromosomes that are to be used
to setup a Configuration object. Additionally, a constraint checker can be
specified. It is used right here to verify the validity of the gene types
supplied.
Parameters: a_configuration - the configuration to use Parameters: a_initialGenes - the initial genes of this Chromosome Parameters: a_constraintChecker - constraint checker to use throws: InvalidConfigurationException - in case the constraint checkerreports a configuration error author: Klaus Meffert since: 2.5 |
calcFitnessValue | protected double calcFitnessValue()(Code) | | fitness value of this chromosome determined via the registeredfitness function author: Klaus Meffert since: 2.4 |
checkGenes | protected void checkGenes(Gene[] a_initialGenes)(Code) | | Helper: called by constructors only to verify the initial genes.
Parameters: a_initialGenes - the initial genes of this Chromosome to verify author: Klaus Meffert since: 2.5 |
cleanup | public void cleanup()(Code) | | Invoked when this Chromosome is no longer needed and should perform
any necessary cleanup. Note that this method will attempt to release
this Chromosome instance to the active ChromosomePool, if any.
author: Neil Rotstan since: 1.0 |
clone | public synchronized Object clone()(Code) | | Returns a copy of this Chromosome. The returned instance can evolve
independently of this instance. Note that, if possible, this method
will first attempt to acquire a Chromosome instance from the active
ChromosomePool (if any) and set its value appropriately before
returning it. If that is not possible, then a new Chromosome instance
will be constructed and its value set appropriately before returning.
copy of this Chromosome throws: IllegalStateException - instead of CloneNotSupportedException author: Neil Rotstan author: Klaus Meffert since: 1.0 |
cloneObject | protected Object cloneObject(Object a_object) throws Exception(Code) | | Clones an object by using clone handlers. If no deep cloning possible, then
return the reference.
Parameters: a_object - the object to clone the cloned object, or the object itself if no coning supported throws: Exception - author: Klaus Meffert since: 2.6 |
compareTo | public int compareTo(Object other)(Code) | | Compares the given Chromosome to this Chromosome. This chromosome is
considered to be "less than" the given chromosome if it has a fewer
number of genes or if any of its gene values (alleles) are less than
their corresponding gene values in the other chromosome.
Parameters: other - the Chromosome against which to compare this chromosome a negative number if this chromosome is "less than" the givenchromosome, zero if they are equal to each other, and a positive number ifthis chromosome is "greater than" the given chromosome author: Neil Rotstan author: Klaus Meffert since: 1.0 |
equals | public boolean equals(Object other)(Code) | | Compares this Chromosome against the specified object. The result is
true if and the argument is an instance of the Chromosome class
and has a set of genes equal to this one.
Parameters: other - the object to compare against true: if the objects are the same, false otherwise author: Neil Rotstan author: Klaus Meffert since: 1.0 |
getApplicationData | public Object getApplicationData()(Code) | | Retrieves the application-specific data that is attached to this
Chromosome. Attaching application-specific data may be useful for
some applications when it comes time to evaluate this Chromosome
in the fitness function. JGAP ignores this data functionally.
the application-specific data previously attached to thisChromosome, or null if there is no data attached author: Neil Rotstan since: 1.1 |
getConstraintChecker | public IGeneConstraintChecker getConstraintChecker()(Code) | | IGeneConstraintChecker the constraint checker to be used whenevermethod setGenes(Gene[]) is called. author: Klaus Meffert since: 2.5 |
getFitnessValue | public double getFitnessValue()(Code) | | Retrieves the fitness value of this Chromosome, as determined by the
active fitness function. If a bulk fitness function is in use and
has not yet assigned a fitness value to this Chromosome, then -1 is
returned.
Attention: should not be called from toString() as the fitness value would
be computed if it was initial!
a positive double value representing the fitness of thisChromosome, or -1 if a bulk fitness function is in use and has not yetassigned a fitness value to this Chromosome author: Neil Rotstan author: Klaus Meffert since: 2.0 |
getFitnessValueDirectly | public double getFitnessValueDirectly()(Code) | | the lastly computed fitness value, or FitnessFunction.NO_FITNESS_VALUEin case no value has been computed yet. author: Klaus Meffert |
getMultiObjectives | public List getMultiObjectives()(Code) | | |
hashCode | public int hashCode()(Code) | | Retrieve a hash code for this Chromosome. Does not considers the order
of the Genes for all cases (especially when gene is empty).
the hash code of this Chromosome author: Neil Rotstan author: Klaus Meffert since: 1.0 |
initFromGene | protected void initFromGene(Gene a_sampleGene)(Code) | | |
isCompareApplicationData | public boolean isCompareApplicationData()(Code) | | |
isSelectedForNextGeneration | public boolean isSelectedForNextGeneration()(Code) | | Retrieves whether this Chromosome has been selected by the natural
selector to continue to the next generation.
true if this Chromosome has been selected, false otherwise author: Neil Rotstan since: 1.0 |
randomInitialChromosome | public static IChromosome randomInitialChromosome(Configuration a_configuration) throws InvalidConfigurationException(Code) | | Convenience method that returns a new Chromosome instance with its
genes values (alleles) randomized. Note that, if possible, this method
will acquire a Chromosome instance from the active ChromosomePool
(if any) and then randomize its gene values before returning it. If a
Chromosome cannot be acquired from the pool, then a new instance will
be constructed and its gene values randomized before returning it.
Parameters: a_configuration - the configuration to use randomly initialized Chromosome throws: InvalidConfigurationException - if the given Configurationinstance is invalid throws: IllegalArgumentException - if the given Configuration instanceis null author: Neil Rotstan author: Klaus Meffert since: 1.0 |
setApplicationData | public void setApplicationData(Object a_newData)(Code) | | This sets the application-specific data that is attached to this
Chromosome. Attaching application-specific data may be useful for
some applications when it comes time to evaluate this Chromosome
in the fitness function. JGAP ignores this data, except for cloning and
comparison (latter only if opted in via setCompareApplicationData(..))
Parameters: a_newData - the new application-specific data to attach to thisChromosome. Should be an instance of IApplicationData author: Neil Rotstan since: 1.1 |
setCompareApplicationData | public void setCompareApplicationData(boolean a_doCompare)(Code) | | Should we also consider the application data when comparing? Default is
"false" as "true" means a Chromosome is losing its identity when
application data is set differently!
Parameters: a_doCompare - true: consider application data in method compareTo author: Klaus Meffert since: 2.2 |
setFitnessValue | public void setFitnessValue(double a_newFitnessValue)(Code) | | Sets the fitness value of this Chromosome. This method is for use
by bulk fitness functions and should not be invokved from anything
else (except test cases).
Parameters: a_newFitnessValue - a positive integer representing the fitnessof this Chromosome author: Neil Rotstan since: 1.0 |
setFitnessValueDirectly | public void setFitnessValueDirectly(double a_newFitnessValue)(Code) | | Sets the fitness value of this Chromosome directly without any
constraint checks, conversions or checks. Only use if you know what
you do.
Parameters: a_newFitnessValue - a positive integer representing the fitnessof this Chromosome author: Klaus Meffert |
setIsSelectedForNextGeneration | public void setIsSelectedForNextGeneration(boolean a_isSelected)(Code) | | Sets whether this Chromosome has been selected by the natural selector
to continue to the next generation or manually (e.g. via an add-method).
Parameters: a_isSelected - true if this Chromosome has been selected, falseotherwise author: Neil Rotstan since: 1.0 |
setMultiObjectives | public void setMultiObjectives(List a_values)(Code) | | |
toString | public String toString()(Code) | | a string representation of this Chromosome, useful for displaypurposes author: Neil Rotstan author: Klaus Meffert since: 1.0 |
|
|