FREE::ES::AsymmetricMutation< TIndividual > Class Template Reference
[Evolutionary strategies]

Mutation component of an ES. More...

#include <freESAsymmetricMutation.h>

Inheritance diagram for FREE::ES::AsymmetricMutation< TIndividual >:

Inheritance graph
FREE::ES::MutationBase\< TIndividual \>FREE::ES::ComponentBase\< TIndividual \>
[legend]
Collaboration diagram for FREE::ES::AsymmetricMutation< TIndividual >:

Collaboration graph
FREE::ES::MutationBase\< TIndividual \>FREE::ES::ComponentBase\< TIndividual \>
[legend]

List of all members.

Public Types

typedef
AsymmetricMutation
< TIndividual > 
Self
typedef MutationBase
< TIndividual > 
Superclass
typedef
itk::SmartPointer
< Self
Pointer
typedef
itk::SmartPointer
< const Self
ConstPointer
typedef
Superclass::IndividualType 
IndividualType
typedef
IndividualType::Pointer 
IndividualPointer
typedef
Superclass::PopulationType 
PopulationType
typedef
PopulationType::Pointer 
PopulationPointer
typedef
itk::Statistics::AsymmetricVariateGenerator 
VariateGeneratorType

Public Member Functions

virtual
::itk::LightObject::Pointer 
CreateAnother (void) const
virtual const char * GetNameOfClass () const
void RegisterStrategicIndividualParameters (IndividualType &individual) const
void RegisterStrategicPopulationParameters (PopulationType &population) const
void MutateStrategicPopulationParameters (PopulationType &population) const
void MutateStrategicIndividualParameters (IndividualType &individual, PopulationType &population) const
double MutateValue (const double &value)
virtual void SetGamma (const double _arg)
virtual double GetGamma ()
virtual void SetTau (const double _arg)
virtual double GetTau ()
virtual void SetTauGlobal (const double _arg)
virtual double GetTauGlobal ()
virtual void SetTau_Skewness (const double _arg)
virtual double GetTau_Skewness ()
virtual void SetTauGlobal_Skewness (const double _arg)
virtual double GetTauGlobal_Skewness ()
virtual void SetMutateValueVariance (const double _arg)
virtual double GetMutateValueVariance ()
virtual void SetMutateValueSkewness (const double _arg)
virtual double GetMutateValueSkewness ()
VariateGeneratorTypeGetRandomGenerator ()

Static Public Member Functions

static Pointer New (void)

Protected Member Functions

 AsymmetricMutation ()
void MutateObjectivParameters (IndividualType *pIndividual, PopulationType *pPopulation) const

Protected Attributes

double m_Gamma
double m_TauGlobal
double m_Tau
double m_TauGlobal_Skewness
double m_Tau_Skewness
double m_MutateValueVariance
double m_MutateValueSkewness
VariateGeneratorType::Pointer m_RandomGenerator

Private Member Functions

 AsymmetricMutation (Self const &)


Detailed Description

template<class TIndividual>
class FREE::ES::AsymmetricMutation< TIndividual >

Mutation component of an ES.

Mutates the objective values with an asymmetric distributed variate. The variance and "skewness" of the variate for each objective parameter is stored as strategic parameter. The variance will be mutated by a log-normal distributed variate. The skewness will be mutated by a normal distributed variate. Both will be used to mutate the objective parameters.
z[i] = LN(0,Tau)
z = LN(0,TauGlobal)
v'[i] = v[i] * z * z[i]
z_s[i] = N(0,Tau_Skewness)
z_s = N(0,TauGlobal_Skewness)
s'[i] = s[i] + z_s * z_s[i]
x'[i] = x[i] + AN(0,v'[i],s'[i])

z[i]: log-normal distributed variate (related to the i-th objective parameter for one individual)
z: log-normal distributed variate (related to the i-th objective parameter for the whole population)
v[i]: strategic parameter variance(related to the i-th objective parameter)(before mutation)
v'[i]: strategic parameter variance (related to the i-th objective parameter)(after mutation)
z_s[i]: normal distributed variate (related to the i-th objective parameter for one individual)
z_s: normal distributed variate (related to the i-th objective parameter for the whole population)
s[i]: strategic parameter skewness (related to the i-th objective parameter)(before mutation)
s'[i]: strategic parameter skewness (related to the i-th objective parameter)(after mutation)
x[i]: the i-th objectiv parameter (before mutation)
x'[i]: the i-th objectiv parameter (after mutation)

