Skip to main content

Optimize and simulate measurement-based quantum computation

Project description

logo

Documentation Status GitHub PyPI - Python Version PyPI Unitary Fund

Graphix is an open-source library to optimize and simulate measurement-based quantum computing (MBQC).

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), significantly reducing the required size of graph state to run the computation.
  • We implement Matrix Product State (MPS) simulation of MBQC with which thousands of qubits (graph nodes) can be simulated with modest computing resources (e.g. laptop), without approximation.
  • Our pattern-based construction and optimization routines are suitable for high-level optimization to run quantum algorithms on MBQC quantum hardware with minimal resource state size requirements. We plan to add quantum hardware emulators (and quantum hardware) as pattern execution backends.

Installation

Install graphix with pip:

$ pip install graphix

Next Steps

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

  • You can run demos on your browser:

    • Preprocessing Clifford gates: Binder
    • Using MPS simulator: Binder
    • QAOA circuit: Binder
  • Read the tutorial for more comprehensive guide.

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

Citing

S. Sunami and M. Fukushima. "Graphix: optimizing and simulating measurement-based quantum computation on local-Clifford decorated graph", arXiv:2212.11975 (2022).

Update on the paper: [^1]

[^1]: Following the release of this arXiv preprint, we were made aware of a previous work by Backens et al. where Pauli measurement elimination method for MBQC was developed in the context of circuit optimization. Many thanks for letting us know about this work, we will properly mention this work in the next version of our paper.

Contributing

We use GitHub issues for tracking requests and bugs.

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.

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.0.tar.gz (49.1 kB view details)

Uploaded Source

Built Distribution

graphix-0.2.0-py3-none-any.whl (47.7 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: graphix-0.2.0.tar.gz
  • Upload date:
  • Size: 49.1 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.0.tar.gz
Algorithm Hash digest
SHA256 413eeb4321429fb2110c394b71747dd87444a94730cbfda7d2e79788c63129c3
MD5 90a8b0b9bd4fbe105f531a2a82b3c509
BLAKE2b-256 dab2a8c172522125a91d37120a0976897b2640cc150696feb53125c0214c6ca5

See more details on using hashes here.

File details

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

File metadata

  • Download URL: graphix-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 47.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.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c49dc774ba4ef3459edb39f14acf36844e039fe4e4ec92c2cfc3a6340d3647c3
MD5 282f471c095385101c36c5cd869c8b5c
BLAKE2b-256 56fc182d1bc8a76d1c1e6c9016e498a2a228686e3d0103ecc0a2767d3381902e

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