Skip to main content

No project description provided

Project description

build codecov Documentation Status PyPI version arXiv Unitary Fund

Mitiq

Mitiq is a Python toolkit for implementing error mitigation techniques on quantum computers.

Installation

Mitiq can be installed from PyPi via

pip install mitiq

To test installation, run

import mitiq
mitiq.about()

This prints out version information about core requirements and optional quantum software packages which Mitiq can interface with.

If you'd prefer to clone and install from source, our would like to develop Mitiq, check out the contribution guidelines for more information.

Supported quantum programming libraries

Mitiq can currently interface with

Cirq is a core requirement of Mitiq and is automatically installed. To use Mitiq with other quantum programming libraries, install the optional package(s) following the instructions linked above.

Supported quantum processors

Mitiq can be used on any quantum processor which can be accessed by supported quantum programming libraries and is available to the user.

Getting started

See the getting started guide in Mitiq's documentation for a complete walkthrough of how to use mitiq. For a quick preview, check out the following snippet for a simple example of Mitiq in action:

import numpy as np
from cirq import depolarize, Circuit, DensityMatrixSimulator, LineQubit, X
from mitiq import execute_with_zne

def noisy_simulation(circ: Circuit) -> float:
    """Simulates a circuit with depolarizing noise.

    Args:
        circ: The quantum program as a Cirq Circuit.

    Returns:
        The expectation value of the |0><0| observable.
    """
    circuit = circ.with_noise(depolarize(p=0.001))
    rho = DensityMatrixSimulator().simulate(circuit).final_density_matrix
    return np.real(np.trace(rho @ np.diag([1, 0])))

# simple circuit that should compose to the identity when noiseless
circ = Circuit(X(LineQubit(0)) for _ in range(80))

# run the circuit using a density matrix simulator with depolarizing noise
unmitigated = noisy_simulation(circ)
print(f"Error in simulation (w/o  mitigation): {1.0 - unmitigated:.{3}}")

# run again, but using mitiq's zero-noise extrapolation to mitigate errors
mitigated = execute_with_zne(circ, noisy_simulation)
print(f"Error in simulation (with mitigation): {1.0 - mitigated:.{3}}")

Sample output:

Error in simulation (w/o  mitigation): 0.0506
Error in simulation (with mitigation): 0.000519

Error mitigation techniques

Mitiq currently implements zero-noise extrapolation and is designed to support additional techniques.

Documentation

Mitiq's documentation is hosted at mitiq.readthedocs.io. A PDF version of the latest release can be found here.

Developer information

We welcome contributions to Mitiq including bug fixes, feature requests, etc. Please see the contribution guidelines for more details. To contribute to the documentation, please see these documentation guidelines.

Authors

An up-to-date list of authors can be found here.

Citation

If you use Mitiq in your research, please reference the Mitiq preprint as follows:

@misc{larose2020mitiq,
    title={Mitiq: A software package for error mitigation on noisy quantum computers},
    author={Ryan LaRose and Andrea Mari and Peter J. Karalekas
            and Nathan Shammah and William J. Zeng},
    year={2020},
    eprint={2009.04417},
    archivePrefix={arXiv},
    primaryClass={quant-ph}
}

License

GNU GPL v.3.0.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mitiq-0.2.0.tar.gz (48.4 kB view details)

Uploaded Source

Built Distribution

mitiq-0.2.0-py3-none-any.whl (61.2 kB view details)

Uploaded Python 3

File details

Details for the file mitiq-0.2.0.tar.gz.

File metadata

  • Download URL: mitiq-0.2.0.tar.gz
  • Upload date:
  • Size: 48.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/47.1.0 requests-toolbelt/0.9.1 tqdm/4.50.0 CPython/3.8.5

File hashes

Hashes for mitiq-0.2.0.tar.gz
Algorithm Hash digest
SHA256 ee0645de16aa08a2de6fdff2ab1b8b2b1fb5bc3b37aeb4e2078fb338b761ef01
MD5 76697f15be9098b7675301eb02d78c59
BLAKE2b-256 85691d517bf83305c2a896ca8f5df3e0b8923749782be6853efe6137e976f6ee

See more details on using hashes here.

File details

Details for the file mitiq-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: mitiq-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 61.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/47.1.0 requests-toolbelt/0.9.1 tqdm/4.50.0 CPython/3.8.5

File hashes

Hashes for mitiq-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 5df83943e64e77deb0d49965d11b331703d7149eef253141d6651efb4a33706e
MD5 25e0681f41cac95ef12e850f93a3fc20
BLAKE2b-256 f5e1f180db04df4a55ca5c9155d88ef763a8b3b7bf363a0ae5a7aadaac1e9082

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page