The asymmetric mutation is based on a work of Hildebrand [1] and implemented using the concept he presented.
[1] L. Hildebrand, Asymmetrische Evolutionsstrategien, Information Technology 46 (2004): 353-355.

Definition at line 69 of file freESAsymmetricMutation.h.


Member Typedef Documentation

template<class TIndividual>
typedef AsymmetricMutation<TIndividual> FREE::ES::AsymmetricMutation< TIndividual >::Self

Standard "Self" typedef.

Reimplemented from FREE::ES::MutationBase< TIndividual >.

Definition at line 74 of file freESAsymmetricMutation.h.

template<class TIndividual>
typedef MutationBase<TIndividual> FREE::ES::AsymmetricMutation< TIndividual >::Superclass

Reimplemented from FREE::ES::MutationBase< TIndividual >.

Definition at line 75 of file freESAsymmetricMutation.h.

template<class TIndividual>
typedef itk::SmartPointer<Self> FREE::ES::AsymmetricMutation< TIndividual >::Pointer

Reimplemented from FREE::ES::MutationBase< TIndividual >.

Definition at line 76 of file freESAsymmetricMutation.h.

template<class TIndividual>
typedef itk::SmartPointer<const Self> FREE::ES::AsymmetricMutation< TIndividual >::ConstPointer

Reimplemented from FREE::ES::MutationBase< TIndividual >.

Definition at line 77 of file freESAsymmetricMutation.h.

template<class TIndividual>
typedef Superclass::IndividualType FREE::ES::AsymmetricMutation< TIndividual >::IndividualType

Reimplemented from FREE::ES::MutationBase< TIndividual >.

Definition at line 83 of file freESAsymmetricMutation.h.

template<class TIndividual>
typedef IndividualType::Pointer FREE::ES::AsymmetricMutation< TIndividual >::IndividualPointer

Reimplemented from FREE::ES::MutationBase< TIndividual >.

Definition at line 86 of file freESAsymmetricMutation.h.

template<class TIndividual>
typedef Superclass::PopulationType FREE::ES::AsymmetricMutation< TIndividual >::PopulationType

Reimplemented from FREE::ES::MutationBase< TIndividual >.

Definition at line 87 of file freESAsymmetricMutation.h.

template<class TIndividual>
typedef PopulationType::Pointer FREE::ES::AsymmetricMutation< TIndividual >::PopulationPointer

Definition at line 88 of file freESAsymmetricMutation.h.

template<class TIndividual>
typedef itk::Statistics::AsymmetricVariateGenerator FREE::ES::AsymmetricMutation< TIndividual >::VariateGeneratorType

random variate generator type.

Definition at line 116 of file freESAsymmetricMutation.h.


Constructor & Destructor Documentation

template<class TIndividual>
FREE::ES::AsymmetricMutation< TIndividual >::AsymmetricMutation (  )  [inline, protected]

Definition at line 36 of file freESAsymmetricMutation.txx.

template<class TIndividual>
FREE::ES::AsymmetricMutation< TIndividual >::AsymmetricMutation ( Self const &   )  [private]


Member Function Documentation

template<class TIndividual>
static Pointer FREE::ES::AsymmetricMutation< TIndividual >::New ( void   )  [inline, static]

Method for creation through the object factory.

Reimplemented from FREE::ES::ComponentBase< TIndividual >.

Definition at line 80 of file freESAsymmetricMutation.h.

template<class TIndividual>
virtual ::itk::LightObject::Pointer FREE::ES::AsymmetricMutation< TIndividual >::CreateAnother ( void   )  const [inline, virtual]

Reimplemented from FREE::ES::ComponentBase< TIndividual >.

Definition at line 80 of file freESAsymmetricMutation.h.

template<class TIndividual>
virtual const char* FREE::ES::AsymmetricMutation< TIndividual >::GetNameOfClass (  )  const [inline, virtual]

Run-time type information (and related methods).

Reimplemented from FREE::ES::MutationBase< TIndividual >.

Definition at line 83 of file freESAsymmetricMutation.h.

template<class TIndividual>
void FREE::ES::AsymmetricMutation< TIndividual >::RegisterStrategicIndividualParameters ( IndividualType individual  )  const [inline]

