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
.