Developer Documentation
Centre for Vision, Speech & Signal Processing
USER IN NAMESPACE AMMA TREE ROOT AMMA SEARCH AMMA HOME
 

  PUBLIC
NumOptimiseGeneticBC::gene2vect(IntSArray1dC) const
NumOptimiseGeneticBC::vect2gene(const VectorC &) const
NumOptimiseGeneticBC::EvaluateFitness(const IntSArray1dC &)
NumOptimiseGeneticBC::NumOptimiseGeneticBC(UIntT,UIntT,RealT,RealT)
NumOptimiseGeneticBC::NumOptimiseGeneticBC(istream &)
NumOptimiseGeneticBC::NumOptimiseGeneticBC(const NumOptimiseGeneticBC &)
NumOptimiseGeneticBC::Copy(void) const
NumOptimiseGeneticBC::MinimalX(const NumCostC &)
NumOptimiseGeneticBC::GetInfo(void) const
NumOptimiseGeneticBC::Save(ostream &) const
NumOptimiseBC::Copy(void) const
NumOptimiseBC::MinimalX(const NumCostC &)
NumOptimiseBC::MaximalX(const NumCostC &)
NumOptimiseBC::GetInfo(void) const
NumOptimiseBC::GetName(void) const
NumOptimiseBC::Save(ostream &) const
GeneticAlgorithmC::SetChromosomes(UIntT,UIntT,UIntT)
GeneticAlgorithmC::RandomPool(const IntSArray1dC &)
GeneticAlgorithmC::Generation(void)
GeneticAlgorithmC::GetBestGene(void) const
GeneticAlgorithmC::Save(ostream &) const
GeneticAlgorithmC::EvaluateFitness(const IntSArray1dC &)
GeneticAlgorithmC::Evaluation(void)
GeneticAlgorithmC::Selection(void)
GeneticAlgorithmC::Mutation(void)
GeneticAlgorithmC::Crossover(void)
GeneticAlgorithmC::Crossover(GeneC &,GeneC &)
BodyRefCounterVC::Copy(void) const
BodyRefCounterVC::operator==(const BodyRefCounterVC &) const
BodyRefCounterVC::operator!=(const BodyRefCounterVC &) const
BodyRefCounterVC::Save(ostream &) const
BodyRefCounterC::AddReference(void)
BodyRefCounterC::RemoveReference(void)
BodyRefCounterC::SetConst(void) const
BodyRefCounterC::SetConst(void)
BodyRefCounterC::IsConst(void) const
BodyRefCounterC::IsNotConst(void) const
BodyRefCounterC::ToBeDeleted(void) const
BodyRefCounterC::ToBeDeletedRemoveIgnoreNoRemove(void)
BodyRefCounterC::ToBeDeletedRemove(void)
BodyRefCounterC::BodyMightBeDeleted(void) const
BodyRefCounterC::IsCountZero(void) const
BodyRefCounterC::BRCPtrCanDeleteObject(void) const
BodyRefCounterC::Count(void) const
BodyRefCounterC::operator=(const BodyRefCounterC &)
BodyRefCounterC::IsValidObject(void) const
BodyRefCounterC::UserBitTest(IntT) const
BodyRefCounterC::UserBitSet(IntT,BooleanT)
BodyRefCounterC::UserBitZero(IntT)
BodyRefCounterC::ReportBRCError(char *)
BodyRefCounterC::Hash(void) const
BodyRefCounterC::SetUndeletable(void)
BodyRefCounterC::ReportInvalidObject(char *) const
RefCounterBaseC::Label(void) const
NumOptimiseGeneticBC
 
Genetic algorithm numerical optimiser implementation class.
 
include "amma/Num/NumOptimiseGeneticB.hh"
User Level:Default
Library:NumOptimise
Example:testNumOptimise.cc
Section:Optimisation.Implementation Numerical Methods.Optimisation.Implementation
In Scope:std

Comments:
This is the implementation class of the genetic algorithm numerical optimiser for the PatternRec toolbox. The NumOptimiseGeneticC handle class should be used.

Parent Classes: Variables:
UIntT _iterations;

IntSArray1dC _points;

NumCostC _domain;

Methods:
VectorC gene2vect(IntSArray1dC str) const
Converts a gene to a vector
This provides an interface between the gene bitstring representation and a vector which can be input to the cost function for evaluation.

IntSArray1dC vect2gene(const VectorC & X) const
Converts a vector to a gene
This is required for generating the initial gene estimate from an input vector.

RealT EvaluateFitness(const IntSArray1dC & gene)
Evaluates fitness of the given gene bitstring

NumOptimiseGeneticBC(UIntT poolSize = 21,UIntT iterations = 20,RealT probMutation = 0.05,RealT probCrossover = 0.6)
Class constructor.
poolSizenumber of genes in the pool at each generation. Should be odd.
iterationsnumber of generations to compute
probMutationchance per gene of mutation occuring
probCrossoverchance per gene par of crossover occuring

NumOptimiseGeneticBC(istream & in)
Constructs from stream

NumOptimiseGeneticBC(const NumOptimiseGeneticBC & oth)
Copy constructor.

BodyRefCounterVC & Copy() const
Makes a deep copy and is virtual

VectorC MinimalX(const NumCostC & domain)
Determines Xmin=arg min_{X} |f(X)-Yd|

