Abstract Base Class for Search-Compatible Optimizers
Source:R/OptimizerSearchAbstract.R
OptimizerSearchAbstract.RdExtends 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()).