prototype-zne

Zero Noise Extrapolation (ZNE) prototype for error mitigation on the Qiskit Estimator primitive

https://github.com/qiskit-community/prototype-zne

Science Score: 67.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 1 DOI reference(s) in README
  • Academic publication links
    Links to: zenodo.org
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (10.8%) to scientific vocabulary

Keywords

error-mitigation primitives quantum-computing

Keywords from Contributors

interpretability standardization hack
Last synced: 6 months ago · JSON representation ·

Repository

Zero Noise Extrapolation (ZNE) prototype for error mitigation on the Qiskit Estimator primitive

Basic Info
Statistics
  • Stars: 34
  • Watchers: 5
  • Forks: 21
  • Open Issues: 17
  • Releases: 11
Topics
error-mitigation primitives quantum-computing
Created over 3 years ago · Last pushed 12 months ago
Metadata Files
Readme Changelog Contributing License Code of conduct Citation Codeowners

README.md

![Platform](https://img.shields.io/badge/Platform-Linux%20%7C%20macOS%20%7C%20Windows-informational) [![Python](https://img.shields.io/badge/Python-3.8%20%7C%203.9%20%7C%203.10%20%7C%203.11%20%7C%203.12-informational)](https://www.python.org/) [![Qiskit](https://img.shields.io/badge/Qiskit-%E2%89%A5%200.45.1-6133BD)](https://github.com/Qiskit/qiskit)
[![Tests](https://github.com/qiskit-community/prototype-zne/actions/workflows/test.yml/badge.svg)](https://github.com/qiskit-community/prototype-zne/actions/workflows/test.yml) [![Coverage](https://coveralls.io/repos/github/qiskit-community/prototype-zne/badge.svg?branch=main)](https://coveralls.io/github/qiskit-community/prototype-zne?branch=main) [![Release](https://img.shields.io/github/release/qiskit-community/prototype-zne.svg?include_prereleases&label=Release)](https://github.com/qiskit-community/prototype-zne/releases) [![DOI](https://img.shields.io/badge/DOI-zz.nnnn/zenodo.ddddddd-informational)](https://zenodo.org/) [![License](https://img.shields.io/github/license/qiskit-community/prototype-zne?label=License)](LICENSE.txt)

⚠️ Warning: prototype-zne is currently not maintained. Use at your own risk.



Logo

Zero Noise Extrapolation (ZNE)

<!-- QUICK LINKS --> <!--

Launch Demo Watch Video

-->


Table of contents

  1. About This Project
  2. About Prototypes
  3. Deprecation Policy
  4. Using Quantum Services
  5. Acknowledgements
  6. References
  7. License

For users

  1. Installation
  2. Tutorials
  3. Reference Guide
  4. How-tos
  5. Explanations
  6. How to Give Feedback

For developers

  1. Contribution Guidelines

About This Project

This module builds on top of the Estimator primitive official specification, providing a highly customizable zero noise extrapolation (ZNE) workflow for error mitigation on expectation value calculations. This is achieved by injecting orchestrated ZNE capabilities into an Estimator class of choice in two phases:

  1. Amplifying the noise introduced by the gates of input circuits.
  2. Extrapolating the returned expectation values to the zero noise limit.

In principle, this prototype is compatible with any Estimator class as long as it implements the qiskit.primitives.BaseEstimator interface (e.g. qiskit.primitives.Estimator, qiskit.primitives.BackendEstimator, qiskit_ibm_runtime.Estimator). Notice, however, that error mitigation techniques only make sense in the context of noisy computations; therefore using ZNE on noisless platforms (e.g. simulators), although technically possible, will not produce better results.

Furthermore, the software architecture has been devised specifically to allow users to create their custom noise amplification and extrapolation techniques, and to plug them into the overall ZNE workflow seamlessly. Libraries of pre-implemented strategies for both of these tasks are provided in the module, and external packages can easily be made to work with this tool by providing implementations of well defined interfaces for these tasks.

Before using the module for new work, users should read through the reference guide, specifically the current limitations of the module. Demo tutorials are also available as jupyter notebooks.


About Prototypes

Prototypes is a collaboration between developers and researchers that will give users early access to solutions from cutting-edge research in areas like error mitigation, quantum simulation, and machine learning. These software packages are built on top of, and may eventually be integrated into the Qiskit SDK. They are a contribution as part of the Qiskit community.

Check out our landing page and blog post for more information!


Deprecation Policy

Prototypes are meant to evolve rapidly and, as such, do not follow Qiskit's deprecation policy. We may occasionally make breaking changes in order to improve the user experience. When possible, we will keep old interfaces and mark them as deprecated, as long as they can co-exist with the new ones. Each substantial improvement, breaking change, or deprecation will be documented in CHANGELOG.md.


Using Quantum Services

If you are interested in using quantum services (i.e. using a real quantum computer, not a simulator) you can look at the Qiskit Partners program for partner organizations that have provider packages available for their offerings.

Importantly, Qiskit IBM Runtime is a quantum computing service and programming model that allows users to optimize workloads and efficiently execute them on quantum systems at scale; extending the existing interface in Qiskit with a set of new primitive programs.


Acknowledgements

  • Mario Motta: for scientific insight and guidance.
  • Julien Gacon: for providing a util function that maps gate names to the corresponding gate classes and for general discussions.
  • Derek Wang: for suggesting new features and stress-testing the tool.

References

[1] Kandala, Abhinav, et al. "Extending the computational reach of a noisy superconducting quantum processor." arXiv:1805.04492(2018).

[2] Stamatopoulos, Nikitas, et al. "Option pricing using quantum computers." Quantum4 (2020): 291.

[3] LaRose, Ryan, et al. "Mitiq: A software package for error mitigation on noisy quantum computers." arXiv:2009.04417(2020).

[4] Kim, Youngseok, et al. "Scalable error mitigation for noisy quantum circuits produces competitive expectation values." arXiv:2108.09197(2021).

[5] T. Giurgica-Tiron, Y. Hindy, R. LaRose, A. Mari and W. J. Zeng, "Digital zero noise extrapolation for quantum error mitigation," 2020 IEEE International Conference on Quantum Computing and Engineering (QCE), Denver, CO, USA, 2020, pp. 306-316, doi: 10.1109/QCE49297.2020.00045.


License

Apache License 2.0

Owner

  • Name: Qiskit Community
  • Login: qiskit-community
  • Kind: organization

Citation (CITATION.bib)

@misc{zne,
  author        = {Pedro Rivero and Friederike Metz and Areeq Hasan and Agata M. Bra\'{n}czyk and Caleb Johnson},
  title         = {Zero Noise Extrapolation prototype},
  year          = {2023},
  publisher     = {Zenodo},
  version       = {1.3.1},
  doi           = {},
  url           = {https://github.com/qiskit-community/prototype-zne},
}

GitHub Events

Total
  • Watch event: 7
  • Push event: 1
  • Fork event: 1
Last Year
  • Watch event: 7
  • Push event: 1
  • Fork event: 1

Committers

Last synced: 9 months ago

All Time
  • Total Commits: 103
  • Total Committers: 4
  • Avg Commits per committer: 25.75
  • Development Distribution Score (DDS): 0.107
Past Year
  • Commits: 1
  • Committers: 1
  • Avg Commits per committer: 1.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
Pedro Rivero p****z@g****m 92
github-actions[bot] 4****] 6
Luciano Bello b****l@z****m 3
Jim Garrison j****m@g****c 2
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 21
  • Total pull requests: 44
  • Average time to close issues: 8 days
  • Average time to close pull requests: 11 days
  • Total issue authors: 6
  • Total pull request authors: 8
  • Average comments per issue: 0.33
  • Average comments per pull request: 0.32
  • Merged pull requests: 37
  • Bot issues: 0
  • Bot pull requests: 8
Past Year
  • Issues: 0
  • Pull requests: 2
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 0
  • Pull request authors: 2
  • Average comments per issue: 0
  • Average comments per pull request: 1.0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • pedrorrivero (15)
  • cometta (1)
  • IceKhan13 (1)
  • NicoRenaud (1)
  • maxi-bon (1)
  • mberna (1)
Pull Request Authors
  • pedrorrivero (31)
  • github-actions[bot] (12)
  • 1ucian0 (4)
  • gsamsonidze (2)
  • ahojukka5 (2)
  • garrison (2)
  • Guillermo-Mijares-Vilarino (1)
  • mrvee-qC-bee (1)
Top Labels
Issue Labels
enhancement (9) feature (8) DC-2 (6) DC-3 (5) PL-4 (5) triage (4) PL-3 (4) bug (3) DC-4 (3) PL-2 (3) help wanted (2) DC-1 (2) documentation (2) PL-5 (2) PL-1 (2) good first issue (1)
Pull Request Labels
feature (16) enhancement (13) template (12) PL-1 (11) PL-2 (8) PL-3 (8) PL-5 (6) bug (6) PL-4 (3) documentation (1)

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 235 last-month
  • Total docker downloads: 87
  • Total dependent packages: 0
  • Total dependent repositories: 1
  • Total versions: 10
  • Total maintainers: 1
pypi.org: prototype-zne

Zero Noise Extrapolation (ZNE) prototype for error mitigation on

  • Versions: 10
  • Dependent Packages: 0
  • Dependent Repositories: 1
  • Downloads: 235 Last month
  • Docker Downloads: 87
Rankings
Docker downloads count: 2.8%
Downloads: 6.6%
Forks count: 9.6%
Dependent packages count: 10.1%
Average: 10.4%
Stargazers count: 12.0%
Dependent repos count: 21.6%
Maintainers (1)
Last synced: 6 months ago

Dependencies

.github/workflows/citation.yml actions
  • actions/checkout v3 composite
  • actions/upload-artifact v2 composite
.github/workflows/coverage.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v2 composite
  • coverallsapp/github-action master composite
.github/workflows/lint.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v2 composite
.github/workflows/release.yml actions
  • actions/checkout v3 composite
  • eloquent/github-release-action v3 composite
.github/workflows/template-sync.yaml actions
  • AndreasAugustin/actions-template-sync v0.7.3 composite
  • actions/checkout v3 composite
.github/workflows/test-development.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v1 composite
.github/workflows/test-minimum.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v1 composite
.github/workflows/test.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v1 composite
pyproject.toml pypi
  • qiskit >= 0.45.1