Skip to content

bbotk

1.13.1Package record

Black-Box Optimization Toolkit

14packages dependsuggested by 8
231Kdownloads / year
–test coverage
13/13flavors OK

Overview

About

Features highly configurable search spaces via the 'paradox' package and optimizes every user-defined objective function. The package includes several optimization algorithms e.g. Random Search, Iterated Racing, Bayesian Optimization (in 'mlr3mbo') and Hyperband (in 'mlr3hyperband'). bbotk is the base package of 'mlr3tuning', 'mlr3fselect' and 'miesmuschel'.

Changes in 1.13.1
  • fix: ArchiveAsync$best() with n_select > 1 no longer reorders the task cache of rush in place, which changed the order of $finished_data and $data for all later calls (#387).
  • fix: ArchiveBatch$add_evals() now checks that xss_trafoed has one element per row of xdt, which silently corrupted the x_domain column before (#366).
  • fix: as.data.table(mlr_optimizers, objects = TRUE) now returns the optimizer in the object column instead of base::t() for all optimizers but "chain" (#368).
  • fix: assert_terminable() now decides whether an instance is single or multi-criteria from the codomain of the objective instead of the class of the instance, so terminators are checked correctly for OptimInstanceAsyncMultiCrit (#375).
  • fix: $assign_result() and $result_y of the multi-criteria instances now only expect and return the target values of the codomain. A codomain with additional non-target parameters made $optimize() fail (#372).
  • fix: assign_result_default() now raises a readable error when the terminator is already terminated before the first evaluation instead of failing with column not found (#377).
  • fix: bb_optimize() now creates a single-criteria instance for a codomain with one target and additional non-target parameters instead of a multi-criteria instance (#373).
  • fix: branin() now adds the noise argument to the function value, which was ignored (#369).
  • fix: context$xdt can now be replaced by assignment in the on_optimizer_before_eval stage of a CallbackBatch, and the replaced points are both evaluated and written to the archive (#374).
  • fix: The C code of local_search() now raises R errors instead of using assert(), which aborted the R session and vanished entirely in a build with -DNDEBUG (#382).
  • fix: local_search() now recognizes the termination condition raised by a terminator. The condition was re-raised and the RNG state was never written back, so all random numbers drawn in the C code were lost (#378).
  • fix: local_search() now writes the RNG state back before it calls the objective, so an objective that draws random numbers no longer receives the numbers the C code consumed for mutation (#379).
Show all changes in 1.13.1Hide the rest of the changes in 1.13.1
  • fix: local_search() now compares parameter names, column names, list element names, and factor levels exactly instead of by prefix. A parameter or level whose name was a prefix of another one aborted the R session or made mutation a silent no-op (#380).
  • fix: nds_selection() now only accepts a minimize argument of length 1 or of the number of objectives, and rejects points with missing values (#365).
  • fix: Objective$eval_many() no longer multiplies the number of rows when the objective returns an extra that is an atomic vector of length greater than one (#367).
  • fix: optimize_async_default() now checks the instance and the properties of the optimizer before the workers are started, so unsupported parameter classes, dependencies, single or multi-criteria mismatches, and missing packages are reported in the main process instead of crashing the workers (#386).
  • fix: optimize_async_default() now stops the workers on every exit path, including errors and interrupts. A failing optimization left the workers running before (#384).
  • fix: OptimizerBatchChain now runs the optimizers on the instance itself instead of on a clone. The terminator of the instance sees all evaluated points, so the overall budget is no longer exceeded, and points that were already evaluated before the chain started are no longer duplicated in the archive (#364).
  • fix: OptimizerBatchIrace now passes the digits parameter to irace instead of always using 15 digits (#362).
  • fix: OptimizerBatchIrace now writes the actual step of a race into the step column of the archive, which was always 1 (#363).
  • fix: OptimizerBatchNLoptr no longer overwrites the maxeval, maxtime, and stopval parameters. The internal termination criteria set by the user are now passed on to nloptr::nloptr() (#361).
  • fix: OptimizerBatchRandomSearch rejects a batch_size smaller than 1, and $eval_batch() errors on an empty xdt unless the search space is empty. opt("random_search", batch_size = 0) looped forever before (#370).
  • fix: options(bbotk.debug = TRUE) no longer hangs when the optimizer returns before the terminator is satisfied, e.g. when the design of OptimizerAsyncDesignPoints is exhausted (#385).
  • fix: $result_y of the single-criteria instances now only returns the target values of the codomain. It errored for a codomain with additional non-target parameters (#371).
  • fix: shrink_ps() now expects the point to shrink around on the scale of the search space instead of the transformed scale, and the uniroot() based inversion of the trafo is removed. OptimizerBatchFocusSearch shrunk the search space around the wrong point whenever the search space had a trafo (#360).
  • fix: TerminatorRunTime now reports an integer number of steps, so a fractional secs value no longer breaks $optimize() when progressr is loaded (#376).

From NEWS.md in the release

Install

Health

CRAN checks
13OK
Slowest check: 12.2 min · r-oldrel-windows-x86_64
Status changes
  • OK13 OK2026-08-05
  • NOTE12 OK, 1 NOTE2026-08-01
  • OK14 OK2026-04-16
  • WARNING9 OK, 4 NOTE, 1 WARNING2026-03-21
  • NOTE13 OK, 1 NOTE2026-03-17
Show 1 earlier changeHide 1 earlier change
  • OK14 OK2026-03-10
Advisories

none known

Documentation

In release 1.13.1
READMEYes · 371 wordsVignettesNoNEWSYes · 100% structured · mentions 1.13.1Citation fileYes · software entry onlyWebsiteYes · pkgdown
Help pages
87 (13 internal)includes a package overview page
Examples that run
100%50 run in a plain check
Exported functions with examples
59%
Documented parameters
100%
Return-value docs
21%
Help pages citing references
0%

Downloads

231K
CRAN downloads in the past year
Rank #876 · ~633/day · ~19.2K/mo
Daily download trend is not available in this view yet.
12.8K30 days
48.9K90 days
231K1 year
Compare downloads with other packages →
Also on31.1K r2u46 autocran16.3K conda_forge143 c2d4u

Repository

26Stars
11Forks
5Open issues
7Open PRs
39Releases
829Commits
14Commit identities
machine-learningdata-scienceblack-box-optimizationoptimizationhyperparameter-tuningrmlr3bbotk
License file reads as LGPL-3.0 · 829 commits · Last activity 2026-09-18 · 0% stars, 30d · Default branch at 1.13.1.9000, ahead of CRAN 1.13.1 (checked 2026-10-18)
Responsiveness
How these are sampled
PRs merged (all time)
93%
Median days to close, 50 most recently updated closed issues
5
Median days to close, 50 most recently updated closed PRs
13

Stars over time

2025-07-28 · 242026-07-07 · 26
PracticesBeta

16 development-tooling and community-health practices detected across 6 families in the upstream repository

Checks run against github.com/mlr-org/bbotk on 2026-10-18.

Continuous integration (2)
GitHub ActionsR CMD check workflow

The R CMD check workflow runs on Linux, and on R-devel

Governance and community (3)
Contributing guide (inherited from mlr-org)

Funding links: GitHub Sponsors

The repository owner accepts GitHub Sponsors

Docs source (4)
README.Rmdpkgdown

GitHub Pages site last deployed 2026-09-18 · The repository has a site deploy workflow

pkgdown site last built 2026-09-18

Automation and maintenance (1)
Dependabot
Show all practicesHide 2 practices
Lint, format, editor (5)
lintrAirEditorConfigVS CodeRStudio project
Git structural (1)
blame-ignore revs
How this is detected·Detection ruleset v3 (2026-09-26)
AI coding toolsBeta

This repository shows signs of AI coding tools.

  • Claude Codefirst seen on or before 2025-11-26
    Seen in the repository: .claude, CLAUDE.md
    Named in .Rbuildignore: .claude, CLAUDE.md
    Named in .gitignore: .claude, CLAUDE.md
    Pull request it wrote: opened by a project member
    Commits: at least 42 crediting it in the message
  • Cursorfirst seen 2026-03-05
    Named in .Rbuildignore: .cursor
  • Gemini CLIfirst seen 2026-03-18
    Config: a file or ignore line, not recorded which
  • GitHub Copilotfirst seen on or before 2026-06-11
    Commits: at least 1 crediting it in the message
  • Codexfirst seen 2026-09-17
    Seen in the repository: .codex
    Named in .Rbuildignore: .codex
Shared conventions any agent may read, so they name no particular tool.
Seen in the repository: AGENTS.md
Models named in its commits
  • Claude Opus 530 commits · Aug to Sep 2026
  • Claude Opus 4.86 commits · Jun to Jul 2026
  • Claude Opus 4.62 commits · Mar 2026
  • Claude Fable 51 commit · Jul 2026
  • Claude Fable 5.11 commit · Sep 2026

1 more model not listed.

Counts are commits, not lines of code. Commits by a tool's accounts count once across all of its accounts. Commits crediting it are the largest count among its credit lines, a minimum.How this is detected·Detection ruleset v4 (updated 2026-09-27)

Dependencies

Declared dependencies
21 external dependencies (excludes base and recommended)

Installing bbotk adds 13 packages (9 with compiled code, 11 MB of source tarballs). Heaviest: data.table 5.7 MB, moocore 1.9 MB, rbibutils 1.1 MB.

Depends (2)
R >= 3.1.0paradox
LinkingTo (0)
none
Enhances (0)
none
Reverse dependencies
14direct
12indirect
Imports 14
Suggested by 8
Show all 22 packagesHide all 22 packages
Depends, Imports or LinkingTo, most downloaded first
Suggests, most downloaded first

People & History

People (6)
Maintainer since 0.2.0 (2020), Author
Contributor
Releases (39)

Pick two releases to compare their code metrics.

Show 30 earlier eventsHide 30 earlier events
  • 1.4.0
    record
    2024-11-26 · diff ↗ ·
    added 1 export
    OptimizerBatchChain
  • 1.3.0
    record
    2024-11-07 · diff ↗
  • 1.2.0
    record
    2024-10-25 · diff ↗
  • 1.1.1
    record
    2024-10-15 · diff ↗
  • 1.1.0
    record
    2024-09-09 · diff ↗ ·
    removed 1 export
    evaluate_queue_default
    added 2 exports
    OptimizerBatchLocalSearch, TerminatorStagnationHypervolume
  • 1.0.1
    record
    2024-07-24 · diff ↗
  • 1.0.0
    record
    2024-06-28 · diff ↗ ·
    removed 13 exports
    ArchiveBest, CallbackOptimization, ContextOptimization, OptimizerCmaes, OptimizerDesignPoints, OptimizerFocusSearch, OptimizerGenSA, OptimizerGridSearch, OptimizerIrace, OptimizerNLoptr, OptimizerRandomSearch, callback_optimization, optimize_default
    added 45 exports
    ArchiveAsync, ArchiveBatch, CallbackAsync, CallbackBatch, ContextAsync, ContextBatch, OptimInstanceAsync, OptimInstanceAsyncMultiCrit, OptimInstanceAsyncSingleCrit, OptimInstanceBatch, OptimInstanceBatchMultiCrit, OptimInstanceBatchSingleCrit, OptimizerAsync, OptimizerAsyncDesignPoints, OptimizerAsyncGridSearch, OptimizerAsyncRandomSearch, OptimizerBatch, OptimizerBatchCmaes, OptimizerBatchDesignPoints, OptimizerBatchFocusSearch, OptimizerBatchGenSA, OptimizerBatchGridSearch, OptimizerBatchIrace, OptimizerBatchNLoptr, OptimizerBatchRandomSearch, as_terminator, as_terminators, assert_archive, assert_archive_async, assert_archive_batch and 15 more
  • R
    R 4.4.0 released · 2024-04-24
  • 0.8.0
    record
    2024-02-29 · diff ↗
  • 0.7.3
    record
    2023-11-13 · diff ↗
  • R
    R 4.3.0 released · 2023-04-21
  • 0.7.2
    record
    2022-12-08 · diff ↗
  • 0.7.1
    record
    2022-11-30 · diff ↗
  • 0.7.0
    record
    2022-11-05 · diff ↗ ·
    added 2 exports
    ObjectiveRFunMany, branin_wu
  • 0.6.0
    record
    2022-10-25 · diff ↗ ·
    added 6 exports
    CallbackOptimization, ContextOptimization, callback_optimization, clbk, clbks, mlr_callbacks
  • 0.5.4
    record
    2022-08-25 · diff ↗ ·
    added 2 exports
    OptimizerFocusSearch, shrink_ps
  • 0.5.3
    record
    2022-05-04 · diff ↗
  • R
    R 4.2.0 released · 2022-04-22
  • 0.5.2
    record
    2022-04-04 · diff ↗
  • 0.5.1
    record
    2022-02-25 · diff ↗
  • 0.5.0
    record
    2022-01-19 · diff ↗ ·
    removed 2 exports
    assert_codomain, mult_max_to_min
    added 3 exports
    Codomain, branin, nds_selection
  • 0.4.0
    record
    2021-09-13 · diff ↗ ·
    added 2 exports
    OptimizerIrace, bb_optimize
  • R
    R 4.1.0 released · 2021-05-18
  • 0.3.2
    record
    2021-03-18 · diff ↗
  • 0.3.1
    record
    2021-03-12 · diff ↗
  • 0.3.0
    record
    2021-01-24 · diff ↗ ·
    added 1 export
    ArchiveBest
  • 0.2.2
    record
    2020-10-08 · diff ↗ ·
    added 2 exports
    OptimizerCmaes, mult_max_to_min
  • 0.2.1
    record
    2020-09-05 · diff ↗
  • 0.2.0
    record
    2020-07-24
  • R
    R 4.0.0 released · 2020-04-24

Package metadata

First published
2020-07-24
Total releases
39 / 6 yrs
License
LGPL-3 OSI
Minimum R
≥ 3.1.0
Download size
184 KB

Cite

Cite this package

Run in R for the authors' entry:

citation("bbotk")

The package provides a citation file, so citation() returns the authors' own entry.

It points to 10.5281/zenodo.20669808.

Cite the R Observatory

For a number measured here: a download total, a coverage figure, an archival date.

APA

Balamuta, J. J. (2026). R Observatory: Metrics for bbotk version 1.13.1 [Data set]. HJJB, LLC. Data release v2026-10-21. https://doi.org/10.5281/zenodo.21843040

From data release v2026-10-21, which the citation names so these numbers can be found later. More on citing and the projects behind them.

Report a problem with this page →

Privacy choices

These apply to this browser and are stored on this device only. Nothing about your choice is sent to us.

Read the privacy policy