量子计算Quantum、QPanda 2.0、QuantumKatas、Qbsolv介绍

以下为你介绍的量子计算都可用在Linux系统上:Quantum(微软量子开发工具包)、QPanda 2.0(量子计算 SDK)、QuantumKatas(开源量子编程解决方案)、Qbsolv(量子计算开发工具)。

1、Quantum(微软量子开发工具包)

Quantum,微软量子开发工具包(QDK ),它集成在一个软件栈中,使量子算法能够被编译成量子计算机的原始操作,在 Windows、Linux 或 MacOS 机器上安装量子开发工具包,以便编写自己的量子程序。

量子开发工具包不仅仅是一组用于编写量子程序的工具。它是发现量子计算、进行量子算法研究、为量子设备开发新应用以及其他方面充分利用量子编程的广泛群体的一部分。

量子开发工具包预览提供了一个完整的量子程序开发和仿真环境,其中包含以下组件:

Q# 语言与编译器、Q# 库、局部量子机器模拟器、量子计算机跟踪模拟器、资源估计、Visual Studio 扩展、Visual Studio Code 扩展、IQ#、Python 的 qsharp。

Q# 示例代码:

operation BellTest (count : Int, initial: Result) : (Int, Int) {

mutable numOnes = 0;

using (qubit = Qubit()) {

for (test in 1..count) {

Set (initial, qubit);

let res = M (qubit);

// Count the number of ones we saw:

if (res == One) {

set numOnes += 1;

}

}

Set(Zero, qubit);

}

// Return number of times we saw a |0> and number of times we saw a |1>

return (count-numOnes, numOnes);

}

下载地址:https://github.com/microsoft/Quantum

2、QPanda 2.0(量子计算 SDK)

量子计算Quantum、QPanda 2.0、QuantumKatas、Qbsolv介绍

QPanda 2.0 SDK(Quantum Panda 2.0 Software Development Kit)是由本源量子推出的开源量子程序开发工具包。其支持主流的量子逻辑门操作,并且可对不同平台下的量子程序进行针对性优化,可适配多种量子芯片。QPanda 2.0 使用C++语言作为经典宿主语言,并支持以QRunes和QASM书写的量子语言。

目前,QPanda 2.0支持本地仿真运行模式,最高可支持到32位,它集成了量子虚拟机,封装了主流的量子算法。可在无芯片支持的情况下验证量子应用的可靠性和有效性。加上增加了控制流的概念使得量子程序可进行逻辑判断,从而符合高级语言的编程习惯。

在QPanda里,总共由三个过程组成:初始化生成、编译和运行。

初始化:初始化生成是允许用户设计不同的量子线路来处理对应需要解决的问题。

编译:而编译则是允许用户重写它们以在不同的后端运行(比如模拟器,量子芯片,不同公司的量子芯片等)。

运行:即是收集结果的过程,对于运行后的数据采集,取决于程序本身的设计需求去做相应的存储或者转化,运行的结果,也依赖于解决问题的需要而定。有的问题,可能需要依赖上一个量子程序运行结果才能执行下一个量子程序,诸如此类。

QPanda的设计思想:

考虑到量子计算的蓬勃发展和未来的广泛应用,QPanda 2.0做了很多前瞻性的设计。所以QPanda在设计时做了以下考虑:

1]、全系列兼容:

QPanda 的目标是兼容所有量子计算机。底层量子计算机现在由于正处快速发展期,所以芯片、测控等实现细节都不确定。QPanda简化并规避了诸多量子计算机的物理细节而为用户提供了标准化的接口。通过QPanda构建的量子计算机,本身是通过经典的程序语言对其进行交互,所以它可以被用于任意的云量子计算机,本地量子计算机,或者是实验中的量子原型机。通过QPanda构建的量子应用则不会受到硬件变动的影响。

2]、标准架构:

QPanda提供了标准化的量子程序(Quantum Program)架构。架构者认为,在量子机器(Quantum Machine)中执行的程序和在经典计算机中执行的程序应该彻底区分开来,特别是涉及到经典控制的部分。物理上,芯片的退相干(Decoherence)时间极为短暂,这使得量子程序中的控制流并非在狭义的CPU中完成,而更有可能会采用极低延时的FPGA或其它嵌入式器件作为其测控系统实现。我们认为,量子机器包含了量子芯片与其测控系统,一个量子程序被视作是对一个原子的操作,直到执行完毕才返回结果给经典计算机。 量子程序的架构包含:量子逻辑门、量子线路、量子分支程序和量子循环程序。在QPandaa里这几种元素均以接口的形式被提供,我们提供了一组这些接口的实现类作为基础的数据接口。用户可以重写这些接口并将实现类进行注册,系统会选择用户的类对默认实现类进行覆盖,并且保持其它结构的不变。

3]、标准化量子机器模型:

我们提供了标准化的量子机器模型。通常,量子程序是静态加载到量子机器里,并且量子程序本身也是被静态地构建的。这意味我们可以在量子程序被执行前,对量子程序进行静态检查和分析,获取其中的信息(而非执行它)。能检查的要素例如:量子比特是否越界,经典寄存器是否超过硬件允许的范围等等。而能进行的预处理则包含:任意的量子程序被替换到对应真实芯片的拓扑结构和基本逻辑门集合上(硬件兼容),量子程序的运行时长判断,量子程序的优化等等。量子机器模型还定义了量子程序的标准构建过程。例如从量子比特池中申请空闲比特,从内存中申请空间,将程序加载到量子机器中,或者在已有的量子程序中附加一段新的量子程序。和量子程序的部分类似,量子机器本身的任何架构也是接口化的,用户也可以对接口进行覆写以应对不同硬件的需求。

QPanda项目总共包括:

1]、QPanda SDK:

用于编写量子程序和应用程序的 C++宿主语言工具包。它使用户能够方便连接和执行量子程序。

2]、QRunes:

QRunes是本源量子制定的一套量子计算指令集。

3]、QRunes(QASM) Generator:

QRunes(QASM) Generator 是一个支持以函数调用方式生成QRunes指令的C++库。

4]、QPanda使用文档:

提供了QPanda软件的使用细节,以及一些常见算法的案例。包括算法概要,对应的量子线路图,对应的QPanda代码等,旨在指导用户快速正确的使用QPanda。

通过pip进行安装,适用于Python 3.5-3.7版本:

pip install pyqpanda

下载地址:https://github.com/OriginQ/QPanda-2

3、QuantumKatas(开源量子编程解决方案)

Katas 是一款非常优秀的编程语言学习工具,主要依赖于几个简单的学习原则:主动学习,增量复杂性和反馈。

Quantum Katas 的一系列教程可以自定义进度,旨在同时教授量子计算和 Q# 编程元素。从基础到具有一定挑战性,Katas 提供了一系列关于量子计算主题的任务。每项任务都需要填写代码,从开始的只有一行代码,到后面可能需要填写一大片代码。

到目前为止,该项目主要涵盖以下主题:

基本量子计算门(Basic quantum computing gates):专注于量子计算中使用的主要单量子比特和多量子比特门的任务。

叠加(Superposition):专注于在一个或多个量子比特上准备某个叠加状态的任务。

测量(Measurements):专注于使用测量来区分量子态的任务。

Deutsch–Jozsa 算法(Deutsch–Jozsa algorithm):专注于编写实现经典函数的量子的任务,以及 Bernstein-Vazirani 和 Deutsch-Jozsa 算法。

打开教程:

每个 Kata 都作为独立的 Q# 解决方案和项目对放在自己的目录中。 例如,BasicGates kata 的布局如下:

QuantumKatas/

BasicGates/

README.md                  # 此kata专用的说明。

.vscode/                   # isual Studio Code使用的元数据。

BasicGates.sln             # Visual Studio 2017解决方案文件。

BasicGates.csproj          # 用于生成经典代码和量子代码的项目文件。

Tasks.qs                   # 解决每个任务时将填写的Tasks.qs#Q#源代码。

Tests.qs                   # Q#测试可验证您的解决方案。

TestSuiteRunner.cs         # 用于运行Q#测试的C#源代码。

ReferenceImplementation.qs # Q#包含任务解决方案的源代码。

下载地址:https://github.com/Microsoft/QuantumKatas

4、Qbsolv(量子计算开发工具)

加拿大公司 D-Wave 的量子计算机在学术界备受质疑,尽管如此,该公司正试图通过开源的方法推动量子计算程序开发。D-Wave开源了 Qbsolv 工具,该工具是设计帮助没有量子物理背景的开发者为 D-Wave 的机器开发程序。

qbsolv 是元启发式或分区求解器,通过将其分割成在 D-Wave 系统上或通过经典禁忌求解器求解的块来解决潜在的大型二次非约束二进制优化(QUBO)问题。

安装:

pip install dwave-qbsolv

或者,您可以使用setuptools构建库:

pip install -r python/requirements.txt

pip install cython==0.27

python setup.py install

C:

要构建C库,请使用cmake为您的系统生成一个构建命令,在Linux上,命令如下所示:

mkdir build; cd build

cmake ..

make

要构建命令行界面,请打开cmake选项QBSOLV_BUILD_CMD,cmake的命令行选项为-DQBSOLV_BUILD_CMD = ON,要构建测试,请打开cmake选项QBSOLV_BUILD_TESTS,cmake的命令行选项是-DQBSOLV_BUILD_TESTS=ON。

命令行用法:

qbsolv -i infile [-o outfile] [-m] [-T] [-n] [-S SubMatrix] [-w]

 [-h] [-a algorithm] [-v verbosityLevel] [-V] [-q] [-t seconds]

下载地址:https://github.com/dwavesystems/qbsolv

注明

以上就是量子计算Quantum、QPanda 2.0、QuantumKatas、Qbsolv的介绍内容,这些量子计算都能使用在Linux操作系统中。

栏目相关文章