Main Page   Groups   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members   Concepts

vnl_lbfgs.h

Go to the documentation of this file.
00001 #ifndef vnl_lbfgs_h_
00002 #define vnl_lbfgs_h_
00003 
00004 //:
00005 //  \file
00006 //  \brief Limited memory Broyden Fletcher Goldfarb Shannon minimization
00007 //  \author Andrew W. Fitzgibbon, Oxford RRG, 22 Aug 99
00008 //
00009 //  Modifications 
00010 //  990822 AWF Initial version.
00011 //  dac (Manchester) 28/03/2001: tidied up documentation
00012 //
00013 
00014 #include <vnl/vnl_cost_function.h>
00015 #include <vnl/vnl_nonlinear_minimizer.h>
00016 
00017 //: Limited memory Broyden Fletcher Goldfarb Shannon minimization
00018 //  More complete description ???
00019 
00020 class vnl_lbfgs : public vnl_nonlinear_minimizer {
00021 public:
00022   vnl_lbfgs();
00023   vnl_lbfgs(vnl_cost_function& f);
00024 
00025   bool minimize(vnl_vector<double>& x);
00026 
00027   //: Number of direction vectors to keep.
00028   // Sensible values are from about 5 onwards.
00029   int memory;
00030 
00031   //: Accuracy of line search.
00032   // If function evaluations are cheap wrt the actual minimization steps,
00033   // change to 0.1, from default of 0.9;
00034   double line_search_accuracy;
00035 
00036   //: Default step length in line search.
00037   // If, on tracing, the STP is always 1, then you could try setting this to a
00038   // higher value to see how far along the gradient the minimum typically is.
00039   // Then set this to a number just below that to get maximally far with the
00040   // single evaluation.
00041   double default_step_length;
00042 
00043 private:
00044   void init_parameters();
00045   vnl_cost_function* f_;
00046   //  vnl_lbfgs() {} // default constructor makes no sense
00047   // does too.  Can set values for parameters.
00048 };
00049 
00050 #endif // vnl_lbfgs_h_

Generated at Wed Mar 12 01:13:15 2003 for ITK by doxygen 1.2.15 written by Dimitri van Heesch, © 1997-2000