optimInterface: optimInterface
Description
This function is an interface fashioned like the optim function.
Unlike optim, it collects a set of bound-constrained optimization algorithms
with local as well as global approaches. It is used in the CEGO package
to solve the optimization problem that occurs during parameter estimation
in the Kriging model (based on Maximum Likelihood Estimation).
Note that this function is NOT applicable to combinatorial optimization problems.Usage
optimInterface(x, fun, lower = -Inf, upper = Inf, control = list(), ...)
Arguments
x
is a point (vector) in the decision space of fun
fun
is the target function of type y = f(x, ...)
lower
is a vector that defines the lower boundary of search space
upper
is a vector that defines the upper boundary of search space
control
is a list of additional settings. See details.
...
additional parameters to be passed on to fun
Value
- This function returns a list with:
xbest parameters of the found solution
ybest target function value of the found solution
count number of evaluations of fun
Details
The control list contains:
funEvals stopping criterion, number of evaluations allowed for fun (defaults to 100)
reltol stopping criterion, relative tolerance (default: 1e-6)
popsize population size or number of particles (default: 10*dimension, where dimension is derived from the length of the vector lower).
restarts the number of restarts to perform (Default: 0). Function evaluation budget will be split accordingly. Early convergence of optimization runs may lead to additional restarts.
Violations of the provided budget may decrease the number of restarts.
method will be used to choose the optimization method from the following list:
"L-BFGS-B" - BFGS quasi-Newton: stats Package optim function
"nlminb" - box-constrained optimization using PORT routines: stats Package nlminb function
"DEoptim" - Differential Evolution implementation: DEoptim Package
Additionally to the above methods, several methods from the package nloptr can be chosen.
The complete list of suitable nlopt methods (non-gradient, bound constraints) is:
"NLOPT_GN_DIRECT","NLOPT_GN_DIRECT_L","NLOPT_GN_DIRECT_L_RAND",
"NLOPT_GN_DIRECT_NOSCAL","NLOPT_GN_DIRECT_L_NOSCAL","NLOPT_GN_DIRECT_L_RAND_NOSCAL",
"NLOPT_GN_ORIG_DIRECT","NLOPT_GN_ORIG_DIRECT_L","NLOPT_LN_PRAXIS",
"NLOPT_GN_CRS2_LM","NLOPT_LN_COBYLA",
"NLOPT_LN_NELDERMEAD","NLOPT_LN_SBPLX","NLOPT_LN_BOBYQA","NLOPT_GN_ISRES"
All of the above methods use bound constraints.
For references and details on the specific methods, please check the documentation of the packages that provide them.
Furthermore, the user can choose to use a function instead of a string for the method.
The used function should have the same parameters and arguments as documented for this very function, i.e. optimInterface.
The method parameters for the call to the supplied function will be extracted from control$method.