前端时间(2022年末),看到了一篇相关的文章,介绍关于2022年的量子模拟器Top63。因此,我对于该文章每个量子模拟器(也可能是量子模拟平台)进行了非常简单的了解,并形成了中文笔记的形式。
但量子模拟器TOP63,有些可能并不是量子模拟器,整体稍微有些杂乱。并且很多优秀量子模拟器都没有,比如国外NVIDA的cuQuantum,以及国内的很多量子模拟器,比如清华的GPU量子模拟器-Qibo、腾讯的TensorCircuit、华为之前的ProjectQ和最近的mqvector、本源量子的QPanda 2等都没有。
后续我可能会出一篇关于量子编译器构建的系列文章,讲述一些目前比较流行的经典计算机上的量子模拟器的构建,并且尝试自己构建一个经典计算机上的量子模拟器。
因此,只适合初学者进行快速的了解部分现有已开发的量子平台(工具),有些工具也可以帮助你了解量子计算。
整体文档偏向为个人笔记风格,整理的有些乱,如果觉得太乱,可以参考原文链接。
PS:个人认为属于二创,如有侵权,请联系删除。
英特尔量子模拟器 (Intel-QS),也称为 qHiPSTER(量子高性能软件测试环境),可在 GitHub 上找到,它是一种经过优化以充分利用多核和多节点架构的量子电路模拟器。它基于量子比特状态的完整表示,但避免了门和其他量子操作在矩阵方面的显式表示。 Intel-QS 使用 MPI(消息传递接口)协议来处理用于存储和操作量子态的分布式资源之间的通信。
Github:https://github.com/intel/intel-qs
2. STAQ (QUANTUM COMPUTER SIMULATOR)
作为 GitHub 存储库提供的另一个模拟器,staq 是一个现代 C++17 库,用于由 softwareQ Inc. 根据 MIT 许可证编写的量子电路的综合、转换、优化和编译。 它既可以通过提供的二进制工具使用,也可以作为仅包含头文件的库使用,可以包含该库以直接支持以 OpenQASM 电路描述语言编写的解析和操作电路。
受 Clang 的启发,staq 旨在直接操作 OpenQASM 语法树,而不是通过中间表示,这使得检索原始源代码变得不可能。 特别是,可以检查和转换 OpenQASM 电路(在大多数情况下)而不会丢失原始源结构。 这使得 staq 非常适合源到源的转换,其中只需要特定的更改。 同样,这允许翻译成其他常见的电路描述语言和库,以密切遵循 OpenQASM 源代码。
Check out the Wiki for more information about the library and included tools.
Github:https://github.com/softwareQinc/staq
3. QUEST (QUANTUM COMPUTER SIMULATOR TOOLKIT)
QuEST 由 Simon Benjamin 的量子技术理论组 (qtechtheory) 和牛津大学电子研究中心 (oerc) 开发。 开发目前由 Tyson Jones 领导。
全态强模拟器,用状态向量表示纯量子态,用密度矩阵表示混合态,在 Z-basis上具有精确的复振幅,Quantum Exact Simulation Toolkit 是一个高性能的量子计算机模拟器工具包,状态向量和密度矩阵。 QuEST 使用多线程、GPU 加速和分布在笔记本电脑、台式机和网络超级计算机上运行很快。 QuEST 正常工作; 它是独立的,不需要安装,编译和运行都很简单。
Github:https://github.com/QuEST-Kit/QuEST
4. SCAFFOLD/SCAFFCC (QUANTUM SIMULATION SOFTWARE)
ScaffCC 是 Scaffold 编程语言的编译器和调度器。 它是使用 LLVM 开源基础架构编写的。 它的目的是为量子计算应用程序编写和分析代码。
ScaffCC 使研究人员能够将用 Scaffold 编写的量子应用程序编译为低级量子组装格式 (QASM)、应用纠错并生成时间和面积指标。 它被编写为可扩展到问题规模,其中量子算法优于经典算法,因此提供了对所涉及的开销和可能的优化的宝贵见解,以便在未来设备技术上的实际实现。
Github:https://github.com/epiqc/ScaffCC
5. QRACK (QUANTUM SIMULATION SOFTWARE)
Qrack 是一个 C++ 量子比特和门模拟器,能够支持任意数量的纠缠量子比特 —— 达到系统限制。 Qrack QInterface 适合嵌入其他项目,包含完整且高性能的标准量子门集合,以及适合寄存器操作和任意旋转的变体。
Qrack 的开发人员维护了一个 ProjectQ 量子计算机编译器的分支,它通常可以使用 Qrack 作为模拟器。 该堆栈还与 SimulaQron 量子网络模拟器兼容。 此外,它还为 Qiskit 维护了一个 QrackProvider。 Qrack 的 ProjectQ 和 Qiskit 集成都支持 PennyLane 堆栈。 (对于 Qiskit,Qiskit 插件的一个分支提供了对“QrackDevice”的支持。)
文档链接:VM6502Q and Qrack官方文档
支持C++到WebAssembly。
Github:https://github.com/unitaryfund/qrack
6. QX SIMULATOR
QX Simulator 是 QuTech 由 Nader Khammmassi 开发的通用量子电路模拟器。 QX 允许量子算法设计者在量子计算机上模拟其量子电路的执行。 该模拟器定义了一种低级量子汇编语言,即 Quantum Code,它允许用户在简单的文本源代码文件中描述他们的电路。 然后将源代码文件用作执行其内容的模拟器的输入。
Quantum Studio 是 QX 的图形界面,它提供语法高亮和电路渲染。 该软件使用 QT 5 库,因此需要在您的系统上安装它。 要启用电路渲染,您还需要安装一个乳胶编译器,例如 TexView,但电路仿真不需要它。
具有用户手册,但是目前还不完善。
文档链接:The QX Simulator官方文档
7. QUANTUM++
作为 GitHub 存储库提供,Quantum++ 是一个现代 C++ 通用量子计算库,仅由模板头文件组成。 Quantum++ 是用标准 C++17 编写的,具有非常低的外部依赖性,仅使用 Eigen 3 线性代数仅标头模板库和 OpenMP 多处理库(如果可用)。
Quantum++不限于量子位系统或特定的量子信息处理任务,能够模拟任意量子过程。 考虑的主要设计因素是易用性、高便携性和高性能。 该库的模拟功能仅受可用物理内存量的限制。 在典型机器(Intel i5 8Gb RAM)上,Quantum++ 可以相当快地成功模拟纯态 25 个量子位或混合态 12 个量子位的演化。
Github: https://github.com/softwareQinc/qpp
8. LANQ(2007年,目前停止更新)
LanQ是量子计算机科学领域的一个研究项目 ——一种旨在支持多进程并行执行的量子编程语言,其语法类似于C语言。
这个项目是在 GNU GPL 许可证下发布的。
文档链接: LanQ - a quantum imperative programming language
9. LIBQUANTUM(2013年停止更新)
libquantum 是一个用于模拟量子力学的 C 库,特别侧重于量子计算。 它最初是一个纯量子计算机模拟器,但最近增加了对一般量子模拟的支持。 基于量子力学的原理,libquantum 提供了一个量子寄存器的实现。 寄存器操作的基本操作,如 Hadamard 门或 Controlled-NOT 门,可通过易于使用的界面获得。 可以对单个量子位或整个量子寄存器进行测量。
除了量子计算,libquantum 还能够计算任意哈密顿量的时间演化,包括时间相关的哈密顿量。 这是通过薛定谔方程的数值积分完成的。 也可以通过精确对角化计算与时间无关的哈密顿量的时间演化。
文档链接:libquantum - Simulation of quantum mechanics
10. QDD (QUANTUM COMPUTER SIMULATOR TOOLKIT)
QDD 是一个 C++ 库,它在 C++ 编程环境的上下文中提供了一组相对直观的量子计算结构。 QDD 的独特之处在于其对量子计算的仿真基于量子状态的二元决策图 (BDD) 表示。 这与 QCL 和 Open QuBit 使用的复数表示法形成对比。
Quantum Fog 是 Artiste 公司开发的另一个量子系统仿真包。 Quantum Fog 类似于 QCL 和 Open QuBit,因为它提供了对量子行为的精确模拟,但不同之处在于它使用贝叶斯网络来表示量子态。 贝叶斯网络因其表现力而被用于量子雾中,因为它们被认为是处理纠缠量子态中通常遇到的条件概率的自然工具。 贝叶斯网络是有效表达条件概率的自然工具,而 BDD 是有效描述布尔函数的自然工具。 使用 BDD 对底层量子态进行建模允许 QDD 对相对较大的量子态进行建模并提供相对较高的性能。 在随 QDD 库 SHORNUF 一起提供的 Shor 分解算法的参考实现中,QDD 可以在具有 64M RAM 的 P200 上大约 8 分钟内分解一个 16 位数字。 但是,BDD 表示的使用也限制了 QDD 作为“数字”量子计算机运行。 相比之下,QCL 和 Open QuBit 支持“模拟”计算机模型。
尽管 QDD 使用的 BDD 表示提供了相对较高程度的可扩展性和性能,在状态表示的大小上几乎呈线性关系,但底层表示的大小依旧与使用的量子比特数成指数关系,因此 QDD 依旧不能用于 有效地分解非常大的数字。 尽管如此,希望通过发布 QDD 的源代码,其他人会受到启发,考虑对库进行其他优化,这可能会带来新的或更好的量子计算建模技术。
QDD 库和程序 SHORNUF 是根据 GPL 许可的免费软件。
具有文档,重要的是具体书籍进行介绍。
文档链接:QDD : A Quantum Computer Emulation Library
11. QSIMS (QUANTUM SIMULATION SOFTWARE)(2005年更新)
qsims 是作为研究可寻址光晶格中的量子计算的工具而开发的。 它是一个通用的量子模拟软件包,能够模拟具有广泛哈密顿量的系统的动力学。 qsims 绝不仅限于光学晶格,还可以适用于许多其他物理系统,或用作教学工具。 qsims 将粒子的空间波函数表示为网格上的离散波函数。 粒子的内部状态可以使用多个网格表示。 可以指定内部状态之间的电位和耦合,并且电位可以依赖于位置和状态。 qsims 使用 Chebychev 多项式展开计算薛定谔传播子 exp[-i H t]。 这样做的好处是,扩展在某个点后有一个指数截止点,允许以相当少的项数获得极高的精度。 波函数的动力学部分是通过将空间波函数傅立叶变换到动量空间来计算的,其中p2很容易计算。
12. QUANTUM COMPUTER LANGUAGE (QCL)(最新2022年,持续更新)
QCL 是一种用于量子计算机的编程语言。 尽管经典计算机科学有许多共同概念,但量子计算依旧被广泛认为是理论物理学广泛领域内的一门特殊学科。 计算机科学界缓慢采用 QC 的一个原因是令人困惑的各种形式主义(狄拉克符号、矩阵、门、运算符等),它们与经典编程语言没有任何相似之处,而且“ 大多数可用文献中的物理术语。
QCL(量子计算语言)试图填补这一空白:QCL 是一种用于量子计算机的高级、独立于体系结构的编程语言,其语法源自 C 或 Pascal 等经典过程语言。 这允许在一种一致的形式主义中完整地实现和模拟量子算法(包括经典组件)。
文档资料:QCL - A Programming Language for Quantum Computers
13. QUBITER (QUANTUM CIRCUIT SIMULATOR)(2007年最后更新)
Qubiter 1.11 是与量子计算机 (QC) 和量子贝叶斯 (QB) 网络有关的免费计算机程序。 目前,Qubiter 仅作为纯 C++ 源代码提供,没有图形用户界面。 在当前版本 1.11 中,Qubiter 将任意酉矩阵作为输入,并返回等效的基本运算序列(QC 运算,如受控非运算和量子位旋转)作为输出。 此类序列通常由量子位电路以图形方式表示。
14. QUCOSI (QUANTUM COMPUTER SIMULATOR)(2011年最后更新)
QuCoSi 是一个用于模拟量子计算机的 C++ 库。 使用的量子位和门是可以轻松检查和修改的纯向量和矩阵。 它的重点在于可读性和易用性。
网站:QuCoSi
代码:QuCoSi Code
15. QUIDDPRO
QuIDDPro 是一种用于通用量子电路仿真的快速、可扩展且易于使用的计算接口。 它使用量子信息决策图 (QuIDD) 数据结构支持状态向量、密度矩阵和相关操作。 包括 Matlab、Octave、QCSim 和 libquantum 在内的软件包也被用于模拟量子电路。 然而,与这些包不同,QuIDDPro 并不总是遭受模拟量子电路所需的矩阵大小的指数膨胀。 结果,我们发现与其他通用仿真方法相比,QuIDDPro 明显更快并且使用更少的内存,用于一些具有十多个量子位的有用电路。
文档链接:QuIDDPro: High-Performance Quantum Circuit Simulation
16. QWALK (QUANTUM CIRCUIT SIMULATOR)(最近更新,2014年)
QWalk 是一个免费的一维和二维晶格量子行走模拟器。 该模拟器可以很容易地在 Linux 或任何其他具有最新 C 编译器的类似操作系统中编译。
文档链接:QWalk: A Quantum Walk Simulator
17. SQCT—SINGLE QUBIT CIRCUIT TOOLKIT(最近更新,2019年)
sqct 是一个软件包,用于使用 Clifford 和 T 门库精确和近似地合成单量子位电路。
Github:https://github.com/vadym-kl/sqct
18. MQT-DDSIM (PREVIOUSLY JKQ-DDSIM)
MQT DDSIM 是一个基于用 C++ 编写的决策图的量子电路模拟器。 QCEC 是慕尼黑工业大学设计自动化主席的经典量子电路仿真工具,是慕尼黑量子工具包(MQT;以前称为 JKQ,由林茨约翰内斯开普勒大学集成电路研究所开发)的一部分 ). 它建立在我们的量子功能表示 (QFR) 和我们的决策图 (DD) 包之上。
Github: https://github.com/cda-tum/ddsim
19. LIQUI|>(2017年最后更新)
LIQUi|> 是一个用于量子计算的软件架构和工具套件。 它包括编程语言、优化和调度算法以及量子模拟器。 LIQUi|> 可用于将以高级程序形式编写的量子算法转换为量子设备的低级机器指令。 LIQUi|> 由微软研究院的量子架构和计算组 (QuArC) 开发。
LIQUi|> 是由 Microsoft Research 的量子架构和计算团队开发的模拟平台,旨在帮助探索量子计算。 LIQUi|> 代表“语言集成量子运算”。量子运算通常称为应用于列状态向量(也称为 ket:|>)的酉算子 (U)。 “i”只是一个常数比例因子,因此是首字母缩写词。 LIQUi|> 包括三个模拟器:
Github: https://github.com/StationQ/Liquid
20. QUANTUM PROGRAMMING STUDIO
Quantum Programming Studio 是一个基于 Web 的图形用户界面,旨在允许用户通过直接在浏览器中模拟或在真实量子计算机上执行来构建量子算法并获得结果。
该电路可以导出为多种量子编程语言/框架,并可以在各种模拟器和量子计算机上执行。 支持的平台包括 Rigetti Forest、IBM Qiskit、Google Cirq 和 TensorFlow Quantum、Microsoft Quantum Development Kit、Amazon Braket 等。
网站:Quantum Programming Studio
21. QUBIT WORKBENCH
来自量子初创公司 Elyah 的 Qubit Workbench 允许用户通过基于 Web 的 IDE 和模拟器、拖放电路构建器和可打印电路的全新 IDE 体验将量子算法设计提升到一个新的水平。 使用免费版 QUBIT WORKBENCH LITE,用户可以测试最多三个量子位的量子计算机程序。 两个付费版本 —— QUANTUM ALGORITHM DESIGNER 和 ENTERPRISE ——提供不同的功能,从模拟大型量子程序和构建函数,到为量子计算机编写更复杂的程序。
22. LINEAR AL
Linear AI 是一种用于量子信息处理的多用途研究、设计和教学工具。 它支持该领域常用的许多数学结构,并带有专为量子信息科学家设计的符号。 Linear Al 的一些功能是基于文本的交互式处理与量子信息科学相关的数学结构、量子电路的图形表示、单向量子计算机的图形表示、一种用于编写函数的编程语言。
代码:Linear Al Files
23. QCAD(2002年开始开发)
QCAD 是一个基于 Windows 的量子计算仿真环境,可帮助用户设计电路并对其进行仿真。 QCAD 使您能够使用完整的 GUI(图形用户界面)环境轻松设计量子电路,并模拟设计的电路并显示结果(量子比特的状态)。
网站链接:QCAD
24. QUANTUM COMPUTER EMULATOR(最后更新2010年)
量子计算机仿真器 (QCE) 是一种软件工具,可模拟量子计算机的各种硬件设计。 QCE 严格按照量子力学定律模拟控制硬件量子处理器运行的物理过程。 QCE 还提供了一个在现实实验条件下调试和执行量子算法的环境。 该软件由图形用户界面 (GUI) 和模拟器本身组成。
网站链接:Home
25. QUANTUM FOG (QUANTUM MECHANICS SIMULATION SOFTWARE)(2015年)
Quantum FogTM(美国专利 5787236)是一款 Mac 应用程序,用于对表现出量子力学行为的物理情况进行建模。 它是一种以图形方式研究和讨论量子测量问题的工具,使用称为量子贝叶斯网络的网络图。 它可以计算单变量和双变量的条件概率分布,并且可以描绘出对物理情况有贡献的每条费曼路径。 它模拟通用量子计算机。
26. SIMQUBIT(2005年)
SimQubit 是一个 GUI 量子电路模拟器,在 Q++ (sourceforge.net/projects/qplusplus) 量子模板之上编写。 它允许编辑量子电路并将它们应用于量子态,并通过多种方式查看输出概率。
27. Q-KIT(2019年之后)
Q-Kit — 或Quantum-Kit — 是一个图形化的量子电路模拟器。 Q-Kit 支持构建和设计量子电路,将量子门操作的效果可视化为量子态的概率分布或布洛赫球体。 Q-Kit 非常易于使用,具有简单的 GUI。 Q-Kit 配备了定制您自己的门并将它们导入电路以及经典位和控件等功能。
网站链接:Q-Kit
支持操作系统也比较多。
28. JQUANTUM—QUANTUM COMPUTER SIMULATOR(2004-2010)
jQuantum 是一个模拟量子计算机的程序。 用户可以用它设计量子电路并让它们运行。 jQuantum 的目标是实现量子算法的开发和演示。 作为许多其他量子计算机模拟器的补充,jQuantum 提供了以灵活且面向视觉的表示形式设计和运行量子算法或量子电路的可能性。
需要java插件,通过java进行编写。
29. QUANSUITE
QuanSuite 是一套免费的 Java 应用程序。 QuanSuite 应用程序编译了一种不同类型的输入演化算子 U_{in} 。 应用程序输出 U_{in} 的量子电路,其中直接指定 U_{in} ,或通过给出 Hamiltonian H 使得 U_{in}=exp(iH) 。
有些应用程序依赖于平台:Clapack 是线性代数子例程的 C 库,可从 www.netlib.org 免费获得。 Java 的所有固定库都很棒,但该语言缺乏某些基本结构,这使得它无法高效地执行繁重的线性代数。 因此,每当 QuanSuite 应用程序需要执行重要的线性代数时,它都会通过称为 JNI(Java 本机接口)的 Java 机制调用 Clapack。 那些调用 Clapack 的应用程序(.jar 文件)要求在同一文件夹中有一个名为 libNativeLinAlg.jnilib 的平台相关文件(JavaNativeLibrary)。
30. QUANTOMATIC(2018年)
Quantomatic 是一个图解证明辅助量子模拟器,这意味着它为使用图解语言进行推理提供机器支持(查看我们的一些论文)。 它允许用户绘制图表并使用图表重写规则构建证明。
网站链接:Quantomatic
31. QUBIT101 (QUANTUM CIRCUIT SIMULATOR)(2013年)
Qubit101 模拟器是一个用户友好的量子电路编辑器和模拟器。 该工具可帮助用户创建、修改和保存量子电路。 与此同时,用户可以模拟其对预定义量子态的影响,逐阶段观察状态的演变,以及可能的测量结果,使用其他量子电路作为门,因此可以轻松创建复杂电路,最后模拟几乎任意数量的量子比特。
网站链接:qMIPS101 Quantum Computing Simulators
32. QUSANN (AND MULTIPLEXOR EXPANDER)(比较老)
QuSAnn v1.2 和 Multiplexor Expander v1.2 是两个免费提供的 Java 应用程序。 (源代码包含在发行版中。)QuSAnn 是一个用于量子模拟退火的“代码生成器”:在用户输入一些参数后,它会输出一个量子电路,用于在量子计算机上执行模拟退火。 量子电路实现了 Wocjan 等人 (arXiv:0804.4259) 的算法,该算法改进了 Somma 等人 (arXiv:0712.1008) 的原始算法。 QuSAnn 生成的量子电路包括一些量子多路复用器。 应用程序 Multiplexor Expander 允许用户用一系列更基本的门(例如乘法控制的 NOT 和量子位旋转)替换这些多路复用器中的每一个。
网站链接:QuSAnn, Multiplexor Expander
33. STRANGE (QUANTUM COMUPER SIMULATOR)(2022年)
Strange 是一个带有 API 和 JavaFX 可视化器链接的量子模拟器,通过传统的 Java 分发渠道(例如 maven central 和 jcenter)分发,因此可以轻松地利用 maven 或 gradle 构建软件。
34. QUANTUM COMPUTER SIMULATOR
量子计算机模拟器是所谓的“理想量子计算机”,这意味着任何和所有量子比特都可以纠缠在一起,并且量子比特不会意外地从叠加中坍塌。 一台真正的量子计算机在哪些量子比特可以纠缠以及叠加状态可以维持多长时间方面存在物理限制。 您在此处编写的代码可能需要稍作修改才能在真正的量子计算机上运行。 该模拟器使用 JavaScript 在您的 Web 浏览器上运行,这意味着您不需要 Web 服务器或某个地方的帐户即可运行它。 您不与其他人共享此模拟器。 这是你的享受。 小心,如果您尝试创建过多的量子位,您的计算机将耗尽内存。
35. QUANTUM-CIRCUIT—QUANTUM CIRCUIT SIMULATOR IMPLEMENTED IN JAVASCRIPT(2020年)
量子电路是一个用 javascript 实现的开源量子电路模拟器。 在浏览器或服务器 (node.js) 中顺利运行 20 多个量子位模拟。 您可以在 javascript 程序中使用它来运行量子模拟。 该电路可以从 OpenQASM 和 Quil 导入。 您可以将电路导出到 OpenQASM、pyQuil、Quil、Qiskit、Cirq、TensorFlow Quantum、QSharp 和 QuEST,因此可用于量子编程语言之间的转换。 电路图可以导出为 SVG 矢量图像。
Github:https://github.com/garrison/jsqis
36. JSQIS: JAVASCRIPT QUANTUM INFORMATION SIMULATOR
jsqis 的核心是一个用 Javascript 编写的量子计算机模拟器。 它允许初始化量子寄存器并通过量子门对其进行操作。 此外,当在浏览器中使用时,jsqis 提供了量子位系统的清晰可视化表示。 这种表示在数学上是精确的,允许人们在不掌握任何数学主题的情况下推理量子计算。 该软件包既用于教学目的,也用于通过实验自学。 它最初是作为 LA Hacker News Meetup 上有关量子计算的演示文稿的视觉辅助工具实现的。
Github:https://github.com/garrison/jsqis(与上面一样)
37. QSWALK.JL(2020年)
QSWalk 为 Julia 编程语言提供了一个包,可以对量子随机游走进行高性能分析。 与现有软件相比,所提供的软件包有两个主要优点。 首先,它可用于描述局部和全局体系中的量子随机游动。 其次,它使用户能够无缝地利用并行计算能力。
38. QUANTUMOPTICS.JL
QuantumOptics.jl 是一个用 Julia 编程语言编写的数值框架,可以轻松模拟各种开放量子系统。 它的灵感来自 MATLAB 的量子光学工具箱和 Python 框架 QuTiP。
39. QUANTUMWALK.JL
QuantumWalk.jl 是 Julia 编程语言的一个包,实现了用于执行量子空间搜索的量子连续和离散行走模型。 其主要目的是通过交叉使用量子模型和应用程序实现来提供通用功能。
40. YAO.JL (QUANTUM SOFTWARE SIMULATOR)(持续更新)
Yao.jl 是一个开源框架,旨在通过软件工具、量子算法设计、量子软件 2.0 和量子计算教育来赋能量子信息研究。
Yao 是一个开源框架,旨在通过软件工具为量子信息研究提供支持。 它的设计考虑了以下几点:
Github:https://github.com/QuantumBFS/Yao.jl
41. QUANTUM
Quantum 是一款免费的 Mathematica 附加量子模拟器,适用于 Dirac Bra-Ket 符号、量子代数、量子计算和海森堡运动方程的 QHD 近似,由蒙特雷科技大学的 José Luis Gómez-Muoz 和 Francisco Delgado 编写。
42. QUANTUMUTILS(2007年)
Mathematica 中的量子信息程序包含一系列函数和其他对象,可用于使用 Mathematica 模拟小型量子电路。 它适用于修补匠:想要使用 Mathematica 设置和修改自己的模拟程序,但没有时间或意愿从头开始开发所有内容的用户。 该文档提供了系统工作原理的描述以及一个简单的示例。
43. QUANTUM INFORMATION PROGRAMS IN MATHEMATICA
Mathematica 中的量子信息程序包含一系列函数和其他对象,可用于使用 Mathematica 模拟小型量子电路。 它适用于修补匠:想要使用 Mathematica 设置和修改自己的模拟程序,但没有时间或意愿从头开始开发所有内容的用户。 该文档提供了系统工作原理的描述以及一个简单的示例。
网站链接:https://quantum.phys.cmu.edu/QPM/
44. QI (QUANTUM COMPUTER SIMULATOR)(2021年)
QI 是一个 GitHub 存储库,是 Mathematica 计算机代数系统的一个包,开发用于支持量子态和操作的符号分析。‘
Github:https://github.com/iitis/qi
45. QINF
qinf 是 Maxima 计算机代数系统的量子信息包,由 Rigetti Computing 的量子软件工程师 John Lapeyre 开发。
网站链接:Qinf
46. M-FUN FOR QC PROGS
M-fun for QC Progs(Matlab Functions — and fun for Quantum Computer Programmers),由 R.R.Tucci 设计,是用于 QC 编程的 Octave/MATLAB m 文件工具箱
47. QETLAB
QETLAB(量子纠缠理论实验室)是一个用于探索量子纠缠理论的 MATLAB 工具箱。 虽然有许多量子信息论工具箱允许用户执行部分转置等基本操作,但不断发现新的测试。 QETLAB 的目标是保持最新,并包含不断增长的可分离性标准、正图和相关的相关函数目录。 此外,QETLAB 旨在处理满矩阵和大型稀疏矩阵,并利用许多基于半定规划的高级技术。
网站链接:QETLAB: A MATLAB Toolbox for Quantum Entanglement.
48. QLIB
QLib 是一个 Matlab 软件包,旨在通过快速有效地构建和探索问题,通过使用可视化形成直觉,通过使用优化排除或验证假设,为 QIT 社区内的广泛受众提供加速研究所需的工具 QLib 目前涵盖了大部分(如果不是全部)“教科书”原语,并为我们提供了丰富的工具集,可以用来推进外场知识和参与“实验理论”。
49. QUBIT4MATLAB (QUANTUM MECHANICS SIMULATION SOFTWARE)
QUBIT4MATLAB 是 Geza Toth 编写的用于量子信息/量子光学的 MATLAB 包。 该程序包有助于根据非相对论量子力学和量子信息论的一些新思想对自旋链、量子位寄存器等进行建模。 特别是,它包含 MATLAB 例程,用于重新排序量子位、计算去除一些量子位后的缩减密度矩阵和部分转置等。大多数例程也适用于量子位。 它还具有处理 GHZ 状态、簇状态、图形状态、Dicke 状态等的例程。
50. http://QUANTUM.NET (QUANTUM SIMULATOR LIBRARY)(2017年)
Quantum.NET 是一个用于操作量子比特和模拟量子电路的库。
Github:https://github.com/phbaudin/quantum-computing
51. QUIRK(2022年)
Quirk 是一种在浏览器中运行的拖放式量子电路模拟器,无需安装、配置或编写脚本。 用于探索和理解小型量子电路的玩具,尤其是当您想快速探索小型量子电路的行为时。
Github链接:https://github.com/Strilanc/Quirk
网站链接:Quirk: Quantum Circuit Simulator
52. QRBGS (QUANTUM RANDOM BIT GENERATOR)
QRBG 量子模拟器的动机是运行各种模拟(在集群/网格环境中)的科学必要性(主要是当地科学界),其结果通常受到所使用的质量(分布、不确定性、熵等)的很大影响 随机数。 由于使用有限状态机(例如今天的计算机)不可能生成真正的随机数,因此科学家们被迫要么使用专门的昂贵硬件数字生成器,要么更频繁地满足于次优解决方案(如伪随机数生成器) .
该服务最初是为了满足科学家对高质量随机数的需求,但现在已经发展成为全球(公共)高质量随机数服务。
53. PYQU
PyQu 是 Python 实现量子算法的扩展模块,是 Python 3 的扩展模块,其主要目标是提供一套完整的数据类型和函数集,以简洁的语法模拟量子计算。 PyQu 是用 C 语言编写的,并广泛使用了 Bjrn Butscher 和 Hendrik Weimer 的 libquantum-1.0.0 库。 然而,PyQu 并不打算只是 libquantum 到 Python 的包装器,而是一种用于量子编程的新的高级语言(当然是 Python 风格)。
网站链接:Code
54. QISKIT
Qiskit 是由 IBM Research 和 Qiskit 社区开发的开源 SDK,用于在脉冲、电路和应用程序模块级别处理量子计算机。 它包括一套全面的量子门和各种预建电路,因此各级用户都可以使用 Qiskit 进行研究和应用开发。
网站链接:qiskit.org
55. QITENSOR(2014年)
qitensor 是一个 python 量子模拟器模块,用于量子信息和映射状态对偶性、矩阵级量子操作,带有标记的组件希尔伯特空间。
网站:qitensor for quantum information in python
56. QUAEC (QUANTUM SIMULATOR TOOL)
QuaEC 是一个用于在 Python 中进行量子纠错和容错的库。 特别是,QuaEC 提供了对操纵 Pauli 和 Clifford 算子的支持,以及每个算子的二元辛表示。 它旨在提供基于稳定代码的纠错协议的简单、自动分析。 例如,可以从预先存在的库中定义一个稳定器代码,并生成一个表示电路的对象,以将数据编码到该代码中。
QuaEC 是一个用于进行量子纠错的库,包括支持高效地操纵 Pauli 和 Clifford 算子。在支持 Python 和 NumPy/SciPy 的任何地方(理想情况下)都支持 QuaEC。
网站链接:QuaEC: Quantum Error Correction Analysis in Python - QuaEC 1.0.1 documentation
Github:https://github.com/cgranade/python-quaec
57. SPARSE_PAULI (QUANTUM PHYSICS SIMULATION SOFTWARE)
使用集合对实现大型、稀疏的 Pauli 算子。 这个量子物理模拟软件包含绝对最少的功能,是极端“物理学家代码”的一个例子。
Github:https://github.com/bcriger/sparse_pauli
58. TOQITO (QUANTUM SIMULATOR LIBRARY)(持续更新)
toqito 包是一个开源 Python 库,用于研究量子信息中的各种对象,即状态、通道和测量。 具体而言,toqito 专注于提供数值工具来研究与纠缠理论、非局域博弈、矩阵分析以及通常与计算机科学相关的量子信息的其他方面有关的问题。 toqito 旨在满足量子信息研究人员的需求,他们需要数值和计算工具来操纵量子态、测量和通道。 它还可以用作增强学生和教师在量子信息相关课程中的体验的工具。
网站链接:toqito - Theory of Quantum Information Toolkit
59. OPENQASM
OpenQASM 是一种用于描述量子电路的命令式编程语言。 它能够使用作为 IBM QISKit 的一部分发布的电路模型、基于测量的模型和近期量子计算实验来描述通用量子计算。
Github:https://github.com/openqasm/openqasm
60. VQS—VISUAL QUANTUM SIMULATOR
VQS(视觉量子模拟器)是一种通用的薛定谔全态量子模拟器,设计为 Scala DSL。
网站链接:Introduction · gmenier/VisualQuantumSimulator Wiki
61. QIO
Quantum IO Monad 是一个用于在 Haskell 中定义量子计算的库。 它可以被认为是 Haskell 中的一种嵌入式语言,并带有用于模拟这些量子计算运行的函数。 该发行版包含许多用 QIO 编写的示例计算,包括 Shor 算法的实现。
62. QUIPPER (QUANTUM GATE SIMULATOR)(2019年)
Quipper 是一种用于量子计算的嵌入式、可扩展的函数式编程语言。 它提供了一种高级电路描述语言 — 这包括电路片段的逐门描述,以及用于组装和操纵电路的强大运算符,一种允许过程性和声明性编程风格混合的语法,以及内置 用于自动合成可逆量子电路的设施,包括来自经典代码的设施。
63. QCHAS (QUANTUM GATE SIMULATOR)(2018年)
qchas 是一个可用于实现量子算法的库。 它包含用 Haskell 编写的量子门和量子比特的定义。
网站链接:qchas
64. PyQPanda(本源量子)
一种功能齐全,运行高效的量子软件开发工具包
QPanda 2是由本源量子开发的开源量子计算框架,它可以用于构建、运行和优化量子算法。
QPanda 2作为本源量子计算系列软件的基础库,为OriginIR、Qurator、量子计算服务提供核心部件。
为了方便用户使用,QPanda 2为用户提供了Python版本的pyQPanda,本使用文档是pyQPanda的 教学文档,如希望学习C++版的QPanda 2,请参考 QPanda使用文档 。
支持全振幅量子虚拟机、全振幅量子虚拟机噪声模拟、含噪声量子虚拟机、单振幅量子虚拟机、部分振幅量子虚拟机、张量网络量子虚拟机、密度矩阵模拟器。
关于经典计算机上的量子模拟器或者说量子平台,目前有许多的软件平台提出。
我认为如果想了解一个怎么构建量子模拟器,需要对目前比较流行的、用的人多的量子模拟器进行学习,其余大部分理论上是差不多的。
PS:稍微吐槽一下,知乎的md导入太多问题了。