Releases: dwavesystems/dimod
0.12.16
New Features
- Add
dimod/typing.pdx
. This allows users tocimport
common C
types into other namespaces. - Support NumPy 2.0. Also, no longer require NumPy at build-time.
- Reduce the size of manylinux wheels.
Upgrade Notes
- Remove Cython fused types
dimod.cyutilities.SignedInteger
,
dimod.cyutilities.UnsignedInteger
,dimod.cyutilities.Integer
,
anddimod.cyutilities.ConstInteger
,dimod.cyutilities.Numeric
,
anddimod.cyutilities.ConstNumeric
. Use the types in
dimod.typing
instead. - Remove Cython fused types
dimod.discrete.cydiscrete_quadratic_model.Unsigned
,
dimod.discrete.cydiscrete_quadratic_model.Integral32plus
,
dimod.discrete.cydiscrete_quadratic_model.Numeric
, and
dimod.discrete.cydiscrete_quadratic_model.Numeric32plus
. Use the
types indimod.typing
instead. - Don't include debug info in built
.so
files.
0.12.15
New Features
- Add C++
QuadraticModelBase::remove_interactions()
method. - Add
dimod.generators.random_binary_paint_shop_problem()
binary paint shop problem generator. - Add an abstract method
QuadraticViewsMixin.add_quadratic()
. - Add a method
QuadraticViewsMixin.add_quadratic_from()
to add quadratic interactions. This method is intended to be used as follows:ConstrainedQuadraticModel.objective.add_quadratic_from()
, similarly toConstrainedQuadraticModel.objective.add_linear_from()
. - Add
check_overlaps
keyword argument toConstrainedQuadraticModel.add_discrete()
, see #1364.
Upgrade Notes
- All sublcasses of
QuadraticViewsMixin
, includingObjectiveView
,QuadraticModel
andBinaryQuadraticModel
, now require to have the methodadd_quadratic()
.
0.12.14
New Features
- Add C++
dimod::abc::QuadraticModelBase::remove_variables()
method
and accompanying overloads. - Speed up C++
dimod::Expression::remove_variables()
method.
0.12.13
New Features
- Build wheels for Python 3.12.
- Build C++ extensions with Cython 3.
0.12.12
New Features
- Add
mimo()
function for generating a multi-input multiple-output (MIMO) channel-decoding problem. - Add
coordinated_multipoint()
function for generating a coordinated multi-point (CoMP) decoding problem.
0.12.11
New Features
-
Make
SampleSet.relabel_variables()
non-blocking in all cases. Previously it would block wheninplace=False
. -
Implement
SampleSet
serialization schema version 3.2.0.Version 3.2.0 replaces
float
values that represent integers withint
in the"data"
field of any arrays returned bySampleSet.to_serializable()
. In some pathological cases this can result in a much smaller representation when the data dictionaries are json-serialized by avoiding the redundant.0
appended to every value.This is a backwards-compatible change.
-
Add
penalization_method
parameter toBinaryQuadraticModel.add_linear_inequality_constraint()
. It allows the use of unbalanced penalization https://arxiv.org/abs/2211.13914 instead of the slack variables method for the inequality constraints.
Bug Fixes
- Fix the behavior of
SampleSet.relabel_variables()
wheninplace=True
. Previously the method incorrectly returned a copy when the sample set was unresolved.
0.12.10
0.12.9
New Features
- Add
Constraint.is_onehot()
method. - Add
dimod::Expression::remove_variables()
C++ method. This method is useful for removing variables in bulk from the objective or constraints of a constrained quadratic model.
0.12.8
New Features
- Add
dimod.generators.magic_square()
which allows for the generation of a constrained quadratic model whose feasible solutions are normal magic squares. The function also generates magic squares of squares when passedpower=2
as a keyword argument. - Implement version 2.0 of constrained quadratic model serialization. See
ConstrainedQuadraticModel.to_file()
for details. - Improve LP file reading by wrapping HiGHS LP file parser.
- Add C++
ConstrainedQuadraticModel::remove_constraints_if()
method.
Upgrade Notes
- Remove the
ObjectView.to_file()
method. - Remove the
ConstraintView.to_file()
method. - Remove
dimod::lp
C++ namespace. - Drop support for Python 3.7.
Bug Fixes
- Fix
ConstrainedQuadraticModel.from_discrete_quadratic_model()
incorrectly formulating the discrete constraints. This bug was
introduced in version 0.12.7. - Fix
dimod.generators.frustrated_loop()
to correctly handle graphs with tuple labels. See #1342.
0.12.8rc2
Bug Fixes
- Fix loading constrained quadratic models that are serialized with CQM serialization version 2.0 and that have tuple labels.
- Support serializing constraints that need more than 2GB to save.