Skip to contents

Extends bbotk::OptimizerBatch with support for SearchInstance in addition to bbotk::OptimInstance. Optimizers that should work with both bbotk::OptimInstance and SearchInstance should inherit from this class instead of bbotk::OptimizerBatch.

Runs the optimizer on either an bbotk::OptimInstance or a SearchInstance.

Arguments

inst

(bbotk::EvalInstance)
Either an bbotk::OptimInstance (delegated to bbotk::OptimizerBatch) or a SearchInstance (handled by a custom loop).

Value

data.table::data.table for bbotk::OptimInstance, NULL invisibly otherwise.

Details

The default .assign_result() in bbotk::OptimizerBatch assumes an bbotk::OptimInstance and errors on a SearchInstance. This class overrides .assign_result() to handle both: it delegates to bbotk::assign_result_default() for bbotk::OptimInstance and is a no-op for SearchInstance (which has no result slot).

For SearchInstance, $optimize() runs a custom batch-style loop that mirrors bbotk::optimize_batch_default() but accepts the broader bbotk::EvalInstance base class and catches terminated_error (the condition class raised by search_terminated_error()).