Version History

This section lists the different versions of Py-BOBYQA and the updates between them.

Version 1.0 (6 Feb 2018)

  • Initial release of Py-BOBYQA

Version 1.0.1 (20 Feb 2018)

  • Minor bug fix to trust region subproblem solver (the output crvmin is calculated correctly) - this has minimal impact on the performance of Py-BOBYQA.

Version 1.0.2 (20 Jun 2018)

  • Extra optional input args which passes through arguments for objfun (pull request from logangrado).

  • Bug fixes: default parameters for reduced initialization cost regime, returning correct value from safety steps, retrieving dependencies during installation.

Version 1.1 (24 Dec 2018)

  • Extra parameters to control the trust region radius over multiple restarts, designed for global optimization.

  • New input flag seek_global_minimum to set sensible default parameters for global optimization. New example script to demonstrate this functionality.

  • Bug fix: default trust region radius when scaling variables within bounds.

Initially released as version 1.1a0 on 17 Jul 2018.

Version 1.1.1 (5 Apr 2019)

  • Link code to Zenodo, to create DOI - no changes to the Py-BOBYQA algorithm.

Version 1.2 (25 Feb 2020)

  • Use deterministic initialisation by default (so it is no longer necessary to set a random seed for reproducibility of Py-BOBYQA results).

  • Full model Hessian stored rather than just upper triangular part - this improves the runtime of Hessian-based operations.

  • Faster trust-region and geometry subproblem solutions in Fortran using the trustregion package.

  • Don’t adjust starting point if it is close to the bounds (as long as it is feasible).

  • Option to stop default logging behavior and/or enable per-iteration printing.

  • Bugfix: correctly handle 1-sided bounds as inputs, avoid divide-by-zero warnings when auto-detecting restarts.

Version 1.3 (14 Apr 2021)

  • Remove NumPy deprecation warnings from use of np.int and np.float

Version 1.4 (16 May 2023)

  • Return diagnostic information as dictionary if Pandas not available (removes Pandas dependency)

  • Handle Nan/Inf values in model gradient and Hessian by gracefully exiting trust-region subproblem

  • Bugfix: automatically make model Hessian symmetric before trust-region subproblem with warning, instead of returning an error

  • Bugfix: reset slow iteration counter when doing soft restarts

Version 1.4.1 (11 Apr 2024)

  • Migrate package setup to pyproject.toml (required for Python version 3.12)

  • Drop support for Python 2.7 and <=3.7 due to new setup process

Version 1.5.0 (16 Sep 2024)

  • Added support for general convex constraints