Definition at line 54 of file freESAsymmetricMutation.txx.

template<class TIndividual>
void FREE::ES::AsymmetricMutation< TIndividual >::RegisterStrategicPopulationParameters ( PopulationType population  )  const [inline, virtual]

Reimplemented from FREE::ES::ComponentBase< TIndividual >.

Definition at line 75 of file freESAsymmetricMutation.txx.

References FREE::ES::Population< TIndividual >::StrategicParameters().

Here is the call graph for this function:

FREE::ES::Population::StrategicParameters

template<class TIndividual>
void FREE::ES::AsymmetricMutation< TIndividual >::MutateStrategicPopulationParameters ( PopulationType population  )  const [inline, virtual]

Reimplemented from FREE::ES::ComponentBase< TIndividual >.

Definition at line 140 of file freESAsymmetricMutation.txx.

References FREE::ES::Population< TIndividual >::StrategicParameters().

Here is the call graph for this function:

FREE::ES::Population::StrategicParameters

template<class TIndividual>
void FREE::ES::AsymmetricMutation< TIndividual >::MutateStrategicIndividualParameters ( IndividualType individual,
PopulationType population 
) const [inline]

Definition at line 102 of file freESAsymmetricMutation.txx.

References FREE::ES::Population< TIndividual >::StrategicParameters().

Here is the call graph for this function:

FREE::ES::Population::StrategicParameters

template<class TIndividual>
double FREE::ES::AsymmetricMutation< TIndividual >::MutateValue ( const double &  value  )  [inline, virtual]

Mutates the passed value, any mutation parameters (if existant) must be set, befor calling this function

Parameters:
value Value that should be mutated.
Returns:
The mutated value

Implements FREE::ES::MutationBase< TIndividual >.

Definition at line 158 of file freESAsymmetricMutation.txx.

template<class TIndividual>
virtual void FREE::ES::AsymmetricMutation< TIndividual >::SetGamma ( const double  _arg  )  [inline, virtual]

Definition at line 97 of file freESAsymmetricMutation.h.

Referenced by FREE::ESAsymmetricMutationController::ActualizeMainComponent().

template<class TIndividual>
virtual double FREE::ES::AsymmetricMutation< TIndividual >::GetGamma (  )  [inline, virtual]

Definition at line 98 of file freESAsymmetricMutation.h.

template<class TIndividual>
virtual void FREE::ES::AsymmetricMutation< TIndividual >::SetTau ( const double  _arg  )  [inline, virtual]

Definition at line 100 of file freESAsymmetricMutation.h.

Referenced by FREE::ESAsymmetricMutationController::ActualizeMainComponent().

template<class TIndividual>
virtual double FREE::ES::AsymmetricMutation< TIndividual >::GetTau (  )  [inline, virtual]

Definition at line 101 of file freESAsymmetricMutation.h.

template<class TIndividual>
virtual void FREE::ES::AsymmetricMutation< TIndividual >::SetTauGlobal ( const double  _arg  )  [inline, virtual]

Definition at line 103 of file freESAsymmetricMutation.h.

Referenced by FREE::ESAsymmetricMutationController::ActualizeMainComponent().

template<class TIndividual>
virtual double FREE::ES::AsymmetricMutation< TIndividual >::GetTauGlobal (  )  [inline, virtual]

Definition at line 104 of file freESAsymmetricMutation.h.

template<class TIndividual>
virtual void FREE::ES::AsymmetricMutation< TIndividual >::SetTau_Skewness ( const double  _arg  )  [inline, virtual]

Definition at line 106 of file freESAsymmetricMutation.h.

Referenced by FREE::ESAsymmetricMutationController::ActualizeMainComponent().

template<class TIndividual>
virtual double FREE::ES::AsymmetricMutation< TIndividual >::GetTau_Skewness (  )  [inline, virtual]

Definition at line 107 of file freESAsymmetricMutation.h.

template<class TIndividual>
virtual void FREE::ES::AsymmetricMutation< TIndividual >::SetTauGlobal_Skewness ( const double  _arg  )  [inline, virtual]

Definition at line 109 of file freESAsymmetricMutation.h.

Referenced by FREE::ESAsymmetricMutationController::ActualizeMainComponent().

