00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef __freAmoebaSOOptimizerController_h
00023 #define __freAmoebaSOOptimizerController_h
00024
00025 #include "freVnlSetupOptimizationOptimizerControllerBase.h"
00026
00027 #include "freAmoebaSOOptimizer.h"
00028
00029 namespace FREE
00030 {
00031
00037 freControllerIDMacro(AmoebaSOOptimizerController, "Amoeba SO Optimizer");
00038 class AmoebaSOOptimizerController : public VnlSetupOptimizationOptimizerControllerBase<AmoebaSOOptimizer>
00039 {
00040 public:
00041 itkTypeMacro(AmoebaSOOptimizerController, VnlSetupOptimizationOptimizerControllerBase);
00042
00043 typedef AmoebaSOOptimizer ComponentType;
00044 typedef VnlSetupOptimizationOptimizerControllerBase<ComponentType> Superclass;
00045
00046 DeclareParameterMacro(AutoInitialSimplex);
00047 DeclareParameterMacro(SimplexDelta);
00048 DeclareParameterMacro(ParamConvTolerance);
00049 DeclareParameterMacro(FunctConvTolerance);
00050
00051 virtual long GetMaxIterationCount(const SessionComponentCache* pComponentCache, unsigned int iResolutionLevel = 0) const;
00052
00053 AmoebaSOOptimizerController();
00054
00055 protected:
00056 virtual void GenerateProfile(CtrlProfile::ControllerProfile& profile,
00057 const SessionComponentCache* pComponentCache,
00058 bool bRegardOldSetup) const;
00059
00060 virtual void ActualizeMainComponent(ComponentType* pMainComponent,
00061 SessionComponentCache* pComponentCache,
00062 SessionInfo* pSessionInfo,
00063 const unsigned int& iActLevel) const;
00064
00065 virtual void SetStatisticEntryMainComponent(StatisticEntry& rStatisticEntry,
00066 ComponentType* pMainComponent,
00067 SessionComponentCache* pMainComponentCache,
00068 SessionInfo* pSessionInfo,
00069 StatisticDictionary& rDictionary) const;
00070 };
00071
00072 }
00073
00074 #endif