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 Code style: black

Graphix is a measurement-based quantum computing (MBQC) software package, featuring

  • the measurement calculus framework with integrated graphical rewrite rules for Pauli measurement preprocessing
  • circuit-to-pattern transpiler, graph-based deterministic pattern generator and manual pattern generation
  • flow, gflow and pauliflow finding tools and graph visualization based on flows (see below)
  • statevector, density matrix and tensornetwork pattern simulation backends
  • QPU interface and fusion network extraction tool

Installation

Install graphix with pip:

$ pip install graphix

Install together with device interface:

$ pip install graphix[extra]

this will install graphix and inteface for IBMQ and Perceval to run MBQC patterns on superconducting and optical QPUs and their simulators.

Using graphix

generating pattern from a circuit

from graphix import Circuit
circuit = Circuit(4)
circuit.h(0)
...
pattern = circuit.transpile()
pattern.draw_graph()
logo

note: this graph is generated from QAOA circuit, see our example code. Arrows indicate the causal flow of MBQC and dashed lines are the other edges of the graph. the vertical dashed partitions and the labels 'l:n' below indicate the execution layers or the order in the graph (measurements should happen from left to right, and nodes in the same layer can be measured simultaneously), based on the partial order associated with the (maximally-delayed) flow.

preprocessing Pauli measurements

pattern.perform_pauli_measurements()
pattern.draw_graph()
logo

(here, the graph is visualized based on generalized flow.)

simulating the pattern

state_out = pattern.simulate_pattern(backend='statevector')

and more..

  • See demos showing other features of graphix.

  • You can try demos on browser with mybinder.org: Binder

  • Read the tutorial for more usage guides.

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

  • Full API docs is here.

Citing

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

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

Uploaded Source

Built Distribution

graphix-0.2.15-py3-none-any.whl (100.9 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: graphix-0.2.15.tar.gz
  • Upload date:
  • Size: 145.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.0 CPython/3.12.4

File hashes

Hashes for graphix-0.2.15.tar.gz
Algorithm Hash digest
SHA256 2e8e76186301ae9ad95a02cc68dbcdda37f1120991a71f4d7db207a367e86104
MD5 f815b9cf1f5d49e33a8efaef369f9a15
BLAKE2b-256 65fafcaeade7cedc069cdeb4cc04b367c5db7c4c3f2a614388d2e3aa24ed78e1

See more details on using hashes here.

File details

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

File metadata

  • Download URL: graphix-0.2.15-py3-none-any.whl
  • Upload date:
  • Size: 100.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.0 CPython/3.12.4

File hashes

Hashes for graphix-0.2.15-py3-none-any.whl
Algorithm Hash digest
SHA256 58b54200b4f083f730492f8b4ffdf7d110c686603b425514ff589f4bdc6308cc
MD5 79687bc8c3857c25e4ca3b82ca298518
BLAKE2b-256 ed639b44bd9b3da2e4f9b114410777fb98eb34320f0263dc9b7434b91ce8b33e

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