HookeJeevesOptimal.h

00001 #ifndef _HookeJeevesOptimal_h
00002 #define _HookeJeevesOptimal_h
00003 
00004 // SYSTEM INCLUDES
00005 //
00006 
00007 // PROJECT INCLUDES
00008 //
00009 
00010 // LOCAL INCLUDES
00011 //
00012 #include "../DistanceCondition.h"
00013 #include "../DoubleParameter.h"
00014 #include "../FunctionBase.h"
00015 #include "../MethodWithLineSearch.h"
00016 #include "../ProblemBase.h"
00017 #include "../Result.h"
00018 #include "../ui/MethodWithLineSearchPanel.h"
00019 
00020 #include "HookeJeevesOptimalIteration.h"
00021 
00022 // FORWARD REFERENCES
00023 //
00024 
00104 class HookeJeevesOptimal
00105     : public MethodWithLineSearch
00106 {
00107 public:
00108 
00111     friend class MethodWithLineSearchPanel<HookeJeevesOptimal>;
00112 
00113 // LIFECYCLE
00114 
00117     ~HookeJeevesOptimal(void);
00118 
00119 
00120 // OPERATORS
00121 
00122 // OPERATIONS
00123 
00126     virtual std::auto_ptr<Method>       Clone() const;
00127 
00128 // ACCESS
00129 
00132     virtual const wxString&         Name() const;
00133 
00136     virtual MethodIdType            Id() const;
00137 
00140     static MethodIdType             ClassId();
00141 
00142 // INQUIRY
00143 
00144     virtual bool                    CanHandle(const ProblemBase* pProblem) const;
00145 
00146     virtual StopConditions          AllowedStopConditions() const;
00147 
00148 protected:
00149 
00152     HookeJeevesOptimal(void);
00153 
00158     HookeJeevesOptimal(const HookeJeevesOptimal& from);
00159 
00160 
00177     double                          CoordinateSearch
00178                                        (const FunctionBase&    function,
00179                                         ColumnVector&          rx,
00180                                         HookeJeevesOptimalIteration& rIteration)
00181                                     const;
00182 
00183     virtual wxString&               rName();
00184 private:
00185 
00186     virtual std::auto_ptr<Result> Optimize(const ProblemBase& problem) const
00187         throw(OptimizationError);
00188 
00189     static wxString       mName;                  
00190     static HookeJeevesOptimal   mHookeJeevesOptimal;    
00191 };
00192 
00193 // INLINE METHODS
00194 //
00195 
00196 // EXTERNAL REFERENCES
00197 //
00198 
00199 #endif  // _HookeJeevesOptimal_h_

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