Skip to main content

GraphiQ is a Python library for the simulation, design, and optimization of quantum photonic circuits.

Project description

GraphiQ

PyPI Version Python Versions GitHub Workflow Status Documentation Status arXiv Paper arXiv Paper codecov Code style: black

GraphiQ is a Python library for the simulation, design, and optimization of quantum photonic circuits.

GraphiQ is an open-source framework for designing photonic graph state generation schemes. Photonic graph states are an important resource for many quantum information processing tasks including quantum computing and quantum communication.

Features

  • Diverse backends for the simulation of noisy quantum circuits comprised of hundreds of qubits.

  • Algorithms for the inverse design and optimization of circuits that output a desired quantum state.

  • Circuits support emitter and photonic qubits, as a basis for simulations of realistic near-term quantum photonic devices.

  • Library of models for the study of noise and optical loss.

Installation

GraphiQ can be installed from PyPI,

pip install graphiq 

This package is built on top of the standard Python scientific computing ecosystem, including networkx, numpy, matplotlib, and scipy.

Getting started

GraphiQ can simulate quantum circuits using the density matrix and stabilizer formalisms, and can identify circuits which generate a target quantum state. In this example, we simulate a Bell state circuit and find a generating circuit for a 3-qubit linear cluster state.

import graphiq as gq
from graphiq.benchmarks.circuits import bell_state_circuit
import networkx as nx

#%%
circuit, _ = bell_state_circuit()
backend = gq.StabilizerCompiler()
state = backend.compile(circuit)
print(state)

#%%
target = gq.QuantumState(data=nx.Graph([(1, 2), (2, 3)]), rep_type="g")
metric = gq.Infidelity(target=target)
solver = gq.TimeReversedSolver(compiler=backend, metric=metric, target=target)

#%%
solver.solve()
score, circuit = solver.result
circuit.draw_circuit()

Overview

  • backends - simulate a quantum circuit using different state representations, including, the density matrix, stabilizer, and graph formalisms.
  • noise - models for the study of noise and optical loss in realistic quantum devices.
  • solvers - design and optimization algorithms that identifying circuits satisfying which generate target quantum states.
  • benchmarks - a suite of automated tools for benchmarking solvers and compilers, scaled to run on high-performance computing clusters.
  • visualizers - functions for plotting backends and quantum circuits.
  • tests - automated code testing framework

Documentation

Documentation can be found here. See also "GraphiQ: Quantum circuit design for photonic graph states" (https://arxiv.org/abs/2402.09285), and "Optimization of deterministic photonic graph state generation via local operations" (https://arxiv.org/abs/2401.00635)

Acknowledgement

Version 0.1.0 was jointly developed by Quantum Bridge Technologies, Inc. ("Quantum Bridge") and Ki3 Photonics Technologies under the US Air Force Office of Scientific Research (AFOSR) Grant FA9550-22-1-0062.

Contributing

Quantum Bridge continues to maintain and develop new versions of GraphiQ. Collaborations from the community are encouraged and welcomed.

License

GraphiQ is licensed under an Apache License Version 2.0.

Citation

@article{
  title={GraphiQ: Quantum circuit design for photonic graph states}, 
  author={Jie Lin and Benjamin MacLellan and Sobhan Ghanbari and Julie Belleville and Khuong Tran and Luc Robichaud and Roger G. Melko and Hoi-Kwong Lo and Piotr Roztocki},
  year={2024},
  eprint={2402.09285},
  archivePrefix={arXiv},
  primaryClass={quant-ph}
}

Project details


Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

graphiq-0.1.1-py3-none-any.whl (1.3 MB view details)

Uploaded Python 3

File details

Details for the file graphiq-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: graphiq-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 1.3 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.9.6

File hashes

Hashes for graphiq-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 55826fab0fedb07d1ed74a8190195424dea56b7ddafaf74ca7e81d5e105f739a
MD5 32177383c190587897449d0fe137a681
BLAKE2b-256 5e5d49660f4d32ff224534dbdfd2aca19440059b9e1827ecdcd947dd79557e41

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