CN117787424A - 量子电路处理方法、装置及电子设备 - Google Patents

量子电路处理方法、装置及电子设备 Download PDF

Info

Publication number
CN117787424A
CN117787424A CN202311756316.9A CN202311756316A CN117787424A CN 117787424 A CN117787424 A CN 117787424A CN 202311756316 A CN202311756316 A CN 202311756316A CN 117787424 A CN117787424 A CN 117787424A
Authority
CN
China
Prior art keywords
exchangeable
quantum
operation instruction
list
instruction
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.)
Pending
Application number
CN202311756316.9A
Other languages
English (en)
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.)
Beijing Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and 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 Beijing Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Priority to CN202311756316.9A priority Critical patent/CN117787424A/zh
Publication of CN117787424A publication Critical patent/CN117787424A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Superconductor Devices And Manufacturing Methods Thereof (AREA)

Abstract

本公开提供了一种量子电路处理方法、装置及电子设备,涉及量子计算技术领域,具体涉及量子电路技术领域。具体实现方案为:获取第一量子电路的第一指令列表,获取目标字典,目标字典指示可交换组的标识、量子操作的标识和量子比特的控制类型之间的关系;获取第一指令列表中操作指令对应量子操作的第一标识和每个量子比特的第一控制类型;基于目标字典、第一标识和第一控制类型,确定操作指令在作用的每个量子比特上的可交换特征,在可交换特征指示操作指令在量子比特上可交换的情况下,可交换特征包括操作指令在量子比特上所属的可交换组的第二标识;基于可交换特征和第一指令列表,对第一量子电路进行等效编译,得到第二量子电路的第二指令列表。

Description

