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

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

Info

Publication number
CN117313880A
CN117313880A CN202311266373.9A CN202311266373A CN117313880A CN 117313880 A CN117313880 A CN 117313880A CN 202311266373 A CN202311266373 A CN 202311266373A CN 117313880 A CN117313880 A CN 117313880A
Authority
CN
China
Prior art keywords
list
directed
target
acyclic graph
directed acyclic
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
CN202311266373.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 CN202311266373.9A priority Critical patent/CN117313880A/zh
Publication of CN117313880A publication Critical patent/CN117313880A/zh
Pending legal-status Critical Current

Links

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
    • G06N10/20Models of quantum computing, e.g. quantum circuits or universal quantum computers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N10/00Quantum computing, i.e. information processing based on quantum-mechanical phenomena
    • G06N10/40Physical realisations or architectures of quantum processors or components for manipulating qubits, e.g. qubit coupling or qubit control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N10/00Quantum computing, i.e. information processing based on quantum-mechanical phenomena
    • G06N10/80Quantum programming, e.g. interfaces, languages or software-development kits for creating or handling programs capable of running on quantum computers; Platforms for simulating or accessing quantum computers, e.g. cloud-based quantum computing
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Mathematical Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Data Mining & Analysis (AREA)
  • Condensed Matter Physics & Semiconductors (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Computational Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

本公开提供了一种量子电路处理方法、装置及电子设备,涉及量子计算技术领域,具体涉及量子电路技术领域。具体实现方案为:获取第一量子电路的第一有向无环图,以及获取第一有向无环图的搜索层级;从第一有向无环图的输出节点列表中选取目标输出节点,得到第一列表,第一列表中目标输出节点的数量与搜索层级匹配;基于第一有向无环图、第一列表和第一有向无环图的输入节点列表,确定包括目标可行解的第一集合;依次确定可在第二有向无环图中添加的目标有向边,得到第四列表;基于第三有向无环图、目标列表和第一量子电路的第一指令列表,对第一量子电路进行等效编译,得到第二量子电路的第二指令列表。

Description

量子电路处理方法、装置及电子设备
技术领域
本公开涉及量子计算技术领域,尤其涉及量子电路技术领域,具体涉及一种量子电路处理方法、装置及电子设备。
背景技术
量子计算利用量子世界中特有的运行规律,提供了一条全新的并且非常有前景的信息处理方式。在诸多特定问题上,量子算法可以带来超越经典算法的优势。例如,利用秀尔(Shor)算法,可以对大整数进行高效的分解,利用格罗弗(Grover)算法,可以更快的进行数据搜索。随着量子理论的发展,不断有新的量子算法被提出,如何高效的对这些算法进行模拟或者在真正的量子硬件上运行始终是一个重要的问题。
目前,量子算法的经典模拟或者真机运行主要受限于量子比特的数量。在经典模拟上,由于描述量子态的列向量的长度随对应比特数呈指数增长(例如一个n比特的量子态的列向量长度为2n),经典计算机很难模拟大规模的量子算法。受计算机内存和处理器能力的限制,现有的量子电路模拟方式最多能支持模拟几十个量子比特的算法。
发明内容
本公开提供了一种量子电路处理方法、装置及电子设备。
根据本公开的第一方面,提供了一种量子电路处理方法,包括:
获取第一量子电路的第一有向无环图,以及获取所述第一有向无环图的搜索层级;
从所述第一有向无环图的输出节点列表中选取目标输出节点,得到第一列表,所述第一列表中目标输出节点的数量与所述搜索层级匹配;
基于所述第一有向无环图、所述第一列表和所述第一有向无环图的输入节点列表,确定包括目标可行解的第一集合,所述目标可行解指示各目标输出节点可进行连接的输入节点;
针对每个目标可行解,依次确定可在第二有向无环图中添加的目标有向边,得到第四列表;所述目标有向边为第二列表中输出节点至第三列表中输入节点的有向边,所述第二有向无环图是在所述第一有向无环图中添加所述目标可行解指示的有向边得到,所述第二列表包括所述输出节点列表中除所述第一列表之外的其他输出节点,所述第三列表包括所述输入节点列表中除所述目标可行解指示的输入节点之外的其他输入节点;
基于第三有向无环图、目标列表和所述第一量子电路的第一指令列表,对所述第一量子电路进行等效编译,得到与所述第一量子电路等效的第二量子电路的第二指令列表,所述目标列表为各第五列表中长度最大的列表,所述第五列表包括一个第四列表和所述第四列表对应的目标可行解指示的有向边,所述第三有向无环图是在所述第一有向无环图中添加所述目标列表中的有向边得到。
根据本公开的第二方面,提供了一种量子电路处理装置,包括:
获取模块,用于获取第一量子电路的第一有向无环图,以及获取所述第一有向无环图的搜索层级;
选取模块,用于从所述第一有向无环图的输出节点列表中选取目标输出节点,得到第一列表,所述第一列表中目标输出节点的数量与所述搜索层级匹配;
第一确定模块,用于基于所述第一有向无环图、所述第一列表和所述第一有向无环图的输入节点列表,确定包括目标可行解的第一集合,所述目标可行解指示各目标输出节点可进行连接的输入节点;
第二确定模块,用于针对每个目标可行解,依次确定可在第二有向无环图中添加的目标有向边,得到第四列表;所述目标有向边为第二列表中输出节点至第三列表中输入节点的有向边,所述第二有向无环图是在所述第一有向无环图中添加所述目标可行解指示的有向边得到,所述第二列表包括所述输出节点列表中除所述第一列表之外的其他输出节点,所述第三列表包括所述输入节点列表中除所述目标可行解指示的输入节点之外的其他输入节点;
等效编译模块,用于基于第三有向无环图、目标列表和所述第一量子电路的第一指令列表,对所述第一量子电路进行等效编译,得到与所述第一量子电路等效的第二量子电路的第二指令列表,所述目标列表为各第五列表中长度最大的列表,所述第五列表包括一个第四列表和所述第四列表对应的目标可行解指示的有向边,所述第三有向无环图是在所述第一有向无环图中添加所述目标列表中的有向边得到。
根据本公开的第三方面,提供了一种电子设备,包括:
至少一个处理器;以及
与至少一个处理器通信连接的存储器;其中,
存储器存储有可被至少一个处理器执行的指令,该指令被至少一个处理器执行,以使至少一个处理器能够执行第一方面中的任一项方法。
根据本公开的第四方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,该计算机指令用于使计算机执行第一方面中的任一项方法。
根据本公开的第五方面,提供了一种计算机程序产品,包括计算机程序,该计算机程序在被处理器执行时实现第一方面中的任一项方法。
根据本公开的技术解决了相关技术中量子电路的经典模拟和真机运行比较难的问题,使得能够实现对大规模量子比特的量子电路进行经典模拟和真机运行,并且能够权衡量子电路处理的编译效果和运行复杂度,可以减少编译得到的动态量子电路所需的量子比特数,提升了灵活性。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本公开的限定。其中:
图1是根据本公开第一实施例的量子电路处理方法的流程示意图;
图2是一示例的静态量子电路的结构示意图;
图3是另一示例的静态量子电路的结构示意图;
图4是图3所示的静态量子电路转化为动态量子电路的结构示意图;
图5(a)是图3所示的静态量子电路对应的有向无环图的结构示意图;
图5(b)是添加有向边后的有向无环图的结构示意图;
图6是另一示例的静态量子电路的结构示意图;
图7是图6所示电路的有向无环图的结构示意图;
图8(a)是图6所示的静态量子电路的候选边矩阵示意图;
图8(b)是候选边矩阵的更新过程图之一;
图8(c)是候选边矩阵的更新过程图之二;
图9是添加候选有向边后的有向无环图的更新示意图;
图10是不同方案对最大割QAOA电路的编译效果比对示意图;
图11是不同方案对随机量子电路的可编译性因子比对示意图之一;
图12是不同方案对随机量子电路的可编译性因子比对示意图之二;
图13是根据本公开第二实施例的量子电路处理装置的结构示意图;
图14是用来实施本公开的实施例的示例电子设备的示意性框图。
具体实施方式
以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
第一实施例
如图1所示,本公开提供一种量子电路处理方法,包括如下步骤:
步骤S101:获取第一量子电路的第一有向无环图,以及获取所述第一有向无环图的搜索层级。
本实施例中,量子电路处理方法涉及量子计算技术领域,尤其涉及量子电路技术领域,其可以广泛应用于量子电路的经典模拟和真机运行场景下。本公开实施例的量子电路处理方法,可以由本公开实施例的量子电路处理装置执行。本公开实施例的量子电路处理装置可以配置在任意电子设备中,以执行本公开实施例的量子电路处理方法。
受计算机内存和处理器能力的限制,现有的量子电路模拟方式最多能支持模拟几十个量子比特的算法。比如,笔记本能模拟20-30个左右的量子比特,大型超级计算机和集群可以最多模拟30-40个左右的量子比特。在真机运行上,由于当前量子芯片的可扩展性问题尚未解决,导致量子计算机能提供的量子比特数非常有限。因此,量子电路优化是量子计算领域中的一个基本问题。
量子电路优化是通过一定的技术手段,可以将给定的量子电路进行简化,以降低其经典模拟和真机运行的要求,进而加速量子算法的研究和量子计算在实际场景下的落地。
而本实施例的量子电路处理可以为量子电路优化的处理,其目的在于通过对量子电路进行优化编译,可以使得编译得到的量子电路在量子比特数上对原量子电路进行大量简化。一方面,可以进一步提升量子算法经典模拟的规模,加强经典计算机对量子算法的验证能力,另一方面,也可以降低量子算法在真机运行上的比特数要求,弥补当前量子芯片可扩展性问题的不足。
更具体的,本实施例的目的是将给定的量子电路等效编译为动态量子电路,以减少量子电路的量子比特数量,降低其经典模拟和真机运行的要求。
其中,通过引入量子比特的中间电路测量以及在计算中将量子比特重置为其基态的能力,动态量子电路能够将经典通信和计算整合到量子电路中。这一特性将极大地增加在量子硬件上运行电路的多样性,并且对于纠错和容错量子计算的发展也至关重要。因此,动态量子电路有望成为未来许多量子应用的重要组成部分。在数学意义上和没有实验约束的情况下,静态和动态量子电路具有相同的计算能力,即任何可以用动态量子电路表示的问题也可以表示为静态问题,所以动态量子电路提供了权衡电路深度和宽度的可能性。
以下详细介绍量子电路模型。
量子电路模型是一种常用的量子计算模型。通过对初始量子态进行量子门操作完成量子态的演化,并通过量子测量提取计算结果。而量子电路图则表示了量子电路模型计算的全部过程。
图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,[0,1,2],None,None]表示在量子位1,2,3之间作用CCX门,其中,1,2均为控制位,3为受控位。
一个计算基下的测量表示为一个包含四个元素的指令[Measure,qubit,None,None]。例如,[Measure,2,None,None]表示对量子位2进行计算基下的测量。
在一些应用场景中,允许在量子电路的中间对某些量子比特进行测量,并在测量获得结果后将这些量子比特重置为零态,以供后续计算继续使用。包含了电路中间测量以及重置操作的量子电路称为动态量子电路。例如将图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)所示,添加有向边之后的有向无环图与编译后的动态量子电路相对应。
而本实施例的目的在于将静态量子电路的编译问题转化一个等价的图优化问题,并通过在静态量子电路的有向无环图中搜索输出节点至输入节点的有向边进行连接,以将静态量子电路编译为等价的动态量子电路。其中,连接的输出节点至输入节点的有向边越多,其等效编译的效果越好,即得到的动态量子电路的量子比特数越少。
在步骤S101中,第一量子电路为静态量子电路,第一有向无环图可以基于第一量子电路的第一指令列表确定。第一有向无环图包括第一指令列表中指令对应的节点和节点之间的有向边,节点之间的有向边用于表征第一指令列表中不同指令间的时序关系,且节点之间的各有向边构成的路径不包括有向环路。
在一可选实施方式中,可以对第一指令列表按照从左至右的指令排列顺序进行遍历,并获取第一指令列表中排序在当前遍历的指令之前的指令子列表和当前遍历的指令所作用的第一量子位;对指令子列表按照从右至左的指令排列顺序进行遍历,并获取所作用的量子位与第一量子位存在交集的第一目标指令;将第一目标指令的标识作为源节点,当前遍历的指令的标识作为目标节点,构建有向边;在第一指令列表遍历完成的情况下,基于所构建的有向边,获取第一有向无环图。
可选的,所述步骤S101具体包括:
对所述第一指令列表按照操作指令的排列顺序进行遍历;
将当前遍历的操作指令作为节点,并在第六列表不为空列表的情况下,添加所述第六列表中位于末尾的操作指令对应节点至当前遍历的操作指令对应节点的有向边;所述第六列表为当前遍历的操作指令所作用的量子位对应的列表;
将当前遍历的操作指令添加至所述第六列表的末尾,并在所述第一指令列表遍历完成的情况下,得到所述第一有向无环图。
其具体过程如下:
输入:静态量子电路的指令列表Static_Circuit,宽度n;
输出:第一有向无环图Digraph,输入节点列表Inputs和输出节点列表Outputs。
步骤1:初始化一个空的有向无环图Digraph;
步骤2:初始化一个长度为n的列表Causal_Lists,其中每个元素为一个空列表;
步骤3:初始化两个长度为n的列表Inputs和Outputs,其中每个元素初始化为None;
步骤4:对Static_Circuit进行循环遍历,设当前被遍历的元素为Instruction,其编号索引为Index:
步骤4.1:将Index作为节点,添加至有向无环图Digraph中;
步骤4.2:如果Instruction为量子比特的重置操作,则获取其作用的量子比特qubit,将Inputs列表索引为qubit的值修改为Index;
步骤4.3:如果Instruction为量子比特的测量操作,则获取其作用的量子比特qubit,并将Outputs列表索引为qubit的值修改为Index;
步骤4.4:获取Instruction指令中的qubit值,并对其进行循环,设被循环的元素为q,查找列表Causal_Lists[q](即第六列表)的最后一个元素,记录为PreInstruction;如果PreInstruction不为空元素,则向有向无环图Digraph中添加从PreInstruction指向Instruction的有向边;将Index添加至列表Causal_Lists[q]的末端;
步骤5:返回Digraph,Inputs和Outputs作为输出。
如此,通过创建每个量子位对应的列表,用于按照顺序存储其对应的操作指令,这样可以非常方便查找到每个操作指令关联的前序操作指令,并构建有向边,从而可以非常快速且高速地构建第一有向无环图。
搜索层级用于指示采用暴力搜索方式进行可行解搜索的目标输出节点的数量,其中,可行解指的是在有向无环图中添加约束条件下输出节点至输入节点的有向边的一种连接方式。约束条件包括:
1)为了使得整个图依然符合电路指令的时序关系,需要保证在加入更多有向边之后,整个图依然是无环的,需要注意的是,图中有向边的指向表示指令的时序关系,环状结构将会破坏这种关系,也即添加有向边之后,图中依然不能存在环状结构的路径(称之为有向环路);
2)每个输出节点最多只能和一个输入节点相连,以表示输出节点测量后,由所指向的输入节点继续在该量子比特上执行操作;
3)不同输出节点不能和同一个输入节点相连。
暴力搜索方式指的是通过枚举方式枚举出有向无环图中输出节点至输入节点的有向边的所有可行解,搜索层级可以用整数表示,也可以用百分数表示,这里不进行具体限定。
搜索层级可以预设,也可以由用户输入,亦或是基于相关信息如第一量子电路的量子比特数量确定,这里不进行具体限定。
步骤S102:从所述第一有向无环图的输出节点列表中选取目标输出节点,得到第一列表,所述第一列表中目标输出节点的数量与所述搜索层级匹配。
可以在输出节点列表中任意选取目标输出节点,也可以利用第一有向无环图中输出节点至输入节点的可连接性,从输出节点列表中选取目标输出节点,比如,从输出节点列表中选取连接性最好或最差的输出节点作为目标输出节点。输出节点的连接性好坏可以由与之连接的输入节点的数量来确定,可连接的输入节点数量越多,则输出节点的连接性越好,可连接的输入节点数量越少,则输出节点的连接性越差。
其中,第一列表中目标输出节点的数量与搜索层级匹配,比如,目标输出节点的数量与搜索层级相等,或者在搜索层级用百分数表示的情况下,目标输出节点的数量是搜索层级乘以输出节点数量得到。
步骤S103:基于所述第一有向无环图、所述第一列表和所述第一有向无环图的输入节点列表,确定包括目标可行解的第一集合,所述目标可行解指示各目标输出节点可进行连接的输入节点。
可以基于第一有向无环图、第一列表和输入节点列表,采用暴力搜索方式枚举在第一有向无环图中各目标输出节点可进行连接的输入节点的所有目标可行解,得到第一集合。
步骤S104:针对每个目标可行解,依次确定可在第二有向无环图中添加的目标有向边,得到第四列表;所述目标有向边为第二列表中输出节点至第三列表中输入节点的有向边,所述第二有向无环图是在所述第一有向无环图中添加所述目标可行解指示的有向边得到,所述第二列表包括所述输出节点列表中除所述第一列表之外的其他输出节点,所述第三列表包括所述输入节点列表中除所述目标可行解指示的输入节点之外的其他输入节点。
针对每个目标可行解,将该目标可行解指示的有向边添加至第一有向无环图中,得到第二有向无环图。同时,剔除掉输出节点列表中的目标输出节点,得到第二列表,以及剔除掉输入节点列表中目标可行解指示已连接的输出节点,得到第三列表。
之后,基于第二有向无环图、第二列表和第三列表,采用启发式方式,按照预设规则依次确定第二列表中输出节点至第三列表中输入节点的目标有向边,并依次添加至第二有向无环图中,直至第二有向无环图中无可添加的输出节点至输入节点的有向边,得到新的有向无环图。
其中,预设规则可以为:优先选择第二列表中可连接输入节点数最少的输出节点,目标有向边为选择的输出节点与第三列表中一输入节点的有向边。预设规则也可以为:对第二有向无环图的候选有向边进行评分,选取评分值最大的候选有向边。预设规则也可以为其他规则,这里不进行具体限定。
相应的,针对每个目标可行解,可以确定一个第四列表。
步骤S105:基于第三有向无环图、目标列表和所述第一量子电路的第一指令列表,对所述第一量子电路进行等效编译,得到与所述第一量子电路等效的第二量子电路的第二指令列表,所述目标列表为各第五列表中长度最大的列表,所述第五列表包括一个第四列表和所述第四列表对应的目标可行解指示的有向边,所述第三有向无环图是在所述第一有向无环图中添加所述目标列表中的有向边得到。
可以将针对目标可行解所确定的第四列表与该目标可行解指示的有向边进行合并,得到第五列表,相应的,目标列表为各第五列表中长度最大的列表,其对应的是采用暴力搜索方式和启发式方式所确定的可在第一有向无环图中添加数量最多的有向边的列表。
在第一有向无环图中添加目标列表中输出节点至输入节点的有向边得到第三有向无环图之后,可以基于第三有向无环图,确定各个节点之间的时序关系,并基于该时序关系,对第一指令列表进行重排序,之后,可以利用目标列表中输入节点与输出节点之间的关系,将测量指令之后作用在其他量子比特(即与输出节点有向连接的输入节点对应指令所作用的量子比特)的指令,等效编译成作用到该测量指令所作用的量子比特上,如此,可以实现对第一量子电路的等效编译,得到与第一量子电路等效的第二量子电路的第二指令列表,第二量子电路中所需要的量子比特比第一量子电路中所需要的量子比特少。
本实施例中,通过基于搜索层级在指定输出节点的子集上应用暴力搜索,即穷举该子集内输出节点所有可能的连接方式,对于每一种可能的连接方式,再通过启发式方式获取可以添加到剩余输出节点上的边。之后,选择所有编译方案中可添加至有向无环图的数量最多的有向边的连接方式进行连接,基于更新的有向无环图进行静态量子电路的等效编译。搜索层级刻画了暴力搜索方式和启发式方式之间的层级变化,提供了在等效编译效果与编译时间之间权衡的机会,可以提升量子电路等效编译的效果,可以减少编译得到的动态量子电路所需的量子比特数,同时提升了可扩展性,并且用户可以在等效编译效果与编译时间之间进行权衡,提升了灵活性。
可选的,所述步骤S105具体包括:
基于所述第三有向无环图,对所述第一指令列表中的指令进行重排序,得到第三指令列表;
基于所述目标列表,对所述第三指令列表中的指令进行等效编译,得到所述第二指令列表。
为将第三有向无环图进一步编译为动态量子电路的指令列表,可以通过对第三有向无环图进行拓扑排序来获得一个可行的动态量子电路指令执行顺序。即获取第三有向无环图对应的拓扑排序,基于该拓扑排序,对第一指令列表中的指令进行重排序,得到第三指令列表。
一个有向无环图的拓扑排序指的是图中节点的一个线性排列,使得对于图中所有有向边(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列表作为输出。
如此,可以有效利用第三有向无环图,简便地实现对第一量子电路进行等效编译。
可选的,所述步骤S101具体包括:
基于目标信息,确定所述搜索层级;
所述目标信息包括以下至少一项:
所述第一量子电路的量子比特数量,所述搜索层级与所述第一量子电路的量子比特数量呈反比;
所述第二量子电路的量子比特数量,所述搜索层级与所述第二量子电路的量子比特数量呈反比;
所述第一量子电路的预设编译时间,所述搜索层级与所述预设编译时间呈正比。
由于编译复杂度是随着搜索层级按指数进行增长的,因此针对量子比特数较少(比如几十个量子比特)的量子电路,可以使用较大的搜索层级;针对量子比特数较多的量子电路(例如上百个量子比特),则可以使用较小的搜索层级。而搜索层级越大,编译效果越好(即编译得到的动态量子电路所需的量子比特数越少),因此,若所需的动态量子电路的量子比特数较少,则可以使用较大的搜索层级。
另外,也可以根据实际需要,搜索层级从1开始逐渐提高,直到达到需要的编译效果(即编译得到的动态量子电路的量子比特数达到相应数量),或者达到所能承受的预设编译时间的上限。
在目标信息包括多项的情况下,可以将各项所确定的搜索层级进行权重加和,或选取其中最小的搜索层级作为最终确定的搜索层级。
如此,可以基于目标信息自动确定搜索层级,实现量子电路的等效编译效果和编译时间之间的权衡。
可选的,所述方法还包括:
基于所述第一量子电路的量子比特数量和所述第二量子电路的量子比特数量,确定可编译性因子,所述可编译性因子指示所述第一量子电路的编译程度;
基于所述可编译性因子,调整所述搜索层级。
在一可选实施方式中,可编译性因子的具体定义如下式(1)所示。
其中,n是输入静态量子电路即第一量子电路的宽度,n'是输出动态量子电路即第二量子电路的宽度,可以看出,可编译性因子b值越高,表示电路编译效果越好,即第一量子电路的编译程度越高,可编译性因子b值越低,表示电路编译效果越差,即第一量子电路的编译程度越低。
当可编译性因子指示第一量子电路的编译程度低,如可编译性因子低于预设阈值时,可以增大搜索层级,重新对第一量子电路进行等效编译,以提高第一量子电路的编译程度。如此,在保证编译时间的同时,可以提高第一量子电路的编译效果,即减少编译得到的动态量子电路所需的量子比特数。
可选的,所述目标输出节点可连接的输入节点数量小于或等于所述输出节点列表中其他输出节点可连接的输入节点数量。
可以利用第一有向无环图中输出节点至输入节点的可连接性,从输出节点列表中选取目标输出节点。具体的,可以基于第一有向无环图的可连接信息,从输出节点列表中选取目标输出节点。其中,可连接信息可以用候选边矩阵表示。
由于有向无环图条件的限制,并非任意的从输出节点指向输入节点的边都可以被添加到图中。事实上,在获得静态量子电路的图表示后,可以通过图搜索算法获得不会直接引入环结构的所有边(以下称为候选有向边),如果在静态量子电路的有向无环图中不存在索引为i的输入节点到索引为j的输出节点之间的路径(即输入节点i不可达输出节点j;反之则称可达),则连接索引为j的输出节点与索引为i的输入节点便不会直接在图中引入环,因此这样的边是候选有向边。假设一个静态量子电路中包含n个输入节点m个输出节点,可以通过一个m×n的矩阵来保存所有候选有向边,称为候选边矩阵。其中,第j行对应索引为j的输出节点,而第i列则对应索引为i的输入节点,而矩阵元(j,i)=1表示索引为j的输出节点到索引为i的输入节点之间的边是一条候选有向边;反之矩阵元则为0。其中,矩阵索引可以从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作为输出。
在得到候选边矩阵C的情况下,可以计算侯选边矩阵C的每行和,将每行和中前L小的非零元素对应的输出节点作为目标输出节点,相应的,目标输出节点可连接的输入节点数量小于或等于所述输出节点列表中其他输出节点可连接的输入节点数量。其中,L为搜索层级。
如此,可以实现目标输出节点的选取,且可以降低量子电路的编译时间。
可选的,所述步骤S103具体包括:
针对所述第一列表中每个目标输出节点,获取所述目标输出节点对应的第二集合,所述第二集合包括所述输入节点列表中所述目标输出节点可进行连接的输入节点;
将各目标输出节点对应的第二集合进行笛卡尔积,得到包括目标可行解的第一集合,所述目标可行解中用于指示输入节点的标识不可重复。
如此,可以通过暴力搜索方式实现针对第一列表中目标输出节点所有可能的连接方式。另外,可以对输出节点的连接方式进行暴力搜索,暴力搜索也可以针对输入节点进行。
可选的,所述依次确定可在第二有向无环图中添加的目标有向边,得到第四列表,包括:
从所述第二有向无环图的候选有向边中依次确定目标有向边,并依次添加所述目标有向边,直至添加所述目标有向边后得到的有向无环图中无可添加的输出节点至输入节点的有向边,得到所述第四列表;
其中,所述目标有向边为基于所述第二有向无环图的候选有向边中评分值最大的候选有向边,所述评分值用于表征第四有向无环图中输出节点到输入节点可连接的有向边数量中的最大值,所述第四有向无环图是在所述第二有向无环图中添加候选有向边后得到的。
可以采用启发式方式从第二有向无环图的候选有向边中依次确定目标有向边。其中,启发式方式中,可以采用最大候选边贪心策略来确定目标有向边。
贪心策略是通过在每一步根据一些预定义的评分标准选择局部最优的解,从而期望获得全局最优解。将该策略应用于量子电路等效编译,希望添加一条候选有向边后,后续可供选择的候选有向边数目尽可能地多,因此可以将后续候选有向边数目的多少作为每一步的评分标准。
在某个确定目标有向边的轮次中,初始化一个与候选边矩阵大小相同的0矩阵,称为评分矩阵,该矩阵用于存储该轮次所有候选有向边的评分。通过循环遍历该轮次中的所有候选有向边,对于遍历到的某条候选有向边,将该其暂时地添加到图中,之后需要更新候选边矩阵。
设当前遍历到的候选边对应的矩阵元为(u,v),并设在添加该候选有向边之前,所有可达输出节点u的输入节点构成的集合为Ru,而输入节点v可达的所有输出节点构成的集合为Tv,则添加候选有向边(u,v)后,Ru中的任意输入节点均可达Tv中的任意输出节点,因此所有的边(t,r)均不再是候选有向边,其中t∈Tv,r∈Ru,相应的矩阵元需要更新为0,同时由于一个输入/输出节点最多添加一条边,因此还需将候选边矩阵第u行和第v列的所有矩阵元更新为0。之后计算更新后的候选边矩阵中矩阵元1的数目,并将其作为该候选有向边的评分存储在评分矩阵与该候选有向边对应的矩阵元中。在对某一轮次的所有候选有向边评分完成后,选择评分矩阵中分数最高的矩阵元,其对应的候选边即为本轮添加到图中的边,更新候选边矩阵,并继续下一轮循环。
图6是另一示例的静态量子电路的结构示意图,图7是图6所示电路的有向无环图的结构示意图。图7中,忽略了量子电路中间操作对应的节点,仅保留了输入/输出节点,而从输入节点出发经过中间节点到达输出节点的路径被简化为了从输入节点到输出节点的有向边。
其初始的候选边矩阵如图8(a)所示。设其行、列索引分别表示为{t0,…,t4}和{r0,…,r4}。在该示例中,设当前遍历到的候选有向边为(t3,r1)(图8(a)中框801标记的矩阵元)。添加该候选有向边前,可达输出节点t3的所有输入节点构成的集合R3={r0,r2,r3,r4},而输入节点r1可达的所有输出节点构成的集合为T1={t1}。因此在添加候选有向边(t3,r1)后,T1×R3={(t1,r0),(t1,r2),(t1,r3),(t1,r4)}对应的边将不再是候选有向边。
如图9所示,为方便展示,图中忽略了其他输出节点的候选边,虚线901标记的边为当前遍历到的候选有向边(t3,r1),实线902标记的边则为添加候选有向边(t3,r1)之后,应该从候选边矩阵中删除的部分候选有向边。相应的矩阵元应更新为0,如图8(b)所示(图8(b)中框802标记的矩阵元)。
同时,候选边矩阵的第3行和第1列的所有矩阵元也应更新为0,如图8(c)所示(图8(c)中框803标记的矩阵元),更新后的候选边矩阵如图8(c)所示。
采用启发式方式依次确定可在第二有向无环图中添加的目标有向边的具体过程如下:
输入:静态量子电路对应的有向无环图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作为输出。
如此,通过启发式方式,并利用最大候选边贪心策略来依次确定目标有向边,直至第二有向无环图中无可添加的输出节点至输入节点的有向边,在提高有向边搜索效率的同时,可以保证有向边搜索的优越性。
可选的,有向无环图的可连接信息用矩阵表示,所述可连接信息用于表征有向无环图中各输出节点到输入节点的可连接性,所述候选有向边的评分值是基于第一矩阵中的非零元素和加上1得到的,所述第一矩阵表示所述第四有向无环图的可连接信息。
评分规则为:第一矩阵中的非零元素和加上1。选择更新后候选边矩阵的非零元素和加1作为评分,可以为后续操作留出更大的选择空间。在数值实验过程中,该评分规则的贪心策略的编译效果相对于相关技术有显著提升。
在对某条候选有向边进行评分时,实际评分为第一矩阵中的非零元素和加上1,其原因是当非零元素和sum(Ci,j)=0时,需要在评分矩阵中将该候选有向边(其评分为1)与非候选有向边(其评分为0)区分开来。
可选的,从所述第二有向无环图的候选有向边中确定一条目标有向边,包括:
在所述第二有向无环图的候选有向边中存在至少两个评分值最大的候选有向边的情况下,随机从评分值最大的候选有向边中选取一条目标有向边。
当存在某一循环轮次中有多条候选有向边同时满足评分最高的情况下,选择过程中可以引入一定的随机性。即当有多条候选有向边满足条件的情况下,可以随机从中选择一条作为该轮次添加的目标有向边。同时为了降低随机性带来的不确定性,可以对输入的静态量子电路进行多次编译,并选择编译效果最好的作为输出结果。
相对于按照确定性的规则选择该轮次添加的目标有向边(如固定选取所有满足条件的候选有向边中行索引和列索引之和最小的候选有向边作为添加的目标有向边),由于输入量子电路中量子比特索引的任何重新排列都会使得候选边在矩阵中的行、列索引发生改变,因此随机选择候选有向边可以避免依赖于量子比特的排列方式的限制,进一步提高量子电路处理的灵活性。
一示例中,基于搜索层级进行量子电路等效编译的具体流程如下:
输入:静态量子电路对应的有向无环图Digraph,输入节点列表Inputs,输出节点列表Outputs,侯选边矩阵C以及搜索层级L;
输出:添加了有向边后的有向无环图Modified_Digraph,添加到有向无环图中的所有候选有向边构成的列表Added_Edges。
步骤1:初始化五个空列表Max_Edges,Candidate_Num,Idx_Outputs,Idx_Inputs和Search_Space;
步骤2:计算侯选边矩阵C的每行和,将结果记录在Candidate_Num中;
步骤3:将Candidate_Num中前L小的非零元素的索引记录在Idx_Outputs(即第一列表)中;
步骤4:对Idx_Outputs进行循环遍历,设当前遍历到的元素为Index;
步骤4.1:将矩阵C的第Index行的所有非0元素的列索引记录为集合R(即第二集合);
步骤4.2:向R中添加一个元素None,并将R添加到Idx_Inputs列表的末端;
步骤5:将Idx_Inputs列表中所有集合的笛卡尔积记录在Search_Space中;
步骤6:将Search_Space中所有存在重复项(除了None之外)的元素删除;
步骤7:对Search_Space(即包括目标可行解的第一集合)进行循环遍历,假设当前遍历到的元素为Solution(即目标可行解);
步骤7.1:初始化一个空列表Added_Edges;
步骤7.2:初始化两个列表Inputs_Copy(即第三列表)和Outputs_Copy(即第二列表)为Inputs和Outputs;
步骤7.3:对i=0到L-1进行循环;如果Solution[i]不为None,则将有向边(Outputs[Idx_Outputs[i]],Inputs[Solution[i]])添加到Added_Edges中;将Outputs_Copy[Idx_Outputs[i]]与Inputs_Copy[Solution[i]]分别设置为None;
步骤7.4:将Added_Edges添加到Digraph中后的图记为Modified_Digraph(即第二有向无环图);
步骤7.5:如果Modified_Digraph为无环图;将Modified_Digraph,Inputs_Copy和Outputs_Copy作为输入,采用启发式方式获取可以继续添加的有向边列表Edges(即第四列表);将Edges列表添加到Added_Edges的末端;如果Added_Edges列表的长度大于Max_Edges列表,则将Max_Edges列表更新为Added_Edges列表;
步骤8:将Max_Edges(即目标列表)中的所有有向边添加到Digraph中,将更新后的图记为Max_Digraph(即第三有向无环图);
步骤9:返回Max_Digraph和Max_Edges作为输出。
之后,基于第三有向无环图、目标列表和第一量子电路的第一指令列表,对第一量子电路进行等效编译,得到与第一量子电路等效的第二量子电路的第二指令列表。
考虑到搜索空间是第一列表中所有目标输出节点的可连接输入节点集合的笛卡尔积,因此获取可连接输入节点最少的L个目标输出节点,从而大大缩小了搜索空间。
对于第一列表中的每一个目标输出节点,其可连接的输入节点集合中添加了一个None元素,表示该目标输出节点不连接任何输入节点的情况。
为了展示本实施例的等效编译效果相对于相关技术的优势,通过一些电路编译的数值实验对比了不同方案对量子电路的等效编译效果。
可以对比本实施例的量子电路编译方案,以及相关技术1和相关技术2对随机生成的3-正则图上的最大割QAOA电路的编译效果。对于每一个初始电路宽度,可以随机生成20个不同的3-正则图以及其对应的最大割QAOA电路,并分别用不同方案进行编译。
图10中的每个数据点是20个随机电路编译后宽度的平均值,可以看出,本实施例的技术方案的编译效果(曲线1001表示)在编译效果上相较于相关技术1和相关技术2的编译效果(分别为曲线1002和曲线1003表示)均有提升,即编译得到的量子电路比特数相对于相关技术有所减少。
考虑到最大割QAOA电路均有较强的结构性,为了展示对更为一般的电路编译效果,可以对比不同方案对随机量子电路的编译效果。在这一部分中,分别固定电路中双量子比特门数m和量子比特数n的比例为{1,1.5,2,2.5},从10到70中随机选择一个输入量子电路宽度,并通过随机生成双量子比特门的方式构建量子电路,再利用不同方案对其进行编译。对于每个双量子比特门和量子比特数的比例,测试了200个不同的电路实例。可以用可编译性因子(电路编译效果的评价指标)表示某个方案对电路编译效果。其中,可以采用上式(1)来定义可编译性因子。
图11和图12分别展示了不同方案对随机量子电路的可编译性因子的对比,图11和图12的横轴分别为采用相关技术1和相关技术2得到的随机量子电路的可编译性因子,纵轴则为采用本实施例的技术方案得到的随机量子电路的可编译性因子。
图11和图12中的黑色辅助线表示y=x,显然,对于大部分随机量子电路,数据点均落在辅助线之上。由此可见,本实施例的技术方案对随机电路的编译效果优于相关技术1和相关技术2对随机电路的编译效果。特别地,如数据点1101所示,对于m/n较小的情况,随机量子电路本身可编译的程度较大,可以减少更多的量子比特数,本实施例的技术方案对其进行编译的效果更好。
第二实施例
如图13所示,本公开提供一种量子电路处理装置1300,包括:
获取模块1301,用于获取第一量子电路的第一有向无环图,以及获取所述第一有向无环图的搜索层级;
选取模块1302,用于从所述第一有向无环图的输出节点列表中选取目标输出节点,得到第一列表,所述第一列表中目标输出节点的数量与所述搜索层级匹配;
第一确定模块1303,用于基于所述第一有向无环图、所述第一列表和所述第一有向无环图的输入节点列表,确定包括目标可行解的第一集合,所述目标可行解指示各目标输出节点可进行连接的输入节点;
第二确定模块1304,用于针对每个目标可行解,依次确定可在第二有向无环图中添加的目标有向边,得到第四列表;所述目标有向边为第二列表中输出节点至第三列表中输入节点的有向边,所述第二有向无环图是在所述第一有向无环图中添加所述目标可行解指示的有向边得到,所述第二列表包括所述输出节点列表中除所述第一列表之外的其他输出节点,所述第三列表包括所述输入节点列表中除所述目标可行解指示的输入节点之外的其他输入节点;
等效编译模块1305,用于基于第三有向无环图、目标列表和所述第一量子电路的第一指令列表,对所述第一量子电路进行等效编译,得到与所述第一量子电路等效的第二量子电路的第二指令列表,所述目标列表为各第五列表中长度最大的列表,所述第五列表包括一个第四列表和所述第四列表对应的目标可行解指示的有向边,所述第三有向无环图是在所述第一有向无环图中添加所述目标列表中的有向边得到。
可选的,所述获取模块1301,具体用于:
基于目标信息,确定所述搜索层级;
所述目标信息包括以下至少一项:
所述第一量子电路的量子比特数量,所述搜索层级与所述第一量子电路的量子比特数量呈反比;
所述第二量子电路的量子比特数量,所述搜索层级与所述第二量子电路的量子比特数量呈反比;
所述第一量子电路的预设编译时间,所述搜索层级与所述预设编译时间呈正比。
可选的,所述装置还包括:
第三确定模块,用于基于所述第一量子电路的量子比特数量和所述第二量子电路的量子比特数量,确定可编译性因子,所述可编译性因子指示所述第一量子电路的编译程度;
调整模块,用于基于所述可编译性因子,调整所述搜索层级。
可选的,所述目标输出节点可连接的输入节点数量小于或等于所述输出节点列表中其他输出节点可连接的输入节点数量。
可选的,所述获取模块1301,具体用于:
对所述第一指令列表按照操作指令的排列顺序进行遍历;
将当前遍历的操作指令作为节点,并在第六列表不为空列表的情况下,添加所述第六列表中位于末尾的操作指令对应节点至当前遍历的操作指令对应节点的有向边;所述第六列表为当前遍历的操作指令所作用的量子位对应的列表;
将当前遍历的操作指令添加至所述第六列表的末尾,并在所述第一指令列表遍历完成的情况下,得到所述第一有向无环图。
可选的,所述第一确定模块1303,具体用于:
针对所述第一列表中每个目标输出节点,获取所述目标输出节点对应的第二集合,所述第二集合包括所述输入节点列表中所述目标输出节点可进行连接的输入节点;
将各目标输出节点对应的第二集合进行笛卡尔积,得到包括目标可行解的第一集合,所述目标可行解中用于指示输入节点的标识不可重复。
可选的,所述第二确定模块1304,具体用于:
从所述第二有向无环图的候选有向边中依次确定目标有向边,并依次添加所述目标有向边,直至添加所述目标有向边后得到的有向无环图中无可添加的输出节点至输入节点的有向边,得到所述第四列表;
其中,所述目标有向边为基于所述第二有向无环图的候选有向边中评分值最大的候选有向边,所述评分值用于表征第四有向无环图中输出节点到输入节点可连接的有向边数量中的最大值,所述第四有向无环图是在所述第二有向无环图中添加候选有向边后得到的。
可选的,有向无环图的可连接信息用矩阵表示,所述可连接信息用于表征有向无环图中各输出节点到输入节点的可连接性,所述候选有向边的评分值是基于第一矩阵中的非零元素和加上1得到的,所述第一矩阵表示所述第四有向无环图的可连接信息。
可选的,所述第二确定模块1304,还用于:
在所述第二有向无环图的候选有向边中存在至少两个评分值最大的候选有向边的情况下,随机从评分值最大的候选有向边中选取一条目标有向边。
本公开提供的量子电路处理装置1300能够实现量子电路处理方法实施例实现的各个过程,且能够达到相同的有益效果,为避免重复,这里不再赘述。
本公开的技术方案中,所涉及的用户个人信息的收集、存储、使用、加工、传输、提供和公开等处理,均符合相关法律法规的规定,且不违背公序良俗。
根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
图14示出了可以用来实施本公开的实施例的示例电子设备的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图14所示,设备1400包括计算单元1401,其可以根据存储在只读存储器(ROM)1402中的计算机程序或者从存储单元1408加载到随机访问存储器(RAM)1403中的计算机程序,来执行各种适当的动作和处理。在RAM 1403中,还可存储设备1400操作所需的各种程序和数据。计算单元1401、ROM 1402以及RAM 1403通过总线1404彼此相连。输入/输出(I/O)接口1405也连接至总线1404。
设备1400中的多个部件连接至I/O接口1405,包括:输入单元1406,例如键盘、鼠标等;输出单元1407,例如各种类型的显示器、扬声器等;存储单元1408,例如磁盘、光盘等;以及通信单元1409,例如网卡、调制解调器、无线通信收发机等。通信单元1409允许设备1400通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元1401可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元1401的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元1401执行上文所描述的各个方法和处理,例如量子电路处理方法。例如,在一些实施例中,量子电路处理方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元1408。在一些实施例中,计算机程序的部分或者全部可以经由ROM 1402和/或通信单元1409而被载入和/或安装到设备1400上。当计算机程序加载到RAM 1403并由计算单元1401执行时,可以执行上文描述的量子电路处理方法的一个或多个步骤。备选地,在其他实施例中,计算单元1401可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行量子电路处理方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,也可以为分布式系统的服务器,或者是结合了区块链的服务器。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。

Claims (21)

1.一种量子电路处理方法,包括:
获取第一量子电路的第一有向无环图,以及获取所述第一有向无环图的搜索层级;
从所述第一有向无环图的输出节点列表中选取目标输出节点,得到第一列表,所述第一列表中目标输出节点的数量与所述搜索层级匹配;
基于所述第一有向无环图、所述第一列表和所述第一有向无环图的输入节点列表,确定包括目标可行解的第一集合,所述目标可行解指示各目标输出节点可进行连接的输入节点;
针对每个目标可行解,依次确定可在第二有向无环图中添加的目标有向边,得到第四列表;所述目标有向边为第二列表中输出节点至第三列表中输入节点的有向边,所述第二有向无环图是在所述第一有向无环图中添加所述目标可行解指示的有向边得到,所述第二列表包括所述输出节点列表中除所述第一列表之外的其他输出节点,所述第三列表包括所述输入节点列表中除所述目标可行解指示的输入节点之外的其他输入节点;
基于第三有向无环图、目标列表和所述第一量子电路的第一指令列表,对所述第一量子电路进行等效编译,得到与所述第一量子电路等效的第二量子电路的第二指令列表,所述目标列表为各第五列表中长度最大的列表,所述第五列表包括一个第四列表和所述第四列表对应的目标可行解指示的有向边,所述第三有向无环图是在所述第一有向无环图中添加所述目标列表中的有向边得到。
2.根据权利要求1所述的方法,其中,所述获取所述第一有向无环图的搜索层级,包括:
基于目标信息,确定所述搜索层级;
所述目标信息包括以下至少一项:
所述第一量子电路的量子比特数量,所述搜索层级与所述第一量子电路的量子比特数量呈反比;
所述第二量子电路的量子比特数量,所述搜索层级与所述第二量子电路的量子比特数量呈反比;
所述第一量子电路的预设编译时间,所述搜索层级与所述预设编译时间呈正比。
3.根据权利要求1所述的方法,还包括:
基于所述第一量子电路的量子比特数量和所述第二量子电路的量子比特数量,确定可编译性因子,所述可编译性因子指示所述第一量子电路的编译程度;
基于所述可编译性因子,调整所述搜索层级。
4.根据权利要求1所述的方法,其中,所述目标输出节点可连接的输入节点数量小于或等于所述输出节点列表中其他输出节点可连接的输入节点数量。
5.根据权利要求1所述的方法,其中,所述获取第一量子电路的第一有向无环图,包括:
对所述第一指令列表按照操作指令的排列顺序进行遍历;
将当前遍历的操作指令作为节点,并在第六列表不为空列表的情况下,添加所述第六列表中位于末尾的操作指令对应节点至当前遍历的操作指令对应节点的有向边;所述第六列表为当前遍历的操作指令所作用的量子位对应的列表;
将当前遍历的操作指令添加至所述第六列表的末尾,并在所述第一指令列表遍历完成的情况下,得到所述第一有向无环图。
6.根据权利要求1所述的方法,其中,所述基于所述第一有向无环图、所述第一列表和所述第一有向无环图的输入节点列表,确定包括目标可行解的第一集合,包括:
针对所述第一列表中每个目标输出节点,获取所述目标输出节点对应的第二集合,所述第二集合包括所述输入节点列表中所述目标输出节点可进行连接的输入节点;
将各目标输出节点对应的第二集合进行笛卡尔积,得到包括目标可行解的第一集合,所述目标可行解中用于指示输入节点的标识不可重复。
7.根据权利要求1所述的方法,其中,所述依次确定可在第二有向无环图中添加的目标有向边,得到第四列表,包括:
从所述第二有向无环图的候选有向边中依次确定目标有向边,并依次添加所述目标有向边,直至添加所述目标有向边后得到的有向无环图中无可添加的输出节点至输入节点的有向边,得到所述第四列表;
其中,所述目标有向边为基于所述第二有向无环图的候选有向边中评分值最大的候选有向边,所述评分值用于表征第四有向无环图中输出节点到输入节点可连接的有向边数量中的最大值,所述第四有向无环图是在所述第二有向无环图中添加候选有向边后得到的。
8.根据权利要求7所述的方法,其中,有向无环图的可连接信息用矩阵表示,所述可连接信息用于表征有向无环图中各输出节点到输入节点的可连接性,所述候选有向边的评分值是基于第一矩阵中的非零元素和加上1得到的,所述第一矩阵表示所述第四有向无环图的可连接信息。
9.根据权利要求7所述的方法,其中,从所述第二有向无环图的候选有向边中确定一条目标有向边,包括:
在所述第二有向无环图的候选有向边中存在至少两个评分值最大的候选有向边的情况下,随机从评分值最大的候选有向边中选取一条目标有向边。
10.一种量子电路处理装置,包括:
获取模块,用于获取第一量子电路的第一有向无环图,以及获取所述第一有向无环图的搜索层级;
选取模块,用于从所述第一有向无环图的输出节点列表中选取目标输出节点,得到第一列表,所述第一列表中目标输出节点的数量与所述搜索层级匹配;
第一确定模块,用于基于所述第一有向无环图、所述第一列表和所述第一有向无环图的输入节点列表,确定包括目标可行解的第一集合,所述目标可行解指示各目标输出节点可进行连接的输入节点;
第二确定模块,用于针对每个目标可行解,依次确定可在第二有向无环图中添加的目标有向边,得到第四列表;所述目标有向边为第二列表中输出节点至第三列表中输入节点的有向边,所述第二有向无环图是在所述第一有向无环图中添加所述目标可行解指示的有向边得到,所述第二列表包括所述输出节点列表中除所述第一列表之外的其他输出节点,所述第三列表包括所述输入节点列表中除所述目标可行解指示的输入节点之外的其他输入节点;
等效编译模块,用于基于第三有向无环图、目标列表和所述第一量子电路的第一指令列表,对所述第一量子电路进行等效编译,得到与所述第一量子电路等效的第二量子电路的第二指令列表,所述目标列表为各第五列表中长度最大的列表,所述第五列表包括一个第四列表和所述第四列表对应的目标可行解指示的有向边,所述第三有向无环图是在所述第一有向无环图中添加所述目标列表中的有向边得到。
11.根据权利要求10所述的装置,其中,所述获取模块,具体用于:
基于目标信息,确定所述搜索层级;
所述目标信息包括以下至少一项:
所述第一量子电路的量子比特数量,所述搜索层级与所述第一量子电路的量子比特数量呈反比;
所述第二量子电路的量子比特数量,所述搜索层级与所述第二量子电路的量子比特数量呈反比;
所述第一量子电路的预设编译时间,所述搜索层级与所述预设编译时间呈正比。
12.根据权利要求10所述的装置,还包括:
第三确定模块,用于基于所述第一量子电路的量子比特数量和所述第二量子电路的量子比特数量,确定可编译性因子,所述可编译性因子指示所述第一量子电路的编译程度;
调整模块,用于基于所述可编译性因子,调整所述搜索层级。
13.根据权利要求10所述的装置,其中,所述目标输出节点可连接的输入节点数量小于或等于所述输出节点列表中其他输出节点可连接的输入节点数量。
14.根据权利要求10所述的装置,其中,所述获取模块,具体用于:
对所述第一指令列表按照操作指令的排列顺序进行遍历;
将当前遍历的操作指令作为节点,并在第六列表不为空列表的情况下,添加所述第六列表中位于末尾的操作指令对应节点至当前遍历的操作指令对应节点的有向边;所述第六列表为当前遍历的操作指令所作用的量子位对应的列表;
将当前遍历的操作指令添加至所述第六列表的末尾,并在所述第一指令列表遍历完成的情况下,得到所述第一有向无环图。
15.根据权利要求10所述的装置,其中,所述第一确定模块,具体用于:
针对所述第一列表中每个目标输出节点,获取所述目标输出节点对应的第二集合,所述第二集合包括所述输入节点列表中所述目标输出节点可进行连接的输入节点;
将各目标输出节点对应的第二集合进行笛卡尔积,得到包括目标可行解的第一集合,所述目标可行解中用于指示输入节点的标识不可重复。
16.根据权利要求10所述的装置,其中,所述第二确定模块,具体用于:
从所述第二有向无环图的候选有向边中依次确定目标有向边,并依次添加所述目标有向边,直至添加所述目标有向边后得到的有向无环图中无可添加的输出节点至输入节点的有向边,得到所述第四列表;
其中,所述目标有向边为基于所述第二有向无环图的候选有向边中评分值最大的候选有向边,所述评分值用于表征第四有向无环图中输出节点到输入节点可连接的有向边数量中的最大值,所述第四有向无环图是在所述第二有向无环图中添加候选有向边后得到的。
17.根据权利要求16所述的装置,其中,有向无环图的可连接信息用矩阵表示,所述可连接信息用于表征有向无环图中各输出节点到输入节点的可连接性,所述候选有向边的评分值是基于第一矩阵中的非零元素和加上1得到的,所述第一矩阵表示所述第四有向无环图的可连接信息。
18.根据权利要求16所述的装置,其中,所述第二确定模块,还用于:
在所述第二有向无环图的候选有向边中存在至少两个评分值最大的候选有向边的情况下,随机从评分值最大的候选有向边中选取一条目标有向边。
19.一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-9中任一项所述的方法。
20.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据权利要求1-9中任一项所述的方法。
21.一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现根据权利要求1-9中任一项所述的方法。
CN202311266373.9A 2023-09-27 2023-09-27 量子电路处理方法、装置及电子设备 Pending CN117313880A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311266373.9A CN117313880A (zh) 2023-09-27 2023-09-27 量子电路处理方法、装置及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311266373.9A CN117313880A (zh) 2023-09-27 2023-09-27 量子电路处理方法、装置及电子设备

Publications (1)

Publication Number Publication Date
CN117313880A true CN117313880A (zh) 2023-12-29

Family

ID=89284348

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311266373.9A Pending CN117313880A (zh) 2023-09-27 2023-09-27 量子电路处理方法、装置及电子设备

Country Status (1)

Country Link
CN (1) CN117313880A (zh)

Similar Documents

Publication Publication Date Title
CN114881237B (zh) 量子计算处理方法、装置及电子设备
CN114970865B (zh) 量子芯片上的量子电路处理方法、装置及电子设备
CN115860128B (zh) 量子电路运行方法、装置及电子设备
CN112528591A (zh) 一种基于联合蒙特卡洛树搜索的pcb板自动布线方法
CN116611527B (zh) 量子电路处理方法、装置及电子设备
CN116151381B (zh) 量子电路处理方法、装置及电子设备
CN116151384B (zh) 量子电路处理方法、装置及电子设备
EP4089593A1 (en) Method and apparatus for executing quantum operation, and chip, device and storage medium
CN116167446B (zh) 量子计算处理方法、装置及电子设备
CN116167445B (zh) 量子测量模式的处理方法、装置及电子设备
CN117313880A (zh) 量子电路处理方法、装置及电子设备
CN116629370B (zh) 量子电路处理方法、装置及电子设备
Zhang et al. Effect of heterogeneous weights on the average trapping time and two types of random walks in weighted directed networks
CN117744813A (zh) 量子电路处理方法、装置及电子设备
CN114418107A (zh) 酉算子编译方法、计算设备、装置及存储介质
CN116579435B (zh) 量子电路的分类方法、装置、电子设备、介质和产品
CN116187458B (zh) 量子电路处理方法、装置及电子设备
CN117787424A (zh) 量子电路处理方法、装置及电子设备
CN116227607B (zh) 量子电路的分类方法、装置、电子设备、介质和产品
CN116167447B (zh) 量子电路处理方法、装置及电子设备
CN116187464B (zh) 盲量子计算处理方法、装置及电子设备
CN112580803B (zh) 模型获取方法、装置、电子设备、存储介质和程序产品
CN117313882A (zh) 量子电路处理方法、装置及电子设备
CN116187463B (zh) 量子测量模式至量子电路的编译方法、装置及电子设备
CN117313884A (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