The smoof R package provides generators for huge set of single- and multi-objective test functions, which are frequently used in the literature to benchmark optimization algorithms. Moreover the package provides methods to create arbitrary objective functions in an object-orientated manner, extract their parameters sets and visualize them graphically.

Given a set of criteria *\mathcal{F} = \{f_1, …, f_m\}* with each
*f_i : S \subseteq \mathbf{R}^d \to \mathbf{R} , i = 1, …, m* being an
objective-function, the goal in *Global Optimization (GO)* is to find the best
solution *\mathbf{x}^* \in S*. The set *S* is termed the *set of
feasible soluations*. In the case of only a single objective function *f*,
- which we want to restrict ourself in this brief description - the goal is to
minimize the objective, i. e.,

*\min_{\mathbf{x}} f(\mathbf{x}).*

Sometimes we may be interested in maximizing the objective function value, but
since *min(f(\mathbf{x})) = -\min(-f(\mathbf{x}))*, we do not have to tackle
this separately.
To compare the robustness of optimization algorithms and to investigate their behaviour
in different contexts, a common approach in the literature is to use *artificial
benchmarking functions*, which are mostly deterministic, easy to evaluate and given
by a closed mathematical formula.
A recent survey by Jamil and Yang lists 175 single-objective benchmarking functions
in total for global optimization [1]. The smoof package offers implementations
of a subset of these functions beside some other functions as well as
generators for large benchmarking sets like the noiseless BBOB2009 function set [2]
or functions based on the multiple peaks model 2 [3].

[1] Momin Jamil and Xin-She Yang, A literature survey of benchmark functions for global optimization problems, Int. Journal of Mathematical Modelling and Numerical Optimisation, Vol. 4, No. 2, pp. 150-194 (2013). [2] Hansen, N., Finck, S., Ros, R. and Auger, A. Real-Parameter Black-Box Optimization Benchmarking 2009: Noiseless Functions Definitions. Technical report RR-6829. INRIA, 2009. [3] Simon Wessing, The Multiple Peaks Model 2, Algorithm Engineering Report TR15-2-001, TU Dortmund University, 2015.

Questions? Problems? Suggestions? Tweet to @rdrrHQ or email at ian@mutexlabs.com.

Please suggest features or report bugs with the GitHub issue tracker.

All documentation is copyright its authors; we didn't write any of that.