Type: Package
Title: Derivative-Free Optimization in R using C++
Version: 0.2.2
Date: 2022-12-08
Maintainer: Yi Pan <ypan1988@gmail.com>
Description: Perform derivative-free optimization algorithms in R using C++. A wrapper interface is provided to call C function of the 'bobyqa' implementation (See https://github.com/emmt/Algorithms/tree/master/bobyqa).
License: GPL-2 | GPL-3 [expanded from: GPL (≥ 2)]
Encoding: UTF-8
SystemRequirements: C++11
Imports: Rcpp (≥ 1.0.7)
LinkingTo: Rcpp
RoxygenNote: 7.1.2
Suggests: minqa
NeedsCompilation: yes
Packaged: 2023-01-06 15:18:08 UTC; samue
Author: Sam Watson [aut], Yi Pan [aut, cre], Éric Thiébaut [aut], Mike Powell [aut]
Repository: CRAN
Date/Publication: 2023-01-08 09:20:02 UTC

Example 1a: Minimize Rosenbrock function using bobyqa

Description

Minimize Rosenbrock function using bobyqa and expect a normal exit from bobyqa.

Usage

bobyqa_rosen_x1()

Value

No return value, called for side effects.

Examples

fr <- function(x) {   ## Rosenbrock Banana function
 x1 <- x[1]
 x2 <- x[2]
 100 * (x2 - x1 * x1)^2 + (1 - x1)^2
}
(x1 <- minqa::bobyqa(c(1, 2), fr, lower = c(0, 0), upper = c(4, 4)))
## => optimum at c(1, 1) with fval = 0
str(x1) # see that the error code and msg are returned

## corresponding C++ implementation:
bobyqa_rosen_x1()

Example 1b: Minimize Rosenbrock function using bobyqa

Description

Minimize Rosenbrock function using bobyqa and expect a normal exit from bobyqa.

Usage

bobyqa_rosen_x1e()

Value

No return value, called for side effects.

Examples

fr <- function(x) {   ## Rosenbrock Banana function
 x1 <- x[1]
 x2 <- x[2]
 100 * (x2 - x1 * x1)^2 + (1 - x1)^2
}
# check the error exits
# too many iterations
x1e <- minqa::bobyqa(c(1, 2), fr, lower = c(0, 0), upper = c(4, 4), control = list(maxfun=50))
str(x1e)

## corresponding C++ implementation:
bobyqa_rosen_x1e()

rminqa

Description

Perform derivative-free optimization algorithms in R using C++. A wrapper interface is provided to call C function of the bobyqa implementation.

Author(s)

Yi Pan, Samuel Watson