Conversion between minimization and maximization problems.

Description

We can minimize f by maximizing -f. The majority of predefined objective functions in smoof should be minimized by default. However, there is a handful of functions, e.g., Keane or Alpine02, which shall be maximized by default. For benchmarking studies it might be beneficial to inverse the direction. The functions convertToMaximization and convertToMinimization do exactly that keeping the attributes.

Usage

1
2
3

Arguments

fn

[smoof_function]
Smoof function.

Value

[smoof_function]

Note

Internally no wrapper is put around the original function. Instead the function is copied and the body of the function is manipulated via the body function. Both functions will quit with an error if multi-objective functions are passed.

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
# create a function which should be minimized by default
fn = makeSphereFunction(1L)
print(shouldBeMinimized(fn))
# Now invert the objective direction ...
fn2 = convertToMaximization(fn)
# and invert it again
fn3 = convertToMinimization(fn2)
# Now to convince ourselves we render some plots
opar = par(mfrow = c(1, 3))
plot(fn)
plot(fn2)
plot(fn3)
par(opar)

Want to suggest features or report bugs for rdrr.io? Use the GitHub issue tracker.