00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef __freEvolutionaryStrategySOOptimizerController_h
00023 #define __freEvolutionaryStrategySOOptimizerController_h
00024
00025 #include "freSetupOptimizationOptimizerControllerBase.h"
00026
00027 #include "freEvolutionaryStrategySOOptimizer.h"
00028
00029 namespace FREE
00030 {
00031
00037 freControllerIDMacro(EvolutionaryStrategySOOptimizerController, "Evolutionary Strategy SO Optimizer");
00038 class EvolutionaryStrategySOOptimizerController : public SetupOptimizationOptimizerControllerBase<EvolutionaryStrategySOOptimizer>
00039 {
00040 public:
00041 itkTypeMacro(EvolutionaryStrategySOOptimizerController, SetupOptimizationOptimizerControllerBase);
00042
00043 typedef EvolutionaryStrategySOOptimizer ComponentType;
00044 typedef SetupOptimizationOptimizerControllerBase<ComponentType> Superclass;
00045
00046 DeclareParameterMacro(MutateIntitialPopulation);
00047 DeclareParameterMacro(IntitialPopulation);
00048 DeclareParameterMacro(NumberOfParents);
00049 DeclareParameterMacro(NumberOfChildren);
00050 DeclareParameterMacro(Threshold);
00051
00052 virtual long GetMaxIterationCount(const SessionComponentCache* pComponentCache, unsigned int iResolutionLevel = 0) const;
00053
00054 EvolutionaryStrategySOOptimizerController();
00055
00056 protected:
00057 virtual void GenerateProfile(CtrlProfile::ControllerProfile& profile,
00058 const SessionComponentCache* pComponentCache,
00059 bool bRegardOldSetup) const;
00060
00061 virtual void ActualizeMainComponent(ComponentType* pMainComponent,
00062 SessionComponentCache* pComponentCache,
00063 SessionInfo* pSessionInfo,
00064 const unsigned int& iActLevel) const;
00065
00066 virtual void SetStatisticEntryMainComponent(StatisticEntry& rStatisticEntry,
00067 ComponentType* pMainComponent,
00068 SessionComponentCache* pMainComponentCache,
00069 SessionInfo* pSessionInfo,
00070 StatisticDictionary& rDictionary) const;
00071
00072 virtual GenericComponentType* GetSubComponentCasted(ComponentType* pMainComponent,
00073 const ComponentID& compID,
00074 SessionComponentCache* pMainComponentCache) const;
00075
00076 virtual void SetSubComponentCasted(GenericComponentType* pSubComponent,
00077 ComponentType* pMainComponent,
00078 const ComponentID compID,
00079 SessionComponentCache* pMainComponentCache) const;
00080 };
00081
00082 }
00083
00084 #endif