CN111461335A - 基于mpi多进程的含噪声单量子逻辑门实现方法及装置 - Google Patents
基于mpi多进程的含噪声单量子逻辑门实现方法及装置 Download PDFInfo
- Publication number
- CN111461335A CN111461335A CN202010260433.6A CN202010260433A CN111461335A CN 111461335 A CN111461335 A CN 111461335A CN 202010260433 A CN202010260433 A CN 202010260433A CN 111461335 A CN111461335 A CN 111461335A
- Authority
- CN
- China
- Prior art keywords
- quantum
- noise
- state
- quantum state
- operator
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N10/00—Quantum computing, i.e. information processing based on quantum-mechanical phenomena
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Condensed Matter Physics & Semiconductors (AREA)
- Evolutionary Computation (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Computational Mathematics (AREA)
- Artificial Intelligence (AREA)
- Complex Calculations (AREA)
Abstract
本发明属于量子计算领域,具体公开了一种基于MPI多进程的含噪声单量子逻辑门实现方法及装置,包括:配置N个量子比特和2M个基于MPI通信的进程,并将2N个量子态均分存储在2M个进程中,各所述量子比特的编号为比特位n,并设置第一个进程中的第一个量子态的值为1;将单量子逻辑门设置指定噪声模型;通过计算所述指定噪声模型中各噪声算子分别对应的概率,确定需要被执行的噪声算子;基于所述噪声算子和单量子逻辑门,得到变换矩阵,并根据所述变换矩阵,由所述进程进行所述量子态的变换运算。本发明能够提高含噪声单量子逻辑门的计算能力与计算效率。
Description
技术领域
本发明属于量子计算领域,特别是一种基于MPI多进程的含噪声单量子逻辑门实现方法及装置。
背景技术
量子计算是通过量子逻辑门作用在量子比特上实现量子比特逻辑状态改变实现的,量子比特的逻辑状态可能为|0>态、|1>态、|0>态和|1>态的叠加态,这种叠加性使量子计算的计算量随着量子比特的增加是指数增长的。
目前单量子逻辑门在真实的量子计算机中,受制于量子比特自身的物理特性,常常存在不可避免的设计误差,为了能在量子虚拟机中更好的模拟这种误差,需要含噪声的单量子逻辑门。
现有技术条件下,含噪声的单量子逻辑门是基于一个进程的,而单进程的内存有限,随着量子比特数量的增加,其计算能力和计算效率大幅下降,无法模拟更多的量子比特。
基于此,有必要实现一种多进程的含噪声单量子逻辑门的实现方法。
发明内容
本发明的目的是提供一种基于MPI多进程的含噪声单量子逻辑门实现方法及装置,以解决现有技术中的不足,它能够提高基于MPI多进程的含噪声单量子逻辑门的量子计算的计算能力与计算效率。
本申请的一个实施例提供了基于MPI多进程的含噪声单量子逻辑门实现方法,包括:
配置N个量子比特和2M个基于MPI通信的进程,并将2N个量子态均分存储在2M个进程中,各所述量子比特的编号为比特位n,并设置第一个进程中的第一个量子态的值为1;其中:N、M为正整数,0≤n≤N-1,M≥1,N≥M+1;
将单量子逻辑门设置指定噪声模型;
通过计算所述指定噪声模型中各噪声算子分别对应的概率,确定需要被执行的噪声算子;
基于所述噪声算子和单量子逻辑门,得到变换矩阵,并根据所述变换矩阵,由所述进程进行所述量子态的变换运算。
如上所述的基于MPI多进程的含噪声单量子逻辑门实现方法,其中,优选的是,所述通过计算所述指定噪声模型中各噪声算子分别对应的概率,确定需要被执行的噪声算子,包括:
确定各配对量子态的进程分布;
确定所述指定噪声模型的噪声算子个数;
针对每个所述噪声算子,分别计算进程中配对的量子态经所述噪声算子运算后的量子态;
计算经所述噪声算子运算后的量子态的概率,其中,所述概率为经所述噪声算子运算后的量子态的实部和虚部的平方和;
将各个进程对应的概率分布归约到根节点;其中,每一所述进程对应的概率分布为{p1,p1+p2,...},p1为该进程中第一个噪声算子对应的概率,p2为第二个噪声算子对应的概率;所述噪声算子对应的概率为:位于该进程中的由该噪声算子运算后的量子态的概率之和;
根据所述根节点获取的随机数,将所述随机数与归约后的概率分布进行对比,确定需要被执行的噪声算子。
如上所述的基于MPI多进程的含噪声单量子逻辑门实现方法,其中,优选的是,所述确定各配对量子态的进程分布,包括:
计算单量子逻辑门操作的量子比特n的数值与N-M的差值;
若n<N-M,则配对的量子态分布在同一个进程,且在同一个进程中配对的量子态下标偏移量为Q1,其中Q1=2n;
若n≥N-M,则确定两个配对的进程,其中,配对的量子态分布在两个配对的进程中且量子态下标值相同。
如上所述的基于MPI多进程的含噪声单量子逻辑门实现方法,其中,优选的是,所述确定两个配对的进程,包括:
确定当前进程号位S与进程号位偏移量Q2;其中,所述Q2=2n-(N-M);
根据所述操作量子比特的比特位n确定中间值L=S&Q2;
若L>0,则与当前进程号位配对的进程号为S-Q2;
若L=0,则与当前进程号位配对的进程号为S+Q2。
如上所述的基于MPI多进程的含噪声单量子逻辑门实现方法,其中,优选的是,所述基于所述噪声算子和单量子逻辑门,得到变换矩阵,包括:
将所述需要被执行的噪声算子或算子下标,广播到所有进程;
将单量子逻辑门对应的酉矩阵与各进程获得的噪声算子对应的矩阵进行矩阵乘法运算,得到用于执行量子态运算的变换矩阵。
如上所述的基于MPI多进程的含噪声单量子逻辑门实现方法,其中,优选的是,所述根据所述变换矩阵,由所述进程进行所述量子态的变换运算,包括:
执行配对的量子态与所述变换矩阵的运算,得到新的量子态;
计算各个进程中所述新的量子态的概率,其中,所述新的量子态的概率为新的量子态实部和虚部的平方和;
计算所述各个进程中的概率的总和,并基于所述概率的总和计算归一化因子;
将所述归一化因子广播到所述各个进程,并作用到各个所述新的量子态上,得到归一化的新的量子态。
如上所述的基于MPI多进程的含噪声单量子逻辑门实现方法,其中,优选的是,所述指定噪声模型,包括:
比特反转噪声模型、相位反转噪声模型、比特-相位反转噪声模型、去极化噪声模型、幅值阻尼噪声模型和相位阻尼噪声模型中的一种。
本申请的又一实施例提供了一种基于MPI多进程的含噪声单量子逻辑门实现装置,包括:
配置模块,用于配置N个量子比特和2M个基于MPI通信的进程,并将2N个量子态均分存储在2M个进程中,各所述量子比特的编号为比特位n,并设置第一个进程中的第一个量子态的值为1;其中:N、M为正整数,0≤n≤N-1,M≥1,N≥M+1;
设置模块,用于将单量子逻辑门设置指定噪声模型;
确定模块,用于通过计算所述指定噪声模型中各噪声算子分别对应的概率,确定需要被执行的噪声算子;
运算模块,基于所述噪声算子和单量子逻辑门,得到变换矩阵,并根据所述变换矩阵,由所述进程进行所述量子态的变换运算。
本申请的又一实施例提供了一种存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述任一项中所述的方法。
本申请的又一实施例提供了一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一项中所述的方法。
与现有技术相比,本发明首先配置N个量子比特和2M个基于MPI通信的进程,并将2N个量子态均分存储在2M个进程中,并设置第一个进程中的第一个量子态的值为1,再将单量子逻辑门设置指定噪声模型,通过计算确定需要被执行的噪声算子,并基于噪声算子和单量子逻辑门,得到变换矩阵,再根据变换矩阵,进行量子态的变换运算。通过基于MPI多进程的含噪声单量子逻辑门的实现方法,不仅解决了在量子虚拟机中更好的模拟受制于量子比特自身物理特性的设计误差,还克服因单进程内存有限,随着量子比特数量的增加,其计算能力和计算效率大幅下降的不足,提高基于含噪声单量子逻辑门的量子计算的计算能力与计算效率。
附图说明
图1是本申请实施例提供的基于MPI多进程的含噪声单量子逻辑门实现方法的计算机终端的硬件结构框图;
图2是本申请实施例提供的基于MPI多进程的含噪声单量子逻辑门实现方法的流程示意图;
图3是本申请实施例提供的基于MPI多进程的含噪声单量子逻辑门的实现装置的结构示意图。
具体实施方式
下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。
本发明的实施例提供了一种基于MPI多进程的含噪声单量子逻辑门实现方法,用于在量子程序中模拟对量子比特的操作,该方法可以应用于计算机集群。
下面以运行在计算机终端上为例对其进行详细说明。图1是本申请实施例提供的基于MPI多进程的含噪声单量子逻辑门实现方法的计算机终端的硬件结构框图。如图1所示,计算机终端10可以包括一个或多个(图1中仅示出一个)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)和用于存储数据的存储器104,可选地,上述计算机终端还可以包括用于通信功能的传输装置106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述计算机终端的结构造成限定。例如,计算机终端10还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
存储器104可用于存储应用软件的软件程序以及模块,如本申请实施例中的量子计算模拟方法对应的程序指令/模块,处理器102通过运行存储在存储器104内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端10的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(Network Interface Controller,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
需要说明的是,真正的量子计算机是混合结构的,它包含两大部分:一部分是经典计算机,负责执行经典计算与控制;另一部分是量子设备,负责运行量子程序进而实现量子计算。而量子程序是由量子语言如QRunes语言编写的一串能够在量子计算机上运行的指令序列,实现了对量子逻辑门操作的支持,并最终实现量子计算。具体的说,量子程序就是一系列按照一定时序操作量子逻辑门的指令序列。
在实际应用中,因受限于量子设备硬件的发展,通常需要进行量子计算模拟以验证量子算法、量子应用等等。量子计算模拟即借助普通计算机的资源搭建的虚拟架构(即量子虚拟机)实现特定问题对应的量子程序的模拟运行的过程。通常,需要构建特定问题对应的量子程序。本发明实施例所指量子程序,即是经典语言编写的表征量子比特及其演化的程序,其中与量子计算相关的量子比特、量子逻辑门等等均有相应的经典代码表示。
量子线路作为量子程序的一种体现方式,也称量子逻辑电路,是最常用的通用量子计算模型,表示在抽象概念下对于量子比特进行操作的线路,其组成包括量子比特、线路(时间线),以及各种量子逻辑门,最后常需要通过量子测量操作将结果读取出来。
不同于传统电路是用金属线所连接以传递电压信号或电流信号,在量子线路中,线路可看成是由时间所连接,亦即量子比特的状态随着时间自然演化,在这过程中按照哈密顿运算符的指示,一直到遇上逻辑门而被操作。
一个量子程序整体上对应有一条总的量子线路,本发明所述量子程序即指该条总的量子线路,其中,该总的量子线路中的量子比特总数与量子程序的量子比特总数相同。可以理解为:一个量子程序可以由量子线路、针对量子线路中量子比特的测量操作、保存测量结果的寄存器及控制流节点(跳转指令)组成,一条量子线路可以包含几十上百个甚至千上万个量子逻辑门操作。量子程序的执行过程,就是对所有的量子逻辑门按照一定时序执行的过程。需要说明的是,时序即单个量子逻辑门被执行的时间顺序。
需要说明的是,经典计算中,最基本的单元是比特,而最基本的控制模式是逻辑门,可以通过逻辑门的组合来达到控制电路的目的。类似地,处理量子比特的方式就是量子逻辑门。使用量子逻辑门,能够使量子态发生演化,量子逻辑门是构成量子线路的基础,量子逻辑门包括单比特量子逻辑门,如Hadamard门(H门)、Pauli-X门、Pauli-Y门、Pauli-Z门、RX门、RY门、RZ门;多比特量子逻辑门,如CNOT门、CR门、iSWAP门、Toffoli门。量子逻辑门一般使用酉矩阵表示,而酉矩阵不仅是矩阵形式,也是一种操作和变换。
如图2所示,本发明的实施例提供了一种基于MPI多进程的含噪声单量子逻辑门实现方法的流程示意图,包括:
步骤S201:配置N个量子比特和2M个基于MPI通信的进程,并将2N个量子态均分存储在2M个进程中,各所述量子比特的编号为比特位n,并设置第一个进程中的第一个量子态的值为1;其中:N、M为正整数,0≤n≤N-1,M≥1,N≥M+1。
具体的,配置N个量子比特和2M个基于MPI通信的进程个数,并将2N个量子态均分存储在2M个进程中,其中:N、M为正整数,M≥1,N≥M+1,使每个进程内均分分布有量子态。各所述量子比特的编号为比特位n,且0≤n≤N-1,并初始化第一个进程中的第一个量子态的值为1,其余量子态为0,需要说明的是,初始化量子态是指初始化量子态的振幅,考虑到量子态的振幅为复数,在本申请中,把第一个进程中的第一个量子态的值初始化为1是指下标值为0的量子态的振幅初始值初始化为1+0i,其余量子态为0是指把其他量子态的振幅初始值初始化为0+0i。
MPI是一个跨语言的通讯协议,用于编写并行计算机,支持点对点和广播。且MPI是一个信息传递应用程序接口,包括协议和和语义说明,它们指明其如何在各种实现中发挥其特性。MPI作为高性能计算的主要模型,具有高性能、大规模性和可移植性的特点。MPI用于并行进程,通过通信在进程之间进行消息传递。MPI定义了可以被C、C++和Fortran程序调用的函数库,这些函数库里面主要涉及的是两个进程之间通信的函数。MPI可以在Windows和Linux环境中都有相应的库,可以设计相应的算法调用MPI中的API接口,去实现多进程或在集群中运算。配置进程数后MPI运行时相当于多个进程在同时计算,会有效的提高计算效率。MPI的运行方式如下:
mpiexec-n NUMBER./program
其中mpiexec-n为MPI运行时的命令,NUMBER为设置的进程个数,program为运行的程序。
例如:N的值为4,M的值为2,即配置4个量子比特和22个基于MPI多进程的进程个数,并将24个量子态均分存储在22个进程中,即16个量子态均分存储在4个进程中,每个进程中包含4个量子态,初始化第一个进程中的第一个量子态的值为1,其余量子态为0,即第一个进程中的第一个量子态的值初始化为1是指下标值为0的量子态的振幅初始值初始化为1+0i,其余量子态为0是指把其他量子态的振幅初始值初始化为0+0i。需要说明的是,每个进程中的量子态下标均从0开始重新编号。
步骤S202:将单量子逻辑门设置指定噪声模型。
具体的,含噪声量子虚拟机执行量子程序,在每个单量子逻辑门执行之前,需要先查找当前逻辑门被设置的指定噪声模型,一个噪声模型包括多个噪声算子,常见的噪声模型一般包含两个噪声算子,实际上,噪声算子的数学表示形式可以理解为噪声矩阵。其中,指定噪声模型包括比特反转噪声模型、相位反转噪声模型、比特-相位反转噪声模型、去极化噪声模型、幅值阻尼噪声模型和相位阻尼噪声模型中的一种。
步骤S203:通过计算所述指定噪声模型中各噪声算子分别对应的概率,确定需要被执行的噪声算子。
具体的,可以包括:
步骤S2031:确定各配对量子态的进程分布。
步骤S2031-a:计算单量子逻辑门操作的量子比特n的数值与N-M的差值。
通过比较操作量子比特n的数值与N-M的差值来确定配对的量子态分布进程情况。
步骤S2031-b:若n<N-M,则配对的量子态分布在同一个进程,且在同一个进程中配对的量子态下标偏移量为Q1,其中Q1=2n;
具体的,若n<N-M,则配对的量子态分布在同一个进程,且在同一个进程中配对的量子态下标相差2n,且根据所述操作量子比特的比特位n可以确定同一个进程量子态下标偏移量,其中,下标偏移量Q1=2n;
例如,操作量子比特为q1,即n的值为1,N-M的差值为2,判断1<2,则配对的量子态分布在同一个进程,且在同一个进程中配对的量子态下标相差21,即同进程中量子态下标相差2,根据所述操作量子比特的比特位q1可以确定同一个进程量子态下标偏移量,其中,下标偏移量Q1=2n,即Q1=2,其中,同进程4个量子态的下标值分别为0、1、2和3,下标偏移量为2,说明同进程中配对的量子态下标相差2,即下标值为0的量子态和下标值为2的量子态配对;下标值为1的量子态和下标值为3的量子态配对。
步骤S2031-c:若n≥N-M,则确定两个配对的进程,其中,配对的量子态分布在两个配对的进程中且量子态下标值相同。
具体的,若n≥N-M,则配对的量子态分布在不同的进程,且在不同的进程中配对的量子态下标值相同,其中,确定两个配对的进程,可以包括:
步骤a:确定当前进程号位S与进程号位偏移量Q2;其中,所述Q2=2n-(N-M)。
步骤b:根据所述操作量子比特的比特位n确定中间值L=S&Q2;
若L>0,则与当前进程号位配对的进程号为S-Q2;
若L=0,则与当前进程号位配对的进程号为S+Q2。
其中,“&”是C语言中的位操作运算符,称为“位与”符号,按二进制位进行运算。
示例性的,例如操作量子比特为q3,即n的值为3,N-M的差值为2,判断3>2,则配对的量子态分布在不同的进程,且在不同的进程中配对的量子态下标值相同,其中,若想确定具体进程号位的配对情况,需要进一步执行如下步骤:
若确定当前进程号位(S)的值是1,即确定编号为1的进程其所配对的进程号位;再根据操作量子比特的比特位q3确定当前进程号位(S)与进程号位偏移量的中间值(L),其中,进程号位偏移量Q2=23-(4-2),即Q2的值为2,当前进程号位与进程号位偏移量的中间值L=S&Q2,即L=1&2=0,则可判断与当前进程号位配对的进程号为S+Q2,即与当前号位为1配对的进程号为3(1+2=3)。
若确定当前进程号位(S)的值是3,即确定编号为3的进程其所配对的进程号位;再根据操作量子比特的比特位q3确定当前进程号位(S)与进程号位偏移量的中间值(L),其中,进程号位偏移量Q2=23-(4-2),即Q2的值为2,当前进程号位与进程号位偏移量的中间值L=S&Q2,即L=3&2=2>0,则可判断与当前进程号位配对的进程号为S-Q2,即与当前号位为3配对的进程号为1(3-2=1)。
步骤S2032:确定所述指定噪声模型的噪声算子个数。
具体的,首先确定指定噪声模型的类型,再确定该指定噪声模型中包含的噪声算子个数。
例如,指定噪声模型为幅值阻尼噪声模型,该噪声模型包括两个噪声算子,分别为噪声算子K0和K1,其具体的矩阵形式为:
步骤S2033:针对每个所述噪声算子,分别计算进程中配对的量子态经所述噪声算子运算后的量子态。
具体的,针对指定噪声模型中包含的噪声算子,分别计算进程中配对的量子态经每个噪声算子运算后的量子态。
示例性的,配对的量子态a和b与第一个噪声算子K0进行运算后,得到经所述噪声算子运算后的量子态(具体是量子态的振幅值,下同)为:
a1=a*K0[0]+b*K0[1]
b1=b*K0[2]+b*K0[3]
其中,K0[0]、K0[1]、K0[2]、K0[3]表示噪声算子K0的矩阵元素值,具体的,在K0对应的一个2*2的矩阵中,K0[0]表示第一行第一列的元素;K0[1]表示第一行第二列的元素;K0[2]表示第二行第一列的元素;K0[3]表示第二行第二列的元素;用相同的方法可以求经所述噪声算子K1等运算后的量子态,在此不再赘述。
步骤S2034:计算经所述噪声算子运算后的量子态的概率,其中,所述概率为经所述噪声算子运算后的量子态的实部和虚部的平方和。
具体的,计算经所述噪声算子运算后的量子态的概率,例如配对的量子态a和b,经所述噪声算子运算后的量子态a1和b1,则量子态a1和b1的概率分别为a1振幅值的实部和虚部的平方和、b1振幅值的实部和虚部的平方和。
步骤S2035:将各个进程对应的概率分布归约到根节点;其中,每一所述进程对应的概率分布为{p1,p1+p2,...},p1为该进程中第一个噪声算子对应的概率,p2为第二个噪声算子对应的概率;所述噪声算子对应的概率为:位于该进程中的由该噪声算子运算后的量子态的概率之和,也就是经所述噪声算子运算后的所有量子态的实部和虚部的平方和。
具体的,将各个进程对应的概率分布归约到根节点,其中,根节点即是用户选择处理数据的进程,一般选择下标值为0的进程,但也可以其他下标值的进程,在此不作限制。
每一所述进程对应的概率分布为{p1,p1+p2,...},p1为该进程中第一个噪声算子对应的概率,即:
p1=state[0].real2+state[0].imag2+state[1].real2+state[1].imag2+…+state[2N-M-1].real2+state[2N-M-1].imag2
其中,state表示量子态,[]中的数字代表一个进程中量子态的下标值,real代表量子态的实部,imag代表量子态的虚部。用相同的方法可以求经所述第二个噪声算子运算后的量子态的概率p2,以此类推,如果有三个噪声算子,则每一进程对应的概率分布为{p1,p1+p2,p1+p2+p3},在此不再赘述。
示例性的,若M的值为2,N的值为4,则共有16个量子态均分存储于4个进程中,且4个进程的下标值(即进程编号)分别为0、1、2和3,若指定噪声模型包含两个噪声算子,分别为K0和K1,则经上述步骤S2033-S2034后,分别求得各个进程中经噪声算子K0和K1运算后的量子态的概率,如表1所示:
表1:各进程中经噪声算子K0和K1运算后的量子态的概率
进程下标值 | 经K<sub>0</sub>运算后的量子态的概率 | 经K<sub>1</sub>运算后的量子态的概率 |
0 | p01 | p02 |
1 | p11 | p12 |
2 | p21 | p22 |
3 | p31 | p32 |
则上述4个进程中,概率分布为:
进程0:{p01,p01+p02}
进程1:{p11,p11+p12}
进程2:{p21,p21+p22}
进程3:{p31,p31+p32}
将进程0、1、2、3对应的概率分布归约到根节点,例如,选择将进程0、1、2、3对应的概率分布归约到进程0,则归约后的值为{p01+p11+p21+p31,p01+p02+p11+p12+p21+p22+p31+p32},将归约后的值记为{R1,R2}。
步骤S2036:根据所述根节点获取的随机数,将所述随机数与归约后的概率分布进行对比,确定需要被执行的噪声算子。
具体的,为了保证随机数的唯一性,只根据根节点获取随机数,其他进程不进行获取随机数的操作,其中,获取的随机数取值范围在0到1之间。将所述随机数与归约后的概率分布进行对比,确定需要被执行的噪声算子。
示例性的,根据根节点获取的随机数为J,其中0<J<1。
若J≤R1,则确定需要被执行的噪声算子为K0;
若R1<J≤R2,则确定需要被执行的噪声算子为K1;
若存在多个噪声算子及多个归约后的概率,同样按照上述方法进行确定需要被执行的噪声算子,在此不再赘述。
步骤S204:基于所述噪声算子和单量子逻辑门,得到变换矩阵,并根据所述变换矩阵,由所述进程进行所述量子态的变换运算。
具体的,基于所述噪声算子和单量子逻辑门,得到变换矩阵,可以包括:
步骤S2041:将所述需要被执行的噪声算子或算子下标,广播到所有进程。
具体的,将所述需要被执行的噪声算子或者是算子下标,广播到所有进程中,保证所有进程中用于后续运算噪声算子的唯一性。
示例性的,若确定需要被执行的噪声算子为K0,则可以将噪声算子K0广播到所有进程,也可以将噪声算子K0的下标值0广播至所有进程,进程根据噪声算子的下标值确定需要被执行的噪声算子。
步骤S2042:将单量子逻辑门对应的酉矩阵与各进程获得的噪声算子对应的矩阵进行矩阵乘法运算,得到用于执行量子态运算的变换矩阵。
具体的,可以将单量子逻辑门对应的酉矩阵与广播至各进程获得的噪声算子对应的矩阵,即噪声矩阵进行矩阵乘法运算,得到用于执行量子态运算的变换矩阵。
示例性的,若单量子逻辑门为M,广播至各进程获得的噪声算子为K,则单量子逻辑门M对应的酉矩阵与噪声算子K对应的矩阵进行矩阵乘法运算,得到用于执行量子态运算的变换矩阵Mn,即:
Mn=M*K
步骤S2043:执行配对的量子态与所述变换矩阵的运算,得到新的量子态。
具体的,执行配对的量子态与所述变换矩阵Mn的运算,得到新的量子态。
示例性的,配对的量子态a和b与变换矩阵Mn进行运算后,得到新的量子态为:
a1=a*Mn[0]+b*Mn[1]
b1=a*Mn[2]+b*Mn[3]
其中,Mn[0]、Mn[1]、Mn[2]、Mn[3]表示变换矩阵Mn的矩阵元素值。具体的,在一个2*2的矩阵Mn中,Mn[0]表示第一行第一列的元素;Mn[1]表示第一行第二列的元素;Mn[2]表示第二行第一列的元素;Mn[3]表示第二行第二列的元素;用相同的方法可以分别求其他配对的量子态与变换矩阵Mn进行运算后的新量子态,在此不再赘述。
步骤S2044:计算各个进程中所述新的量子态的概率,其中,所述新的量子态的概率为新的量子态实部和虚部的平方和。
本领域技术人员可以理解的是,新的量子态的概率具体为新的量子态振幅的实部和虚部的平方和。
示例性的,配对的量子态a和b,经所述变换矩阵运算后新的量子态为a1和b1,所述新的量子态概率为新的量子态a1的实部和虚部的平方和、b1的实部和虚部的平方和。
步骤S2045:计算所述各个进程中的概率的总和,并基于所述概率的总和计算归一化因子。
具体的,一个进程中对应的概率为:处于该进程中经运算后新的量子态的概率之和,即:
P1=state[0].real2+state[0].imag2+state[1].real2+state[1].imag2+…+state[2N-M-1].real2+state[2N-M-1].imag2
其中,state表示量子态,[]中的数字代表一个进程中量子态的下标值,real代表量子态的实部,imag代表量子态的虚部。用相同的方法可以求其他进程中所述新的量子态的概率P,在此不再赘述。然后,将各个进程分别对应的概率相加,得到概率总和。
示例性的,若M的值为2,N的值为4,则共有16个量子态均分存储于4个进程中,且4个进程的下标值分别为0、1、2和3,则分别计算4个进程的概率,并计算各进程概率总和,如表2所示,具体为:
表2:各进程新的量子态概率
进程下标值 | 各进程新的量子态概率 |
0 | P<sub>1</sub> |
1 | P<sub>2</sub> |
2 | P<sub>3</sub> |
3 | P<sub>4</sub> |
因此,各进程概率总和:PT=P1+P2+P3+P4
将各进程概率总和PT归约到根节点,其中,根节点即是用户选择处理数据的进程,一般选择下标值为0的进程,但也可以其他下标值的进程,在此不作限制。基于所述概率的总和PT计算归一化因子,其中,归一化因子(component)的计算方式为:
步骤S2046:将所述归一化因子广播到所述各个进程,并作用到各个所述新的量子态上,得到归一化的新的量子态。
具体的,将所述归一化因子(component)广播到各个进程,以保证所有进程中用于后续运算的归一化因子的唯一性,便于后续各个进程中得到归一化的新的量子态。其中,各个进程归一化的新的量子态为:
statenew[i]=state[i]*component
其中,state是“态”的意思,[i]中的数字代表每一进程中归一化的新的量子态。用相同的方法可以求其他量子态归一化后的新的量子态,在此不再赘述。
示例性的,若确定所述归一化因子(component)的值为1.34,则可以将归一化因子的值广播到所有进程,用于后续各个进程中得到归一化的新的量子态,即各个进程归一化的新的量子态为:
statenew[i]=state[i]*1.34
与现有技术相比,本发明首先配置N个量子比特和2M个基于MPI通信的进程,并将2N个量子态均分存储在2M个进程中,并设置第一个进程中的第一个量子态的值为1,再将单量子逻辑门设置指定噪声模型,通过计算确定需要被执行的噪声算子,并基于噪声算子和单量子逻辑门,得到变换矩阵,再根据变换矩阵,进行量子态的变换运算。通过基于MPI多进程的含噪声单量子逻辑门的实现方法,不仅解决了在量子虚拟机中更好的模拟受制于量子比特自身物理特性的设计误差,还克服因单进程内存有限,随着量子比特数量的增加,其计算能力和计算效率大幅下降的不足,提高基于含噪声单量子逻辑门的量子计算的计算能力与计算效率。
上述过程完整的展示了通过基于MPI多进程的含噪声单量子逻辑门的实现方法,凡是依照上述方案的原理和方法所进行的多进程含噪声单量子逻辑门的实现方法,均应在上述方案保护范围之内。
实施例1:
下面结合具体的实施例来说明基于MPI多进程的含噪声单量子逻辑门实现方法。具体为:
配置4(即N等于4)个量子比特和22(即M等于2)个基于MPI通信的进程,并将24个量子态均分存储在22个进程中,各所述量子比特的编号为比特位n,并设置第一个进程中的第一个量子态的振幅值为1,则量子态在4个进程中的均分存储情况如表3所示,其中()内数字表示量子态的下标值。
表3:16个量子态在4个进程中的均分存储
设置p=0.2,得到算子的值为:
首先,经过H(qubits[0]),可知n=0,比较操作量子比特n的数值0与N-M(4-2)的差值来确定配对的量子态分布进程情况。
具体的,0<4-2,配对的量子态分布在同一个进程,且在同一个进程中配对的量子态下标偏移量Q1=20=1;对于进程0,其中量子态的配对情况如表4所示:
表4:进程0中量子态的配对情况
量子态下标值 | 配对的量子态下标值 |
(0) | (1) |
(2) | (3) |
需要说明的是,进程1、2、3中量子态的配对情况与进程0的配对关系相同,在此不再赘述。
在进程0中,下标值为0的量子态(振幅为1+0i)和下标值为1的量子态(振幅为0+0i)配对,分别与K0进行运算后,得到运算后的量子态为:
a1=a*K0[0]+a*K0[1]=1*1+0*0=1
下标值为2的量子态(振幅为0+0i)和下标值为3的量子态(振幅为0+0i)配对,分别与K0进行运算后,得到运算后的量子态为:
a11=a*K0[0]+b*K0[1]=0*1+0*0=0
同样的,在进程0中,下标值为0的量子态(振幅为1+0i)和下标值为1的量子态(振幅为0+0i)配对,分别与K1进行运算后,得到运算后的量子态为:
b1=a*K1[2]+b*K1[3]=0*0+0*0=0
下标值为2的量子态(振幅为0+0i)和下标值为3的量子态(振幅为0+0i)配对,分别与K1进行运算后,得到运算后的量子态为:
b11=a*K1[2]+b*K1[3]=0*0+0*0=0
然后,计算进程0中经K0运算后的量子态的概率之和,即:
p1=state[0].real2+state[0].imag2+state[1].real2+state[1].imag2+…+state[24-2-1].real2+state[24-2-1].imag2=1
计算进程0中经K1运算后的量子态的概率之和,即:
p2=state[0].real2+state[0].imag2+state[1].real2+state[1].imag2+…+state[24-2-1].real2+state[24-2-1].imag2=0
可得进程0对应的量子态的概率分布为:{p1,p1+p2}={1,1};采用同样的步骤可以分别求得进程1、2、3的概率分布,在此不再赘述。
综上,各进程经噪声算子运算后对应的量子态的概率分布为:
进程0:{1,1}
进程1:{0,0}
进程2:{0,0}
进程3:{0,0}
将进程0、1、2、3对应的概率分布归约到根节点,例如,选择将进程0、1、2、3对应的概率分布归约到进程0,则归约后的概率分布为{1,1}。
由根节点即进程0获取一随机数假设为0.75,将0.75与归约后的概率分布{1,1}进行对比,即0.75<1,则确定需要被执行的噪声算子为K0,再将K0广播到所有进程,或将噪声算子K0的下标值0广播至所有进程,以将H门对应的酉矩阵与K0对应的噪声矩阵进行矩阵乘法运算,得到用于执行量子态运算的变换矩阵Mn,即:Mn=H*K0
在进程0中,下标值为0的量子态(振幅为1+0i)和下标值为1的量子态(振幅为0+0i)配对,配对的量子态a和b与变换矩阵Mn进行运算后,得到新的量子态为:
a1=a*Mn[0]+b*Mn[1]=1*0.707107+0*0.632456=0.707107
b1=a*Mn[2]+b*Mn[3]=1*0.707107+0*(-0.632456)=0.707107
下标值为2的量子态(振幅为0+0i)和下标值为3的量子态(振幅为0+0i)配对,配对的量子态a和b与变换矩阵Mn进行运算后,得到新的量子态为:
a11=a*Mn[0]+b*Mn[1]=0*0.707107+0*0.632456=0
b11=a*Mn[2]+b*Mn[3]=0*0.707107+0*(-0.632456)=0
同理,将进程1、2、3中配对的量子态与所述变换矩阵Mn的运算,得到新的量子态,原理和方法与上述0进程相同,在此不再赘述,得到新的量子态,如表5所示:
表5:各进程中配对的量子态与变换矩阵Mn运算后新的量子态
接着在进程0中,计算下标值为0的新的量子态(振幅为0.707107+0i)、下标值为1的新的量子态(振幅为0.707107+0i)、下标值为2的新的量子态(振幅为0+0i)和下标值为3的新的量子态(振幅为0+0i)的概率之和,即:
P1=state[0].real2+state[0].imag2+state[1].real2+state[1].imag2+…+state[24-2-1].real2+state[24-2-1].imag2=1
用相同的方法可以求进程1、2和3中新的量子态的概率P2、P3和P4,在此不再赘述,各进程的概率,如表6所示,具体为:
表6:各进程新的量子态概率
计算所有进程的概率之和:PT=P1+P2+P3+P4=1。
将PT归约到根节点,可选择下标值为0的进程,计算归一化因子,其中,归一化因子(component)的计算方式为:
将归一化因子1的值广播到各个进程,并作用到各个新的量子态上,得到归一化的新的量子态。对于进程0中下标为1的量子态,振幅为0.707107+0i,经归一化操作后得到的新的量子态为:
statenew[i]=(0.707107+0i)*1=0.707107+0i
同理,采用上述方式计算各进程中其他量子态经归一化后的新的量子态,得到如下表7所示的归一化后的新的量子态:
表7:各进程中量子态归一化后的新的量子态
与现有技术相比,本发明首先配置N个量子比特和2M个基于MPI通信的进程,并将2N个量子态均分存储在2M个进程中,并设置第一个进程中的第一个量子态的值为1,再将单量子逻辑门设置指定噪声模型,通过计算确定需要被执行的噪声算子,并基于噪声算子和单量子逻辑门,得到变换矩阵,再根据变换矩阵,进行量子态的变换运算。通过基于MPI多进程的含噪声单量子逻辑门的实现方法,不仅解决了在量子虚拟机中更好的模拟受制于量子比特自身物理特性的设计误差,还克服因单进程内存有限,随着量子比特数量的增加,其计算能力和计算效率大幅下降的不足,提高基于含噪声单量子逻辑门的量子计算的计算能力与计算效率。
实施例2:
为了完整展示基于MPI多进程的含噪声单量子逻辑门实现方法,接上述实施例1,实施例1经过H(qubits[0]),展示了配对的量子态分布在同一进程时情况,实施例2在实施例1的基础上再经过H(qubits[3]),展示配对的量子态分布在不同进程时的情况。
配置4(即N等于4)个量子比特和22(即M等于2)个基于MPI通信的进程,并将24个量子态均分存储在22个进程中,各所述量子比特的编号为比特位n,经H(qubits[0])后,各进程中量子态分布情况如表8所示:
表8:4个进程中16个量子态的初始分布
与实施例1相同,单量子逻辑门对应的矩阵为在本实施例,继续以H门为例,H门对应的矩阵为即 设置H门的指定噪声模型为幅值阻尼噪声模型,该噪声模型包括两个噪声算子,分别为噪声算子K0和K1,其具体的矩阵形式为:
设置p=0.2,得到算子的值为:
经过H(qubits[3]),可知n=3,比较操作量子比特n的数值3与N-M(4-2)的差值来确定配对的量子态分布进程情况。
具体的,3>4-2,配对的量子态分布在不同的进程,且在不同的进程中配对的量子态下标值相同,其中,若想确定具体进程号位的配对情况,需要进一步执行如下步骤:
若确定当前进程号位(S)的值是1,即确定编号为1的进程其所配对的进程号位;再根据操作量子比特的比特位q3确定当前进程号位(S)与进程号位偏移量的中间值(L),其中,进程号位偏移量Q2=23-(4-2),即Q2的值为2,当前进程号位与进程号位偏移量的中间值L=S&Q2,即L=1&2=0,则可判断与当前进程号位配对的进程号为S+Q2,即与当前号位为1配对的进程号为3(1+2=3)。
若确定当前进程号位(S)的值是2,即确定编号为2的进程其所配对的进程号位;再根据操作量子比特的比特位q3确定当前进程号位(S)与进程号位偏移量的中间值(L),其中,进程号位偏移量Q2=23-(4-2),即Q2的值为2,当前进程号位与进程号位偏移量的中间值L=S&Q2,即L=2&2=2>0,则可判断与当前进程号位配对的进程号为S-Q2,即与当前号位为2配对的进程号为0(2-2=0)。
因此,进程0与进程2配对,进程1与进程3配对,其中,进程0与进程2、进程1与进程3配对的量子态下标值相同。
进程0与进程2配对,则进程0下标值为0的量子态(振幅为0.707107+0i)和进程2下标值为0的量子态(振幅为0+0i)配对;进程0下标值为1的量子态(振幅为0.707107+0i)和进程2下标值为1的量子态(振幅为0+0i)配对;进程0下标值为2的量子态(振幅为0+0i)和进程2下标值为2的量子态(振幅为0+0i)配对;进程0下标值为3的量子态(振幅为0+0i)和进程2下标值为3的量子态(振幅为0+0i)配对;其中,进程0下标值为0的量子态(振幅为0.707107+0i)和进程2下标值为0的量子态(振幅为0+0i)分别与K0进行运算后,得到运算后的量子态为:
a1=a*K0[0]+b*K0[1]=0.707107*1+0*0=0.707107
进程0下标值为1的量子态(振幅为0.707107+0i)和进程2下标值为1的量子态(振幅为0+0i)分别与K0进行运算后,得到运算后的量子态为:
a11=a*K0[0]+b*K0[1]=0.707107*1+0*0=0.707107
再用同样的原理和方法计算其他配对的量子态,得到经K0运算后的量子态,如表9所示:
表9:经第一个噪声算子K0运算后的量子态
同理,进程0与进程2配对,其中,进程0下标值为0的量子态(振幅为0.707107+0i)和进程2下标值为0的量子态(振幅为0+0i)分别与K1进行运算后,得到运算后的量子态为:
b1=a*K1[2]+b*K1[3]=0.707107*0+0*0=0
进程0下标值为1的量子态(振幅为0.707107+0i)和进程2下标值为1的量子态(振幅为0+0i)分别与K1进行运算后,得到运算后的量子态为:
b11=a*K1[2]+b*K1[3]=0.707107*0+0*0=0
再用同样的原理和方法计算其他配对的量子态,得到经K1运算后的量子态,如表10所示:
表10:经第二个噪声算子K1运算后的量子态
然后,计算进程0中经K0运算后的量子态概率之和,即:
p1=state[0].real2+state[0].imag2+state[1].real2+state[1].imag2+…+state[24-2-1].real2+state[24-2-1].imag2=1
计算进程0中经K1运算后的量子态概率之和,即:
p2=state[0].real2+state[0].imag2+state[1].real2+state[1].imag2+…+state[24-2-1].real2+state[24-2-1].imag2=0
可得进程0中对应的量子态的概率分布为:{p1,p1+p2}={1,1};采用同样的步骤可以分别求得进程1、2、3的概率分布,在此不再赘述。
综上,各进程经噪声算子运算后的量子态的概率分布为:
进程0:{1,1}
进程1:{0,0}
进程2:{0,0}
进程3:{0,0}
将进程0、1、2、3对应的概率分布归约到根节点,例如,选择将进程0、1、2、3对应的概率分布归约到进程0,则归约后的概率分布为{1,1}。
由根节点即进程0获取一随机数假设为0.75,将0.75与归约后的概率分布{1,1}进行对比,即0.75<1,则确定需要被执行的噪声算子为K0,再将K0广播到所有进程,或将噪声算子K0的下标值0广播至所有进程,以将H门对应的酉矩阵与K0对应的噪声矩阵进行矩阵乘法运算,得到用于执行量子态运算的变换矩阵Mn,即:
Mn=H*K0
进程0下标值为0的量子态(振幅为0.707107+0i)和进程2下标值为0的量子态(振幅为0+0i)分别与变换矩阵Mn进行运算后,得到新的量子态为:
a1=a*Mn[0]+b*Mn[1]=0.707107*0.707107+0*0.632456=0.5
b1=a*Mn[2]+b*Mn[3]=0.707107*0.707107+0*(-0.632456)=0.5
进程0下标值为1的量子态(振幅为0.707107+0i)和进程2下标值为1的量子态(振幅为0+0i)分别与变换矩阵Mn进行运算后,得到新的量子态为:
a11=a*Mn[0]+b*Mn[1]=0.707107*0.707107+0*0.632456=0.5
b11=a*Mn[2]+b*Mn[3]=0.707107*0.707107+0*(-0.632456)=0.5
同理,将进程1和3中配对的量子态与所述变换矩阵Mn的运算,得到新的量子态,原理和方法与上述配对的进程0和2相同,在此不再赘述,得到新的量子态,如表11所示:
表11:各进程中配对的量子态与变换矩阵Mn的运算后新的量子态
接着在进程0中,计算下标值为0的新的量子态(振幅为0.5+0i)、下标值为1的新的量子态(振幅为0.5+0i)、下标值为2的新的量子态(振幅为0+0i)和下标值为3的新的量子态(振幅为0+0i)的概率之和,即:
P1=state[0].real2+state[0].imag2+state[1].real2+state[1].imag2+…+state[24-2-1].real2+state[24-2-1].imag2=0.5
用相同的方法可以求进程1、2和3中新的量子态的概率P2、P3和P4,在此不再赘述。
各进程的概率,如表12所示,具体为:
表12:各进程新的量子态概率
进程下标值 | 各进程新的量子态概率 |
0 | P<sub>1</sub>=0.5 |
1 | P<sub>2</sub>=0 |
2 | P<sub>3</sub>=0.5 |
3 | P<sub>4</sub>=0 |
计算所有进程概率之和:PT=P1+P2+P3+P4=1。
将PT归约到根节点,可选择下标值为0的进程,计算归一化因子,其中,归一化因子(component)的计算方式为:
将归一化因子1的值广播到各个进程,并作用到各个新的量子态上,得到归一化的新的量子态。对于进程0中下标为1的量子态,振幅为0.5+0i,经归一化操作后得到的新的量子态为:
statenew[i]=(0.5+0i)*1=0.5+0i
同理,采用上述方式计算各进程中其他量子态经归一化后的新的量子态,得到如表13所示的归一化后的新的量子态:
表13:各进程中量子态归一化后的新的量子态
与现有技术相比,本发明首先配置N个量子比特和2M个基于MPI通信的进程,并将2N个量子态均分存储在2M个进程中,并设置第一个进程中的第一个量子态的值为1,再将单量子逻辑门设置指定噪声模型,通过计算确定需要被执行的噪声算子,并基于噪声算子和单量子逻辑门,得到变换矩阵,再根据变换矩阵,进行量子态的变换运算。通过基于MPI多进程的含噪声单量子逻辑门的实现方法,不仅解决了在量子虚拟机中更好的模拟受制于量子比特自身物理特性的设计误差,还克服因单进程内存有限,随着量子比特数量的增加,其计算能力和计算效率大幅下降的不足,提高基于含噪声单量子逻辑门的量子计算的计算能力与计算效率。
参见图3,图3是本发明实施例提供的一种基于MPI多进程的含噪声单量子逻辑门的实现装置的结构示意图,与图2所示的流程相对应,可以包括:
配置模块S301,用于配置N个量子比特和2M个基于MPI通信的进程,并将2N个量子态均分存储在2M个进程中,各所述量子比特的编号为比特位n,并设置第一个进程中的第一个量子态的值为1;其中:N、M为正整数,0≤n≤N-1,M≥1,N≥M+1;
设置模块S302,用于将单量子逻辑门设置指定噪声模型;
确定模块S303,用于通过计算所述指定噪声模型中各噪声算子分别对应的概率,确定需要被执行的噪声算子;
运算模块S304,基于所述噪声算子和单量子逻辑门,得到变换矩阵,并根据所述变换矩阵,由所述进程进行所述量子态的变换运算。
本发明实施例提供一种存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
具体的,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:
S201:配置N个量子比特和2M个基于MPI通信的进程,并将2N个量子态均分存储在2M个进程中,各所述量子比特的编号为比特位n,并设置第一个进程中的第一个量子态的值为1;其中:N、M为正整数,0≤n≤N-1,M≥1,N≥M+1。
S202:将单量子逻辑门设置指定噪声模型。
S203:通过计算所述指定噪声模型中各噪声算子分别对应的概率,确定需要被执行的噪声算子。
S204:基于所述噪声算子和单量子逻辑门,得到变换矩阵,并根据所述变换矩阵,由所述进程进行所述量子态的变换运算。
具体的,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(Read-Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
与现有技术相比,本发明首先配置N个量子比特和2M个基于MPI通信的进程,并将2N个量子态均分存储在2M个进程中,并设置第一个进程中的第一个量子态的值为1,再将单量子逻辑门设置指定噪声模型,通过计算确定需要被执行的噪声算子,并基于噪声算子和单量子逻辑门,得到变换矩阵,再根据变换矩阵,进行量子态的变换运算。通过基于MPI多进程的含噪声单量子逻辑门的实现方法,不仅解决了在量子虚拟机中更好的模拟受制于量子比特自身物理特性的设计误差,还克服因单进程内存有限,随着量子比特数量的增加,其计算能力和计算效率大幅下降的不足,提高基于含噪声单量子逻辑门的量子计算的计算能力与计算效率。
本发明实施例还提供一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一项方法实施例中的步骤。
具体的,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
具体的,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
S201:配置N个量子比特和2M个基于MPI通信的进程,并将2N个量子态均分存储在2M个进程中,各所述量子比特的编号为比特位n,并设置第一个进程中的第一个量子态的值为1;其中:N、M为正整数,0≤n≤N-1,M≥1,N≥M+1。
S202:将单量子逻辑门设置指定噪声模型。
S203:通过计算所述指定噪声模型中各噪声算子分别对应的概率,确定需要被执行的噪声算子。
S204:基于所述噪声算子和单量子逻辑门,得到变换矩阵,并根据所述变换矩阵,由所述进程进行所述量子态的变换运算。
与现有技术相比,本发明首先配置N个量子比特和2M个基于MPI通信的进程,并将2N个量子态均分存储在2M个进程中,并设置第一个进程中的第一个量子态的值为1,再将单量子逻辑门设置指定噪声模型,通过计算确定需要被执行的噪声算子,并基于噪声算子和单量子逻辑门,得到变换矩阵,再根据变换矩阵,进行量子态的变换运算。通过基于MPI多进程的含噪声单量子逻辑门的实现方法,不仅解决了在量子虚拟机中更好的模拟受制于量子比特自身物理特性的设计误差,还克服因单进程内存有限,随着量子比特数量的增加,其计算能力和计算效率大幅下降的不足,提高基于含噪声单量子逻辑门的量子计算的计算能力与计算效率。
以上依据图式所示的实施例详细说明了本发明的构造、特征及作用效果,以上所述仅为本发明的较佳实施例,但本发明不以图面所示限定实施范围,凡是依照本发明的构想所作的改变,或修改为等同变化的等效实施例,仍未超出说明书与图示所涵盖的精神时,均应在本发明的保护范围内。
Claims (10)
1.一种基于MPI多进程的含噪声单量子逻辑门实现方法,其特征在于,包括:
配置N个量子比特和2M个基于MPI通信的进程,并将2N个量子态均分存储在2M个进程中,各所述量子比特的编号为比特位n,并设置第一个进程中的第一个量子态的值为1;其中:N、M为正整数,0≤n≤N-1,M≥1,N≥M+1;
将单量子逻辑门设置指定噪声模型;
通过计算所述指定噪声模型中各噪声算子分别对应的概率,确定需要被执行的噪声算子;
基于所述噪声算子和单量子逻辑门,得到变换矩阵,并根据所述变换矩阵,由所述进程进行所述量子态的变换运算。
2.根据权利要求1所述的方法,其特征在于,所述通过计算所述指定噪声模型中各噪声算子分别对应的概率,确定需要被执行的噪声算子,包括:
确定各配对量子态的进程分布;
确定所述指定噪声模型的噪声算子个数;
针对每个所述噪声算子,分别计算进程中配对的量子态经所述噪声算子运算后的量子态;
计算经所述噪声算子运算后的量子态的概率,其中,所述概率为经所述噪声算子运算后的量子态的实部和虚部的平方和;
将各个进程对应的概率分布归约到根节点;其中,每一所述进程对应的概率分布为{p1,p1+p2,...},p1为该进程中第一个噪声算子对应的概率,p2为第二个噪声算子对应的概率;所述噪声算子对应的概率为:位于该进程中的由该噪声算子运算后的量子态的概率之和;
根据所述根节点获取的随机数,将所述随机数与归约后的概率分布进行对比,确定需要被执行的噪声算子。
3.根据权利要求2所述的方法,其特征在于,所述确定各配对量子态的进程分布,包括:
计算单量子逻辑门操作的量子比特n的数值与N-M的差值;
若n<N-M,则配对的量子态分布在同一个进程,且在同一个进程中配对的量子态下标偏移量为Q1,其中Q1=2n;
若n≥N-M,则确定两个配对的进程,其中,配对的量子态分布在两个配对的进程中且量子态下标值相同。
4.根据权利要求3所述的方法,其特征在于,所述确定两个配对的进程,包括:
确定当前进程号位S与进程号位偏移量Q2;其中,所述Q2=2n-(N-M);
根据所述操作量子比特的比特位n确定中间值L=S&Q2;
若L>0,则与当前进程号位配对的进程号为S-Q2;
若L=0,则与当前进程号位配对的进程号为S+Q2。
5.根据权利要求1所述的方法,其特征在于,所述基于所述噪声算子和单量子逻辑门,得到变换矩阵,包括:
将所述需要被执行的噪声算子或算子下标,广播到所有进程;
将单量子逻辑门对应的酉矩阵与各进程获得的噪声算子对应的矩阵进行矩阵乘法运算,得到用于执行量子态运算的变换矩阵。
6.根据权利要求5所述的方法,其特征在于,所述根据所述变换矩阵,由所述进程进行所述量子态的变换运算,包括:
执行配对的量子态与所述变换矩阵的运算,得到新的量子态;
计算各个进程中所述新的量子态的概率,其中,所述新的量子态的概率为新的量子态实部和虚部的平方和;
计算所述各个进程中的概率的总和,并基于所述概率的总和计算归一化因子;
将所述归一化因子广播到所述各个进程,并作用到各个所述新的量子态上,得到归一化的新的量子态。
7.根据权利要求1所述的方法,其特征在于,所述指定噪声模型,包括:
比特反转噪声模型、相位反转噪声模型、比特-相位反转噪声模型、去极化噪声模型、幅值阻尼噪声模型和相位阻尼噪声模型中的一种。
8.一种基于MPI多进程的含噪声单量子逻辑门实现装置,其特征在于,包括:
配置模块,用于配置N个量子比特和2M个基于MPI通信的进程,并将2N个量子态均分存储在2M个进程中,各所述量子比特的编号为比特位n,并设置第一个进程中的第一个量子态的值为1;其中:N、M为正整数,0≤n≤N-1,M≥1,N≥M+1;
设置模块,用于将单量子逻辑门设置指定噪声模型;
确定模块,用于通过计算所述指定噪声模型中各噪声算子分别对应的概率,确定需要被执行的噪声算子;
运算模块,基于所述噪声算子和单量子逻辑门,得到变换矩阵,并根据所述变换矩阵,由所述进程进行所述量子态的变换运算。
9.一种存储介质,其特征在于,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行所述权利要求1至7任一项中所述的方法。
10.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行所述权利要求1至7任一项中所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010260433.6A CN111461335B (zh) | 2020-04-03 | 2020-04-03 | 基于mpi多进程的含噪声单量子逻辑门实现方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010260433.6A CN111461335B (zh) | 2020-04-03 | 2020-04-03 | 基于mpi多进程的含噪声单量子逻辑门实现方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111461335A true CN111461335A (zh) | 2020-07-28 |
CN111461335B CN111461335B (zh) | 2023-12-15 |
Family
ID=71678931
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010260433.6A Active CN111461335B (zh) | 2020-04-03 | 2020-04-03 | 基于mpi多进程的含噪声单量子逻辑门实现方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111461335B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112529194A (zh) * | 2020-12-07 | 2021-03-19 | 北京百度网讯科技有限公司 | 消除量子噪声的方法及装置、计算机设备、介质和产品 |
CN112906898A (zh) * | 2021-03-10 | 2021-06-04 | 清华大学 | 一种量子噪音确定和量子态估计方法 |
CN114091363A (zh) * | 2020-08-04 | 2022-02-25 | 合肥本源量子计算科技有限责任公司 | 基于量子算法的计算流体动力学模拟方法、装置及设备 |
TWI757694B (zh) * | 2020-02-21 | 2022-03-11 | 國立政治大學 | 基於量子運算的真亂數產生方法 |
CN114565101A (zh) * | 2022-03-21 | 2022-05-31 | 苏州浪潮智能科技有限公司 | 含噪声的量子计算仿真方法、装置、设备及介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170308803A1 (en) * | 2015-11-20 | 2017-10-26 | Joel J. Wallman | Randomized Compiling for Quantum Computation |
CN109213603A (zh) * | 2018-05-31 | 2019-01-15 | 合肥本源量子计算科技有限责任公司 | 一种用于对接量子计算机与用户的云平台及平台运行方法 |
CN109993309A (zh) * | 2019-04-09 | 2019-07-09 | 合肥本源量子计算科技有限责任公司 | 一种基于mpi多进程的双量子逻辑门实现方法 |
CN110020727A (zh) * | 2019-04-09 | 2019-07-16 | 合肥本源量子计算科技有限责任公司 | 一种基于mpi多进程的单量子逻辑门实现方法 |
CN110188885A (zh) * | 2019-06-28 | 2019-08-30 | 合肥本源量子计算科技有限责任公司 | 一种量子计算模拟方法、装置、存储介质和电子装置 |
CN110826719A (zh) * | 2019-10-14 | 2020-02-21 | 合肥本源量子计算科技有限责任公司 | 一种量子程序的处理方法、装置、存储介质和电子装置 |
WO2020053054A1 (en) * | 2018-09-11 | 2020-03-19 | International Business Machines Corporation | Calculating excited state properties of a molecular system using a hybrid classical-quantum computing system |
-
2020
- 2020-04-03 CN CN202010260433.6A patent/CN111461335B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170308803A1 (en) * | 2015-11-20 | 2017-10-26 | Joel J. Wallman | Randomized Compiling for Quantum Computation |
CN109213603A (zh) * | 2018-05-31 | 2019-01-15 | 合肥本源量子计算科技有限责任公司 | 一种用于对接量子计算机与用户的云平台及平台运行方法 |
WO2020053054A1 (en) * | 2018-09-11 | 2020-03-19 | International Business Machines Corporation | Calculating excited state properties of a molecular system using a hybrid classical-quantum computing system |
CN109993309A (zh) * | 2019-04-09 | 2019-07-09 | 合肥本源量子计算科技有限责任公司 | 一种基于mpi多进程的双量子逻辑门实现方法 |
CN110020727A (zh) * | 2019-04-09 | 2019-07-16 | 合肥本源量子计算科技有限责任公司 | 一种基于mpi多进程的单量子逻辑门实现方法 |
CN110188885A (zh) * | 2019-06-28 | 2019-08-30 | 合肥本源量子计算科技有限责任公司 | 一种量子计算模拟方法、装置、存储介质和电子装置 |
CN110826719A (zh) * | 2019-10-14 | 2020-02-21 | 合肥本源量子计算科技有限责任公司 | 一种量子程序的处理方法、装置、存储介质和电子装置 |
Non-Patent Citations (2)
Title |
---|
苏晓琴;王金来;聂合贤;辛俊丽;: "量子计算与量子逻辑门" * |
陈皇卿;王剑;张权;: "一种新的量子噪声信道仿真算法" * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI757694B (zh) * | 2020-02-21 | 2022-03-11 | 國立政治大學 | 基於量子運算的真亂數產生方法 |
CN114091363A (zh) * | 2020-08-04 | 2022-02-25 | 合肥本源量子计算科技有限责任公司 | 基于量子算法的计算流体动力学模拟方法、装置及设备 |
CN114091363B (zh) * | 2020-08-04 | 2023-08-08 | 合肥本源量子计算科技有限责任公司 | 基于量子算法的计算流体动力学模拟方法、装置及设备 |
CN112529194A (zh) * | 2020-12-07 | 2021-03-19 | 北京百度网讯科技有限公司 | 消除量子噪声的方法及装置、计算机设备、介质和产品 |
CN112529194B (zh) * | 2020-12-07 | 2021-09-03 | 北京百度网讯科技有限公司 | 消除量子噪声的方法及装置、计算机设备、介质和产品 |
CN112906898A (zh) * | 2021-03-10 | 2021-06-04 | 清华大学 | 一种量子噪音确定和量子态估计方法 |
CN114565101A (zh) * | 2022-03-21 | 2022-05-31 | 苏州浪潮智能科技有限公司 | 含噪声的量子计算仿真方法、装置、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111461335B (zh) | 2023-12-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111461335B (zh) | 基于mpi多进程的含噪声单量子逻辑门实现方法及装置 | |
CN112633508B (zh) | 一种量子线路的生成方法、装置、存储介质及电子装置 | |
CN114764549B (zh) | 基于矩阵乘积态的量子线路模拟计算方法、装置 | |
CN113850389B (zh) | 一种量子线路的构建方法及装置 | |
CN114819163B (zh) | 量子生成对抗网络的训练方法、装置、介质及电子装置 | |
CN113222153B (zh) | 一种量子态的模拟方法、装置、存储介质和电子装置 | |
CN111461336B (zh) | 基于mpi多进程的含噪声双量子逻辑门实现方法及装置 | |
CN115879562B (zh) | 一种量子程序初始映射的确定方法、装置及量子计算机 | |
CN114511094B (zh) | 一种量子算法的优化方法、装置、存储介质与电子装置 | |
CN117709415A (zh) | 一种量子神经网络模型的优化方法及装置 | |
CN113222151B (zh) | 一种量子态的变换方法及装置 | |
CN114819168A (zh) | 一种矩阵特征值的量子比较方法及装置 | |
CN114692880A (zh) | 一种量子线路中量子态振幅的模拟方法及装置 | |
CN113222157A (zh) | 一种量子模拟方法、装置、电子装置及存储介质 | |
US11983606B2 (en) | Method and device for constructing quantum circuit of QRAM architecture, and method and device for parsing quantum address data | |
CN116822643A (zh) | 一种量子态的制备方法及装置 | |
CN114881238A (zh) | 量子鉴别器的构造方法、装置、介质及电子装置 | |
CN116933879A (zh) | 一种量子态的确定方法及装置 | |
CN115907024A (zh) | 一种构建待映射量子程序的方法、装置及量子计算机 | |
CN114819169B (zh) | 一种矩阵条件数的量子估计方法及装置 | |
CN116050528B (zh) | 振幅放大线路的构建方法、装置、介质及电子装置 | |
CN114638367B (zh) | 一种数据的读取方法、装置、存储介质及电子装置 | |
CN114692879B (zh) | 一种基于稀疏线性系统的量子预处理方法及装置 | |
CN115730670B (zh) | 模式文件的生成方法、装置、介质及电子装置 | |
CN115879557B (zh) | 基于量子线路的数据大小比较方法、装置及量子计算机 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: 230088 6th floor, E2 building, phase II, innovation industrial park, 2800 innovation Avenue, high tech Zone, Hefei City, Anhui Province Applicant after: Benyuan Quantum Computing Technology (Hefei) Co.,Ltd. Address before: 230088 6th floor, E2 building, phase II, innovation industrial park, 2800 innovation Avenue, high tech Zone, Hefei City, Anhui Province Applicant before: ORIGIN QUANTUM COMPUTING COMPANY, LIMITED, HEFEI |
|
GR01 | Patent grant | ||
GR01 | Patent grant |