Changelog#
Version 1.8.0 (2025-07-09)#
Features#
Enable mypy type checking in CI and add temporary type ignores to the source code. :issue:`SW-1615`
Version 1.7.0 (2025-07-09)#
Features#
Normalize all line endings to LF. No functional changes.
Version 1.6.0 (2025-06-25)#
Bug fixes#
Fix
seed
not working inmaxcut_generator
(it wasn’t passed over to random graph generators inside of the function).
Version 1.5.0 (2025-06-23)#
Bug fixes#
Fix __init__.py docstring in star transpilation submodule.
Version 1.4.0 (2025-06-23)#
Features#
Add a citation of Elisabeth’s QAOA paper to the documentation (docstring under TreeQAOA class).
Version 1.3.0 (2025-06-20)#
Bug fixes#
Fix link to readme in
pyproject.toml
to make project description visible in PyPI.
Version 1.2.0 (2025-06-19)#
Features#
Bump version for an updated repo organization. No functional changes. :issue:`SW-1578`
Version 1.1 (2025-06-06)#
Remove
exa-core
dependency.
Version 1.0 (2025-06-06)#
Remove the usage of
mapomatic
intranspiled_circuit
. The transpiled circuit is now just transpiled, not also placed on the best patch of the QPU.Remove
mapomatic
dependency.
Version 0.30 (2025-05-21)#
- Cosmetic changes to almost all docstrings, aimed at polishing the generated documentation.
Fixing links (to functions / classes / methods) within the library.
Adding a few more links to outside libraries.
Improving consistency about what is documented.
Version 0.29 (2025-05-15)#
- Add a new problem instance class: weighted maximum independent set
MaximumWeightISInstance
. Create a new class
ISInstance
to serve as parent forMISInstance
andMaximumWeightISInstance
, carrying methods common for both subclasses.
- Add a new problem instance class: weighted maximum independent set
Add a new problem instance class: weighted maxcut
WeightedMaxCutInstance
.
Version 0.28 (2025-05-09)#
Add a new jupyter notebook
Training the QAOA.ipynb
showcasing different ways to train the QAOA.Add the new notebook to the end-to-end testing.
Version 0.27 (2025-05-09)#
Add an option to optimize the angles by minimizing CVaR.
Version 0.26 (2025-04-29)#
Add links to the source code to API Reference in documentation.
Version 0.25 (2025-04-29)#
- Add the option to calculate Conditional Value at Risk (CVaR) for all problem classes, given a dictionary of counts.
Add a post-processing method that keeps only the best / worst quantile of measurement results, given a dictionary of counts (and a quantile).
Version 0.24 (2025-05-09)#
- Add two new jupyter notebook examples showing how the QAOA library is used.
A notebook showing how the library can be used to solve a sparse maxcut problem -
Sparse Maxcut.ipynb
.A notebook showing how the library can be used to solve a constrained problem (portfolio optimization with a fixed budget) - Portfolio Optimization.ipynb.
Rename the SK model notebook from
small_sk_model_example.ipynb
toSK Model and Transpilation.ipynb
.
Add the three above-mentioned notebooks to the documentation using
myst-nb
.- Minor fixes of constructing the
qiskit
circuit for star QPU. Correct the usage of
MoveGate
.Swap
move_in
andmove_out
when the layers are reversed during circuit construction.
- Minor fixes of constructing the
Add custom drawing method for
RoutingStar
(ovewriting the same method ofRouting
).
Version 0.23 (2025-03-27)#
twine
version bump.Expand testing for swap network helper functions.
Version 0.22 (2025-03-26)#
- Remake the subclasses of
QPU
. Add a subclass that creates an instance of itself from
IQMBackend
.Add an option to generate the QPU layout automatically using
planar_layout
fromnetworkx
.
- Remake the subclasses of
Add a check requiring the QPU layout to use integer coordinates when using the swap network transpiler.
- Allow the transpilers to work on any size QPU.
The swap network transpiler looks for rectangles within the provided QPU.
The greedy transpiler looks for almost circle / square / rectangle in the provided QPU.
The hardwired transpiler looks for matches of its specific subgraphs in the provided QPU.
Version 0.21 (2025-02-20)#
Add Q-score and SK-model end-to-end examples as Jupyter notebooks. These examples can also be used for testing.
Add comparisons of various transpilation methods as Jupyter notebooks.
There has been a special
iqm-qaoa
account created for IQM Resonance to be used with end-to-end testing.
Version 0.20 (2025-02-20)#
Rename
ConstrainedQUBOInstance
toConstrainedQuadraticInstance
and make it independent fromQUBOInstance
, so that now it inherits directly fromProblemInstance
.Make most functionality of
ConstrainedQuadraticInstance
based onConstrainedQuadraticModel
from thedimod
package.
Version 0.19 (2025-02-18)#
Add package version information to package documentation
Version 0.18 (2025-02-11)#
Add two post-processing methods to
ConstrainedQUBOInstance
and implement them inMISInstance
.
Version 0.17 (2025-02-04)#
Create a new module
backends.py
containing backend classes which now take the role of estimator (of expectation values) and sampler.Modify (and add) tests for the backends.
Remove backend-related functionality from the
QUBOQAOA
class.Create a new module
circuits.py
containing functions that construct (quantum) circuits from aQUBOQAOA
object. Formerly the functions were methods of theQUBOQAOA
class.
Version 0.16 (2025-01-31)#
Change the way that (optional) initial angles are inputted when
QUBOQAOA
is initialized. Previously one variableinitial_angles
was used. Now it’s possible to use input variablesgammas
andbetas
instead.Add setters for
self.betas
,self.gammas
andself.angles
ofQUBOQAOA
.
Version 0.15 (2025-01-24)#
Generate package documentation with
sphinx
and upload it to GitLab Pages for each released version of the package.
Version 0.14 (2025-01-08)#
Replace local copy of
mapomatic
code withiqm-mapomatic
package.
Version 0.13 (2025-01-07)#
Fix estimator based on QUIMB, adding a warning.
Version 0.12 (2024-12-16)#
Add a method
circuit
to the QUBOQAOA class, which builds the circuit and transpiles it to the HW.Implement the “hardwired” transpilation strategy.
Implement the “sparse”/greedy/Ayse-Martin-Fedor transpilation strategy.
Implement the swap network transpilation strategy.
Version 0.11 (2024-11-22)#
Change the implementation of Goemans-Williamson algorithm to improve performance.
Replace the structure of the problem instance classes to only store the BinaryQuadraticModel representation of the problem and calculate the other representations lazily.
Version 0.10 (2024-11-11)#
Add TreeQAOA class with tree angle setting scheme.
Version 0.9 (2024-11-05)#
Make classical solvers accept either a nx.Graph or a problem instance.
Add tests for classical algorithms for maximum independent set and for constraints checker.
Version 0.8 (2024-10-30)#
Refine problem classes, removing duplicate methods.
Version 0.7 (2024-10-23)#
Add first batch of unit tests.
Version 0.6 (2024-10-21)#
Update build tools to latest available versions.
Version 0.5 (2024-10-16)#
Add license file.
Version 0.4 (2024-10-16)#
Downgrade build tools to known working versions.
Version 0.3 (2024-10-16)#
Update setuptools_scm configuration to fix package version string generation.
Version 0.2 (2024-10-15)#
Fix release process
Version 0.1 (2024-10-15)#
First public-ish release