PowellVariant1.h

00001 
00115 #ifndef _PowellVariant1_h
00116 #define _PowellVariant1_h
00117 
00118 // SYSTEM INCLUDES
00119 //
00120 
00121 // PROJECT INCLUDES
00122 //
00123 
00124 // LOCAL INCLUDES
00125 //
00126 #include "../DoubleParameter.h"
00127 #include "../FunctionBase.h"
00128 #include "../ProblemBase.h"
00129 #include "../MethodWithLineSearch.h"
00130 #include "../ui/MethodWithLineSearchPanel.h"
00131 #include "PowellVariant1Iteration.h"
00132 
00133 // FORWARD REFERENCES
00134 //
00135 
00136 
00137 class PowellVariant1
00138     : public MethodWithLineSearch
00139 {
00140 public:
00141 // LIFECYCLE
00142 
00143     friend class MethodWithLineSearchPanel<PowellVariant1>;
00144 
00147     ~PowellVariant1(void);
00148 
00149 
00150 // OPERATORS
00151 
00152 // OPERATIONS
00153 
00156     virtual std::auto_ptr<Method>       Clone() const;
00157 
00158 // ACCESS
00159 
00162     virtual const wxString&         Name() const;
00163 
00166     virtual MethodIdType            Id() const;
00167 
00170     static MethodIdType             ClassId();
00171 
00172 // INQUIRY
00173 
00174     virtual bool                    CanHandle(const ProblemBase* pProblem) const;
00175 
00176     virtual StopConditions          AllowedStopConditions() const;
00177 
00178 protected:
00179 
00182     PowellVariant1(void);
00183 
00188     PowellVariant1(const PowellVariant1& from);
00189 
00204     void SearchAllDirections(const FunctionBase&        function,
00205                              ColumnVector&              rxBest,
00206                              const SquareMatrix&        D,
00207                              PowellVariant1Iteration&   rIterationData) const;
00208 
00209     virtual wxString&               rName();
00210 private:
00211 
00212     virtual std::auto_ptr<Result> Optimize(const ProblemBase& problem) const
00213         throw(OptimizationError);
00214     static wxString      mName; 
00215     static PowellVariant1 mPowellVariant1;    
00216 };
00217 
00218 // INLINE METHODS
00219 //
00220 
00221 // EXTERNAL REFERENCES
00222 //
00223 
00224 #endif  // _PowellVariant1_h_

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