PowellVariant2.h

00001 
00135 #ifndef _PowellVariant2_h
00136 #define _PowellVariant2_h
00137 
00138 // SYSTEM INCLUDES
00139 //
00140 
00141 // PROJECT INCLUDES
00142 //
00143 
00144 // LOCAL INCLUDES
00145 //
00146 #include "../DoubleParameter.h"
00147 #include "../FunctionBase.h"
00148 #include "../ProblemBase.h"
00149 #include "../MethodWithLineSearch.h"
00150 #include "../ui/MethodWithLineSearchPanel.h"
00151 #include "PowellVariant2Iteration.h"
00152 
00153 // FORWARD REFERENCES
00154 //
00155 
00156 
00157 class PowellVariant2
00158     : public MethodWithLineSearch
00159 {
00160 public:
00161 // LIFECYCLE
00162 
00163     friend class MethodWithLineSearchPanel<PowellVariant2>;
00164 
00167     ~PowellVariant2(void);
00168 
00169 
00170 // OPERATORS
00171 
00172 // OPERATIONS
00173 
00176     virtual std::auto_ptr<Method>       Clone() const;
00177 
00178 // ACCESS
00179 
00182     virtual const wxString&         Name() const;
00183 
00186     virtual MethodIdType            Id() const;
00187 
00190     static MethodIdType             ClassId();
00191 
00192 // INQUIRY
00193 
00194     virtual bool                    CanHandle(const ProblemBase* pProblem) const;
00195 
00196     virtual StopConditions          AllowedStopConditions() const;
00197 
00198 protected:
00199 
00202     PowellVariant2(void);
00203 
00208     PowellVariant2(const PowellVariant2& from);
00209 
00231     void SearchAllDirections(const FunctionBase&        function,
00232                              ColumnVector&              rxBest,
00233                              const SquareMatrix&        D,
00234                              double&                    rTau_p,
00235                              unsigned&                  rP,
00236                              PowellVariant2Iteration&   rIterationData) const;
00237 
00238     virtual wxString&               rName();
00239 private:
00240 
00241     virtual std::auto_ptr<Result> Optimize(const ProblemBase& problem) const
00242         throw(OptimizationError);
00243     static wxString      mName; 
00244     static PowellVariant2 mPowellVariant2;    
00245 };
00246 
00247 // INLINE METHODS
00248 //
00249 
00250 // EXTERNAL REFERENCES
00251 //
00252 
00253 #endif  // _PowellVariant2_h_

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