41 #ifndef BPP_NUMERIC_FUNCTION_OPTIMIZER_H
42 #define BPP_NUMERIC_FUNCTION_OPTIMIZER_H
45 #include "../../Clonable.h"
46 #include "../../Io/OutputStream.h"
47 #include "../ParameterList.h"
371 std::ofstream bck(
backupFile_.c_str(), std::ios::out);
372 bck <<
"f(x)=" << setprecision(20) <<
event.getOptimizer()->getFunction()->getValue() << endl;
373 ParameterList pl =
event.getOptimizer()->getFunction()->getParameters();
374 for (
unsigned int i = 0; i < pl.
size(); ++i)
376 bck << pl[i].getName() <<
"=" << setprecision(20) << pl[i].getValue() << std::endl;
Save intermediate optimization results to file.
bool listenerModifiesParameters() const
BackupListener(const string &backupFile)
virtual ~BackupListener()
void optimizationStepPerformed(const OptimizationEvent &event)
void optimizationInitializationPerformed(const OptimizationEvent &event)
The Clonable interface (allow an object to be cloned).
This is the function abstract class.
An event object which indicates that an optimization event occured.
OptimizationEvent(Optimizer *optimizer)
Optimizer * getOptimizer()
const Optimizer * getOptimizer() const
OptimizationEvent(const OptimizationEvent &oe)
virtual ~OptimizationEvent()
OptimizationEvent & operator=(const OptimizationEvent &oe)
The listener interface for receiving optimization events.
virtual void optimizationStepPerformed(const OptimizationEvent &event)=0
virtual void optimizationInitializationPerformed(const OptimizationEvent &event)=0
virtual ~OptimizationListener()
virtual bool listenerModifiesParameters() const =0
Interface for otimization stop condition objet.
This is the basal interface for all optimization methods.
virtual double getParameterValue(const std::string &name) const =0
virtual double step()=0
Perform an optimization step.
virtual OutputStream * getMessageHandler() const =0
virtual bool isToleranceReached() const =0
Tell if the tolerance level is reached.
virtual void setConstraintPolicy(const std::string &constraintPolicy)=0
Set the constraint policy for this optimizer.
virtual OutputStream * getProfiler() const =0
virtual bool isMaximumNumberOfEvaluationsReached() const =0
Tell if the maximum number of function evaluations is reached.
virtual std::string getConstraintPolicy() const =0
Get the constraint policy for this optimizer.
virtual OptimizationStopCondition * getDefaultStopCondition()=0
Get the default stop condition of the optimization algorithm.
virtual void setMaximumNumberOfEvaluations(unsigned int max)=0
Set the maximum number of function evaluation to perform during optimization.
virtual void init(const ParameterList ¶ms)=0
Set the initial values of the parameters.
virtual double getFunctionValue() const =0
Get the current function value.
virtual unsigned int getVerbose() const =0
Get the verbose level.
virtual bool isInitialized() const =0
virtual const OptimizationStopCondition * getDefaultStopCondition() const =0
Get the default stop condition of the optimization algorithm.
virtual void setVerbose(unsigned int v)=0
Set the verbose level.
virtual const OptimizationStopCondition * getStopCondition() const =0
Get the stop condition of the optimization algorithm.
virtual void setMessageHandler(OutputStream *mh)=0
Set the message handler for this optimizer.
virtual double optimize()=0
Perform as many optimization steps untill the stop condition is met.
virtual void setFunction(Function *function)=0
Set the function to optimize.
Optimizer * clone() const =0
Create a copy of this object and send a pointer to it.
virtual void setStopCondition(const OptimizationStopCondition &stopCondition)=0
Set the stop condition of the optimization algorithm.
virtual unsigned int getNumberOfEvaluations() const =0
Get the number of function evaluations performed since the call of the init function.
virtual bool hasFunction() const =0
Tell if a funciton is associatied to this optimizer.
virtual OptimizationStopCondition * getStopCondition()=0
Get the stop condition of the optimization algorithm.
virtual Function * getFunction()=0
Get the current function being optimized.
virtual const ParameterList & getParameters() const =0
virtual void setProfiler(OutputStream *profiler)=0
Set the profiler for this optimizer.
virtual const Function * getFunction() const =0
Get the current function being optimized.
virtual void addOptimizationListener(OptimizationListener *listener)=0
Register a listener to this class.
The parameter list object.