Skip to content

Releases: dwavesystems/dwave-ocean-sdk

6.4.0

02 Jun 02:11

Choose a tag to compare

Changelog

dimod 0.12.3 ➞ 0.12.6

New Features

  • Improve the performance of the ConstrainedQuadraticModel.add_variables() method.

  • Allow discrete constraints added by ConstrainedQuadraticModel.add_discrete() to have zero or one variables.

  • Add dimod::ConstrainedQuadraticModel::constraints() method that returns a view of the constraints that is easily iterated over.

  • Improve the performance of fixing and removing variables from constrained quadratic model expressions.

  • Implement the Expression::fix_variable() C++ method. Previously it would throw std::logic_error("not implemented - fix_variable").

  • Improve the performance of ConstrainedQuadraticModel.fix_variable() and ConstrainedQuadraticModel.fix_variables().

  • Add inplace keyword argument to ConstrainedQuadraticModel.fix_variables().

  • Add dimod::Constraint::clear() C++ method.

Upgrade Notes

  • Remove the undocumented cyConstrainedQuadraticModel.add_variable() method.

  • Add an overload to the C++ QuadraticModel::remove_variable() method. This is binary compatible, but it makes &remove_variable ambiguous.

  • The ConstrainedQuadraticModel.fix_variables() function now returns a ConstrainedQuadraticModel rather than an empty dictionary.

  • Change lp.load() and lp.loads() to raise a ValueErrorr rather than a RuntimeError when given an invalid file format.

  • Make beta_range, num_reads, and num_sweeps keyword-only arguments for SimulatedAnnealingSampler.sample().

  • Make num_reads and seed keyword-only arguments for RandomSampler.sample().

  • Make initial_states, initial_states_generator, num_reads and seed keyword-only arguments for IdentitySampler.sample().

  • Make rtol and atol keyword-only arguments for ExactCQMSolver.sample_cqm().

Bug Fixes

  • Fix ConstrainedQuadraticModel.add_variable() to raise a ValueError when given an inconsistent variable type. Previously it incorrectly raised a TypeError.

  • Fix ConstrainedQuadraticModel.add_variable() to raise a ValueError when given invalid variable bounds.

  • Fix lp.load() and lp.loads() functions to correctly handle maximization objectives. See #1321.

dwave-cloud-client 0.10.4 ➞ 0.10.5

New Features

  • Add strict_mode support to VersionedAPISession. Strict mode is now the default, implying API requests will fail if type/version is expected and the response doesn't include it.

  • Add version_strict_mode config option to DWaveAPIClient. It corresponds to underlying session's (VersionedAPISession) strict_mode.

  • Add VersionedAPISession, a requests.Session subclass (more precisely, further specialized LoggingSession) that enforces conformance of API response version with supported version range(s).

  • Add accepts decorator for declaring accepted media type and response format version (range) on dwave.cloud.api.Resource methods.

  • Simplify dwave.cloud.api.resource.accepts interface (require only media_type and version), but retain flexibility (pass all keyword arguments to VersionedAPISession.set_accept).

  • Support strict_mode control of API response type validation via @accepts interface.

Upgrade Notes

  • Response type version is now always required (regardless of strict_mode) if type is expected and received, and version is expected.

  • Enforce D-Wave API response format version on all cloud.api resources.

Bug Fixes

  • Fix dwave.cloud.api.resources.accepts to allow for partial decoration of Resource methods. See #544.

dwave-inspector 0.4.1 ➞ 0.4.2

Bug Fixes

dwave-networkx 0.8.13 ➞ 0.8.14

New Features

Upgrade Notes

dwave-system 1.18.0 ➞ 1.19.0

New Features

Fixes

dwave-gate 0.2.0 ➞ 0.2.1

New Features

  • Measurement samples can be returned as bitstrings instead of integers in nested lists.

  • A density matrix representation of the state can be accessed via the Circuit.density_matrix
    property, for both pure and mixed states (with the former being lazily calculated from the state
    vector).

Upgrade Notes

  • Adds support for multi-qubit sampling in measurements. Measurement.sample() and
    Measurement.expval() are updated to accept a sequence of qubit indices to sample, sampling
    all measured qubits if none are given.

    circuit = Circuit(2, 2)
    
    with circuit.context as (q, c):
        ops.X(q[0])
        m = ops.Measurement(q) | c
    
    simulate(circuit)
    
    m.sample(num_samples=3, as_bitstring=True)
    # ['10', '10', '10']
  • The state is now stored in the Circuit object (same as the bits/measurement results) instead
    of being returned by the simulate() function. It can now be accessed via the
    Circuit.state property.

