CN111915011B - 一种单振幅量子计算模拟方法 - Google Patents
一种单振幅量子计算模拟方法 Download PDFInfo
- Publication number
- CN111915011B CN111915011B CN201910373421.1A CN201910373421A CN111915011B CN 111915011 B CN111915011 B CN 111915011B CN 201910373421 A CN201910373421 A CN 201910373421A CN 111915011 B CN111915011 B CN 111915011B
- Authority
- CN
- China
- Prior art keywords
- target
- quantum
- core
- tensor
- slave
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 69
- 238000004088 simulation Methods 0.000 title claims abstract description 61
- 238000004364 calculation method Methods 0.000 claims description 52
- 230000008569 process Effects 0.000 claims description 23
- 230000009467 reduction Effects 0.000 claims description 18
- 230000004927 fusion Effects 0.000 claims description 16
- 230000001174 ascending effect Effects 0.000 claims description 9
- 238000010276 construction Methods 0.000 claims description 6
- 239000002096 quantum dot Substances 0.000 description 43
- 239000011159 matrix material Substances 0.000 description 29
- 230000015654 memory Effects 0.000 description 17
- 230000006870 function Effects 0.000 description 10
- 230000009471 action Effects 0.000 description 5
- 230000010354 integration Effects 0.000 description 4
- 230000000670 limiting effect Effects 0.000 description 4
- 230000009466 transformation Effects 0.000 description 4
- 239000002699 waste material Substances 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000005094 computer simulation Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000002787 reinforcement Effects 0.000 description 2
- 230000002441 reversible effect Effects 0.000 description 2
- TVEXGJYMHHTVKP-UHFFFAOYSA-N 6-oxabicyclo[3.2.1]oct-3-en-7-one Chemical compound C1C2C(=O)OC1C=CC2 TVEXGJYMHHTVKP-UHFFFAOYSA-N 0.000 description 1
- 239000004178 amaranth Substances 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000000354 decomposition reaction Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005265 energy consumption Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000005610 quantum mechanics Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000012827 research and development Methods 0.000 description 1
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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Mathematical Analysis (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Condensed Matter Physics & Semiconductors (AREA)
- Computational Mathematics (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种单振幅量子计算模拟方法,包括:配置并行设置的分布式计算节点,计算节点包括相互通信的主核和从核;配置目标量子程序和目标量子态分量至各计算节点的主核,各主核根据目标量子程序和目标量子态分量,构建目标量子程序对应的无向图;其中,无向图的边对应量子逻辑门,顶点对应量子逻辑门所操作量子比特的量子态;边用张量表示,其元素由对应量子逻辑门的酉矩阵和边的顶点取值决定;各主核根据预设拆分原则,获得不同的子无向图;各主核与对应的各从核配合,计算每一个子无向图,获得对应的目标子振幅;合并所有目标子振幅,获得目标量子态分量的振幅。应用本发明实施例,可实现涉及50个甚至更多个量子比特的量子计算模拟。
Description
技术领域
本发明属于量子计算技术领域,更具体地,涉及一种单振幅量子计算模拟方法。
背景技术
量子计算机(quantum computer)是一类遵循量子力学规律进行高速数学和逻辑运算、存储及处理量子信息的物理装置。当某个装置处理和计算的是量子信息,运行的是量子算法时,它就是量子计算机。量子计算机的概念源于对可逆计算机的研究。研究可逆计算机的目的是为了解决计算机中的能耗问题。
量子计算机可执行多种经典计算机不能实现的任务,比如量子模拟和分解大质因数。在量子计算前进的道路上,我们应该首先实现“量子霸权”,即需要先实现量子比特数在50以上,并且有着高保真度的量子计算机。但在真正实现“量子霸权”的量子计算机之前,我们可以先通过量子计算的相关理论,实现量子虚拟机,进行量子计算模拟,从而实现量子计算机的软硬件解耦,为量子程序和量子应用的发展打下基础。
量子计算模拟,通常采用全振幅模拟,即一次性模拟量子比特末态的所有振幅,但全振幅模拟基于酉变换进行计算,其内存开销随量子比特数呈指数增长。如要对涉及30个量子比特的量子计算进行模拟时,内存开销需16GByte(吉字节);40个量子比特时,内存开销需16TByte(太字节),即210*(16GByte);50个量子比特时,内存开销则需16PByte(拍字节),即210*(16TByte)。这对于提供量子计算模拟服务的普通云平台甚至是超级计算平台来说都是难以承受的,学术界目前全振幅模拟器最大仅可模拟到49个量子比特,是基于世界最大的超级计算机的模拟结果,但它并没有对外提供云服务,这非常不利于量子程序和量子应用的研究与发展。此种情况下,单振幅模拟,即一次性只模拟出一个振幅的方案开始被提出,而这种模式则对内存需求将小很多。因此,可以看出,在当前平台内存资源受限的情况下,单量子态分量振幅的量子计算模拟的相关研究与实现对于量子计算的发展显得尤为重要。
发明内容
本发明的目的是提供一种单振幅量子计算模拟方法,以实现涉及50个甚至更多个量子比特的计算模拟。
为达到上述目的,本发明实施例公开了单振幅量子计算模拟方法及装置。具体技术方案如下:
第一方面,本发明实施例公开了一种单振幅量子计算模拟方法,所述方法包括:
配置并行设置的分布式计算节点,所述分布式计算节点包括相互通信的主核和从核;
配置目标量子程序和目标量子态分量至各所述计算节点的主核,各所述主核根据所述目标量子程序和所述目标量子态分量,构建所述目标量子程序对应的无向图;其中,所述无向图的边对应所述目标量子程序中的量子逻辑门,所述无向图的顶点对应所述量子逻辑门执行前或执行后、所操作的量子比特的量子态;所述无向图的边用张量表示,所述张量中的元素由对应量子逻辑门的酉矩阵和所述边连接的顶点的取值共同决定;
各所述主核根据所述预设拆分原则,获得不同的子无向图;
各所述主核与对应的各所述从核配合,计算每一个所述子无向图,获得对应的目标子振幅;
合并所有所述目标子振幅,获得所述目标量子态分量的振幅。
可选地,所述各所述主核与对应的各所述从核配合,计算所述子无向图,获得对应的目标子振幅的步骤,包括:
各所述主核与对应的各所述从核配合,针对所述子无向图中每一顶点,对该顶点的所有连接边执行融合操作,获得一条目标边;基于该顶点的取值,对所述目标边执行降阶操作,并删除该顶点;
对所有降阶后的所述目标边的张量求积,获得所述子无向图对应的目标子振幅。
可选地,所述融合操作的过程,包括:
所述主核确定待融合的第一条边和第二条边;所述主核与对应的各所述从核配合,根据所述第二条边的第二顶点组中不与所述第一条边相连接的顶点,对所述第一条边的第一张量执行升阶操作;
所述主核配置对应的各所述从核的第一计算参数;所述第一计算参数包括所述第一条边的第一顶点组与所述第二顶点组中重合顶点的位置对应关系;
所述主核对应的各所述从核从所述第一张量中获得第一目标数量个第一目标元素,并根据所述位置对应关系从所述第二条边的第二张量中获得每一所述第一目标元素对应的第二目标元素;
所述主核对应的各所述从核将所述第一目标元素与对应的所述第二目标元素相乘,并以所得乘积更新所述第一目标元素;
所述主核删除所述第二条边,并将所述第二条边的除所述该顶点之外的其他顶点连接至所述第一条边。
可选地,所述第一计算参数还包括:所述第一张量的第一长度;
所述第一目标数量由以下方式确定:
判断所述主核对应的各所述从核的总数量是否小于所述第一长度;
若所述总数量小于所述第一长度,根据所述第一长度和所述总数量,确定所述第一目标数量;
若所述总数量等于所述第一长度,将所述第一目标数量确定为1;
若所述总数量大于所述第一长度,从所述主核对应的各所述从核中确定所述第一长度个第一目标从核,将所述第一目标从核对应的所述第一目标数量确定为1;将除所述第一目标从核之外的其他所述从核对应的所述第一目标数量确定为0。
可选地,所述升阶操作的过程包括:
所述主核创建第一临时张量,所述第一临时张量的阶数为待升的阶数与待升阶张量的阶数之和;所述待升的阶数为:所述第二顶点组中不与所述第一条边相连接的顶点数;
所述主核配置对应的各所述从核的第二计算参数;
所述主核对应的各所述从核根据所述第二计算参数,从所述待升阶张量中获取第二目标数量个不同的元素,并以所述第二目标数量个不同的元素更新所述第一临时张量;
所述主核使用更新后的所述第一临时张量替代所述待升阶张量。
可选地,所述第二计算参数包括所述待升阶张量的第二长度;
所述第二目标数量由以下方式确定:
判断所述主核对应的各所述从核的总数量是否小于所述第二长度;
若所述总数量小于所述第二长度,根据所述第二长度和所述总数量,确定所述第二目标数量;
若所述总数量等于所述第二长度,将所述第二目标数量确定为1;
若所述总数量大于所述第二长度,从所述主核对应的各所述从核中确定所述第二长度个第二目标从核,将所述第二目标从核对应的所述第二目标数量确定为1;将除所述第二目标从核之外的其他所述从核对应的所述第二目标数量确定为0。
可选地,所述降阶操作的过程包括:
所述主核创建第二临时张量;其中,所述第二临时张量的阶数为:待降阶张量的阶数减1得到的差;
所述主核配置对应的各所述从核的第三计算参数;其中,所述第三计算参数包括所述待降阶张量的第三长度;
所述主核对应的各所述从核根据所述第三计算参数,从所述待降阶张量中分别获取第三目标数量个第三目标元素和每一所述第三目标元素对应的第四目标元素;其中,所述第三目标元素与对应的所述第四目标元素的位置差值为第一数量,所述第一数量为:所述第三长度除以2获得的商;
所述主核配置对应的各所述从核对所述第三目标元素和对应的所述第四目标元素执行求和操作,获得第五目标元素,并以所述第五目标元素更新所述第二临时张量;
所述主核使用更新后的所述第二临时张量替代所述待降阶张量。
可选地,所述第三目标数量由以下方式确定:
判断所述主核对应的各所述从核的总数量是否小于第一数量;
若所述总数量小于所述第一数量,根据所述第一数量和所述总数量,确定所述第三目标数量;
若所述总数量等于所述第一数量,将所述第三目标数量确定为1;
若所述总数量大于所述第一数量,从所述主核对应的各所述从核中确定第一数量个第三目标从核,将所述第三目标从核对应的所述第三目标数量确定为1;将除所述第三目标从核之外的其他所述从核对应的所述第三目标数量确定为0。
第二方面,本发明实施例公开了一种单振幅量子计算模拟装置,所述装置包括:
配置模块,用于配置并行设置的分布式计算节点,所述分布式计算节点包括相互通信的主核和从核;
无向图构建模块,用于配置目标量子程序和目标量子态分量至所述配置模块配置的各所述计算节点的主核,各所述主核根据所述目标量子程序和所述目标量子态分量,构建所述目标量子程序对应的无向图;其中,所述无向图的边对应所述目标量子程序中的量子逻辑门,所述无向图的顶点对应所述量子逻辑门执行前或执行后、所操作的量子比特的量子态;所述无向图的边用张量表示,所述张量中的元素由对应量子逻辑门的酉矩阵和所述边连接的顶点的取值共同决定;
无向图拆分模块,用于各所述主核根据预设拆分原则,获得不同的子无向图;
计算模块,用于各所述主核与对应的各所述从核配合,计算所述无向图拆分模块获得的每一个所述子无向图,获得对应的目标子振幅;
合并模块,用于合并所述计算模块获得的所有所述目标子振幅,获得所述目标量子态分量的振幅。
应用本发明实施例,可以每次只计算所涉量子比特的一个目标单振幅,具体地,将目标量子程序映射到无向图上,并结合路径积分法,将无向图拆分至多个计算节点上,由每个计算节点的主核与对应的各从核配合计算对应的子无向图,从而实现二级并行。整个计算过程都是基于张量中元素的简单运算,与现有技术中基于酉矩阵的全振幅模拟相比,大大降低了对内存的需求,且计算量不随量子比特指数上升,从而可以实现涉及50个甚至更多个量子比特的量子计算模拟;二级并行在降低时间复杂度的同时,亦可以实现计算资源的利用最大化。目前,应用本发明实施例提供的技术方案,最大已可实现涉及196个量子比特的量子计算模拟。
此外,实际应用中,有时只需要量子比特全振幅中的一个或多个振幅,在这种情况下,若采用现有技术中的全振幅模式,即一次性模拟出所有的振幅,无疑是对内存等资源以及时间的浪费;而应用本发明实施例提供的方法,则可以有针对性地进行一次或多次模拟,模拟出需要的一个或多个单振幅即可,大大节省了资源与时间。
附图说明
图1是量子程序对应量子线路拆分成不同路径的具体示例;
图2是本发明实施例所提供的单振幅量子计算模拟方法一种流程图;
图3是本发明实施例所提供的单振幅量子计算模拟方法中不同类型量子逻辑门构建的无向图示意图;
图4是本发明实施例所提供的单振幅量子计算模拟装置的一种结构示意图。
具体实施方式
下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。
为了实现涉及50甚至更多个量子比特的计算模拟,本发明实施例提供了单振幅量子计算模拟方法及装置。
下面首先对本发明实施例提供的一种单振幅量子计算模拟方法进行介绍。
本领域人员可以理解的是,每个量子比特都可以同时处于|0>和|1>的叠加态,一个量子比特的量子态ψ可以表示为a|0>+b|1>,其中,a、b分别为|0>、|1>的振幅,均为复数。测量后,量子态塌缩至一个固定的量子态,其中,塌缩至|0>的概率是a2,塌缩至|1>的概率是b2,a2+b2=1。而n个量子比特的量子态则为2n个量子态的叠加态。举例而言,3个量子比特组成的量子态ψ为23(即8)个量子态的叠加态,其中,这8个量子态分别为|000>、|001>、|010>、|011>、|100>、|101>、|110>和|111>,此时,3个量子比特组成的量子态ψ可表示为:
ψ=c0|000>+c1|001>+c2|010>+c3|011>+c4|100>+c5|101>+c6|110>+c7|111>。
其中,8个量子态中的每个量子态称为一个量子态分量,每个量子态分量对应的振幅,即c0至c7这些复数可称作一个单振幅。全振幅模拟,便是指一次性模拟出n个量子比特的2n个量子态分量的振幅;而单振幅模拟,则是指一次性模拟2n个量子态中的任意一个量子态分量的振幅。
目前,关于量子计算模拟,业内多采用全振幅模式。但对于全振幅模式来说,它所占用的内存通常随模拟的量子比特数呈指数上升,如模拟10个量子比特只需要16KB内存,模拟20个需要16MB内存,模拟30个需要16GB,而要模拟50个量子比特则需要高达16PB的内存,综合世界上所有的计算机内存也不能实现50个甚至更多个量子比特的全振幅模拟。
鉴于此,本发明实施例提供了一种单振幅量子计算模拟方法,优选地,应用于超级计算机集群(如神威太湖之光超级计算机平台)。
需要说明的是,量子程序是由量子语言编写的一串能够在量子计算机上运行的指令序列,实现了对量子逻辑门操作的支持,并最终实现对量子计算的模拟。具体的说,量子程序就是一系列按照一定时序操作量子逻辑门的指令序列。
其中,量子逻辑门是一个基本的、操作一个小数量量子位元(即量子比特)的量子线路。它是量子线路的基础,就像传统逻辑门跟一般数位线路之间的关系。量子逻辑门包括单量子逻辑门、双量子逻辑门以及多量子逻辑门。
而一个量子程序可以包含几十上百个量子逻辑门操作,也可以包含成千上万个量子逻辑门操作。量子程序的执行过程,就是对所有的量子逻辑门按照一定时序执行的过程。需要说明的是,时序即个量子逻辑门被执行的时间顺序。需要说明的是,量子逻辑门一般使用酉矩阵表示,而酉矩阵不仅是矩阵,也是一种操作和变换。一般量子逻辑门在量子态上的作用是通过酉矩阵左乘以量子态对应的右矢进行计算的。
例如:量子态|0>对应的右矢为而量子态|1>对应的右矢为/>
根据酉矩阵类型,量子逻辑门又可以分为对角量子逻辑门和非对角量子逻辑门。其中,对角量子逻辑门指酉矩阵为对角矩阵的量子逻辑门。公知的是,对角矩阵是指主对角线之外的元素皆为0的矩阵,而对角线上的元素可以为0或其他值。
如单位矩阵便是典型的对角矩阵。
相对地,主对角线之外有非零元素的矩阵即为非对角矩阵,如而酉矩阵为非对角矩阵的量子逻辑门即是非对角量子逻辑门。
本领域人员可以理解的是,假设目标量子程序中除量子比特的初始量子态|0…0>和末态外共涉及M1个量子态,那么,由于每个量子比特的状态都可以处于|0>和|1>的叠加态,故针对M1个中的某一个量子态,将其拆分成两个量子态分量:|0>和|1>,便可获得初始量子态到末态分量x=|x0…xn-1>的2条可能的变换路径,计算每条路径的振幅,再进行求和便可得末态分量,即目标量子态分量的振幅。其中,M1为正整数。
举例而言,目标量子程序涉及2个量子比特,分别为:q0、q1,初始态s0=|00>,目标量子态分量为|11>,该量子程序中包含2个H门(Hadamard Gate,阿达马门):H1、H2,1个CNOT门(Control-not Gate,控制非门)。
如图(1a)所示,给出了该量子程序对应量子线路的简单示意,可以看出,该量子线路除初始量子态|00>和目标量子态分量|11>外,还涉及4个量子态:s0 1、s0 2、s1 1、s1 2,其中每个量子态都可以表示为|0>和|1>的叠加态。若将s1 1拆分成|0>和|1>两部分,那么,由初始量子态|00>到|11>,便可以拆分成如图(1b)和(1c)的两条路径,分别求出初始量子态|00>经两条路径变换为|11>的子振幅,再对子振幅进行求和,便可得出目标量子程序对应的振幅值,完成模拟。
可以理解的是,若针对目标量子程序中M1个量子态中的每一个量子态,都拆分成|0>和|1>两部分,那么,便可获得初始量子态到末态分量的条可能的变换路径,计算每条路径的振幅,再进行求和便可得末态分量,即目标量子态分量的振幅。
在一个只有单量子逻辑门和对角双量子逻辑门的量子程序中,给定量子比特的初始量子态为|0…0>,当其末态分量,即目标量子态分量取值为x=|x0…xn-1>时,其振幅的计算公式可以表示为:
公式(1)为量子力学路径积分方法的基本公式。
需要说明的是,公式(1)中ψ函数均是关于布尔变量的复杂函数,表示量子逻辑门对量子态的贡献,为更好地阐述,公式(1)中只各体现了三类ψ函数中的一个,对其他ψ函数做了省略处理;取值为{0,1},对应量子位为j的量子比特经第k个量子逻辑门作用后量子态的分量。ψ函数的取值主要与两个因素相关,一是量子逻辑门操作的量子比特在该量子逻辑门执行前后的量子态,二是量子逻辑门的酉矩阵。
具体地,是一个关于布尔变量/>和/>的复杂函数,取值由两个变量的值和对应对角双量子逻辑门的酉矩阵决定,/>和/>分别对应量子位为v1和v2的两个量子比特未经第v个对角双量子逻辑门作用前量子态的分量;/>是一个关于布尔变量/>的复杂函数,取值由变量的值和对应对角单量子逻辑门的酉矩阵决定,/>对应量子位为u的量子比特未经第u'个对角单量子逻辑门作用前量子态的分量;/>是一个关于布尔变量/>和/>的复杂函数,取值由两个变量的值和对应非对角单量子逻辑门的酉矩阵决定,和/>分别对应量子位为j的量子比特在第i个非对角单量子逻辑门作用前、后量子态的分量。可以理解的是,j、k、v、v1、v2、v1'、v2'、u、u'、i均为非负整数。
本发明实施例提供的一种单振幅量子计算模拟方法,基于公式(1),扩至非对角双量子逻辑门,并将其映射成无向图。具体地,对应无向图的点,ψ函数对应无向图的边,将求解公式(1)转换为对无向图的处理,可以理解的是,根据/>的取值可以将无向图进行拆分。
如图2所示,本发明实施例提供的一种单振幅量子计算模拟方法,可以包括如下步骤:
S201,配置并行设置的分布式计算节点。
其中,分布式计算节点包括相互通信的主核和从核。主核与主核、主核与其下属的从核之间能够互相通信,从核间不进行通信。主核是超级计算机集群的运算控制核心,在进行计算任务时几乎不参与核心的计算过程,主要负责I/O操作、运算核心的任务调度分配以及与其他主核进程间的数据通信等,从核为运算核心,执行的是核心的并行计算任务,只有收到运算控制核心的调用命令后才会执行对应计算任务,否则等待。由此主核和从核能够实现二级并行计算。
S202,配置目标量子程序和目标量子态分量至各计算节点的主核,各主核根据目标量子程序和目标量子态分量,构建目标量子程序对应的无向图。
需要说明的是,该目标量子程序包括量子逻辑门信息以及所涉及量子比特。。而配置目标量子程序至各计算节点的主核,具体地,可以是配置目标量子程序的源码至各计算节点的主核,对应主核再对其进行解析,顺序读取解析得到数据来构建无向图;也可以是配置目标量子程序解析后得到的目标类型格式的信息,对应主核根据该目标类型格式的信息构建无向图。其中,目标类型格式,可以是链表、队列等,考虑到后续无向图构建时可以更高效,优选链表。
可以理解的是,无向图构建过程中,是按照量子程序中逻辑门的先后顺序和其操作的量子比特量子态的变换情况来添加顶点与边的。所涉量子比特的初始量子态可以预先约定,如通常默认为零态;也可以根据实际需求,将初始量子态配置至各主核。而在构建无向图时,可以根据量子比特的初始量子态确定无向图中头顶点的值,举例而言,假设量子比特的初始量子态为零态,那么无向图的头顶点的值都为0;由目标量子态分量确定无向图中尾顶点的值,也就是每个所涉量子比特对应的最后一个顶点。
实际应用中,当量子计算的模拟涉及众多量子比特时,若直接用狄拉克符号|>结合二进制表示方法来表示每个量子态或量子态分量,将会非常不方便。因此,常用二进制表示方法对应的十进制数来表示,如|0000>即为零态,|0100>即为4态。可以理解的是,若目标量子态分量为十进制数,需将其转换成二进制字符串,然后再发送给每个计算节点。可以理解的是,该二进制字符串中的每一位都对应一个量子比特的取值,且其从低位到高位依次与从低位到高位的量子比特相对应,需要说明的是,低位和高位的排布对量子计算机而言,同经典计算机,均是低位到高位按照从右到左的顺序排列。举例而言,假设目标量子态分量为5态,转换成二进制形式即是“101”,对应3个量子比特(从低位到高位依次为:Q0、Q1、Q2),那么,“101”分别对应“Q2Q1Q0”。
其中,若顶点的取值是用张量来表示的,可知,该张量为1阶张量,取值{0,1},那么,确定顶点的值,即是将头、尾顶点的张量从1阶降为0阶,即降为标量。
具体地,当量子逻辑门为对角单量子逻辑门或对角双量子逻辑门时,操作后,将不改变所操作量子比特的量子态分量,故在构建无向图时,只需向无向图添加一条边即可;当量子逻辑门为非对角单量子逻辑门时,操作后,则将改变所操作量子比特的量子态分量,故在构建无向图时,需向无向图添加一个顶点和一条对应边;而当量子逻辑门为非对角双量子逻辑门时,操作后,也将改变所操作量子比特的量子态分量,故在构建无向图时,需向无向图添加两个顶点和一条对应边。
举例而言,如泡利-Z门(Pauli-Z gate),是一个对角单量子逻辑门,其酉矩阵为
当利用泡利-Z门操作一个量子比特时,保留该量子比特的基本状态|0>不变,并将|1>转换成-|1>,可以看出该对角单量子逻辑门操作后,只改变所操作量子比特的量子态振幅。
其中,无向图的顶点对应量子逻辑门执行前或执行后、所操作的量子比特的量子态分量,取值均为{0,1},对应公式(1)中的变量而所操作的量子比特即是对应量子逻辑门操作的量子比特。无向图的边对应目标量子程序中的量子逻辑门,具体地,每个量子逻辑门对应的边都用一个张量表示,该张量中的元素由量子逻辑门对应的酉矩阵和对应边连接的顶点取值共同决定,对应公式(1)中的ψ函数。
可以理解的是,张量可以采用下标标记法,如张量T12,下标的数量即是张量的阶(rank),表示张量的维度。其中,标量是0阶张量,矢量是1阶张量,矩阵则是2阶张量。而张量的形状则是指每个维度中元素的数量;张量的长度,即元素个数,由其形状决定。
举例而言,已知张量B1234,下标为“1234”,为4阶张量;其中,下标1表示的维度中元素有3个,下标2表示的维度中元素有4个,下标3表示的维度中元素有5个,下标4表示的维度中元素有4个,则张量B1234的形状shape=[3,4,5,6],元素个数为:3×4×5×6=360。
在本发明实施例中,张量的阶与该张量对应边连接的顶点个数相等,张量的下标为无向图中顶点的标识,为清楚起见,具体地当顶点标识有大小或者先后之分时,可以将顶点标识按照一定的顺序排列作为张量的下标,举例而言,边连接四个顶点,顶点标识分别为“1”、“2”、“3”、“4”,则对应张量的下标从左到右可以为:“1234”,如T1234。当然,顶点标识不仅限于数字形式,也可以是其他合理的表达形式,如b0、b1等。
由于每个顶点的取值都只能为0或1,只有两种可能性,所以,对于一个n阶张量,其形状shape=[2,2,2…2],元素个数为2n。
而每一个张量元素的编号都可以表示为一个二进制编号,二进制编号的每一位可以表示为对应顶点的取值。
举例而言,边Em连接4个顶点,那么,它对应的张量就是一个4阶张量,其元素共有24=16个,则元素编号可以表示为二进制数:(0000)2~(1111)2。当边Em连接的4个顶点的组合取值为“0000”时,对应张量的第(0000)2位元素;当边Em连接的顶点的组合取值为“1001”,对应张量的(1001)2位元素。
更具体地,如图(3a)所示,对于对角单量子逻辑门,构建无向图时,只添加一条边E1即可,该边的一端与顶点V0相连。其中,V0为对应量子比特当前的最后一个顶点,即该量子逻辑门直接作用的量子态对应的顶点。
可以理解的是,边E1只连接一个顶点,故其张量为1阶张量,共有21=2个元素,该张量对应公式(1)中的ψu函数,表示该对角单量子逻辑门对量子态的贡献。具体地,假设该对角单量子逻辑门的酉矩阵/>则/>其中,顶点V0取值为“0”时,对应/>的第(0)2位元素,即U00,V0取值为“1”时,对应其张量的第(1)2位元素,即U11。
如图(3b)所示,对于对角双量子逻辑门,构建无向图时,也只需添加一条边E12,该边的一端与顶点V1相连,一端与顶点V2相连。其中,V1和V2分别为该对角双量子逻辑门操作的两个量子比特对应的当前最后一个顶点,即该对角双量子逻辑门直接作用的量子态对应的顶点。
可以理解的是,如图(3b)所示,边E12与两个顶点V1和V2相连,故其张量为2阶张量,共有22=4个元素,该张量对应公式(1)中的ψv函数,表示该对角双量子逻辑门对量子态的贡献。具体地,假设该对角双量子逻辑门的酉矩阵/>则其中,当V1V2取值为“00”时,对应/>的第(00)2位元素;V1V2取值为“01”时,对应/>的第(01)2位元素;当V1V2取值为“10”时,对应/>的第(10)2位元素;V1V2取值为“11”时,对应/>的第(11)2位元素。当然,也可以按照顶点序列“V2V1”的取值来对应张量中元素,若按此顺序,可以理解的是,/>需要说明的是,顶点序列的一种取值唯一确定张量中一个元素,但顶点序列的取值与张量中对应元素的位置关系并不是唯一的,可以根据实际需求而定。
举例而言,当边E12是对角双量子逻辑门CZ门的对应边时,根据其酉矩阵可知,其张量/>
如图(3c)所示,对于非对角单量子逻辑门,构建无向图时,添加一个顶点V4,一条边E34,该边的一端与顶点V3相连,一端与顶点V4相连。其中,V3为该非对角单量子逻辑门操作的量子比特对应的当前最后一个顶点,即该非对角量子逻辑门直接作用的量子态对应的顶点;V4为新增的顶点,对应非对角单量子逻辑门操作后的新量子态。
可以理解的是,边E34与两个顶点V3和V4相连,故其张量为2阶张量,共有22=4个元素,该张量对应公式(1)中的ψi函数,表示该非对角单量子逻辑门对量子态的贡献。具体地,假设该对角单量子逻辑门的酉矩阵/>则/>其中,当V3V4取值为“00”时,对/>的第(00)2位元素;V3V4取值为“01”时,对应/>的第(01)2位元素;当V3V4取值为“10”时,对应/>的第(10)2位元素;V3V4取值为“11”时,对应/>的第(11)2位元素。
举例而言,当边E34是非对角单量子逻辑门H门的对应边时,根据其酉矩阵可知,张量/>
如图(3d)所示,对于非对角双量子逻辑门,构建无向图时,需添加一条边E5678,为示意得更清楚,此处表现为两条边,但需要说明的是,图(3d)中的两条边实则是同一条边E5678。新添加的边一端与顶点V5、V7相连,一端与顶点V6、V8相连。其中,V5和V6分别为该非对角双量子逻辑门操作的两个量子比特对应的当前最后一个顶点,V7和V8分别为该非对角双量子逻辑门操作后两个量子比特的新量子态对应的顶点。特别地,当非对角双量子逻辑门为控制逻辑门时,V5、V7对应控制比特,V6、V8对应受控比特。
可以理解的是,如图(3d)所示,边E5678与四个顶点V5、V6、V7和V8相连,故其张量为4阶张量,共有24=16个元素,令顶点序列“V5V6V7V8”取值(“0000”_“1111”)分别对应/>中(0000)2-(1111)2位元素。具体地,假设该非对角双量子逻辑门的酉矩阵其中,当i≠j时,Uij不全为0,则顶点序列“V5V6V7V8”取值与U4中各元素的对应关系,如表1所示:
表1 V5V6V7V8取值与U4中各元素的对应关系
可知,
举例而言,当边E34是非对角单量子逻辑门CNOT门的对应边时,公知的是,其酉矩阵为因此,其张量/>
具体实现过程中,关于无向图的存储,可以包括顶点链存储数据以及边的张量信息。
更具体地,顶点链存储数据可以包括:顶点的值、顶点连接的边信息以及顶点标识。其中,顶点标识唯一确定一个顶点,例如顶点编号;根据该标识可以确定对应顶点属于哪个量子比特及其取值、连接边信息等;顶点的值确定后,应为0或1;但当顶点的值不确定时,可以为空,也可以为任一约定的符合顶点的取值类型的数值或字符,比如-1,用以在实现过程中对顶点的取值情况进行判断。其中,顶点的值可以用张量表示,也可以用变量或者其他合理的数据类型来表示。
边的张量信息,可以包括张量数组以及该张量对应边连接的顶点的标识。
当然,上述关于无向图存储的描述只是一具体实现,实际应用中,视需求而定,并不限于此。
本领域人员可以理解的是,任意多量子比特门都可以用单量子逻辑门加上任意的双量子逻辑门来构建,在大多数情况下,双量子逻辑门多选择CNOT门。某种意义上,CNOT门和单量子逻辑门是其他所有门的原型。故而本申请提供的方法也适用于带有多量子比特门的量子程序,实际应用中,可先将该量子程序中的多量子比特门转化成单量子逻辑门和双量子逻辑门的组合,然后再应用本发明提供的单振幅量子计算模拟方法。
每个计算节点的主核在初步构建好无向图后,便可以首先根据已确定的无向图的头、尾顶点的取值,分别对与头顶点相连的边和与尾顶点相连的边进行确定值降阶,降阶后,将对应头或者尾顶点删除。
需要说明的是,本申请中所说的对无向图中边的降阶,实质皆是对边的张量的降阶,后续不再赘述。
具体地,对张量的确定值降阶,即是根据确定的下标取值,在原张量中确定出对应元素,然后将该张量的元素更新为确定出的对应元素。
举例而言,4阶张量A1234,其下标2的值确定为0,那么,从A1234中找出下标2的值为0的元素:第(0000)2、(0001)2、(0010)2、(0011)2、(1000)2、(1001)2、(1010)2、(1011)2位元素,这些编号去掉下标中的第二位即为(000)2、(001)2、(010)2、(011)2、(100)2、(101)2、(110)2、(111)2,它们组成一个新的3阶张量A134,这种操作即为确定值降阶。
S203,各主核根据预设拆分原则,获得不同的子无向图。
实际应用中,每个主核构建好无向图,并分别对无向图中与头顶点相连的边和与尾顶点相连的边进行降阶,可知此时每个主核得到的是同样的无向图。然后,各主核可以根据预设拆分原则对无向图进行拆分,以获得不同的子无向图。可以理解的是,拆分原则是基于无向图顶点的取值预先设定好的。
举例而言,假设所有的计算节点上共有512个可用的主核,要将无向图在这些主核上进行拆分,具体地,预设拆分原则可以为:根据无向图中除头、尾顶点之外的M个顶点中多个顶点的取值进行拆分,每个主核得到其中一个或多个取值对应的子无向图,最终,512个主核获得不同的子无向图。其中,所选择的多个顶点可以为复杂顶点,即连接的边大于预设数量的顶点;优选地,所选的多个顶点可以为连接边数最多的多个顶点,如此,可以在后续过程对图中的更多条边执行确定值降阶。
预设拆分原则也可以为:遍历无向图的顶点,当遇到第一个复杂图顶点时,可以配置主核标识为0-255的主核把当前顶点的取值赋为0,主核标识为256-511的主核则把当前顶点值赋为1,每个主核分别基于当前顶点的取值对该顶点连接的边进行确定值降阶;继续遍历,碰到第二个复杂顶点时,可以配置主核标识为0-127的主核把当前顶点值赋为0,主核标识为128-255的主核把当前顶点值赋为1,主核标识为256-383的主核把当前顶点值赋为0,主核标识为384-511的主核把当前顶点值赋为1,每个主核分别基于当前顶点的取值对该顶点连接的边进行确定值降阶……直到512个主核获得不同的子无向图。
当然,上述两种只是预设拆分原则的两种具体示例,并不具有限定作用。
S204,各主核与对应的各从核配合,计算每一个子无向图,获得对应的目标子振幅。
在各主核得到不同的子无向图后,每个主核可以调用对应的从核,计算每一个子无向图,获得对应的目标子振幅。
具体地,针对每一个主核,所述各主核与对应的各从核配合,计算子无向图,获得对应的目标子振幅的步骤,可以包括:
各主核与对应的各从核配合,针对子无向图中每一顶点,对该顶点的所有连接边执行融合操作,获得一条目标边;基于该顶点的取值,对目标边执行降阶操作,并删除该顶点;
对所有降阶后的目标边的张量求积,获得子无向图对应的目标子振幅。
实际应用中,每一个计算节点上的每一个主核可以调用对应的各从核,遍历对应子无向图中每一顶点:首先将该顶点连接的所有边融合成一条目标边,然后基于该顶点的两种取值(即0和1)对目标边执行降阶操作,降阶后,将该顶点删除。可以理解的是,遍历子无向图中的顶点时,目标边将会不断地更新,若子无向图为连通的,最终,其目标边将只有一条,且为零阶边;若子无向图为非连通的,其目标边将包括多条零阶边。其中,零阶边,即是对应张量为0阶张量(标量)的边。将每个子无向图中所有零阶边的张量相乘,得到的积便是该子无向图对应路径的目标子振幅。
其中,可以理解的是,对边的融合,核心是对张量的合并操作。
下面将就一个顶点,具体如何对其所有边进行融合以及降阶等进行说明。
在一种实现方式中,对该顶点的所有连接边执行融合操作,获得一条目标边的步骤,具体地,可以对该顶点的所有连接边,两两融合,获得至少一条融合边,然后在融合得到的新边数量不小于2的情况下,继续对新边两两融合操作,直至最终获得一条融合边,即目标边。
在另一种实现方式中,对该顶点的所有连接边执行融合操作,获得一条目标边的步骤,具体地,可以先从该顶点的所有连接边中,任选两条边进行融合,获得一条新边,然后再从剩余未融合的边中选择一条边,与新边融合,重复上述步骤,直至该顶点的所有连接边融合成一条边。
当然,实际应用中,也可以综合上述两种实现方式或者采用其他方式来实现边的融合,在此不做限定。
更具体地,所述融合操作的过程,可以包括:
第一步,主核确定待融合的第一条边和第二条边,主核与对应的各从核配合,根据第二条边的第二顶点组中不与第一条边相连接的顶点,对第一条边的第一张量执行升阶操作。
实际应用中,一般对任一两条边的融合都需先对一条边进行升阶,因此,一般选择将该顶点所有连接边中阶数最大的边作为第一条边。
可以理解的是,第二条边为除第一条边之外的剩余边中未被融合的边。主核可以直接从剩余的边中选取一条边作为第二条边;也可以先将顶点的连接边根据阶数大小进行排序,按照从小到大或从大到小的顺序均可,不做限定,然后将阶数最大的边确定为第一条边,将剩下未被融合的边中阶数最大的边确定为第二条边。
其中,第二顶点组即是与第二条边相连的所有顶点。待确定出第一条边与第二条边后,对比两条边各自连接的顶点,确定出与第二条边相连但与第一条边不相连的顶点,主核根据确定出的顶点信息,调用对应的各从核,对第一张量执行具体的升阶操作,将第一条边对应的第一张量更新为升阶后的新张量。
举例而言,假设该顶点编号为2,其对应的第一条边为E12,连接顶点1和2,对应的第一张量为A12={1,2,3,4};第二条边为E23,连接顶点2和3。对比两条边连接的顶点,可知,顶点3是与第二条边相连,与第一条边不相连的顶点。据此,将A12升阶为A123,可知A123={1,1,2,2,3,3,4,4},然后将第一条边对应的第一张量更新为A123。
可以理解的是,升阶操作即是根据待升的阶数创建一个更大的空临时张量数组,然后把待升阶的张量数组按照一定规则依次填入临时张量数组中的对应位置。也就是说,升阶操作实质是赋值操作,并不涉及数值间的计算。
需要说明的是,根据张量的升阶原理,可知升阶后的张量的下标包括与第二条边相连但与第一条边不相连的顶点标识,待升的阶数即是与第二条边相连但与第一条边不相连的顶点数。例如,第一条边的张量A1234的下标为“1234”,第二条边的张量下标为“456”,可知标识为5、6的顶点是与第二条边相连但与第一条边不相连的顶点,故第一条边升阶后的张量的下标包括“5”和“6”。
更具体地,升阶后的新顶点标识通常顺序排在待升阶张量下面的后面,基于上例中的A1234来说,即升阶后为A123456或A123465,“5”和“6”顺序排在“1234”之后,具体“5”在前还是“6”在前可以提前约定,在此不做限定。所述升阶操作的过程,可以包括:
主核创建第一临时张量,第一临时张量的阶数为待升的阶数与待升阶张量的阶数之和;待升的阶数为:第二顶点组中不与第一条边相连接的顶点数;
主核配置对应的各从核的第二计算参数;
主核对应的各从核根据第二计算参数,从待升阶张量中获取第二目标数量个不同的元素,并以该第二目标数量个不同的元素更新第一临时张量;
主核使用更新后的第一临时张量替代待升阶张量。
实际应用中,在调用对应的各从核进行更具体的升阶操作前,主核可以先创建一个临时张量数组,用于存储各从核返回的各元素。其中,临时张量数组的阶数为:待升的阶数与待升阶张量的阶数之和,主核可以根据该阶数为临时张量数组分配存储空间。其中,第二计算参数可以包括临时张量的标识或首地址、待升阶张量的标识或首地址,用于各从核从主核获取以及写回数据;还可以包括待升阶数,用于各从核根据获取到的元素确定其在临时张量中的对应位置;还可以包括待升阶张量的长度(即元素个数)或阶数,用于结合从核的总数量来确定第二目标数量,而第二目标数量即是对应从核需要从待升阶张量获取的元素个数。
实际应用中,每个从核一般会有一个从核标识符,如在神威-太湖之光,主核对应从核共有64个,标识符分别为:0-63。因此,若第二目标数量均为2,那么,每个从核便可以根据自身的标识符,依次从待升阶张量中获取2个元素。具体地,若待升阶张量是个3阶张量,其共有8个元素,那么,从核0可以获取第(001)2位和第(010)2位元素,从核1可以获取第(011)2位和第(100)2位元素,从核2可以获取第(100)2位和第(101)2位元素,从核3可以获取(110)2位和第(111)2位元素。
需要说明的是,每个从核也可以预先创建一个临时张量,用于存储获取到的元素。在获取到对应元素后,可以根据待升的阶数确定获取到的元素在临时张量中的对应位置,并更新该临时张量。具体地,通常待升阶张量中的每个元素对应临时张量中的多个元素位置,可以首先将该元素在待升阶张量中的元素位置的二进制编号右移第一目标位得到临时张量中对应的起始位置,而第一目标位与待升的阶数相等;然后从起始位置开始,将该元素重复写入2待升的阶数个连续位置,即完成了针对该元素的赋值计算。每个从核针对获取到的元素重复上述操作,即可完成对临时张量的更新。
举例而言,待升的阶数为2,从核获取到待升阶张量中的(001)2和(010)2位元素,分别为2和3;2待升的阶数=4,那么,将元素2重复写入临时张量中的(00100)2位-(00111)2位,将元素3重复写入临时张量中的(01000)2位-(01011)2位,即完成了该从核的赋值计算。
具体地,当元素是根据从核标识符获取到的时,每个从核可以根据自身标识符和元素获取的原则来确定在临时张量中对应的起始位置。
举例而言,待升的阶数为2,待升阶张量为3阶张量,对应的各从核根据自身标识符依次从待升阶张量中获取2个连续的元素,即从核0获取(000)2和(001)2位元素,从核2获取(010)2和(011)2位元素,从核3获取(100)2和(101)2位元素……其中,从核3获取到的元素分别为4和5;2待升的阶数=4,那么,从核3获取到的元素4对应临时张量中的(10000)2位-(10011)2位,从核3获取到的元素5对应临时张量中的(10100)2位和(10111)2位。
为充分利用超级计算集群中的资源,进而实现并行最大化,第二计算参数可以包括待升阶张量的第二长度;相应地,第二目标数量可以由以下方式确定:
判断主核对应的各从核的总数量是否小于第二长度;
若总数量小于第二长度,根据第二长度和总数量,确定第二目标数量;
若总数量等于第二长度,将第二目标数量确定为1;
若总数量大于第二长度,从主核对应的各从核中确定第二长度个第二目标从核,将第二目标从核对应的第二目标数量确定为1;将除第二目标从核之外的其他从核对应的第二目标数量确定为0。
在执行具体的升阶操作前,首先判断对应的各从核的总数量是否小于待升阶张量的长度——第二长度,若总数量小于第二长度,表明至少有一个从核需要从待升阶张量中取多个元素给临时张量数组进行赋值。因此,需要根据第二长度和从核的总数量,来确定每个从核对应的第二目标数量,也就是,每个从核要从待升阶张量中获取的元素个数。
可以理解的是,当待升阶张量的第二长度能被从核总数整除时,可以用第二长度除以对应从核的总数量,将商确定为每个从核的第二目标数量,从而将赋值操作均分给对应的各从核,每个从核从待升阶张量中获取第二目标数量个元素,对临时张量进行赋值。
当第二长度无法被从核的总数量整除时,可以先将第二长度除以从核总数量,求出商和余数,先根据商指定每个从核要获取的基础元素个数,再在这个基础上,根据余数指定其中至少一个从核的附加元素个数,如此最终确定每个从核对应的第二目标数量,可以理解的是,此种情况下,每个从核对应的第二目标数量并不全部相等。当然也可以采取其他合理有效的方式来确定第二目标数量,在此不做限定。
若主核对应从核的总数量等于第二长度,可以将第二目标数量确定为1,具体地,对应的各从核可以从待升阶张量中获取一个不同位置的元素,如此,将赋值操作并行到每个对应从核上。
若主核对应从核的总数量大于第二长度,则可以选取第二长度个从核,并将每个被选取的从核从待升阶张量中获取一个元素,即它们对应的第二目标数量均确定为1;其他未被选取的从核则不进行赋值操作,即将它们对应的第二目标数量确定为0。举例而言,第二长度为32,主核对应从核有64个,那么就只调用标识符为0-31的32个从核进行赋值即可,其他从核则不进行相关赋值操作。如此,便可将赋值操作并行到被选取的多个从核上。
主核对应的各从核完成赋值操作,由主核将更新后的临时张量替代待升阶张量。可以理解的是,更新后的临时张量的下标为:第二顶点组中不与第一条边相连接的顶点标识与待升阶张量的下标的组合,且待升阶张量的下标在前,第二顶点组中不与第一条边相连接的顶点标识在后。
在另一种实现方式中,第二计算参数可以包括待升阶张量的下标、待升的阶数、待升阶张量的长度。在这种实现方式中,与第一种实现方式不同的是,每个从核在给临时张量中的元素赋值时,可以根据获取到的元素位置来确定临时张量中的对应位置,举例而言,某从核获取到的元素5的位置为(001)2,对应顶点标识“V1V2V3”,那么,临时张量的下标“V1V2V3V4”中包括的“V1V2V3”取值同样为(001)2的即是对应元素,具体为:(0010)2和(0011)2,也就是说临时张量的第(0010)2和(0011)2位元素均应赋值为5。
实际应用中,可综合考虑上述两种实现方式的技术难度等因素选择使用。
第二步,主核配置对应的各从核的第一计算参数,第一计算参数包括第一条边的第一顶点组与第二顶点组中重合顶点的位置对应关系。
需要说明的是,融合操作的实质是对待融合的两条边的张量,即第一张量和第二张量中的对应元素求积。具体的求积运算,主核可以通过配置对应各从核的计算参数,从而调用多个从核并行完成计算。
可以理解的是,第一计算参数为与第一张量和第二张量相关的参数,具体地,可以包括第一条边的第一顶点组与第二顶点组中重合顶点的位置对应关系,更具体地,可以包括存储有该位置对应关系的数组的首地址,用于各从核获取该位置对应关系,并据此确定第一张量中的元素在第二张量中的对应元素;还可以包括第一张量和第二张量的标识或首地址,用于各从核从主核获取以及写回数据;还可以包括待第一张量的长度或者阶数,用于结合从核的总数量来获取每个从核的计算任务量,即第三步中的第一目标数量。
第三步,主核对应的各从核从第一张量中获得第一目标数量个第一目标元素,并根据位置对应关系从第二条边的第二张量中获得每一第一目标元素对应的第二目标元素。
需要说明的是,在调用对应的各从核进行具体的求积运算前,主核对应的各从核可以先创建两个临时张量数组,用于存储从第一张量和第二张量获取的计算数据。
可以理解的是,由于在本申请中,张量的下标为与对应边连接的顶点标识,故第一条边的第一顶点组与第二顶点组中重合顶点的位置对应关系即是第一张量和第二张量的下标中重合的顶点标识的位置对应关系。
具体地,根据该位置对应关系,可以确定出第一张量中每一元素在第二张量中的对应元素。更具体地,将第一张量与第二张量中元素的位置编号表示为二进制数,可以理解的是,二进制数的每一位与其顶点序列的取值对应。然后,根据第二张量中顶点分别在第一张量与第二张量对应的顶点序列中的位置对应关系,可知,针对第一张量中的每一元素,该元素对应的二进制数中相关顶点的取值即为对应元素在第二张量中的位置,从而便可确定出该元素在第二张量中的对应元素。
以第一张量A123={1,1,2,2,3,3,4,4}和第二张量B23={5,6,7,8}为例,顶点2分别在A123和B23对应的顶点序列中的第2位和第1位;顶点标识3分别在A123和B23对应的顶点序列中的第3位和第2位。首先,将第一张量元素的位置编号表示为二进制数(对应顶点“123”的取值):(000)2、(001)2、(010)2、(011)2、(100)2、(101)2、(110)2、(111)2,将第二张量中元素的位置编号表示为二进制数(对应顶点“23”的取值):(00)2、(01)2、(10)2、(11)2,根据顶点2和3分别在张量A123和B23对应的顶点序列中的位置对应关系,可以确定出A123中每一元素在B23中的对应元素如表2所示:
表2 A123中每一元素在B23中的对应元素
其中,表2的第二行中,二进制数下划线是为了明确B23中顶点在A123的每个元素的位置编号中的取值,便于阐述得更清楚,并无任何限定意义。
与升阶操作类似,为了充分地利用超级计算集群中的资源,进而实现并行最大化,在第一计算参数包括第一张量的第一长度的情况下,第一目标数量可以由以下方式确定:
判断主核对应的各从核的总数量是否小于第一长度;
若总数量小于第一长度,根据第一长度和总数量,确定第一目标数量;
若所述总数量等于第一长度,将第一目标数量确定为1;
若总数量大于第一长度,从主核对应的各从核中确定第一长度个第一目标从核,将第一目标从核对应的第一目标数量确定为1;将除第一目标从核之外的其他从核对应的第一目标数量确定为0。
具体地,判断对应的各从核的总数量是否小于第一长度,若总数量小于第一长度,表明至少有一个从核需要从第一张量中取多个元素进行多次求积运算。因此,需要根据第一长度和从核的总数量,来确定每个从核对应的第一目标数量,也就是,每个从核要从第一张量中获取的元素个数。
可以理解的是,当第一长度能被从核总数整除时,可以用第一长度除以对应从核的总数量,并将商确定为第一目标数量;当第一长度无法被从核的总数量整除时,可以采取与升阶操作中相似的方法来确定第二目标数量,此处不再赘述。
若主核对应从核的总数量等于第一长度,可以将第一目标数量均确定为1;若主核对应从核的总数量大于第一长度,与升阶操作中类似,可以将选取的部分从核对应的第一目标数量确定为1,其他从核对应的第一目标数量确定为0。如此,可以根据实际情况,每个从核从第一张量中获取一个元素,然后从第二张量中获取对应元素相乘,从而将求积运算并行在主核对应的所有从核或部分从核上实现。
需要说明的是,当本发明实施例提供的技术方案应用于如神威-太湖之光的超级计算机平台时,与升阶操作中类似,每个从核可以根据自身标识符从第一张量中获取第一目标元素,再根据第一条边的第一顶点组与第二顶点组中重合顶点的位置对应关系,从第二张量中获取对应的第二目标元素,在此不再赘述。
第四步,主核对应的各从核将第一目标元素与对应的第二目标元素相乘,并以所得乘积更新第一目标元素。
需要说明的是,每个从核从第一张量和第二张量中获取到第一目标数量个第一目标元素和对应的第二目标元素后,可以对每一第一目标元素和对应的第二目标元素进行求积运算。当主核对应的各从核计算完,以获得的乘积更新第一目标元素,完成融合操作。
举例而言,以第三步中的A123和B23为例,假设共有16个从核(标识符:0-15),那么可以令前8个从核对应的第一目标数量为1,其余8个对应的第一目标数量为0,每个从核根据自身标识符分别从A123和B23中获取一个元素,然后将获取到的元素相乘,具体如表3所示:
表3融合操作中具体运算示意
从核标识符 | 第一目标元素 | 第二目标元素 | 乘积 | 更新后的第一目标元素 |
0 | 1 | 5 | 5 | 5 |
1 | 1 | 6 | 6 | 6 |
2 | 2 | 7 | 14 | 14 |
3 | 2 | 8 | 16 | 16 |
4 | 3 | 5 | 15 | 15 |
5 | 3 | 6 | 18 | 18 |
6 | 4 | 7 | 28 | 28 |
7 | 4 | 8 | 32 | 32 |
第五步,主核删除第二条边,并将第二条边的除该顶点之外的其他顶点连接至第一条边。
可以理解的是,第二条边被融合到第一条边后,主核需要将其从子无向图中删除,而第二条边的除该顶点之外的其他顶点则需连接至第一条边。其中,当前的第一条边即是两条边融合后的新边。
进一步地,在针对子无向图中每一顶点,将该顶点的所有连接边融合成一条目标边的操作后,主核可以根据该顶点的两种取值对该条目标边进行降阶,降阶后,将该顶点删除。
具体地,将目标边张量的对应顶点序列中除该顶点之外,其他顶点按照原顶点序列的顺序排列得到一个新的顶点序列,该新顶点序列对应一个新张量,将新顶点序列的取值在目标边张量中对应的元素求和,得到的即是新张量的对应元素。
举例而言,假设该顶点为顶点2,融合顶点2的所有连接边后,获得目标边E123,其张量为A123={5,5,6,6,14,14,16,16}。目标边张量的对应顶点序列为“123”,除顶点2之外,得到新顶点序列“13”,新顶点序列的取值与A123中元素的对应关系如表4所示:
表4新顶点序列“13”的取值与A123中元素的对应关系
因此,对目标边E123基于顶点2降阶后,删除顶点2,得到一条目标边E13,对应张量A13={11,11,30,30}。
实际应用中,每个计算节点上的主核可以在针对子无向图中某一顶点融合得到的目标边进行降阶操作时,便将多组元素的求和计算进行拆分,调用不同的从核处理不同组元素的求和,实现二级并行。如表4对应的例子,可以由从核0获取一组对应元素(5,6),从核1获取一组对应元素(5,6),从核2获取一组对应元素(14,16),从核3获取一组对应元素(14,16),每个从核对获取到的一组对应元素求和,并将和写回新张量的对应位置。
需要说明的是,主核通常是按照顶点对应量子态的变换顺序,依次遍历无向子图中的顶点,执行融合操作,而后对目标边基于对应的顶点进行降阶,降阶后便删除该顶点,如此,当前顶点一般对应目标边张量下标中的第一位。这种情况下,对目标边基于当前顶点进行降阶,即是将目标边的张量基于第一个下标进行降阶,且待降的阶数为1,两个元素位置间的差值为(目标边张量的长度÷2)。可以理解的是,目标边张量的长度为2的N次方,其中N为非0整数。
具体地,所述降阶操作的过程可以包括:
主核创建第二临时张量;其中,第二临时张量的阶数为:待降阶张量的阶数减1得到的差;
主核配置对应的各从核的第三计算参数;其中,第三计算参数包括待降阶张量的第三长度;
主核对应的各从核根据第三计算参数,从待降阶张量中分别获取第三目标数量个第三目标元素和每一第三目标元素对应的第四目标元素;其中,第三目标元素与对应的第四目标元素的位置差值为第一数量,第一数量为:第三长度除以2获得的商;
主核配置对应的各从核对第三目标元素和对应的第四目标元素执行求和操作,获得第五目标元素,并以第五目标元素更新第二临时张量;
主核使用更新后的第二临时张量替代待降阶张量。
可以理解的是,第三计算参数可以为与待降阶张量和/或第二临时张量相关的参数,具体地,可以包括待降阶张量的长度或阶数,用于确定第三目标元素对应的第四目标元素,以及结合从核的总数量来确定第三目标数量;还可以包括待降阶张量和第二临时张量的标识或首地址,用于各从核从主核获取以及写回数据。
需要说明的是,本申请中每条边对应张量的下标与顶点对应,张量的阶数与对应顶点数相等,故针对1个顶点的取值进行降阶,即是将对应张量降1阶,故第三目标元素与其对应元素在待降阶张量中的位置差值为:待降阶张量的长度÷2。举例而言,若待降阶张量共有8个元素:第(000)2位-第(111)2位,其中,下标第一位对应当前顶点,可知,第一数量为4,当第三目标元素为待降阶张量中的第(010)2位元素时,则第四目标元素应为待降阶张量中第(110)2位元素;其中,下划线用于突出当前顶点的两种取值,不具有限定作用。
此外,可以理解的是,假设第三目标元素的位置相较第四目标元素偏小,那么,第五目标元素在第二临时张量中的对应位置与第三目标元素的位置相同,举例而言,第五目标元素由待降阶张量中的第(000)2位元素与第(100)2位元素之和,那么,第五目标元素对应第二临时张量的第(000)2位元素。
与升阶操作和融合操作类似,为了充分地利用超级计算集群中的资源,进而实现并行最大化,在第三计算参数包括待降阶张量的第三长度的情况下,第三目标数量可以由以下方式确定:
所述第三目标数量由以下方式确定:
判断主核对应的各从核的总数量是否小于第一数量;
若总数量小于第一数量,根据第一数量和总数量,确定第三目标数量;
若总数量等于第一数量,将第三目标数量确定为1;
若总数量大于第一数量,从主核对应的各从核中确定第一数量个第三目标从核,将第三目标从核对应的第三目标数量确定为1;将除第三目标从核之外的其他从核对应的第三目标数量确定为0。
其中,第一数量在此表示需要求和的元素组数,因为是降1阶的操作,故第一数量为:待降阶张量的长度÷2。
具体地,首先判断主核对应从核的总数量是否小于第一数量;若对应从核的总数量小于第一数量,表明至少一个从核需要对两组甚至多组元素进行求和,因此,需要先根据总数量和第一数量,获得每个对应从核的第三目标数量。
可以理解的是,当第一数量能被从核总数量整除时,可以将第一数量除以对应从核的总数量,获得第三计算长度,然后将求和计算均分给对应的各从核;当第一数量不能被从核总数量整除时,可以将第一数量除以从核总数量,求出商和余数,先根据商指定每个从核要获取的基础元素组数,再在这个基础上,根据余数指定其中至少一个从核的附加元素组数,如此最终确定每个从核的第三目标数量。当然也可以采取其他合理有效的实现方式,在此不做限定。
若主核对应从核的总数量等于第一数量时,可以将第三目标数量均确定为1,如此,对应的各从核都可以从待降阶张量中获取一组元素,进而将求和计算并行到每个对应从核上;若总数量大于第一数量,则可以选取第一数量个从核,每个被选取的从核从待降阶张量中获取一组元素,其他未被选取的从核则不进行求和计算,如此,将求和计算并行到被选取的多个从核上。
当本发明实施例提供的技术方案应用于如神威-太湖之光的超级计算机平台时,与升阶操作中类似,每个从核可以根据自身标识符来获取第三目标元素和第三目标元素对应的第四目标元素,此处不再赘述。
S205,合并所有目标子振幅,获得目标量子态分量的振幅。
可以理解的是,所涉及量子比特从初始量子态到目标量子态分量,有多条路径,而每个主核计算子无向图得到的目标子振幅只对应其中一条或几条路径,最终,仍需将每个主核得到的目标子振幅进行合并处理,具体地,是对所有的目标子振幅进行求和,得到的结果即为目标量子态分量的振幅。在实际应用中,也可以根据需求,对该振幅的模值求平方,得到的平方和既是目标量子态分量的概率。
图2所示实施例提供的单振幅量子计算模拟方法中,首先配置并行设置的分布式计算节点,其中分布式计算节点包括相互通信的主核和从核;而后,配置目标量子程序和目标量子态分量至各计算节点的主核,使得各主核根据目标量子程序和目标量子态分量,构建目标量子程序对应的无向图;其中,无向图的边对应目标量子程序中的量子逻辑门,无向图的顶点对应量子逻辑门执行前或执行后、所操作的量子比特的量子态;无向图的边用张量表示,张量中的元素由对应量子逻辑门的酉矩阵和边连接的顶点的取值共同决定;各主核再根据预设拆分原则,获得不同的子无向图;然后,各主核与对应的各从核配合,计算每一个子无向图,获得对应的目标子振幅;最后,合并所有目标子振幅,获得目标量子态分量的振幅,从而完成目标量子程序对应的量子计算的模拟。
应用本发明实施例,可以每次只计算所涉量子比特的一个目标单振幅,具体地,将目标量子程序映射到无向图上,并结合路径积分法,将无向图拆分至多个计算节点上,由每个计算节点的主核与对应的各从核配合计算对应的子无向图,从而实现二级并行。整个计算过程都是基于张量中元素的简单运算,与现有技术中基于酉矩阵的全振幅模拟相比,大大降低了对内存的需求,且计算量不随量子比特指数上升,从而可以实现涉及50个甚至更多个量子比特的量子计算模拟;二级并行在降低时间复杂度的同时,亦可以实现计算资源的利用最大化。目前,应用本发明实施例提供的技术方案,最大已可实现涉及196个量子比特的量子计算模拟。
此外,实际应用中,有时只需要量子比特全振幅中的一个或多个振幅,在这种情况下,若采用现有技术中的全振幅模式,即一次性模拟出所有的振幅,无疑是对内存等资源以及时间的浪费;而应用本发明实施例提供的方法,则可以有针对性地进行一次或多次模拟,模拟出需要的一个或多个单振幅即可,大大节省了资源与时间。
相应于上述方法实施例,本发明实施例提供了一种单振幅量子计算模拟装置,如图4所示,与图2所示流程相对应,所述装置可以包括:
配置模块401,用于配置并行设置的分布式计算节点,所述分布式计算节点包括相互通信的主核和从核;
无向图构建模块402,用于配置目标量子程序和目标量子态分量至所述配置模块401配置的各所述计算节点的主核,各所述主核根据所述目标量子程序和所述目标量子态分量,构建所述目标量子程序对应的无向图;其中,所述无向图的边对应所述目标量子程序中的量子逻辑门,所述无向图的顶点对应所述量子逻辑门执行前或执行后、所操作的量子比特的量子态;所述无向图的边用张量表示,所述张量中的元素由对应量子逻辑门的酉矩阵和所述边连接的顶点取值共同决定;
无向图拆分模块403,用于各所述主核根据所述预设拆分原则,获得不同的子无向图;
计算模块404,用于各所述主核与对应的各所述从核配合,计算所述无向图拆分模块403获得的每一个所述子无向图,获得对应的目标子振幅;
合并模块405,用于合并所述计算模块404获得的所有所述目标子振幅,获得所述目标量子态分量的振幅。
应用图4所示发明实施例提供的技术方案,可以每次只计算所涉量子比特的一个目标单振幅,具体地,将目标量子程序映射到无向图上,并结合路径积分法,将无向图拆分至多个计算节点上,由每个计算节点的主核与对应的各从核配合计算对应的子无向图,从而实现二级并行。整个计算过程都是基于张量中元素的简单运算,与现有技术中基于酉矩阵的全振幅模拟相比,大大降低了对内存的需求,且计算量不随量子比特指数上升,从而可以实现涉及50个甚至更多个量子比特的量子计算模拟;二级并行在降低时间复杂度的同时,亦可以实现计算资源的利用最大化。目前,应用本发明实施例提供的技术方案,最大已可实现涉及196个量子比特的量子计算模拟。
此外,实际应用中,有时只需要量子比特全振幅中的一个或多个振幅,在这种情况下,若采用现有技术中的全振幅模式,即一次性模拟出所有的振幅,无疑是对内存等资源以及时间的浪费;而应用本发明实施例提供的方法,则可以有针对性地进行一次或多次模拟,模拟出需要的一个或多个单振幅即可,大大节省了资源与时间。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上依据图式所示的实施例详细说明了本发明的构造、特征及作用效果,以上所述仅为本发明的较佳实施例,但本发明不以图面所示限定实施范围,凡是依照本发明的构想所作的改变,或修改为等同变化的等效实施例,仍未超出说明书与图示所涵盖的精神时,均应在本发明的保护范围内。
Claims (9)
1.一种单振幅量子计算模拟方法,其特征在于,所述方法包括:
配置并行设置的分布式计算节点,所述分布式计算节点包括相互通信的主核和从核;
配置目标量子程序和目标量子态分量至各所述计算节点的主核,各所述主核根据所述目标量子程序和所述目标量子态分量,构建所述目标量子程序对应的无向图;其中,所述无向图的边对应所述目标量子程序中的量子逻辑门,所述无向图的顶点对应所述量子逻辑门执行前或执行后、所操作的量子比特的量子态;所述无向图的边用张量表示,所述张量中的元素由对应量子逻辑门的酉矩阵和所述边连接的顶点的取值共同决定;
各所述主核根据预设拆分原则,获得不同的子无向图;
各所述主核与对应的各所述从核配合,计算每一个所述子无向图,获得对应的目标子振幅;
合并所有所述目标子振幅,获得所述目标量子态分量的振幅。
2.根据权利要求1所述的单振幅量子计算模拟方法,其特征在于,所述各所述主核与对应的各所述从核配合,计算所述子无向图,获得对应的目标子振幅的步骤,包括:
各所述主核与对应的各所述从核配合,针对所述子无向图中每一顶点,对该顶点的所有连接边执行融合操作,获得一条目标边;基于该顶点的取值,对所述目标边执行降阶操作,并删除该顶点;
对所有降阶后的所述目标边的张量求积,获得所述子无向图对应的目标子振幅。
3.根据权利要求2所述的单振幅量子计算模拟方法,其特征在于,所述融合操作的过程,包括:
所述主核确定待融合的第一条边和第二条边,所述主核与对应的各所述从核配合,根据所述第二条边的第二顶点组中不与所述第一条边相连接的顶点,对所述第一条边的第一张量执行升阶操作;
所述主核配置对应的各所述从核的第一计算参数;所述第一计算参数包括所述第一条边的第一顶点组与所述第二顶点组中重合顶点的位置对应关系;
所述主核对应的各所述从核从所述第一张量中获得第一目标数量个第一目标元素,并根据所述位置对应关系从所述第二条边的第二张量中获得每一所述第一目标元素对应的第二目标元素;
所述主核对应的各所述从核将所述第一目标元素与对应的所述第二目标元素相乘,并以所得乘积更新所述第一目标元素;
所述主核删除所述第二条边,并将所述第二条边的除所述该顶点之外的其他顶点连接至所述第一条边。
4.根据权利要求3所述的单振幅量子计算模拟方法,其特征在于,所述第一计算参数还包括:所述第一张量的第一长度;
所述第一目标数量由以下方式确定:
判断所述主核对应的各所述从核的总数量是否小于所述第一长度;
若所述总数量小于所述第一长度,根据所述第一长度和所述总数量,确定所述第一目标数量;
若所述总数量等于所述第一长度,将所述第一目标数量确定为1;
若所述总数量大于所述第一长度,从所述主核对应的各所述从核中确定所述第一长度个第一目标从核,将所述第一目标从核对应的所述第一目标数量确定为1;将除所述第一目标从核之外的其他所述从核对应的所述第一目标数量确定为0。
5.根据权利要求3所述的单振幅量子计算模拟方法,其特征在于,所述升阶操作的过程包括:
所述主核创建第一临时张量,所述第一临时张量的阶数为待升的阶数与待升阶张量的阶数之和;所述待升的阶数为:所述第二顶点组中不与所述第一条边相连接的顶点数;
所述主核配置对应的各所述从核的第二计算参数;
所述主核对应的各所述从核根据所述第二计算参数,从所述待升阶张量中获取第二目标数量个不同的元素,并以所述第二目标数量个不同的元素更新所述第一临时张量;
所述主核使用更新后的所述第一临时张量替代所述待升阶张量。
6.根据权利要求5所述的单振幅量子计算模拟方法,其特征在于,所述第二计算参数包括所述待升阶张量的第二长度;
所述第二目标数量由以下方式确定:
判断所述主核对应的各所述从核的总数量是否小于所述第二长度;
若所述总数量小于所述第二长度,根据所述第二长度和所述总数量,确定所述第二目标数量;
若所述总数量等于所述第二长度,将所述第二目标数量确定为1;
若所述总数量大于所述第二长度,从所述主核对应的各所述从核中确定所述第二长度个第二目标从核,将所述第二目标从核对应的所述第二目标数量确定为1;将除所述第二目标从核之外的其他所述从核对应的所述第二目标数量确定为0。
7.根据权利要求2所述的单振幅量子计算模拟方法,其特征在于,所述降阶操作的过程包括:
所述主核创建第二临时张量;其中,所述第二临时张量的阶数为:待降阶张量的阶数减1得到的差;
所述主核配置对应的各所述从核的第三计算参数;其中,所述第三计算参数包括所述待降阶张量的第三长度;
所述主核对应的各所述从核根据所述第三计算参数,从所述待降阶张量中分别获取第三目标数量个第三目标元素和每一所述第三目标元素对应的第四目标元素;其中,所述第三目标元素与对应的所述第四目标元素的位置差值为第一数量,所述第一数量为:所述第三长度除以2获得的商;
所述主核配置对应的各所述从核对所述第三目标元素和对应的所述第四目标元素执行求和操作,获得第五目标元素,并以所述第五目标元素更新所述第二临时张量;
所述主核使用更新后的所述第二临时张量替代所述待降阶张量。
8.根据权利要求7所述的单振幅量子计算模拟方法,其特征在于,所述第三目标数量由以下方式确定:
判断所述主核对应的各所述从核的总数量是否小于第一数量;
若所述总数量小于所述第一数量,根据所述第一数量和所述总数量,确定所述第三目标数量;
若所述总数量等于所述第一数量,将所述第三目标数量确定为1;
若所述总数量大于所述第一数量,从所述主核对应的各所述从核中确定所述第一数量个第三目标从核,将所述第三目标从核对应的所述第三目标数量确定为1;将除所述第三目标从核之外的其他所述从核对应的所述第三目标数量确定为0。
9.一种单振幅量子计算模拟装置,其特征在于,所述装置包括:
配置模块,用于配置并行设置的分布式计算节点,所述分布式计算节点包括相互通信的主核和从核;
无向图构建模块,用于配置目标量子程序和目标量子态分量至所述配置模块配置的各所述计算节点的主核,各所述主核根据所述目标量子程序和所述目标量子态分量,构建所述目标量子程序对应的无向图;其中,所述无向图的边对应所述目标量子程序中的量子逻辑门,所述无向图的顶点对应所述量子逻辑门执行前或执行后、所操作的量子比特的量子态;所述无向图的边用张量表示,所述张量中的元素由对应量子逻辑门的酉矩阵和所述边连接的顶点的取值共同决定;
无向图拆分模块,用于各所述主核根据预设拆分原则,获得不同的子无向图;
计算模块,用于各所述主核与对应的各所述从核配合,计算所述无向图拆分模块获得的每一个所述子无向图,获得对应的目标子振幅;
合并模块,用于合并所述计算模块获得的所有所述目标子振幅,获得所述目标量子态分量的振幅。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910373421.1A CN111915011B (zh) | 2019-05-07 | 2019-05-07 | 一种单振幅量子计算模拟方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910373421.1A CN111915011B (zh) | 2019-05-07 | 2019-05-07 | 一种单振幅量子计算模拟方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111915011A CN111915011A (zh) | 2020-11-10 |
CN111915011B true CN111915011B (zh) | 2023-11-03 |
Family
ID=73241644
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910373421.1A Active CN111915011B (zh) | 2019-05-07 | 2019-05-07 | 一种单振幅量子计算模拟方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111915011B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114692880B (zh) * | 2020-12-31 | 2023-09-05 | 本源量子计算科技(合肥)股份有限公司 | 一种量子线路中量子态振幅的模拟方法及装置 |
US20240095563A1 (en) * | 2021-02-26 | 2024-03-21 | Origin Quantum Computing Technology (Hefei) Co., Ltd. | Quantum convolution operator |
CN113326066B (zh) * | 2021-04-13 | 2022-07-12 | 腾讯科技(深圳)有限公司 | 量子控制微体系结构、量子控制处理器及指令执行方法 |
CN116523053A (zh) * | 2022-01-24 | 2023-08-01 | 腾讯科技(深圳)有限公司 | 量子线路模拟方法、装置、设备、存储介质及程序产品 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2004015545A2 (en) * | 2002-08-10 | 2004-02-19 | Routt Thomas J | Methods for transmitting data across quantum interfaces and quantum gates using same |
JP2006086765A (ja) * | 2004-09-15 | 2006-03-30 | Nippon Telegr & Teleph Corp <Ntt> | ノード選択方法、ノード選択装置、ノード選択プログラム及びそのプログラムを記録した記録媒体 |
EP1672569A1 (en) * | 2004-12-20 | 2006-06-21 | STMicroelectronics S.r.l. | A method of performing a quantum algorithm for simulating a genetic algorithm |
CA2786380A1 (en) * | 2010-01-18 | 2011-07-21 | Elminda Ltd. | Method and system for weighted analysis of neurophysiological data |
CA3079533A1 (en) * | 2017-10-18 | 2019-04-25 | Google Llc | Simulation of quantum circuits |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10565514B2 (en) * | 2016-03-31 | 2020-02-18 | Board Of Regents, The University Of Texas System | System and method for emulation of a quantum computer |
-
2019
- 2019-05-07 CN CN201910373421.1A patent/CN111915011B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2004015545A2 (en) * | 2002-08-10 | 2004-02-19 | Routt Thomas J | Methods for transmitting data across quantum interfaces and quantum gates using same |
JP2006086765A (ja) * | 2004-09-15 | 2006-03-30 | Nippon Telegr & Teleph Corp <Ntt> | ノード選択方法、ノード選択装置、ノード選択プログラム及びそのプログラムを記録した記録媒体 |
EP1672569A1 (en) * | 2004-12-20 | 2006-06-21 | STMicroelectronics S.r.l. | A method of performing a quantum algorithm for simulating a genetic algorithm |
CA2786380A1 (en) * | 2010-01-18 | 2011-07-21 | Elminda Ltd. | Method and system for weighted analysis of neurophysiological data |
CA3079533A1 (en) * | 2017-10-18 | 2019-04-25 | Google Llc | Simulation of quantum circuits |
Non-Patent Citations (1)
Title |
---|
基于电网差异化规划原则分析的核心骨干网架构建方法研究;李隽;罗金山;吴军;刘涤尘;董飞飞;;陕西电力(12);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN111915011A (zh) | 2020-11-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111915011B (zh) | 一种单振幅量子计算模拟方法 | |
JP2021520546A (ja) | 量子計算のための方法及びシステム | |
CN112085204B (zh) | 一种用于量子编译的线路变换方法 | |
CN111914378B (zh) | 一种单振幅量子计算模拟方法及装置 | |
CN111027702B (zh) | 一种实现量子线路替换的方法、装置、存储介质和电子装置 | |
KR20200088475A (ko) | 신경망의 기능적 부분망의 동시 훈련 | |
CN110516810B (zh) | 一种量子程序的处理方法、装置、存储介质和电子装置 | |
CN114764549B (zh) | 基于矩阵乘积态的量子线路模拟计算方法、装置 | |
JPH08508838A (ja) | 有限要素法の新しい解析法及び解析器 | |
CN107851102A (zh) | 用于键值存储的***和方法 | |
CN111931939B (zh) | 一种单振幅量子计算模拟方法 | |
CN111178532A (zh) | 一种量子线路匹配的方法、装置、存储介质和电子装置 | |
US20170140072A1 (en) | Method and system for determining a configuration of a model having a collection of entities and satisfying a set of constraints | |
JP7381723B2 (ja) | 量子操作実行方法及び装置、量子操作の制御波形の生成方法及び装置、量子操作チップ、並びにコンピュータ装置及びプログラム | |
US9594863B2 (en) | Method for determining by optimization a multi-core architecture | |
CN105404611A (zh) | 一种基于矩阵模型的多计算引擎的自动选择方法 | |
CN113128015B (zh) | 预估单振幅模拟量子计算所需资源的方法和*** | |
WO2006132639A1 (en) | Circuit splitting in analysis of circuits at transistor level | |
Yang | An easily implemented, block-based fast marching method with superior sequential and parallel performance | |
JP6992688B2 (ja) | 処理装置、方法、及びプログラム | |
US9361588B2 (en) | Construction of tree-shaped bayesian network | |
CN114692880B (zh) | 一种量子线路中量子态振幅的模拟方法及装置 | |
CN115544307A (zh) | 基于关联矩阵的有向图数据特征提取与表达方法和*** | |
CN114707655A (zh) | 一种量子线路转换方法、***、存储介质和电子设备 | |
US9600446B2 (en) | Parallel multicolor incomplete LU factorization preconditioning processor and method of use thereof |
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 |
Address after: 230008 6th floor, building E2, phase II, pioneering Industrial Park, Hefei hi tech Zone, Hefei City, Anhui Province Applicant after: Benyuan Quantum Computing Technology (Hefei) Co.,Ltd. Address before: 230008 6th floor, building E2, phase II, pioneering Industrial Park, Hefei hi tech Zone, Hefei City, Anhui Province Applicant before: ORIGIN QUANTUM COMPUTING COMPANY, LIMITED, HEFEI |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |