| Name | graphiq JSON | 
            
| Version | 
                  0.1.1
                   
                  JSON | 
            
 | download  | 
            
| home_page | None  | 
            
| Summary | GraphiQ is a Python library for the simulation, design, and optimization of quantum photonic circuits. | 
            | upload_time | 2024-09-26 13:49:21 | 
            | maintainer | None | 
            
            | docs_url | None | 
            | author | None | 
            
            | requires_python | <4,>3.8 | 
            
            
            | license | Apache 2.0 | 
            | keywords | 
                
                    quantum
                
                     photonic
                
                     circuit
                
                     design
                 | 
            | VCS | 
                
                     | 
                
            
            | bugtrack_url | 
                
                 | 
             
            
            | requirements | 
                
                  No requirements were recorded.
                
             | 
            
| Travis-CI | 
                
                   No Travis.
                
             | 
            | coveralls test coverage | 
                
                   No coveralls.
                
             | 
        
        
            
            <div align="center">
# 
[](https://pypi.org/project/graphiq)
[](https://pypi.org/project/graphiq)
[](https://github.com/ki3-qbt/graph-compiler/actions)
[](https://graphiq.readthedocs.io/en/latest/?badge=latest)
[](https://arxiv.org/abs/2402.09285)
[](https://arxiv.org/abs/2401.00635)
[](https://codecov.io/gh/graphiq-dev/graphiq)
[](https://github.com/ambv/black)
</div>
<p align="center" style="font-size:20px">
  GraphiQ is a Python library for the simulation, design, and optimization of quantum photonic circuits.
</p>
**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
<img src="https://user-images.githubusercontent.com/87783633/198037273-06ec89cf-233d-4c08-9f7a-96313bfcb435.gif" width="225px" align="right">
* Diverse [backends](https://github.com/ki3-qbt/graph-compiler/tree/main/graphiq/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](https://github.com/ki3-qbt/graph-compiler/tree/main/graphiq/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.
``` py
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`](https://github.com/ki3-qbt/graph-compiler/tree/main/graphiq/backends) - simulate a quantum circuit using
  different state representations, including, the density matrix, stabilizer, and graph formalisms.
* [`noise`](https://github.com/ki3-qbt/graph-compiler/tree/main/graphiq/noise) - models for the study of noise and
  optical loss in realistic quantum devices.
* [`solvers`](https://github.com/ki3-qbt/graph-compiler/tree/main/graphiq/solvers) - design and optimization algorithms that identifying
  circuits satisfying which generate target quantum states.
* [`benchmarks`](https://github.com/ki3-qbt/graph-compiler/tree/main/benchmarks) - a suite of automated tools for
  benchmarking solvers and compilers, scaled to run on high-performance computing clusters.
* [`visualizers`](https://github.com/ki3-qbt/graph-compiler/tree/main/graphiq/visualizers) - functions for plotting
  backends and quantum circuits.
* [`tests`](https://github.com/ki3-qbt/graph-compiler/tree/main/tests) - automated code testing framework
## Documentation
Documentation can be found [here](https://graphiq.readthedocs.io/en/latest/?badge=latest).
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") ](https://qubridge.io/)
and [Ki3 Photonics Technologies](https://www.ki3photonics.com/) 
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}
}
```
            
         
        Raw data
        
            {
    "_id": null,
    "home_page": null,
    "name": "graphiq",
    "maintainer": null,
    "docs_url": null,
    "requires_python": "<4,>3.8",
    "maintainer_email": null,
    "keywords": "quantum, photonic, circuit, design",
    "author": null,
    "author_email": "Benjamin MacLellan <benjamin@ki3photonics.com>, Jie Lin <jie.lin@quantumbridgetech.com>, Sohban Ghanbari <sobhan.ghanbari@quantumbridgetech.com>, Luc Robichaud <luc.robichaud@qubridge.io>, Piotr Roztocki <piotr@ki3photonics.com>",
    "download_url": null,
    "platform": null,
    "description": "<div align=\"center\">\n\n# \n\n[](https://pypi.org/project/graphiq)\n[](https://pypi.org/project/graphiq)\n[](https://github.com/ki3-qbt/graph-compiler/actions)\n[](https://graphiq.readthedocs.io/en/latest/?badge=latest)\n[](https://arxiv.org/abs/2402.09285)\n[](https://arxiv.org/abs/2401.00635)\n[](https://codecov.io/gh/graphiq-dev/graphiq)\n[](https://github.com/ambv/black)\n\n</div>\n\n<p align=\"center\" style=\"font-size:20px\">\n  GraphiQ is a Python library for the simulation, design, and optimization of quantum photonic circuits.\n</p>\n\n**GraphiQ** is an open-source framework for designing photonic graph state generation schemes. \nPhotonic graph states are an important resource for many quantum information processing tasks including quantum computing \nand quantum communication.\n\n## Features\n\n<img src=\"https://user-images.githubusercontent.com/87783633/198037273-06ec89cf-233d-4c08-9f7a-96313bfcb435.gif\" width=\"225px\" align=\"right\">\n\n* Diverse [backends](https://github.com/ki3-qbt/graph-compiler/tree/main/graphiq/backends) for the simulation of noisy\n  quantum circuits comprised of hundreds of qubits.\n\n* Algorithms for the inverse design and optimization of circuits that output a desired quantum state.\n\n* Circuits support emitter and photonic qubits, as a basis for simulations of realistic near-term quantum photonic\n  devices.\n\n* Library of models for the study of [noise](https://github.com/ki3-qbt/graph-compiler/tree/main/graphiq/noise) and\n  optical loss.\n\n## Installation\nGraphiQ can be installed from PyPI,\n```\npip install graphiq \n```\nThis package is built on top of the standard Python scientific computing ecosystem, including\n`networkx`, `numpy`, `matplotlib`, and `scipy`.\n\n## Getting started\nGraphiQ can simulate quantum circuits using the density matrix and stabilizer formalisms, \nand can identify circuits which generate a target quantum state. \nIn this example, we simulate a Bell state circuit and find a generating circuit for a 3-qubit linear cluster state.\n``` py\nimport graphiq as gq\nfrom graphiq.benchmarks.circuits import bell_state_circuit\nimport networkx as nx\n\n#%%\ncircuit, _ = bell_state_circuit()\nbackend = gq.StabilizerCompiler()\nstate = backend.compile(circuit)\nprint(state)\n\n#%%\ntarget = gq.QuantumState(data=nx.Graph([(1, 2), (2, 3)]), rep_type=\"g\")\nmetric = gq.Infidelity(target=target)\nsolver = gq.TimeReversedSolver(compiler=backend, metric=metric, target=target)\n\n#%%\nsolver.solve()\nscore, circuit = solver.result\ncircuit.draw_circuit()\n```\n\n\n## Overview\n\n* [`backends`](https://github.com/ki3-qbt/graph-compiler/tree/main/graphiq/backends) - simulate a quantum circuit using\n  different state representations, including, the density matrix, stabilizer, and graph formalisms.\n* [`noise`](https://github.com/ki3-qbt/graph-compiler/tree/main/graphiq/noise) - models for the study of noise and\n  optical loss in realistic quantum devices.\n* [`solvers`](https://github.com/ki3-qbt/graph-compiler/tree/main/graphiq/solvers) - design and optimization algorithms that identifying\n  circuits satisfying which generate target quantum states.\n* [`benchmarks`](https://github.com/ki3-qbt/graph-compiler/tree/main/benchmarks) - a suite of automated tools for\n  benchmarking solvers and compilers, scaled to run on high-performance computing clusters.\n* [`visualizers`](https://github.com/ki3-qbt/graph-compiler/tree/main/graphiq/visualizers) - functions for plotting\n  backends and quantum circuits.\n* [`tests`](https://github.com/ki3-qbt/graph-compiler/tree/main/tests) - automated code testing framework\n\n\n## Documentation\nDocumentation can be found [here](https://graphiq.readthedocs.io/en/latest/?badge=latest).\nSee also \"GraphiQ: Quantum circuit design for photonic graph states\" (https://arxiv.org/abs/2402.09285),\nand \n\"Optimization of deterministic photonic graph state generation via local operations\" (https://arxiv.org/abs/2401.00635)\n\n## Acknowledgement\nVersion 0.1.0 was jointly developed by [Quantum Bridge Technologies, Inc. (\"Quantum Bridge\") ](https://qubridge.io/)\nand [Ki3 Photonics Technologies](https://www.ki3photonics.com/) \nunder the US Air Force Office of Scientific Research (AFOSR) Grant FA9550-22-1-0062.\n\n## Contributing\nQuantum Bridge continues to maintain and develop new versions of GraphiQ. Collaborations from the community are encouraged and welcomed.\n\n## License\nGraphiQ is licensed under an Apache License Version 2.0.\n\n## Citation\n```\n@article{\n  title={GraphiQ: Quantum circuit design for photonic graph states}, \n  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},\n  year={2024},\n  eprint={2402.09285},\n  archivePrefix={arXiv},\n  primaryClass={quant-ph}\n}\n```\n\n",
    "bugtrack_url": null,
    "license": "Apache 2.0",
    "summary": "GraphiQ is a Python library for the simulation, design, and optimization of quantum photonic circuits.",
    "version": "0.1.1",
    "project_urls": {
        "Documentation": "https://graphiq.readthedocs.io/en/latest/",
        "Homepage": "https://github.com/graphiq-dev/graphiq",
        "Issues": "https://github.com/graphiq-dev/graphiq/issues",
        "Repository": "https://github.com/graphiq-dev/graphiq.git"
    },
    "split_keywords": [
        "quantum",
        " photonic",
        " circuit",
        " design"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "5e5d49660f4d32ff224534dbdfd2aca19440059b9e1827ecdcd947dd79557e41",
                "md5": "32177383c190587897449d0fe137a681",
                "sha256": "55826fab0fedb07d1ed74a8190195424dea56b7ddafaf74ca7e81d5e105f739a"
            },
            "downloads": -1,
            "filename": "graphiq-0.1.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "32177383c190587897449d0fe137a681",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<4,>3.8",
            "size": 1262688,
            "upload_time": "2024-09-26T13:49:21",
            "upload_time_iso_8601": "2024-09-26T13:49:21.886473Z",
            "url": "https://files.pythonhosted.org/packages/5e/5d/49660f4d32ff224534dbdfd2aca19440059b9e1827ecdcd947dd79557e41/graphiq-0.1.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-09-26 13:49:21",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "graphiq-dev",
    "github_project": "graphiq",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [],
    "lcname": "graphiq"
}