Package versions

dimod==0.12.6
dwave-cloud-client==0.10.5
dwave-greedy==0.3.0
dwave-hybrid==0.6.10
dwave-inspector==0.4.2
dwave-neal==0.6.0
dwave-networkx==0.8.14
dwave-preprocessing==0.5.4
dwave-samplers==1.0.0
dwave-system==1.19.0
dwave-tabu==0.5.0
dwavebinarycsp==0.2.0
minorminer==0.2.11
penaltymodel==1.0.2
pyqubo==1.4.0

# extras: all
dwave-gate==0.2.1

6.3.0

26 Jan 21:57

Choose a tag to compare

Changelog

dwave-inspector 0.4.0 ➞ 0.4.1

Upgrade Notes

  • The .show() call does not return a RichDisplayURL anymore. Instead, we reverted to returning URL in a plain str. Jupyter viewer will display the inspector inline if possible, otherwise the URL is opened in a browser.

    To render the inspector URL inline in a Jupyter notebook cell, independently of the .show() call, you can do:

    url = dwave.inspector.show(...)
    ...
    from dwave.inspector.utils import RichDisplayURL
    RichDisplayURL(url)
    

Bug Fixes

  • Fix duplicated inline render of the Inspector in GUI Jupyter in case when the returned (rich URL) object is displayed in the same cell the dwave.inspector.show() was called. See #152

minorminer 0.2.10 ➞ 0.2.11

New Features

  • Adds a wrapper to the Glasgow Subgraph Solver. This is a really cool external library that very quickly solves subgraph isomorphism problems. In our language, that problem corresponds to finding a chainlength-1 embedding from a problem graph into a hardware graph, which optimizes performance on the hardware. Many thanks to Ciaran McCreesh (and team) for providing this library and supporting our efforts to wrap it.

Package versions

dimod==0.12.3
dwave-cloud-client==0.10.4
dwave-greedy==0.3.0
dwave-hybrid==0.6.10
dwave-inspector==0.4.1
dwave-neal==0.6.0
dwave-networkx==0.8.13
dwave-preprocessing==0.5.4
dwave-samplers==1.0.0
dwave-system==1.18.0
dwave-tabu==0.5.0
dwavebinarycsp==0.2.0
minorminer==0.2.11
penaltymodel==1.0.2
pyqubo==1.4.0

# extras: all
dwave-gate==0.1.0

6.2.0

23 Dec 18:14

Choose a tag to compare

Changelog

dwave-cloud-client 0.10.3 ➞ 0.10.4

New Features

  • Add Python 3.11 support
  • Add dimod 0.12.x support
  • Add numpy 1.24.x support

dwave-hybrid 0.6.9 ➞ 0.6.10

New Features

  • Add Python 3.11 support. See #285.

Bug Fixes

  • Adapt SA concurrency test to new Neal default schedule. See #278.

  • Add lattice ref solver to docs. See #282.

  • Stop using deprecated numpy type aliases. See #283.

  • Fix async multiprocess queue logging test. See #286.

dwave-inspector 0.3.0 ➞ 0.4.0

