00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011 #ifndef __mitkAmoebaOptimizer_h
00012 #define __mitkAmoebaOptimizer_h
00013
00014 #include "mitkOptimizer.h"
00015
00016
00032 class MITK_REGISTRATION_API mitkAmoebaOptimizer : public mitkOptimizer
00033 {
00034 public:
00035 MITK_TYPE(mitkAmoebaOptimizer, mitkOptimizer)
00036 virtual void PrintSelf(ostream &os);
00037
00041 mitkAmoebaOptimizer();
00042
00048 ScalarParameterType GetValue(const VectorParameterType& p);
00049
00056 void SetParametersConvergenceTolerance(ScalarParameterType tol)
00057 { m_ParametersConvergenceTolerance = tol; }
00058
00063 void SetFunctionConvergenceTolerance(ScalarParameterType tol)
00064 { m_FunctionConvergenceTolerance = tol; }
00065
00071 void SetAutomaticInitialSimplexFlag(bool flag)
00072 { m_AutomaticInitialSimplex = flag; }
00073
00080 void SetInitialSimplexDelta(ScalarParameterType* delta, int dim);
00081
00082 void SetInitialSimplexDelta(VectorParameterType & delta);
00083
00088 VectorParameterType& GetInitialSimplexDelta();
00089
00090 protected:
00091 virtual ~mitkAmoebaOptimizer();
00092 virtual bool Execute();
00093
00094 bool m_AutomaticInitialSimplex;
00095 double m_ParametersConvergenceTolerance;
00096 double m_FunctionConvergenceTolerance;
00097 VectorParameterType m_InitialSimplexDelta;
00098
00099 private:
00100 mitkAmoebaOptimizer(const mitkAmoebaOptimizer&);
00101 void operator = (const mitkAmoebaOptimizer&);
00102
00103 };
00104
00105
00106
00107
00108
00109
00110 #endif
00111