G function

Extract Gradient information

Extract Gradient information

Extract the gradient from its argument (typically a ROI object of class "objective").

G(x, ...)

Arguments

  • x: an object used to select the method.
  • ``: further arguments passed down to the grad() function for calculating gradients (only for "F_objective").

Returns

a "function".

Details

By default ROI uses the "grad" function from the numDeriv package to derive the gradient information. An alternative function can be provided via "ROI_options". For example ROI_options("gradient", myGrad)

would tell ROI to use the function "myGrad" for the gradient calculation. The only requirement to the function "myGrad" is that it has the argument "func"

which takes a function with a scalar real result.

Examples

## Not run: f <- function(x) { return( 100 * (x[2] - x[1]^2)^2 + (1 - x[1])^2 ) } x <- OP( objective = F_objective(f, n=2L), bounds = V_bound(li=1:2, ui=1:2, lb=c(-3, -3), ub=c(3, 3)) ) G(objective(x))(c(0, 0)) ## gradient numerically approximated by numDeriv f.gradient <- function(x) { return( c( -400 * x[1] * (x[2] - x[1] * x[1]) - 2 * (1 - x[1]), 200 * (x[2] - x[1] * x[1])) ) } x <- OP( objective = F_objective(f, n=2L, G=f.gradient), bounds = V_bound(li=1:2, ui=1:2, lb=c(-3, -3), ub=c(3, 3)) ) G(objective(x))(c(0, 0)) ## gradient calculated by f.gradient ## End(Not run)
  • Maintainer: Stefan Theussl
  • License: GPL-3
  • Last published: 2023-04-20