Releases: dwavesystems/dwave-ocean-sdk
6.4.0
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 throwstd::logic_error("not implemented - fix_variable"). -
Improve the performance of
ConstrainedQuadraticModel.fix_variable()andConstrainedQuadraticModel.fix_variables(). -
Add
inplacekeyword argument toConstrainedQuadraticModel.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_variableambiguous. -
The
ConstrainedQuadraticModel.fix_variables()function now returns aConstrainedQuadraticModelrather than an empty dictionary. -
Change
lp.load()andlp.loads()to raise aValueErrorrrather than aRuntimeErrorwhen given an invalid file format. -
Make
beta_range,num_reads, andnum_sweepskeyword-only arguments forSimulatedAnnealingSampler.sample(). -
Make
num_readsandseedkeyword-only arguments forRandomSampler.sample(). -
Make
initial_states,initial_states_generator,num_readsandseedkeyword-only arguments forIdentitySampler.sample(). -
Make
rtolandatolkeyword-only arguments forExactCQMSolver.sample_cqm().
Bug Fixes
-
Fix
ConstrainedQuadraticModel.add_variable()to raise aValueErrorwhen given an inconsistent variable type. Previously it incorrectly raised aTypeError. -
Fix
ConstrainedQuadraticModel.add_variable()to raise aValueErrorwhen given invalid variable bounds. -
Fix
lp.load()andlp.loads()functions to correctly handle maximization objectives. See #1321.
dwave-cloud-client 0.10.4 ➞ 0.10.5
New Features
-
Add
strict_modesupport toVersionedAPISession. 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_modeconfig option toDWaveAPIClient. It corresponds to underlying session's (VersionedAPISession)strict_mode. -
Add
VersionedAPISession, arequests.Sessionsubclass (more precisely, further specializedLoggingSession) that enforces conformance of API response version with supported version range(s). -
Add
acceptsdecorator for declaring accepted media type and response format version (range) ondwave.cloud.api.Resourcemethods. -
Simplify
dwave.cloud.api.resource.acceptsinterface (require onlymedia_typeandversion), but retain flexibility (pass all keyword arguments toVersionedAPISession.set_accept). -
Support
strict_modecontrol of API response type validation via@acceptsinterface.
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.apiresources.
Bug Fixes
- Fix
dwave.cloud.api.resources.acceptsto allow for partial decoration ofResourcemethods. See #544.
dwave-inspector 0.4.1 ➞ 0.4.2
Bug Fixes
-
Use
vcrpy-compatible version ofurllib3(<2) for testing in dwavesystems/dwave-inspector#157 -
Migrate to codecov's orb from the deprecated uploader in dwavesystems/dwave-inspector#158
-
Update examples to use newer QPU in dwavesystems/dwave-inspector#155
dwave-networkx 0.8.13 ➞ 0.8.14
New Features
-
Improved Documentation. See dwavesystems/dwave-networkx#226, dwavesystems/dwave-networkx#227, dwavesystems/dwave-networkx#229.
-
Fix misc deprecation warnings. See dwavesystems/dwave-networkx#228.
-
Support NetworkX 3.x. See dwavesystems/dwave-networkx#230.
Upgrade Notes
- Added NumPy as an explicit dependency. See dwavesystems/dwave-networkx#230.
dwave-system 1.18.0 ➞ 1.19.0
New Features
- Improved documentation. See dwavesystems/dwave-system#491.
Fixes
- Add missing
dwave.embedding.zephyrnamespace. See dwavesystems/dwave-system#490.
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
Circuitobject (same as the bits/measurement results) instead
of being returned by thesimulate()function. It can now be accessed via the
Circuit.stateproperty.
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
Changelog
dwave-inspector 0.4.0 ➞ 0.4.1
Upgrade Notes
-
The
.show()call does not return aRichDisplayURLanymore. Instead, we reverted to returning URL in a plainstr. 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
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.0anddimod~=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_proxiesentry 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.0anddimod~=0.9.0support -
Custom viewer can now return
Falseto signal a non-blockingshow()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 theblockargument 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_identifiermethod.
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
dwave-system 1.17.0 -> 1.18.0
Fixes
- Fix the default
time_limitcalculation inLeapHybridCQMSampler. See dwavesystems/dwave-system#482.
Upgrade Notes
- Use
SciPy>=1.7.3 - Use
dwave-samplersrather thandwave-greedy - Use
NumPy>=1.20.0 - Use
dwave-preprocessing>=0.5.0 - Use
dimod>=0.12.0
6.1.0
dimod 0.12.0 -> 0.12.3
dimod 0.12.3
New Features
- Add
compresskeyword argument toConstrainedQuadraticModel.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 returnsNone. Previously it would return either'linear'or'quadratic'.
Bug Fixes
- Fix the
copykeyword argument ofConstrainedQuadraticModel.add_constraint_from_model(). Previously it would always make a copy.
- Add missing
#includeindimod/include/dimod/abc.h.
- Fix
ConstrainedQuadraticModel.add_constraint_from_iterable()to no longer raise aNotImplementedErrorwhen given a weight.
- Fix
ConstrainedQuadraticModel.add_constraint()to raise aValueErrorrather than aNotImplementedErrorwhen 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.pxdanddimod/libcpp/constraint.pxd.
dimod 0.12.1
Bug Fixes
- Add the ability to set offsets on
ObjectiveViewandConstraintView. This was previously removed in dimod 0.12.0. See #1287
- Add
ObjectiveView.add_linear_from()andConstraintView.add_linear_from()methods. These were previously removed in dimod 0.12.0.
- Add
ObjectiveView.add_variable()andConstraintView.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
Presolverwas 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
dwave-preprocessing 0.5.0 -> 0.5.1
Fixes
- Fix case where
Presolverwas incorrectly marking constraints with no variables as infeasible.
6.0.0
dimod 0.11.6 -> 0.12.0
Prelude
The entire C++ library has been rewritten for performance and consistency.
New Features
- New
dimod::abc::QuadraticModelBaseabstract base class.
- Better performance for linear models.
- Add
dimod.cyqmbase.cyQMBase_templateCython class to serve as an abstract base class for Cython quadratic models.
- Break
dimod/libcpp.pxdinto a full Cython subpackage to mirror the structure underdimod/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 thefrom dimod.libcpp cimport ...syntax.
-
Build wheels for Python 3.11.
-
Add C++
dimod::ConstrainedQuadraticModelclass.
- 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.vartypecallable. This allows for more uniform syntax between binary quadratic models, quadratic models and constrained quadratic models.
- Replace current
ConstrainedQuadraticModelimplementation 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::QuadraticModelBaseand move it todimod::abc::QuadraticModelBaseinabc.h.
- Move
dimod::Vartype,dimod::vartype_info, anddimod::vartype_limits` tovartypes.h``.
- Remove the
dimod::Neighborhoodclass.
- Remove
iterators.h.
- Move
dimod::BinaryQuadraticModeltobinary_quadratic_model.h.
- Remove
dimod.binary.cybqm.cyBQMBaseclass.
- Remove
dimod.quadratic.cyqm.cyQMBaseclass.
- Build
manylinux2014wheels. Previously we builtmanylinux2010.
- Build
arm64andx86_64wheels for macos. Previously we builtx86_64anduniversal2.
Deprecation Notes
- Deprecate the
cascadekeyword argument inConstrainedQuadraticModel.fix_variable().
- Deprecate the
cascadekeyword argument inConstrainedQuadraticModel.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
- Fix QPU failover by signaling solver failover condition (on resolve). See dwavesystems/dwave-system#465
- Exact-solve for ground state in
MockDWaveSampleron small problems. See dwavesystems/dwave-system#476 - Add
dwave.systems.temperaturesubmodule witheffective_field,maximum_pseudolikelihood_temperature,freezeout_effective_temperature,fast_effective_temperaturefunctions. See dwavesystems/dwave-system#436
5.5.0
Changelog
dimod 0.11.5 -> 0.11.6
New Features
- Add
Variables._remove()method.
- Added
weightand penalty parameters onConstrainedQuadraticModel.add_constraintmethods to encoded weighted constraints.
- Add constrained quadratic model serialization version 1.3 to support soft constraints.
5.5.0rc1
Changelog
dimod 0.11.5 -> 0.11.6rc1
New Features
- Add
Variables._remove()method.
- Added
weightand penalty parameters onConstrainedQuadraticModel.add_constraintmethods to encoded weighted constraints.
- Add constrained quadratic model serialization version 1.3 to support soft constraints.
5.4.0
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_typeto theas_samples()function. -
Speed up
BinaryQuadraticModel.energies()andQuadraticModel.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 haveVariablesas 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.Variablesclass. See #1221.
Bug Fixes
-
Fix
as_samples()when given aSampleSetand using thelabels_typekeyword argument. Previously it would raise aTypeError. This fix allows constructions likebqm.energies(sampleset)to function correctly. -
Refactor
dimod.typing.SamplesLikeanddimod.typing.SampleLike.SampleLikenow correctly includes constructions like([0, 1], 'ab'). -
Make
Vartype.INTEGERandVartype.REALpickleable. This fixes the pickling of many downstream objects likeQuadraticModelandSampleSet.
dwave-cloud-client 0.10.1 ➞ 0.10.2
New Features
- Add
estimate_qpu_access_timemethod todwave.cloud.solver.StructuredSolverto 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
LatticeLNLSreference 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_embeddingsdecomposer 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