0.11.0
Prelude
Add support for real-valued variables.
New Features
- Improved deprecation warnings and documentation. See #192.
- Add C++
Vartype::REAL
, a new variable type for real-valued variables.
- Support variables with
Vartype::REAL
in C++QuadraticModel
.
- Add
Vartype.REAL
, a new variable type for real-valued variables.
- Add
Real()
andReals()
functions for creating quadratic models with a single real-valued variable.
- Support variables with
Vartype.REAL
inQuadraticModel
.
ConstrainedQuadraticModel.to_file()
now uses serialization format 1.2. This format is backwards compatibile.
- Add
vartype
andlinear_only
arguments toConstrainedQuadraticModel.num_biases()
.
- Add
vartype
andinclude_objective
arguments toConstrainedQuadraticModel.num_quadratic_variables()
.
- Add
check_header
keyword-only argument toConstrainedQuadraticModel.from_file()
.
- Add a global flag
dimod.REAL_INTERACTIONS
. When this flag is set toFalse
, variables with variable typeVartype.REAL
cannot have interactions.dimod.REAL_INTERACTIONS
is set toFalse
by default.
- Add the ability to specify a default variable type and bounds for missing variables when calling
QuadraticModel.add_linear()
andQuadraticModel.add_linear_from()
.
- Add
QuadraticModel::swap()
andBinaryQuadraticModel::swap()
methods to the C++ code. See #928.
- Add
lp.loads()
andlp.load()
functions.
- Improve the performance of the
ConstrainedQuadraticModel.from_lp_file()
method.
- Improve the performance of iteration over
Variables
objects.
Upgrade Notes
- Remove
.vartypes
,.lower_bounds
, and.upper_bounds
attributes fromConstrainedQuadraticModel.variables
. These were previously deprecated in dimod 0.10.6.
- Remove
.vartype()
method fromConstrainedQuadraticModel.variables
. It was previously deprecated in dimod 0.10.6.
- Remove
bqm_index_labelled_input
decorator. It was previously deprecated in dimod 0.10.8.
- Remove
SampleSet.is_writeable
attribute.
- Remove
dimod.generators.knapsack()
. It was previously deprecated in dimod 0.10.6.
- Remove
dimod.generators.multi_knapsack()
. It was previously deprecated in dimod 0.10.6.
- Remove
dimod.generators.bin_packing()
. It was previously deprecated in dimod 0.10.6.
- Remove
HigherOrderComposite.sample_ising()
method. It was previously scheduled to be removed in dimod 0.10.0.
- Remove
PolySampler.sample()
,PolySampler.sample_ising()
, andPolySampler.sample_qubo()
methods. These were previously scheduled to be removed in dimod 0.10.0.
AdjVectorBQM
andAdjDictBQM
are now aliases forBinaryQuadraticModel
andDictBQM
respectively rather than having their own implementation with a slightly different API. They were previously deprecated in dimod 0.10.0.
- The
dimod.bqm
namespace has been removed.
- The
dimod.core.bqm
namespace has been removed.
dimod::AdjVectorBQM
has been removed from the C++ code.
- Some composites were migrated to dwave-preprocessing in dimod0.10.0. Trying to import and use these composites from dimod now raises an exception rather than a warning. The affected composites:
ClipComposite
ConnectedComponentsComposite
FixedVariableComposite
RoofDualityComposite
ScaleComposite
SpinReversalTransformComposite
- The
fix_variables()
was migrated to dwave-preprocessing in dimod 0.10.0. Trying to import and use it now raises an exception rather than a warning.
- Packages that require binary compatibility with dimod and that were compiled with 0.10.0 will not work with 0.11.0.
- Drop support for Numpy 1.19
- Some malformed LP-files that previously caused
ConstrainedQuadraticModel.from_lp_file()
to emit a warning now raise an error instead.
- Provide
manylinux2014
wheels for Python 3.10 rather thanmanylinux2010
.
Deprecation Notes
- Deprecate support for the
ConstrainedQuadraticModel.add_variable(v, vartype)
argument order. UseConstrainedQuadraticModel.add_variable(vartype, v)
instead. See #969.
- In the future,
ConstrainedQuadraticModel.num_quadratic_variables()
will also include the objective towards the count by default.
- Deprecate
ConstrainedQuadraticModel.from_lp_file()
method. Users should use the more explicitlp.loads()
andlp.load()
functions instead. TheConstrainedQuadraticModel.from_lp_file()
will be removed in dimod 0.13.0.
- The
default_lower_bounds
anddefault_upper_bounds
keyword arguments forConstrainedQuadraticModel.from_lp_file()
are deprecated and do nothing.
Bug Fixes
- Fixes performance regression on energy calculations introduced in 0.10.0. See #1025
- In the cqm_to_bqm function, set the Lagrange multiplier to one if the maximum absolute bias is zero.
dimod.variables.Variables
objects now correctly raise anIndexError
when given negative indices that are out of range.