生成量子指令语言(QUIL)程序的Python库。

pyquil的Python项目详细描述


pyquil:python中的量子编程

pipeline statusbuild statusdocs statuspypi downloadspypi versionconda-forge versionslack workspace

pyquil是一个用于量子编程的python库,使用Quil, 在Rigetti Computing开发的量子指令语言。 Pyquil提供三个主要功能:

pyquil还有很多其他特性,您可以在 docs。不过,你也可以继续阅读 下面开始运行你的第一个量子程序!

安装

请注意:pyquil与quilc、qvm和其他库一起构成 称为林sdk。要充分利用pyquil的功能,您需要 另外安装quilcQVM。这可以通过遵循他们各自的 自述文件,或从here下载二进制文件。

pyquil可以使用condapip或直接从源安装。

要从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的公共林空闲通道。

以下项目由社区成员提供:

对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授权的。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
Java3D图表JavaGnuplotHybrid   java httpclient异常“org.apache.http.conn.ConnectionPoolTimeoutException:等待连接超时”   java如何使用Drive API连接到Google Drive文件夹   java如何正确组合@PathParams和@RequestBody?   使用JsonParser的java Jackson反序列化正在跳过@context的第一个键值对   java Twitter4j为getCreatedAt和getCountry获取空白或null   java doOnNext()不会被称为Spring Webflux   java Liberty批处理在使用与spring批处理相同的输入参数启动作业时未引发异常(JobInstanceAlreadyExistsException)   api使用WordNet有没有简单的基于Java的词义消歧?   Java和YAML:如何解析多个YAML文档并将它们合并到单个YAML表示?   swing Java:mouseClicked事件不总是触发   从firebase获取Json作为字符串在java中不起作用   java将带有extrastring的意图从活动发送到选项卡片段   Java中的调用方法问题   java是否可以在TestNG dataprovider类中注入变量   java如何在安卓 studio中使列表中的项目可单击并引导到具有特定格式的新页面   java程序在eclipse中运行,但不在终端中运行   java无法让mockito模拟公共类的公共方法