Skip to content

Releases: dwavesystems/dimod

0.11.6.dev0

19 Sep 16:32
de40db8
Compare
Choose a tag to compare
0.11.6.dev0 Pre-release
Pre-release

New Features

  • Add Variables._remove() method.
  • Added weight and penalty parameters on ConstrainedQuadraticModel.add_constraint methods to encoded weighted constraints.
  • Add constrained quadratic model serialization version 1.3 to support soft constraints.

0.11.5

16 Aug 14:47
5d2043d
Compare
Choose a tag to compare

New Features

  • Add ConstrainedQuadraticModel.is_linear() method.
  • Add ConstrainedQuadraticModel.spin_to_binary() method.
  • Add Variables._clear() method for use by classes that have Variables as an attribute.
  • Add C++ dimod::QuadraticModel::clear() method.
  • Add C++ dimod::BinaryQuadraticModel::clear() method.
  • Add QuadraticModel.clear() method.
  • Add BinaryQuadraticModel.clear() method.
  • Add typing support for the dimod.variables.Variables class. See #1221.

Bug Fixes

  • Fix as_samples() when given a SampleSet and using the labels_type keyword argument. Previously it would raise a TypeError. This fix allows constructions like bqm.energies(sampleset) to function correctly.
  • Refactor dimod.typing.SamplesLike and dimod.typing.SampleLike. SampleLike now correctly includes constructions like ([0, 1], 'ab').
  • Make Vartype.INTEGER and Vartype.REAL pickleable. This fixes the pickling of many downstream objects like QuadraticModel and SampleSet.

0.11.4

12 Jul 00:30
eecde17
Compare
Choose a tag to compare

New Features

  • Add ConstrainedQuadraticModel.__str__() method. See #1188.
  • Speed up the construction of Variables objects from a range or another Variables.
  • Add optional keyword argument labels_type to the as_samples() function.
  • Speed up BinaryQuadraticModel.energies() and QuadraticModel.energies() in cases where the model has a small subset of the variables in the samples.
  • Speed up SampleSet.from_samples_cqm() in cases where there are constraints with a small number of variables relative to the objective.

0.11.3

22 Jun 16:04
15d25b2
Compare
Choose a tag to compare

New Features

  • Add dimod::QuadraticModelBase::energy() method to dimod/libcpp.pxd for Cython access.
  • Randomly generated variable and constraint labels now begin with a letter and do not contain dashes. This ensures that they can be serialized to LP files. See #1206.

Bug Fixes

  • Fix dimod.lp.dump() and dimod.lp.dumps() to output bounds for REAL variables.

0.11.2

14 Jun 15:48
6ee9013
Compare
Choose a tag to compare

New Features

  • Add dimod.lp.dump() and dimod.lp.dumps() functions to encode constrained quadratic models as LP files.
  • Expand supported NumPy version range to numpy>=1.17.3,<2.0.0
  • Add plant_solution keyword argument to dimod.generators.random_nae3sat(), dimod.generators.random_2in4sat() and dimod.generators.frustrated_loop functions.
  • Add dimod::QuadraticModel::add_quadratic_back() and dimod::BinaryQuadraticModel::add_quadratic_back() methods in C++ code.
  • Improve the performance of QuadraticModel.from_file(), which also improves the performance of ConstrainedQuadraticModel.from_file().

Deprecation Notes

  • Deprecated planted_solution keyword argument in dimod.generators.frustrated_loop().

Bug Fixes

  • Fix a performance regression to QuadraticModel.add_linear_from() introduced by #1170 as part of the 0.11.0 release.

0.11.1

27 May 16:04
666594d
Compare
Choose a tag to compare

New Features

  • Add dimod.generators.random_nae3sat() function for generating not-all-equal 3-satisfiability problems as binary quadratic models.
  • Add dimod.generators.random_2in4sat() function for generating 2-in-4 satisfiability problems as binary quadratic models.

Bug Fixes

  • Drop pyparsing dependency. The functionality that required it was removed in version 0.11.0.
  • Added missing import of BinaryQuadraticModel required by dimod.serialization.json.DimodDecoder

0.11.0

07 May 22:42
5cf5f74
Compare
Choose a tag to compare

Prelude

Add support for real-valued variables.

New Features

  • Improved deprecation warnings and documentation. See #192.
  • Add C++ Vartype::REAL, a new variable type for real-valued variables.
  • Support variables with Vartype::REAL in C++ QuadraticModel.
  • Add Vartype.REAL, a new variable type for real-valued variables.
  • Add Real() and Reals() functions for creating quadratic models with a single real-valued variable.
  • Support variables with Vartype.REAL in QuadraticModel.
  • ConstrainedQuadraticModel.to_file() now uses serialization format 1.2. This format is backwards compatibile.
  • Add vartype and linear_only arguments to ConstrainedQuadraticModel.num_biases().
  • Add vartype and include_objective arguments to ConstrainedQuadraticModel.num_quadratic_variables().
  • Add check_header keyword-only argument to ConstrainedQuadraticModel.from_file().
  • Add a global flag dimod.REAL_INTERACTIONS. When this flag is set to False, variables with variable type Vartype.REAL cannot have interactions. dimod.REAL_INTERACTIONS is set to False by default.
  • Add the ability to specify a default variable type and bounds for missing variables when calling QuadraticModel.add_linear() and QuadraticModel.add_linear_from().
  • Add QuadraticModel::swap() and BinaryQuadraticModel::swap() methods to the C++ code. See #928.
  • Add lp.loads() and lp.load() functions.
  • Improve the performance of the ConstrainedQuadraticModel.from_lp_file() method.
  • Improve the performance of iteration over Variables objects.

Upgrade Notes

  • Remove .vartypes, .lower_bounds, and .upper_bounds attributes from ConstrainedQuadraticModel.variables. These were previously deprecated in dimod 0.10.6.
  • Remove .vartype() method from ConstrainedQuadraticModel.variables. It was previously deprecated in dimod 0.10.6.
  • Remove bqm_index_labelled_input decorator. It was previously deprecated in dimod 0.10.8.
  • Remove SampleSet.is_writeable attribute.
  • Remove dimod.generators.knapsack(). It was previously deprecated in dimod 0.10.6.
  • Remove dimod.generators.multi_knapsack(). It was previously deprecated in dimod 0.10.6.
  • Remove dimod.generators.bin_packing(). It was previously deprecated in dimod 0.10.6.
  • Remove HigherOrderComposite.sample_ising() method. It was previously scheduled to be removed in dimod 0.10.0.
  • Remove PolySampler.sample(), PolySampler.sample_ising(), and PolySampler.sample_qubo() methods. These were previously scheduled to be removed in dimod 0.10.0.
  • AdjVectorBQM and AdjDictBQM are now aliases for BinaryQuadraticModel and DictBQM respectively rather than having their own implementation with a slightly different API. They were previously deprecated in dimod 0.10.0.
  • The dimod.bqm namespace has been removed.
  • The dimod.core.bqm namespace has been removed.
  • dimod::AdjVectorBQM has been removed from the C++ code.
  • Some composites were migrated to dwave-preprocessing in dimod0.10.0. Trying to import and use these composites from dimod now raises an exception rather than a warning. The affected composites:
    • ClipComposite
    • ConnectedComponentsComposite
    • FixedVariableComposite
    • RoofDualityComposite
    • ScaleComposite
    • SpinReversalTransformComposite
  • The fix_variables() was migrated to dwave-preprocessing in dimod 0.10.0. Trying to import and use it now raises an exception rather than a warning.
  • Packages that require binary compatibility with dimod and that were compiled with 0.10.0 will not work with 0.11.0.
  • Drop support for Numpy 1.19
  • Some malformed LP-files that previously caused ConstrainedQuadraticModel.from_lp_file() to emit a warning now raise an error instead.
  • Provide manylinux2014 wheels for Python 3.10 rather than manylinux2010.

Deprecation Notes

  • Deprecate support for the ConstrainedQuadraticModel.add_variable(v, vartype) argument order. Use ConstrainedQuadraticModel.add_variable(vartype, v) instead. See #969.
  • In the future, ConstrainedQuadraticModel.num_quadratic_variables() will also include the objective towards the count by default.
  • Deprecate ConstrainedQuadraticModel.from_lp_file() method. Users should use the more explicit lp.loads() and lp.load() functions instead. The ConstrainedQuadraticModel.from_lp_file() will be removed in dimod 0.13.0.
  • The default_lower_bounds and default_upper_bounds keyword arguments for ConstrainedQuadraticModel.from_lp_file() are deprecated and do nothing.

Bug Fixes

  • Fixes performance regression on energy calculations introduced in 0.10.0. See #1025
  • In the cqm_to_bqm function, set the Lagrange multiplier to one if the maximum absolute bias is zero.
  • dimod.variables.Variables objects now correctly raise an IndexError when given negative indices that are out of range.

0.10.17

12 Apr 21:16
f375864
Compare
Choose a tag to compare

New Features

  • Add BinaryQuadraticModel::lower_bound() and BinaryQuadraticModel::upper_bound() methods to the C++ code.
  • Improve the performance of the QuadraticModel.update() method.
  • Improve the performance of the ConstrainedQuadraticModel.set_objective() method.
  • QuadraticModel.update() now accepts binary quadratic models in addition to quadratic models.
  • Add QuadraticModel.add_variables_from_model() method. See #1157.

