GraphiQ is a Python library for the simulation, design, and optimization of quantum photonic circuits.
Project description
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
File details
Details for the file graphiq-0.1.0-py3-none-any.whl
.
File metadata
- Download URL: graphiq-0.1.0-py3-none-any.whl
- Upload date:
- Size: 7.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.9.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8db6c6418a99d6229e040bc54cdf437d87970ce7c5534d8ade811565c7a0a422 |
|
MD5 | 67b7c31ca7263e9e9ffa7cc22a05b489 |
|
BLAKE2b-256 | 839237156da8d53688d133f0a8d40b6f9dece6742bd2654dce2bf85491ab4fe9 |