CN111914378A - 一种单振幅量子计算模拟方法 - Google Patents
一种单振幅量子计算模拟方法 Download PDFInfo
- Publication number
- CN111914378A CN111914378A CN201910323037.0A CN201910323037A CN111914378A CN 111914378 A CN111914378 A CN 111914378A CN 201910323037 A CN201910323037 A CN 201910323037A CN 111914378 A CN111914378 A CN 111914378A
- Authority
- CN
- China
- Prior art keywords
- quantum
- target
- vertex
- undirected graph
- amplitude
- 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
- 238000004088 simulation Methods 0.000 title claims abstract description 72
- 238000000034 method Methods 0.000 title claims abstract description 61
- 239000002096 quantum dot Substances 0.000 claims abstract description 55
- 239000011159 matrix material Substances 0.000 claims description 78
- 238000004364 calculation method Methods 0.000 claims description 47
- 230000009467 reduction Effects 0.000 claims description 22
- 230000004927 fusion Effects 0.000 claims description 19
- 238000005094 computer simulation Methods 0.000 claims description 6
- 238000010276 construction Methods 0.000 claims description 5
- 230000015654 memory Effects 0.000 description 20
- 230000006870 function Effects 0.000 description 16
- 230000008569 process Effects 0.000 description 14
- 230000010354 integration Effects 0.000 description 6
- 239000002699 waste material Substances 0.000 description 5
- 230000009471 action Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 4
- 230000005610 quantum mechanics Effects 0.000 description 4
- 230000009466 transformation Effects 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 239000002904 solvent Substances 0.000 description 2
- 241001235534 Graphis <ascomycete fungus> Species 0.000 description 1
- 239000004178 amaranth Substances 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000000354 decomposition reaction Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000012900 molecular simulation Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000010845 search algorithm Methods 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
Images
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种单振幅量子计算模拟方法,应用于至少一个计算节点,包括:接收控制节点发送的目标量子程序的数据信息和目标量子态分量;根据预设规则和数据信息,构建目标量子程序对应的无向图;其中,无向图的顶点对应量子逻辑门执行前和/或执行后、所操作的量子比特的量子态;无向图的每条边对应一个张量,该张量中的元素由对应量子逻辑门的酉矩阵和边连接的顶点取值共同决定;接收控制节点分发的顶点取值;根据顶点取值和目标量子态分量,计算无向图,获得目标子振幅;将目标子振幅反馈至控制节点;以使得控制节点合并每个计算节点发送的每个目标子振幅,获得目标量子态分量的振幅。应用本发明实施例,可以实现涉及50个甚至更多个量子比特的量子计算模拟。
Description
技术领域
本发明属于量子计算技术领域,更具体地,涉及单振幅量子计算模拟方法及装置。
背景技术
量子计算机(quantum computer)是一类遵循量子力学规律进行高速数学和逻辑运算、存储及处理量子信息的物理装置。当某个装置处理和计算的是量子信息,运行的是量子算法时,它就是量子计算机。
量子计算机可执行多种经典计算机不能实现的任务,比如量子模拟和分解大质因数。在量子计算前进的道路上,我们应该首先实现“量子霸权”,即需要先实现量子比特数在50以上,并且有着高保真度的量子计算机。但在真正实现“量子霸权”的量子计算机之前,我们可以先通过量子计算的相关理论,进行量子计算模拟,从而实现量子计算机的软硬件解耦,为量子程序和量子应用的发展打下基础。
量子计算模拟是一个借助数值计算和计算机科学来仿真遵循量子力学规律的模拟计算,介于数学、量子力学和计算机科学之间的交叉学科,在大数据分解算法、搜索算法、分子模拟等有着重要的应用。作为一个仿真程序,它依据量子力学的量子比特的基本定律,利用计算机的高速计算能力,刻画量子态的时空演化。
目前,在进行量子计算模拟时,多采用全振幅模式,即一次性模拟出所有量子比特的振幅。但全振幅模式需要占用的内存量过大,当量子计算的模拟涉及50个量子比特时,便需要16PB的内存,而这已超过了全球最快的超级计算机的内存总量,也超过了世界上所有内存的总和。即,世界上所有的计算机内存加起来也不能实现涉及50个甚至更多个量子比特的量子计算模拟。
发明内容
本发明的目的是提供单振幅量子计算模拟方法及装置,以实现涉及50甚至更多个量子比特的量子计算模拟。
为达到上述目的,本发明实施例公开了单振幅量子计算模拟方法及装置。具体技术方案如下:
第一方面,本发明实施例公开了一种单振幅量子计算模拟方法,应用于至少一个计算节点,所述方法包括:
接收控制节点发送的目标量子程序的数据信息和目标量子态分量;
根据预设规则和所述数据信息,构建所述目标量子程序对应的无向图;其中,所述无向图的顶点对应量子逻辑门执行前和/或执行后、所操作的量子比特的量子态;所述无向图的每条边对应一个张量,所述张量中的元素由对应量子逻辑门的酉矩阵和所述边连接的顶点取值共同决定;
接收所述控制节点分发的顶点取值;所述顶点取值为所述无向图的顶点中M个顶点的所有取值中的一个或多个,其中M为正整数;
根据所述顶点取值和所述目标量子态分量,计算所述无向图,获得目标子振幅;
将所述目标子振幅反馈至所述控制节点;以使得所述控制节点合并每个所述计算节点发送的每个所述目标子振幅,获得所述目标量子态分量的振幅。
可选地,所述预设规则包括:
当量子逻辑门为第一类型量子逻辑门时,向无向图添加一条对应边;
当量子逻辑门为第二类型量子逻辑门时,向无向图添加一个顶点和一条对应边;
当量子逻辑门为第三类型量子逻辑门时,向无向图添加两个顶点和一条对应边;
其中,
所述第一类型量子逻辑门为单量子逻辑门或双量子逻辑门,且其对应的酉矩阵为对角矩阵;
所述第二类型量子逻辑门为单量子逻辑门且其对应的酉矩阵为非对角矩阵;
所述第三类型量子逻辑门为双量子逻辑门且其对应的酉矩阵为非对角矩阵。
可选地,所述根据所述顶点取值和所述目标量子态分量,计算所述无向图,获得目标子振幅的步骤,包括:
根据所述顶点取值和所述目标量子态分量,对所述无向图进行确定值降阶,获得至少一个目标子无向图;
计算所述目标子无向图,获得每一个所述目标子无向图对应的第一子振幅;
对所述第一子振幅求和,获得目标子振幅。
可选地,所述计算所述目标子无向图,获得所述目标子无向图对应的第一子振幅的步骤,包括:
针对所述目标子无向图中每一顶点,对该顶点的所有连接边执行融合操作,获得一条目标边;对所述目标边执行降阶操作,并删除该顶点;
对所有降阶后的所述目标边的张量求积,获得所述目标子无向图对应的第一子振幅。
可选地,所述融合操作的步骤,包括:
确定待融合的第一条边和第二条边;
根据所述第二条边的第二顶点组中不与所述第一条边相连的顶点,对所述第一条边的第一张量执行升阶操作,并以升阶后的张量更新所述第一张量;
根据所述第一张量对应的第一顶点组与所述第二顶点组之间的对应关系,确定所述第一张量中每一元素在所述第二条边的第二张量中的对应元素;
遍历所述第一张量中的每一元素,以该元素与其在所述第二张量中对应元素的乘积更新该元素;
删除所述第二条边,并将所述第二条边的除所述该顶点之外的其他顶点连接至所述第一条边。
可选地,所述M个顶点为所述无向图中连接边数最多的前M个顶点。
第二方面,本发明实施例提供了一种单振幅量子计算模拟方法,应用于控制节点,所述方法包括:
向至少一个计算节点发送目标量子程序的数据信息和目标量子态分量;以使得所述至少一个计算节点根据预设规则和所述数据信息,构建所述目标量子程序对应的无向图;其中,所述无向图的顶点对应量子逻辑门执行前和/或执行后、所操作的量子比特的量子态;所述无向图的每条边对应一个张量,所述张量中的元素由对应量子逻辑门的酉矩阵和所述边连接的顶点取值共同决定;
向所述至少一个计算节点分发顶点取值,以使得所述至少一个计算节点根据所述顶点取值和所述目标量子态分量,计算所述无向图,获得目标子振幅;其中,所述顶点取值为所述无向图的顶点中M个顶点的所有取值中的一个或多个;
接收所述至少一个计算节点反馈的所述目标子振幅,并将所有所述目标子振幅进行合并处理,获得所述目标量子态分量的振幅。
第三方面,本发明实施例提供了一种单振幅量子计算模拟装置,应用于至少一个计算节点,所述装置包括:
第一接收模块,用于接收控制节点发送的目标量子程序的数据信息和目标量子态分量;
无向图构建模块,用于根据预设规则和所述第一接收模块接收的数据信息,构建所述目标量子程序对应的无向图;其中,所述无向图的顶点对应量子逻辑门执行前和/或执行后、所操作的量子比特的量子态;所述无向图的每条边对应一个张量,所述张量中的元素由对应量子逻辑门的酉矩阵和所述边连接的顶点取值共同决定;
第二接收模块,用于接收所述控制节点分发的顶点取值;所述顶点取值为所述无向图的顶点中M个顶点的所有取值中的一个或多个,其中M为正整数;
计算模块,用于根据所述第二接收模块接收的顶点取值和所述第一接收模块接收的目标量子态分量,计算所述无向图,获得目标子振幅;
反馈模块,将所述计算模块获得的目标子振幅反馈至所述控制节点,以使得所述控制节点合并每个所述计算节点发送的每个所述目标子振幅,获得所述目标量子态分量的振幅。
第四方面,本发明实施例提供了一种单振幅计算模拟装置,应用于控制节点,所述装置包括:
发送模块,用于向至少一个计算节点发送目标量子程序的数据信息和目标量子态分量;以使得所述至少一个计算节点根据预设规则和所述数据信息,构建所述目标量子程序对应的无向图;其中,所述无向图的顶点对应量子逻辑门执行前和/或执行后、所操作的量子比特的量子态;所述无向图的每条边对应一个张量,所述张量中的元素由对应量子逻辑门的酉矩阵和所述边连接的顶点取值共同决定;
分发模块,用于向所述至少一个计算节点分发顶点取值,以使得所述至少一个计算节点根据所述分发模块分发的顶点取值和所述发送模块发送的目标量子态分量,计算所述无向图,获得目标子振幅;其中,所述顶点取值为所述无向图的顶点中M个顶点的所有取值中的一个或多个;
合并模块,用于接收所述至少一个计算节点反馈的所述目标子振幅,并将所有所述目标子振幅进行合并处理,获得所述目标量子态分量的振幅。
应用本发明实施例,可以每次只计算所涉量子比特的一个目标振幅,具体地,将目标量子程序映射到无向图上,并结合路径积分法,将无向图拆分成多个子图,然后在多个计算节点上进行计算,整个计算过程都是基于张量中元素的简单运算,与现有技术中基于酉矩阵的全振幅模拟相比,大大降低了对内存的需求,且计算量不随量子比特指数上升,从而可以实现涉及50个甚至更多个量子比特的量子计算模拟。目前,应用本发明实施例提供的技术方案,最大已可实现涉及196个量子比特的量子计算模拟。
此外,实际应用中,有时只需要量子比特全振幅中的一个或多个振幅,在这种情况下,若采用现有技术中的全振幅模式,即一次性模拟出所有的振幅,无疑是对内存等资源以及时间的浪费;而应用本发明实施例提供的方法,则可以有针对性地进行一次或多次模拟,模拟出需要的一个或多个单振幅即可,大大节省了资源与时间。
附图说明
图1是量子程序对应量子线路拆分成不同路径的具体示例;
图2是本发明实施例所提供的单振幅量子计算模拟方法一种流程图;
图3是本发明实施例所提供的单振幅量子计算模拟方法中不同类型量子逻辑门构建的无向图示意图;
图4是本发明实施例所提供的单振幅量子计算模拟方法的另一种流程示意图;
图5是本发明实施例所提供的单振幅量子计算模拟装置的一种结构示意图;
图6是本发明实施例所提供的单振幅量子计算模拟装置的另一种结构示意图。
具体实施方式
下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。
为了实现涉及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的矩阵,而对角线上的元素可以为0或其他值。
本领域人员可以理解的是,假设目标量子程序中除量子比特的初始量子态|0…0>和末态外共涉及M1个量子态,那么,由于每个量子比特的状态都可以处于|0>和|1>的叠加态,故针对M1个中的一个量子态,将其拆分成两个量子态分量:|0>和|1>,便可获得初始量子态到末态分量x=|x0…xn-1>的2M1条可能的变换路径,计算每条路径的振幅,再进行求和便可得末态分量,即目标量子态分量的振幅。其中,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 2拆分成|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,接收控制节点发送的目标量子程序的数据信息和目标量子态分量。
其中,控制节点与每个计算节点相互通信,它可以是一台计算机,也可以是一个虚拟计算机,或者任何一种具备申请文件中功能的软硬件。
需要说明的是,目标量子程序的数据信息,可以是目标量子程序的源码;也可以是目标量子程序解析后的目标类型格式的信息,包括量子逻辑门信息以及所涉及量子比特的初始化信息。其中,目标类型格式,可以是链表、队列等,考虑到后续无向图构建时可以更高效,优选链表。
具体地,控制节点可以直接将目标量子程序发送至每个计算节点,由每个计算节点解析得到链表;也可以优选地,先由控制节点将目标量子程序进行解析,得到对应的链表,然后将链表发送至每一个计算节点,以进行后续处理。
S202,根据预设规则和该数据信息,构建目标量子程序对应的无向图。
具体地,可以读取目标量子程序的数据信息,然后按照预设的规则,来构建目标量子程序对应的无向图。可以理解的是,无向图构建过程中,是按照量子程序中逻辑门的顺序和其操作的量子比特量子态的变换情况来添加顶点与边的。
实际应用中,根据量子逻辑门的性质,预设规则可以为:
当量子逻辑门为第一类型量子逻辑门时,向无向图添加一条对应边;
当量子逻辑门为第二类型量子逻辑门时,向无向图添加一个顶点和一条对应边;
当量子逻辑门为第三类型量子逻辑门时,向无向图添加两个顶点和一条对应边;
其中,
第一类型量子逻辑门为单量子逻辑门或双量子逻辑门,且其对应的酉矩阵为对角矩阵;
第二类型量子逻辑门为单量子逻辑门且其对应的酉矩阵为非对角矩阵;
第三类型量子逻辑门为双量子逻辑门且其对应的酉矩阵为非对角矩阵。
其中,无向图的顶点对应量子逻辑门执行前和/或执行后、所操作的量子比特的量子态分量,取值均为{0,1},对应公式(1)中的变量而所操作的量子比特即是对应量子逻辑门操作的量子比特。无向图的边对应目标量子程序中的量子逻辑门,具体地,每个量子逻辑门对应的边都对应一个张量,该张量中的元素由量子逻辑门对应的酉矩阵和对应边连接的顶点取值共同决定,可以理解的是该张量对应公式(1)中的ψ函数。
其中,张量(Tensor)是一个同时定义在几个线性空间的量,它是矢量概念和矩阵概念的推广。每个张量可以采用下标标记法,如张量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。
在本发明实施例中,张量的阶与该张量对应边连接的顶点个数相等,张量的下标为无向图中顶点的编号。由于每个顶点的取值都只能为0或1,只有两种可能性,所以,对于一个n阶张量,其形状shape=[2,2,2…2],元素个数为2n。
而每一个张量元素的编号都可以表示为一个二进制编号,二进制编号的每一位可以表示为对应顶点的取值。
举例而言,边Em连接4个顶点,那么,它对应的张量就是一个4阶张量,其元素共有24=16个,则元素编号可以表示为二进制数:(0000)2~(1111)2。当边Em连接的4个顶点按照一定顺序排列,得到一个顶点序列,当四个顶点均取值为O时,顶点序列的组合取值为“0000”时,对应张量的第(0000)2位元素;当边Em连接的第一个顶点取值为1,第二个顶点取值为0,第三个顶点取值为0,第四个顶点取值为1时,则顶点序列的组合取值为“1001”,对应张量的(1001)2位元素。
实际应用中,当量子逻辑门为单量子逻辑门或双量子逻辑门且其对应的酉矩阵为对角矩阵,即对角单量子逻辑门或对角双量子逻辑门时,这类量子逻辑门作用在量子比特上,通常只会带来振幅的改变,而对应量子比特的量子态分量——对应公式(1)中的则一般不会有改变。
此类型单量子逻辑门,典型地如泡利-Z门(Pauli-Z gate),其酉矩阵为
当利用泡利-Z门操作一个量子比特时,保留该量子比特的基本状态|0>不变,并将|1>转换成-|1>。
此类型双量子逻辑门,典型地如CZ门,其酉矩阵为
当对两个量子比特Q0、Q1(Q0为控制比特,Q1为目标比特)执行CZ门操作时,当Q0的量子态为|0>时,Q1的量子态不变;当Q0的量子态为|1>时,Q1的量子态保留|0>不变,将|1>换成-|1>。
可以看出,无论是泡利-Z门还是CZ门,带来的都只是量子态分量振幅的变化,量子态分量不变。因此,对这类量子逻辑门,即酉矩阵为对角矩阵的单量子逻辑门或双量子逻辑门,构建无向图时,向无向图添加一条量子逻辑门对应边即可。
如图(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”的取值来对应张量中元素,若按此顺序,可以理解的是,需要说明的是,顶点序列的一种取值唯一确定张量中一个元素,但顶点序列的取值与张量中对应元素的位置关系并不是唯一的,可以根据实际需求而定。
当量子逻辑门为单量子逻辑门且其对应的酉矩阵为非对角矩阵,即非对角单量子逻辑门时,如H门,其酉矩阵为经过H门的操作,|0>将变为|1>将变为振幅和量子态分量都发生改变。对这类量子逻辑门,在构建无向图时,需向无向图添加一个单量子逻辑门操作后新量子态对应的顶点和一条量子逻辑门对应边。
如图(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位元素。
当量子逻辑门为双量子逻辑门且其对应的酉矩阵为非对角矩阵,即非对角双量子逻辑门时,如CNOT门,其酉矩阵为经过CNOT门的操作,控制比特的量子态为|0>时,受控比特的量子态不变,即控制比特和受控比特的量子态为|00>和|01>时,经CNOT门操作后,依然分别为|00>和|01>;控制比特的量子态为|1>时,受控比特的量子态则做非操作,即,将|0>变为|1>,将|1>变为|0>,即控制比特和受控比特的量子态为|10>和|11>时,经CNOT门操作后,分别变为|11>和|10>。因两个量子比特通常处于|00>、|01>、|10>和|11>的叠加态,故经CNOT门操作后,可以看出,所涉及两个量子比特的振幅和量子态分量均将发生改变。对这类量子逻辑门,在构建无向图时,针对每一个量子比特,需向无向图添加一个其在双量子逻辑门操作后新量子态对应的顶点,即两个新顶点,并向无向图添加一条双量子逻辑门的对应边。
如图(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中各元素的对应关系
具体实现过程中,关于无向图的存储,可以包括顶点链存储数据以及边的张量信息。
更具体地,顶点链存储数据可以包括:顶点的值、顶点连接的边信息以及顶点标识。其中,顶点标识唯一确定一个顶点,根据该标识可以确定对应顶点属于哪个量子比特及其取值、连接边信息等;顶点的值确定后,应为0或1;但当顶点的值不确定时,可以为空,也可以为任一约定的符合顶点的取值类型的数值或字符,比如-1,用以在实现过程中对顶点的取值情况进行判断。其中,顶点的值可以用张量表示,也可以用变量或者其他合理的数据类型来表示。
边的张量信息,可以包括张量数组以及该张量对应边连接的顶点的标识。
当然,上述关于无向图存储的描述只是一具体实现,实际应用中,视需求而定,并不限于此。
本领域人员可以理解的是,任意多量子比特门都可以用一个单量子逻辑门加上一个任意的双量子逻辑门来构建,在大多数情况下,双量子逻辑门多选择CNOT门。某种意义上,CNOT门和单量子逻辑门是其他所有门的原型。故而本申请提供的方法也适用于带有多量子比特门的量子程序,实际应用中,可先将该量子程序中的多量子比特门转化成单量子逻辑门和双量子逻辑门的组合,然后再应用本发明提供的单振幅量子计算模拟方法。
S203,接收控制节点分发的顶点取值。
其中,顶点取值为无向图的顶点中M个顶点的所有组合取值中的一个或多个,其中,M为正整数,M的取值受实际应用中计算节点总数的限制,具体地,2M≤计算节点总数。
实际应用中,由控制节点确定M个顶点的所有组合取值,然后将这些取值均分或者按照计算节点的计算能力等分发给每个计算节点。
可以理解的是,由于每个顶点的取值为{0,1},所以M个顶点的所有组合取值共2M个,对应所涉及量子比特从初始量子态到目标量子态分量的2M条路径。
实际应用中,控制节点将M个顶点的所有组合取值分发到至少一个计算节点上,相当于将无向图拆分成2M个子图,每个计算节点根据接收到的顶点取值,对无向图进行确定值降阶,将无向图拆分成2M个子图中的一个或多个,可以理解的是,拆分的子图数量由接收到的顶点取值数量决定。
S204,根据顶点取值和目标量子态分量,计算无向图,获得目标子振幅。具体地,根据所述顶点取值和所述目标量子态分量,计算无向图,获得目标子振幅的步骤,可以包括:
根据顶点取值和所述目标量子态分量,对无向图进行确定值降阶,获得至少一个目标子无向图;
计算目标子无向图,获得每一个目标子无向图对应的第一子振幅;
对所述第一子振幅求和,获得目标子振幅。
实际应用中,当量子计算的模拟涉及众多量子比特时,若直接用狄拉克符号|>结合二进制表示方法来表示每个量子态或量子态分量,将会非常不方便。因此,常用二进制表示方法对应的十进制数来表示,如|000>即为零态,|0100>即为4态。可以理解的是,若目标量子态分量为十进制数,需将其转换成二进制字符串,然后再发送给每个计算节点。可以理解的是,该二进制字符串中的每一位都对应一个量子比特的取值,且其从低位到高位依次与从低位到高位的量子比特相对应,需要说明的是,低位和高位的排布对量子计算机而言,同经典计算机,均是低位到高位按照从左到右的顺序排列。举例而言,假设目标量子态分量为5态,转换成二进制形式即是“101”,对应3个量子比特(从低位到高位依次为:Q0、Q1、Q2),那么,“101”分别对应“Q2Q1Q0”。
每个计算节点在构建好无向图后,便可以首先根据所涉及量子比特的初始量子态和目标量子态分量确定无向图的头、尾顶点的取值,然后分别对与头顶点相连的边和与尾顶点相连的边进行确定值降阶。
随后,再根据接收到的顶点取值,对M个顶点连接的边进行确定值降阶,获得至少一个目标子无向图;然后,计算每一个目标子无向图,获得其对应的第一子振幅,最后对所有目标子无向图对应的第一子振幅求和,得到的和便是目标子振幅,也就是当前计算节点所有路径的振幅。
其中,若顶点的取值是用张量来表示的,可知,该张量为1阶张量,取值{0,1},那么便需在对边进行确定值降阶前,先根据确定的顶点值,将头、尾顶点以及M个顶点对应的张量从1阶降阶为0阶,即降为常量。
优选地,这M个顶点可以为无向图中连接边数最多的前M个顶点,如此,可以对更多的边的张量实现降阶,从而提高整体的计算速度。
需要说明的是,对顶点和边的确定值降阶,实质上,皆是对相关张量进行确定值降阶。
具体地,对张量的确定值降阶,即是根据确定的下标取值,在原张量中确定出对应元素,然后将该张量的元素更新为确定出的对应元素。
举例而言,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,这种操作即为确定值降阶。
需要说明的是,本申请中所说的对无向图中边的降阶,实质皆是对边的张量的降阶,后续不再赘述。
在第一种实现方式中,M个顶点为无向图中除已确定取值的头、尾顶点之外的所有顶点,且计算节点数量≥2M,将2M个顶点取值均分给所有计算节点,可以理解的是,当计算节点的数量为2M时,每个计算节点只有一个目标子无向图,且该目标子无向图中的边的张量皆为0阶张量,即常量,因此,直接将所有边对应的常量相乘,便可获得该目标子无向图对应的第一子振幅,也就是目标子振幅。
在第二种实现方式中,若当前计算节点的至少一个目标子无向图中,仍存在值不确定的顶点,即仍存在非0阶张量。那么,可以按照以下方法计算每一个存在非0阶张量的目标子无向图:针对目标子无向图中值未确定的每一个顶点,根据其取值{0,1}对子图进行再次划分,并对划分后得到的多个子图继续进行确定值降阶,直至得到的每一个子图中边的张量都是0阶张量;然后将每一个子图中的所有张量相乘,再对所有的乘积求和,获得对应的第一子振幅。最后,对所有第一子振幅求和,获得该计算节点的目标子振幅。
在第三种实现方式中,当前计算节点的至少一个目标子无向图中,仍存在值不确定的顶点,即仍存在非0阶张量。为了提高计算速度,计算目标子无向图,获得该目标子无向图对应的第一子振幅的步骤可以包括:
针对目标子无向图中每一顶点,对该顶点的所有连接边执行融合操作,获得一条目标边;对该目标边执行降阶操作,删除该顶点;
对所有降阶后的目标边的张量求积,获得该目标子无向图对应的第一子振幅。
需要说明的是,目标子无向图可能是多个,应针对每个目标子无向图执行当前步骤,获得多条目标边。此外,当目标子无向图中的顶点只与一条边相连时,该边即是目标边。
可以理解的是,在遍历目标子无向图中每一顶点,执行上述操作后,将得到只有0阶张量的目标边。由于每个目标子无向图对应所涉及量子比特从初始量子态到目标量子态分量的至少一条路径,因此,首先将当前计算节点上每个目标子无向图中的零阶张量相乘,得到的积便是该目标子无向图对应路径的第一子振幅,再将所有目标子无向图对应的第一子振幅相加,便可获得当前计算节点的目标子振幅。
其中,可以理解的是,对边的融合,核心是对张量的合并操作。
下面将就一个顶点,具体如何对其所有连接边进行融合以及降阶等操作进行说明。
在一种实现方式中,对该顶点的所有连接边执行融合操作,获得一条目标边的步骤,具体地,可以对该顶点的所有连接边,两两融合,获得至少一条融合边,然后在融合得到的新边数量不小于2的情况下,继续对新边两两融合操作,直至最终获得一条融合边,即目标边。
在另一种实现方式中,对该顶点的所有连接边执行融合操作,获得一条目标边的步骤,具体地,可以先从该顶点的所有连接边中,任选两条边进行融合,获得一条新边,然后再从剩余未融合的边中选择一条边,与新边融合,重复上述步骤,直至该顶点的所有连接边融合成一条边。
当然,实际应用中,也可以综合上述两种实现方式或者采用其他方式来实现边的融合,在此不做限定。
更具体地,所述融合操作的步骤,可以包括:
第一步,确定待融合的第一条边和第二条边。
实际应用中,一般对任一两条边的融合都需先对一条边进行升阶,因此,一般选择将该顶点所有连接边中阶数最大的边作为第一条边。
可以理解的是,第二条边为除第一条边之外的剩余边中未被融合的边。
具体地,可以直接从剩余的边中选取一条边作为第二条边;也可以先将顶点的连接边根据阶数大小进行排序,按照从小到大或从大到小的顺序均可,不做限定,然后将阶数最大的边确定为第一条边,将剩下未被融合的边中阶数最大的边确定为第二条边。
举例而言,顶点Vn连接的边共有4条,分别为:En1、En2、En3、En4,对应的阶数分别为:3、2、4、2。首先将边按照阶数从大到小进行排序,得:En3、En1、En2、En4(或En3、En1、En4、En2),可以看出,En3阶数最大,将其确定为第一条边,剩下未被融合的三条边中,En1阶数最大,将其确定为第二条边。
第二步,根据第二条边的第二顶点组中不与所述第一条边相连的顶点,对第一条边的第一张量执行升阶操作,并以升阶后的张量更新第一张量。
可以理解的是,第二顶点组指与第二条边连接的所有顶点。
具体地,对比第一条边与第二条边连接的顶点,确定出与第二条边相连但与第一条边不相连的顶点,然后根据确定出的顶点对第一张量执行升阶操作,并以升阶后的新张量来更新第一张量。
举例而言,假设该顶点编号为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。其中,具体的升阶操作为现有技术,此处不再赘述。
第三步,根据第一张量对应的第一顶点组与第二顶点组之间的对应关系,确定第一张量中每一元素在第二条边的第二张量中的对应元素。
具体地,根据第一张量对应的第一顶点组与第二顶点组之间的对应关系,是指第二张量对应顶点的相同取值分别在第一张量与第二张量中确定的元素位置的对应关系。
实际应用中,如图2所示实施例的S202中所述,为了便于快速确定待计算的数据,通常将张量对应顶点按照一定顺序排列,并将该顶点序列的组合取值的二进制数与张量中元素的位置编号一一对应。
因此,在执行完第二步,更新第一张量之后,便可以将第二顶点组分别在第一张量与第二张量对应的顶点序列中的位置对应关系记录下来,以便后续操作。
仍以第一张量A123和第二张量B23为例,其中A123对应的顶点序列为“123”,B23对应的顶点序列为“23”。可以看出顶点2在A123对应的顶点序列中是第2位,在B23对应的顶点序列中是第1位,顶点编号3在A123对应的顶点序列中是第3位,在B23对应的顶点序列中是第2位,将此位置对应关系记录下来。具体地,可以存储在一个数组中,如存储在数组MaskArray中,MaskArray的元素结构为:Struct{顶点在A123对应的顶点序列中的位置,顶点在B23对应的顶点序列中的位置}。
根据该位置关系,可以确定出第一张量中每一元素在第二张量中的对应元素。具体地,将第二张量与第一张量中元素的位置编号表示为二进制数,可以理解的是,二进制数的每一位与其顶点序列的取值对应。然后,根据第二张量中顶点分别在第一张量与第二张量对应的顶点序列中的位置对应关系,可知,针对第一张量中的每一元素,该元素对应的二进制数中相关顶点的取值即为对应元素在第二张量中的位置,从而便可确定出该元素在第二张量中的对应元素。
以第一张量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的每个元素的位置编号中的取值,便于阐述得更清楚,并无任何限定意义。
第四步,遍历第一张量中的每一元素,以该元素与其在第二张量中对应元素的乘积更新该元素;
具体地,针对第一张量中的每一元素,将其与第二张量中的对应元素相乘,然后用乘积去更新该元素。
举例而言,以第三步中的A123和B23为例,首先将A123中的每一元素与B23中的对应元素相乘,可得乘积为依次为:5、6、14、16、15、18、28、32,然后用这些乘积去更新A123中的对应元素,更新后,A123={5,6,14,16,15,18,28,32}。
第五步,删除第二条边,并将第二条边的除该顶点之外的其他顶点连接至第一条边。
需要说明的是,执行第四步,更新完第一张量中的值后,由于第二条边已被融合,故应在所属的无向图中将其删除,然后将第二条边除该顶点之外的其他顶点连接至第一条边。可以理解的是,当前的第一条边即是两条边融合后的新边。
例如,仍以第一条边为E12,第二条边为E23为例,执行完第四步后,第一张量A123={5,6,14,16,15,18,28,32},将E23删除,并将该边除顶点2之外的其他顶点连接至第一条边,即将顶点3连接至第一条边,具体实现中,即是将顶点3的信息添加到E12边集的连接顶点信息中。至此,第一条边更新为E123,对应的第一张量为A123={5,6,14,16,15,18,28,32}。
需要说明的是,在执行完针对目标子无向图中每一顶点,对该顶点的所有连接边执行融合操作,获得一条目标边的操作后,可以根据该顶点的取值对该条目标边进行降阶,降阶后,将该顶点删除。具体地,即是将目标边张量的对应顶点序列中除该顶点之外,其他顶点按照原顶点序列的顺序排列得到一个新的顶点序列,该新顶点序列对应一个新张量,将新顶点序列的取值在目标边张量中对应的元素求和,得到的即是新张量的对应元素。
举例而言,假设该顶点为顶点2,融合顶点2的所有连接边后,获得目标边E1234,其张量为A1234={5,5,6,6,14,14,16,16,15,15,18,18,28,28,32,32}。目标边张量的对应顶点序列为“1234”,除顶点2之外,得到新顶点序列“134”,新顶点序列的取值与A1234中元素的对应关系如表3所示:
表3新顶点序列“134”的取值与A1234中元素的对应关系
因此,对目标边E1234基于顶点2降阶后,删除顶点2,得到一条目标边E134,对应张量A134={19,19,22,22,43,43,50,50}。
可以理解的是,执行S2042,遍历完每个目标子无向图的顶点后,每个目标子无向图最终将只剩下至少一个零阶边,即张量为零阶张量的边。具体地,若目标子无向图为连通的,遍历该图中的顶点时,目标边将会不断地更新,最终目标边将只有一条,且为零阶边;否则,目标边将包括多条零阶边。
S205,将目标子振幅反馈至控制节点,以使得控制节点合并每个计算节点发送的每个目标子振幅,获得目标量子态分量的振幅。
可以理解的是,所涉及量子比特从初始量子态到目标量子态分量,有多条路径,而每个计算节点计算目标子无向图得到的目标子振幅只对应其中一条或几条路径,最终,仍需将每个计算节点得到的目标子振幅反馈至控制节点。以使得控制节点合并每个计算节点发送的目标子振幅,获得目标量子态分量的振幅,从而完成对目标量子程序的计算模拟。在实际应用中,也可以根据需求,对振幅的模值求平方,得到的平方和既是目标量子态分量的概率。
图2所示实施例提供的单振幅量子计算模拟方法中,每个计算节点首先接收控制节点发送的目标量子程序的数据信息和目标量子态分量;然后根据预设规则和该数据信息,构建目标量子程序对应的无向图;其中,无向图的顶点对应量子逻辑门执行前和/或执行后、所操作的量子比特的量子态;无向图的每条边对应一个张量,该张量中的元素由对应量子逻辑门的酉矩阵和边连接的顶点取值共同决定;再接收控制节点分发的顶点取值;并根据顶点取值和目标量子态分量,计算无向图,获得目标子振幅;最后将目标子振幅反馈至控制节点,以使得控制节点合并每个计算节点发送的每个目标子振幅,获得目标量子态分量的振幅,从而完成目标量子程序对应的量子计算的模拟。
应用本发明实施例,可以每次只计算所涉量子比特的一个目标振幅,具体地,将目标量子程序映射到无向图上,并结合路径积分法,将无向图拆分成多个子图,然后在多个计算节点上进行计算,整个计算过程都是基于张量中元素的简单运算,与现有技术中基于酉矩阵的全振幅模拟相比,大大降低了对内存的需求,且计算量不随量子比特指数上升,从而可以实现涉及50个甚至更多个量子比特的量子计算模拟。目前,应用本发明实施例提供的技术方案,最大已可实现涉及196个量子比特的量子计算模拟。
此外,实际应用中,有时只需要量子比特全振幅中的一个或多个振幅,在这种情况下,若采用现有技术中的全振幅模式,即一次性模拟出所有的振幅,无疑是对内存等资源以及时间的浪费;而应用本发明实施例提供的方法,则可以有针对性地进行一次或多次模拟,模拟出需要的一个或多个单振幅即可,大大节省了资源与时间。
参见图4,本发明实施例提供了一种单振幅量子计算模拟方法,应用于控制节点,该方法可以包括:
S401,向至少一个计算节点发送目标量子程序的数据信息和目标量子态分量,以使得至少一个计算节点根据预设规则和数据信息,构建目标量子程序对应的无向图;其中,无向图的顶点对应所述量子逻辑门执行前和/或执行后、所操作的量子比特的量子态;无向图的每条边对应一个张量,张量中的元素由对应量子逻辑门的酉矩阵和边连接的顶点取值共同决定;
S402,向至少一个计算节点分发顶点取值,以使得至少一个计算节点根据顶点取值和目标量子态分量,计算无向图,获得目标子振幅;其中,顶点取值为无向图的顶点中M个顶点的所有取值中的一个或多个;
S403,接收至少一个计算节点反馈的目标子振幅,并将所有目标子振幅进行合并处理,获得目标量子态分量的振幅。
应用图4所示实施例提供的技术方案,首先由控制节点向至少一个计算节点发送目标量子程序的数据信息和目标量子态分量;以使得至少一个计算节点根据预设规则和数据信息,构建目标量子程序对应的无向图;然后向至少一个计算节点分发顶点取值;以使得至少一个计算节点根据顶点取值和目标量子态分量,计算无向图,获得目标子振幅;最后,接收至少一个计算节点反馈的目标子振幅,并将所有目标子振幅进行合并处理,获得目标量子程序的单振幅对应值。
应用本发明实施例,可以每次只计算所涉量子比特的一个目标振幅,具体地,将目标量子程序映射到无向图上,并结合路径积分法,将无向图拆分成多个子图,然后在多个计算节点上进行计算,整个计算过程都是基于张量中元素的简单运算,与现有技术中基于酉矩阵的全振幅模拟相比,大大降低了对内存的需求,且计算量不随量子比特指数上升,从而可以实现涉及50个甚至更多个量子比特的量子计算模拟。目前,应用本发明实施例提供的技术方案,最大已可实现涉及196个量子比特的量子计算模拟。
此外,实际应用中,有时只需要量子比特全振幅中的一个或多个振幅,在这种情况下,若采用现有技术中的全振幅模式,即一次性模拟出所有的振幅,无疑是对内存等资源以及时间的浪费;而应用本发明实施例提供的方法,则可以有针对性地进行一次或多次模拟,模拟出需要的单振幅即可,大大节省了资源与时间。
相应于上述方法实施例,本发明实施例提供了一种单振幅量子计算模拟装置,应用于至少一个计算节点,如图5所示,与图2所示流程相对应,所述装置可以包括:
第一接收模块501,用于接收控制节点发送的目标量子程序的数据信息和目标量子态分量;
无向图构建模块502,用于根据预设规则和所述第一接收模块接收的501数据信息,构建所述目标量子程序对应的无向图;其中,所述无向图的顶点对应量子逻辑门执行前和/或执行后、所操作的量子比特的量子态;所述无向图的每条边对应一个张量,所述张量中的元素由对应量子逻辑门的酉矩阵和所述边连接的顶点取值共同决定;
第二接收模块503,用于接收所述控制节点分发的顶点取值;所述顶点取值为所述无向图的顶点中M个顶点的所有取值中的一个或多个,其中M为正整数;
计算模块504,用于根据所述第二接收模块503接收的顶点取值和所述第一接收模块501接收的目标量子态分量,计算所述无向图,获得目标子振幅;
反馈模块505,将所述计算模块504获得的目标子振幅反馈至所述控制节点,以使得所述控制节点合并每个所述计算节点发送的每个所述目标子振幅,获得所述目标量子态分量的振幅。
具体地,所述预设规则包括:
当量子逻辑门为第一类型量子逻辑门时,向无向图添加一条对应边;
当量子逻辑门为第二类型量子逻辑门时,向无向图添加一个顶点和一条对应边;
当量子逻辑门为第三类型量子逻辑门时,向无向图添加两个顶点和一条对应边;
其中,
所述第一类型量子逻辑门为单量子逻辑门或双量子逻辑门,且其对应的酉矩阵为对角矩阵;
所述第二类型量子逻辑门为单量子逻辑门且其对应的酉矩阵为非对角矩阵;
所述第三类型量子逻辑门为双量子逻辑门且其对应的酉矩阵为非对角矩阵。
具体地,所述计算模块504,包括:
确定值降阶子模块,用于根据所述顶点取值和所述目标量子态分量,对所述无向图进行确定值降阶,获得至少一个目标子无向图;
计算子模块,用于计算所述确定值降阶子模块获得的目标子无向图,获得每一个所述目标子无向图对应的第一子振幅;
求和子模块,用于对所述计算子模块获得的第一子振幅求和,获得目标子振幅。
具体地,所述计算子模块,包括:
融合单元,用于针对所述目标子无向图中每一顶点,调用融合子单元对该顶点的所有连接边执行融合操作,获得一条目标边;对所述目标边执行降阶操作,并删除该顶点;
第一子振幅获得单元,用于对所述融合单元获得的所有降阶后的目标边的张量求积,获得所述目标子无向图对应的第一子振幅。
更具体地,所述融合子单元,具体用于:
确定待融合的第一条边和第二条边;
根据所述第二条边的第二顶点组中不与所述第一条边相连的顶点,对所述第一条边的第一张量执行升阶操作,并以升阶后的张量更新所述第一张量;
根据所述第一张量对应的第一顶点组与所述第二顶点组之间的对应关系,确定所述第一张量中每一元素在所述第二条边的第二张量中的对应元素;
遍历所述第一张量中的每一元素,以该元素与其在所述第二张量中对应元素的乘积更新该元素;
删除所述第二条边,并将所述第二条边的除所述该顶点之外的其他顶点连接至所述第一条边。
具体地,所述M个顶点为所述无向图中连接边数最多的前M个顶点。
应用图5所示实施例提供的技术方案,每个计算节点首先接收控制节点发送的目标量子程序的数据信息和目标量子态分量;然后根据预设规则和该数据信息,构建目标量子程序对应的无向图;其中,无向图的顶点对应量子逻辑门执行前和/或执行后、所操作的量子比特的量子态;无向图的每条边对应一个张量,该张量中的元素由对应量子逻辑门的酉矩阵和边连接的顶点取值共同决定;再接收控制节点分发的顶点取值;并根据顶点取值和目标量子态分量,计算无向图,获得目标子振幅;最后将目标子振幅反馈至控制节点;以使得控制节点合并每个计算节点发送的每个目标子振幅,获得目标量子态分量的振幅,从而完成目标量子程序对应的量子计算的模拟。
应用本发明实施例,可以每次只计算所涉量子比特的一个目标振幅,具体地,将目标量子程序映射到无向图上,并结合路径积分法,将无向图拆分成多个子图,然后在多个计算节点上进行计算,整个计算过程都是基于张量中元素的简单运算,与现有技术中基于酉矩阵的全振幅模拟相比,大大降低了对内存的需求,且计算量不随量子比特指数上升,从而可以实现涉及50个甚至更多个量子比特的量子计算模拟。目前,应用本发明实施例提供的技术方案,最大已可实现涉及196个量子比特的量子计算模拟。
此外,实际应用中,有时只需要量子比特全振幅中的一个或多个振幅,在这种情况下,若采用现有技术中的全振幅模式,即一次性模拟出所有的振幅,无疑是对内存等资源以及时间的浪费;而应用本发明实施例提供的方法,则可以有针对性地进行一次或多次模拟,模拟出需要的单振幅即可,大大节省了资源与时间。
相应于上述方法实施例,本发明实施例提供了一种单振幅计算模拟装置,应用于控制节点,如图6所示,与图4所示流程相对应,所述装置可以包括:
发送模块601,用于向至少一个计算节点发送目标量子程序的数据信息和目标量子态分量;以使得所述至少一个计算节点根据预设规则和所述数据信息,构建所述目标量子程序对应的无向图;其中,所述无向图的顶点对应量子逻辑门执行前和/或执行后、所操作的量子比特的量子态;所述无向图的每条边对应一个张量,所述张量中的元素由对应量子逻辑门的酉矩阵和所述边连接的顶点取值共同决定;
分发模块602,用于向所述至少一个计算节点分发顶点取值,以使得所述至少一个计算节点根据所述分发模块602分发的顶点取值和所述发送模块601发送的目标量子态分量,计算所述无向图,获得目标子振幅;其中,所述顶点取值为所述无向图的顶点中M个顶点的所有取值中的一个或多个;
合并模块603,用于接收所述至少一个计算节点反馈的所述目标子振幅,并将所有所述目标子振幅进行合并处理,获得所述目标量子态分量的振幅。
应用图6所示实施例提供的技术方案,首先由控制节点向至少一个计算节点发送目标量子程序的数据信息和目标量子态分量;以使得至少一个计算节点根据预设规则和数据信息,构建目标量子程序对应的无向图;然后向至少一个计算节点分发顶点取值;以使得至少一个计算节点根据顶点取值和目标量子态分量,计算无向图,获得目标子振幅;最后,接收至少一个计算节点反馈的目标子振幅,并将所有目标子振幅进行合并处理,获得目标量子程序的单振幅对应值。
应用本发明实施例,可以每次只计算所涉量子比特的一个目标振幅,具体地,将目标量子程序映射到无向图上,并结合路径积分法,将无向图拆分成多个子图,然后在多个计算节点上进行计算,整个计算过程都是基于张量中元素的简单运算,与现有技术中基于酉矩阵的全振幅模拟相比,大大降低了对内存的需求,且计算量不随量子比特指数上升,从而可以实现涉及50个甚至更多个量子比特的量子计算模拟。目前,应用本发明实施例提供的技术方案,最大已可实现涉及196个量子比特的量子计算模拟。
此外,实际应用中,有时只需要量子比特全振幅中的一个或多个振幅,在这种情况下,若采用现有技术中的全振幅模式,即一次性模拟出所有的振幅,无疑是对内存等资源以及时间的浪费;而应用本发明实施例提供的方法,则可以有针对性地进行一次或多次模拟,模拟出需要的单振幅即可,大大节省了资源与时间。
以上依据图式所示的实施例详细说明了本发明的构造、特征及作用效果,以上所述仅为本发明的较佳实施例,但本发明不以图面所示限定实施范围,凡是依照本发明的构想所作的改变,或修改为等同变化的等效实施例,仍未超出说明书与图示所涵盖的精神时,均应在本发明的保护范围内。
Claims (9)
1.一种单振幅量子计算模拟方法,其特征在于,应用于至少一个计算节点,所述方法包括:
接收控制节点发送的目标量子程序的数据信息和目标量子态分量;
根据预设规则和所述数据信息,构建所述目标量子程序对应的无向图;其中,所述无向图的顶点对应量子逻辑门执行前和/或执行后、所操作的量子比特的量子态;所述无向图的每条边对应一个张量,所述张量中的元素由对应量子逻辑门的酉矩阵和所述边连接的顶点取值共同决定;
接收所述控制节点分发的顶点取值;所述顶点取值为所述无向图的顶点中M个顶点的所有取值中的一个或多个,其中M为正整数;
根据所述顶点取值和所述目标量子态分量,计算所述无向图,获得目标子振幅;
将所述目标子振幅反馈至所述控制节点,以使得所述控制节点合并每个所述计算节点发送的每个所述目标子振幅,获得所述目标量子态分量的振幅。
2.根据权利要求1所述的单振幅量子计算模拟方法,其特征在于,所述预设规则包括:
当量子逻辑门为第一类型量子逻辑门时,向无向图添加一条对应边;
当量子逻辑门为第二类型量子逻辑门时,向无向图添加一个顶点和一条对应边;
当量子逻辑门为第三类型量子逻辑门时,向无向图添加两个顶点和一条对应边;
其中,
所述第一类型量子逻辑门为单量子逻辑门或双量子逻辑门,且其对应的酉矩阵为对角矩阵;
所述第二类型量子逻辑门为单量子逻辑门且其对应的酉矩阵为非对角矩阵;
所述第三类型量子逻辑门为双量子逻辑门且其对应的酉矩阵为非对角矩阵。
3.根据权利要求2所述的单振幅量子计算模拟方法,其特征在于,所述根据所述顶点取值和所述目标量子态分量,计算所述无向图,获得目标子振幅的步骤,包括:
根据所述顶点取值和所述目标量子态分量,对所述无向图进行确定值降阶,获得至少一个目标子无向图;
计算所述目标子无向图,获得每一个所述目标子无向图对应的第一子振幅;
对所述第一子振幅求和,获得目标子振幅。
4.根据权利要求3所述的单振幅量子计算模拟方法,其特征在于,所述计算所述目标子无向图,获得所述目标子无向图对应的第一子振幅的步骤,包括:
针对所述目标子无向图中每一顶点,对该顶点的所有连接边执行融合操作,获得一条目标边;对所述目标边执行降阶操作,并删除该顶点;
对所有降阶后的所述目标边的张量求积,获得所述目标子无向图对应的第一子振幅。
5.根据权利要求4所述的单振幅量子计算模拟方法,其特征在于,所述融合操作的步骤,包括:
确定待融合的第一条边和第二条边;
根据所述第二条边的第二顶点组中不与所述第一条边相连的顶点,对所述第一条边的第一张量执行升阶操作,并以升阶后的张量更新所述第一张量;
根据所述第一张量对应的第一顶点组与所述第二顶点组之间的对应关系,确定所述第一张量中每一元素在所述第二条边的第二张量中的对应元素;
遍历所述第一张量中的每一元素,以该元素与其在所述第二张量中对应元素的乘积更新该元素;
删除所述第二条边,并将所述第二条边的除所述该顶点之外的其他顶点连接至所述第一条边。
6.根据权利要求1-5任一项所述的单振幅量子计算模拟方法,其特征在于,所述M个顶点为所述无向图中连接边数最多的前M个顶点。
7.一种单振幅量子计算模拟方法,其特征在于,应用于控制节点,所述方法包括:
向至少一个计算节点发送目标量子程序的数据信息和目标量子态分量;以使得所述至少一个计算节点根据预设规则和所述数据信息,构建所述目标量子程序对应的无向图;其中,所述无向图的顶点对应量子逻辑门执行前和/或执行后、所操作的量子比特的量子态;所述无向图的每条边对应一个张量,所述张量中的元素由对应量子逻辑门的酉矩阵和所述边连接的顶点取值共同决定;
向所述至少一个计算节点分发顶点取值,以使得所述至少一个计算节点根据所述顶点取值和所述目标量子态分量,计算所述无向图,获得目标子振幅;其中,所述顶点取值为所述无向图的顶点中M个顶点的所有取值中的一个或多个;
接收所述至少一个计算节点反馈的所述目标子振幅,并将所有所述目标子振幅进行合并处理,获得所述目标量子态分量的振幅。
8.一种单振幅量子计算模拟装置,应用于至少一个计算节点,其特征在于,所述装置包括:
第一接收模块,用于接收控制节点发送的目标量子程序的数据信息和目标量子态分量;
无向图构建模块,用于根据预设规则和所述第一接收模块接收的数据信息,构建所述目标量子程序对应的无向图;其中,所述无向图的顶点对应量子逻辑门执行前和/或执行后、所操作的量子比特的量子态;所述无向图的每条边对应一个张量,所述张量中的元素由对应量子逻辑门的酉矩阵和所述边连接的顶点取值共同决定;
第二接收模块,用于接收所述控制节点分发的顶点取值;所述顶点取值为所述无向图的顶点中M个顶点的所有取值中的一个或多个,其中M为正整数;
计算模块,用于根据所述第二接收模块接收的顶点取值和所述第一接收模块接收的目标量子态分量,计算所述无向图,获得目标子振幅;
反馈模块,将所述计算模块获得的目标子振幅反馈至所述控制节点;以使得所述控制节点合并每个所述计算节点发送的每个所述目标子振幅,获得所述目标量子态分量的振幅。
9.一种单振幅量子计算模拟装置,其特征在于,应用于控制节点,所述装置包括:
发送模块,用于向至少一个计算节点发送目标量子程序的数据信息和目标量子态分量;以使得所述至少一个计算节点根据预设规则和所述数据信息,构建所述目标量子程序对应的无向图;其中,所述无向图的顶点对应量子逻辑门执行前和/或执行后、所操作的量子比特的量子态;所述无向图的每条边对应一个张量,所述张量中的元素由对应量子逻辑门的酉矩阵和所述边连接的顶点取值共同决定;
分发模块,用于向所述至少一个计算节点分发顶点取值;所述顶点取值为所述无向图的顶点中M个顶点的所有取值中的一个或多个;以使得所述至少一个计算节点根据所述分发模块分发的顶点取值和所述发送模块发送的目标量子态分量,计算所述无向图,获得目标子振幅;
合并模块,用于接收所述至少一个计算节点反馈的所述目标子振幅,并将所有所述目标子振幅进行合并处理,获得所述目标量子态分量的振幅。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910323037.0A CN111914378B (zh) | 2019-04-22 | 2019-04-22 | 一种单振幅量子计算模拟方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910323037.0A CN111914378B (zh) | 2019-04-22 | 2019-04-22 | 一种单振幅量子计算模拟方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111914378A true CN111914378A (zh) | 2020-11-10 |
CN111914378B CN111914378B (zh) | 2024-05-07 |
Family
ID=73241633
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910323037.0A Active CN111914378B (zh) | 2019-04-22 | 2019-04-22 | 一种单振幅量子计算模拟方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111914378B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114254755A (zh) * | 2021-12-24 | 2022-03-29 | 中国科学院理论物理研究所 | 模拟量子比特末态概率幅的方法、装置和量子虚拟机 |
CN114692880A (zh) * | 2020-12-31 | 2022-07-01 | 合肥本源量子计算科技有限责任公司 | 一种量子线路中量子态振幅的模拟方法及装置 |
CN114764549A (zh) * | 2020-12-31 | 2022-07-19 | 合肥本源量子计算科技有限责任公司 | 基于矩阵乘积态的量子线路模拟计算方法、装置 |
CN115130675A (zh) * | 2022-09-02 | 2022-09-30 | 之江实验室 | 一种量子随机电路的多振幅模拟方法和装置 |
CN115423108A (zh) * | 2021-05-31 | 2022-12-02 | 合肥本源量子计算科技有限责任公司 | 量子线路切割处理方法、装置及量子计算机操作系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108154240A (zh) * | 2017-12-29 | 2018-06-12 | 合肥本源量子计算科技有限责任公司 | 一种低复杂度的量子线路模拟系统 |
WO2018172629A1 (fr) * | 2017-03-24 | 2018-09-27 | Bull Sas | Procédé de simulation, sur un ordinateur classique, d'un circuit quantique |
CN108833353A (zh) * | 2018-05-18 | 2018-11-16 | 中南大学 | 基于三方参与的量子拜占庭协定方法 |
WO2019058161A1 (en) * | 2017-09-22 | 2019-03-28 | International Business Machines Corporation | SIMULATION OF QUANTUM CIRCUITS |
-
2019
- 2019-04-22 CN CN201910323037.0A patent/CN111914378B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018172629A1 (fr) * | 2017-03-24 | 2018-09-27 | Bull Sas | Procédé de simulation, sur un ordinateur classique, d'un circuit quantique |
WO2019058161A1 (en) * | 2017-09-22 | 2019-03-28 | International Business Machines Corporation | SIMULATION OF QUANTUM CIRCUITS |
CN108154240A (zh) * | 2017-12-29 | 2018-06-12 | 合肥本源量子计算科技有限责任公司 | 一种低复杂度的量子线路模拟系统 |
CN108833353A (zh) * | 2018-05-18 | 2018-11-16 | 中南大学 | 基于三方参与的量子拜占庭协定方法 |
Non-Patent Citations (2)
Title |
---|
刘欣;李飞;郑宝玉;: "基于量子遗传算法的多约束QoS路由算法", 南京邮电大学学报(自然科学版), no. 02 * |
范洪强;胡滨;袁征;: "用经典计算机模拟量子计算机", 密码学报, no. 03 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114692880A (zh) * | 2020-12-31 | 2022-07-01 | 合肥本源量子计算科技有限责任公司 | 一种量子线路中量子态振幅的模拟方法及装置 |
CN114764549A (zh) * | 2020-12-31 | 2022-07-19 | 合肥本源量子计算科技有限责任公司 | 基于矩阵乘积态的量子线路模拟计算方法、装置 |
CN114764549B (zh) * | 2020-12-31 | 2023-04-25 | 合肥本源量子计算科技有限责任公司 | 基于矩阵乘积态的量子线路模拟计算方法、装置 |
CN114692880B (zh) * | 2020-12-31 | 2023-09-05 | 本源量子计算科技(合肥)股份有限公司 | 一种量子线路中量子态振幅的模拟方法及装置 |
CN115423108A (zh) * | 2021-05-31 | 2022-12-02 | 合肥本源量子计算科技有限责任公司 | 量子线路切割处理方法、装置及量子计算机操作系统 |
CN114254755A (zh) * | 2021-12-24 | 2022-03-29 | 中国科学院理论物理研究所 | 模拟量子比特末态概率幅的方法、装置和量子虚拟机 |
CN115130675A (zh) * | 2022-09-02 | 2022-09-30 | 之江实验室 | 一种量子随机电路的多振幅模拟方法和装置 |
CN115130675B (zh) * | 2022-09-02 | 2023-01-24 | 之江实验室 | 一种量子随机电路的多振幅模拟方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN111914378B (zh) | 2024-05-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111914378B (zh) | 一种单振幅量子计算模拟方法及装置 | |
CN111582491B (zh) | 一种量子线路的构建方法及装置 | |
CN113449858B (zh) | 一种神经网络模型的处理方法以及相关设备 | |
Burkard et al. | Assignment problems: revised reprint | |
CN107636638B (zh) | 通用并行计算架构 | |
Fried et al. | qTorch: The quantum tensor contraction handler | |
CN114764549B (zh) | 基于矩阵乘积态的量子线路模拟计算方法、装置 | |
CN111915011B (zh) | 一种单振幅量子计算模拟方法 | |
CN110826719A (zh) | 一种量子程序的处理方法、装置、存储介质和电子装置 | |
CN112068798B (zh) | 一种实现网络节点重要性排序的方法及装置 | |
CN110516810B (zh) | 一种量子程序的处理方法、装置、存储介质和电子装置 | |
WO2020221583A1 (en) | System and method for molecular design on a quantum computer | |
Sarkar et al. | An algorithm for DNA read alignment on quantum accelerators | |
CN111931939A (zh) | 一种单振幅量子计算模拟方法 | |
CN113128015B (zh) | 预估单振幅模拟量子计算所需资源的方法和系统 | |
Mulderij et al. | A polynomial size model with implicit swap gate counting for exact qubit reordering | |
Nikahd et al. | One-way quantum computer simulation | |
Fujishima | FPGA-based high-speed emulator of quantum computing | |
Ismkhan | Effective three-phase evolutionary algorithm to handle the large-scale colorful traveling salesman problem | |
JP5736336B2 (ja) | 行列ベクトル積演算装置、行列ベクトル積演算方法、及び行列ベクトル積演算プログラム | |
Hedar et al. | Finding the 3D-structure of a molecule using genetic algorithm and tabu search methods | |
CA3140980A1 (en) | Systems for emulating a quantum computer and methods for use therewith | |
CN115759270B (zh) | 一种基于量子线路的高效模拟方法 | |
CN114638367B (zh) | 一种数据的读取方法、装置、存储介质及电子装置 | |
CN114638366B (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 |
Address after: 230008 6th floor, building E2, phase II, venture industrial park, high tech Zone, Hefei City, Anhui Province Applicant after: Benyuan Quantum Computing Technology (Hefei) Co.,Ltd. Address before: 230008 6th floor, building E2, phase II, venture industrial park, high 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 |