CN113128015B - 预估单振幅模拟量子计算所需资源的方法和*** - Google Patents

预估单振幅模拟量子计算所需资源的方法和*** Download PDF

Info

Publication number
CN113128015B
CN113128015B CN201911412718.0A CN201911412718A CN113128015B CN 113128015 B CN113128015 B CN 113128015B CN 201911412718 A CN201911412718 A CN 201911412718A CN 113128015 B CN113128015 B CN 113128015B
Authority
CN
China
Prior art keywords
quantum
tensor
vertex
edge
undirected graph
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
Application number
CN201911412718.0A
Other languages
English (en)
Other versions
CN113128015A (zh
Inventor
王晶
窦猛汉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Origin Quantum Computing Technology Co Ltd
Original Assignee
Origin Quantum Computing Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Origin Quantum Computing Technology Co Ltd filed Critical Origin Quantum Computing Technology Co Ltd
Priority to CN201911412718.0A priority Critical patent/CN113128015B/zh
Publication of CN113128015A publication Critical patent/CN113128015A/zh
Application granted granted Critical
Publication of CN113128015B publication Critical patent/CN113128015B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N10/00Quantum computing, i.e. information processing based on quantum-mechanical phenomena

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

本发明公开了一种预估单振幅模拟量子计算所需资源的方法和***,属于量子计算领域。它通过获取待模拟量子线路和配置的进程,构建所述待模拟量子线路对应的无向图,根据进程的参数信息以及张量元素的数据类型确定所述进程能够存储的张量元素总量,并根据所述张量元素总量确定对所述待计算无向图的拆分次数,最后根据待计算无向图的拆分次数,即确定单振幅模拟量子计算所需资源,从而能够在单振幅模拟时提前预估单振幅模拟量子计算所需资源。

Description

预估单振幅模拟量子计算所需资源的方法和***
技术领域
本发明属于量子计算技术领域,更具体地说,涉及一种预估单振幅模拟量子计算所需资源的方法。
背景技术
量子计算模拟是一个借助数值计算和计算机科学来仿真遵循量子力学规律的模拟计算,作为一个仿真程序,它依据量子力学的量子比特的基本定律,利用计算机的高速计算能力,刻画量子态的时空演化。
目前,量子计算模拟主要包括全振幅模拟、部分振幅模拟和单振幅模拟三种方式,一段量子程序中包含N个量子比特,其中单振幅模拟则是指每次只计算2N个量子态分量中的一个量子态分量的振幅,即目标量子态分量的振幅。与全振幅模拟相比,单振幅模拟降低了对内存资源的需求,并且,在实际应用中,有时只需要量子比特全部振幅中的一个或多个振幅,这种情况下,通过单振幅模拟方法有针对性地进行一次或多次模拟即可。
基于此,对于进行单振幅量子模拟算法的分布式计算机集群,提供一种提前预估对待模拟量子线路进行单振幅量子计算模拟时至少需要的计算资源。
发明内容
本发明提供一种预估单振幅模拟量子计算所需资源的方法。
一种预估单振幅模拟量子计算所需资源的方法,包括:
获取待模拟量子线路和配置的进程;
根据所述待模拟量子线路,构建对应的待计算无向图;其中,所述无向图的顶点表征量子逻辑门操作前或操作后的、所操作量子比特的量子态,所述无向图的边表征张量;
根据所述进程的参数信息以及张量元素的数据类型,确定所述进程能够存储的张量元素总量;
根据所述张量元素总量,确定所述待计算无向图的拆分次数;
根据所述待计算无向图的拆分次数,确定单振幅模拟量子计算所需资源。
优选地,所述根据所述待模拟量子线路,构建对应的待计算无向图,包括:
解析所述待模拟量子线路,得到记录待模拟量子线路信息的链表;
遍历所述链表,当链表中量子逻辑门的类型为第一单量子逻辑门时,创建一条张量阶数为1的边;其中,该边与所述第一单量子逻辑门所操作的量子比特对应顶点链的最后一个顶点连接,第一单量子逻辑门的酉矩阵为对角矩阵;
当链表中量子逻辑门的类型为第二单量子逻辑门时,创建一条张量阶数为2 的边和一个与该边连接的顶点;其中,该边与所述第二单量子逻辑门所操作的量子比特对应顶点链的最后一个顶点连接,第二单量子逻辑门的酉矩阵为非对角矩阵;
当链表中量子逻辑门的类型为第一双量子逻辑门时,创建一条张量阶数为2 的边;其中,该边与所述第一双量子逻辑门所操作的两量子比特分别对应的顶点链中的最后一个顶点连接,第一双量子逻辑门的酉矩阵为对角矩阵;
当链表中量子逻辑门的类型为第二双量子逻辑门时,创建一条张量阶数为4 的边和两个与该边连接的顶点;其中,该边与所述第二双量子逻辑门所操作的两量子比特分别对应的顶点链中的最后一个顶点连接,第二双量子逻辑门的酉矩阵为非对角矩阵;
得到所述待模拟量子线路对应的待计算无向图。
优选地,所述根据所述进程的参数信息以及张量元素的数据类型,确定所述进程能够存储的张量元素总量,包括:
根据所述进程的参数信息,确定单个所述进程中用于单振幅量子模拟计算的内存资源;
根据表示张量元素的数据类型,确定张量的每个元素所需的内存;
根据所述内存资源和每个元素所需的内存,确定所述进程能够存储的张量元素总量。
优选地,其中:
若单个所述进程中用于单振幅量子模拟计算的内存资源为mM,表示张量元素的数据类型为Float类型,则所述进程能够存储的张量元素总量为 m×1024×1024/8;
若单个所述进程中用于单振幅量子模拟计算的内存资源为mM,表示张量元素的数据类型为Double类型,则所述进程能够存储的张量元素总量为 m×1024×1024/16,其中,m为任一正数。
优选地,根据所述进程能够存储的张量元素总量,确定所述待计算无向图的拆分次数,包括:
根据预设顺序,获取所述待计算无向图中各顶点连接的边的信息;
根据当前顶点连接的边的信息,对当前顶点连接的边执行融合操作;
在当前顶点连接的边执行融合操作后,更新所述待计算无向图;
判断所述待计算无向图中所有边对应的张量元素数量之和是否大于所述进程能够存储的张量的元素总量;
若不大于所述进程能够存储的张量的元素总量,则对当前顶点连接的边执行确定值降阶,并将下一顶点作为当前顶点,返回执行所述根据当前顶点连接的边的信息,对当前顶点连接的边执行融合操作的步骤;
若大于所述进程能够存储的张量的元素总量,则返回上一次更新的待计算无向图,对当前顶点之前的各顶点以及所述当前顶点之前的各顶点连接的边的信息执行删除操作,并对当前顶点连接的边执行确定值降阶,再将下一顶点作为当前顶点,返回执行所述根据当前顶点连接的边的信息,对当前顶点连接的边执行融合操作的步骤;
根据所述删除操作的执行次数,确定所述待计算无向图的拆分次数。
优选地,根据所述进程能够存储的张量元素总量,确定所述待计算无向图的拆分次数,还包括:
在所述根据预设顺序,获取所述待计算无向图中各顶点连接的边的信息之前,根据待计算无向图,确定待计算无向图的第一个顶点和最后一个顶点;
对所述第一个顶点连接的边、所述最后一个顶点连接的边分别执行确定值降阶操作。
优选地,所述融合操作的步骤,包括:
确定待融合的第一条边和第二条边;
根据所述第二条边的第二顶点组中不与所述第一条边相连的顶点,对所述第一条边的第一张量执行升阶操作,并以升阶后的张量更新所述第一张量;
根据所述第一张量对应的第一顶点组与所述第二顶点组之间的对应关系,确定所述第一张量中每一元素在所述第二条边的第二张量中的对应元素;
遍历所述第一张量中的每一元素,以该元素与其在所述第二张量中对应元素的乘积更新该元素;
删除所述第二条边,并将所述第二条边的除所述当前顶点之外的其他顶点连接至所述第一条边。
本发明还提供了一种预估单振幅模拟量子计算所需资源的***,包括:
获取模块,用于获取待模拟量子线路和配置的进程;
构建模块,用于根据所述待模拟量子线路,构建对应的待计算无向图;其中,所述无向图的顶点表征量子逻辑门操作前或操作后的、所操作量子比特的量子态,所述无向图的边表征张量;
张量元素确定模块,用于根据所述进程的参数信息以及张量元素的数据类型,确定所述进程能够存储的张量元素总量;
拆分次数确定模块,用于根据所述张量元素总量,确定所述待计算无向图的拆分次数;
计算资源确定模块,用于根据所述待计算无向图的拆分次数,确定单振幅模拟量子计算所需资源。
本发明还提供了一种存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述任一项中所述的方法。
本发明还提供了一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一项中所述的方法。
相比于现有技术,本发明通过获取待模拟量子线路和配置的进程,构建所述待模拟量子线路对应的无向图,根据进程的参数信息以及张量元素的数据类型确定所述进程能够存储的张量元素总量,并根据所述张量元素总量确定对所述待计算无向图的拆分次数,最后根据待计算无向图的拆分次数,即确定单振幅模拟量子计算所需资源,从而能够在单振幅模拟时提前预估单振幅模拟量子计算所需资源。
附图说明
图1为量子程序对应量子线路拆分成不同路径的具体示例;
图2为一种预估单振幅模拟量子计算所需资源的方法的流程示意图;
图3为本发明实施例所提供的单振幅量子计算模拟方法中不同类型量子逻辑门构建的无向图示意图;
图4为本发明实施例所提供的待模拟量子线路示例对应的无向图;
图5为一种预估单振幅模拟量子计算所需资源的***的结构示意图。
具体实施方式
下面结合附图和具体实施例对本发明进一步进行描述。
量子比特是量子计算中基本的信息单位,因此,N个量子比特对应有2N个量子态分量,举例而言:
1个量子比特所处的逻辑状态为2个量子态分量的叠加态,这2个量子态分量分别为|0>和|1>,该1个量子比特所处的任一逻辑状态可以表示为:
ψ=a|0>+b|1>
其中,a、b分别为|0>、|1>的振幅,a、b均为复数形式。
ψ对应的矩阵表示为:
Figure BDA0002350383770000051
测量后,该1个量子比特所处的逻辑状态塌缩至一个固定的量子态|0>或|1>,其中,塌缩至|0>的概率是a2,塌缩至|1>的概率是b2,a2+b2=1。
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>
且ψ对应的矩阵表示为:
Figure BDA0002350383770000052
其中,8个量子态中的每个量子态分量对应的振幅为c0至c7这些复数中的一个,c0至c7的下标值为该振幅所属量子态的二进制对应的十进制值,我们把 c0至c7这些复数中的每一个称作一个单振幅。
量子计算的过程,是不同的量子逻辑门按次序操作对应量子比特的过程,其中,我们把这些按次序组合起来的量子逻辑门序列称为量子线路。在量子计算模拟过程中,用酉矩阵表示量子逻辑门,则量子逻辑门操作对应量子比特的过程即是用酉矩阵左乘以量子态右矢对应的矩阵进行矩阵乘法计算的过程。因此,量子计算,也可以理解为不同的量子逻辑门对应的酉矩阵对初始的量子态按次序进行左乘。其中:
单量子逻辑门(例如:阿达马门、泡利-X门、泡利-Y门、泡利-Z门等)是一个2×2的矩阵,一个单量子逻辑门对量子线路中的一个量子比特操作只会改变这个量子比特对应的态的振幅,并且,这个量子比特对应的态是成组出现的,一组有2个量子态;双量子逻辑门(例如:控制非门、交换门等)是一个4×4 的矩阵,一个双量子逻辑门对量子线路中的两个量子比特操作只会改变这两个量子比特对应的态的振幅,并且,这个量子比特对应的态是成组出现的,一组有4个量子态。
需要说明的是,双量子逻辑门作用的量子比特的比特位包括两个,分别为控制比特位和操作比特位,常见的双量子逻辑门为CNOT门(即控制非门), CNOT(q1,q2)中q1为控制位,q2为操作位,其作用为:当控制位为|0>态时,操作位q2的量子态不变,当控制位为|1>态时,操作位q2的量子态取反。需要说明的是,在构建量子线路时不允许控制比特和操作比特是同一个量子比特。
量子计算模拟主要包括振幅模拟、部分振幅模拟和单振幅模拟,其中:
单振幅模拟,便是指一次性模拟计算出N个量子比特的2N个量子态分量中的一个量子态分量的振幅,即目标量子态分量的振幅。具体地,单振幅模拟是通过将量子线路映射到无向图上,并结合路径积分法,将无向图拆分至多个计算进程(或称“计算节点”)上,由每个进程计算对应的子无向图,从而实现并行计算。整个计算过程都是基于张量中元素的简单运算,与全振幅模拟相比,大大降低了对内存资源的需求。
此外,实际应用中,有时只需要量子比特全振幅中的一个或多个振幅,在这种情况下,若采用全振幅模拟,即一次性模拟出所有的振幅,无疑是对内存等资源以及时间的浪费;而应用单振幅模拟方法,则可以有针对性地进行一次或多次模拟,模拟出需要的一个或多个单振幅即可,大大节省了资源与时间。
但是,随着无向图的拆分,单振幅模拟所需要的资源也有所变化,甚至是增加,这会严重影响量子计算模拟效率,因此,亟需一种预估单振幅模拟量子计算所需资源的方法。
需要说明的是,单振幅模拟中,假设待模拟量子线路(或量子程序)中除量子比特的初始量子态|0...0>和末态外共涉及M1个量子态,那么,由于每个量子比特的状态都可以处于|0>和|1>的叠加态,故针对M1个中的一个量子态,将其拆分成|0>和|1>,便可获得初始量子态到末态分量X=|x0...xn-1>的2M1条可能的变换路径,计算每条路径的振幅,再进行求和便可得末态分量,即目标量子态分量的振幅。其中,M1为正整数。
举例而言,待模拟量子线路涉及2个量子比特,分别为:q0、q1,初始态s0=|00>,目标量子态分量为|11>(末态的一个量子态分量),该量子线路中包含2个H门 (HadamardGate,阿达马门):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>两部分,那么,便可获得初始量子态到末态分量的
Figure BDA0002350383770000073
条可能的变换路径,计算每条路径的振幅,再进行求和便可得量子态的目标单振幅。
在一个只有单量子逻辑门和对角双量子逻辑门的量子线路(或量子程序) 中,给定量子比特的初始量子态为|0...0>,当其末态分量,即目标量子态分量取值为x=|x0...xn-1>时,其振幅的计算公式可以表示为:
Figure BDA0002350383770000071
公式(1)为量子力学路径积分方法的基本公式。
需要说明的是,公式(1)中ψ函数均是关于布尔变量的复杂函数,表示量子逻辑门对量子态的贡献,为更好阐述,公式(1)中只体现了三类ψ函数中的一个,对其他ψ函数做了省略处理;
Figure BDA0002350383770000072
取值为{0,1},对应量子位为j的量子比特经第k个量子逻辑门作用后量子态的分量。ψ函数的取值主要与两个因素相关,一是量子逻辑门操作的量子比特在该量子逻辑门执行前后的量子态,二是量子逻辑门的酉矩阵。
具体地,
Figure BDA0002350383770000081
是一个关于布尔变量
Figure BDA0002350383770000082
Figure BDA0002350383770000083
的复杂函数,取值由两个变量的值和对应对角双量子逻辑门的酉矩阵决定,
Figure BDA0002350383770000084
Figure BDA0002350383770000085
分别对应量子位为v1和 v2的两个量子比特未经第v个对角双量子逻辑门作用前量子态的分量;
Figure BDA0002350383770000086
是一个关于布尔变量
Figure BDA0002350383770000087
的复杂函数,取值由变量的值和对应对角单量子逻辑门的酉矩阵决定,
Figure BDA0002350383770000088
对应量子位为u的量子比特未经第u′个对角单量子逻辑门作用前量子态的分量;
Figure BDA0002350383770000089
是一个关于布尔变量
Figure BDA00023503837700000810
Figure BDA00023503837700000811
的复杂函数,取值由两个变量的值和对应非对角单量子逻辑门的酉矩阵决定,
Figure BDA00023503837700000812
Figure BDA00023503837700000813
分别对应量子位为 j的量子比特在第i个非对角单量子逻辑门作用前、后量子态的分量。可以理解的是,j、k、v、v1、v2、v1′、v2′、u、u′、i均为非负整数。
如图2所示,本实施例提供了一种预估单振幅模拟量子计算所需资源的方法,包括如下步骤S100至S500,其中:
S100、获取待模拟量子线路和配置的进程。
为便于理解,下面结合图1和具体示例说明,例如,待模拟量子线路为如下1#量子线路,模拟1#量子线路的分布式计算机集群配置有4个基于MPI通信的进程,目标量子态分量为|101>,目标量子态分量对应的振幅即要计算的单振幅:
QCircuitcir;
cir<<RY(q[0],PI/2)<<H(q[2])
<<CNOT(q[2],q[1])
<<CNOT(q[0],q[1])<<H(q[2])
<<H(q[0])<<CNOT(q[1],q[2]).
其中,本领域技术人员应该知道的是:
H代表阿达马Hadamard门,X代表泡利-X门(其对应的矩阵为泡利矩阵σx), Y代表泡利-Y门(其对应的矩阵为泡利矩阵σy),Z代表泡利-Z门(其对应的矩阵为泡利矩阵σz),RX代表任意旋转泡利-X门,RY代表任意旋转泡利-Y门, RZ代表任意旋转泡利-Z门,CNOT代表控制非门(Control-NOT);
q0、q1、q2是指比特位从0至2的量子比特。另外需要说明的是,量子态的表示对应q2q1q0的排布规则,且q2q1q0中从右至左对应的比特位由低位到高位。
因此,由该量子线路中,可以确定量子逻辑门H(q0)为单量子逻辑门,且其作用的量子比特的比特位为0,类似的:确定H(q1)为单量子逻辑门,且其作用的量子比特的比特位为1;确定RY(q0)为单量子逻辑门,且其作用的量子比特的比特位为2;......;确定CNOT(q1,q2)为双量子逻辑门,且其作用的量子比特的比特位为2和1;......。
S200、根据所述待模拟量子线路,构建对应的待计算无向图;其中,所述无向图的顶点表征量子逻辑门操作前或操作后的、所操作量子比特的量子态,所述无向图的边表征张量。
待模拟量子线路包括量子逻辑门信息以及所涉及的量子比特,通过解析待模拟量子线路,顺序读取解析得到的数据来构建无向图;也可以是配置待模拟量子线路解析后得到的目标类型格式的信息,根据该目标类型格式的信息构建无向图。其中,目标类型格式,可以是链表、队列等,考虑到后续无向图构建时可以更高效,优选链表。
需要说明的是:
构建待计算无向图过程中,在创建顶点时,会记录该顶点属于当前量子逻辑门所操作的量子比特的第几个顶点。
构建好的待计算无向图中,每个量子比特会对应一个顶点链信息,顶点链信息包括第一个顶点至最后一个顶点的各顶点取值、顶点连接的边的信息以及顶点标识。其中,顶点标识唯一确定一个顶点,根据该标识可以确定对应顶点属于哪个量子比特及其取值、连接的边的信息等;顶点的值确定后,应为0或1;但当顶点的值不确定时,可以为空,也可以为任一约定的符合顶点的取值类型的数值或字符,比如-1,用以在实现过程中对顶点的取值情况进行判断。其中,顶点的值可以用张量表示,也可以用变量或者其他合理的数据类型来表示。
待计算无向图还包括边的张量信息,可以包括张量数组以及该张量对应边连接的顶点的标识。
其中,待计算无向图的顶点对应量子逻辑门操作前或操作后、所操作的量子比特的量子态分量,取值均为{0,1},对应公式(1)中的变量
Figure BDA0002350383770000091
而所操作的量子比特即是对应量子逻辑门操作的量子比特。无向图的边对应待模拟量子线路中的量子逻辑门,具体地,每个量子逻辑门对应的边都对应一个张量(也就是说张量是与量子逻辑门的特点相关的),该张量中的元素由量子逻辑门对应的酉矩阵和对应边连接的顶点取值共同决定,可以理解的是该张量对应公式(1)中的ψ函数。
张量(Tensor)是一个同时定义在几个线性空间的量,它是矢量概念和矩阵概念的推广。每个张量可以采用下标标记法,如张量T12,下标的数量即是张量的阶(rank),表示张量的维度。举例而言,标量是0阶张量,矢量是1阶张量,矩阵则是2阶张量。张量的形状则是指每个维度中元素的数量;张量的元素个数由其形状决定。
在本发明实施例中,张量的阶与该张量对应边连接的顶点个数相等,张量的下标为无向图中顶点的编号。由于每个顶点的取值都只能为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)中的
Figure BDA0002350383770000101
则一般不会有改变。
此类型单量子逻辑门,典型地如泡利-Z门(Pauli-Z gate),其酉矩阵为
Figure BDA0002350383770000111
当利用泡利-Z门操作一个量子比特时,保留该量子比特的基本状态|0>不变,并将|1>转换成-|1>。
此类型双量子逻辑门,典型地如CZ门,其酉矩阵为:
Figure BDA0002350383770000112
当对两个量子比特Q0、Q1(Q0为控制比特,Q1为目标比特)执行CZ门操作时,当Q0的量子态为|0>时,Q1的量子态不变;当Q0的量子态为|1>时,Q1的量子态保留|0>不变,将|1>换成-|1>。
可以看出,无论是泡利-Z门还是CZ门,带来的都只是量子态分量振幅的变化,量子态分量不变。因此,对这类量子逻辑门,即酉矩阵为对角矩阵的单量子逻辑门或双量子逻辑门,构建无向图时,向无向图添加一条量子逻辑门对应边即可。
如图(3a)所示,对于对角单量子逻辑门,构建无向图时,只添加一条边E1即可,该边的一端与顶点V0相连。其中,V0为对应量子比特当前的最后一个顶点,即该量子逻辑门直接作用的量子态对应的顶点。
可以理解的是,如图(3a)所示,边E1只连接一个顶点,故其张量
Figure BDA0002350383770000113
为1阶张量,共有21=2个元素,该张量对应公式(1)中的ψu函数,表示该对角单量子逻辑门对量子态的贡献。
举例而言,当边E1是对角单量子逻辑门泡利-Z门的对应边时,根据泡利-Z 门的酉矩阵可知,其张量
Figure BDA0002350383770000114
如图(3b)所示,对于对角双量子逻辑门,构建无向图时,也只需添加一条边 E12,该边的一端与顶点V1相连,一端与顶点V2相连。其中,V1和V2分别为该对角双量子逻辑门操作的两个量子比特对应的当前最后一个顶点,即该对角双量子逻辑门直接作用的量子态对应的顶点。
可以理解的是,如图(3b)所示,边E12与两个顶点V1和V2相连,故其张量
Figure BDA0002350383770000115
为2阶张量,共有22=4个元素,该张量对应公式(1)中的ψν函数,表示该对角双量子逻辑门对量子态的贡献。
举例而言,当边E12是对角双量子逻辑门CZ门的对应边时,根据其酉矩阵可知,其张量
Figure BDA0002350383770000121
第二种情况:量子逻辑门为非对角单量子逻辑门
当量子逻辑门为单量子逻辑门且其对应的酉矩阵为非对角矩阵,即非对角单量子逻辑门时,如H门,其酉矩阵为
Figure BDA0002350383770000122
经过H门的操作,|0>将变为
Figure BDA0002350383770000123
|1>将变为
Figure BDA0002350383770000124
振幅和量子态分量都发生改变。对这类量子逻辑门,在构建无向图时,需向无向图添加一个单量子逻辑门操作后新量子态对应的顶点和一条量子逻辑门对应边。
如图(3c)所示,对于非对角单量子逻辑门,构建无向图时,添加一个顶点V4,一条边E34,该边的一端与顶点V3相连,一端与顶点V4相连。其中, V3为该非对角单量子逻辑门操作的量子比特对应的当前最后一个顶点,即该非对角量子逻辑门直接作用的量子态对应的顶点;V4为新增的顶点,对应非对角单量子逻辑门操作后的新量子态。
可以理解的是,边E34与两个顶点V3和V4相连,故其张量
Figure BDA0002350383770000125
为2阶张量,共有22=4个元素,该张量对应公式(1)中的ψi函数,表示该非对角单量子逻辑门对量子态的贡献。
举例而言,当边E34是非对角单量子逻辑门H门的对应边时,根据其酉矩阵可知,张量
Figure BDA0002350383770000126
第三种情况:量子逻辑门为非对角双量子逻辑门
这种情况即量子逻辑门为双量子逻辑门且其对应的酉矩阵为非对角矩阵,举例而言,对于非对角双量子逻辑门CNOT门,其酉矩阵为:
Figure BDA0002350383770000131
则经过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对应受控比特。
本领域人员可以理解的是,任意多量子比特门都可以用单量子逻辑门加上任意的双量子逻辑门来构建,在大多数情况下,双量子逻辑门多选择CNOT门。某种意义上,CNOT门和单量子逻辑门是其他所有门的原型。故而本申请提供的方法也适用于带有多量子比特逻辑门的量子线路(或量子程序)。
因此,结合上述分析,可以得到步骤S200的一种具体实现方式如下:
S210、解析待模拟量子线路,得到记录待模拟量子线路信息的链表;
S220、遍历该链表,依次读取链表中各个量子逻辑门的类型及酉矩阵形式,添加相应的顶点和边,其中:
当链表中量子逻辑门的类型为第一单量子门时,创建一条张量阶数为1的边;其中,该边与所述第一单量子门所操作的量子比特对应顶点链的最后一个顶点连接,第一单量子门的酉矩阵为对角矩阵;
当链表中量子逻辑门的类型为第二单量子门时,创建一条张量阶数为2的边和一个与该边连接的顶点;其中,该边与所述第二单量子门所操作的量子比特对应顶点链的最后一个顶点连接,第二单量子门的酉矩阵为非对角矩阵;
当链表中量子逻辑门的类型为第一双量子门时,创建一条张量阶数为2的边;其中,该边与所述第一双量子门所操作的两量子比特分别对应的顶点链中的最后一个顶点连接,所述第一双量子门的酉矩阵为对角矩阵;
当链表中量子逻辑门的类型为第二双量子门时,创建一条张量阶数为4的边和两个与该边连接的顶点;其中,该边与所述第二双量子门所操作的两量子比特分别对应的顶点链中的最后一个顶点连接,第二双量子门的酉矩阵为非对角矩阵;
S230、遍历完成,添加顶点和边完毕,即构建出待模拟量子线路的无向图,得到所述待模拟量子线路对应的无向图,本实施例提供的待模拟量子线路示例 (1#量子线路)所对应的待计算无向图即如图4所示。
图4所示的无向图中记载了1#量子线路中每个量子比特的顶点链信息,顶点链信息包括第一个顶点至最后一个顶点的各顶点取值、顶点连接的边的信息以及顶点标识,以及边的张量信息。
对于本实施例中的1#量子线路,其无向图的顶点标识为V1至V13,各顶点连接的边的信息,及该边的张量信息如下表:
表1 1#量子线路对应的待计算无向图中各顶点连接的边急连接的边的张量阶数
Figure BDA0002350383770000141
注:表中【】内为“连接的边”的张量阶数。
S300、根据所述进程的参数信息以及张量元素的数据类型,确定所述进程能够存储的张量元素总量。
作为本发明实施例的一种具体实施方式,S300包括如下步骤:
S310、根据所述进程的参数信息,确定单个所述进程中用于单振幅量子模拟计算的内存资源;
S320、根据表示张量元素的数据类型,确定张量的每个元素所需的内存;
S330、根据所述内存资源和每个元素所需的内存,确定所述进程能够存储的张量元素总量。
其中:若单个所述进程中用于单振幅量子模拟计算的内存资源为mM(M 为单位“兆”),表示张量元素的数据类型为Float类型,则所述进程能够存储的张量元素总量为m×1024×1024/8;若单个所述进程中用于单振幅量子模拟计算的内存资源为mM(M为单位“兆”),表示张量元素的数据类型为Double类型,则所述进程能够存储的张量元素总量为m×1024×1024/16,其中,m为任一正数。
本步骤中进程的参数信息是指决定该进程用于单振幅量子模拟计算的内存资源的参数,例如进程的内存、设定的用于单振幅量子模拟计算的内存比例等。
S400、根据所述进程能够存储的张量元素总量,确定所述待计算无向图的拆分次数。
模拟量子计算的过程是实现矩阵乘法运算的过程,对待计算无向图模拟量子计算时,无向图中的边执行融合操作后更新待计算无向图,待计算无向图对应的张量元素所能达到的上限不能超过前述步骤确定的张量元素总量,基于此,也即能够确定对所述待计算无向图的拆分次数。
作为一种具体实施方式,步骤S400包括:
S430、根据预设顺序,获取所述待计算无向图中各顶点连接的边的信息;
S440、根据当前顶点连接的边的信息,对当前顶点连接的边执行融合操作;
在此需要说明的是,为了便于快速确定待计算的数据,通常将张量对应的顶点按照一定顺序排列,并将该顶点序列的组合取值的二进制数与张量中元素的位置编号一一对应,本步骤中的基于预设顺序,即是指按照单振幅模拟量子计算时各顶点所遵循的顺序排列对各顶点执行融合操作。
S450、在当前顶点连接的边执行融合操作后,更新所述待计算无向图;
S460、判断所述待计算无向图中所有边对应的张量元素数量之和是否大于所述进程能够存储的张量的元素总量;
若不大于所述进程能够存储的张量的元素总量,则对当前顶点连接的边执行确定值降阶,并将下一顶点作为当前顶点,返回执行所述根据当前顶点连接的边的信息,对当前顶点连接的边执行融合操作的步骤;
若大于所述进程能够存储的张量的元素总量,则返回上一次更新的待计算无向图,对当前顶点之前的各顶点以及所述当前顶点之前的各顶点连接的边的信息执行删除操作,并对当前顶点连接的边执行确定值降阶,再将下一顶点作为当前顶点,返回执行所述根据当前顶点连接的边的信息,对当前顶点连接的边执行融合操作的步骤;
S470、根据所述删除操作的执行次数,确定所述待计算无向图的拆分次数。
下面将就一个顶点,具体如何对其所有连接边进行融合以及降阶等操作进行说明。
在一种实现方式中,对该顶点连接的所有边执行融合操作,获得一条目标边的步骤,具体地,可以对该顶点连接的所有边,两两融合,获得至少一条融合边,然后在融合得到的新边数量不小于2的情况下,继续对新边两两融合操作,直至最终获得一条融合边,即目标边。
在另一种实现方式中,对该顶点连接的所有边执行融合操作,获得一条目标边的步骤,具体地,可以先从该顶点连接的所有边中,任选两条边进行融合,获得一条新边,然后再从剩余未融合的边中选择一条边,与新边融合,重复上述步骤,直至该顶点的所有连接边融合成一条边。
当然,实际应用中,也可以综合上述两种实现方式或者采用其他方式来实现边的融合,在此不做限定。
具体而言,本实施例中融合操作的步骤,包括:
S431、确定待融合的第一条边和第二条边;
S433、根据所述第二条边的第二顶点组中不与所述第一条边相连的顶点,对所述第一条边的第一张量执行升阶操作,并以升阶后的张量更新所述第一张量;
S433、根据所述第一张量对应的第一顶点组与所述第二顶点组之间的对应关系,确定所述第一张量中每一元素在所述第二条边的第二张量中的对应元素;
S434、遍历所述第一张量中的每一元素,以该元素与其在所述第二张量中对应元素的乘积更新该元素;
S435、删除所述第二条边,并将所述第二条边的除所述当前顶点之外的其他顶点连接至所述第一条边。
例如,对某个无向图,当前所有顶点及其连接边为S12、S16、S25、S3、S4,其融合操作的步骤如下:
针对顶点1,S12、S16融合成新边S126,对其张量A126降阶成A26,对应边变为S26,删除顶点1;
针对顶点2,对当前连接边S25、S26融合成新边S256,对其张量A256降阶为 A56,对应边S56,删除顶点2;
针对顶点3,只连接边S3,对其张量A3降阶为A=x3(标量),对应边变为张量阶数为0的边s3,删除顶点3;
针对顶点4,只连接边S4,对其张量A4降阶为A′=x4(标量),对应边变为张量阶数为0的边s4,删除顶点4;
针对顶点5,当前只连接边S56融合后不变,对其张量A56降阶成A6,对应边S6,删除顶点5;
针对顶点6,当前只连接边S6,对其张量A6降阶为A″=x6(标量),对应边变为张量阶数为0的边s6,删除顶点6。
结合本实施例中的1#量子线路对应的待计算无向图,针对如何根据所述进程能够存储的张量元素总量,确定所述待计算无向图的拆分次数,做示例性说明:
1#量子线路对应的待计算无向图中顶点预设顺序假设为V1、V2、…、V13,待计算无向图中的边为S12、S2367、S34、S56(10)(11)、S78(12)(13)、S9(10)、S(11)(12)(其中,各边对应的张量阶数为R12、R2367、R34、R56(10)(11)、R78(12)(13)、R9(10)、R(11)(12)),本实施例假设确定的所述进程能够存储的张量的元素个数为64(此数字仅为本实施例中进行示例性解释说明的需要,实际应用时,根据前述步骤S300确定),因此:
针对顶点1,当前连接边S12融合操作后成新边S12,对应的张量为A12(张量元素个数为22),更新待计算无向图,所有边对应的张量元素数量之和为:
Figure BDA0002350383770000171
A12降阶成A2(对应的张量元素个数为21=2),对应边变为S2,删除顶点1;
针对顶点2,对当前连接边S2367、S2融合操作后成新边S2367,对应张量为 A2367(张量元素个数为24),更新待计算无向图,所有边对应的张量元素数量之和为:
Figure BDA0002350383770000181
A2367降阶为A367(张量元素个数为23=8),对应边S367,删除顶点2;
针对顶点3,对当前连接边S367、S34融合操作后成新边S3467,对应张量为 A3467(张量元素个数为24),更新待计算无向图,所有边对应的张量元素数量之和为:
Figure BDA0002350383770000182
A3467降阶为A467(张量元素个数为23=8),对应边变为S467,删除顶点3;
针对顶点4,当前只连接边S467融合操作后成新边S467,对应张量为A467(张量元素个数为23),更新待计算无向图,所有边对应的张量元素数量之和为:
Figure BDA0002350383770000183
A467降阶为A67(张量的元素个数为22),对应边变为S67,删除顶点4;
针对顶点5,当前连接边S56(10)(11)融合操作后成新边S56(10)(11),对应张量为A56(10)(11)(张量元素个数为24),更新待计算无向图,所有边对应的张量元素数量之和为:
Figure BDA0002350383770000184
A56(10)(11)降阶成A6(10)(11)(张量的元素个数为23),对应边变为为S6(10)(11),删除顶点5;
针对顶点6,当前连接边S6(10)(11)、S67融合操作后成新边S67(10)(11),对应张量A67(10)(11)(张量元素个数为24=16),更新待计算无向图,所有边对应的张量元素数量之和为:
Figure BDA0002350383770000185
A67(10)(11)降阶为A7(10)(11)(张量的元素个数为23),对应边S7(10)(11),删除顶点 6;
针对顶点7,当前连接边S78(12)(13)、S7(10)(11)融合操作后成新边S78(10)(11)(12)(13),对应张量A78(10)(11)(12)(13)(张量元素个数为26),更新待计算无向图,所有边对应的张量元素数量之和为:
Figure BDA0002350383770000186
A78(10)(11)(12)(13)降阶为A8(10)(11)(12)(13)(张量元素个数为25),对应边变为S8(10)(11)(12)(13),删除顶点7。
由于72大于64,因此返回至针对顶点6连接的边融合操作后更新的待计算无向图,针对顶点6及与顶点6连接的边的信息执行删除操作(注意:此删除操作与前述步骤中降阶后删除顶点的操作不同),并针对顶点7连接的边执行确定值降阶,顶点7当前连接边S78(12)(13)、S7(10)(11)确定值降阶后分别为S8(12)(13)、 S(10)(11),此时所有边对应的张量元素数量之和为:
Figure BDA0002350383770000191
针对顶点8,当前连接边S8(12)(13)融合操作后成新边S8(12)(13),,对应张量 A8(12)(13)(张量元素个数为22),更新待计算无向图,所有边对应的张量元素数量之和为:
Figure BDA0002350383770000192
A8(12)(13)降阶为A(12)(13)(张量元素个数为22),对应边变为S(12)(13),删除顶点8;
针对顶点9,当前连接边S9(10)融合操作后成新边S9(10),对应张量A9(10),(张量元素个数为22),更新待计算无向图,所有边对应的张量元素数量之和为:
Figure BDA0002350383770000193
A9(10)降阶为A(10),对应边变为S(10),删除顶点9;
针对顶点10,当前连接边S(10)(11)、S(10)融合操作后成新边S(10)(11),对应张量A(10)(11)(张量元素个数为22),更新待计算无向图,所有边对应的张量元素数量之和为:
Figure BDA0002350383770000194
A(10)(11)降阶为A(11),对应边变为S(11),删除顶点10;
针对顶点11,当前连接边S(11)、S(11)(12)融合操作后成新边S(11)(12),,对应张量A(11)(12)(张量元素个数为22),更新待计算无向图,所有边对应的张量元素数量之和为:
Figure BDA0002350383770000195
A(11)(12)降阶为A(12),对应边变为S(12),删除顶点11;
针对顶点12,当前连接边S(12)、S(12)(13)融合操作后成新边S(12)(13),对应张量A(12)(13)(张量元素个数为22),更新待计算无向图,所有边对应的张量元素数量之和为:
Figure BDA0002350383770000196
A(12)(13)降阶为A(13),对应边S(13),删除顶点12;
针对顶点13,当前连接边S(13)融合操作后成新边S(13),对应张量A(13)(张量元素个数为2),更新待计算无向图,所有边对应的张量元素数量之和为:
Figure BDA0002350383770000201
A(13)降阶为A″=x13(标量),对应边张量阶数为0的边S(13),删除顶点13。
基于上述过程,根据删除操作的执行次数,即可确定为所述待计算无向图的拆分次数,即本实施例提供的待模拟量子线路示例对应待计算无向图的拆分次数为1。
作为一种优选地实施方式,S400中所述根据所述最大阶数,确定对所述待计算无向图中的边执行融合操作的次数,还包括在步骤S430之前的如下步骤:
S410、根据待计算无向图,确定待计算无向图的第一个顶点和最后一个顶点。
具体的,根据待计算无向图,以及每次单振幅模拟计算时待模拟量子线路涉及的量子比特的初始态以及目标量子态分量,确定待计算无向图的第一个顶点和最后一个顶点,本实施例中待模拟量子线路的无向图中第一个顶点为V1、 V5、V9,最后一个顶点V4、V8、V13
S420、对所述第一个顶点所对应的边、所述最后一个顶点所对应的边分别执行确定值降阶操作。
需要说明的是,对顶点和边的确定值降阶,实质上,皆是对相关张量进行确定值降阶,本申请实施例中即是根据模拟量子线路涉及的量子比特的初始态以及目标量子态分量进行确定值降阶。
具体地,对张量的确定值降阶,即是根据确定的下标取值,在原张量中确定出对应元素,然后将该张量的元素更新为确定出的对应元素。
举例而言,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,这种操作即为确定值降阶。
本申请中所说的对无向图中边的降阶,实质皆是对边的张量的降阶,本申请中不再赘述。
本实施例中待模拟量子线路的无向图中第一个顶点所对应的边为S12、S56(10)(11)、S9(10),假设涉及的量子比特的初始态为|000>,即顶点V1、V5、V9均为|0>,对S12、S56(10)(11)、S9(10)分别执行确定值降阶操作,降阶后新边为S2、S6(10)(11)、 S(10)
最后一个顶点所对应的边为S34、S78(12)(13),目标量子态分量为|101>,即 V4、V8、V13分别对应|1>、|0>、|1>,对S34、S78(12)(13)分别执行确定值降阶操作,降阶后新边为S3、S7(12)
对所述第一个顶点所对应的边、所述最后一个顶点所对应的边分别执行确定值降阶操作,表1中待模拟量子线路的无向图中各顶点连接的边急连接的边的张量阶数即发生变化,具体如表2所示:
表2执行确定值降阶后待计算无向图中各顶点连接的边急连接的边的张量阶数
Figure BDA0002350383770000211
注:表中【】内为“连接的边”的张量阶数。
本具体实施方式先通过S410至S420能够优化待计算无向图,再通过S430 至S470确定优化后无向图进行模拟量子计算时最低需要的资源情况,融合过程参照上述示例性说明。
S500、根据所述待计算无向图的拆分次数,确定单振幅模拟量子计算所需资源。
具体的,若所述待计算无向图的拆分次数为N,则单振幅模拟量子计算所需资源为2N个所述进程,因此,本实施例中提供的待模拟量子线路示例进行单振幅模拟量子计算所需资源为2个所述进程。
本实施例通过获取待模拟量子线路和配置的进程,构建所述待模拟量子线路对应的无向图,根据进程的参数信息以及张量元素的数据类型确定所述进程能够存储的张量元素总量,并根据所述张量元素总量确定对所述待计算无向图的拆分次数,最后根据待计算无向图的拆分次数,即确定单振幅模拟量子计算所需资源,从而能够在单振幅模拟时提前预估单振幅模拟量子计算所需资源。
参见图5,图5为本发明实施例提供的一种预估单振幅模拟量子计算所需资源的***的结构示意图,与图2所示的流程相对应,本实施例还提供了一种预估单振幅模拟量子计算所需资源的***,包括:
获取模块601,用于获取待模拟量子线路和配置的进程;
构建模块602,用于根据所述待模拟量子线路,构建对应的无向图;其中,所述无向图的顶点表征量子逻辑门操作前或操作后的、所操作量子比特的量子态,所述无向图的边表征张量;
张量元素确定模块603,用于根据所述进程的参数信息以及张量元素的数据类型,确定所述进程能够存储的张量元素总量;
拆分次数确定模块604,用于根据所述张量元素总量,确定所述待计算无向图的拆分次数;
计算资源确定模块605,用于根据所述待计算无向图的拆分次数,确定单振幅模拟量子计算所需资源。
本发明实施例还提供一种存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
具体的,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:
S100、获取待模拟量子线路和配置的进程;
S200、根据所述待模拟量子线路,构建对应的无向图;其中,所述无向图的顶点表征量子逻辑门操作前或操作后的、所操作量子比特的量子态,所述无向图的边表征张量;
S300、根据所述进程的参数信息以及张量元素的数据类型,确定所述进程能够存储的张量元素总量;
S400、根据所述张量元素总量,确定所述待计算无向图的拆分次数;
S500、根据所述待计算无向图的拆分次数,确定单振幅模拟量子计算所需资源。
本发明实施例还提供一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一项方法实施例中的步骤。
具体的,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
具体的,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
S100、获取待模拟量子线路和配置的进程;
S200、根据所述待模拟量子线路,构建对应的无向图;其中,所述无向图的顶点表征量子逻辑门操作前或操作后的、所操作量子比特的量子态,所述无向图的边表征张量;
S300、根据所述进程的参数信息以及张量元素的数据类型,确定所述进程能够存储的张量元素总量;
S400、根据所述张量元素总量,确定所述待计算无向图的拆分次数;
S500、根据所述待计算无向图的拆分次数,确定单振幅模拟量子计算所需资源。

Claims (10)

1.一种预估单振幅模拟量子计算所需资源的方法,其特征在于,包括:
获取待模拟量子线路和配置的进程;
根据所述待模拟量子线路中各个量子逻辑门的类型和酉 矩阵的形式确定对应的顶点和边,并添加所述顶点和所述边构建对应的待计算无向图;其中,所述无向图的顶点表征量子逻辑门操作前或操作后的、所操作量子比特的量子态,所述无向图的边表征张量;
根据所述进程的参数信息以及张量元素的数据类型,确定所述进程能够存储的张量元素总量;
根据所述张量元素总量以及拆分后更新的待计算无向图的所有边对应的张量元素之和,确定所述待计算无向图的拆分次数;
根据所述待计算无向图的拆分次数,确定单振幅模拟量子计算所需资源。
2.根据权利要求1所述的预估单振幅模拟量子计算所需资源的方法,其特征在于,所述根据所述待模拟量子线路中各个量子逻辑门的类型和酉 矩阵的形式确定对应的顶点和边,并添加所述顶点和所述边构建对应的待计算无向图,包括:
解析所述待模拟量子线路,得到记录待模拟量子线路信息的链表;
遍历所述链表,当链表中量子逻辑门的类型为第一单量子逻辑门时,创建一条张量阶数为1的边;其中,该边与所述第一单量子逻辑门所操作的量子比特对应顶点链的最后一个顶点连接,第一单量子逻辑门的酉矩阵为对角矩阵;
当链表中量子逻辑门的类型为第二单量子逻辑门时,创建一条张量阶数为2的边和一个与该边连接的顶点;其中,该边与所述第二单量子逻辑门所操作的量子比特对应顶点链的最后一个顶点连接,第二单量子逻辑门的酉矩阵为非对角矩阵;
当链表中量子逻辑门的类型为第一双量子逻辑门时,创建一条张量阶数为2的边;其中,该边与所述第一双量子逻辑门所操作的两量子比特分别对应的顶点链中的最后一个顶点连接,第一双量子逻辑门的酉矩阵为对角矩阵;
当链表中量子逻辑门的类型为第二双量子逻辑门时,创建一条张量阶数为4的边和两个与该边连接的顶点;其中,该边与所述第二双量子逻辑门所操作的两量子比特分别对应的顶点链中的最后一个顶点连接,第二双量子逻辑门的酉矩阵为非对角矩阵;
得到所述待模拟量子线路对应的待计算无向图。
3.根据权利要求1所述的预估单振幅模拟量子计算所需资源的方法,其特征在于,所述根据所述进程的参数信息以及张量元素的数据类型,确定所述进程能够存储的张量元素总量,包括:
根据所述进程的参数信息,确定单个所述进程中用于单振幅量子模拟计算的内存资源;
根据表示张量元素的数据类型,确定张量的每个元素所需的内存;
根据所述内存资源和每个元素所需的内存,确定所述进程能够存储的张量元素总量。
4.根据权利要求3所述的预估单振幅模拟量子计算所需资源的方法,其特征在于,其中:
若单个所述进程中用于单振幅量子模拟计算的内存资源为mM,表示张量元素的数据类型为Float类型,则所述进程能够存储的张量元素总量为m×1024×1024/8;
若单个所述进程中用于单振幅量子模拟计算的内存资源为mM,表示张量元素的数据类型为Double类型,则所述进程能够存储的张量元素总量为m×1024×1024/16,其中,m为任一正数。
5.根据权利要求1所述的预估单振幅模拟量子计算所需资源的方法,其特征在于,所述根据所述张量元素总量以及拆分后更新的待计算无向图的所有边对应的张量元素之和,确定所述待计算无向图的拆分次数,包括:
根据预设顺序,获取所述待计算无向图中各顶点连接的边的信息;
根据当前顶点连接的边的信息,对当前顶点连接的边执行融合操作;
在当前顶点连接的边执行融合操作后,更新所述待计算无向图;
判断所述待计算无向图中所有边对应的张量元素数量之和是否大于所述进程能够存储的张量的元素总量;
若不大于所述进程能够存储的张量的元素总量,则对当前顶点连接的边执行确定值降阶,并将下一顶点作为当前顶点,返回执行所述根据当前顶点连接的边的信息,对当前顶点连接的边执行融合操作的步骤;
若大于所述进程能够存储的张量的元素总量,则返回上一次更新的待计算无向图,对当前顶点之前的各顶点以及所述当前顶点之前的各顶点连接的边的信息执行删除操作,并对当前顶点连接的边执行确定值降阶,再将下一顶点作为当前顶点,返回执行所述根据当前顶点连接的边的信息,对当前顶点连接的边执行融合操作的步骤;
根据所述删除操作的执行次数,确定所述待计算无向图的拆分次数。
6.根据权利要求5所述的预估单振幅模拟量子计算所需资源的方法,其特征在于,所述根据所述张量元素总量以及拆分后更新的待计算无向图的所有边对应的张量元素之和,确定所述待计算无向图的拆分次数,还包括:
在所述根据预设顺序,获取所述待计算无向图中各顶点连接的边的信息之前,根据待计算无向图,确定待计算无向图的第一个顶点和最后一个顶点;
对所述第一个顶点连接的边、所述最后一个顶点连接的边分别执行确定值降阶操作。
7.根据权利要求5所述的预估单振幅模拟量子计算所需资源的方法,其特征在于,所述融合操作的步骤,包括:
确定待融合的第一条边和第二条边;
根据所述第二条边的第二顶点组中不与所述第一条边相连的顶点,对所述第一条边的第一张量执行升阶操作,并以升阶后的张量更新所述第一张量;
根据所述第一张量对应的第一顶点组与所述第二顶点组之间的对应关系,确定所述第一张量中每一元素在所述第二条边的第二张量中的对应元素;
遍历所述第一张量中的每一元素,以该元素与其在所述第二张量中对应元素的乘积更新该元素;
删除所述第二条边,并将所述第二条边的除所述当前顶点之外的其他顶点连接至所述第一条边。
8.一种预估单振幅模拟量子计算所需资源的***,包括:
获取模块,用于获取待模拟量子线路和配置的进程;
构建模块,用于根据所述待模拟量子线路中各个量子逻辑门的类型和酉 矩阵的形式确定对应的顶点和边,并添加所述顶点和所述边构建对应的待计算无向图;其中,所述无向图的顶点表征量子逻辑门操作前或操作后的、所操作量子比特的量子态,所述无向图的边表征张量;
张量元素确定模块,用于根据所述进程的参数信息以及张量元素的数据类型,确定所述进程能够存储的张量元素总量;
拆分次数确定模块,用于根据所述张量元素总量以及拆分后更新的待计算无向图的所有边对应的张量元素之和,确定所述待计算无向图的拆分次数;
计算资源确定模块,用于根据所述待计算无向图的拆分次数,确定单振幅模拟量子计算所需资源。
9.一种存储介质,其特征在于,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行所述权利要求1至7任一项中所述的方法。
10.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行所述权利要求1至7任一项中所述的方法。
CN201911412718.0A 2019-12-31 2019-12-31 预估单振幅模拟量子计算所需资源的方法和*** Active CN113128015B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911412718.0A CN113128015B (zh) 2019-12-31 2019-12-31 预估单振幅模拟量子计算所需资源的方法和***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911412718.0A CN113128015B (zh) 2019-12-31 2019-12-31 预估单振幅模拟量子计算所需资源的方法和***

Publications (2)

Publication Number Publication Date
CN113128015A CN113128015A (zh) 2021-07-16
CN113128015B true CN113128015B (zh) 2023-04-07

Family

ID=76770625

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911412718.0A Active CN113128015B (zh) 2019-12-31 2019-12-31 预估单振幅模拟量子计算所需资源的方法和***

Country Status (1)

Country Link
CN (1) CN113128015B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114254755B (zh) * 2021-12-24 2022-12-02 中国科学院理论物理研究所 模拟量子比特末态概率幅的方法、装置和量子虚拟机
CN116341667B (zh) * 2023-04-03 2024-03-12 正则量子(北京)技术有限公司 一种量子线路搭建方法及设备

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101909022A (zh) * 2010-06-24 2010-12-08 北京邮电大学 一种时变信道下基于非码本预编码的传输方法
CN107683460A (zh) * 2015-05-05 2018-02-09 凯恩迪股份有限公司 在传统处理器上模拟量子样计算的quanton表示
WO2018172629A1 (fr) * 2017-03-24 2018-09-27 Bull Sas Procédé de simulation, sur un ordinateur classique, d'un circuit quantique
CN108647790A (zh) * 2018-05-16 2018-10-12 合肥本源量子计算科技有限责任公司 用于统一量子计算机和量子虚拟机的接口***及方法
WO2019058161A1 (en) * 2017-09-22 2019-03-28 International Business Machines Corporation SIMULATION OF QUANTUM CIRCUITS
WO2019078907A1 (en) * 2017-10-18 2019-04-25 Google Llc SIMULATION OF QUANTUM CIRCUITS
CN110188885A (zh) * 2019-06-28 2019-08-30 合肥本源量子计算科技有限责任公司 一种量子计算模拟方法、装置、存储介质和电子装置
CN110428055A (zh) * 2018-04-27 2019-11-08 阿里巴巴集团控股有限公司 量子计算方法和设备

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101909022A (zh) * 2010-06-24 2010-12-08 北京邮电大学 一种时变信道下基于非码本预编码的传输方法
CN107683460A (zh) * 2015-05-05 2018-02-09 凯恩迪股份有限公司 在传统处理器上模拟量子样计算的quanton表示
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
WO2019078907A1 (en) * 2017-10-18 2019-04-25 Google Llc SIMULATION OF QUANTUM CIRCUITS
CN110428055A (zh) * 2018-04-27 2019-11-08 阿里巴巴集团控股有限公司 量子计算方法和设备
CN108647790A (zh) * 2018-05-16 2018-10-12 合肥本源量子计算科技有限责任公司 用于统一量子计算机和量子虚拟机的接口***及方法
CN110188885A (zh) * 2019-06-28 2019-08-30 合肥本源量子计算科技有限责任公司 一种量子计算模拟方法、装置、存储介质和电子装置

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Sunspot number time series prediction using neural networks with quantum gate nodes;Xuezhong Guan et al.;《IEEE Xplore》;20150305;全文 *
基于新型量子逻辑门库的最优NCV三量子电路快速综合算法;李志强 等;《万方数据库》;20130703;全文 *
振幅相干态的量子统计性质;王建伟;《大学物理》;20020620(第06期);全文 *

Also Published As

Publication number Publication date
CN113128015A (zh) 2021-07-16

Similar Documents

Publication Publication Date Title
CN109800883B (zh) 量子机器学习框架构建方法、装置及量子计算机
CN110825375B (zh) 一种量子程序的转化方法、装置、存储介质和电子装置
CN110826719B (zh) 一种量子程序的处理方法、装置、存储介质和电子装置
CN110516810B (zh) 一种量子程序的处理方法、装置、存储介质和电子装置
CN111027702B (zh) 一种实现量子线路替换的方法、装置、存储介质和电子装置
CN111914378B (zh) 一种单振幅量子计算模拟方法及装置
CN111915011B (zh) 一种单振幅量子计算模拟方法
CN113222155B (zh) 一种量子线路的构建方法、装置、电子装置和存储介质
CN111027703B (zh) 一种量子线路查询的方法、装置、存储介质及电子装置
CN113128015B (zh) 预估单振幅模拟量子计算所需资源的方法和***
CN114764549B (zh) 基于矩阵乘积态的量子线路模拟计算方法、装置
CN115358407B (zh) 基于张量网络的近似量子编译方法、***和电子设备
CN111178532A (zh) 一种量子线路匹配的方法、装置、存储介质和电子装置
JP2009181446A (ja) プログラム生成装置およびブロック線図生成装置
CN111931939B (zh) 一种单振幅量子计算模拟方法
CN114358317A (zh) 基于机器学习框架的数据分类方法及相关设备
CN115809707B (zh) 量子比较运算方法、装置、电子装置及基础算术组件
CN114372539B (zh) 基于机器学习框架的分类方法及相关设备
CN116011681A (zh) 一种气象数据预测方法、装置、存储介质及电子装置
CN117151231A (zh) 利用变分量子线路求解线性***的方法、装置及介质
CN115146485A (zh) 基于gpu加速的射频链路仿真方法
CN115983392A (zh) 量子程序映射关系的确定方法、装置、介质及电子装置
Tripathi et al. Modified Differential Evolution Algorithm with Updated Mutation and Crossover Operator.
CN114372583B (zh) 基于机器学习框架的量子程序优化方法及相关设备
CN115775029B (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
GR01 Patent grant
GR01 Patent grant