Dwave-preprocessing

Latest version: v0.6.7

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

Scan your dependencies

Page 2 of 6

0.6.1

New Features

- Speed up `PresolverImpl::normalization_remove_invalid_markers()` C++ method. This gives faster presolve normalization times for models with many discrete constraints.
- Speed up `PresolverImpl::technique_remove_small_biases()` C++ method. This gives faster presolve times for models with many small biases.

0.6.0

New Features

- Make `SpinReversalTransformComposite` nonblocking.


- Add a `seed` parameter to the constructor of `SpinReversalTransformComposite`.


- Improve the performance of the `Presolver` constructor by avoiding an unnecessary copy.


- Raise an `InvalidModelError` from `Presolver` when given a model with `float("nan")` bounds.


- Raise an `InvalidModelError` from `Presolver` when given a model that has a constraint with `float("nan")` weight or rhs.


- Add C++ `Presolver::restore()` method for restoring samples.


- Add domain propagation to `dwave::presolve::Presolver`.


- Add removing small biases to `dwave::presolve::Presolver`.


- Support `Numpy>=1.17.3`, previously required `NumPy>=1.20.0`.


- Add a presolve normalization step to replace inf biases, bounds, offsets, right-hand-sides, etc with a large finite number.


- A newly instantiated `Presolver` will now have presolve techniques loaded by default.


- Add `TechniqueFlags` enum to represent different presolve techniques.


- Add C++ `dwave::presolve::Presolver::add_techniques()`, `dwave::presolve::Presolver::set_techniques()`, and `dwave::presolve::Presolver::techniques()` methods for manipulating the presolve techniques that will be used by the presolver.


- Update `Presolver.apply()`, `Presolver.normalize()`, and `Presolver.presolve()` to release Python\'s global interpreter lock (GIL).


- Reimplement the C++ `Presolver` using the PImpl pattern. This will make it easier to maintain binary compatibility going forward. See [\89](https://github.com/dwavesystems/dwave-preprocessing/issues/89).


- Add `dwave::presolve::Presolve::normalize()` C++ method.


- Add `dwave::presolve::Presolve::presolve()` C++ method.


- Raise an `InvalidModelError` from `Presolver` when given a model with `float("nan")` biases.


- Add `Presolver.feasibility()` method to return a `Feasibility` enum. This can be used to test the feasibility of presolved models.


- Add `time_limit_s` keyword argument to `Presolver.presolve()`.


- Add `time_limit` argument to C++ method `dwave::presolve::Presolver::presolve()`.


- Add `Presolver.normalize()` method. See [\78](https://github.com/dwavesystems/dwave-preprocessing/issues/78).


- Add `Presolver.presolve()` method. See [\78](https://github.com/dwavesystems/dwave-preprocessing/issues/78).

Upgrade Notes

- The wrapped C++ `dwave::presolve::Presolver` held by `cyPresolver.cpppresolver` is now stored as a pointer.


- Remove C++ `PostSolver` class. See [\90](https://github.com/dwavesystems/dwave-preprocessing/issues/90).


- A newly instantiated `Presolver` will now have presolve techniques loaded by default. Previously it would have no techniques loaded and the user would need to also call `Presolver.load_default_presolvers()`.


- Remove the C++ `dwave::presolve::Presolver::load_default_presolvers()` method.


- The C++ `Presolver` no longer has a header-only implementation.


- Raise an `InvalidModelError` rather than a `RuntimeError` when presolving a detached model.


- Change `Presolver` to no longer raise an `InfeasibleModelError` error for infeasible models.


- Remove the `InfeasibleModelError`.

Deprecation Notes

- Drop support for Python 3.7.


- Deprecate `Presolver.load_default_techniques()`. Use `Presolver.set_techniques(TechniqueFlags.Default)` instead.

0.5.4

Prelude

Begin using [Reno](https://docs.openstack.org/reno) changelog tool.

New Features

- Release wheels for Python 3.11

0.5.3

Features
- Remove interactions and variables with 0 bias in ``Presolver``

Fixes

- Fix handling of empty soft constraint in ``Presolver``.

0.5.2

Fixes

* Fix case where ``Presolver`` was incorrectly leaving variables fixed by bounds in the model

0.5.1

Fixes
* Fix case where `Presolver` was incorrectly marking constraints with no variables as infeasible.

Page 2 of 6

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.