量子电路处理方法、装置及电子设备
技术领域
本公开涉及量子计算技术领域,尤其涉及量子电路技术领域,具体涉及一种量子电路处理方法、装置及电子设备。
背景技术
量子计算利用量子世界中特有的运行规律,提供了一条全新的并且非常有前景的信息处理方式。在诸多特定问题上,量子算法可以带来超越经典算法的优势。例如,利用秀尔(Shor)算法,可以对大整数进行高效的分解,利用格罗弗(Grover)算法,可以更快的进行数据搜索。随着量子理论的发展,不断有新的量子算法被提出,如何高效的对这些算法进行模拟或者在真正的量子硬件上运行始终是一个重要的问题。
目前,量子算法的经典模拟或者真机运行主要受限于量子比特的数量。在经典模拟上,由于描述量子态的列向量的长度随对应比特数呈指数增长(例如一个n比特的量子态的列向量长度为2n),经典计算机很难模拟大规模的量子算法。受计算机内存和处理器能力的限制,现有的量子电路模拟方式最多能支持模拟几十个量子比特的算法。因此,需要将量子电路等效编译为动态量子电路,以减少所使用的量子比特数。
目前,是基于量子电路中量子操作的执行顺序来构建量子电路的有向无环图的,以基于所构建的有向无环图来实现量子电路的等效编译。
发明内容
本公开提供了一种量子电路处理方法、装置及电子设备。
根据本公开的第一方面,提供了一种量子电路处理方法,包括:
获取第一量子电路的第一指令列表,以及获取目标字典,所述目标字典指示可交换组的标识、量子操作的标识和量子比特的控制类型之间的关系,在满足预设条件的情况下,属于同一可交换组的两个量子操作是可交换的,所述预设条件包括:所述两个量子操作作用同一量子比特,且所述两个量子操作分别对于所述量子比特的控制类型为所述目标字典指示的控制类型;
获取所述第一指令列表中操作指令对应量子操作的第一标识和所述量子操作所作用的每个量子比特的第一控制类型;
基于所述目标字典、所述第一标识和所述第一控制类型,确定所述操作指令在作用的每个量子比特上的可交换特征,可交换特征指示操作指令在量子比特上的可交换性,在可交换特征指示操作指令在量子比特上可交换的情况下,可交换特征包括操作指令在量子比特上所属的可交换组的第二标识;
基于所述可交换特征和所述第一指令列表,对所述第一量子电路进行等效编译,得到第二量子电路的第二指令列表,所述第二量子电路的量子比特数小于所述第一量子电路的量子比特数。
根据本公开的第二方面,提供了一种量子电路处理装置,包括:
第一获取模块,用于获取第一量子电路的第一指令列表,以及获取目标字典,所述目标字典指示可交换组的标识、量子操作的标识和量子比特的控制类型之间的关系,在满足预设条件的情况下,属于同一可交换组的两个量子操作是可交换的,所述预设条件包括:所述两个量子操作作用同一量子比特,且所述两个量子操作分别对于所述量子比特的控制类型为所述目标字典指示的控制类型;
第二获取模块,用于获取所述第一指令列表中操作指令对应量子操作的第一标识和所述量子操作所作用的每个量子比特的第一控制类型;
确定模块,用于基于所述目标字典、所述第一标识和所述第一控制类型,确定所述操作指令在作用的每个量子比特上的可交换特征,可交换特征指示操作指令在量子比特上的可交换性,在可交换特征指示操作指令在量子比特上可交换的情况下,可交换特征包括操作指令在量子比特上所属的可交换组的第二标识;
等效编译模块,用于基于所述可交换特征和所述第一指令列表,对所述第一量子电路进行等效编译,得到第二量子电路的第二指令列表,所述第二量子电路的量子比特数小于所述第一量子电路的量子比特数。
根据本公开的第三方面,提供了一种电子设备,包括:
至少一个处理器;以及
与至少一个处理器通信连接的存储器;其中,
存储器存储有可被至少一个处理器执行的指令,该指令被至少一个处理器执行,以使至少一个处理器能够执行第一方面中的任一项方法。
根据本公开的第四方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,该计算机指令用于使计算机执行第一方面中的任一项方法。
根据本公开的第五方面,提供了一种计算机程序产品,包括计算机程序,该计算机程序在被处理器执行时实现第一方面中的任一项方法。
根据本公开的技术解决了相关技术中量子电路的等效编译效果比较差的问题,可以提高量子电路等效编译的效果,减少编译得到的动态量子电路所需的量子比特数。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本公开的限定。其中:
图1是根据本公开第一实施例的量子电路处理方法的流程示意图;
图2是一示例的静态量子电路的结构示意图;
图3是另一示例的静态量子电路的结构示意图;
图4是图3所示的静态量子电路转化为动态量子电路的结构示意图;
图5(a)是图3所示的静态量子电路对应的有向无环图的结构示意图;
图5(b)是添加有向边后的有向无环图的结构示意图;
图6(a)是一示例包含可交换结构的静态量子电路的结构示意图;
图6(b)是与图6(a)等价的静态量子电路的结构示意图;
图7是针对图6(a)所示的量子操作执行顺序的依赖关系所构建的有向无环图;
图8是基于图6(a)所示的量子电路并考虑量子操作之间的可交换性所构建的有向无环图;
图9-图11是具有可交换结构的量子门互换等价性的说明示意图;
图12(a)是另一示例包含可交换结构的静态量子电路的结构示意图;
图12(b)是与图12(a)等价的静态量子电路的结构示意图;
图13(a)是基于可交换特征构建的有向无环图的结构示意图;
图13(b)是添加目标有向边后的有向无环图的结构示意图;
图14是本实施例一示例中等效编译的动态量子电路的结构示意图;
图15是具有可交换结构的量子电路在交换量子门作用顺序前后以及编译前后的等价性示意图;
图16-图17是不同方案对随机量子电路的可编译性因子比对示意图;
图18是根据本公开第二实施例的量子电路处理装置的结构示意图;
图19是用来实施本公开的实施例的示例电子设备的示意性框图。
具体实施方式
以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
第一实施例
如图1所示,本公开提供一种量子电路处理方法,包括如下步骤:
步骤S101:获取第一量子电路的第一指令列表,以及获取目标字典,所述目标字典指示可交换组的标识、量子操作的标识和量子比特的控制类型之间的关系,在满足预设条件的情况下,属于同一可交换组的两个量子操作是可交换的,所述预设条件包括:所述两个量子操作作用同一量子比特,且所述两个量子操作分别对于所述量子比特的控制类型为所述目标字典指示的控制类型。
受计算机内存和处理器能力的限制,现有的量子电路模拟方式最多能支持模拟几十个量子比特的算法。比如,笔记本能模拟20-30个左右的量子比特,大型超级计算机和集群可以最多模拟30-40个左右的量子比特。在真机运行上,由于当前量子芯片的可扩展性问题尚未解决,导致量子计算机能提供的量子比特数非常有限。因此,量子电路优化是量子计算领域中的一个基本问题。
量子电路优化是通过一定的技术手段,可以将给定的量子电路进行简化,以降低其经典模拟和真机运行的要求,进而加速量子算法的研究和量子计算在实际场景下的落地。
而本实施例的量子电路处理可以为量子电路优化的处理,其目的在于通过对量子电路进行优化编译,可以使得编译得到的量子电路在量子比特数上对原量子电路进行大量简化。一方面,可以进一步提升量子算法经典模拟的规模,加强经典计算机对量子算法的验证能力,另一方面,也可以降低量子算法在真机运行上的比特数要求,弥补当前量子芯片可扩展性问题的不足。
更具体的,本实施例的目的是将给定的量子电路等效编译为动态量子电路,以减少量子电路的量子比特数量,降低其经典模拟和真机运行的要求。
其中,通过引入量子比特的中间电路测量以及在计算中将量子比特重置为其基态的能力,动态量子电路能够将经典通信和计算整合到量子电路中。这一特性将极大地增加在量子硬件上运行电路的多样性,并且对于纠错和容错量子计算的发展也至关重要。因此,动态量子电路有望成为未来许多量子应用的重要组成部分。在数学意义上和没有实验约束的情况下,静态和动态量子电路具有相同的计算能力,即任何可以用动态量子电路表示的问题也可以表示为静态问题,所以动态量子电路提供了权衡电路深度和宽度的可能性。
此外,由于动态量子电路中的量子比特可以被重置并在后续计算过程中继续被使用,与静态量子电路相比,在运行相同的量子算法的情况下,动态量子电路可以有效地减少计算任务所需的量子比特数,且理论上计算能力不受任何影响。例如,在静态量子电路中需要n量子比特的Berstein-Vazirani算法,在动态量子电路仅需2个量子比特即可实现。
以下详细介绍量子电路模型。
量子电路模型是一种常用的量子计算模型。通过对初始量子态进行量子门操作完成量子态的演化,并通过量子测量提取计算结果。而量子电路图则表示了量子电路模型计算的全部过程。
图2是一示例的静态量子电路的结构示意图,如图2所示,可以用一根水平线表示一个量子比特系统,从上至下依次对量子比特位进行标号,其中,量子位的标号往往从零开始。
量子电路图中时间演化的方向从左到右,最左端为初始的量子态,其中,通常每个量子比特初始化为零态,之后对初始态依次作用不同的量子门操作以完成量子态的演化。同时可以对某些量子位进行量子测量,获得测量结果。
如果一个量子电路在电路中间没有出现量子测量和量子态制备等操作,则此类电路称为静态量子电路,一个静态量子电路图的示例如图2所示。
量子电路图中的操作通常按照其作用顺序用一个有序的指令列表进行表示,列表中的每一个元素代表一个指令操作。具体地,可以将:
每一个量子态制备(或初始化)操作表示为一个包含四个元素的指令[Reset,qubit,None,None]。例如,[Reset,2,None,None]表示将量子位2初始化为零态。
每一个单量子比特门(如H,X,Y,Z,S,T,Rx,Ry,Rz等)表示为一个包含四个元素的指令[name,qubit,parameters,condition]。其中,name为量子门的名称,qubit为量子门作用的量子比特位,parameters为量子门的参数(如没有参数则默认为None),condition表示该量子门操作受哪一个量子位测量结果的控制(如果没有参数则默认为None)。例如,[Rx,2,π,None]表示对量子位2上的量子比特作用一个Rx旋转门,旋转角度为π。
每一个双量子比特门(如控制非门CNOT门,SWAP门)表示为一个包含四个元素的指令[name,qubit,parameters,condition]。其中,name为量子门的名称,qubit为该双量子比特门作用的量子位构成的列表,对于受控量子门,qubit为控制位和受控位构成的列表,parameters为量子门的参数(如没有参数则默认为None),condition表示该量子门操作受哪一个量子位测量结果的控制(如果没有参数则默认为None)。例如,[SWAP,[1,2],None,None]表示在量子位1和2之间作用SWAP门;而[CNOT,[1,3],None,None]表示对量子位1和3作用控制非门,其中1为控制位,3为受控位。
每一个多量子比特门(例如CCX门)表示为一个包含四个元素的指令[name,qubit,parameters,condition]。其中,name为量子门的名称,qubit为该多量子比特门作用的量子位构成的列表,parameters量子门的参数(如没有参数则默认为None),condition表示该量子门操作受哪一个量子位测量结果的控制(如果没有参数则默认为None)。例如,[CCX,[1,2,3],None,None]表示在量子位1,2,3之间作用CCX门,其中,1,2均为控制位,3为受控位。
一个计算基下的测量表示为一个包含四个元素的指令[Measure,qubit,None,None]。例如,[Measure,2,None,None]表示对量子位2进行计算基下的测量。
图2所示的静态量子电路的指令列表为:static_circuit=[[Reset,0,None,None],[Reset,1,None,None],[Reset,2,None,None],[H,0,None,None],[H,1,None,None],[H,2,None,None],[CNOT,[0,1],None,None],[SWAP,[1,2],None,None],[Rx,0,α,None],[Ry,1,β,None],[Rz,2,γ,None],[Measure,0,None,None],[Measure,1,None,None],[Measure,2,None,None]]。
在一些应用场景中,允许在量子电路的中间对某些量子比特进行测量,并在测量获得结果后将这些量子比特重置为零态,以供后续计算继续使用。包含了电路中间测量以及重置操作的量子电路称为动态量子电路。例如将图3所示的静态量子电路转化为动态量子电路后如图4所示,可以看到,该动态电路使得量子比特数减少了一个,但两个量子电路的运行效果等价。
图3所示的静态量子电路的指令列表为:static_circuit=[[Reset,0,None,None],[Reset,1,None,None],[Reset,2,None,None],[H,0,None,None],[H,1,None,None],[H,2,None,None],[CNOT,[0,1],None,None],[CNOT,[1,2],None,None],[Measure,0,None,None],[Measure,1,None,None],[Measure,2,None,None]]。
图4所示的等效编译后得到的动态量子电路的电路指令列表为:dynamic_circuit=[[Reset,0,None,None],[Reset,1,None,None],[H,0,None,None],[H,1,None,None],[CNOT,[0,1],None,None],[Measure,0,None,None],[Reset,0,None,None],[H,0,None,None],[CNOT,[1,0],None,None],[Measure,0,None,None],[Measure,1,None,None]]。
可以将一个给定的静态量子电路编译成与其等价的动态量子电路,从而使得编译后的量子电路所需的量子比特数少于原量子电路的量子比特数。可以将静态量子电路的编译问题转化一个等价的图优化问题,为保证编译前后的量子电路的等价性,需要保证原静态量子电路中存在执行限制的操作指令之间的先后顺序在编译中没有被改变。
在实现过程中,可以将量子电路操作指令的执行顺序通过一个有向无环图来表示,量子电路中的每一个操作指令对应于图中的一个节点,而从节点vi指向vj的有向边则表示vi对应的操作指令必须在vj对应的操作指令执行之前被执行。
例如,图3中的静态量子电路对应的有向无环图如图5(a)所示,图3和图5(a)中的操作指令编号一致。而图4的动态量子电路则是将图3中量子位2对应的量子比特上的初始化操作(其编号为2)推迟到量子位0对应的量子比特上的测量操作(其编号为8)之后得到的,这在对应的图表示中等价于向图中添加一条由节点8指向节点2的有向边,如图5(b)所示,添加有向边之后的有向无环图与编译后的动态量子电路相对应。
同时,考虑到电路编译的具体问题,在图优化过程中需要满足以下限制条件:由于有向无环图表示了量子电路的操作指令执行的时序关系,因此在添加有向边之后,需要保证整个图依旧是无环的;一个量子比特只有在完成测量后才可以被用于从初始化操作开始执行其他量子比特上的操作,因此,图中的有向边只能在测量操作指令对应的节点(以下称为输出节点)与量子比特初始化即重置操作指令对应的节点(以下称为输入节点)之间连接;一个量子比特在完成测量后只能被同时被一个其他量子比特重新占用,因此,每个输入/输出节点最多添加一条边。
也即本实施例可以将静态量子电路的编译问题转化一个等价的图优化问题,并通过在静态量子电路的有向无环图中搜索输出节点至输入节点的有向边进行连接,以将静态量子电路编译为等价的动态量子电路。其中,连接的输出节点至输入节点的有向边越多,其等效编译的效果越好,即得到的动态量子电路的量子比特数越少。
然而,在很多场景下,量子电路中各量子操作的作用顺序并不是唯一的,例如,瞬时量子多项式(Instantaneous Quantum Polynomial,IQP)电路,IQP电路的一般形式为其中,H表示Hadamard门,而D则是由一系列在计算基下对角化的量子门组成的,例如,可以通过从集合/>中随机选择量子门进行构建,因此,D中的各量子门的操作顺序是可以任意修改的。
又例如,量子近似优化算法(Quantum Approximate Optimization Algorithm,QAOA)电路,电路中很多量子门执行顺序是可以互换的,这些电路没有预先确定的结构。也即,这些量子电路中部分量子门操作的作用顺序均是可以交换的,并且对最终的电路运行结果没有任何影响。
图6(a)和图6(b)是等价的量子电路,图6(b)所示的量子电路是交换图6(a)所示的量子电路中编号为5和6的CZ门的执行顺序得到的。
值得注意的是,对于具有可交换结构的量子电路,在可交换的量子操作之间施加执行的依赖关系可能会限制量子比特重用的机会,而可交换结构是量子应用中的一个重要特征。例如图6(a)中的所有CZ门均是可交换的。如果在构建量子电路的有向无环图的表示时忽略这些可交换性,则会在有向无环图中引入不必要的执行依赖关系。
如图7所示,是针对图6(a)所示的量子操作执行顺序的依赖关系所构建的有向无环图,有向边701和有向边702是根据图6(a)所示的量子门的强制依赖关系所引入的,从而导致在图7中最多仅可添加一条从输出节点到输入节点的有向边703,即仅可减少一个量子比特。
本实施例的目的在于针对包含有可交换结构的量子电路,对量子电路的量子操作的可交换特征进行自动标注,并充分运用可交换结构中量子操作之间的可交换性,将静态量子电路等效编译为动态量子电路。
在一些实施方式中,可以利用可交换结构中量子操作之间的可交换性,构建量子电路的有向无环图,并基于该有向无环图进行量子电路的等效编译,以提高量子电路的编译效果。
比如,图8是利用了如图6(a)所示的可交换结构601中量子操作之间的可交换性所构建的有向无环图,其所构建的有向无环图包含灵活依赖关系,并未限定编号为4、5和6的量子操作的执行依赖关系,可以添加两条从输出节点到输入节点的有向边,分别为有向边801和有向边802,因此,编译后的量子电路可以减少两个量子比特,其等效编译效果更好,可以使得量子电路等效编译减少的量子比特数量的幅度更大。
第一量子电路可以为静态量子电路,静态量子电路包括量子测量操作和量子门操作,且量子测量操作均位于量子门操作之后。
第一量子电路中量子操作的作用顺序可以用一个有序的指令列表表示,该指令列表即为第一指令列表,其表示方式已经在上述描述中进行了详细说明,这里不进行赘述。
可以获取预先存储的第一量子电路的第一指令列表,也可以获取用户输入的第一量子电路的第一指令列表,这里不进行具体限定。
为了自动识别量子电路中存在的可交换结构,可以预先定义一些可交换门的组别,并且在遍历量子电路的指令列表时,可以对可交换结构的量子操作所属的组别进行标注。
比如,对于集合{Z,S,T,Rz,CZ}中的量子门,由于其矩阵表示在计算基下都是对角化的,因此,该集合中的量子门之间的顺序是可以任意交换的,如图9所示。
又比如,如图10(a)所示,当X、Rx门作用的量子比特与双量子比特CX门的目标量子比特相同时,其作用顺序也是可交换的。类似地,如图10(b)所示,当Y、Ry门作用的量子比特与双量子比特CY门的目标量子比特相同时,其作用顺序同样可以互换。
还比如,当受控双量子比特门(CX,CY,CZ)的受控量子比特与集合{Z,S,T,Rz}中的量子门作用的量子比特相同时,其作用顺序同样可以交换,如图11所示。
因此,可以预先基于可交换的量子操作,构建目标字典。比如,可以预先定义三个可交换组,分别为Z_Group={Z,S,T,Rz,CZc,CZt,CXc,CYc};X_Group={Rx,X,CXt};Y_Group={Ry,Y,CYt},目标字典中可以包括这三个可交换组,其中,Z_Group、X_Group和Y_Group为可交换组的标识,而Z,S,T,Rz,CZc,CZt,CXc,CYc为归属于可交换组Z_Group的量子操作,归属于同一可交换组的量子操作之间相互是可交换的。
目标字典可以用于查询量子操作是否是可交换的,其归属于哪个可交换组,以及量子操作在哪种控制类型的量子比特上是可交换的。其中,量子比特的控制类型包括两种,分别为受控量子比特和目标量子比特(即控制量子比特)。
也即,目标字典可以指示:在满足预设条件的情况下,属于同一可交换组的两个量子操作是可交换的,所述预设条件包括:所述两个量子操作作用同一量子比特,且所述两个量子操作分别对于所述量子比特的控制类型为所述目标字典指示的控制类型。
比如,针对两个量子门,分别为量子门X和量子门CX,目标字典中可交换组X_Group包括X和CXt,说明量子门CX在目标量子比特(目标字典关于CX指示的可交换的量子比特的控制类型)上才可与X门交换,也就是说,若量子门CX与量子门X存在交集的量子比特是目标量子比特,两个量子门才可交换,否则两者不可交换。
步骤S102:获取所述第一指令列表中操作指令对应量子操作的第一标识和所述量子操作所作用的每个量子比特的第一控制类型。
可以遍历第一指令列表,并针对第一指令列表中每个操作指令,对操作指令在其作用的每个量子比特上所属的可交换组进行标注。
可以基于操作指令中的参数,获取该操作指令对应量子操作的第一标识和量子操作所作用的每个量子比特的第一控制类型。可以基于操作指令的name参数,确定该操作指令对应量子操作的第一标识,也可以基于qubit参数,确定量子操作所作用的每个量子比特的第一控制类型。
步骤S103:基于所述目标字典、所述第一标识和所述第一控制类型,确定所述操作指令在作用的每个量子比特上的可交换特征,可交换特征指示操作指令在量子比特上的可交换性,在可交换特征指示操作指令在量子比特上可交换的情况下,可交换特征包括操作指令在量子比特上所属的可交换组的第二标识。
操作指令在其作用的量子比特上的可交换特征表征了操作指令与其他操作指令在该量子比特上的可交换性,其具有两种性质,第一种是表征操作指令在该量子比特上是否为一个可交换操作,第二种是表征操作指令与其他操作指令在该量子比特上是否可交换。可交换特征可以用数值表示,也可以用字符表示,比如,可交换特征为可交换组的标识Z_Group,其是用字符表示的,这里不进行具体限定。
可以通过一个额外列表来存储每个操作指令在作用的量子比特上的可交换特征,也可以将可交换特征存放在操作指令的参数中。比如,对于每个操作指令,可以通过操作指令的group_tags参数来标注操作指令在作用的量子比特上所属的可交换组,作用在同一量子比特上并且属于同一可交换组的量子操作,其作用顺序是可以互换的。
对于受控双/多量子比特门,其受控量子比特与目标量子比特可能属于不同的可交换组别,因此,需要分别标注该量子操作在受控量子比特和目标量子比特上所属的可交换组的组别。在一实施方式中,将每个操作指令的group_tags参数设置为一个列表,列表的长度等于操作指令作用的量子比特数。group_tags列表中的每个元素与该操作指令的qubit参数列表中的量子比特一一对应,表示该操作指令在不同量子比特上所属的可交换组。例如,对于qubit列表为[1,2]的CX门,其受控量子位1属于Z_Group,而目标量子位2属于X_Group,因此,该操作指令group_tags列表应该为[Z_Group,X_Group]。
对于不可交换的操作指令,如重置操作或测量操作,其group_tags参数则可以设定为None。
其中,两个操作指令作用同一量子比特,且两者在该量子比特的可交换特征相同,则表示两个操作指令在该量子比特上是可交换的,比如,操作指令[CX,[1,2],None,None,[Z_Group,X_Group]]和[X,[2],None,None,X_Group],则量子门CX和量子门X在量子位2上可交换。又比如,操作指令[CX,[1,2],None,None,[Z_Group,X_Group]]和[X,[1],None,None,[X_Group]],由于量子门CX在量子位1上的可交换组为Z_Group,而量子门X在量子位1上的可交换组为X_Group,两者在量子位1上的可交换特征不相同,则量子门CX和量子门X在量子位1上不可交换。
在一可选实施方式中,可以基于第一标识在目标字典中查询是否具有与第一标识对应的可交换组,若不存在,则将该量子比特的可交换特征标注为None。若存在,则基于量子比特的第一控制类型,在目标字典中进一步查询以确定操作指令在该量子比特上的可交换组。比如,针对第一标识CX,目标字典中的可交换组Z_Group和X_Group均包括CX,而量子比特的第一控制类型为受控量子比特,则操作指令在该量子比特上的可交换组为Z_Group,其可交换特征为Z_Group。
在另一可选实施方式中,也可以在目标字典中查询与第一标识和第一控制类型匹配的可交换组的标识,得到量子比特的可交换特征。
可选的,所述目标字典包括第一字典和第二字典,所述第一字典指示第一可交换组的标识和量子操作的标识的对应关系,所述第二字典指示第二可交换组的标识和量子操作的标识的对应关系,所述第一可交换组是量子操作在控制类型指示为受控量子比特上的可交换组,所述第二可交换组是量子操作在控制类型指示为目标量子比特上的可交换组;
所述步骤S103具体包括以下至少一项:
在所述第一控制类型指示为受控量子比特的情况下,基于所述第一字典和所述第一标识,确定操作指令在作用的受控量子比特上的可交换特征;
在所述第一控制类型指示为目标量子比特的情况下,基于所述第二字典和所述第一标识,确定操作指令在作用的目标量子比特上的可交换特征。
可以通过两个字典来分别存储预先定义的量子操作分别在受控量子比特和目标量子比特上归属的可交换组的组别信息,字典中的键为该组别的标识,而对应的值则为该组别包括的量子操作。
例如,对于上述定义的三组可交换组,可以划分为第一字典和第二字典,分别称之为量子操作在受控量子比特上归属的可交换组字典Control_Group和量子操作在目标量子比特上归属的可交换组字典Target_Group。
其中,Control_Group={Z_Group:{CX,CY,CZ}};
Target_Group={X_Group:{X,Rx,CX},
Y_Group:{Y,Ry,CY},
Z_Group:{Z,S,T,Rz,CZ}}。
首先,可以从第一字典和第二字典中选择与第一控制类型匹配的字典,之后,基于所选择的字典,确定操作指令在量子比特上的可交换特征。若第一控制类型指示量子比特为受控量子比特,则所选择的字典为Control_Group,基于该字典所确定的是操作指令在受控量子比特上的可交换特征,若第一控制类型指示量子比特为目标量子比特,则所选择的字典为Target_Group,基于该字典所确定的是操作指令在目标量子比特上的可交换特征。
如此,可以提高基于目标字典进行可交换组标识的匹配速度。
可选的,基于指示可交换组的标识和量子操作的标识的对应关系的字典和所述第一标识,确定操作指令在作用的量子比特上的可交换特征,包括:
在指示可交换组的标识和量子操作的标识的对应关系的字典中包括所述第一标识的情况下,将指示可交换组的标识和量子操作的标识的对应关系的字典中与所述第一标识对应的标识,确定为操作指令在作用的量子比特上所属的可交换组的第二标识;
在指示可交换组的标识和量子操作的标识的对应关系的字典中不包括所述第一标识的情况下,将目标信息确定为操作指令在作用的量子比特上的可交换特征,所述目标信息指示操作指令在作用的量子比特上不可交换。
其中,指示可交换组的标识和量子操作的标识的对应关系的字典可以为第一字典,也可以为第二字典,根据第一控制类型来确定。
若从字典中可以查询到与第一标识对应的可交换组的标识,则将该标识确定为操作指令在量子比特上的可交换特征,若从字典中查询不到与第一标识对应的可交换组的标识,则可以将操作指令在量子比特上的可交换特征标注为None。
如此,可以简便地基于字典标注操作指令在量子比特上的可交换特征。
在一些实施方式中,自动识别并标注量子电路的操作指令在其作用的每个量子比特上的可交换特征的具体过程如下:
输入:静态量子电路的指令列表Static_Circuit,预定义的操作指令在受控量子比特上的可交换组字典Control_Group和操作指令在目标量子比特上的可交换组字典Target_Group;
输出:标注量子比特上的可交换特征后的静态量子电路的指令列表Static_Circuit。
步骤1:对输入静态量子电路的指令列表进行循环遍历,设当前被循环的元素为Instruction;
步骤2:获取Instruction作用的量子比特qubit的数量,记录为k;初始化一个长度为k的列表Tags,其中每个元均初始化为None,执行步骤2.1或步骤2.2;
步骤2.1:如果Instruction为单量子比特操作,则对Target_Group字典的键-值对进行遍历,设当前遍历到的键为tag,值为group;如果Instruction的name参数包含在group中,则将Tags中的元素值改写为tag;
步骤2.2:如果Instruction为多量子比特门操作,则获取其作用的量子比特qubit列表;将qubit列表中受控量子比特和控制量子比特在列表中的索引分别记录在Control列表和Target列表中,分别执行操作a和操作b;
操作a:对Control_Group字典的键-值对进行遍历,设当前遍历到的键为tag,值为group;如果Instruction的name参数包含在group中,则对Control列表进行遍历,设当前遍历到的元素为idx,将Tags列表中索引为idx的元素修改为tag;
操作b:对Target_Group字典的键-值对进行遍历,设当前遍历到的键为tag,值为group;如果Instruction的name参数包含在group中,则对Target列表进行遍历,设当前遍历到的元素为idx,将Tags列表中索引为idx的元素修改为tag;
步骤3:将Instruction指令的group_tags参数设置为Tags列表;在静态量子电路的指令列表未遍历完成的情况下,返回执行步骤2;
步骤4:返回标注有量子比特上的可交换特征的静态量子电路的指令列表Static_Circuit作为输出。
步骤S104:基于所述可交换特征和所述第一指令列表,对所述第一量子电路进行等效编译,得到第二量子电路的第二指令列表,所述第二量子电路的量子比特数小于所述第一量子电路的量子比特数。
可以基于可交换特征和第一指令列表,创建至少一个有向无环图。之后,可以基于创建的有向无环图,对第一量子电路进行等效编译。
在一可选实施方式中,可以按照目标指令列表中操作指令的强制依赖关系,创建有向无环图,有向无环图可以包括第一量子电路的有向无环图和与第一量子电路等价的其他量子电路的有向无环图,目标指令列表可以包括第一指令列表和基于可交换特征交换第一指令列表中操作指令的指令列表。
在另一可选实施方式中,可以基于所述可交换特征,将所述第一指令列表中操作指令作为节点,构建所述第一量子电路的第一有向无环图,所述第一有向无环图中,作用量子比特有交集,且在交集的量子比特上可交换的不同操作指令对应节点之间不存在有向边。
若基于可交换特征和第一指令列表创建的有向无环图包括多个,则可以分别基于每个有向无环图,对第一量子电路进行等效编译,并选择编译得到的量子比特数最少的量子电路作为第二量子电路,得到第二量子电路的第二指令列表。
本实施例中,通过基于目标字典,自动标注第一量子电路中每个操作指令在其作用的量子比特上的可交换特征,并基于操作指令在量子比特上的可交换特征和第一指令列表,对第一量子电路进行等效编译。这样可以借助于操作指令在量子比特上的可交换特征,创建有向无环图,避免在可交换的操作指令之间施加执行的强制依赖关系限制量子比特重用的机会,从而有助于充分挖掘包含可交换结构的量子电路中的量子比特重用机会,使得所构建的有向无环图中可添加的输出节点至输入节点的有向边更多,进而可以提高量子电路等效编译的效果,减少编译得到的动态量子电路所需的量子比特数,使得量子电路等效编译减少的量子比特数量的幅度更大,更适用于相干时间长但可扩展性较差的离子阱架构的量子计算机。
并且,通过自动识别并标注量子电路中存在的可交换结构的量子操作,适用于大规模量子电路,可以提高可交换特征的标注效率。
可选的,所述步骤S104具体包括:
基于所述可交换特征,将所述第一指令列表中操作指令作为节点,构建所述第一量子电路的第一有向无环图,所述第一有向无环图中,作用量子比特有交集,且在交集的量子比特上可交换的不同操作指令对应节点之间不存在有向边;
基于所述第一有向无环图,对所述第一量子电路进行等效编译,得到第二量子电路的第二指令列表。
第一有向无环图包括第一指令列表中指令对应的节点和节点之间的有向边,节点之间的有向边用于表征第一指令列表中不同操作指令间的时序关系,且节点之间的各有向边构成的路径不包括有向环路。
在构建第一有向无环图中,应尽量避免在交集的量子比特上可交换的操作指令对应节点之间添加有向边,在一可选实施方式中,可以对第一指令列表按照从左至右的指令排列顺序进行遍历,并获取第一指令列表中排序在当前遍历的指令之前的指令子列表和当前遍历的指令所作用的量子位;对指令子列表按照从右至左的指令排列顺序进行遍历,并获取所作用的量子位与当前遍历的指令所作用的量子位存在交集的操作指令;比较两者在交集的量子比特上的可交换特征,若比较结果指示两者不可交换,则将该操作指令的标识作为源节点,当前遍历的指令的标识作为目标节点,构建有向边;若比较结果指示两者可交换,则继续遍历指令子列表,以搜索到在交集的量子比特上与当前遍历的指令之间不可交换的操作指令,并构建两者之间的有向边。在第一指令列表遍历完成的情况下,基于所构建的有向边,获取第一有向无环图。
可选的,所述基于所述可交换特征,将所述第一指令列表中操作指令作为节点,构建所述第一量子电路的第一有向无环图,包括:
对所述第一指令列表按照操作指令的排列顺序进行正向遍历;
将当前遍历的第一操作指令作为节点,并针对所述第一操作指令作用的每个第一量子比特,在第一量子比特对应的第一列表不为空列表的情况下,基于所述第一列表的操作指令在第一量子比特上的可交换特征,构建所述第一列表中的目标操作指令对应节点至所述第一操作指令对应节点的有向边;在第一量子比特上,所述目标操作指令与所述第一操作指令之间不可交换;
将所述第一操作指令添加至所述第一列表的末尾,并在所述第一指令列表遍历完成的情况下,得到所述第一有向无环图。
如此,通过创建每个量子位对应的列表,用于按照顺序存储其对应的操作指令,这样可以非常方便查找到每个操作指令关联的前序操作指令,并从前序操作指令中搜索到目标操作指令,以构建目标操作指令至该操作指令之间的有向边,从而可以非常快速且高速地构建第一有向无环图。
其中,目标操作指令与第一操作指令之间在交集的量子比特上是不可交换的,其是与第一操作指令的位置最接近,且在交集的量子比特上与第一操作指令不可交换的操作指令。也即可以通过比较第一列表中操作指令在第一量子比特上的可交换特征和第一操作指令在第一量子比特上的可交换特征,以搜索到第一列表中与第一操作指令的位置最接近,且在第一量子比特上与第一操作指令不可交换的目标操作指令,以构建两者之间的依赖关系,添加两者之间的有向边。这样可以仅在交集的量子比特上不可交换的操作指令之间添加依赖关系,可以避免在有向无环图中的可交换的操作指令对应节点之间施加强制依赖关系,使得有向无环图中操作指令对应节点之间的依赖关系更加灵活,即有向无环图中并未限定在交集的量子比特上可交换的操作指令之间的执行依赖关系,从而使得有向无环图中可添加的输出节点至输入节点的候选有向边更多。
之后,将第一操作指令添加至第一列表的末尾,以作为下一次遍历到的操作指令的前序操作指令。相应的,在第一指令列表遍历完成的情况下,量子电路的有向无环图构建完成,可以得到第一有向无环图,如此,可以非常快速且高速地构建具有灵活依赖关系的第一有向无环图,使得所构建的有向无环图中可添加的输出节点至输入节点的有向边更多,进而可以提高量子电路等效编译的效果,减少编译得到的动态量子电路所需的量子比特数,相对于基于强制依赖关系的有向无环图进行量子电路的等效编译,可以使得量子电路等效编译减少的量子比特数量的幅度更大。
可选的,所述基于所述第一列表的操作指令在第一量子比特上的可交换特征,构建所述第一列表中的目标操作指令对应节点至所述第一操作指令对应节点的有向边,包括:
在基于所述可交换特征确定第二操作指令在第一量子比特上不可交换的情况下,将所述第二操作指令确定为目标操作指令,所述第二操作指令为所述第一列表中位于末尾的操作指令;
添加所述目标操作指令对应节点至所述第一操作指令对应节点的有向边。
本实施方式中,若第一列表中位于末尾的第二操作指令在第一量子比特上的可交换特征为None,可以表示第二操作指令在第一量子比特上是不可交换操作,此时,第一操作指令和第二操作指令在第一量子比特上具备执行的依赖关系,可以添加第二操作指令至第一操作指令的目标有向边,其不会引入不必要的依赖关系,且可以保证所构建的有向无环图所表示的第一量子电路的量子操作之间依赖关系的准确性。
可选的,所述基于所述第一列表的操作指令在第一量子比特上的可交换特征,构建所述第一列表中的目标操作指令对应节点至所述第一操作指令对应节点的有向边,包括:
在基于所述可交换特征确定第二操作指令在第一量子比特上可交换的情况下,比较所述第一列表的操作指令在第一量子比特上的可交换特征和所述第一操作指令在第一量子比特上的可交换特征,得到比较结果;
基于所述比较结果,从所述第一列表中获取在第一量子比特上的前一个组别的至少一个目标操作指令,得到第一子列表,同一个组别中,在第一量子比特上,不同目标操作指令之间可交换,且每个目标操作指令与所述第一操作指令之间不可交换;
添加所述第一子列表中的每个目标操作指令对应节点至所述第一操作指令对应节点的有向边。
若第一列表中位于末尾的第二操作指令在第一量子比特上的可交换特征不为None,可以表示第二操作指令在第一量子比特上是可交换操作。在该场景下,可以比较第一列表的操作指令在第一量子比特上的可交换特征和第一操作指令在第一量子比特上的可交换特征,以从第一列表中搜索到第一操作指令在第一量子比特上的前一个组别的至少一个目标操作指令,相应添加第一子列表中的每个目标操作指令对应节点至第一操作指令对应节点的有向边,以得到第一有向无环图。
当操作指令是不可交换操作,则其单独可以组成一个组别,当两个操作指令在第一量子比特上的可交换特征不为None,且相同时,两者是归属于一个组别,当两个操作指令在第一量子比特上的可交换特征不相同时,两者归属于不同组别。
第一操作指令在第一量子比特上的前一个组别指的是作用比特为第一量子比特,排列位置在第一操作指令之前,且与第一操作指令位置距离最近的组别。比如,第一列表中操作指令在第一量子比特上的可交换特征分别为节点1:'None'、节点2:'None'、节点3:'Z_Group'、节点4:'Z_Group',其组别分别为两个可交换特征为'None'的组别、可交换特征为'Z_Group'的组别,第一操作指令在第一量子比特上的可交换特征为'X_Group'或'None'。由于随着第一指令列表的遍历,与第一操作指令关联的前序操作指令是放置在第一列表的末尾,因此,可交换特征为'Z_Group'的组别在第一指令列表中位置更靠近第一操作指令,则第一操作指令在第一量子比特上的前一个组别为可交换特征为'Z_Group'的组别。
其中,在一些场景下,前一个组别可能是不可交换操作的组,该组别中只有一个目标操作指令,在另一些场景下,前一个组别可能是与第一操作指令组别不同的可交换组,该组别中可以包括至少一个目标操作指令。
比如,第一列表的操作指令在第一量子比特上的可交换特征分别为节点1:'None'、节点2:'None'、节点3:'X_Group'、节点4:'X_Group',第一操作指令的可交换特征为'X_Group',则从第一列表中获取的第一操作指令的前一个组别仅包括节点2对应的目标操作指令。
又比如,第一列表的操作指令在第一量子比特上的可交换特征分别为节点1:'None'、节点2:'None'、节点3:'Z_Group'、节点4:'Z_Group',第一操作指令在第一量子比特上的可交换特征为'X_Group'或'None',则从第一列表中获取的第一操作指令的前一个组别包括节点3对应的目标操作指令和节点4对应的目标操作指令。
在一可选实施方式中,可以通过获取第一列表的操作指令在第一量子比特上归属的各个组别以及每个组别的操作指令,比较每个组别的可交换特征与第一操作指令在第一量子比特上的可交换特征,并选取与第一操作指令在第一量子比特上归属的组别不同,且位于第一操作指令组别之前的相邻组别,该相邻组别即为第一操作指令的前一个组别。
在另一可选实施方式中,可以通过反向遍历第一列表,并比较其操作指令在第一量子比特上的可交换特征与第一操作指令在第一量子比特上的可交换特征,来从第一列表中获取第一操作指令的前一个组别的至少一个目标操作指令。
可以先获取第一操作指令的前一个组别的所有目标操作指令,再添加每个目标操作指令对应节点至第一操作指令对应节点的有向边。也可以每获取一个目标操作指令的情况下,添加该目标操作指令对应节点至第一操作指令对应节点的有向边,直至有向边添加完成。
如此,通过获取第一操作指令的前一个组别的至少一个目标操作指令,并添加目标操作指令至第一操作指令的有向边,其不会引入不必要的依赖关系,且可以保证所构建的有向无环图所表示的第一量子电路的量子操作之间依赖关系的准确。
可选的,所述基于所述比较结果,从所述第一列表中获取在第一量子比特上的前一个组别的至少一个目标操作指令,得到第一子列表,包括:
在所述比较结果指示所述第二操作指令在第一量子比特上的可交换特征与所述第一操作指令在第一量子比特上的可交换特征相同的情况下,获取对所述第一列表按照操作指令的排列顺序进行反向遍历得到的第一个目标操作指令;
在所述第一个目标操作指令在第一量子比特上不可交换的情况下,获取所述第一子列表,所述第一子列表中仅包括所述第一个目标操作指令;
在所述第一个目标操作指令在第一量子比特上可交换的情况下,获取在第一量子比特上与第一可交换特征相同的其他目标操作指令,得到所述第一子列表,所述第一可交换特征为所述第一个目标操作指令在第一量子比特上的可交换特征。
第二操作指令是第一列表中位于末尾的操作指令。若第一操作指令在第一量子比特上可交换,且第二操作指令在第一量子比特上的可交换特征与第一操作指令在第一量子比特上的可交换特征相同,则表示第二操作指令与第一操作指令在第一量子比特上归属于可交换组的同一组别,此时,不能添加两者之间的有向边。
通过反向遍历第一列表,并比较第一列表的操作指令在第一量子比特上的可交换特征和第一操作指令在第一量子比特上的可交换特征,以从第一列表中搜寻到在第一量子比特上,与第一操作指令在第一量子比特上的可交换特征不同的目标操作指令。判断该目标操作指令在第一量子比特上是否可交换,若不可交换,则第一操作指令的前一个组别中仅包括一个目标操作指令,若可交换,需要继续反向遍历,若存在在第一量子比特上,与该目标操作指令在第一量子比特上的可交换特征相同的其他操作指令,则获取并将其归类至第一操作指令的前一个组别中,这样可以搜寻到第一操作指令的前一个组别中的所有目标操作指令。如此,可以快速且准确地获取第一操作指令的前一个组别中的所有目标操作指令。
可选的,所述基于所述比较结果,从所述第一列表中获取在第一量子比特上的前一个组别的至少一个目标操作指令,得到第一子列表,包括:
在所述比较结果指示所述第二操作指令在第一量子比特上的可交换特征与所述第一操作指令在第一量子比特上的可交换特征不相同的情况下,将所述第二操作指令确定为目标操作指令;
获取在第一量子比特上与第二可交换特征相同的其他目标操作指令,得到所述第一子列表,所述第二可交换特征为所述第二操作指令在第一量子比特上的可交换特征。
第二操作指令是第一列表中位于末尾的操作指令。若第一操作指令在第一量子比特上可交换,且第二操作指令在第一量子比特上的可交换特征与第一操作指令在第一量子比特上的可交换特征不相同,则第二操作指令与第一操作指令在第一量子比特上归属于不同的组别。
可以通过反向遍历第一列表,在第一列表中搜寻在第一量子比特上,与第二操作指令在第一量子比特上的可交换特征相同的其他目标操作指令,这样可以搜寻到第一操作指令的前一个组别中的所有目标操作指令。如此,可以快速且准确地获取第一操作指令的前一个组别中的所有目标操作指令。
在一实施方式中,基于操作指令在量子比特上的可交换特征,构建量子电路的有向无环图的具体过程如下:
输入:静态量子电路的指令列表Static_Circuit,量子电路宽度n;
输出:有向无环图Digraph,输入节点列表Inputs和输出节点列表,Outputs。
步骤1:初始化一个空的有向无环图Digraph;初始化一个长度为n的列表Causal_Lists,其中每个元素初始化为一个空列表;初始化两个长度为n的列表Inputs,Outputs,其中每个元素初始化为None;
步骤2:对Static_Circuit进行循环遍历,设当前遍历的元素为Instruction,其索引为Index:
步骤2.1:向Digraph中添加节点Vertex,其标识为Index;
步骤2.2:如果Instruction为量子比特的重置操作,则获取其作用的量子比特qubit,并将Inputs列表索引为qubit的值修改为Index;
步骤2.3:如果Instruction为量子比特的测量操作,则获取其作用的量子比特qubit,并将Outputs列表索引为qubit的值修改为Index;
步骤2.4:获取Instruction指令的qubit参数列表并对其进行遍历,设当前遍历的元素索引为i,其值为q,将Instruction的group_tags参数列表索引为i的元素记录为Group;查找列表Causal_Lists[q]的最后一个元素,记录为PreVertex;如果PreVertex不为空元素,则获取PreVertex对应操作指令的qubit参数列表中值为q的元素,并将其索引记录为idx,将该指令group_tags参数列表中索引为idx的元素记录为PreGroup;
步骤2.4.1:如果PreGroup为None,则向Digraph中添加从PreVertex指向Vertex的有向边,执行步骤2.4.4;
步骤2.4.2:如果PreGroup与Group不同,则对Causal_Lists[q]列表进行反向循环遍历,设当前遍历的元素为CurrentVertex,执行操作a:
操作a:获取CurrentVertex对应操作指令的qubit参数列表中值为q的元素并将其索引记录为idx,将该指令group_tags参数列表中索引为idx的元素记录为CurrentGroup;如果CurrentGroup与PreGroup相同,则向Digraph中添加从CurrentVertex指向Vertex的有向边;如果CurrentGroup与Group不相同,则跳出循环,执行步骤2.4.4;
步骤2.4.3:如果PreGroup与Group相同,则初始化一个布尔变量Found为False,对Causal_Lists[q]列表进行反向循环遍历,设当前遍历的元素为CurrentVertex,执行操作b:
操作b:获取CurrentVertex对应操作指令的qubit参数列表中值为q的元素并将其索引记录为idx,将该指令group_tags参数列表中索引为idx的元素记录为CurrentGroup;如果CurrentGroup与Group相同,则继续循环遍历下一元素;如果CurrentGroup与Group不相同并且Found为False,则将PreGroup的值设置为CurrentGroup,并将Found设置为True;向Digraph中添加从CurrentVertex指向Vertex的有向边;如果PreGroup的值为None,则跳出循环,执行步骤2.4.4;如果CurrentGroup与Group不相同并且Found为True,则如果CurrentGroup等于PreGroup,则向Digraph中添加从CurrentVertex指向Vertex的有向边;如果CurrentGroup不等于PreGroup,则跳出循环,执行步骤2.4.4;
步骤2.4.4:将Vertex添加至列表Causal_Lists[q]的末端;
步骤3:返回Digraph,Inputs,Outputs作为输出。
本实施方式中,通过一个列表来存储多量子比特门在其作用的每个量子比特上所属的可交换组,因此,需要对多量子比特门在每个量子比特上的可交换情况进行分析与处理。
可选的,所述基于所述第一有向无环图,对所述第一量子电路进行等效编译,得到第二量子电路的第二指令列表,包括:
在所述第一有向无环图添加输出节点至输入节点的目标有向边,得到第二有向无环图;
基于所述第二有向无环图、所添加的目标有向边构成的第二列表和所述第一指令列表,对所述第一量子电路进行等效编译,得到第二量子电路的第二指令列表。
可以基于第一有向无环图、以及第一有向无环图的输入节点列表和输出节点列表,在第一有向无环图添加输出节点至输入节点的目标有向边,得到第二有向无环图,第二有向无环图包括目标有向边和第一有向无环图中的有向边,目标有向边和第一有向无环图中的有向边构成的路径不包括有向环路。
其中,输入节点列表包括第一指令列表中类型为重置操作指令对应的节点,输出节点列表包括第一指令列表中类型为量子测量操作指令对应的节点,第二有向无环图中,每个输出节点至多与一个输入节点相连,不同输出节点不能与同一个输入节点相连。
该步骤中,由于将一个量子电路编译成另一个量子电路,本质上是通过对已经测量的量子比特进行重置回收,以供后续指令所使用。对应第一有向无环图,相当于需要尽可能向图中添加从输出节点指向输入节点的有向边,以表示测量比特重置被重新利用,相应的,可以减少量子电路中所需要的量子比特数。
为了保证所编译得到的量子电路与原量子电路的等效性,以及保证量子电路中指令之间的时序关系,在添加有向边时需要保证如下约束条件:
1)为了使得整个图依然符合电路指令的时序关系,需要保证在加入更多有向边之后,整个图依然是无环的,需要注意的是,图中有向边的指向表示指令的时序关系,环状结构将会破坏这种关系,也即添加有向边之后,图中依然不能存在环状结构的路径(称之为有向环路);
2)每个输出节点最多只能和一个输入节点相连,以表示输出节点测量后,由所指向的输入节点继续在该量子比特上执行操作;
3)不同输出节点不能和同一个输入节点相连。
相应的,在第一有向无环图中添加符合上述约束条件的目标有向边之后,可以得到第二有向无环图。
可以采用暴力搜索的方式,也可以采用启发式搜索方式,或者两者结合的方式,确定在第一有向无环图中添加的输出节点至输入节点的目标有向边,得到第二有向无环图。在一些实施方式中,可以基于第一有向无环图的候选边矩阵,确定在第一有向无环图中添加的输出节点至输入节点的目标有向边,候选边矩阵用于表征第一有向无环图中输出节点至输入节点的可连接性。
之后,可以基于第二有向无环图、目标有向边构成的第二列表和第一指令列表,对第一量子电路进行等效编译,得到与第一量子电路等效的第二量子电路的第二指令列表。
添加输出节点至输入节点的有向边之后,可以基于第二有向无环图,确定各个节点之间的时序关系,并基于该时序关系,对第一指令列表进行重排序,之后,可以利用第二列表中输入节点与输出节点之间的关系,将测量指令之后作用在其他量子比特(即与该测量操作指令对应的输出节点有向连接的输入节点对应指令所作用的量子比特)的指令,等效编译成作用到该测量指令所作用的量子比特上,如此,可以实现对第一量子电路的等效编译,得到与第一量子电路等效的第二量子电路的第二指令列表,第二量子电路中所需要的量子比特比第一量子电路中所需要的量子比特少。
以启发式搜索的一种方式为例,所述在所述第一有向无环图添加输出节点至输入节点的目标有向边,得到第二有向无环图,包括:
从所述第一有向无环图的候选有向边中依次确定目标有向边,并依次添加所述目标有向边,直至添加所述目标有向边后得到的有向无环图中无可添加的输出节点至输入节点的有向边,得到第二有向无环图;
其中,所述目标有向边为基于所述第一有向无环图的候选有向边中评分值最大的候选有向边,所述评分值用于表征第三有向无环图中输出节点到输入节点可连接的有向边总数,所述第三有向无环图是在所述第一有向无环图中添加候选有向边后得到的。
可选的,所述候选有向边的评分值通过以下方式确定:
获取第一有向无环图的候选边矩阵,所述候选边矩阵中元素用于表征所述第一有向无环图中输出节点到输入节点的可连接性;
针对所述候选边矩阵中目标元素对应的候选有向边,获取所述目标元素对应行中元素值为第一值的列索引,得到第一集合,以及获取所述目标元素对应列中元素值为第一值的行索引,得到第二集合,所述第一值表征输出节点到输入节点不可连接;
对所述第二集合和所述第一集合进行笛卡尔积,得到第三列表;
将所述候选边矩阵中第一元素更新为第一值,得到目标矩阵,第一元素包括所述第三列表指示的元素、所述目标元素、以及目标元素的行索引对应行指示的各元素和目标元素的列索引对应列指示的各元素;
基于所述目标矩阵中元素值为第二值的元素个数,确定所述目标元素对应的候选有向边的评分值,所述第二值表征输出节点到输入节点可连接。
一可选实施方式中,本实施例的具体流程如下:
自动识别和标注第一量子电路的第一指令列表的操作指令在每个量子比特上的可交换特征;
基于可交换特征,将第一指令列表中操作指令作为节点,构建所述第一量子电路的第一有向无环图;
通过图搜索算法如深度优先搜索算法,获取第一有向无环图的候选边矩阵;
采用启发式搜索方式获取所有可以添加到第一量子电路的第一有向无环图中输出节点至输入节点的目标有向边;
根据添加目标有向边后的第二有向无环图,将第一量子电路编译为等效的第二量子电路。
显然,由于有向无环图条件的限制,并非任意的从输出节点指向输入节点的边都可以被添加到图中。例如在图5(a)中添加节点9到节点2的边,则会引入2→5→7→9→2的环结构。事实上,在获得静态量子电路的图表示后,可以通过图搜索算法获得不会直接引入环结构的所有边,如果在静态量子电路对应的有向无环图中不存在索引为i的输入节点到索引为j的输出节点之间的路径,即输入节点i不可达输出节点j,则连接索引为j的输出节点与索引为i的输入节点便不会直接在图中引入环,因此这样的边是候选有向边。
设一个静态量子电路中包含n个输入节点和m个输出节点,可以通过一个m×n的矩阵来保存所有候选有向边,称为候选边矩阵。其中,第j行对应索引为j的输出节点,而第i列对应索引为i的输入节点,而矩阵元(j,i)=1表示索引为j的输出节点到索引为i的输入节点之间的边是一条候选有向边;反之矩阵元则为0。
由于在构建有向无环图时避免了在可交换量子操作之间添加非必要的依赖关系,因此,其生成的有向无环图中实际上包含了更多的候选有向边,从而有助于向有向无环图中添加更多的候选有向边,进而可以提升量子电路的等效编译效果。
例如,基于图7所示的有向无环图生成的候选边矩阵为:基于图8所示的有向无环图生成的候选边矩阵为:/>可知,基于图8生成的候选边矩阵相对于基于图7生成的候选边矩阵多包含了两条候选有向边。
为详细说明本实施例的量子电路处理过程,可以提供一个具体电路的编译示例,以图12(a)所示的静态量子电路为例,如果忽略其中量子门的可交换性,则该量子电路无法通过量子比特重用进行编译来减少量子比特数。
图12(a)所示的静态量子电路的指令列表为:static_circuit=[[Reset,0,None,None],[Reset,1,None,None],[Reset,2,None,None],[Rx,0,θ1,None],[Rz,1,θ2,None],[H,2,None,None],[CNOT,[1,0],None,None],[CNOT,[1,2],None,None],[CZ,[0,1],None,None],[Measure,0,None,None],[Measure,1,None,None],[Measure,2,None,None]]。
根据目标字典,可交换特征标注后的量子电路指令列表为:static_circuit=[[Reset,0,None,None,[None]],[Reset,1,None,None,[None]],[Reset,2,None,None,[None]],[Rx,0,θ1,None,[X_Group]],[Rz,1,θ2,None,[Z_Group]],[H,2,None,None,[None]],[CNOT,[1,0],None,None,[Z_Group,X_Group]],[CNOT,[1,2],None,None,[Z_Group,X_Group]],[CZ,[0,1],None,None,[Z_Group,Z_Group]],[Measure,0,None,None,[None]],[Measure,1,None,None,[None]],[Measure,2,None,None,[None]]]。
可以看到,作用在量子比特0和1上的CZ门[CZ,[0,1],None,None,[Z_Group,Z_Group]]和作用在量子比特1和2上的CX门[CNOT,[1,2],None,None,[Z_Group,X_Group],其量子比特1的可交换特征Z_Group相同,因此,其作用顺序是可以交换的。交换这两个量子门后的量子电路如图12(b)所示,该电路是一个可编译电路。
根据标注可交换量子门后的量子电路的指令列表,可以基于可交换特征,将其转化为有向无环图表示,如图13(a)所示。可以看出,作用在量子比特0和1上的CZ门(对应节点8)和作用在量子比特1和2上的CX门(对应节点7)之间没有任何有向边,即没有执行依赖关系。此外,如图13(b)所示,可以在该有向无环图表示中添加一条输出节点9指向输入节点2的有向边而不引入任何环结构。
基于添加输出节点至输入节点的有向边的有向无环图,通过电路编译可以将该输入的静态量子电路编译为使用两个量子比特的动态量子电路,编译后的量子电路如图14所示。
此外,为了验证本实施例等效编译出的量子电路与相关技术等效编译出的量子电路的等价性,可以对初始量子电路(图12(a))交换后的量子电路(图12(b))以及编译后的量子电路(图14)进行了模拟运行,模拟结果如图15所示,可以看出,这三个量子电路的运行结果相同,即三个量子电路都是等价的。
为了展示本实施例的等效编译效果相对于相关技术的优势,通过一些电路编译的数值实验对比了不同方案对量子电路的等效编译效果。
可以固定量子比特数n=80,分别对量子电路中量子门的数量m和量子比特数n的比例为{2.5,3,3.5}的情况下,随机生成的量子电路进行等效编译。对于每个量子电路,可以从集合{H,X,T,S,Z,Rx,Ry,Rz,CX,CZ}中随机选取量子门,并随机采样其作用的量子比特来构建量子电路,通过不同量子电路编译方案对其进行编译。
对于每个量子比特门数和量子比特数的比例,测试了100个不同的量子电路实例。可以用可编译性因子表示对电路编译效果,具体定义为:其中,n是输入静态量子电路的宽度,n'是输出动态量子电路的宽度,可以看出,r值越高,表示电路编译效果越好。
图16和图17分别展示了本实施例的量子电路编译方案与相关技术1和相关技术2的量子电路编译方案对随机量子电路的可编译性因子的对比,两图的横轴分别为相关技术1和相关技术2对随机量子电路的可编译性因子,纵轴则为本实施例的量子电路编译方案对随机量子电路的可编译性因子。
图16和图17中的黑色辅助线表示y=x。可以看出,对所有的随机量子电路,数据点均落在辅助线以及线上的区域内。由此可见,本实施例的量子电路编译方案对随机量子电路的编译效果显著优于相关技术1和相关技术2对随机量子电路的编译效果。
第二实施例
如图18所示,本公开提供一种量子电路处理装置1800,包括:
第一获取模块1801,用于获取第一量子电路的第一指令列表,以及获取目标字典,所述目标字典指示可交换组的标识、量子操作的标识和量子比特的控制类型之间的关系,在满足预设条件的情况下,属于同一可交换组的两个量子操作是可交换的,所述预设条件包括:所述两个量子操作作用同一量子比特,且所述两个量子操作分别对于所述量子比特的控制类型为所述目标字典指示的控制类型;
第二获取模块1802,用于获取所述第一指令列表中操作指令对应量子操作的第一标识和所述量子操作所作用的每个量子比特的第一控制类型;
确定模块1803,用于基于所述目标字典、所述第一标识和所述第一控制类型,确定所述操作指令在作用的每个量子比特上的可交换特征,可交换特征指示操作指令在量子比特上的可交换性,在可交换特征指示操作指令在量子比特上可交换的情况下,可交换特征包括操作指令在量子比特上所属的可交换组的第二标识;
等效编译模块1804,用于基于所述可交换特征和所述第一指令列表,对所述第一量子电路进行等效编译,得到第二量子电路的第二指令列表,所述第二量子电路的量子比特数小于所述第一量子电路的量子比特数。
可选的,所述目标字典包括第一字典和第二字典,所述第一字典指示第一可交换组的标识和量子操作的标识的对应关系,所述第二字典指示第二可交换组的标识和量子操作的标识的对应关系,所述第一可交换组是量子操作在控制类型指示为受控量子比特上的可交换组,所述第二可交换组是量子操作在控制类型指示为目标量子比特上的可交换组;所述确定模块1803,具体用于:
在所述第一控制类型指示为受控量子比特的情况下,基于所述第一字典和所述第一标识,确定操作指令在作用的受控量子比特上的可交换特征;
在所述第一控制类型指示为目标量子比特的情况下,基于所述第二字典和所述第一标识,确定操作指令在作用的目标量子比特上的可交换特征。
可选的,所述确定模块1803,具体用于:
在指示可交换组的标识和量子操作的标识的对应关系的字典中包括所述第一标识的情况下,将指示可交换组的标识和量子操作的标识的对应关系的字典中与所述第一标识对应的标识,确定为操作指令在作用的量子比特上所属的可交换组的第二标识;
在指示可交换组的标识和量子操作的标识的对应关系的字典中不包括所述第一标识的情况下,将目标信息确定为操作指令在作用的量子比特上的可交换特征,所述目标信息指示操作指令在作用的量子比特上不可交换。
可选的,所述等效编译模块1804包括:
构建子模块,用于基于所述可交换特征,将所述第一指令列表中操作指令作为节点,构建所述第一量子电路的第一有向无环图,所述第一有向无环图中,作用量子比特有交集,且在交集的量子比特上可交换的不同操作指令对应节点之间不存在有向边;
等效编译子模块,用于基于所述第一有向无环图,对所述第一量子电路进行等效编译,得到第二量子电路的第二指令列表。
可选的,所述构建子模块包括:
遍历单元,用于对所述第一指令列表按照操作指令的排列顺序进行正向遍历;
构建单元,用于将当前遍历的第一操作指令作为节点,并针对所述第一操作指令作用的每个第一量子比特,在第一量子比特对应的第一列表不为空列表的情况下,基于所述第一列表的操作指令在第一量子比特上的可交换特征,构建所述第一列表中的目标操作指令对应节点至所述第一操作指令对应节点的有向边;在第一量子比特上,所述目标操作指令与所述第一操作指令之间不可交换;
添加单元,用于将所述第一操作指令添加至所述第一列表的末尾,并在所述第一指令列表遍历完成的情况下,得到所述第一有向无环图。
可选的,所述构建单元,具体用于:
在基于所述可交换特征确定第二操作指令在第一量子比特上不可交换的情况下,将所述第二操作指令确定为目标操作指令,所述第二操作指令为所述第一列表中位于末尾的操作指令;
添加所述目标操作指令对应节点至所述第一操作指令对应节点的有向边。
可选的,所述构建单元,具体用于:
在基于所述可交换特征确定第二操作指令在第一量子比特上可交换的情况下,比较所述第一列表的操作指令在第一量子比特上的可交换特征和所述第一操作指令在第一量子比特上的可交换特征,得到比较结果;
基于所述比较结果,从所述第一列表中获取在第一量子比特上的前一个组别的至少一个目标操作指令,得到第一子列表,同一个组别中,在第一量子比特上,不同目标操作指令之间可交换,且每个目标操作指令与所述第一操作指令之间不可交换;
添加所述第一子列表中的每个目标操作指令对应节点至所述第一操作指令对应节点的有向边。
可选的,所述构建单元,具体用于:
在所述比较结果指示所述第二操作指令在第一量子比特上的可交换特征与所述第一操作指令在第一量子比特上的可交换特征相同的情况下,获取对所述第一列表按照操作指令的排列顺序进行反向遍历得到的第一个目标操作指令;
在所述第一个目标操作指令在第一量子比特上不可交换的情况下,获取所述第一子列表,所述第一子列表中仅包括所述第一个目标操作指令;
在所述第一个目标操作指令在第一量子比特上可交换的情况下,获取在第一量子比特上与第一可交换特征相同的其他目标操作指令,得到所述第一子列表,所述第一可交换特征为所述第一个目标操作指令在第一量子比特上的可交换特征。
可选的,所述构建单元,具体用于:
在所述比较结果指示所述第二操作指令在第一量子比特上的可交换特征与所述第一操作指令在第一量子比特上的可交换特征不相同的情况下,将所述第二操作指令确定为目标操作指令;
获取在第一量子比特上与第二可交换特征相同的其他目标操作指令,得到所述第一子列表,所述第二可交换特征为所述第二操作指令在第一量子比特上的可交换特征。
本公开提供的量子电路处理装置1800能够实现量子电路处理方法实施例实现的各个过程,且能够达到相同的有益效果,为避免重复,这里不再赘述。
本公开的技术方案中,所涉及的用户个人信息的收集、存储、使用、加工、传输、提供和公开等处理,均符合相关法律法规的规定,且不违背公序良俗。
根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
图19示出了可以用来实施本公开的实施例的示例电子设备的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图19所示,设备1900包括计算单元1901,其可以根据存储在只读存储器(ROM)1902中的计算机程序或者从存储单元1908加载到随机访问存储器(RAM)1903中的计算机程序,来执行各种适当的动作和处理。在RAM 1903中,还可存储设备1900操作所需的各种程序和数据。计算单元1901、ROM 1902以及RAM 1903通过总线1904彼此相连。输入/输出(I/O)接口1905也连接至总线1904。
设备1900中的多个部件连接至I/O接口1905,包括:输入单元1906,例如键盘、鼠标等;输出单元1907,例如各种类型的显示器、扬声器等;存储单元1908,例如磁盘、光盘等;以及通信单元1909,例如网卡、调制解调器、无线通信收发机等。通信单元1909允许设备1900通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元1901可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元1901的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元1901执行上文所描述的各个方法和处理,例如量子电路处理方法。例如,在一些实施例中,量子电路处理方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元1908。在一些实施例中,计算机程序的部分或者全部可以经由ROM 1902和/或通信单元1909而被载入和/或安装到设备1900上。当计算机程序加载到RAM 1903并由计算单元1901执行时,可以执行上文描述的量子电路处理方法的一个或多个步骤。备选地,在其他实施例中,计算单元1901可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行量子电路处理方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,也可以为分布式系统的服务器,或者是结合了区块链的服务器。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。

Claims (21)

1.一种量子电路处理方法,包括:
获取第一量子电路的第一指令列表,以及获取目标字典,所述目标字典指示可交换组的标识、量子操作的标识和量子比特的控制类型之间的关系,在满足预设条件的情况下,属于同一可交换组的两个量子操作是可交换的,所述预设条件包括:所述两个量子操作作用同一量子比特,且所述两个量子操作分别对于所述量子比特的控制类型为所述目标字典指示的控制类型;
获取所述第一指令列表中操作指令对应量子操作的第一标识和所述量子操作所作用的每个量子比特的第一控制类型;
基于所述目标字典、所述第一标识和所述第一控制类型,确定所述操作指令在作用的每个量子比特上的可交换特征,可交换特征指示操作指令在量子比特上的可交换性,在可交换特征指示操作指令在量子比特上可交换的情况下,可交换特征包括操作指令在量子比特上所属的可交换组的第二标识;
基于所述可交换特征和所述第一指令列表,对所述第一量子电路进行等效编译,得到第二量子电路的第二指令列表,所述第二量子电路的量子比特数小于所述第一量子电路的量子比特数。
2.根据权利要求1所述的方法,其中,所述目标字典包括第一字典和第二字典,所述第一字典指示第一可交换组的标识和量子操作的标识的对应关系,所述第二字典指示第二可交换组的标识和量子操作的标识的对应关系,所述第一可交换组是量子操作在控制类型指示为受控量子比特上的可交换组,所述第二可交换组是量子操作在控制类型指示为目标量子比特上的可交换组;
所述基于所述目标字典、所述第一标识和所述第一控制类型,确定所述操作指令在作用的每个量子比特上的可交换特征,包括以下至少一项:
在所述第一控制类型指示为受控量子比特的情况下,基于所述第一字典和所述第一标识,确定操作指令在作用的受控量子比特上的可交换特征;
在所述第一控制类型指示为目标量子比特的情况下,基于所述第二字典和所述第一标识,确定操作指令在作用的目标量子比特上的可交换特征。
3.根据权利要求2所述的方法,其中,基于指示可交换组的标识和量子操作的标识的对应关系的字典和所述第一标识,确定操作指令在作用的量子比特上的可交换特征,包括:
在指示可交换组的标识和量子操作的标识的对应关系的字典中包括所述第一标识的情况下,将指示可交换组的标识和量子操作的标识的对应关系的字典中与所述第一标识对应的标识,确定为操作指令在作用的量子比特上所属的可交换组的第二标识;
在指示可交换组的标识和量子操作的标识的对应关系的字典中不包括所述第一标识的情况下,将目标信息确定为操作指令在作用的量子比特上的可交换特征,所述目标信息指示操作指令在作用的量子比特上不可交换。
4.根据权利要求1所述的方法,其中,所述基于所述可交换特征和所述第一指令列表,对所述第一量子电路进行等效编译,得到第二量子电路的第二指令列表,包括:
基于所述可交换特征,将所述第一指令列表中操作指令作为节点,构建所述第一量子电路的第一有向无环图,所述第一有向无环图中,作用量子比特有交集,且在交集的量子比特上可交换的不同操作指令对应节点之间不存在有向边;
基于所述第一有向无环图,对所述第一量子电路进行等效编译,得到第二量子电路的第二指令列表。
5.根据权利要求4所述的方法,其中,所述基于所述可交换特征,将所述第一指令列表中操作指令作为节点,构建所述第一量子电路的第一有向无环图,包括:
对所述第一指令列表按照操作指令的排列顺序进行正向遍历;
将当前遍历的第一操作指令作为节点,并针对所述第一操作指令作用的每个第一量子比特,在第一量子比特对应的第一列表不为空列表的情况下,基于所述第一列表的操作指令在第一量子比特上的可交换特征,构建所述第一列表中的目标操作指令对应节点至所述第一操作指令对应节点的有向边;在第一量子比特上,所述目标操作指令与所述第一操作指令之间不可交换;
将所述第一操作指令添加至所述第一列表的末尾,并在所述第一指令列表遍历完成的情况下,得到所述第一有向无环图。
6.根据权利要求5所述的方法,其中,所述基于所述第一列表的操作指令在第一量子比特上的可交换特征,构建所述第一列表中的目标操作指令对应节点至所述第一操作指令对应节点的有向边,包括:
在基于所述可交换特征确定第二操作指令在第一量子比特上不可交换的情况下,将所述第二操作指令确定为目标操作指令,所述第二操作指令为所述第一列表中位于末尾的操作指令;
添加所述目标操作指令对应节点至所述第一操作指令对应节点的有向边。
7.根据权利要求5所述的方法,其中,所述基于所述第一列表的操作指令在第一量子比特上的可交换特征,构建所述第一列表中的目标操作指令对应节点至所述第一操作指令对应节点的有向边,包括:
在基于所述可交换特征确定第二操作指令在第一量子比特上可交换的情况下,比较所述第一列表的操作指令在第一量子比特上的可交换特征和所述第一操作指令在第一量子比特上的可交换特征,得到比较结果;
基于所述比较结果,从所述第一列表中获取在第一量子比特上的前一个组别的至少一个目标操作指令,得到第一子列表,同一个组别中,在第一量子比特上,不同目标操作指令之间可交换,且每个目标操作指令与所述第一操作指令之间不可交换;
添加所述第一子列表中的每个目标操作指令对应节点至所述第一操作指令对应节点的有向边。
8.根据权利要求7所述的方法,其中,所述基于所述比较结果,从所述第一列表中获取在第一量子比特上的前一个组别的至少一个目标操作指令,得到第一子列表,包括:
在所述比较结果指示所述第二操作指令在第一量子比特上的可交换特征与所述第一操作指令在第一量子比特上的可交换特征相同的情况下,获取对所述第一列表按照操作指令的排列顺序进行反向遍历得到的第一个目标操作指令;
在所述第一个目标操作指令在第一量子比特上不可交换的情况下,获取所述第一子列表,所述第一子列表中仅包括所述第一个目标操作指令;
在所述第一个目标操作指令在第一量子比特上可交换的情况下,获取在第一量子比特上与第一可交换特征相同的其他目标操作指令,得到所述第一子列表,所述第一可交换特征为所述第一个目标操作指令在第一量子比特上的可交换特征。
9.根据权利要求7所述的方法,其中,所述基于所述比较结果,从所述第一列表中获取在第一量子比特上的前一个组别的至少一个目标操作指令,得到第一子列表,包括:
在所述比较结果指示所述第二操作指令在第一量子比特上的可交换特征与所述第一操作指令在第一量子比特上的可交换特征不相同的情况下,将所述第二操作指令确定为目标操作指令;
获取在第一量子比特上与第二可交换特征相同的其他目标操作指令,得到所述第一子列表,所述第二可交换特征为所述第二操作指令在第一量子比特上的可交换特征。
10.一种量子电路处理装置,包括:
第一获取模块,用于获取第一量子电路的第一指令列表,以及获取目标字典,所述目标字典指示可交换组的标识、量子操作的标识和量子比特的控制类型之间的关系,在满足预设条件的情况下,属于同一可交换组的两个量子操作是可交换的,所述预设条件包括:所述两个量子操作作用同一量子比特,且所述两个量子操作分别对于所述量子比特的控制类型为所述目标字典指示的控制类型;
第二获取模块,用于获取所述第一指令列表中操作指令对应量子操作的第一标识和所述量子操作所作用的每个量子比特的第一控制类型;
确定模块,用于基于所述目标字典、所述第一标识和所述第一控制类型,确定所述操作指令在作用的每个量子比特上的可交换特征,可交换特征指示操作指令在量子比特上的可交换性,在可交换特征指示操作指令在量子比特上可交换的情况下,可交换特征包括操作指令在量子比特上所属的可交换组的第二标识;
等效编译模块,用于基于所述可交换特征和所述第一指令列表,对所述第一量子电路进行等效编译,得到第二量子电路的第二指令列表,所述第二量子电路的量子比特数小于所述第一量子电路的量子比特数。
11.根据权利要求10所述的装置,其中,所述目标字典包括第一字典和第二字典,所述第一字典指示第一可交换组的标识和量子操作的标识的对应关系,所述第二字典指示第二可交换组的标识和量子操作的标识的对应关系,所述第一可交换组是量子操作在控制类型指示为受控量子比特上的可交换组,所述第二可交换组是量子操作在控制类型指示为目标量子比特上的可交换组;所述确定模块,具体用于:
在所述第一控制类型指示为受控量子比特的情况下,基于所述第一字典和所述第一标识,确定操作指令在作用的受控量子比特上的可交换特征;
在所述第一控制类型指示为目标量子比特的情况下,基于所述第二字典和所述第一标识,确定操作指令在作用的目标量子比特上的可交换特征。
12.根据权利要求11所述的装置,其中,所述确定模块,具体用于:
在指示可交换组的标识和量子操作的标识的对应关系的字典中包括所述第一标识的情况下,将指示可交换组的标识和量子操作的标识的对应关系的字典中与所述第一标识对应的标识,确定为操作指令在作用的量子比特上所属的可交换组的第二标识;
在指示可交换组的标识和量子操作的标识的对应关系的字典中不包括所述第一标识的情况下,将目标信息确定为操作指令在作用的量子比特上的可交换特征,所述目标信息指示操作指令在作用的量子比特上不可交换。
13.根据权利要求10所述的装置,其中,所述等效编译模块包括:
构建子模块,用于基于所述可交换特征,将所述第一指令列表中操作指令作为节点,构建所述第一量子电路的第一有向无环图,所述第一有向无环图中,作用量子比特有交集,且在交集的量子比特上可交换的不同操作指令对应节点之间不存在有向边;
等效编译子模块,用于基于所述第一有向无环图,对所述第一量子电路进行等效编译,得到第二量子电路的第二指令列表。
14.根据权利要求13所述的装置,其中,所述构建子模块包括:
遍历单元,用于对所述第一指令列表按照操作指令的排列顺序进行正向遍历;
构建单元,用于将当前遍历的第一操作指令作为节点,并针对所述第一操作指令作用的每个第一量子比特,在第一量子比特对应的第一列表不为空列表的情况下,基于所述第一列表的操作指令在第一量子比特上的可交换特征,构建所述第一列表中的目标操作指令对应节点至所述第一操作指令对应节点的有向边;在第一量子比特上,所述目标操作指令与所述第一操作指令之间不可交换;
添加单元,用于将所述第一操作指令添加至所述第一列表的末尾,并在所述第一指令列表遍历完成的情况下,得到所述第一有向无环图。
15.根据权利要求14所述的装置,其中,所述构建单元,具体用于:
在基于所述可交换特征确定第二操作指令在第一量子比特上不可交换的情况下,将所述第二操作指令确定为目标操作指令,所述第二操作指令为所述第一列表中位于末尾的操作指令;
添加所述目标操作指令对应节点至所述第一操作指令对应节点的有向边。
16.根据权利要求14所述的装置,其中,所述构建单元,具体用于:
在基于所述可交换特征确定第二操作指令在第一量子比特上可交换的情况下,比较所述第一列表的操作指令在第一量子比特上的可交换特征和所述第一操作指令在第一量子比特上的可交换特征,得到比较结果;
基于所述比较结果,从所述第一列表中获取在第一量子比特上的前一个组别的至少一个目标操作指令,得到第一子列表,同一个组别中,在第一量子比特上,不同目标操作指令之间可交换,且每个目标操作指令与所述第一操作指令之间不可交换;
添加所述第一子列表中的每个目标操作指令对应节点至所述第一操作指令对应节点的有向边。
17.根据权利要求16所述的装置,其中,所述构建单元,具体用于:
在所述比较结果指示所述第二操作指令在第一量子比特上的可交换特征与所述第一操作指令在第一量子比特上的可交换特征相同的情况下,获取对所述第一列表按照操作指令的排列顺序进行反向遍历得到的第一个目标操作指令;
在所述第一个目标操作指令在第一量子比特上不可交换的情况下,获取所述第一子列表,所述第一子列表中仅包括所述第一个目标操作指令;
在所述第一个目标操作指令在第一量子比特上可交换的情况下,获取在第一量子比特上与第一可交换特征相同的其他目标操作指令,得到所述第一子列表,所述第一可交换特征为所述第一个目标操作指令在第一量子比特上的可交换特征。
18.根据权利要求16所述的装置,其中,所述构建单元,具体用于:
在所述比较结果指示所述第二操作指令在第一量子比特上的可交换特征与所述第一操作指令在第一量子比特上的可交换特征不相同的情况下,将所述第二操作指令确定为目标操作指令;
获取在第一量子比特上与第二可交换特征相同的其他目标操作指令,得到所述第一子列表,所述第二可交换特征为所述第二操作指令在第一量子比特上的可交换特征。
19.一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-9中任一项所述的方法。
20.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据权利要求1-9中任一项所述的方法。
21.一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现根据权利要求1-9中任一项所述的方法。
CN202311756316.9A 2023-12-20 2023-12-20 量子电路处理方法、装置及电子设备 Pending CN117787424A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311756316.9A CN117787424A (zh) 2023-12-20 2023-12-20 量子电路处理方法、装置及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311756316.9A CN117787424A (zh) 2023-12-20 2023-12-20 量子电路处理方法、装置及电子设备

Publications (1)

Publication Number Publication Date
CN117787424A true CN117787424A (zh) 2024-03-29

Family

ID=90390227

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311756316.9A Pending CN117787424A (zh) 2023-12-20 2023-12-20 量子电路处理方法、装置及电子设备

Country Status (1)

Country Link
CN (1) CN117787424A (zh)

Similar Documents

Publication Publication Date Title
JP7058304B2 (ja) 異種グラフにおけるノード表現の生成方法、装置及び電子機器
Dom et al. Fixed-parameter tractability results for feedback set problems in tournaments
CN113159239B (zh) 一种量子图卷积神经网络处理图数据的方法
CN115169570B (zh) 量子网络协议仿真方法、装置及电子设备
CN113392580A (zh) 基于混合量子算法的组合优化求解方法、系统及求解器架构
CN115169568A (zh) 量子计算处理方法、装置及电子设备
CN116151384B (zh) 量子电路处理方法、装置及电子设备
CN116151381B (zh) 量子电路处理方法、装置及电子设备
CN114580645A (zh) 随机量子测量的模拟方法、装置、设备及存储介质
CN116167446B (zh) 量子计算处理方法、装置及电子设备
AU2023203387A1 (en) Method and apparatus for determining degree of quantum entanglement, device and storage medium
CN117787424A (zh) 量子电路处理方法、装置及电子设备
CN116611527B (zh) 量子电路处理方法、装置及电子设备
CN117744813A (zh) 量子电路处理方法、装置及电子设备
CN116629370B (zh) 量子电路处理方法、装置及电子设备
Segretain et al. A methodology for evaluating the extensibility of boolean networks’ structure and function
CN116187458B (zh) 量子电路处理方法、装置及电子设备
Sudbrack et al. Master equation for the degree distribution of a Duplication and Divergence network
CN116167447B (zh) 量子电路处理方法、装置及电子设备
CN117313880A (zh) 量子电路处理方法、装置及电子设备
CN116227607B (zh) 量子电路的分类方法、装置、电子设备、介质和产品
CN116151383B (zh) 量子计算处理方法、装置及电子设备
CN117313881A (zh) 量子电路的分类方法、装置及电子设备
CN117313877A (zh) 量子电路处理方法、装置及电子设备
CN117313879A (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