0.11.0rc1

15 Mar 18:53
c847816
Compare
Choose a tag to compare
0.11.0rc1 Pre-release
Pre-release

Prelude

Add support for real-valued variables.

New Features

  • Improved deprecation warnings and documentation. See #192.
  • Add C++ Vartype::REAL, a new variable type for real-valued variables.
  • Support variables with Vartype::REAL in C++ QuadraticModel.
  • Add Vartype.REAL, a new variable type for real-valued variables.
  • Add Real() and Reals() functions for creating quadratic models with a single real-valued variable.
  • Support variables with Vartype.REAL in QuadraticModel.
  • ConstrainedQuadraticModel.to_file() now uses serialization format 1.2. This format is backwards compatibile.
  • Add vartype and linear_only arguments to ConstrainedQuadraticModel.num_biases().
  • Add vartype and include_objective arguments to ConstrainedQuadraticModel.num_quadratic_variables().
  • Add check_header keyword-only argument to ConstrainedQuadraticModel.from_file().
  • Add a global flag dimod.REAL_INTERACTIONS. When this flag is set to False, variables with variable type Vartype.REAL cannot have interactions. dimod.REAL_INTERACTIONS is set to False by default.

Upgrade Notes

  • Remove .vartypes, .lower_bounds, and .upper_bounds attributes from ConstrainedQuadraticModel.variables. These were previously deprecated in dimod 0.10.6.
  • Remove .vartype() method from ConstrainedQuadraticModel.variables. It was previously deprecated in dimod 0.10.6.
  • Remove bqm_index_labelled_input decorator. It was previously deprecated in dimod 0.10.8.
  • Remove SampleSet.is_writeable attribute.
  • Remove dimod.generators.knapsack(). It was previously deprecated in dimod 0.10.6.
  • Remove dimod.generators.multi_knapsack(). It was previously deprecated in dimod 0.10.6.
  • Remove dimod.generators.bin_packing(). It was previously deprecated in dimod 0.10.6.
  • Remove HigherOrderComposite.sample_ising() method. It was previously scheduled to be removed in dimod 0.10.0.
  • Remove PolySampler.sample(), PolySampler.sample_ising(), and PolySampler.sample_qubo() methods. These were previously scheduled to be removed in dimod 0.10.0.
  • AdjVectorBQM and AdjDictBQM are now aliases for BinaryQuadraticModel and DictBQM respectively rather than having their own implementation with a slightly different API. They were previously deprecated in dimod 0.10.0.
  • The dimod.bqm namespace has been removed.
  • The dimod.core.bqm namespace has been removed.
  • dimod::AdjVectorBQM has been removed from the C++ code.
  • Some composites were migrated to dwave-preprocessing in dimod0.10.0. Trying to import and use these composites from dimod now raises an exception rather than a warning. The affected composites:
    • ClipComposite
    • ConnectedComponentsComposite
    • FixedVariableComposite
    • RoofDualityComposite
    • ScaleComposite
    • SpinReversalTransformComposite
  • The fix_variables() was migrated to dwave-preprocessing in dimod 0.10.0. Trying to import and use it now raises an exception rather than a warning.
  • Packages that require binary compatibility with dimod and that were compiled with 0.10.0 will not work with 0.11.0.

Deprecation Notes

  • Deprecate support for the ConstrainedQuadraticModel.add_variable(v, vartype) argument order. Use ConstrainedQuadraticModel.add_variable(vartype, v) instead. See #969.
  • In the future, ConstrainedQuadraticModel.num_quadratic_variables() will also include the objective towards the count by default.

Bug Fixes

  • Fixes performance regression on energy calculations introduced in 0.10.0. See #1025

0.10.16

15 Mar 18:37
a330e09
Compare
Choose a tag to compare

New Features

  • Add SampleSet.from_samples_cqm() method.

Bug Fixes

  • ExactCQMSolver.sample_cqm now uses SampleSet.from_samples_cqm. This corrects a small error in the calculation of constraint satisfaction.
  • dimod.generators.random_knapsack() and dimod.generators.random_bin_packing() no longer use a fixed seed by default.
  • ConstrainedQuadraticModel.add_discrete(), ConstrainedQuadraticModel.add_constraint_from_iterable(), and ConstrainedQuadraticModel.add_discrete_from_model() now correctly raise an error when given a binary variable that overlaps with an existing discrete constraint. See #1149.
  • SampleSet.from_samples_bqm now handles empty list input correctly.