生成量子指令语言(QUIL)程序的Python库。
pyquil的Python项目详细描述
pyquil:python中的量子编程
pyquil是一个用于量子编程的python库,使用Quil, 在Rigetti Computing开发的量子指令语言。 Pyquil提供三个主要功能:
- 从量子门和经典运算轻松生成quil程序
- 使用Quil Compiler编译和模拟quil程序 (quilc)和Quantum Virtual Machine(qvm)
- 在真实量子处理器(qpu)上使用 Quantum Cloud Services(质量控制)
pyquil还有很多其他特性,您可以在 docs。不过,你也可以继续阅读 下面开始运行你的第一个量子程序!
安装
请注意:pyquil与quilc、qvm和其他库一起构成 称为林sdk。要充分利用pyquil的功能,您需要 另外安装quilc和 QVM。这可以通过遵循他们各自的 自述文件,或从here下载二进制文件。
pyquil可以使用conda
、pip
或直接从源安装。
要从conda forge频道(推荐)将pyquil作为conda
包安装,请执行以下操作:
conda install -c conda-forge pyquil
要将pyquil安装为pypi包,请执行以下操作:
pip install pyquil
最后,如果希望直接从源代码安装pyquil,请执行以下操作 从存储库中复制之后:
pip install -e .
如果选择使用pip
,强烈建议在虚拟环境中安装pyquil。
开始
只需几行代码,我们就可以使用pyquil和forest sdk来模拟bell状态!
frompyquilimportget_qc,Programfrompyquil.gatesimportCNOT,H,MEASUREqvm=get_qc('2q-qvm')p=Program()p+=H(0)p+=CNOT(0,1)ro=p.declare('ro','BIT',2)p+=MEASURE(0,ro[0])p+=MEASURE(1,ro[1])p.wrap_in_numshots_loop(10)qvm.run(p).tolist()
上面程序的输出应该如下所示, 其统计结果与双量子比特纠缠态一致。
[[0, 0],
[1, 1],
[1, 1],
[1, 1],
[1, 1],
[0, 0],
[0, 0],
[1, 1],
[0, 0],
[0, 0]]
在QPU上运行
使用forest sdk,您可以模拟真实量子处理器的操作。如果你 想在我们伯克利实验室的真实qpu上运行,你可以注册一个帐户 在Quantum Cloud Services上!
加入森林社区
加入位于http://slack.rigetti.com的公共林空闲通道。
以下项目由社区成员提供:
- Syntax Highlighting for Quil 由James Weaver
- Web Based Circuit Simulator 由Ravisankar A V
- Quil in Javascript 由Nick Doiron
- Quil in Java 由Victory Omole
对Pyquil的贡献
要更改pyquil本身,请参见DEVELOPMENT.md以获取有关 开发和测试。
引用pyquil和forest
如果你在研究中使用了pyquil、grove或rigetti森林堆栈的其他部分, 请引用如下:
双唇:
@misc{1608.03355,
title={A Practical Quantum Instruction Set Architecture},
author={Smith, Robert S and Curtis, Michael J and Zeng, William J},
journal={arXiv preprint arXiv:1608.03355},
year={2016}
}
文本:
R. Smith, M. J. Curtis and W. J. Zeng, "A Practical Quantum Instruction Set Architecture," (2016),
arXiv:1608.03355 [quant-ph], https://arxiv.org/abs/1608.03355
许可证
pyquil是根据Apache License 2.0授权的。