00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef __freESCMAMutationController_h
00023 #define __freESCMAMutationController_h
00024
00025 #include "freESMutationControllerBase.h"
00026
00027 #include "freESCMAMutation.h"
00028 #include "freESControllerInfo.h"
00029
00030 namespace FREE
00031 {
00032
00033
00042 freControllerIDMacro(ESCMAMutationController, "ES CMA Mutation");
00043 class ESCMAMutationController : public ESMutationControllerBase< ES::CMAMutation<ESIndividualType> >
00044 {
00045 public:
00046 itkTypeMacro(ESCMAMutationController, ESMutationControllerBase);
00047
00048 typedef ES::CMAMutation<ESIndividualType> ComponentType;
00049 typedef ESMutationControllerBase<ComponentType> Superclass;
00050
00051 ESCMAMutationController();
00052
00053 DeclareParameterMacro(Sigma);
00054 DeclareParameterMacro(Mu_eff);
00055 DeclareParameterMacro(Mu_cov);
00056 DeclareParameterMacro(C_c);
00057 DeclareParameterMacro(C_cov);
00058 DeclareParameterMacro(C_sigma);
00059 DeclareParameterMacro(D_sigma);
00060 DeclareParameterMacro(InitialSeed);
00061 DeclareParameterMacro(UseInitialSeed);
00062 DeclareParameterMacro(InitialMu);
00063 DeclareParameterMacro(InitializeControlValues);
00064 DeclareParameterMacro(InitialObjectiveCount);
00065
00066 protected:
00067 virtual void GenerateProfile(CtrlProfile::ControllerProfile& profile,
00068 const SessionComponentCache* pComponentCache,
00069 bool bRegardOldSetup) const;
00070
00071 virtual void ActualizeMainComponent(ComponentType* pMainComponent,
00072 SessionComponentCache* pComponentCache,
00073 SessionInfo* pSessionInfo,
00074 const unsigned int& iActLevel) const;
00075
00076 virtual void SetStatisticEntryMainComponent(StatisticEntry& rStatisticEntry,
00077 ComponentType* pMainComponent,
00078 SessionComponentCache* pMainComponentCache,
00079 SessionInfo* pSessionInfo,
00080 StatisticDictionary& rDictionary) const;
00081
00082 virtual GenericComponentType* GetSubComponentCasted(ComponentType* pMainComponent,
00083 const ComponentID& compID,
00084 SessionComponentCache* pMainComponentCache) const;
00085
00086 virtual void SetSubComponentCasted(GenericComponentType* pSubComponent,
00087 ComponentType* pMainComponent,
00088 const ComponentID compID,
00089 SessionComponentCache* pMainComponentCache) const;
00090
00091 };
00092
00093 }
00094
00095 #endif