Mitiq

Latest version: v0.36.0

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

Scan your dependencies

Page 2 of 9

0.35.0

In this milestone, we've continued our work to support Qibo by providing a new tutorial, adding related Qibo-conversion functionality to the API-doc, and added Qibo to our main list of supported frontends.
We've also added the capability to use rotated randomized benchmarking circuits as part of the calibrator.
These circuits provide expectation values ranging from 0 to 1 when measuring the probability that the output state is in the ground state.
Having circuits with a wide range of expectation values is an important benchmarking task, and make a great test for finding the correct error mitigation technique/parameters.
If you find any bugs/inconveniences in working with these updates make sure to open an issue so we are able to fix it ASAP!

This release also contains contributions from two new Mitiq contributors, and Unitary Fund team members Alessandro and Jordan!
Welcome both, and looking forward to many more contributions!
Well done making your first contribution so quickly 🏎️💨!

Commits

- Exit early when circuit type is not supported (2252) [cosenal]
- adding rotated randomized benchmarking circuits to calibrator (2248) [farlab]
- add qibo + rearrange frontend order (2249) [purva-thakre]
- Fix examples link in README.md (2242) [jordandsullivan]
- add link to discussions as a way to contribute (2234) [natestemen]
- use python 3.11 for RTD (2231) [natestemen]
- fix pennylane tutorial (2232) [natestemen]
- Add qibo example to docs (2220) [francescsabater]
- replace `black`, `flake8`, and `isort` with `ruff` (2222) [natestemen]
- pin qibo version (2221) [natestemen]
- Add Qibo conversions to documentation (2214) [nathanshammah]
- Added warning filter to ignore warning (2211) [bdg221]
- remove redundant imports (2206) [natestemen]
- Indicate master is under development (2205) [natestemen]

📦 Dependency updates

- Update pennylane-qiskit requirement from ~=0.34.0 to ~=0.34.1 (2198) [dependabot]
- Update qiskit-ibm-provider requirement from ~=0.8.0 to ~=0.10.0 (2196) [dependabot]
- Update pennylane requirement from ~=0.34.0 to ~=0.35.1 (2227) [dependabot]
- Update pennylane-qiskit requirement from ~=0.34.1 to ~=0.35.1 (2225) [dependabot]
- Bump stimcirq from 1.12.1 to 1.13.0 (2236) [dependabot]
- Bump stim from 1.12.1 to 1.13.0 (2237) [dependabot]

🧑‍💻 Dev Dependency updates

- Bump all documentation dependencies (2179) [dependabot]
- Bump pytest-cov from 4.0.0 to 5.0.0 (2240) [dependabot]

0.34.0

