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

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

Info

Publication number
CN117744813A
CN117744813A CN202311760374.9A CN202311760374A CN117744813A CN 117744813 A CN117744813 A CN 117744813A CN 202311760374 A CN202311760374 A CN 202311760374A CN 117744813 A CN117744813 A CN 117744813A
Authority
CN
China
Prior art keywords
operation instruction
list
exchangeable
instruction
quantum
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
CN202311760374.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 CN202311760374.9A priority Critical patent/CN117744813A/zh
Publication of CN117744813A publication Critical patent/CN117744813A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Devices For Executing Special Programs (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是不同方案对最大割QAOA电路的编译效果比对示意图;
图10是不同方案对IQP电路的可编译性因子比对示意图之一;
图11是不同方案对IQP电路的可编译性因子比对示意图之二;
图12是根据本公开第二实施例的量子电路处理装置的结构示意图;
图13是用来实施本公开的实施例的示例电子设备的示意性框图。
具体实施方式
以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
第一实施例
如图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,因此,编译后的量子电路可以减少两个量子比特,其等效编译效果更好,可以使得量子电路等效编译减少的量子比特数量的幅度更大。
第一量子电路可以为静态量子电路,静态量子电路包括量子测量操作和量子门操作,且量子测量操作均位于量子门操作之后。
第一量子电路中量子操作的作用顺序可以用一个有序的指令列表表示,该指令列表即为第一指令列表,其表示方式已经在上述描述中进行了详细说明,这里不进行赘述。
可以获取预先存储的第一量子电路的第一指令列表,也可以获取用户输入的第一量子电路的第一指令列表,这里不进行具体限定。
操作指令的可交换特征表征了操作指令与其他操作指令的可交换性,其具有两种性质,第一种是表征操作指令是否为可交换操作,第二种是表征操作指令与其他操作指令是否可交换。可交换特征可以用数值表示,也可以用字符表示,这里不进行具体限定。
可以通过一个额外列表来存储每个操作指令的可交换特征,也可以将可交换特征存放在操作指令的参数中,如存放在操作指令新添加的group_tag参数中。具有相同group_tag参数的量子操作之间可以任意交换顺序,而属于不同组别的量子操作之间则不可交换。
对于不可交换的操作指令,如重置操作或测量操作,其group_tag参数则可以设定为None。可以通过一个字符串‘a’来标识图6(a)中的所有可交换的CZ门,从而该量子电路可以表示为如下的有序指令列表:static_circuit=[[Reset,0,None,None],[Reset,1,None,None],[Reset,2,None,None],[Reset,3,None,None],[CZ,[0,1],None,‘a’],[CZ,[2,3],None,‘a’],[CZ,[1,2],None,‘a’],[Measure,0,None,None],[Measure,1,None,None],[Measure,2,None,None],[Measure,3,None,None]]。
其中,可交换特征相同,则表示操作指令之间可交换,如交换操作指令[CZ,[2,3],None,‘a’]和[CZ,[1,2],None,‘a’]的顺序得到的指令列表即对应于图6(b)所示的量子电路。
可交换特征可以人工标注得到,也可以由电子设备自动标注得到,这里不进行具体限定。
步骤S102:基于所述可交换特征,将所述第一指令列表中操作指令作为节点,构建所述第一量子电路的第一有向无环图,所述第一有向无环图中,作用量子比特有交集,且可交换的不同操作指令对应节点之间不存在有向边。
第一有向无环图包括第一指令列表中指令对应的节点和节点之间的有向边,节点之间的有向边用于表征第一指令列表中不同操作指令间的时序关系,且节点之间的各有向边构成的路径不包括有向环路。
在构建第一有向无环图中,应尽量避免在可交换的操作指令对应节点之间添加有向边,在一可选实施方式中,可以对第一指令列表按照从左至右的指令排列顺序进行遍历,并获取第一指令列表中排序在当前遍历的指令之前的指令子列表和当前遍历的指令所作用的第一量子位;对指令子列表按照从右至左的指令排列顺序进行遍历,并获取所作用的量子位与第一量子位存在交集的操作指令;比较该操作指令的可交换特征和当前遍历的指令的可交换特征,若比较结果指示两者不可交换,则将该操作指令的标识作为源节点,当前遍历的指令的标识作为目标节点,构建有向边;若比较结果指示两者可交换,则继续遍历指令子列表,以搜索到与当前遍历的指令之间不可交换的操作指令,并构建两者之间的有向边。在第一指令列表遍历完成的情况下,基于所构建的有向边,获取第一有向无环图。
在另一实施方式中,可选的,所述步骤S102具体包括:
对所述第一指令列表按照操作指令的排列顺序进行正向遍历;
将当前遍历的第一操作指令作为节点,并在第一列表不为空列表的情况下,基于所述第一列表中操作指令的可交换特征,构建所述第一列表中的目标操作指令对应节点至所述第一操作指令对应节点的有向边;所述目标操作指令与所述第一操作指令之间不可交换,所述第一列表为所述第一操作指令所作用的量子比特对应的列表;
将所述第一操作指令添加至所述第一列表的末尾,并在所述第一指令列表遍历完成的情况下,得到所述第一有向无环图。
如此,通过创建每个量子位对应的列表,用于按照顺序存储其对应的操作指令,这样可以非常方便查找到每个操作指令关联的前序操作指令,并从前序操作指令中搜索到目标操作指令,以构建目标操作指令至该操作指令之间的有向边,从而可以非常快速且高速地构建第一有向无环图。
其中,目标操作指令与第一操作指令之间不可交换,其是与第一操作指令的位置最接近,且与第一操作指令不可交换的操作指令。也即可以通过比较第一列表中操作指令的可交换特征和第一操作指令的可交换特征,以搜索到第一列表中与第一操作指令的位置最接近,且与第一操作指令不可交换的目标操作指令,以构建两者之间的依赖关系,添加两者之间的有向边。这样可以仅在不可交换的操作指令之间添加依赖关系,可以避免在有向无环图中的可交换结构的操作指令对应节点之间施加强制依赖关系,使得有向无环图中操作指令对应节点之间的依赖关系更加灵活,即有向无环图中并未限定可交换的操作指令之间的执行依赖关系,从而使得有向无环图中可添加的输出节点至输入节点的候选有向边更多。
之后,将第一操作指令添加至第一列表的末尾,以作为下一次遍历到的操作指令的前序操作指令。相应的,在第一指令列表遍历完成的情况下,量子电路的有向无环图构建完成,可以得到第一有向无环图,如此,可以非常快速且高速地构建具有灵活依赖关系的第一有向无环图。
步骤S103:基于所述第一有向无环图,对所述第一量子电路进行等效编译,得到第二量子电路的第二指令列表,所述第二量子电路的量子比特数小于所述第一量子电路的量子比特数。
其中,所述步骤S103具体包括:
在所述第一有向无环图添加输出节点至输入节点的目标有向边,得到第二有向无环图;
基于所述第二有向无环图、所添加的目标有向边构成的第二列表和所述第一指令列表,对所述第一量子电路进行等效编译,得到第二量子电路的第二指令列表。
可以基于第一有向无环图、以及第一有向无环图的输入节点列表和输出节点列表,在第一有向无环图添加输出节点至输入节点的目标有向边,得到第二有向无环图,第二有向无环图包括目标有向边和第一有向无环图中的有向边,目标有向边和第一有向无环图中的有向边构成的路径不包括有向环路。
其中,输入节点列表包括第一指令列表中类型为重置操作指令对应的节点,输出节点列表包括第一指令列表中类型为量子测量操作指令对应的节点,第二有向无环图中,每个输出节点至多与一个输入节点相连,不同输出节点不能与同一个输入节点相连。
该步骤中,由于将一个量子电路编译成另一个量子电路,本质上是通过对已经测量的量子比特进行重置回收,以供后续指令所使用。对应第一有向无环图,相当于需要尽可能向图中添加从输出节点指向输入节点的有向边,以表示测量比特重置被重新利用,相应的,可以减少量子电路中所需要的量子比特数。
为了保证所编译得到的量子电路与原量子电路的等效性,以及保证量子电路中指令之间的时序关系,在添加有向边时需要保证如下约束条件:
1)为了使得整个图依然符合电路指令的时序关系,需要保证在加入更多有向边之后,整个图依然是无环的,需要注意的是,图中有向边的指向表示指令的时序关系,环状结构将会破坏这种关系,也即添加有向边之后,图中依然不能存在环状结构的路径(称之为有向环路);
2)每个输出节点最多只能和一个输入节点相连,以表示输出节点测量后,由所指向的输入节点继续在该量子比特上执行操作;
3)不同输出节点不能和同一个输入节点相连。
相应的,在第一有向无环图中添加符合上述约束条件的目标有向边之后,可以得到第二有向无环图。
可以采用暴力搜索的方式,也可以采用启发式搜索方式,或者两者结合的方式,确定在第一有向无环图中添加的输出节点至输入节点的目标有向边,得到第二有向无环图。在一些实施方式中,可以基于第一有向无环图的候选边矩阵,确定在第一有向无环图中添加的输出节点至输入节点的目标有向边,候选边矩阵用于表征第一有向无环图中输出节点至输入节点的可连接性。
之后,可以基于第二有向无环图、目标有向边构成的第二列表和第一指令列表,对第一量子电路进行等效编译,得到与第一量子电路等效的第二量子电路的第二指令列表。
添加输出节点至输入节点的有向边之后,可以基于第二有向无环图,确定各个节点之间的时序关系,并基于该时序关系,对第一指令列表进行重排序,之后,可以利用第二列表中输入节点与输出节点之间的关系,将测量操作指令之后作用在其他量子比特(即与该测量操作指令对应的输出节点有向连接的输入节点对应指令所作用的量子比特)的指令,等效编译成作用到该测量操作指令所作用的量子比特上,如此,可以实现对第一量子电路的等效编译,得到与第一量子电路等效的第二量子电路的第二指令列表,第二量子电路中所需要的量子比特比第一量子电路中所需要的量子比特少。
本实施例中,通过获取第一量子电路的第一指令列表中每个操作指令的可交换特征,基于可交换特征,将第一指令列表中操作指令作为节点,构建第一量子电路的第一有向无环图,使得第一有向无环图中,作用量子比特有交集,且可交换的不同操作指令对应节点之间不存在有向边。这样可以仅在不可交换的操作指令之间添加依赖关系,可以避免在有向无环图中的可交换的操作指令对应节点之间施加强制依赖关系,使得有向无环图中操作指令对应节点之间的依赖关系灵活,从而使得所构建的有向无环图中可添加的输出节点至输入节点的有向边更多,进而可以提高量子电路等效编译的效果,减少编译得到的动态量子电路所需的量子比特数,相对于基于强制依赖关系的有向无环图进行量子电路的等效编译,可以使得量子电路等效编译减少的量子比特数量的幅度更大。
可选的,所述基于所述第一列表中操作指令的可交换特征,构建所述第一列表中的目标操作指令对应节点至所述第一操作指令对应节点的有向边,包括:
在基于所述可交换特征确定第二操作指令不可交换的情况下,将所述第二操作指令确定为目标操作指令;所述第二操作指令为所述第一列表中位于末尾的操作指令;
添加所述目标操作指令对应节点至所述第一操作指令对应节点的有向边。
本实施方式中,若第一列表中位于末尾的第二操作指令的可交换特征为None,可以表示第二操作指令是不可交换的,此时,第一操作指令和第二操作指令具备执行的依赖关系,可以添加第二操作指令至第一操作指令的目标有向边,其不会引入不必要的依赖关系,且可以保证所构建的有向无环图所表示的第一量子电路的量子操作之间依赖关系的准确性。
可选的,所述基于所述第一列表中操作指令的可交换特征,构建所述第一列表中的目标操作指令对应节点至所述第一操作指令对应节点的有向边,包括:
在基于所述可交换特征确定第二操作指令可交换的情况下,比较所述第一列表中操作指令的可交换特征和所述第一操作指令的可交换特征,得到比较结果;
基于所述比较结果,从所述第一列表中获取所述第一操作指令的前一个组别的至少一个目标操作指令,得到第一子列表,同一个组别中,不同目标操作指令之间可交换,且每个目标操作指令与所述第一操作指令之间不可交换;
添加所述第一子列表中的每个目标操作指令对应节点至所述第一操作指令对应节点的有向边。
本实施方式中,若第一列表中位于末尾的第二操作指令的可交换特征不为None,可以表示第二操作指令是可交换的。在该场景下,可以比较第一列表中操作指令的可交换特征和第一操作指令的可交换特征,以从第一列表中搜索到第一操作指令的前一个组别的至少一个目标操作指令,相应添加第一子列表中的每个目标操作指令对应节点至第一操作指令对应节点的有向边,以得到第一有向无环图。
当操作指令是不可交换的,则其单独可以组成一个组别,当两个操作指令的可交换特征不为None,且相同时,两者是归属于一个组别,当两个操作指令的可交换特征不相同时,两者归属于不同组别。
第一操作指令的前一个组别指的是排列位置在第一操作指令之前,且与第一操作指令位置距离最近的组别。比如,第一列表中操作指令的可交换特征分别为节点1:'None'、节点2:'None'、节点3:'b'、节点4:'b',其组别分别为两个可交换特征为'None'的组别、可交换特征为'b'的组别,第一操作指令的可交换特征为'a'或'None'。由于随着第一指令列表的遍历,与第一操作指令关联的前序操作指令是放置在第一列表的末尾,因此,可交换特征为'b'的组别在第一指令列表中位置更靠近第一操作指令,则第一操作指令的前一个组别为可交换特征为'b'的组别。
其中,在一些场景下,前一个组别可能是不可交换的组,该组别中只有一个目标操作指令,在另一些场景下,前一个组别可能是与第一操作指令组别不同的可交换组,该组别中可以包括至少一个目标操作指令。
比如,第一列表中操作指令的可交换特征分别为节点1:'None'、节点2:'None'、节点3:'a'、节点4:'a',第一操作指令的可交换特征为'a',则从第一列表中获取的第一操作指令的前一个组别仅包括节点2对应的目标操作指令。
又比如,第一列表中操作指令的可交换特征分别为节点1:'None'、节点2:'None'、节点3:'b'、节点4:'b',第一操作指令的可交换特征为'a'或'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;如果Instruction为量子比特的测量操作,则获取其作用的量子比特qubit,并将Outputs列表索引为qubit的值修改为Index;
步骤2.3:将Instruction指令的group_tag参数记录为Group;获取Instruction指令中的qubit值,并对其进行遍历,设当前元素为q,查找列表Causal_Lists[q]即第一列表的最后一个元素,记录为PreVertex;
步骤2.3.1:如果PreVertex不为空元素,则将PreVertex对应操作指令的group_tag参数记录为PreGroup,初始化SameGroup列表为空列表;
步骤2.3.2:如果PreGroup为None,则向有向无环图Digraph中添加从PreVertex指向Vertex的有向边,随后执行步骤3;
步骤2.3.3:如果PreGroup与Group相同,则对Causal_Lists[q]列表进行反向循环遍历,设当前遍历的元素为CurrentVertex,将CurrentVertex对应指令的group_tag参数记录为CurrentGroup;如果CurrentGroup与Group相同,则继续循环遍历下一元素;如果CurrentGroup与Group不相同,则执行操作a或操作b;其中,操作a:如果CurrentGroup为None,则向有向无环图Digraph中添加从CurrentVertex指向Vertex的有向边,之后执行步骤3;操作b:如果CurrentGroup不为None,则将PreGroup的值设置为CurrentGroup;将Causal_Lists[q]列表中所有group_tag参数等于PreGroup的节点记录到SameGroup列表中;
步骤2.3.4:如果PreGroup与Group不相同,则对Causal_Lists[q]列表进行反向循环遍历,将Causal_Lists[q]列表中所有group_tag参数等于PreGroup的节点记录到SameGroup列表中;
步骤2.3.5:向有向无环图Digraph中为SameGroup中的每个节点添加一条指向Vertex的有向边;
步骤3:将Vertex添加至列表Causal_Lists[q]的末端;
步骤4:返回Digraph,Inputs,Outputs作为输出。
可知,对于作用量子比特有交集的量子操作,如果顺序可以互换,则需要避免在两者之间添加执行依赖关系(即添加有向边)。可以通过一个列表Causal_Lists来保存每个量子比特上的操作指令,索引为q的列表中按照其在第一指令列表中的相对顺序保存了量子比特q上的所有操作指令。可以遍历静态量子电路的指令列表,并在有向无环图中添加每一个操作指令对应节点。遍历操作指令中涉及的量子比特,检查每个量子比特上的前一个操作指令,如果前一个操作指令是不可交换的,则只需添加一条从前一个操作指令对应节点指向当前操作指令对应的有向边。如果前一个量子操作是可交换的,则需要检查前一个操作指令和当前操作指令是否属于同一个组别。如果不属于,则将Causal_Lists中前一个操作指令所属的组别确定为当前遍历的操作指令的前一个可交换组。如果属于,则反向遍历该量子位的Casual_List,并确定当前遍历的操作指令的前一个组别。如果前一个组别为不可交换操作的组别,则只需添加一条从不可交换的操作指令对应节点到当前操作指令对应节点的有向边。反之,如果确定了前一个可交换组,则需要将该量子位上属于前一个可交换组的所有操作指令对应节点连接到当前操作指令对应节点上。
以启发式搜索的一种方式为例,所述在所述第一有向无环图添加输出节点至输入节点的目标有向边,得到第二有向无环图,包括:
从所述第一有向无环图的候选有向边中依次确定目标有向边,并依次添加所述目标有向边,直至添加所述目标有向边后得到的有向无环图中无可添加的输出节点至输入节点的有向边,得到第二有向无环图;
其中,所述目标有向边为基于所述第一有向无环图的候选有向边中评分值最大的候选有向边,所述评分值用于表征第三有向无环图中输出节点到输入节点可连接的有向边总数,所述第三有向无环图是在所述第一有向无环图中添加候选有向边后得到的。
可选的,所述候选有向边的评分值通过以下方式确定:
获取第一有向无环图的候选边矩阵,所述候选边矩阵中元素用于表征所述第一有向无环图中输出节点到输入节点的可连接性;
针对所述候选边矩阵中目标元素对应的候选有向边,获取所述目标元素对应行中元素值为第一值的列索引,得到第一集合,以及获取所述目标元素对应列中元素值为第一值的行索引,得到第二集合,所述第一值表征输出节点到输入节点不可连接;
对所述第二集合和所述第一集合进行笛卡尔积,得到第三列表;
将所述候选边矩阵中第一元素更新为第一值,得到目标矩阵,第一元素包括所述第三列表指示的元素、所述目标元素、以及目标元素的行索引对应行指示的各元素和目标元素的列索引对应列指示的各元素;
基于所述目标矩阵中元素值为第二值的元素个数,确定所述目标元素对应的候选有向边的评分值,所述第二值表征输出节点到输入节点可连接。
也即一可选实施方式中,本实施例的具体流程如下:
获取第一量子电路的第一指令列表和所述第一指令列表中每个操作指令的可交换特征,所述可交换特征指示操作指令与其他操作指令的可交换性;
基于所述可交换特征,将所述第一指令列表中操作指令作为节点,构建所述第一量子电路的第一有向无环图,所述第一有向无环图中,作用量子比特有交集,且可交换的不同操作指令对应节点之间不存在有向边;
通过图搜索算法如深度优先搜索算法,获取第一有向无环图的候选边矩阵;
采用启发式搜索方式获取所有可以添加到第一量子电路的第一有向无环图中输出节点至输入节点的目标有向边;
根据添加目标有向边后的第二有向无环图,将第一量子电路编译为等效的第二量子电路。
显然,由于有向无环图条件的限制,并非任意的从输出节点指向输入节点的边都可以被添加到图中。例如在图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。
可以基于深度优先算法来获取候选边矩阵,其过程如下:
输入:有向无环图Digraph,输入节点列表Inputs,输出节点列表Outputs;
输出:侯选边矩阵C。
步骤1:获取输入、输出节点列表长度,分别记为n,m;
步骤2:初始化一个m×n的全0矩阵C;
步骤3:对输入节点列表Inputs进行循环遍历,设当前被循环的元素为Input,其索引为i;
步骤3.1:对输出节点列表Outputs进行循环遍历,设当前被循环的元素为Output,其索引为j;通过深度优先算法或者其他算法搜索Digraph中是否存在从Input出发到Output的路径;如果该路径不存在,则将矩阵C的矩阵元(j,i)设置为1;如果该路径存在,则不进行操作,继续循环下一个元素;
步骤4:返回侯选边矩阵C作为输出。
由于在构建有向无环图时避免了在可交换量子操作之间添加非必要的依赖关系,因此,其生成的有向无环图中实际上包含了更多的候选有向边,从而有助于向有向无环图中添加更多的候选有向边,进而可以提升量子电路的等效编译效果。
例如,基于图7所示的有向无环图生成的候选边矩阵为:基于图8所示的有向无环图生成的候选边矩阵为:/>可知,基于图8生成的候选边矩阵相对于基于图7生成的候选边矩阵多包含了两条候选有向边。
可以利用贪心策略,基于候选边矩阵确定并添加第一有向无环图中输出节点至输入节点的目标有向边,其具体过程可以如下:
输入:静态量子电路对应的有向无环图Digraph(即第一有向无环图),有向无环图Digraph的输入节点列表Inputs和输出节点列表Outputs,以及侯选边矩阵C;
输出:添加了目标有向边后的有向无环图Modified_Digraph,添加到有向无环图中的所有目标有向边构成的列表Added_Edges(即第二列表)。
步骤1:获取输入、输出节点列表长度,分别记为n,m;
步骤2:初始化一个空列表Added_Edges;
步骤3:当候选边矩阵不为0矩阵时,进行以下操作;
步骤3.1:初始化一个m×n的0矩阵S;
步骤3.2:对矩阵C的非0矩阵元进行遍历,设当前遍历的矩阵元为(i,j);初始化一个矩阵Ci,j=C;将矩阵Ci,j中第i行的所有0元素的列索引记录为集合Ri;将矩阵Ci,j中第j列的所有0元素的行索引记录为集合Tj;计算集合Tj和Ri的笛卡尔积,记录为Pairs列表;对Pairs列表进行遍历,设当前遍历的元素为(u,v);将矩阵Ci,j的矩阵元(u,v)设置为0;将矩阵Ci,j第i行和第j列的所有矩阵元设置为0;计算矩阵Ci,j所有矩阵元的和,记录为Score;将矩阵S的矩阵元(i,j)设置为Score+1;
步骤3.3:获取矩阵S中评分最高的所有矩阵元,记录为Max_Score;
步骤3.4:从Max_Score随机选取一个矩阵元,记录为(t,r);
步骤3.5:将有向边(Outputs[t],Inputs[r])添加到Added_Edges中;
步骤3.6:将矩阵C更新为矩阵Ct,r
步骤4:将Added_Edges中的所有有向边添加到Digraph中;
步骤5:返回Modified_Digraph和Added_Edges作为输出。
如此,通过启发式方式,并利用最大候选边贪心策略来依次确定目标有向边,直至第一有向无环图中无可添加的输出节点至输入节点的有向边,在提高有向边搜索效率的同时,可以保证有向边搜索的优越性。
在获得了所有可以添加到有向无环图中的目标有向边后,便获得了编译后的动态量子电路对应的有向无环图,为将其进一步编译为动态量子电路指令列表,可以通过对更新后的有向无环图进行拓扑排序来获得一个可行的动态量子电路指令执行顺序。一个有向无环图的拓扑排序指的是图中节点的一个线性排列,使得对于图中所有有向边(u,v),节点u出现在节点v的前面。由于有向无环图包含了电路操作指令执行顺序的先后关系,因此拓扑排序后的列表也就对应了一个可行的指令执行顺序列表。可以对拓扑排序后的列表进行遍历,并根据添加的目标有向边更新对应操作指令作用的量子比特,便可以获得编译后的动态量子电路的第二指令列表。
基于第二有向无环图进行第一量子电路等效编译得到动态量子电路即第二量子电路的过程如下:
输入:第一量子电路的指令列表Static_Circuit,添加了目标有向边后的有向无环图Digraph即第二有向无环图,第二列表Added_Edges;
输出:动态量子电路的指令列表Dynamic_Circuit。
步骤1:初始化两个空列表Topological_order和Dynamic_Circuit;
步骤2:对Digraph进行拓扑排序,将结果存储在Topological_order列表中;
步骤3:对Topological_order列表进行循环遍历,设当前被遍历的元素为Vertex;
步骤3.1:将Static_Circuit列表中索引为Vertex的元素添加到Dynamic_Circuit列表的末端;
步骤4:对Added_Edges列表进行循环遍历,设当前被循环的元素为Edge;
步骤4.1:将Edge的两个节点分别记为Tail和Head;
步骤4.2:将Static_Circuit列表中索引为Head和Tail的指令作用的量子位qubit分别记录为qi和qj
步骤4.3:对Dynamic_Circuit列表进行循环遍历,设当前被遍历的元素为Instruction;对Instruction作用的量子位列表进行循环遍历,设当前遍历的元素为q;如果q=qi,则将q更新为qj
步骤5:返回Dynamic_Circuit列表作为输出。
如此,可以有效利用第二有向无环图,简便地实现对第一量子电路进行等效编译。
对于一个输入静态量子电路,完整的动态量子电路编译方案如下:
输入:静态量子电路指令列表Static_Circuit;
输出:动态量子电路指令列表Dynamic_Circuit;
步骤1:获取输入静态量子电路宽度,记为n;
步骤2:基于Static_Circuit和n,构建静态量子电路的有向无环图Digarph,输入节点列表Inputs和输出节点列表Outputs;
步骤3:基于Digraph,Inputs和Outputs,获取有向无环图Digarph的候选边矩阵C;
步骤4:基于Digraph,Inputs、Outputs和C,获取添加目标有向边后的有向无环图Modified_Digraph和添加到有向无环图中的所有目标有向边构成的列表Added_Edges;
步骤5:基于Static_Circuit、Modified_Digraph和Added_Edges进行静态量子电路的等效编译,获取动态量子电路指令列表Dynamic_Circuit;
步骤6:返回Dynamic_Circuit列表作为输出。
为了展示本实施例的等效编译效果相对于相关技术的优势,通过一些电路编译的数值实验对比了不同方案对量子电路的等效编译效果。
可以对比本实施例的量子电路编译方案,以及三个相关技术的量子电路等效编译方案,分别对随机生成的3-正则图上的最大割QAOA电路的编译效果,其中,三个相关技术并未考虑量子操作的可交换性。
最大割QAOA电路中的每个双量子比特ZZ门均是可交换的,对于每一个初始电路宽度,随机生成20个不同的3-正则图以及其对应的最大割QAOA电路,并分别采用对比方案进行等效编译,图9中的横轴和纵轴中每个数据均是20个随机电路编译后宽度的平均值,而误差棒901指示20个随机电路编译后电路宽度的最大值和最小值。
可以看出,本实施例的量子电路编译方案在量子电路的编译效果(用直方902表示)上相较于相关技术在量子电路的编译效果(分别用直方903、直方904和直方905表示)上均有提升。
为了进一步展示量子电路的编译效果,可以对比了不同等效编译方案对随机生成的IQP电路的编译效果。IQP电路的子电路D中的所有量子比特门均是可互换的。可以分别固定量子电路中双量子比特门数m和量子比特数n的比例为{0.5,1,1.5,2,2.5,3,3.5},随后从10到80中随机选择一个输入量子电路宽度,并通过随机生成双量子比特门的方式构建IQP电路,利用不同量子电路编译方案对其进行等效编译。
对于每个双量子比特门和量子比特数的比例,分别测试了300个不同的电路实例。可以用可编译性因子表示对电路编译效果,具体定义为:
其中,n是输入静态量子电路的宽度,n'是输出动态量子电路的宽度,可以看出,r值越高,表示电路编译效果越好。图10和图11分别展示了本实施例的量子电路编译方案与相关技术1和相关技术2的电路编译方案对随机IQP电路的可编译性因子的对比,两图的横轴分别为相关技术1和相关技术2对随机IQP电路的可编译性因子,纵轴则为本实施例的量子电路编译方案对随机IQP电路的可编译性因子。
图10和图11中的黑色辅助线表示y=x。可以看出,对所有的随机IQP电路,数据点均落在辅助线以及线上的区域内。由此可见,本实施例的量子电路编译方案对随机IQP电路的编译效果显著优于相关技术1和相关技术2对随机IQP电路的编译效果。
第二实施例
如图12所示,本公开提供一种量子电路处理装置1200,包括:
获取模块1201,用于获取第一量子电路的第一指令列表和所述第一指令列表中每个操作指令的可交换特征,所述可交换特征指示操作指令与其他操作指令的可交换性;
构建模块1202,用于基于所述可交换特征,将所述第一指令列表中操作指令作为节点,构建所述第一量子电路的第一有向无环图,所述第一有向无环图中,作用量子比特有交集,且可交换的不同操作指令对应节点之间不存在有向边;
等效编译模块1203,用于基于所述第一有向无环图,对所述第一量子电路进行等效编译,得到第二量子电路的第二指令列表,所述第二量子电路的量子比特数小于所述第一量子电路的量子比特数。
可选的,所述构建模块1202包括:
正向遍历子模块,用于对所述第一指令列表按照操作指令的排列顺序进行正向遍历;
构建子模块,用于将当前遍历的第一操作指令作为节点,并在第一列表不为空列表的情况下,基于所述第一列表中操作指令的可交换特征,构建所述第一列表中的目标操作指令对应节点至所述第一操作指令对应节点的有向边;所述目标操作指令与所述第一操作指令之间不可交换,所述第一列表为所述第一操作指令所作用的量子比特对应的列表;
添加子模块,用于将所述第一操作指令添加至所述第一列表的末尾,并在所述第一指令列表遍历完成的情况下,得到所述第一有向无环图。
可选的,所述构建子模块包括:
确定单元,用于在基于所述可交换特征确定第二操作指令不可交换的情况下,将所述第二操作指令确定为目标操作指令;所述第二操作指令为所述第一列表中位于末尾的操作指令;
第一添加单元,用于添加所述目标操作指令对应节点至所述第一操作指令对应节点的有向边。
可选的,所述构建子模块包括:
比较单元,用于在基于所述可交换特征确定第二操作指令可交换的情况下,比较所述第一列表中操作指令的可交换特征和所述第一操作指令的可交换特征,得到比较结果;
指令获取单元,用于基于所述比较结果,从所述第一列表中获取所述第一操作指令的前一个组别的至少一个目标操作指令,得到第一子列表,同一个组别中,不同目标操作指令之间可交换,且每个目标操作指令与所述第一操作指令之间不可交换;
第二添加单元,用于添加所述第一子列表中的每个目标操作指令对应节点至所述第一操作指令对应节点的有向边。
可选的,所述指令获取单元,具体用于:
在所述比较结果指示第二操作指令的可交换特征与第一操作指令的可交换特征相同的情况下,获取对所述第一列表按照操作指令的排列顺序进行反向遍历得到的第一个目标操作指令;
在所述第一个目标操作指令不可交换的情况下,获取所述第一子列表,所述第一子列表中仅包括所述第一个目标操作指令;
在所述第一个目标操作指令可交换的情况下,获取与所述第一个目标操作指令的可交换特征相同的其他目标操作指令,得到所述第一子列表。
可选的,所述指令获取单元,具体用于:
在所述比较结果指示第二操作指令的可交换特征与第一操作指令的可交换特征不相同的情况下,将第二操作指令确定为目标操作指令;
获取与第二操作指令的可交换特征相同的其他目标操作指令,得到所述第一子列表。
本公开提供的量子电路处理装置1200能够实现量子电路处理方法实施例实现的各个过程,且能够达到相同的有益效果,为避免重复,这里不再赘述。
本公开的技术方案中,所涉及的用户个人信息的收集、存储、使用、加工、传输、提供和公开等处理,均符合相关法律法规的规定,且不违背公序良俗。
根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
图13示出了可以用来实施本公开的实施例的示例电子设备的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图13所示,设备1300包括计算单元1301,其可以根据存储在只读存储器(ROM)1302中的计算机程序或者从存储单元1308加载到随机访问存储器(RAM)1303中的计算机程序,来执行各种适当的动作和处理。在RAM 1303中,还可存储设备1300操作所需的各种程序和数据。计算单元1301、ROM 1302以及RAM 1303通过总线1304彼此相连。输入/输出(I/O)接口1305也连接至总线1304。
设备1300中的多个部件连接至I/O接口1305,包括:输入单元1306,例如键盘、鼠标等;输出单元1307,例如各种类型的显示器、扬声器等;存储单元1308,例如磁盘、光盘等;以及通信单元1309,例如网卡、调制解调器、无线通信收发机等。通信单元1309允许设备1300通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元1301可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元1301的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元1301执行上文所描述的各个方法和处理,例如量子电路处理方法。例如,在一些实施例中,量子电路处理方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元1308。在一些实施例中,计算机程序的部分或者全部可以经由ROM 1302和/或通信单元1309而被载入和/或安装到设备1300上。当计算机程序加载到RAM 1303并由计算单元1301执行时,可以执行上文描述的量子电路处理方法的一个或多个步骤。备选地,在其他实施例中,计算单元1301可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行量子电路处理方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,也可以为分布式系统的服务器,或者是结合了区块链的服务器。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。

