mlr_optimizers_grid_search {bbotk} | R Documentation |

## Optimization via Grid Search

### Description

`OptimizerGridSearch`

class that implements grid search. The grid is
constructed as a Cartesian product over discretized values per parameter, see
`paradox::generate_design_grid()`

. The points of the grid are evaluated in a
random order.

In order to support general termination criteria and parallelization, we
evaluate points in a batch-fashion of size `batch_size`

. Larger batches mean
we can parallelize more, smaller batches imply a more fine-grained checking
of termination criteria.

### Dictionary

This Optimizer can be instantiated via the dictionary
mlr_optimizers or with the associated sugar function `opt()`

:

mlr_optimizers$get("grid_search")
opt("grid_search")

### Parameters

`resolution`

`integer(1)`

Resolution of the grid, see `paradox::generate_design_grid()`

.

`param_resolutions`

named `integer()`

Resolution per parameter, named by parameter ID, see
`paradox::generate_design_grid()`

.

`batch_size`

`integer(1)`

Maximum number of points to try in a batch.

### Progress Bars

`$optimize()`

supports progress bars via the package progressr
combined with a Terminator. Simply wrap the function in
`progressr::with_progress()`

to enable them. We recommend to use package
progress as backend; enable with `progressr::handlers("progress")`

.

### Super class

`bbotk::Optimizer`

-> `OptimizerGridSearch`

### Methods

#### Public methods

## Inherited methods

#### Method `new()`

Creates a new instance of this R6 class.

##### Usage

OptimizerGridSearch$new()

#### Method `clone()`

The objects of this class are cloneable with this method.

##### Usage

OptimizerGridSearch$clone(deep = FALSE)

##### Arguments

`deep`

Whether to make a deep clone.

### Examples

```
search_space = domain = ps(x = p_dbl(lower = -1, upper = 1))
codomain = ps(y = p_dbl(tags = "minimize"))
objective_function = function(xs) {
list(y = as.numeric(xs)^2)
}
objective = ObjectiveRFun$new(
fun = objective_function,
domain = domain,
codomain = codomain)
instance = OptimInstanceSingleCrit$new(
objective = objective,
search_space = search_space,
terminator = trm("evals", n_evals = 10))
optimizer = opt("grid_search")
# modifies the instance by reference
optimizer$optimize(instance)
# returns best scoring evaluation
instance$result
# allows access of data.table of full path of all evaluations
as.data.table(instance$archive$data)
```

[Package

*bbotk* version 0.7.2

Index]