生成量子指令语言(QUIL)程序的Python库。
qcs的Python项目详细描述
皮奎尔
使用rigetti forest平台轻松生成要执行的quil程序的库。 pyquil是根据Apache 2.0 license授权的。
文档
文档位于http://pyquil.readthedocs.io/en/latest/
安装
您可以将pyquil作为conda包安装(推荐):
conda install -c rigetti pyquil
或者使用pip
:
pip install pyquil
要从源代码安装pyquil,请克隆此存储库,cd
并运行:
pip install -e .
连接到rigetti forest
pyquil可以不受限制地用于构建和操作quil程序。但是,要跑 程序(例如,要获取波函数,获取多热点实验数据),您将需要一个api密钥 对于Rigetti Forest。这将允许您在 rigetti量子虚拟机(qvm)或真实量子处理器(qpu)上。
拿到钥匙后,运行以下命令自动设置配置:
pyquil-config-setup
如果愿意,也可以手动创建配置文件并将其放置在~/.pyquil_config
。
配置文件为ini格式,应包含连接到林所需的所有信息:
[Rigetti Forest]
key: <Rigetti Forest API key>
user_id: <Rigetti User ID>
您可以通过设置PYQUIL_CONFIG
环境变量来更改此文件的位置。
如果在尝试连接到林时遇到错误或警告,请查看完整的 Getting Started Guide
使用rigetti qvm的示例
下面是如何构造bell状态程序以及如何计算其波函数的振幅:
>>>frompyquil.quilimportProgram>>>frompyquil.apiimportQVMConnection>>>frompyquil.gatesimport*>>>qvm=QVMConnection()>>>p=Program(H(0),CNOT(0,1))<pyquil.pyquil.Programobjectat0x101ebfb50>>>>qvm.wavefunction(p).amplitudesarray([0.7071067811865475+0j,0j,0j,0.7071067811865475+0j])
如何进行钟态量子位0和1的模拟多热实验。(当然,
每个测量对都是00
或11
。)
>>>frompyquil.quilimportProgram>>>frompyquil.apiimportQVMConnection>>>frompyquil.gatesimport*>>>qvm=QVMConnection()>>>p=Program()>>>p.inst(H(0),...CNOT(0,1),...MEASURE(0,0),...MEASURE(1,1))<pyquil.pyquil.Programobjectat0x101ebfc50>>>>print(p)H0CNOT01MEASURE0[0]MEASURE1[1]>>>qvm.run(p,[0,1],10)[[0,0],[1,1],[1,1],[0,0],[0,0],[1,1],[0,0],[0,0],[0,0],[0,0]]
社区
加入位于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 Forest Stack的其他部分,请按如下方式引用:
双唇:
@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