00001
00007 #ifndef _LineSearch_h
00008 #define _LineSearch_h
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #include "Method.h"
00020 #include "UnivariateFunction.h"
00021
00022
00023
00024
00025
00026 class LineSearch
00027 : public Method
00028 {
00029 public:
00030
00031
00034 ~LineSearch(void);
00035
00036
00037
00038
00039
00040
00048 double FindOptimalStep(const UnivariateFunction& function) const;
00049
00050
00051
00052
00053
00060 virtual bool CanAssist(const ProblemBase* pProblem) const = 0;
00061
00062
00063 virtual bool CanHandle(const ProblemBase* pProblem) const;
00064
00065 protected:
00066
00069 LineSearch(void);
00070
00077
00078 virtual double Optimize(const UnivariateFunction& function)
00079 const = 0;
00080
00081 private:
00082
00083 };
00084
00085
00086
00087
00088
00089
00090
00091 #endif // _LineSearch_h_