const StringC GetInfo() const
Gets string of information about the optimizer

BooleanT Save(ostream & out) const
Writes object to stream, can be loaded using constructor

#include "amma/Num/NumOptimiseB.hh"
BodyRefCounterVC & Copy() const
Makes a deep copy and is virtual
As the copy constructor but is virtual so can be called from a base class reference.

VectorC MinimalX(const NumCostC & domain)
Determines Xmin=arg min_{X} domain(X)
A minimisation algorithm must be provided for each derived optimisation algorithm. It is not necessary to provide one for maximisation since that is achieved using a cost function inverter as described in the next member function.

VectorC MaximalX(const NumCostC & domain)
Determines Xmax=arg max_{X} domain(X)
This is calculated using MinimalX and inverting the cost function using NumCostInvertC.

const StringC GetInfo() const
Prints derived class information

const StringC GetName() const
Derived class type

BooleanT Save(ostream & out) const
Writes object to stream, can be loaded using constructor

#include "amma/GeneticAlgorithm.hh"
void SetChromosomes(UIntT chromosomeSize,UIntT minChromosomes,UIntT maxChromosomes)
Sets chromosome characteristics as in constructor

void RandomPool(const IntSArray1dC & initialGene)
Generates a random pool of genes.
initialGenestarting point or elite gene from previous generation
Generates a pool containing random genes inserts the initialGene into the pool to ensure its survival.

void Generation()
Performs one generation of evolution
This involves evaluation, selection, mutation and crossover.

const IntSArray1dC GetBestGene() const
Returns the best gene as a bit string

void Save(ostream & out) const
Writes object to stream, cna be loaded using constructor

RealT EvaluateFitness(const IntSArray1dC & gene)
Determine fitness of the given gene bitstring
Must be overloaded in derived class to calculated fitness given a gene string

void Evaluation()
Performs evaluation of the gene pool

void Selection()
Creates next generation gene pool using selection process

void Mutation()
Performs mutation of the genes

void Crossover()
Performs crossover of the genes

void Crossover(GeneC & mum,GeneC & dad)
Performs crossover of a pair of genes

#include "amma/BRefCntV.hh"
BodyRefCounterVC & Copy() const
Creat a copy of this object.

BooleanT operator==(const BodyRefCounterVC & oth) const
Compair identitys.

BooleanT operator!=(const BodyRefCounterVC & oth) const
Compair identitys.

BooleanT Save(ostream & out) const
Save to ostream.

#include "amma/BRefCnt.hh"
void AddReference()
Another reference to the object has been created.

void RemoveReference()
One reference to the object was deleted.
Locking scheme -------------- The object is possible to lock (to make constant). The scheme assumes that the object is created, it can be locked, after that it can only be destroyed. The locked object cannot be unlocked. This locking scheme is very useful during debugging, using assert() function, when it is necassary to check that object is treated as constant and the constancy is not violated by any casting or passing through the copy constructor of shared objects.

void SetConst(void) const
This locks the object.
Often objects you wish to lock are already const.

void SetConst(void)
This locks the object.

BooleanT IsConst(void) const
Returns TRUE if the object is locked, ie. it is assumed to be constant.

BooleanT IsNotConst(void) const
Returns TRUE if the object is unlocked.
ie. there is no special information if the object is constant or not. Counter state information -------------------------

BooleanT ToBeDeleted() const
Returns TRUE if there is only one reference to the object and the whole object or its reference counting part can be deleted.

BooleanT ToBeDeletedRemoveIgnoreNoRemove()
Decrement refrence by 1 return true if this leaves no refrences to the object.

BooleanT ToBeDeletedRemove()
Decrement refrence by 1 return true if this leaves no refrences to the object. This also checks the NoRemove flag.

BooleanT BodyMightBeDeleted() const
Returns TRUE if the reference counted part of the object can be deleted, ie. flag NOREMOVE is false .

BooleanT IsCountZero() const
Are there any refrences left ?

BooleanT BRCPtrCanDeleteObject() const
Used by BRRCPtrC to establish if an object has ZERO refrences and can be deleted.

IntT Count() const
Returns the current state of the counter, ie. how many references to this object exist.

const BodyRefCounterC & operator=(const BodyRefCounterC & b)
It has not meaning to assign object 'b' to this object because it would destroy a history of the object which is counted. So this is a dummy function.

BooleanT IsValidObject() const
Test if object is valid.
When amma check is disabled this always returns true.

BooleanT UserBitTest(IntT x) const
Test user flag.

void UserBitSet(IntT x,BooleanT setit = TRUE)
Test user flag.

void UserBitZero(IntT x)
Set bit to zero.

void ReportBRCError(char * Msg)
Report error, used in BRCPtrC.

UIntT Hash() const
Hash on address of object.

void SetUndeletable()
Make object undeletable.
Usefull to prevent recursive deleting in graph structures. Only hackers need this function.

void ReportInvalidObject(char * Msg = 0) const
Tell user about validation failure.

#include "amma/RefCBase.hh"
LabelT Label() const
Returns the label of this reference counter.
The member function is useful mainly to recognize objects during debugging. The value of the label is uniquely defined pointer.


Programmer:Robert Crida, Documentation by CxxDoc: Tue Mar 20 10:49:27 2001