Skip to content

8.1.0

Latest
Compare
Choose a tag to compare
@randomir randomir released this 06 Dec 17:38
bbdec03

Highlights

  • Add Python 3.13 support and drop Python 3.8 support.

  • Remove dwave-drivers and dwave.system.VirtualGraphComposite.

  • Drop {greedy,neal,tabu} namespaces in favor of dwave.samplers.{greedy,neal,tabu}.

  • dwavebinarycsp is deprecated as of this release and will be removed from dwave-ocean-sdk version 10.

Changelog

dimod 0.12.17 ➞ 0.12.18

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.

dwave-cloud-client 0.13.1 ➞ 0.13.2

New Features

  • Add Python 3.13 support.

  • Add --raw output mode to get-token CLI commands. See #598.

Upgrade Notes

  • Remove support for dimod 0.9.x. Upgrade dimod to 0.10.0+. See #595.

  • Upgrade your python to 3.9+. We no longer support python 3.8 and below.

Deprecation Notes

  • Client utility function dwave.cloud.coders.bqm_as_file() is deprecated in favor of dimod.BQM.to_file() (available in dimod 0.10.0+) and will be removed in dwave-cloud-client 0.15.0.

Bug Fixes

  • Update sample set creation in dwave.cloud.computation.Future to support dimod 0.12.18+. Previously, wait_id() method used to be added to the from_future-created sample sets in the cloud-client, and now the SampleSet interface propagates wait_id from the future by default. See dimod#1392 and dwave-system#540.

dwave-gate 0.3.2 ➞ 0.3.3

New Features

  • Support Python 3.13

Upgrade Notes

  • Remove support for Python 3.8

dwave-hybrid 0.6.12 ➞ 0.6.13

New Features

  • Add Python 3.13 support. See #298.

  • Add support for zephyr lattices on zephyr solvers. Improve handling of unyielded edges, improving performance for lower yield processors. See #297.

Fixes

  • Switch to dwave-samplers. See #299.

  • Fix flaky and slow tests. See #300 and #301.

Upgrade Notes

  • Drop Python 3.8 support and refresh CI. #298.

  • Drop support for dimod<0.12 and dwave-systems<1.16. See #299 and #301.

dwave-inspector 0.5.1 ➞ 0.5.2

New Features

  • Add support for Python 3.13.

Upgrade Notes

  • Drop support for Python 3.8.

  • Drop support for dwave-cloud-client<0.12. See #183.

dwave-networkx 0.8.15 ➞ 0.8.16

New Features

  • Add four colorings for Zephyr and Pegasus, and a two coloring for Chimera. See #243.

  • Add Python 3.13 support. See #246.

Bug Fixes

  • Fix documentation warnings. See #241.

  • Fix Zephyr layout coords. See #236.

  • Fix docstrings for graph relabeling and sublattice mapping functionality missing from reference documentation. See #238.

Upgrade Notes

  • Drop Python 3.8 support. See #246.

dwave-optimization 0.3.0 ➞ 0.4.2

New Features

  • Add capacitated vehicle routing problem with time windows generator.
    See #104.

  • Reduce the number of symbols in the model returned by
    job_shop_scheduling() generator.

  • Add Array::integral(), Array::max(), and Array::min()
    overloads for all existing C++ nodes.

  • Add C++ is_integer() function.

  • Support Python 3.13.

  • Model.add_constraints() now returns the symbol for the constraint.

  • Fully support scalar (0-dimensional) indices for advanced indexing
    operations, e.g. A[i, :, j, :] where i and j are nodes with
    scalar output. Previously, this would work only if the final output
    of the indexing operation was also scalar.

  • Add C++ DisjointListsNode::set_state() method which allows for
    setting the state of disjoint lists directly.

  • Add C++ XorNode and Python Xor symbol. Xor propagates the
    logical exclusive-or of its two predecessors element-wise. See #125.

  • Add C++ AnyNode. See #148.

  • Add Any symbol and ArraySymbol.any() method. See #148.

  • Change the formulation of the job_shop_scheduling() generator to
    remove redundant list variables and replace them with a disjunctive
    non-overlapping constraint between each pair of jobs on the
    machines.

  • Raise clearer error messages when trying to use out-of-bounds
    indices.

  • Add C++ Graph::remove_unused_nodes() method to remove nodes that
    are not used in the objective or constraints. See #41.

  • Add Python Model.remove_unused_symbols() method to remove nodes
    that are not used in the objective or constraints. See #41.

  • Improve the move/copy behavior of C++ ArrayIterator.

  • Add C++ index raveling-unraveling utilities functions.

  • Add C++ PartialReduceNode.

  • Add Python PartialSum symbol and added axis keyword in
    ArraySymbol.sum() function.

  • Implement C++ BinaryOpNode::sizeinfo() overload.

  • Add C++ ModulusNode and Python Modulus symbol. Modulus
    propagates the modulus of its two predecessors element-wise. Modulus
    symbols may be created with either the % operator or the mod()
    function in dwave.optimization.mathematical. See #156.

