Skip to content

Releases: dwavesystems/dimod

0.12.16

25 Jun 21:46
7506136
Compare
Choose a tag to compare

New Features

  • Add dimod/typing.pdx. This allows users to cimport common C
    types into other namespaces.
  • Support NumPy 2.0. Also, no longer require NumPy at build-time.
  • Reduce the size of manylinux wheels.

Upgrade Notes

  • Remove Cython fused types dimod.cyutilities.SignedInteger,
    dimod.cyutilities.UnsignedInteger, dimod.cyutilities.Integer,
    and dimod.cyutilities.ConstInteger, dimod.cyutilities.Numeric,
    and dimod.cyutilities.ConstNumeric. Use the types in
    dimod.typing instead.
  • Remove Cython fused types
    dimod.discrete.cydiscrete_quadratic_model.Unsigned,
    dimod.discrete.cydiscrete_quadratic_model.Integral32plus,
    dimod.discrete.cydiscrete_quadratic_model.Numeric, and
    dimod.discrete.cydiscrete_quadratic_model.Numeric32plus. Use the
    types in dimod.typing instead.
  • Don't include debug info in built .so files.

0.12.15

13 Jun 21:52
238914c
Compare
Choose a tag to compare

New Features

  • Add C++ QuadraticModelBase::remove_interactions() method.
  • Add dimod.generators.random_binary_paint_shop_problem() binary paint shop problem generator.
  • Add an abstract method QuadraticViewsMixin.add_quadratic().
  • Add a method QuadraticViewsMixin.add_quadratic_from() to add quadratic interactions. This method is intended to be used as follows: ConstrainedQuadraticModel.objective.add_quadratic_from(), similarly to ConstrainedQuadraticModel.objective.add_linear_from().
  • Add check_overlaps keyword argument to ConstrainedQuadraticModel.add_discrete(), see #1364.

Upgrade Notes

  • All sublcasses of QuadraticViewsMixin, including ObjectiveView, QuadraticModel and BinaryQuadraticModel, now require to have the method add_quadratic().

0.12.14

22 Dec 16:04
e7bc4d5
Compare
Choose a tag to compare

New Features

  • Add C++ dimod::abc::QuadraticModelBase::remove_variables() method
    and accompanying overloads.
  • Speed up C++ dimod::Expression::remove_variables() method.

0.12.13

24 Oct 17:07
6a13aee
Compare
Choose a tag to compare

New Features

  • Build wheels for Python 3.12.
  • Build C++ extensions with Cython 3.

0.12.12

01 Sep 17:57
85f5baf
Compare
Choose a tag to compare

New Features

  • Add mimo() function for generating a multi-input multiple-output (MIMO) channel-decoding problem.
  • Add coordinated_multipoint() function for generating a coordinated multi-point (CoMP) decoding problem.

0.12.11

17 Aug 17:17
8433f22
Compare
Choose a tag to compare

New Features

  • Make SampleSet.relabel_variables() non-blocking in all cases. Previously it would block when inplace=False.

  • Implement SampleSet serialization schema version 3.2.0.

    Version 3.2.0 replaces float values that represent integers with int in the "data" field of any arrays returned by SampleSet.to_serializable(). In some pathological cases this can result in a much smaller representation when the data dictionaries are json-serialized by avoiding the redundant .0 appended to every value.

    This is a backwards-compatible change.

  • Add penalization_method parameter to BinaryQuadraticModel.add_linear_inequality_constraint(). It allows the use of unbalanced penalization https://arxiv.org/abs/2211.13914 instead of the slack variables method for the inequality constraints.

Bug Fixes

  • Fix the behavior of SampleSet.relabel_variables() when inplace=True. Previously the method incorrectly returned a copy when the sample set was unresolved.

0.12.10

06 Jul 21:48
e5a8e3b
Compare
Choose a tag to compare

Bug Fixes

  • Fix dimod::ConstrainedQuadraticModel::fix_variables() C++ method to work correctly with quadratic objectives and constraints. This fixes a bug introduced in dimod 0.12.5. See #1351.

0.12.9

06 Jul 15:13
ac78c62
Compare
Choose a tag to compare

New Features

  • Add Constraint.is_onehot() method.
  • Add dimod::Expression::remove_variables() C++ method. This method is useful for removing variables in bulk from the objective or constraints of a constrained quadratic model.

0.12.8

28 Jun 19:44
3873226
Compare
Choose a tag to compare

New Features

  • Add dimod.generators.magic_square() which allows for the generation of a constrained quadratic model whose feasible solutions are normal magic squares. The function also generates magic squares of squares when passed power=2 as a keyword argument.
  • Implement version 2.0 of constrained quadratic model serialization. See ConstrainedQuadraticModel.to_file() for details.
  • Improve LP file reading by wrapping HiGHS LP file parser.
  • Add C++ ConstrainedQuadraticModel::remove_constraints_if() method.

Upgrade Notes

  • Remove the ObjectView.to_file() method.
  • Remove the ConstraintView.to_file() method.
  • Remove dimod::lp C++ namespace.
  • Drop support for Python 3.7.

Bug Fixes

  • Fix ConstrainedQuadraticModel.from_discrete_quadratic_model() incorrectly formulating the discrete constraints. This bug was
    introduced in version 0.12.7.
  • Fix dimod.generators.frustrated_loop() to correctly handle graphs with tuple labels. See #1342.

0.12.8rc2

21 Jun 16:50
ec06872
Compare
Choose a tag to compare
0.12.8rc2 Pre-release
Pre-release

Bug Fixes

  • Fix loading constrained quadratic models that are serialized with CQM serialization version 2.0 and that have tuple labels.
  • Support serializing constraints that need more than 2GB to save.