smoof-package | R Documentation |
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, \ldots, f_m\}
with each
f_i : S \subseteq \mathbf{R}^d \to \mathbf{R} , i = 1, \ldots, 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 solutions. In the case of only a single objective function f
,
- which we want to restrict ourselves 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].
Almost all continuous smoof function check the input before evaluating the function
by default. It checks whether the numeric vector has the expected length, there
are no missing values and all values are finite. Not that currently box constraints
are not checked though. Evaluating a function millions of times can be slowed
down by these checks significantly. Set the option “smoof.check_input_before_evaluation”
to FALSE
to deactivate those checks.
[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.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.