OpenANN  1.1.0
An open source library for artificial neural networks.
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
LMA.h
Go to the documentation of this file.
1 #ifndef OPENANN_OPTIMIZATION_LMA_H_
2 #define OPENANN_OPTIMIZATION_LMA_H_
3 
6 #include <Eigen/Core>
7 #include <optimization.h>
8 
9 namespace OpenANN
10 {
11 
45 class LMA : public Optimizer
46 {
47  StoppingCriteria stop;
48  Optimizable* opt; // do not delete
49  Eigen::VectorXd optimum;
50  int iteration, n;
51  alglib_impl::ae_state envState;
52  Eigen::VectorXd parameters, errorValues, gradient;
53  alglib::real_1d_array xIn;
54  alglib::minlmstate state;
55 public:
56  LMA();
57  virtual ~LMA();
58  virtual void setOptimizable(Optimizable& opt);
59  virtual void setStopCriteria(const StoppingCriteria& stop);
60  virtual void optimize();
61  virtual bool step();
62  virtual Eigen::VectorXd result();
63  virtual std::string name();
64 private:
65  void initialize();
66  void reset();
67 };
68 
69 } // namespace OpenANN
70 
71 #endif // OPENANN_OPTIMIZATION_LMA_H_