# stogo

##### Stochastic Global Optimization

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:

the optimal solution found so far.

the function value corresponding to `par`

.

number of (outer) iterations, see `maxeval`

.

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

character string produced by NLopt and giving additional information.

##### Note

Only bound-constrained problems are supported by this algorithm.

##### 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

```
# NOT RUN {
### 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)
# }
```

*Documentation reproduced from package nloptr, version 1.2.1, License: LGPL-3*