RosenbrockOptimal.h

00001 
00108 #ifndef _RosenbrockOptimal_h
00109 #define _RosenbrockOptimal_h
00110 
00111 // SYSTEM INCLUDES
00112 //
00113 
00114 // PROJECT INCLUDES
00115 //
00116 
00117 // LOCAL INCLUDES
00118 //
00119 #include "../DoubleParameter.h"
00120 #include "../FunctionBase.h"
00121 #include "../ProblemBase.h"
00122 #include "../MethodWithLineSearch.h"
00123 #include "../ui/MethodWithLineSearchPanel.h"
00124 #include "RosenbrockOptimalIteration.h"
00125 
00126 // FORWARD REFERENCES
00127 //
00128 
00129 
00130 class RosenbrockOptimal
00131     : public MethodWithLineSearch
00132 {
00133 public:
00134 // LIFECYCLE
00135 
00136     friend class MethodWithLineSearchPanel<RosenbrockOptimal>;
00137 
00140     ~RosenbrockOptimal(void);
00141 
00142 
00143 // OPERATORS
00144 
00145 // OPERATIONS
00146 
00149     virtual std::auto_ptr<Method>       Clone() const;
00150 
00151 // ACCESS
00152 
00155     virtual const wxString&         Name() const;
00156 
00159     virtual MethodIdType            Id() const;
00160 
00163     static MethodIdType             ClassId();
00164 
00165 // INQUIRY
00166 
00167     virtual bool                    CanHandle(const ProblemBase* pProblem) const;
00168 
00169     virtual StopConditions          AllowedStopConditions() const;
00170 
00171 protected:
00172 
00175     RosenbrockOptimal(void);
00176 
00181     RosenbrockOptimal(const RosenbrockOptimal& from);
00182 
00202     void SearchAllDirections(const FunctionBase&                function,
00203                              ColumnVector&                      rxBest,
00204                              const SquareMatrix&                D,
00205                              ColumnVector&                      rLambda,
00206                              RosenbrockOptimalIteration&        rIterationData)
00207                                                                     const;
00208 
00209 
00244     void                RotateBase (
00245             SquareMatrix&                   rD,
00246             const ColumnVector&             lambda,
00247             RosenbrockOptimalIteration&     rIterationData) const;
00248 
00249     virtual wxString&               rName();
00250 private:
00251 
00252     virtual std::auto_ptr<Result> Optimize(const ProblemBase& problem) const
00253         throw(OptimizationError);
00254     static wxString      mName; 
00255     static RosenbrockOptimal mRosenbrockOptimal;    
00256 };
00257 
00258 // INLINE METHODS
00259 //
00260 
00261 // EXTERNAL REFERENCES
00262 //
00263 
00264 #endif  // _RosenbrockOptimal_h_

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