SOT
problem.h
1 
9 #ifndef SOT_PROBLEM_H
10 #define SOT_PROBLEM_H
11 
13 namespace sot {
14 
16 
24  class Problem {
25  public:
27  virtual vec lBounds() const = 0;
28  virtual vec uBounds() const = 0;
30  virtual int dim() const = 0;
32  virtual double min() const = 0;
34  virtual vec optimum() const = 0;
36  virtual std::string name() const = 0;
38 
43  virtual double eval(const vec &point) const = 0;
45 
49  virtual vec evals(const mat &points) const = 0;
50  };
51 
52 
54 
62  class TestProblem : public Problem {
63  public:
65 
69  vec evals(const mat &points) const {
70  vec fvals = arma::zeros<vec>(points.n_cols);
71  for(int i=0; i < points.n_cols; i++) {
72  vec x = points.col(i);
73  fvals(i) = eval(x);
74  }
75  return fvals;
76  }
77  };
78 }
79 
80 #endif
81 
virtual vec uBounds() const =0
Method for getting the upper variable bounds.
arma::vec vec
Default (column) vector class.
Definition: common.h:17
virtual vec evals(const mat &points) const =0
Method for evaluating the objective function at multiple points.
virtual int dim() const =0
Method for getting the number of dimensions.
virtual std::string name() const =0
Method for getting the name of the optimization problem.
virtual double eval(const vec &point) const =0
Method for evaluating the objective function.
virtual vec lBounds() const =0
Method for getting the lower variable bounds.
Abstract class for a SOT test problem.
Definition: problem.h:62
vec evals(const mat &points) const
Method for evaluating the objective function at multiple points.
Definition: problem.h:69
SOT namespace.
Definition: sot.h:27
Abstract class for a SOT optimization problem.
Definition: problem.h:24
virtual double min() const =0
Method for getting global minimum value.
arma::mat mat
Default matrix class.
Definition: common.h:16
virtual vec optimum() const =0
Method for getting the global minimizer.