Releases: dwavesystems/dimod
Releases · dwavesystems/dimod
0.11.6.dev1
Bug Fixes
- Fix the performance of
ConstrainedQuadraticModel.from_file()
for constrained quadratic models with a large number of constraints. The poor performanc was accidentally introduced in 0.11.6.dev0.
0.11.6.dev0
New Features
- Add
Variables._remove()
method.
- Added
weight
and penalty parameters onConstrainedQuadraticModel.add_constraint
methods to encoded weighted constraints.
- Add constrained quadratic model serialization version 1.3 to support soft constraints.
0.11.5
New Features
- Add
ConstrainedQuadraticModel.is_linear()
method.
- Add
ConstrainedQuadraticModel.spin_to_binary()
method.
- Add
Variables._clear()
method for use by classes that haveVariables
as 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.Variables
class. See #1221.
Bug Fixes
- Fix
as_samples()
when given aSampleSet
and using thelabels_type
keyword argument. Previously it would raise aTypeError
. This fix allows constructions likebqm.energies(sampleset)
to function correctly.
- Refactor
dimod.typing.SamplesLike
anddimod.typing.SampleLike
.SampleLike
now correctly includes constructions like([0, 1], 'ab')
.
- Make
Vartype.INTEGER
andVartype.REAL
pickleable. This fixes the pickling of many downstream objects likeQuadraticModel
andSampleSet
.
0.11.4
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_type
to 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.
0.11.3
New Features
- Add
dimod::QuadraticModelBase::energy()
method todimod/libcpp.pxd
for Cython access.
- Randomly generated variable and constraint labels now begin with a letter and do not contain dashes. This ensures that they can be serialized to LP files. See #1206.
Bug Fixes
- Fix
dimod.lp.dump()
anddimod.lp.dumps()
to output bounds for REAL variables.
0.11.2
New Features
- Add
dimod.lp.dump()
anddimod.lp.dumps()
functions to encode constrained quadratic models as LP files.
- Expand supported NumPy version range to
numpy>=1.17.3,<2.0.0
- Build with oldest-supported-numpy for compatibility. See #208.
- Add
plant_solution
keyword argument todimod.generators.random_nae3sat()
,dimod.generators.random_2in4sat()
anddimod.generators.frustrated_loop
functions.
- Add
dimod::QuadraticModel::add_quadratic_back()
anddimod::BinaryQuadraticModel::add_quadratic_back()
methods in C++ code.
- Improve the performance of
QuadraticModel.from_file()
, which also improves the performance ofConstrainedQuadraticModel.from_file()
.
Deprecation Notes
- Deprecated
planted_solution
keyword argument indimod.generators.frustrated_loop()
.
Bug Fixes
0.11.1
New Features
- Add
dimod.generators.random_nae3sat()
function for generating not-all-equal 3-satisfiability problems as binary quadratic models.
- Add
dimod.generators.random_2in4sat()
function for generating 2-in-4 satisfiability problems as binary quadratic models.
Bug Fixes
- Drop pyparsing dependency. The functionality that required it was removed in version 0.11.0.
- Added missing import of
BinaryQuadraticModel
required bydimod.serialization.json.DimodDecoder
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.
0.10.17
New Features
- Add
BinaryQuadraticModel::lower_bound()
andBinaryQuadraticModel::upper_bound()
methods to the C++ code.
- Improve the performance of the
QuadraticModel.update()
method.
- Improve the performance of the
ConstrainedQuadraticModel.set_objective()
method.
QuadraticModel.update()
now accepts binary quadratic models in addition to quadratic models.
- Add
QuadraticModel.add_variables_from_model()
method. See #1157.
0.11.0rc1
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.
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.
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.
Bug Fixes
- Fixes performance regression on energy calculations introduced in 0.10.0. See #1025