Skip to content

0.10.8

Compare
Choose a tag to compare
@arcondello arcondello released this 18 Nov 00:17
· 980 commits to main since this release
2b81982

New Features

  • Add ExactCQMSolver class with solve_cqm method to reference solvers.
  • Add multiplication_circuit(), a binary quadratic model generator for multiplication circuits.
  • Add optional second parameter to multiplication_circuit() enabling the multiplying arguments of different sizes.
  • dimod.testing.load_sampler_bqm_tests() now also tests the deprecated BQM subclasses, namely AdjVectorBQM and AdjDictBQM.
  • Return a named tuple from BinaryQuadraticModel.to_numpy_vectors().
  • Added make_quadratic_cqm() - like make quadratic, but returns a CQM treating auxillary variable constraints as proper constraints instead of adding them to the objective.
  • Add independent_set, maximum_independent_set, and maximum_weight_independent_set functions to dimod.generators.
  • Add official support for Python 3.10.
  • Add aarch64 wheels for linux and universal wheels for osx.
  • Added reduce_binary_polynomial() that factors out a common basis for make_quadratic() and a future make_quadratic_cqm(). Given a BinaryPolynomial it return a list of reduced terms using auxillary variables and a list of constraints on them.

Deprecation Notes

  • Deprecate dimod.decorators.bqm_index_labelled_input() decorator.

Bug Fixes

  • Fix ConstrainedQuadraticModel.add_discrete() to correctly accept an iterator of variables as documented rather than instead requiring a collection.
  • Fixed edge case bug when determining dtype in as_sample().
  • No longer throw a TypeError from ConstrainedQuadraticModel.from_lp_file when adding a integer quadratic term from constraints.
  • Binary quadratic models with object data type now correctly support energy calculations where the given samples contain a superset of the variables in the model. This makes them consistent with binary quadratic models with np.float32 and np.float64 data types.
  • Fix BinaryQuadraticModel.add_linear_from to work correctly with iterables. Before linear had to be a mapping or (incorrectly) an iterator.