25 #ifndef UQ_GSL_OPTIMIZER_H
26 #define UQ_GSL_OPTIMIZER_H
28 #include <queso/Optimizer.h>
45 class OptimizerMonitor;
47 template <
class V,
class M>
48 class BaseScalarFunction;
182 #endif // UQ_GSL_OPTIMIZER_H
virtual void setSolverType(std::string solverType)
Sets the algorithm to use for minimisation.
const GslVector & minimizer() const
Return the point that minimizes the objective function.
GslOptimizer(const BaseScalarFunction< GslVector, GslMatrix > &objectiveFunction)
Constructs an object that will maximize a scalar function.
A templated (base) class for handling scalar functions.
virtual void setLineTolerance(double lineTolerance)
Sets the tolerance to use for line minimisation.
virtual void minimize(OptimizerMonitor *monitor=NULL)
Minimize the objective function, starting at m_initialPoint.
const BaseScalarFunction< GslVector, GslMatrix > & m_objectiveFunction
A base class for handling optimisation of scalar functions.
double m_fdfstep_size
For use in gradient-based algorithms.
bool solver_needs_gradient(SolverType solver)
Helper function.
void minimize_with_gradient(unsigned int dim, OptimizerMonitor *monitor)
virtual double getLineTolerance() const
Gets the tolerance to use for line minimisation.
void set_solver_type(SolverType solver)
virtual ~GslOptimizer()
Destructor.
void setInitialPoint(const GslVector &intialPoint)
Set the point at which the optimization starts.
double m_line_tol
Line minimization tolerance in gradient-based algorithms.
void set_step_size(const GslVector &step_size)
Sets step size used in gradient-free solvers.
void minimize_no_gradient(unsigned int dim, OptimizerMonitor *monitor)
void set_line_tol(double tol)
Set GSL line minimization tolerance.
virtual std::string getSolverType() const
Gets the algorithm to use for minimisation.
Class for vector operations using GSL library.
This class provides options for a Optimizer.
virtual void setFstepSize(double fstepSize)
Sets the step size to use in gradient-free solvers.
virtual double getFdfstepSize() const
Gets the step to use in gradient-based solvers.
GslVector m_fstep_size
For use in gradient-free algorithms.
virtual void setFdfstepSize(double fdfstepSize)
Sets the step to use in gradient-based solvers.
Object to monitor convergence of optimizers.
const BaseScalarFunction< GslVector, GslMatrix > & objectiveFunction() const
Returns the objective function.
GslVector * m_initialPoint
virtual double getFstepSize() const
Gets the step size to use in gradient-free solvers.
SolverType string_to_enum(std::string &solver)
A base class for handling optimisation of scalar functions.