Skip to contents

To save time, Gaussian processes are not updated after the last iteration in addIterations(). The user can do this manually, using this function if they wish. This is not necessary to continue optimization using addIterations.

Usage

updateGP(optObj, bounds = optObj$bounds, verbose = 1, ...)

Arguments

optObj

an object of class bayesOpt

bounds

The bounds to scale the parameters within.

verbose

Should the user be warned if the GP is already up to date?

...

passed to DiceKriging::km()

Value

An object of class bayesOpt with updated Gaussian processes.

Examples

# Create initial object
scoringFunction <- function(x) {
  a <- exp(-(2-x)^2)*1.5
  b <- exp(-(4-x)^2)*2
  c <- exp(-(6-x)^2)*1
  return(list(Score = a+b+c))
}

bounds <- list(x = c(0,8))

Results <- bayesOpt(
    FUN = scoringFunction
  , bounds = bounds
  , initPoints = 3
  , iters.n = 2
  , gsPoints = 10
)
#> 
#> Running initial scoring function 3 times in 1 thread(s)...  0.572 seconds
#> 
#> Starting Epoch 1 
#>   1) Fitting Gaussian Process...
#>   2) Running local optimum search...        0.208 seconds
#>   3) Running FUN 1 times in 1 thread(s)...  0.199 seconds
#> 
#> Starting Epoch 2 
#>   1) Fitting Gaussian Process...
#>   2) Running local optimum search...        0.048 seconds
#>   3) Running FUN 1 times in 1 thread(s)...  0.197 seconds

# At this point, the Gaussian Process has not been updated
# with the most recent results. We can update it manually:
Results <- updateGP(Results)