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, e.g., 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.
optimInterface(x, fun, lower = -Inf, upper = Inf, control = list(), ...)
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
is a point (vector) in the decision space of fun
is the target function of type y = f(x, ...)
is a vector that defines the lower boundary of search space
is a vector that defines the upper boundary of search space
is a list of additional settings. See details.
additional parameters to be passed on to fun
The control list contains:
funEvals
stopping criterion, number of evaluations allowed for fun
(defaults to 100)
reltol
stopping criterion, relative tolerance (default: 1e-6)
factr
stopping criterion, specifying relative tolerance parameter factr for the L-BFGS-B method in the optim function (default: 1e10)
popsize
population size or number of particles (default: 10*dimension
, where dimension
is derived from the length of the vector lower
).
restarts
whether to perform restarts (Default: TRUE). Restarts will only be performed if some of the evaluation budget is left once the algorithm stopped due to some stopping criterion (e.g., reltol).
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.