Become an expert in R — Interactive courses, Cheat Sheets, certificates and more!
Get Started for Free

stogo

Stochastic Global Optimization


Description

StoGO is a global optimization algorithm that works by systematically dividing the search space into smaller hyper-rectangles.

Usage

stogo(x0, fn, gr = NULL, lower = NULL, upper = NULL,
  maxeval = 10000, xtol_rel = 1e-06, randomized = FALSE,
  nl.info = FALSE, ...)

Arguments

x0

initial point for searching the optimum.

fn

objective function that is to be minimized.

gr

optional gradient of the objective function.

lower, upper

lower and upper bound constraints.

maxeval

maximum number of function evaluations.

xtol_rel

stopping criterion for relative change reached.

randomized

logical; shall a randomizing variant be used?

nl.info

logical; shall the original NLopt info been shown.

...

additional arguments passed to the function.

Details

StoGO is a global optimization algorithm that works by systematically dividing the search space (which must be bound-constrained) into smaller hyper-rectangles via a branch-and-bound technique, and searching them by a gradient-based local-search algorithm (a BFGS variant), optionally including some randomness.

Value

List with components:

par

the optimal solution found so far.

value

the function value corresponding to par.

iter

number of (outer) iterations, see maxeval.

convergence

integer code indicating successful completion (> 0) or a possible error number (< 0).

message

character string produced by NLopt and giving additional information.

Note

Only bound-constrained problems are supported by this algorithm.

Author(s)

Hans W. Borchers

References

S. Zertchaninov and K. Madsen, “A C++ Programme for Global Optimization,” IMM-REP-1998-04, Department of Mathematical Modelling, Technical University of Denmark.

Examples

### Rosenbrock Banana objective function
fn <- function(x)
    return( 100 * (x[2] - x[1] * x[1])^2 + (1 - x[1])^2 )

x0 <- c( -1.2, 1 )
lb <- c( -3, -3 )
ub <- c(  3,  3 )

stogo(x0 = x0, fn = fn, lower = lb, upper = ub)

nloptr

R Interface to NLopt

v1.2.2.2
LGPL-3
Authors
Jelmer Ypma [aut, cre], Steven G. Johnson [aut] (author of the NLopt C library), Hans W. Borchers [ctb], Dirk Eddelbuettel [ctb], Brian Ripley [ctb] (build process on multiple OS), Kurt Hornik [ctb] (build process on multiple OS), Julien Chiquet [ctb], Avraham Adler [ctb] (removal deprecated calls from tests, <https://orcid.org/0000-0002-3039-0703>)
Initial release
2020-07-02

We don't support your browser anymore

Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.