- Minimum required version of
rushis now 1.0.0. Removed all compatibility workarounds for older versions. - feat: Add
mlr_test_functionsdictionary with well-known 2-D optimization test functions (Branin, Rosenbrock, Himmelblau, Rastrigin, etc.) and sugar functionsotfun()/otfuns().
- feat: Allow
"learn"tag (direction=0) alongside minimize/maximize inCodomain. - feat: Add new base class
EvalInstancefrom whichOptimInstancenow inherits.EvalInstancekeeps information about a process that evaluates anObjectivewhile not necessarily optimizing it. - feat: Exporting formerly internal
choose_search_space()function. - feat: Use
mlr3miscerror classes for errors and warnings. - compatibility: Compatible with
rush1.0.0. - fix: Terminator print method works correctly now.
- fix: Any Conditions work with
OptimizerLocalSearchnow.
- feat: Add
on_optimizer_queue_before_evalandon_optimizer_queue_after_evalstages toCallbackAsyncandCallbackBatch. - fix: Start phase of
rushworker.
fix: Imbalanced protection and casting in C code. fix: Load required packages in worker loop.
- BREAKING CHANGE: Replace
OptimizerBatchLocalSearchwith a faster C implementation. - feat: Add
parparameter toOptimizerGenSA. - BREAKING CHANGE: Replace
startparameter fromOptimizerNloptrwithx0parameter. - feat: Expose internal termination criteria of
Optimizers. - feat: Store required packages in
Objective$packages. - feat: Fail queued and running points when optimization is terminated.
- fix: Pass
n_workerstorush. - feat: Kill
rushworker after optimization. - feat: Add tiny logging mode.
- BREAKING CHANGE: The mlr3 ecosystem has a base logger now which is named
mlr3. Themlr3/bbotklogger is a child of themlr3logger and is used for logging messages from thebbotkandmlr3tuningpackage. - feat: Classes are now printed with the
clipackage. - fix: Prevent switching of
xssandconstants. - fix: Add saveguard on
OptimizerNloptrbounds. - feat: Allow numerical gradient approximation in
OptimizerNloptr.
- compatibility: irace 4.1.0
- compatibility: rush 0.2.0
- refactor: Replace
Codomain$maximization_to_minimizationwith$directionfield. - feat: Save
ArchiveAsyncto adata.tablewithArchiveAsyncFrozen.
- compatibility: irace 4.0.0
- feat: Add
OptimizerBatchChainthat runs multiple optimizers sequentially. - refactor: Only pass
extrato$assign_result().
- feat: Add new stage
on_result_begintoCallbackAsyncTuningandCallbackBatchTuning. - refactor: Rename stage
on_resulttoon_result_endinCallbackAsyncTuningandCallbackBatchTuning. - docs: Extend the
CallbackAsyncTuningandCallbackBatchTuningdocumentation.
- feat:
ContextBatchandContextAsynchave aresult_extrafield now to access additional results passed to the instance. - refactor: Additional information are passed with
extratoOptimInstance$assign_result().
- feat: The optimizers passes additional information to
OptimInstance$assign_result()method.
- docs: Move vignette to mlr3book.
- feat: Add hypervolume stagnation terminator
trm("stagnation_hypervolume"). - feat Add local search optimizer
opt("local_search"). - refactor: Remove unused fields from callbacks.
- fix: Add
"on_optimization_end_batch"stage toCallbackBatch.
- refactor: extra columns in results.
- feat: Introduce asynchronous optimization with the
OptimizerAsyncandOptimInstanceAsyncclasses. - BREAKING CHANGE: The
Optimizerclass isOptimizerBatchnow. - BREAKING CHANGE: The
OptimInstanceclass and subclasses areOptimInstanceBatch*now. - BREAKING CHANGE: The
CallbackOptimizationclass isCallbackBatchnow. - BREAKING CHANGE: The
ContextOptimizationclass isContextBatchnow. - BREAKING CHANGE: Remove
ArchiveBestclass andkeep_evalsparameter fromOptimInstance.
- fix:
OptimizerIracefailed with logical parameters and dependencies. - refactor: Optimize the runtime of
archive$best()method and add ties method. - compatibility: Work with new paradox version 1.0.0
- fix:
OptimInstance$print()errored when the search space was empty.
- fix: Standalone
TunerandFSelectorwere rejected byContextBatch.
- feat: Data unrelated to a specific point evaluation can be written to
Archive$data_extra.
- fix:
Terminator$format(with_params = TRUE)printed an empty list when no parameter was set. - refactor:
OptimizerIraceautomatically added theinstancesparameter toObjective$constants. From now on, theinstancesparameter can be also set manually. - BREAKING CHANGE:
branin(xs)is nowbranin(x1, x2, noise)andbranin_wu(x1, x2, fidelity). - feat: Add
ObjectiveRFunManythat can evaluate a list of configurations with a user supplied function. - fix: If all configurations were missing a parameter,
ObjectiveRFunDt$eval_many()did not create a column withNAfor the missing parameter. - refactor: The default of
digitsinOptimizerIraceis 15 now to avoid rounding errors. - refactor: The bounds of double parameters were processed with only 4 decimal places in
OptimizerIrace. By default, the bounds of double parameters are represented with 15 decimal places now. Thedigitsparameter ofOptimizerIracealso changes number of decimal places of the bounds now.
- fix:
OptimizerIracedid not work with parameters with multiple dependencies. - feat: Add new callback that backups the archive to disk to
mlr_callbacks. - feat: Create custom callbacks with the
callback_batch()function.
- feat: Add
OptimizerFocusSearchthat performs a focusing random search.
- feat:
OptimizerandTerminatorobjects have the field$idnow.
- refactor: The
$print()method ofOptimInstanceomits unnecessary columns now. - fix: The
$clear()method ofOptimInstanceraised an error. - fix: The
$clear()method ofArchivemissed to reset the$start_timefield. - feat:
OptimizerandTerminatorobjects have the optional field$labelnow. - feat:
as.data.table()functions for objects of classDictionaryhave been extended with additional columns. - feat: Add a
as.data.table.DictionaryTerminator()function.
- fix: The return of the
$.status()method ofTerminatorRunTimeandTerminatorClockTimewas not in a consistent unit. The return is in seconds from now on. - fix: The number of evaluations was recorded as 0 in the log messages when the search space was empty.
- feat: Add a
as.data.table.DictionaryOptimizer()function. - feat: New
$help()method which opens the manual page of anOptimizer.
- feat: Add
$nds_selection()method toArchive. - feat: New
Codomainclass that allows extra parameters. - refactor: Objective values were automatically named.
From now on, only unnamed returns of
ObjectiveRFunare named. - fix:
OptimInstance,ArchiveandObjectiveobjects were not cloned properly. - refactor: The fields
$param_classes,$propertiesand$packagesofOptimizerobjects are read-only now. - feat: The
branin()function is exported now.
- feat: The search space and domain can now be empty.
- feat: The budget of
TerminatorEvalscan now be changed depending on the dimension of the search space with the parameterk. - feat: Add
bb_optimize()function. - feat: Add
OptimizerIracewhich callsirace::iracefrom theiracepackage.
- refactor: Internal changes.
- feat: Add
$clear()method toOptimInstanceto reset the instance. - refactor: Prettier
$print()methods. - feat: Assertions on overlapping and reserved names in domain and codomain.
- feat: The check of points and results can now be disables with the
check_valuesflag inOptimInstance,OptimInstanceSingleCrit,OptimInstanceMultiCrit,ObjectiveRFunandObjectiveRFunDt. - refactor: The
data.tablewithin theArchivecan now be accessed with$data. - refactor: The
mparameter ofArchive$best()is renamed tobatch. - feat: New
ArchiveBestclass which only stores best scoring evaluation instead of all evaluations - refactor: The runtime is reduced when
ObjectiveRFunDtis used with a domain without trafo. - fix: Add support for
ParamUtyinOptimizerDesignPoints. - feat: The start points for
OptimizerCmaesandOptimizerNloptrcan now be randomly created or from center of the search space. - feat: The
$optimize()method supports progress bars via the packageprogressr.
- refactor: Remove dependency on orphaned package
bibtex. - feat: Add
OptimizerCmaeswhich callsadagio::pureCMAESfrom theadagiopackage.
- refactor: Compact in-memory representation of R6 objects to save space when saving mlr3 objects via saveRDS(), serialize() etc.
- refactor: Warning and error messages when upstream package of
Optimizeris not installed.
- First version of the Black-Box Optimization Toolkit