用于读、写、编译、模拟量子计算机电路的python工具。

qubiter的Python项目详细描述


Github的Qubiter

教程

下面的Jupyter笔记本是 很好地介绍了Qubiter的基本特性。其他笔记本 在Qubiter的Jupyter笔记本文件夹里 讨论更多高级功能:

安装

避免的最简单的事情 安装过程中的许多麻烦是获得一个帐户 在我们的亚马逊云服务上 www.bayesforge.com。免费一年。 Bayesforge已经有了 安装了所有python和qubiter(尽管您可能需要 使用git更新qubiter)。 bayesforge也可以在腾讯云上使用。

当然,您也可以克隆最新版本或更新 计算机上的旧版本的Qubiter 通过使用git命令从这个repo。

或者,您可以安装一个较旧但更稳定的版本 来自python包的qubiter 管理器pip使用:

pip install qubiter --user

如果您使用的是Jupyter笔记本,请使用:

!pip install qubiter --user

重新启动内核。

库比特是什么?

qubiter项目的目标是最终提供一整套工具,主要用python编写,用于在经典计算机上设计和模拟量子电路。(因此,它将只解决门模型的需要,而不是退火,量子计算机工程师)。我们或其他人可以为退火厂启动类似的项目。

<>一个早期的C++计算机程序,也称为QuiTever(参见http://www.ar-tiste.com/qubiter.html),由Robert R. Tucci编写,只进行量子编译。这个较新的项目包括一个类似于早期qubiter的quantum csd编译器,它基于线性代数(cosine sine)cs分解,但用python编写。但这个新项目也包含了更多的内容。

我们包括了读写量子电路文件的课程。也可用于将具有多个控制的栅极的电路扩展为仅具有CNOT和单量子比特旋转栅极的电路。也用于将电路嵌入较大的电路中。最后但并非最不重要的是,我们还提供了一个模拟器。

模拟器没有经过测试,但是应该非常快,因为它依赖于numpy,这是一个用于c代码的python包装器。

除了用docstrings详细记录外,每个类在最后都有一个main方法,给出了它的使用示例(并对其进行了测试)。此外,我们还收藏了大量不断增加的jupyter笔记本,这些笔记本可以同时教授一些物理知识和如何使用qubiter。

量子电路被保存为文本文件,这使得qc工程师之间的交换变得容易。

量子电路是用ascii(而不是postscript或专有格式)绘制的。我们希望我们能让你相信,量子电路的ascii绘图是出奇的清晰,表达,和方便,真的所有你需要的,另外,不同于其他格式,他们是超级容易编辑。使用其他格式可能需要掌握诸如postscript之类的困难科目才能编写/编辑电路文件。这完全没有必要!

github的quantum fog(参见https://github.com/artiste-qb-net/quantum-fog)是一个由同一个人发起的孪生项目。我们希望量子雾最终会调用qubiter来执行一些任务,比如量子编译和模拟。

github上的所有qubiter,除了quantum_csd_编译器文件夹的内容外,都是根据bsd许可证(3子句版本)授权的,在末尾添加了一个子句,几乎是从apache 2.0许可证一字不差地获取的,授予了额外的专利权。见LICENSE.md

Qubiter的Quantum CSD_编译器文件夹的内容在GPLV2(Linux)许可下获得许可。

贡献者

(按字母顺序)

  • 德坎特,亨宁
  • 特雷吉勒斯,亨利
  • 图奇,罗伯特
  • 尹,陶

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

推荐PyPI第三方库


热门话题
java Hibernate会话/模板返回null   java Bluetooth无法连接到OBD2   smartGWT中的行分隔符的java等价物?   java如何删除可执行路径错误   java使用ICE Tar库对大文件进行Tar   java Spring Boot/JavaFX:添加一个仍然可以访问JPA的关机挂钩(ctrlc)   使用输入流读取java属性文件   如何在Java中迭代HashSet元素时覆盖该元素   内容类型中的javascript set charset=“utf8”   使用cassandra触发器的java   用户界面什么是适合我的GUI(JAVA)的update()方法   Java实例控制   java前置摄像头无法在不同设备上工作   java方法组织。postgresql。jdbc。连接。createClob()尚未实现