Upgrade Notes

  • Using advanced indexing nodes with indexing arrays that have a
    higher dimension than one (e.g. A[:, i, :, j] where i and j
    are 2d arrays) has been disabled. Previously, it was possible to
    construct models that used this functionality, but the behavior of
    the model during state initialization and propagation may not have
    been correct.

  • Remove redundant list variables in the job_shop_scheduling()
    generator and add disjunctive non-overlapping constraints between
    each pair of jobs on the machines.

  • Drop support for Python 3.8.

  • Change C++ ArrayIterator to no longer have ownership of its fill
    value when masked.

  • Remove vartypes.hpp. The Vartype enum was not used by any other
    classes or functions.

Bug Fixes

  • Fix combined indexing. Previously indexing an array symbol by a
    mixture of arrays, integers, and non-empty slices would always
    result in an error.

  • Update AdvancedIndexingNode to check the indices of its indexing
    arrays to prevent out-of-bounds access.

  • Fix the case of using scalar indices in an advanced indexing
    operation where the indices were not grouped, e.g. A[:, i, :, j],
    which was technically unsupported but no errors were raised. This
    could also lead to segfaults during state initialization or
    propagation.

  • Update C++ UnaryOpNode to correctly handle dynamic predecessors.

  • Fix the possibility of creating a dangling reference when using a
    masked C++ ArrayIterator.

  • Implement missing overloads for NaryMaximumNode::max(),
    NaryMaximumNode::min(), and NaryMaximumNode::integral().

  • Implement missing overloads for NaryMinimumNode::max(),
    NaryMinimumNode::min(), and NaryMinimumNode::integral().

  • Fix two bugs in advanced indexing node propogation in the case of a
    non-const main array with dynamic indexers, e.g. A[x] where A is
    a 1d integer decision variable and x is a list. The first bug
    could cause segfaults during propagation, and the second could lead
    to incorrect output if both arrays were changed during propagation.

  • Update the logic in the
    capacitated_vehicle_routing_with_time_windows() generator function
    to correctly account for asymmetric time-distance matrices.

  • Fix the type information for ArraySymbol.__abs__().

  • Fix serializing models with binary operations over dynamic
    predecessors. Previously it was not possible to estimate the state
    size which caused serialization to fail.

dwave-preprocessing 0.6.6 ➞ 0.6.7

New Features

  • Support Python 3.13.

Bug Fixes

  • Fix SpinReversalTransformComposite's handling of child samplers
    that alter the variable order. Previously the spin reversal
    transforms would not be correctly unapplied.
    See #142.

dwave-samplers 1.3.0 ➞ 1.4.0

New Features

  • Support Python 3.13.

Upgrade Notes

  • Drop support for Python 3.8.

dwave-system 1.26.0 ➞ 1.28.0

New Features

  • Update for dwave-optimization~=0.4.0. See #539

  • Add option to specify sampler used in MockDWaveSampler (new default is now SteepestDescentSampler). See #537.

  • Add support for Python 3.13. See #541.

  • Add LinearAncillaComposite. See #530.

Fixes

  • Fix inconsistent sampleset interface across hybrid samplers - we make sure every SampleSet returned now has a working wait_id() method. See #544.

Upgrade Notes

  • Drop support for Python 3.8. See #541.

  • Soft-remove VirtualGraphComposite and its dependencies. Namely, VirtualGraphComposite is now just an identity wrapper around FixedEmbeddingComposite, dwave-drivers is not used anymore, and dwave.system.cache.* is completely removed. See #543.

dwavebinarycsp 0.3.0 ➞ 0.3.1

dwavebinarycsp is deprecated as of this release and will be removed from dwave-ocean-sdk version 10.

New Features

  • Support Python 3.13.

Upgrade Notes

  • Drop support for Python 3.8

minorminer 0.2.15 ➞ 0.2.16

New Features

  • Add support for Python 3.13.

Upgrades

  • Drop support for Python 3.8.

penaltymodel 1.1.0 ➞ 1.2.0

New Features

  • Support Python 3.13.

Upgrade Notes

  • Drop support for Python 3.8.

Package versions

dimod==0.12.18
dwave-cloud-client==0.13.2
dwave-gate==0.3.3
dwave-greedy==0.3.0
dwave-hybrid==0.6.13
dwave-inspector==0.5.2
dwave-neal==0.6.0
dwave-networkx==0.8.16
dwave-optimization==0.3.0
dwave-preprocessing==0.6.7
dwave-samplers==1.4.0
dwave-system==1.28.0
dwave-tabu==0.5.0
dwavebinarycsp==0.3.1
minorminer==0.2.16
penaltymodel==1.2.0