Skip to content

Releases: bqth29/simulated-bifurcation-algorithm

1.2.1

23 Nov 18:02
f0f5653
Compare
Choose a tag to compare

simulated-bifurcation version 1.2.1 Release Notes

🚀 What's New

  • New Stop Criterion: Control SB's runtime with the optimizer's new timeout feature. Specify the optimization
    timeout in seconds using timeout parameter in the optimization functions (optimize, maximize, and minimize).
  • Optimization Models Pool Extension: The Integer Weights Knapsack problem and the Optimal Trading Trajectory
    Problem (sequential Markowitz model) have joined the catalog of available models.
  • Model Device and Dtype Flexibility: Move your models to another dtype or device without having to individually
    modify each tensor that makes it up, using the polynomial's to method.

🐞 Bug fixes

  • The optimizer's stop window now works energy-wise instead of spin-wise to speed up convergence if the states are degenerate.
  • Fixed the selection of the best agent when the optimization direction is maximization to select an agent with a
    maximal energy (previously an agent with minimal energy was returned).
  • Typing error in Python 3.8: The occurrences of the typing annotation list have been replaced by typing.List for
    Python 3.8 compatibility purposes.

🔔 Deprecation warnings

  • The parameter input_type has been deprecated in optimize, maximize, and minimize; it will be removed in
    version 1.3.0. It is replaced by the domain parameter.
  • The classes SpinQuadraticPolynomial, BinaryQuadraticPolynomial and IntegerQuadraticPolynomial have been
    deprecated. From version 1.3.0 onwards, polynomials will no longer have a definition domain. The domain only needs to
    be specified when creating an Ising model, and conversely when converting spins back into the original domain.

➡️ Looking forward to version 1.3.0

  • Mathematical Definition of Polynomials: Discover a more natural way of defining polynomial instances using the
    polynomial's from_expression method. This method generates native SB polynomials (tensors of coefficients) from
    Sympy expressions, making them easier to read and understand, especially for small dimensions.

🚧 Known issues

  • A MemoryError is raised when creating an integer polynomial if the number of bits is large (~30 bits).
    Unfortunately, there are no good fixes on the user side for this at the moment. The issue will be addressed in version 1.3.0.
    The cause of this bug is the creation of a tensor containing all allowed values (2^n where n is the number of bits).
    See this issue.

1.2.0

11 Aug 19:07
2cf4240
Compare
Choose a tag to compare

simulated-bifurcation version 1.2.0 Release Notes

What's New

  • Optimization Enhancement: Experience a 2x speed boost in the optimizer.
  • Algorithm Invocation Improvement: Enjoy a more user-friendly interaction with the Simulated Bifurcation algorithm through the new minimize and maximize static functions.
  • General Polynomial API: Introducing a versatile polynomial API designed to construct and solve second-order multivariate polynomial problems using SB. This accommodates various variable types, including spin, binary, integer variables, and user-defined variable types.
  • Implementation of several usual NP-hard optimization problems: the models module brings together interfaces for several NP-hard optimization problems (e.g., QUBO, Ising, number partitioning).
  • Constants from physical theories have been transformed into optimization environment variables.
  • Code Standardization: The codebase has undergone standardization using Black and isort code formatters, enhancing code consistency and readability.