Changelog
dimod 0.12.21 ➞ 0.12.22
Prelude
Binary and constrained quadratic model generators that used to reside in
dwave-networkx (now dwave-graphs) have been moved to
dimod.generators.
New Features
- Add generators for binary quadratic models with ground states
corresponding to a vertex coloring
(dimod.generators.vertex_coloring) and a minimum vertex coloring
(dimod.generators.min_vertex_coloring).
- Add a binary quadratic model generator for a Markov network
(dimod.generators.markov_network).
- Add generators binary quadratic models with ground states
corresponding to a graph matching (dimod.generators.matching),
graph's maximal matching (dimod.generators.maximal_matching) and
graph's minimum maximal matching
(dimod.generators.min_maximal_matching).
- Add a generator for a constrained quadratic model with ground states
corresponding to a balanced k-partition of graph
(dimod.generators.graph_partition).
- Add a binary quadratic model generator to calculate the structural
imbalance of a signed social network
(dimod.generators.structural_imbalance).
- Add a generator for a binary quadratic model with ground states
corresponding to a minimum TSP route
(dimod.generators.traveling_salesperson).
- Add support for NetworkX graph output during function argument
coercion via@graph_argument(..., as_networkx=True).
- Add estimator for effective sample size based on
Revisiting the Gelman-Rubin Diagnostic https://arxiv.org/abs/1812.09384.
Upgrade Notes
- Drop support for Python 3.9.
Bug Fixes
- To avoid
@graph_argument(..., as_networkx=True)failing during
import/compile time, defernetworkxchecks to the decorated function
run time.
dwave-cloud-client 0.14.4 ➞ 0.14.6
New Features
- Introduce
Solver.minimal_problem, a new solver property that returns
a minimal problem accepted by the solver, together with a set of
parameter values required to successfully submit the problem to SAPI.
- Expand the solver interface to include
sample_problem()and
upload_problem()(previously available only on unstructured
solvers).
- Add
dwave region lsCLI command to list available regions.
- Add support for gate-model quantum circuit (QCDL) solvers in SAPI.
-
Add CLI flag
-cas an alias for--client.Note that
-c(previously short for--config-file) was deprecated
in 0.8.5, and removed in 0.10.0, so that it could be repurposed as a
short form of--client.
- Make
CachingSessionMixinsafer by replacing DiskCache's default
pickleserialization with JSON (for response headers) + raw binary
(for response content).
- Use JSON serialization for auth credentials (instead of DiskCache's
defaultpickle).
Bug Fixes
- Use
dwave-graphsinstead of the deprecateddwave-networkxfor QPU
graph generation.
✨ dwave-graphs ✨ 1.0.0 (new)
Prelude
Create dwave-graphs package based off dwave-networkx.
dwave_networkx namespace is renamed to dwave.graphs.
Binary quadratic model (i.e. Ising model and QUBO) generators have been
moved from dwave.graphs.algorithms to dimod.generators.
New Features
- Add support for Python 3.14.
- Modernize package config.
Upgrade Notes
- Drop support for Python 3.9.
- Drop support for
dimod<0.12.
- Remove deprecated Chimera and Pegasus coordinates transformation alias
methods (int/tuple/etc in favor of explicit e.g.
chimera_to_linear).
- Remove deprecated
is_matchingandis_maximal_matchingfunctions
fromdwave.graphs.algorithms.matching. Use the NetworkX
implementations instead.
- Drop the default sampler interface previously available in
dwave-networkx. Some algorithms now explicitly require a sampler.
- Drop
utilsandutils.decoratorssubmodules, as well as the
@binary_quadratic_model_samplerdecorator.
- All BQM/Ising/QUBO generators from
dwave.graphs.algorithmshave been
migrated todimod.generators(released indimod==0.12.22):min_vertex_color_quboandvertex_color_quboremoved from
dwave.graphs.algorithms.coloringin favor ofmin_vertex_coloring
andvertex_coloringfromdimod.generators.coloring,dwave.graphs.algorithms.markov.markov_network_bqmremoved in favor
ofdimod.generators.markov.markov_network,matching_bqm,maximal_matching_bqmand
min_maximal_matching_bqmremoved from
dwave.graphs.algorithms.matchingin favor ofmaximal_matching
andmin_maximal_matchingfromdimod.generators.matching,dwave.graphs.algorithms.partition.graph_partition_cqmremoved in
favor ofdimod.generators.partition.graph_partition,dwave.graphs.algorithms.social.structural_imbalance_isingremoved
in favor ofdimod.generators.social.structural_imbalanceanddwave.graphs.algorithms.tsp.traveling_salesperson_quboremoved in
favor ofdimod.generators.tsp.traveling_salesperson.
- Drop support for
dimod<0.12.22.
- Drop
vertex_colorandmin_vertex_coloraliases in favor of
vertex_coloringandmin_vertex_coloringfor consistency.
- Drop support for NumPy 1.x.
- Replace dev/test/docs
requirements.txtfiles with Dependency Groups
(PEP-735).
dwave.graphs.topologiesrenamed todwave.graphs.topologies.
- Topology specific coloring functions,
zephyr_four_color(),
pegasus_four_color(), andchimera_two_color(), are moved from
dwave.graphs.topologiestodwave.graphs.algorithms.coloring.
dwave-hybrid 0.6.15 ➞ 1.6.16
Upgrade Notes
- Drop NumPy 1.x support.
Bug Fixes
- Use
dwave-graphsinstead of the deprecateddwave-networkx. See #312.
dwave-networkx 0.8.18 ➞ 0.8.19 (deprecated)
Prelude
dwave-networkx is deprecated and will be replaced by dwave-graphs in
Ocean 10. Most functionality previously provided by dwave-networkx is
now available as part of dwave-graphs under the dwave.graphs
namespace.
See dwave-graphs.
New Features
- Add support for Python 3.14.
Upgrade Notes
- Drop support for Python 3.9.
- Drop support for
dimod<0.12.
- Algorithms previously provided in the
dwave_networkx.algorithms
module are now available indwave-graphsunder the
dwave.graphs.algorithmsnamespace. Binary and constrained quadratic
model generators have been moved todimod.generators.
- Graph drawing utilities previously provided in the
dwave_networkx.drawingmodule are now available indwave-graphs
under thedwave.graphs.drawingnamespace.
- Graph generators previously provided in the
dwave_networkx.generatorsmodule are now available indwave-graphs
under thedwave.graphs.topologiesnamespace.
- Functionality previously provided in the
dwave_networkx.default_samplermodule has been removed in
dwave-graphs.
- Functionality previously provided in the
dwave_networkx.utilsmodule
has been removed indwave-graphs.
dwave-optimization 0.6.11 ➞ 0.7.1
New Features
-
Sub-lists are now supported.
See dwavesystems/dwave-optimization#71. -
Support
numpy.newaxisand...while indexing array symbols. -
Add
LinearProgram.feasible()andLinearProgram.objective_value()
methods. These allow the user to access information about the state of the
linear program without needing the associated symbols.
See dwavesystems/dwave-optimization#475. -
The symbols:
All,Any,Max,Min,Prod, andSumcan infer
their size from their predecessor's size. -
Transposesymbol can infer its size from its predecessor's size. -
Make C++
BufferIteratoralways shaped. -
Implicit sum constraints added to NumberNode.
- Users may define a sum constraint over the entire array or along
an single axis. - Enabled at the Python level for BinaryVariable and
IntegerVariable. See #216. - Added
NumberNode::sum_constraints()(returns sum constraint). - Added
NumberNode::sum_constraints_lhs()(returns
state-dependent sums associated with sum constraint). - Modified
NumberNode::exchange()to accept optional slice
arguments. - Modified
NumberNode::clip_and_set_value()to accept optional
slice argument. - Modified
IntegerNode::set_value()to accept optional slice
argument. - Modified
BinaryNode::flip()to accept optional slice argument.
- Users may define a sum constraint over the entire array or along
-
BinaryNode optionally tracks indices with buffer value 1 and 0.
- Enabled when users define a sum constraint.
- Added
BinaryNode::num_true()(return # of indices with buffer
value 1 in slice given sum constraint). - Added
BinaryNode::num_false()(return # of indices with
buffer value 0 in slice given sum constraint). - Added
BinaryNode::ith_true_index()(returns ith index with
buffer value 1 in slice given sum constraint). - Added
BinaryNode::ith_false_index()(returns ith index with
buffer value 0 in slice given sum constraint).
-
Add three methods to the model returned by the job-shop scheduling
model generator:model.get_global_task_ordering(),
model.get_start_times(), andmodel.get_end_times().
Known Issues
- In some cases, combined indexing operations on high dimensional arrays will
not match the behavior of NumPy.
See dwavesystems/dwave-optimization#465.
Bug Fixes
-
Fix an issue with advanced indexing when indexing a dynamic array with
scalar indexers where the index on the first dimension is an empty slice,
such asA[:, i, j, :]whereiandjare scalar symbols. Previously,
this may have resulted in a exception being raised when initializing a
state on the model. This has now been fixed. A specific sub-case of this,
when the scalar indexers are separated by an empty slice in at least one axis,
(e.g.A[:, i, :, j]) is not supported and is now properly disallowed with
an exception being raised at symbol/node construction time. -
Add missing includes to
dwave-optimization/functional.hpp -
Fix an issue with
ListVariables with a maximum size set to less thann, the size of the main set. In this case the underlying node's state was not initialized correctly causing some valid operations to later fail. -
Fix
MatrixMultiplysymbol when multiplying non-contiguous arrays and/or arrays with size 1 in one dimension. See #553. -
IsInNodepreviously did not clear cached state data duringcommit(), causing future propagation-and-reverts to encounter memory issues. The implementation has been fixed.
Upgrade Notes
- Drop support for contiguous C++
BufferIterator. This means that
one must always provide ashapeandstridesargument when
constructing the iterator. - Change
Array::viewto usestd::default_sentinel. This means
Array::viewis no longer astd::common_range. - Drop the
Array::Viewtype declaration. - Update job-shop scheduling generator to use a list variable for the
global ordering of all tasks from which the model constructs a
feasible schedule.
Deprecation Notes
- Remove
NumberNodeandBinaryNoderandom state initialization. - Remove mutate methods
set()andunset()fromBinaryNode.
dwave-samplers 1.7.0 ➞ 1.8.0
New Features
- Build with meson rather than setuptools.
- Use Python's limited API for Python 3.12+.
dwave-system 1.34.0 ➞ 1.35.0
New Features
- Update behavior of
ParallelEmbeddingCompositeso that under
auto_scale=Trueall embedded bqms are rescaled independently to use
the maximum available range.
- The
LeapHybridNLSamplerclass was made an alias for the
StrideHybridSolverclass.
Upgrade Notes
- Drop NumPy 1.x support.
Bug Fixes
- Use
dwave-graphsinstead of the deprecateddwave-networkx. See #609.
minorminer 0.2.21 ➞ 0.2.22
Upgrade Notes
- Drop NumPy 1.x support.
- Rename
minorminer.layout.dnx_layoutto
minorminer.layout.graph_layoutand deprecate it, but keep an alias
for backwards compatibility.
Bug Fixes
- Use
dwave-graphsinstead of the deprecateddwave-networkx.
Package versions
dimod==0.12.22
dwave-cloud-client==0.14.6
dwave-gate==0.3.5
dwave-graphs==1.0.0
dwave-hybrid==0.6.16
dwave-inspector==0.5.5
dwave-networkx==0.8.19
dwave-optimization==0.7.1
dwave-preprocessing==0.6.11
dwave-samplers==1.8.0
dwave-system==1.35.0
minorminer==0.2.22
penaltymodel==1.3.0