template<class TIndividual>
virtual double FREE::ES::AsymmetricMutation< TIndividual >::GetTauGlobal_Skewness (  )  [inline, virtual]

Definition at line 110 of file freESAsymmetricMutation.h.

template<class TIndividual>
virtual void FREE::ES::AsymmetricMutation< TIndividual >::SetMutateValueVariance ( const double  _arg  )  [inline, virtual]

Definition at line 112 of file freESAsymmetricMutation.h.

template<class TIndividual>
virtual double FREE::ES::AsymmetricMutation< TIndividual >::GetMutateValueVariance (  )  [inline, virtual]

Definition at line 113 of file freESAsymmetricMutation.h.

template<class TIndividual>
virtual void FREE::ES::AsymmetricMutation< TIndividual >::SetMutateValueSkewness ( const double  _arg  )  [inline, virtual]

Definition at line 115 of file freESAsymmetricMutation.h.

template<class TIndividual>
virtual double FREE::ES::AsymmetricMutation< TIndividual >::GetMutateValueSkewness (  )  [inline, virtual]

Definition at line 116 of file freESAsymmetricMutation.h.

template<class TIndividual>
VariateGeneratorType& FREE::ES::AsymmetricMutation< TIndividual >::GetRandomGenerator (  )  [inline]

Definition at line 120 of file freESAsymmetricMutation.h.

Referenced by FREE::ESAsymmetricMutationController::ActualizeMainComponent().

template<class TIndividual>
void FREE::ES::AsymmetricMutation< TIndividual >::MutateObjectivParameters ( IndividualType pIndividual,
PopulationType pPopulation 
) const [inline, protected, virtual]

Called by Mutate() to mutate the objective values of an individual

Implements FREE::ES::MutationBase< TIndividual >.

Definition at line 172 of file freESAsymmetricMutation.txx.

References throwExceptionMacro.


Member Data Documentation

template<class TIndividual>
double FREE::ES::AsymmetricMutation< TIndividual >::m_Gamma [protected]

Global control parameter

Definition at line 126 of file freESAsymmetricMutation.h.

template<class TIndividual>
double FREE::ES::AsymmetricMutation< TIndividual >::m_TauGlobal [protected]

variance for the variate used in the whole generation to mutate the strategic parameter variance. Default value (by Schwefel): 1/sqrt(2*n) ; n = number of objective parameters

Definition at line 131 of file freESAsymmetricMutation.h.

template<class TIndividual>
double FREE::ES::AsymmetricMutation< TIndividual >::m_Tau [protected]

variance for the variate used for one individual to mutate the strategic parameter variance. Default value (by Schwefel): 1/sqrt(2*sqrt(n)) ; n = number of objective parameters

Definition at line 135 of file freESAsymmetricMutation.h.

template<class TIndividual>
double FREE::ES::AsymmetricMutation< TIndividual >::m_TauGlobal_Skewness [protected]

variance for the variate used in the whole generation to mutate the strategic parameter skewness. Default value (by Schwefel): 1/sqrt(2*n) ; n = number of objective parameters

Definition at line 140 of file freESAsymmetricMutation.h.

template<class TIndividual>
double FREE::ES::AsymmetricMutation< TIndividual >::m_Tau_Skewness [protected]

variance for the variate used for one individual to mutate the strategic parameter skewness. Default value (by Schwefel): 1/sqrt(2*sqrt(n)) ; n = number of objective parameters

Definition at line 144 of file freESAsymmetricMutation.h.

template<class TIndividual>
double FREE::ES::AsymmetricMutation< TIndividual >::m_MutateValueVariance [protected]

Variance that should be used by MutateValue()

Definition at line 147 of file freESAsymmetricMutation.h.

template<class TIndividual>
double FREE::ES::AsymmetricMutation< TIndividual >::m_MutateValueSkewness [protected]

Skewness that should be used by MutateValue()

Definition at line 149 of file freESAsymmetricMutation.h.

template<class TIndividual>
VariateGeneratorType::Pointer FREE::ES::AsymmetricMutation< TIndividual >::m_RandomGenerator [protected]

Definition at line 151 of file freESAsymmetricMutation.h.


The documentation for this class was generated from the following files:
Generated at Sat Oct 13 18:29:47 2007 for f.r.e.e. - Flexible Registration and Evaluation Engine by doxygen 1.5.3 written by Dimitri van Heesch, © 1997-2000