Skip to content

Releases: dwavesystems/dimod

0.12.18

17 Oct 20:29
5ba112b
Compare
Choose a tag to compare

New Features

  • Add SampleSet.wait_id() as a proxy to the underlying QPU result
    future, when sample set is constructed from such a future. See
    #1392.
  • Add multi_knapsack() generator function to dimod.generators.
  • Add quadratic_knapsack() generator function to dimod.generators.

Upgrade Notes

  • Drop support for Python 3.8.

Bug Fixes

  • Fix warnings caused by using deprecated type aliases.

0.12.17

03 Sep 14:57
9b17267
Compare
Choose a tag to compare

New Features

  • Allow BinaryQuadraticModel.contract_variables() to contract
    variables without an interaction. Previously it raised a
    ValueError.
  • Add power_r() generator function to dimod.generators. The
    weights of the generated Ising problems follow a power-law
    distribution with respect to their magnitude.
  • Add bin_packing generator function to dimod.generators.
  • Add labels keyword argument to
    ConstrainedQuadraticModel.iter_constraint_data() and
    ConstrainedQuadraticModel.iter_violations() methods. The labels
    keyword argument allows a user to generate the data/violations for a
    subset of the constraints. See #1381.
  • Add knapsack generator function to dimod.generators.
  • Support Python 3.13.
  • Add quadratic_assignment generator function to dimod.generators.

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.