Announcing support for [Qibo](https://qibo.science/), a newly integrated frontend in Mitiq! 📣
Qibo is an "end-to-end open source platform for quantum simulation, self-hosted quantum hardware control, calibration and characterization".

Thank you to new contributor Francesc Sabater for excellent work integrating Qibo and Mitiq!
Thanks also to new contibutor Sam Burdick for fixing our readme.

This release also includes a refactoring of part of the Mitiq shadows module, `mitiq.shadows.classical_postprocessing`, for speed of execution and code readability.

📓 Documentation

We've continued to enhance our (legendary!) documentation with:

1. Addition of a security policy document
2. Faster execution of the learning-based PEC tutorial in CI

Commits

- Add support for qibo circuits (2102) [francescsabater]
- Reduce doc build time for learning representations (2165) [Misty-W]
- Create SECURITY.md (2162) [nathanshammah]
- Fix typo in README.md (2173) [smburdick]
- Refactor classical postprocessing in shadows module (2152) [natestemen]
- Fix broken link in `combine_rem_zne.md` (2156) [Misty-W]

📦 Dependency updates

- Bump openfermion from 1.6.0 to 1.6.1 (2182) [dependabot]
- Update amazon-braket-sdk requirement from ~=1.68.3 to ~=1.69.0 (2177) [dependabot]
- Bump pyscf from 2.4.0 to 2.5.0 (2176) [dependabot]
- Update amazon-braket-sdk requirement from ~=1.66.0 to ~=1.68.3 (2175) [dependabot]
- Update qiskit-aer requirement from ~=0.13.1 to ~=0.13.2 (2157) [dependabot]
- Bump pytest from 7.1.3 to 8.0.0 (2167) [dependabot]
- Update amazon-braket-sdk requirement from ~=1.65.1 to ~=1.66.0 (2155) [dependabot]
- Update pennylane-qiskit requirement from ~=0.33.1 to ~=0.34.0 (2154) [dependabot]
- Update pennylane requirement from ~=0.33.1 to ~=0.34.0 (2153) [dependabot]
- Update qiskit-ibm-provider requirement from ~=0.7.3 to ~=0.8.0 (2151) [dependabot]

0.33.0

Minor update from 0.32.0 to fix a bug 🐛 in the `mitiq.shadows` module where an incorrect index was being used.

All changes

- Changed to use the split for b_list_shadow (2137) [bdg221]

0.32.0

> Happy holidays, and happy (almost) new year!! ❄️☃️🎄🎊
> This will be our last release of the year, and we'd like to thank everyone who has contributed to Mitiq over the past 12 months.
> We've accomplished so much in the way of error mitigation this year, and we couldn't have done it without the support and time given by the volunteers.
> **Thank you!**

The **calibrator logs have been revamped** for to support result discovery and analysis.
The `Calibrator.run` method now support two options: `flat` and `cartesian` to display the experiment results in either a linear fashion, or grid-like.
Results here have been truncated for brevity.

py
>>> calibrator.run(log="flat")
┌──────────────────────────┬────────────────────────────────────┬────────────────────────────┐
│ benchmark │ strategy │ performance │
├──────────────────────────┼────────────────────────────────────┼────────────────────────────┤
│ Type: ghz │ Technique: ZNE │ ✔ │
│ Num qubits: 2 │ Factory: Linear │ Noisy error: 0.04 │
│ Circuit depth: 2 │ Scale factors: 1.0, 2.0, 3.0 │ Mitigated error: 0.02 │
│ Two qubit gate count: 1 │ Scale method: fold_gates_at_random │ Improvement factor: 2.0 │
├──────────────────────────┼────────────────────────────────────┼────────────────────────────┤
│ Type: ghz │ Technique: ZNE │ ✘ │
│ Num qubits: 2 │ Factory: Linear │ Noisy error: 0.04 │
│ Circuit depth: 2 │ Scale factors: 1.0, 3.0, 5.0 │ Mitigated error: 0.0658 │
│ Two qubit gate count: 1 │ Scale method: fold_global │ Improvement factor: 0.6076 │
├──────────────────────────┼────────────────────────────────────┼────────────────────────────┤
│ Type: ghz │ Technique: ZNE │ ✘ │
│ Num qubits: 2 │ Factory: Richardson │ Noisy error: 0.98 │
│ Circuit depth: 33 │ Scale factors: 1.0, 3.0, 5.0 │ Mitigated error: 1.03 │
│ Two qubit gate count: 14 │ Scale method: fold_global │ Improvement factor: 0.9515 │
└──────────────────────────┴────────────────────────────────────┴────────────────────────────┘


py
>>> calibrator.run(log="cartesian")
┌────────────────────────────────────┬────────────────────────────┬────────────────────────────┐
│ strategy\benchmark │ Type: ghz │ Type: mirror │
│ │ Num qubits: 2 │ Num qubits: 2 │
│ │ Circuit depth: 2 │ Circuit depth: 33 │
│ │ Two qubit gate count: 1 │ Two qubit gate count: 14 │
├────────────────────────────────────┼────────────────────────────┼────────────────────────────┤
│ Technique: ZNE │ ✘ │ ✘ │
│ Factory: Richardson │ Noisy error: 0.03 │ Noisy error: 1.0 │

0.31.0

Released November 2, 2023

Summary

This release contains several documentation improvements and some new additions. Quantum subspace expansion (QSE) is added to the user guide (thanks bubakazouba). Thanks to our first time contributors dubeyPraY for a new tutorial on using PennyLane and Mitiq in calculating the energy landscape of a simple variational circuit and kozhukalov for adding the PEC noise level and calculated error to the calibration logs. **We also removed support for python 3.8**.

All changes

- Second incremental speed up of Mitiq tests [Misty-W]
- More general conversion decorator and fix conversion bug in PEC (2064) [andreamari]
- Added Example for Mitiq in simple landscape for Pennylane (2048) [dubeyPraY]
- Indicate under active development on master (2054) [Misty-W]
- 2029 update contributing docs.md for references thumbnails viewing rtd build (2053) [bdg221]
- Add noise level to the PEC calibration log (2045) [kozhukalov]
- 2024 reduce documentation build time after classical shadows added (2058) [bdg221]
- Clean up GitHub CI (2069) [natestemen]
- remove binder directory (2071) [natestemen]
- drop support for python 3.8 (2068) [nate stemen]
- Include calculated error in calibrator logs (2038) [kozhukalov]
- Adds QSE user guide (1976) [bubakazouba]

Dependency updates

- Bump openfermion from 1.5.1 to 1.6.0 (2078) [dependabot]
- Update qiskit-aer requirement from ~=0.12.2 to ~=0.13.0 (2076) [dependabot]
- Bump pandas from 2.1.1 to 2.1.2 (2077) [dependabot]
- Update qiskit requirement from ~=0.44.2 to ~=0.44.3 (2073) [dependabot]
- Update scipy requirement from <=1.11.2,>=1.5.0 to >=1.5.0,<=1.11.3 (2031) [dependabot]
- Update qiskit-ibm-provider requirement from ~=0.7.1 to ~=0.7.2 (2072) [dependabot]
- Update amazon-braket-sdk requirement from ~=1.55.1 to ~=1.59.2 (2070) [dependabot]
- Bump pyscf from 2.3.0 to 2.4.0 (2055) [dependabot]
- Update qiskit requirement from ~=0.44.1 to ~=0.44.2 (2041) [dependabot]
- Update qiskit-ibm-provider requirement from ~=0.7.0 to ~=0.7.1 (2059) [dependabot]
- Bump matplotlib from 3.7.3 to 3.8.0 (2020) [dependabot]
- Bump pandas from 2.0.3 to 2.1.1 (2023) [dependabot]
- Update pennylane-qiskit requirement from ~=0.31.0 to ~=0.32.0 (1980) [dependabot]
- Update seaborn requirement from ~=0.12.2 to ~=0.13.0 (2037) [dependabot]

0.30.0

Released October 13, 2023

Summary

This release contains several documentation improvements and some new additions.
The classical shadows documentation has been improved (including a tutorial!) by Min-Li. The Pauli Twirling method is added to the user guide (thanks Aaron-Robertson and purva-thakre). There is a new tutorial applying both zero-noise extrapolation (ZNE) and Clifford Data Regression (CDR) to quantum simulation, for the 1D Ising chain, in Cirq, by farzadkianvash, a new contributor! The documentation has been further improved and unified by Misty-W and natestemen.

In terms of additions, a new type of benchmark quantum circuits, "rotated" randomized benchmarking (RB) quantum circuits have been added by Misty-W, for more general benchmarks.

py
import numpy as np
from mitiq.benchmarks import generate_rotated_rb_circuits

circuits = generate_rotated_rb_circuits(
n_qubits=2,
num_cliffords=10,
theta=2 * np.pi * np.random.Generator.random(),
trials=100,
)


All changes

- Add a tutorial for simulating Ising 1-D chain with Cirq with ZNE and CDR [farzadkianvash]
- Add section on quantum noise to user guide (2036) [Misty-W]
- New QEM benchmarking method: "rotated" RB circuits (2028) [Misty-W]
- Add Pauli Twirling (PT) User Guide (1848) [Aaron-Robertson,purva-thakre]
- Documentation cleanup (2008) [natestemen]
- Remove draft workflow from Github Actions (2019) [purva-thakre]
- Improve documentation of Classical Shadows (2026) [Min-Li]
- Classical Shadows: Add tutorial (1945) [Min-Li]

Dependency updates

- Update amazon-braket-sdk requirement from ~=1.54.1 to ~=1.55.1 (2016) [dependabot]
- Bump matplotlib from 3.7.2 to 3.7.3 (2011) [dependabot]

Page 2 of 9

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.