Simulated Bifurcation v2.0.0
⚠️ From this version onwards, the package is maintained only for versions of Python >= 3.9
What's Changed
🚀 Features
- Quadratic models can be created from SymPy
Polys for a more mathematical and intuitive experience
from sympy import poly, symbols
import simulated_bifurcation as sb
x, y = symbols("x y")
sb.minimize(poly(3 * x**2 - 5 * x * y + 3 * y + 2), domain="spin")- Optimization variables can now be defined on different domains
from sympy import poly, symbols
import simulated_bifurcation as sb
x, y = symbols("x y")
sb.minimize(poly(3 * x**2 - 5 * x * y + 3 * y + 2), domain=["spin", "int2"]) # x is in {-1, 1}, y is in {0, 1, 2, 3}Quadratic models can still be defined from tensors or arrays, in any order
- Computations can be stopped using a keyboad interruption
- Clearer parameters names
| Previous name | Previous values | New name | New values |
|---|---|---|---|
ballistic |
True or False |
mode |
"ballistic" or "discrete" |
use_window |
True or False |
early_stopping |
True or False |
- Models' dtype and computation dtype are now the same and can only be
torch.float32ortorch.float64 sb.optimizehas been removed, users shall now rely onsb.maximizeandsb.minimizeonly- GPU tests now cover the package
🐞 Bug fixes
- Initial energy tensor device the same as device defined in class
- CUDA computations are now only allowed with float32 or float64 values
New Contributors
- @Ali-Xoerex made their first contribution in #74
Full Changelog: release-1.2.1...v2.0.0