smoof-package: smoof: Single and Multi-Objective Optimization test...

smoof-packageR Documentation

smoof: Single and Multi-Objective Optimization test functions.

Description

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.

Some more details

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].

Sanity checks before evaluation

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.

References

[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.


jakobbossek/smoof documentation built on Feb. 17, 2024, 2:23 a.m.