#ifndef NUMOPTIMISEDESCENTB_HH #define NUMOPTIMISEDESCENTB_HH //////////////////////////////////////////////////////////////////////////// //! author="Robert Crida" //! lib=NumOptimise //! date="10/2/1998" //! userlevel=Develop //! file="amma/PatternRec/Optimise/NumOptimiseDescentB.hh" //! docentry="Optimisation.Implementation;Numerical Methods.Optimisation.Implementation" //! rcsid="$Id: NumOptimiseDescentB.hh,v 1.12 2000/06/26 16:47:53 ees1rr Exp $" #include "amma/Num/NumOptimiseB.hh" // -------------------------------------------------------------------------- // ********** NumOptimiseDescentBC **************************************** // -------------------------------------------------------------------------- //: Gradient descent optimiser implementation class. // // This is the implementation class of the gradient descent optimiser for the // PatternRec toolbox. The NumOptimiseDescentC handle class should be used. class NumOptimiseDescentBC: public NumOptimiseBC { UIntT _iterations; RealT _tolerance; public: NumOptimiseDescentBC (UIntT iterations, RealT tolerance); //: Constructor requires the number of iterations to use NumOptimiseDescentBC (istream &in); //: Constructs from stream NumOptimiseDescentBC (const NumOptimiseDescentBC &oth); //: Copy constructor virtual BodyRefCounterVC & Copy () const; //: Makes a deep copy and is virtual protected: VectorC MinimalX (const NumCostC &domain); //: Determines Xmin=arg min_{X} |f(X)-Yd| virtual const StringC GetInfo () const; //: Prints information about the optimiser virtual BooleanT Save (ostream &out) const; //: Writes object to stream, can be loaded using constructor friend class NumOptimiseDescentC; //: Handle class }; #endif