Class OptimizationProblem

Inheritance Relationships

Derived Types

Class Documentation

class parpe::OptimizationProblem

The OptimizationProblem class describes an optimization problem.

A OptimizationProblem has a GradientFunction objective function to be minimized, parameter bounds and initial values.

Additional constraints are currently not supported.

TODO: rename GradientProblem? Turn into interface

Subclassed by parpe::MinibatchOptimizationProblem< int >, parpe::HierarchicalOptimizationProblemWrapper, parpe::MinibatchOptimizationProblem< T >, parpe::OptimizationProblemImpl

Public Functions

OptimizationProblem() = default
OptimizationProblem(std::unique_ptr<GradientFunction> costFun, std::unique_ptr<Logger> logger)
OptimizationProblem(OptimizationProblem const &other) = delete
virtual ~OptimizationProblem() = default
virtual void fillInitialParameters(gsl::span<double> buffer) const

Default implementation: random starting points are drawn from [parametersMin, parametersMax]

virtual void fillParametersMin(gsl::span<double> buffer) const = 0

lower bound of parameter values

virtual void fillParametersMax(gsl::span<double> buffer) const = 0

upper bound of parameter values

virtual OptimizationOptions const &getOptimizationOptions() const
virtual void setOptimizationOptions(OptimizationOptions const &options)
virtual std::unique_ptr<OptimizationReporter> getReporter() const

Public Members

std::unique_ptr<GradientFunction> cost_fun_
std::unique_ptr<Logger> logger_