Skip to main content

QREM - Quantum Readout Errors Mitigation

This package provides a versatile set of tools for the characterization and mitigation of readout noise in NISQ devices. Standard characterization approaches become infeasible with the growing size of a device, since the number of circuits required to perform tomographic reconstruction of a measurement process grows exponentially in the number of qubits. In QREM we use efficient techniques that circumvent those problems by focusing on reconstructing local properties of the readout noise.

You can find article based on initial version of this package here - http://arxiv.org/abs/2311.10661 and the corresponding code used at the moment of writning the article here.

Plot of correlation coefficients determined in characterization on device layout

Status of development

This package is released now as an alpha version, to gather feedback while it undergoes final adjustments prior to the first release. As it is under heavy development, existing functionalities might change, while new functionalities and notebooks are expected to be added in the future.

Documentation

Current documentation (work in progress) is available here

Introduction

The two current main functionalities are:

Noise characterization

  • experiment design
  • hardware experiment implementation and data processing (on devices supported by qiskit/pyquil)
  • readout noise characterisation
  • learning of noise models

Noise mitigation

  • mitigation based on noise model provided by user ( currently available is CN, CTMP is under development)

Installation

The best way to install this package is to use pip (see pypi website):

pip install qrem

This method will automatically install all required dependecies (see below for list of dependecies).

Dependencies

For qrem package to work properly, the following libraries should be present (and will install if you install via pip):

  • "numpy >= 1.18.0, < 1.24",
  • "scipy >= 1.7.0",
  • "tqdm >= 4.46.0",
  • "colorama >= 0.4.3",
  • "qiskit >= 0.39.4",
  • "networkx >= 0.12.0, < 3.0",
  • "pandas >= 1.5.0",
  • "picos >= 2.4.0",
  • "qiskit-braket-provider >= 0.0.3",
  • "qutip >= 4.7.1",
  • "matplotlib >= 3.6.0",
  • "seaborn >= 0.12.0",
  • "sympy >= 1.11.0",
  • "pyquil >= 3.0.0",
  • "pyquil-for-azure-quantum",
  • "ipykernel >= 6.1.0",
  • "configargparse >= 1.5.0",
  • "python-dotenv >= 1.0.0",

Optional dependencies

Dependecies for visualizations:

  • "manim >= 0.17.2"

References

The workflow of this package is mainly based on works:

[1] Filip B. Maciejewski, Zoltán Zimborás, Michał Oszmaniec, "Mitigation of readout noise in near-term quantum devices by classical post-processing based on detector tomography", Quantum 4, 257 (2020)

[2] Filip B. Maciejewski, Flavio Baccari, Zoltán Zimborás, Michał Oszmaniec, "Modeling and mitigation of cross-talk effects in readout noise with applications to the Quantum Approximate Optimization Algorithm", Quantum 5, 464 (2021)

Further references:

[3]. Sergey Bravyi, Sarah Sheldon, Abhinav Kandala, David C. Mckay, Jay M. Gambetta, Mitigating measurement errors in multi-qubit experiments, Phys. Rev. A 103, 042605 (2021)

[4]. Flavio Baccari, Christian Gogolin, Peter Wittek, and Antonio Acín, Verifying the output of quantum optimizers with ground-state energy lower bounds, Phys. Rev. Research 2, 043163 (2020)

Release files for qrem 0.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for qrem 0.2.0
File Size Uploaded
qrem-0.2.0.tar.gz 242.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for qrem 0.2.0
File Interpreter ABI Platform
qrem-0.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 528.5 kB

Release files / qrem-0.2.0.tar.gz

Download URL qrem-0.2.0.tar.gz
Size 242.3 kB
Tags Source
SHA-256 checksum
How to use checksums
30c4a7749ac4212b55f2b575a7bfe4a5bb408bb048c769949f3d85f4f73dff2f
BLAKE2b-256 checksum
How to use checksums
3a64ecabb3ba26264daae57f8b242d33b8331a6aad800ace283759711ae73945
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.9.17

Release files / qrem-0.2.0-py3-none-any.whl

Download URL qrem-0.2.0-py3-none-any.whl
Size 286.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
3efe8238e565ba43cae4115d6781ea3872b7d2ca27cc7767f836c0f93d195734
BLAKE2b-256 checksum
How to use checksums
1dadcaf0c7063277d5e830cd5ae469729fc6c281d5034ed28e5d2aae14d540fd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.9.17

Release history Release notifications | RSS feed

This release

0.2.0 This release

2 release files

0.1.7

2 release files

0.1.6

2 release files

0.1.5

2 release files

0.1.4

2 release files

0.1.1

2 release files

0.0.56

2 release files

0.0.55

2 release files

0.0.54

2 release files

0.0.53

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page