Dimod

Latest version: v0.12.15

Safety actively analyzes 638346 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 10 of 26

0.10.7

New Features

- Add `ConstrainedQuadraticModel.is_equal()` and `ConstrainedQuadraticModel.is_almost_equal()` methods. See [\1012](https://github.com/dwavesystems/dimod/issues/1012)

<!-- -->

- Add `QuadraticModel.is_almost_equal()` method

<!-- -->

- Support equality checks between quadratic models and binary quadratic models in `BinaryQuadraticModel.is_equal()`, `BinaryQuadraticModel.is_almost_equal()`, `QuadraticModel.is_equal()`, and `QuadraticModel.is_almost_equal()` methods.

<!-- -->

- Add `GraphLike` type hint to `dimod.typing`.

<!-- -->

- Add `ConstrainedQuadraticModel.iter_constraint_data()`, `ConstrainedQuadraticModel.iter_violations()` and `ConstrainedQuadraticModel.violations()` methods. See [971](https://github.com/dwavesystems/dimod/issues/971).

<!-- -->

- Added `from_lp_file` classmethod to `ConstrainedQuadraticModel` that reads input LP file and converts it to CQM instance.

<!-- -->

- `ConstrainedQuadraticModel.set_objective` now accepts an iterable.

<!-- -->

- Add `ConstrainedQuadraticModel.check_feasible` method.

<!-- -->

- Add `random_bin_packing` function with the same functionality as the (now deprecated) `bin_packing`.

<!-- -->

- Allow `BinaryQuadraticModel` and `QuadraticModel` to be divided by a scalar or squared. See [\864](https://github.com/dwavesystems/dimod/issues/864), [\#984](https://github.com/dwavesystems/dimod/issues/984).

<!-- -->

- Add `SampleSet.filter()` method that returns a sample set with data rows filtered by a given predicate.

<!-- -->

- Add `.to_dict()` and `.from_dict()` methods to the sample inverter returned by the `cqm_to_bqm` function. The methods return a json serializable representation of the inversion for storage if needed. See [977](https://github.com/dwavesystems/dimod/issues/977).

<!-- -->

- Add `random_multi_knapsack` function with the same functionality as the (now deprecated) `multi_knapsack`.

<!-- -->

- Add `random_knapsack` function with the same functionality as the (now deprecated) `knapsack`.

<!-- -->

- Allow the offset of a `BinaryQuadraticModel` to be specified as a keyword argument.

<!-- -->

- Add [PEP 561](https://www.python.org/dev/peps/pep-0561/) compatibility to allow tools like [mypy](http://mypy-lang.org/) to auto-detect typing hints. See [\#980](https://github.com/dwavesystems/dimod/issues/980).

Upgrade Notes

- The `cls` keyword argument of the `chimera_anticluster` function now does nothing.

Deprecation Notes

- Deprecate `cls` keyword argument of the `chimera_anticluster` function.

<!-- -->

- Deprecate `bin_packing` function in favour of `random_bin_packing`.

<!-- -->

- Deprecate `multi_knapsack` function in favour of `random_multi_knapsack`.

<!-- -->

- Deprecate `knapsack` function in favour of `random_knapsack`.

Bug Fixes

- `QuadraticModel` can now be multiplied by a number in place.

<!-- -->

- Fix energy calculations for integer variables with large values. See [\982](https://github.com/dwavesystems/dimod/issues/982).

<!-- -->

- Make `dimod.BinaryQuadraticModel` a virtual subclass of `dimod.core.bqm.BQM`.

0.10.6

New Features

- Add `Binaries`, `Spins` and `Integers` functions. See [918](https://github.com/dwavesystems/dimod/issues/918).

<!-- -->

- Add `DiscreteQuadraticModel.get_cases` method to match `CaseLabelDQM.get_cases`.

<!-- -->

- Implement `QuadraticModel.remove_interaction` method, previously it raised a `NotImplementedError` error.

<!-- -->

- Add `linear` option as a new `slack_method` for `DiscreteQuadraticModel.add_linear_inequality_constraint` method. This will add only one discrete variable to an inequality constraint with linear number of cases, according to right hand side value of the constraint.

<!-- -->

- Add `quicksum` function for faster summation of `QuadraticModel` and `BinaryQuadraticModel`. Python's built-in `sum` continues to work, but `quicksum` will generally be faster when adding many objects.

<!-- -->

- Add a generator, `dimod.generators.binary_encoding`, to create a binary quadratic model that encodes an integer.

<!-- -->

- Add methods to construct a constrained quadratic model from other model types:

- `ConstrainedQuadraticModel.from_discrete_quadratic_model` with an alias `ConstrainedQuadraticModel.from_dqm`
- `ConstrainedQuadraticModel.from_quadratic_model` with two aliases `ConstrainedQuadraticModel.from_qm` and `ConstrainedQuadraticModel.from_bqm`

See [866](https://github.com/dwavesystems/dimod/issues/866).

<!-- -->

- Add `QuadraticModel.add_quadratic_from()` method.

<!-- -->

- Add `QuadraticModel.add_linear_from()` method.

<!-- -->

- Add `ConstrainedQuadraticModel.lower_bound()` and `ConstrainedQuadraticModel.upper_bound()` methods.

<!-- -->

- Add `cqm_to_bqm` function.

<!-- -->

- Add `ConstrainedQuadraticModel.substitute_self_loops` method that replaces integer self-loops by introducing a new variable and adding a constraint.

<!-- -->

- Add `copy_always` parameter to `Initialized.parse_initial_states`.

<!-- -->

- Add new binary quadratic model generators for simple logic gates:

- `dimod.generators.and_gate`
- `dimod.generators.fulladder_gate`
- `dimod.generators.halfadder_gate`
- `dimod.generators.or_gate`
- `dimod.generators.xor_gate`

See [951](https://github.com/dwavesystems/dimod/issues/951).

<!-- -->

- `QuadraticModel.energies`, `QuadraticModel.energy`, `BinaryQuadraticModel.energies`, and `BinaryQuadraticModel.energy` now all support samples containing a superset of the variables in the model. Any variables not in the model are ignored when calculating the energy.

<!-- -->

- Labels for `dimod.Spin`, `dimod.Binary`, and `dimod.Integer` are no longer required positional arguments. By default, unique labels are applied via the [uuid](https://docs.python.org/3/library/uuid.html) module.

Upgrade Notes

- `ConstrainedQuadraticModel.objective` is now always a `QuadraticModel`. Previously it could either be a `BinaryQuadraticModel` or a `QuadraticModel`.

<!-- -->

- `ConstrainedQuadraticModel.objective` now contains all variables in the constrained quadratic model. Previously it could contain a subset of the variables.

Deprecation Notes

- Deprecate `ConstrainedQuadraticModel.variables.vartypes`, `ConstrainedQuadraticModel.variables.lower_bounds`, and `ConstrainedQuadraticModel.variables.upper_bounds` attributes.

<!-- -->

- Deprecate `ConstrainedQuadraticModel.variables.vartype()` method.

Bug Fixes

- `dimod::QuadraticModelBase.remove_interaction` now correctly returns `true` when removing a self-loop.

<!-- -->

- Return `bool` rather than `numpy.bool_` from `QuadraticModel.is_equal` and `BinaryQuadraticModel.is_equal` when comparing empty models to numbers.

<!-- -->

- Fix `as_samples` and `Initialized.parse_initial_states` by ensuring that the `copy` argument is not ignored in `as_samples` and `Initialized.parse_initial_states` does not modify any input data. See [861](https://github.com/dwavesystems/dimod/issues/861).

<!-- -->

- Remove unused `ConstrainedQuadraticModel.labels` instance variable.

<!-- -->

- Fix adding constraints with integer variables via `ConstrainedQuadraticModel.add_constraint_from_iterable` when those integer variables have pre-existing lower or upper bounds. See [943](https://github.com/dwavesystems/dimod/issues/943).

<!-- -->

- Correctly account for the offset when multiplying binary quadratic models

<!-- -->

- `BinaryQuadraticModel.energies` now has consistent behaviour accross all data types when given samples containing a superset of the variables in the model. Previously binary quadratic models with `object` data type would allow a superset of variables, while `float64` and `float32` would not.

0.10.5

New Features

- Add `QuadraticModel.set_upper_bound` and `QuadraticModel.set_lower_bound` methods.

Upgrade Notes

- The `preprocessing` extra install argument has been removed.

<!-- -->

- Remove `dimod.meta` namespace. Its functionality, `SamplerABCMeta` and `samplemixinmethod`, has been migrated to the `dimod.core.sampler` namespace.

Bug Fixes

- Fix `QuadraticModel.energies` when given samples with values greater than the maximum value representable by an 8 bit integer. Previously samples were incorrectly cast to 8 bit integers.

<!-- -->

- When a `QuadraticModel` already has an integer variable, adding it with `QuadraticModel.add_variable` with different lower or upper bounds now correctly raises an exception. Likewise, adding or multiplying the same variable symbolically with different bounds will also raise an exception.

<!-- -->

- When a `ConstrainedQuadraticModel` already has an integer variable, adding it as part of a constraint or objective with different lower or upper bounds now correctly raises an exception.

<!-- -->

- Make `dimod.INTEGER` correctly deepcopy-able.

<!-- -->

- Fix (deprecated) `AdjVectorBQM.to_file` and `AdjVectorBQM.from_file`. See [898](https://github.com/dwavesystems/dimod/issues/898).

<!-- -->

- Fix `BinaryQuadraticModel.energies` for a `BQM` with `dtype=object` and a single variable with an integer bias. Previously it would raise a `numpy.core._exceptions._UFuncOutputCastingError`.

<!-- -->

- Fix energy calculation when the lower bound (lb) equals the upper bound (lb) in `DiscreteQuadraticModel.add_linear_inequality_constraint` and `BinaryQuadraticModel.add_linear_inequality_constraint`.

<!-- -->

- Promote dwave-preprocessing to a full dependency of dimod to avoid issues that occur when dimod is a required package but dwave-preprocessing is not.

0.10.4

Bug Fixes

- Fix `QuadraticModel.energies` when given samples with values greater than the maximum value representable by an 8 bit integer. Previously samples were incorrectly cast to 8 bit integers.

<!-- -->

- Fix energy calculation when the lower bound (lb) equals the upper bound (lb) in `DiscreteQuadraticModel.add_linear_inequality_constraint` and `BinaryQuadraticModel.add_linear_inequality_constraint`.

0.10.3

New Features

- Add `QuadraticModel.change_vartype()` method.

<!-- -->

- Add C++ `dimod::QuadraticModel::change_vartype()` method. Also add non-const versions of `dimod::QuadraticModel::vartype()`, `dimod::QuadraticModel::lower_bound()`, and `dimod::QuadraticModel::upper_bound()`.

Bug Fixes

- Fix `QuadraticModel.spin_to_binary` not correctly updating the variable type of the changed variables.

0.10.2

Bug Fixes

- Fix case where adding linear and quadratic biases whose class requires arguments on construction to a `BinaryQuadraticModel` with `object` dtype could fail.

Page 10 of 26

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.