00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef __freEvolutionaryStrategyOptimizerController_h
00023 #define __freEvolutionaryStrategyOptimizerController_h
00024
00025 #include "freEvolutionaryStrategyOptimizerControllerBase.h"
00026
00027 #include "freEvolutionaryStrategyOptimizer.h"
00028 #include "freESIndividual.h"
00029 #include "freESControllerInfo.h"
00030
00031
00032 namespace FREE
00033 {
00034
00043 freControllerIDMacro(EvolutionaryStrategyOptimizerController, "Evolutionary Strategy Optimizer");
00044 class EvolutionaryStrategyOptimizerController : public EvolutionaryStrategyOptimizerControllerBase< ES::EvolutionaryStrategyOptimizer< ESIndividualType > >
00045 {
00046 public:
00047 itkTypeMacro(EvolutionaryStrategyOptimizerController, EvolutionaryStrategyOptimizerControllerBase);
00048
00049 typedef ESIndividualType IndividualType;
00050 typedef ES::EvolutionaryStrategyOptimizer<IndividualType> ComponentType;
00051 typedef EvolutionaryStrategyOptimizerControllerBase<ComponentType> Superclass;
00052
00053 DeclareParameterMacro(MutateIntitialPopulation);
00054 DeclareParameterMacro(IntitialPopulation);
00055 DeclareParameterMacro(NumberOfParents);
00056 DeclareParameterMacro(NumberOfChildren);
00057 DeclareParameterMacro(Threshold);
00058
00059 virtual MeasuresType GetCurrentValue(ComponentType* pOptimizer) const;
00060
00061 EvolutionaryStrategyOptimizerController();
00062
00063 protected:
00064 virtual void GenerateProfile(CtrlProfile::ControllerProfile& profile,
00065 const SessionComponentCache* pComponentCache,
00066 bool bRegardOldSetup) const;
00067
00068 virtual GenericComponentType* GetSubComponentCasted(ComponentType* pMainComponent,
00069 const ComponentID& compID,
00070 SessionComponentCache* pMainComponentCache) const;
00071
00072 virtual void SetSubComponentCasted(GenericComponentType* pSubComponent,
00073 ComponentType* pMainComponent,
00074 const ComponentID compID,
00075 SessionComponentCache* pMainComponentCache) const;
00076
00077 virtual void ActualizeMainComponent(ComponentType* pMainComponent,
00078 SessionComponentCache* pComponentCache,
00079 SessionInfo* pSessionInfo,
00080 const unsigned int& iActLevel) const;
00081
00082
00083 virtual void SetStatisticEntryMainComponent(StatisticEntry& rStatisticEntry,
00084 ComponentType* pMainComponent,
00085 SessionComponentCache* pMainComponentCache,
00086 SessionInfo* pSessionInfo,
00087 StatisticDictionary& rDictionary) const;
00088 };
00089
00090 }
00091
00092 #endif