New Features

  • Add support for jupyter-server-proxy. Inspector URL gets rewritten prior to opening/viewing according to external URL as defined by the new config environment variable: DWAVE_INSPECTOR_JUPYTER_SERVER_PROXY_EXTERNAL_URL. See #144

  • Add support for Python 3.11

  • Add support for dimod~=0.11.0 and dimod~=0.12.0

  • Add support for running the inspector behind a network proxy. Now users can register a URL rewriter specific to their environment using the inspectorapp_proxies entry point. See #141

  • Use relative API paths to enable app hosting on externally-configured paths (app#110). See #146.

  • Render inspector inline in Jupyter notebooks. See #109 and #133.

Upgrade Notes

  • Drop Python 3.6 support

  • Drop dimod~=0.8.0 and dimod~=0.9.0 support

  • Custom viewer can now return False to signal a non-blocking show() behavior is desired. Previously the value returned was ignored by the caller.

  • Lower bound on Flask version is now 2.2.

Bug Fixes

  • Improve error handling and display in dwave-inspectorapp (app#100)

  • Make show() non-blocking regardless of the block argument when no viewer manages to open the inspector page. See #139.

  • Upgraded JSON serialization to use Flask's new DefaultJSONProvider (introduced in Flask 2.2). The "old" way is deprecated by Flask in 2.2, to be dropped in next minor release, 2.3.

dwave-networkx 0.8.12 ➞ 0.8.13

New Features

  • Add support for torus QPU graph variations. See #225.

Bug Fixes

  • Bug fix/documentation See #223.

dwave-preprocessing 0.5.3 ➞ 0.5.4

New Features

  • Release wheels for Python 3.11

minorminer 0.2.9 ➞ 0.2.10

New Features

  • Release wheels for Python 3.11.

  • Add busgraph_cache.topology_identifier method.

Package versions

dimod==0.12.3
dwave-cloud-client==0.10.4
dwave-greedy==0.3.0
dwave-hybrid==0.6.10
dwave-inspector==0.4.0
dwave-neal==0.6.0
dwave-networkx==0.8.13
dwave-preprocessing==0.5.4
dwave-samplers==1.0.0
dwave-system==1.18.0
dwave-tabu==0.5.0
dwavebinarycsp==0.2.0
minorminer==0.2.10
penaltymodel==1.0.2
pyqubo==1.4.0

# extras: all
dwave-gate==0.1.0

6.1.1

14 Dec 01:32
afdbf50

Choose a tag to compare

dwave-system 1.17.0 -> 1.18.0

Fixes

Upgrade Notes

  • Use SciPy>=1.7.3
  • Use dwave-samplers rather than dwave-greedy
  • Use NumPy>=1.20.0
  • Use dwave-preprocessing>=0.5.0
  • Use dimod>=0.12.0

6.1.0

28 Nov 23:26
c0ca591

Choose a tag to compare

dimod 0.12.0 -> 0.12.3

dimod 0.12.3

New Features

  • Add compress keyword argument to ConstrainedQuadraticModel.to_file().
  • Add ConstraintView.set_weight() method. This allows users to set the weight of existing constraints.

Upgrade Notes

  • When the constraint is hard, ConstraintView.penalty() now returns None. Previously it would return either 'linear' or 'quadratic'.

Bug Fixes

  • Fix the copy keyword argument of ConstrainedQuadraticModel.add_constraint_from_model(). Previously it would always make a copy.
  • Add missing #include in dimod/include/dimod/abc.h.
  • Fix ConstrainedQuadraticModel.add_constraint_from_iterable() to no longer raise a NotImplementedError when given a weight.
  • Fix ConstrainedQuadraticModel.add_constraint() to raise a ValueError rather than a NotImplementedError when given an invalid penalty.

dimod 0.12.2

New Features

  • Implement Expression::remove_variable() method in the C++ code.
  • Implement Expression.remove_variable() method in the Python code.
  • Add dimod/libcpp/expression.pxd and dimod/libcpp/constraint.pxd.

dimod 0.12.1

Bug Fixes

  • Add the ability to set offsets on ObjectiveView and ConstraintView. This was previously removed in dimod 0.12.0. See #1287
  • Add ObjectiveView.add_linear_from() and ConstraintView.add_linear_from() methods. These were previously removed in dimod 0.12.0.
  • Add ObjectiveView.add_variable() and ConstraintView.add_variable() methods. These were previously removed in dimod 0.12.0.

dwave-gate 0.1.0

Initial release.

dwave-greedy 0.2.5 -> 0.3.0

Deprecate dwave-greedy in favor of dwave-samplers.

dwave-neal 0.5.9 -> 0.6.0

Deprecate dwave-neal in favor of dwave-samplers.

dwave-preprocessing 0.5.1 -> 0.5.3

dwave-preprocessing 0.5.3

Features

  • Remove interactions and variables with 0 bias in Presolver

Fixes

  • Fix handling of empty soft constraint in Presolver.

dwave-preprocessing 0.5.2

Fixes

  • Fix case where Presolver was incorrectly leaving variables fixed by bounds in the model

dwave-samplers 1.0.0

Initial release. D-Wave Samplers combines the samplers from dwave-greedy, dwave-neal, and dwave-tabu.

dwave-system 1.16.0 -> 1.17.0

New Features

  • Respect low-level solver order on failover. See #479.

dwave-tabu 0.4.5 -> 0.5.0

Deprecate dwave-tabu in favor of dwave-samplers.

6.0.1

03 Nov 01:13
4238857

Choose a tag to compare

dwave-preprocessing 0.5.0 -> 0.5.1

Fixes

  • Fix case where Presolver was incorrectly marking constraints with no variables as infeasible.

6.0.0

31 Oct 23:35
938669a

Choose a tag to compare

dimod 0.11.6 -> 0.12.0

Prelude

The entire C++ library has been rewritten for performance and consistency.

New Features

  • New dimod::abc::QuadraticModelBase abstract base class.
  • Better performance for linear models.
  • Add dimod.cyqmbase.cyQMBase_template Cython class to serve as an abstract base class for Cython quadratic models.
  • Break dimod/libcpp.pxd into a full Cython subpackage to mirror the structure under dimod/include/. This allows for better organization, and less need to recompile all Cython files when changing parts of the C++ library. Packages that depend on dimod are still encouraged to use the from dimod.libcpp cimport ... syntax.
  • Build wheels for Python 3.11.

  • Add C++ dimod::ConstrainedQuadraticModel class.

  • Add C++ ConstrainedQuadraticModel.add_constraint() overload that allows a user to move a binary quadratic model or quadratic model as a constraint.
  • Add C++ ConstrainedQuadraticModel.constraint_weak_ptr() method.
  • Make BinaryQuadraticModel.vartype callable. This allows for more uniform syntax between binary quadratic models, quadratic models and constrained quadratic models.
  • Replace current ConstrainedQuadraticModel implementation with one implemented in Cython.
  • Add ConstrainedQuadraticModel.clear() method.

Bug Fixes

  • Fix a performance regression introduced in 0.10.0 when loading linear binary quadratic models from files.
  • Fix the handling of self-loops in dimod::Expression::add_quadratic() and similar methods.
  • Fix C++ ConstrainedQuadraticModel.remove_variable() method. Previously it would segmentation fault.

Upgrade Notes

  • Rewrite dimod::QuadraticModelBase and move it to dimod::abc::QuadraticModelBase in abc.h.
  • Move dimod::Vartype, dimod::vartype_info, and dimod::vartype_limits` tovartypes.h``.
  • Remove the dimod::Neighborhood class.
  • Remove iterators.h.
  • Move dimod::BinaryQuadraticModel to binary_quadratic_model.h.
  • Remove dimod.binary.cybqm.cyBQMBase class.
  • Remove dimod.quadratic.cyqm.cyQMBase class.
  • Build manylinux2014 wheels. Previously we built manylinux2010.
  • Build arm64 and x86_64 wheels for macos. Previously we built x86_64 and universal2.

Deprecation Notes

  • Deprecate the cascade keyword argument in ConstrainedQuadraticModel.fix_variable().
  • Deprecate the cascade keyword argument in ConstrainedQuadraticModel.fix_variables().

dwave-cloud-client 0.10.2 -> 0.10.3

New Features

  • Add support for NumPy scalars used as problem parameter values. See #512.

dwave-preprocessing 0.4.0 -> 0.5.0

New Features

  • Add CQM presolving.

dwave-system 1.15.0 -> 1.16.0

What's Changed

5.5.0

05 Oct 22:49
5a78bf1

Choose a tag to compare

Changelog

dimod 0.11.5 -> 0.11.6

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.

5.5.0rc1

03 Oct 15:43
f6876c0

Choose a tag to compare

5.5.0rc1 Pre-release
Pre-release

Changelog

dimod 0.11.5 -> 0.11.6rc1

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.

5.4.0

14 Sep 19:20

Choose a tag to compare

Changelog

dimod 0.11.3 ➞ 0.11.5

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.

  • 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.

dwave-cloud-client 0.10.1 ➞ 0.10.2

New Features

  • Add estimate_qpu_access_time method to dwave.cloud.solver.StructuredSolver to estimate quantum processing unit (QPU) access time for a submission to the selected solver.

dwave-hybrid 0.6.8 ➞ 0.6.9

New Features

  • Add LatticeLNLS reference workflow for larger-than-QPU lattice-structured problems. See #263.

  • Add LatticeLNLSSampler, a dimod-compatible hybrid decomposition sampler for problems of lattice structure.

  • Add make_origin_embeddings decomposer that creates optimal embeddings for a QPU or cubic lattice.

Bug Fixes

  • Support unorderable variables in energy based decomposer (fixes #273).

Package versions

dimod==0.11.5
dwave-cloud-client==0.10.2
dwave-greedy==0.2.5
dwave-hybrid==0.6.9
dwave-inspector==0.3.0
dwave-neal==0.5.9
dwave-networkx==0.8.12
dwave-preprocessing==0.4.0
dwave-system==1.15.0
dwave-tabu==0.4.5
dwavebinarycsp==0.2.0
minorminer==0.2.9
penaltymodel==1.0.2
# pyqubo==1.2.0