Changelog#
Version 1.12.0 (2025-07-24)#
Bug fixes#
Address type checking flags.
Change the methods EstimatorBackend and SamplerBackend and their subclasses to accept only QUBOQAOA, to avoid violating Liskov Substitution Principle.
Version 1.11.0 (2025-07-23)#
Bug fixes#
Add optional transpilation step to SamplerSimulation, so that it can accept more simulators than just AerSimulator, e.g., our IQMFakeApollo.
Version 1.10.0 (2025-07-21)#
Bug fixes#
Add a fallback routine to _get_embedding which allows it to embed larger problems on QPUs on which it would previously fail, by using a greedy algorithm for finding a Hamiltonian path in a graph.
Add a small test to check that it works.
Version 1.9.0 (2025-07-21)#
Features#
Add a Jupyter notebook showing how one can control / influence which qubits on the QPU get selected for execution of the circuit.
Add input
**kwargstotranspiled_circuitwhich get passed to the innertranspilecall (from Qiskit).
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
seednot 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.tomlto 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-coredependency.
Version 1.0 (2025-06-06)#
Remove the usage of
mapomaticintranspiled_circuit. The transpiled circuit is now just transpiled, not also placed on the best patch of the QPU.Remove
mapomaticdependency.
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
ISInstanceto serve as parent forMISInstanceandMaximumWeightISInstance, 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.ipynbshowcasing 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.ipynbtoSK Model and Transpilation.ipynb.
Add the three above-mentioned notebooks to the documentation using
myst-nb.- Minor fixes of constructing the
qiskitcircuit for star QPU. Correct the usage of
MoveGate.Swap
move_inandmove_outwhen 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)#
twineversion 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_layoutfromnetworkx.
- 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-qaoaaccount created for IQM Resonance to be used with end-to-end testing.
Version 0.20 (2025-02-20)#
Rename
ConstrainedQUBOInstancetoConstrainedQuadraticInstanceand make it independent fromQUBOInstance, so that now it inherits directly fromProblemInstance.Make most functionality of
ConstrainedQuadraticInstancebased onConstrainedQuadraticModelfrom thedimodpackage.
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
ConstrainedQUBOInstanceand implement them inMISInstance.
Version 0.17 (2025-02-04)#
Create a new module
backends.pycontaining 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
QUBOQAOAclass.Create a new module
circuits.pycontaining functions that construct (quantum) circuits from aQUBOQAOAobject. Formerly the functions were methods of theQUBOQAOAclass.
Version 0.16 (2025-01-31)#
Change the way that (optional) initial angles are inputted when
QUBOQAOAis initialized. Previously one variableinitial_angleswas used. Now it’s possible to use input variablesgammasandbetasinstead.Add setters for
self.betas,self.gammasandself.anglesofQUBOQAOA.
Version 0.15 (2025-01-24)#
Generate package documentation with
sphinxand upload it to GitLab Pages for each released version of the package.
Version 0.14 (2025-01-08)#
Replace local copy of
mapomaticcode withiqm-mapomaticpackage.
Version 0.13 (2025-01-07)#
Fix estimator based on QUIMB, adding a warning.
Version 0.12 (2024-12-16)#
Add a method
circuitto 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