SteepestDescent.h

00001 
00081 #ifndef _SteepestDescent_h
00082 #define _SteepestDescent_h
00083 
00084 // SYSTEM INCLUDES
00085 //
00086 
00087 // PROJECT INCLUDES
00088 //
00089 
00090 // LOCAL INCLUDES
00091 //
00092 #include "../CustomValueCondition.h"
00093 #include "../DoubleParameter.h"
00094 #include "../FunctionBase.h"
00095 #include "../ProblemBase.h"
00096 #include "../MethodWithLineSearch.h"
00097 #include "../SquaredCustomValueCondition.h"
00098 #include "../ui/MethodWithLineSearchPanel.h"
00099 
00100 // FORWARD REFERENCES
00101 //
00102 
00103 
00104 class SteepestDescent
00105     : public MethodWithLineSearch
00106 {
00107 public:
00108 // LIFECYCLE
00109 
00112     friend class MethodWithLineSearchPanel<SteepestDescent>;
00113 
00116     ~SteepestDescent(void);
00117 
00118 
00119 // OPERATORS
00120 
00121 // OPERATIONS
00122 
00125     virtual std::auto_ptr<Method>       Clone() const;
00126 
00127 // ACCESS
00128 
00131     virtual const wxString&         Name() const;
00132 
00135     virtual MethodIdType            Id() const;
00136 
00139     static MethodIdType             ClassId();
00140 
00141 // INQUIRY
00142 
00143     virtual bool                    CanHandle(const ProblemBase* pProblem) const;
00144 
00145     virtual StopConditions          AllowedStopConditions() const;
00146 
00147 protected:
00148 
00151     SteepestDescent(void);
00152 
00157     SteepestDescent(const SteepestDescent& from);
00158 
00159     virtual wxString&               rName();
00160 private:
00161 
00162     virtual std::auto_ptr<Result> Optimize(const ProblemBase& problem) const
00163         throw(OptimizationError);
00164     static wxString      mName; 
00165     static SteepestDescent mSteepestDescent;    
00166 };
00167 
00168 // INLINE METHODS
00169 //
00170 
00171 // EXTERNAL REFERENCES
00172 //
00173 
00174 #endif  // _SteepestDescent_h_

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