Claims (15)

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

Priority Applications (1)

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

Applications Claiming Priority (1)

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

Publications (1)

Publication Number Publication Date
CN117744813A true CN117744813A (zh) 2024-03-22

Family

ID=90260407

Family Applications (1)

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

Country Status (1)

Country Link
CN (1) CN117744813A (zh)

Similar Documents

Publication Publication Date Title
US20230267358A1 (en) Distributed Quantum Computing Simulation Method and Apparatus
CN113392580B (zh) 基于混合量子算法的组合优化求解方法、系统及求解器架构
CN116151384B (zh) 量子电路处理方法、装置及电子设备
CN115169568B (zh) 量子计算处理方法、装置及电子设备
CN114970865B (zh) 量子芯片上的量子电路处理方法、装置及电子设备
CN114580645B (zh) 随机量子测量的模拟方法、装置、设备及存储介质
CN115860128B (zh) 量子电路运行方法、装置及电子设备
CN114418107A (zh) 酉算子编译方法、计算设备、装置及存储介质
CN115577776B (zh) 基态能量的确定方法、装置、设备及存储介质
CN116611527B (zh) 量子电路处理方法、装置及电子设备
AU2023203387A1 (en) Method and apparatus for determining degree of quantum entanglement, device and storage medium
CN116151381B (zh) 量子电路处理方法、装置及电子设备
CN116167446B (zh) 量子计算处理方法、装置及电子设备
CN117744813A (zh) 量子电路处理方法、装置及电子设备
CN117787424A (zh) 量子电路处理方法、装置及电子设备
CN116629370B (zh) 量子电路处理方法、装置及电子设备
CN117313880A (zh) 量子电路处理方法、装置及电子设备
CN116187458B (zh) 量子电路处理方法、装置及电子设备
CN116167447B (zh) 量子电路处理方法、装置及电子设备
CN116227607B (zh) 量子电路的分类方法、装置、电子设备、介质和产品
CN116579435B (zh) 量子电路的分类方法、装置、电子设备、介质和产品
CN116151383B (zh) 量子计算处理方法、装置及电子设备
CN117313879A (zh) 量子电路处理方法、装置及电子设备
CN117313883A (zh) 量子电路处理方法、装置及电子设备
CN116187464B (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