Skip to main content

Optimize and simulate measurement-based quantum computation

Project description

logo

PyPI - Python Version PyPI Unitary Fund DOI Documentation Status GitHub Downloads

Graphix is a measurement-based quantum computing (MBQC) compiler to generate, optimize and simulate MBQC measurement patterns.

Feature

  • We integrate an efficient graph state simulator as an optimization routine of MBQC measurement pattern, with which we can classically preprocess all Pauli measurements (corresponding to the elimination of all Clifford gates in the gate network - c.f. Gottesman-Knill theorem and more general pattern rewriting method based on ZX diagram rewriting), reducing the required size of graph state to run the computation.
  • We implement tensor-network simulation backend for MBQC with which thousands of qubits (graph nodes) can be simulated with modest computing resources (e.g. laptop), without approximation.
  • We are developing density matrix simulation backend for noisy MBQC simulations with customizable noise models.

Installation

Install graphix with pip:

$ pip install graphix

Install together with device interface:

$ pip install graphix[extra]

this will install graphix and IBMQ interface to run MBQC patterns on IBM devices and Aer simulator.

We are currently adding more quantum device interfaces. Please suggest in issues if you have any particular device in mind!

Next Steps

  • We have a few demos showing basic usages of Graphix.

  • You can run demos on your browser:

    • Preprocessing Clifford gates: Binder
    • Using tensor-network simulator backend: Binder
    • QAOA circuit: Binder
  • Read the tutorial for more comprehensive guide.

  • For theoretical background, read our quick introduction into MBQC and LC-MBQC.

Citing

Shinichi Sunami and Masato Fukushima, Graphix. (2023) https://doi.org/10.5281/zenodo.7861382

Update on the arXiv paper: [^1]

[^1]: Following the release of this arXiv preprint, we were made aware of Backens et al. and related work, where graph-theoretic simplification (Pauli measurement elimination) of patterns were shown. Many thanks for letting us know about this work - at the time of the writing we were not aware of these important relevant works but will certainly properly mention in the new version; we are working on significant restructuring and rewriting of the paper and hope to update the paper this autumn.

Contributing

We use GitHub issues for tracking feature requests and bugs reports.

Discord Server

Please visit Unitary Fund's Discord server, where you can find a channel for graphix to ask questions.

Core Contributors

Dr. Shinichi Sunami (University of Oxford)

Masato Fukushima (University of Tokyo, Fixstars Amplify)

Acknowledgements

We are proud to be supported by unitary fund microgrant program.

unitary-fund

Special thanks to Fixstars Amplify:

amplify

License

Apache License 2.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

graphix-0.2.7.tar.gz (63.3 kB view details)

Uploaded Source

Built Distribution

graphix-0.2.7-py3-none-any.whl (69.7 kB view details)

Uploaded Python 3

File details

Details for the file graphix-0.2.7.tar.gz.

File metadata

  • Download URL: graphix-0.2.7.tar.gz
  • Upload date:
  • Size: 63.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.8.16

File hashes

Hashes for graphix-0.2.7.tar.gz
Algorithm Hash digest
SHA256 2e92f8a58a771731c0bc06705a3e9f3554144e41d5bed1bfc7c07aaadc763d27
MD5 207cc953ff52684bb27255866e0ea860
BLAKE2b-256 f57ace6c3cc5ae26f74bf5c8b484a401a0d219cfc6513e62aa0c5a37c14958b5

See more details on using hashes here.

File details

Details for the file graphix-0.2.7-py3-none-any.whl.

File metadata

  • Download URL: graphix-0.2.7-py3-none-any.whl
  • Upload date:
  • Size: 69.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.8.16

File hashes

Hashes for graphix-0.2.7-py3-none-any.whl
Algorithm Hash digest
SHA256 304fdc6174646b7b2217e26a00e630f440e6aa15d831418614830afd3fd7d4d6
MD5 e1f1ce7e78dcd12dde32119b0307cb41
BLAKE2b-256 9d8db2a46cabc01f5bd494c19fe6ff1f9ea59df95ff40e80360a4861f056167b

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