HookeJeevesDiscrete.h

00001 #ifndef _HookeJeevesDiscrete_h
00002 #define _HookeJeevesDiscrete_h
00003 
00004 // SYSTEM INCLUDES
00005 //
00006 
00007 // PROJECT INCLUDES
00008 //
00009 
00010 // LOCAL INCLUDES
00011 //
00012 #include "../DoubleParameter.h"
00013 #include "../FunctionBase.h"
00014 #include "../ProblemBase.h"
00015 #include "../Method.h"
00016 
00017 #include "HookeJeevesDiscreteIteration.h"
00018 
00019 // FORWARD REFERENCES
00020 //
00021 
00135 class HookeJeevesDiscrete
00136     : public Method
00137 {
00138 public:
00139 
00142     friend class HookeJeevesDiscretePanel;
00143 
00144 // LIFECYCLE
00145 
00148     ~HookeJeevesDiscrete(void);
00149 
00150 
00151 // OPERATORS
00152 
00153 // OPERATIONS
00154 
00157     virtual std::auto_ptr<Method>   Clone() const;
00158 
00159     virtual void                    UpdateStartingConditions
00160                                                 (const Result* result) const;
00161 
00162     virtual void                    ResetStartingConditions() const;
00163 
00164 // ACCESS
00165 
00168     virtual const wxString&         Name() const;
00169 
00170     virtual wxString                ToString(bool standalone = true) const;
00171 
00174     virtual MethodIdType            Id() const;
00175 
00178     static MethodIdType             ClassId();
00179 
00180 // INQUIRY
00181 
00182     virtual bool                    CanHandle(const ProblemBase* pProblem) const;
00183 
00184 protected:
00185 
00188     HookeJeevesDiscrete(void);
00189 
00194     HookeJeevesDiscrete(const HookeJeevesDiscrete& from);
00195 
00196 
00197     // Poniższa metoda nie jest prywatna wyłącznie ze względu na testy
00214     double  CoordinateSearch
00215                 (const FunctionBase&            function,
00216                  ColumnVector&                  rx,
00217                  double                         tau,
00218                  HookeJeevesDiscreteIteration&  rIterationData) const;
00219 
00220     DoubleParameter mTau;           
00221     DoubleParameter mBeta;          
00222     DoubleParameter mEpsilon;       
00223     mutable ColumnVector    mStartingPoint; 
00224     ColumnVector            mInitialStartingPoint;
00225 
00226     virtual wxString&               rName();
00227 private:
00228     virtual std::auto_ptr<Result> Optimize(const ProblemBase& problem) const
00229         throw(OptimizationError);
00230 
00231 
00232     static wxString      mName;                   
00233     static HookeJeevesDiscrete mHookeJeevesDiscrete;    
00234 };
00235 
00236 // INLINE METHODS
00237 //
00238 
00239 // EXTERNAL REFERENCES
00240 //
00241 
00242 #endif  // _HookeJeevesDiscrete_h_

Wygenerowano Fri Sep 29 21:04:47 2006 dla EduOptim2 programem  doxygen 1.4.6