CN111027703A - 一种量子线路查询的方法、装置、存储介质及电子装置 - Google Patents
一种量子线路查询的方法、装置、存储介质及电子装置 Download PDFInfo
- Publication number
- CN111027703A CN111027703A CN201911265779.9A CN201911265779A CN111027703A CN 111027703 A CN111027703 A CN 111027703A CN 201911265779 A CN201911265779 A CN 201911265779A CN 111027703 A CN111027703 A CN 111027703A
- Authority
- CN
- China
- Prior art keywords
- vertex
- quantum
- node
- directed acyclic
- acyclic graph
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 83
- 239000002096 quantum dot Substances 0.000 claims description 43
- 239000002243 precursor Substances 0.000 claims description 41
- 238000004590 computer program Methods 0.000 claims description 16
- 238000010276 construction Methods 0.000 claims description 3
- 239000011159 matrix material Substances 0.000 description 13
- 238000010586 diagram Methods 0.000 description 11
- 238000005259 measurement Methods 0.000 description 8
- 238000004088 simulation Methods 0.000 description 4
- 125000002015 acyclic group Chemical group 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 230000002194 synthesizing effect Effects 0.000 description 2
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N10/00—Quantum computing, i.e. information processing based on quantum-mechanical phenomena
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy 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)
- Mathematical Analysis (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Condensed Matter Physics & Semiconductors (AREA)
- Computational Mathematics (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Logic Circuits (AREA)
Abstract
本发明公开了一种量子线路查询的方法、装置、存储介质及电子装置,该方法包括:分别构建量子程序、待查询量子线路的有向无环图;分别获得量子程序的有向无环图中与待查询量子线路的有向无环图中各第一顶点匹配的第二顶点;根据与各第一顶点匹配的第二顶点确定所述量子程序中存在的待查询量子线路。本发明能够实现对量子程序中非连续存储的量子线路进行替换查找和/或识别。
Description
技术领域
本发明属于量子计算技术领域,特别是涉及一种量子线路查询的方法、装置、存储介质及电子装置。
背景技术
量子逻辑电路又称量子线路,它是量子计算领域中常用的量子计算模型,表示在抽象的概念下,对量子比特进行操作的线路,它是各种量子逻辑门组成的集合。以量子线路模型描述的量子算法,是一种操控量子计算机,使其对输入状态进行处理,并且输出特定的测量值的方法。量子计算机在运行量子算法时因其具有相对普通计算机更高效的处理数学问题的能力,故成为一种正在研究中的关键技术。
量子计算的模拟运算过程中,量子程序所包含的特定量子线路的查找和/或识别对量子计算的模拟运算过程有着举足轻重的作用。
现有技术中,对量子程序所包含的特定量子线路进行查找和/或识别时,只能对量子程序中连续存储的量子线路进行查找和/或识别处理,而不能对量子程序中非连续存储的量子线路进行替换查找和/或识别。
发明内容
本发明的目的是提供一种量子线路查询的方法、装置、存储介质及电子装置,以解决现有技术中的不足,它能够查询存在于量子程序非连续层上符合查询要求的指定结构的子量子线路的集合。
本发明采用的技术方案如下:
一种量子线路查询的方法,所述方法包括:
分别构建量子程序、待查询量子线路的有向无环图;
分别获得所述量子程序的有向无环图中与所述待查询量子线路的有向无环图中各第一顶点匹配的第二顶点;
根据与各所述第一顶点匹配的所述第二顶点确定所述量子程序中存在的待查询量子线路。
如上所述的量子线路查询的方法,优选的,所述分别获得所述量子程序的有向无环图中与所述待查询量子线路的有向无环图中各第一顶点匹配的所述第二顶点,具体包括:
针对所述待查询量子线路有向无环图中的每个第一顶点,根据各所述第一顶点与后继顶点的性质,确定与各所述第一顶点匹配的、所述量子程序的有向无环图中的第二顶点集合,作为各所述第一顶点的粗略匹配集;
从所述待查询量子线路的有向无环图的第M层级起,根据该层级内的第一顶点与前驱顶点的性质,确定所述粗略匹配集中符合该性质的、与该层级内的第一顶点匹配的第二顶点,并根据该第二顶点,更新所述粗略匹配集,作为第一当前顶点的精细匹配集,其中,M为正整数,且M=[2,N],N为所述待查询量子线路的有向无环图的层级数。
如上所述的量子线路查询的方法,优选的,所述针对所述待查询量子线路有向无环图中的每个第一顶点,根据各所述第一顶点与后继顶点的性质,确定与各所述第一顶点匹配的、所述量子程序的有向无环图中的第二顶点集合,具体包括:
分别构建各所述有向无环图对应的分层拓扑序列;其中,所述分层拓扑序列的节点与对应的所述有向无环图的顶点一一对应,且所述节点包含与之对应的所述顶点和与该顶点相连的后继顶点的信息;
针对所述待查询量子线路有向无环图中的每个第一顶点,获取与当前第一顶点对应的第一节点,记为第一当前节点;
确定所述量子程序的分层拓扑序列内与所述第一当前节点匹配的各第二节点集合;
获得各所述第二节点分别对应的、量子程序有向无环图中的第二顶点,作为与当前第一顶点匹配的第二顶点;每个第一顶点匹配的各所述第二顶点组成所述第一当前顶点的粗略匹配集。
如上所述的量子线路查询的方法,优选的,所述确定所述量子程序的分层拓扑序列内与所述第一当前节点匹配的各第二节点集合,具体包括:
遍历量子程序分层拓扑序列内的每一个第二节点;
针对遍历到的第二当前节点,判断第二当前节点与第一当前节点是否匹配;
若匹配,则将所述第二当前节点归入与所述第一当前节点匹配的第二节点集合。
如上所述的量子线路查询的方法,优选的,所述判断第二当前节点与第一当前节点是否匹配;具体包括:
判断第二当前节点与第一当前节点的节点特征是否一致;其中:所述节点特征包括当前顶点的量子逻辑门性质、后继顶点的量子逻辑门性质、和当前顶点的量子逻辑门所操作的量子比特与后继顶点的量子逻辑门所操作的量子比特的相对关系。
如上所述的量子线路查询的方法,优选的,所述根据该层级内的第一顶点与前驱顶点的性质,确定所述粗略匹配集中符合该性质的、与该层级内的第一顶点匹配的第二顶点,并根据该第二顶点,更新所述粗略匹配集,具体包括:
分别构建各所述有向无环图对应的分层拓扑序列;其中,所述分层拓扑序列的节点与对应的所述有向无环图的顶点一一对应,且所述节点包含与之对应的所述顶点和与该顶点相连的后继顶点的信息;
获取所述待查询量子线路的拓扑序列中与该层级内的第一当前顶点相连的第一前驱顶点对应的第一前驱节点;
查找所述粗略匹配集中、相连的第二前驱顶点所对应的第二前驱节点与所述第一前驱节点匹配的第二顶点;
根据查找出的第二顶点及其相连的第二前驱顶点,更新所述粗略匹配集,作为第一当前顶点的精细匹配集。
如上所述的量子线路查询的方法,优选的,所述相连的第二前驱顶点所对应的第二前驱节点与所述第一前驱节点匹配,包括:
第二顶点的相连的第二前驱顶点所对应的第二前驱节点与所述第一前驱节点的节点特征是否一致;其中:所述节点特征包括对应第二前驱顶点的量子逻辑门性质、和第二前驱顶点的量子逻辑门所操作的量子比特与顶点的量子逻辑门所操作的量子比特的相对关系。
如上所述的量子线路查询的方法,优选的,所述根据各所述第一顶点与后继顶点的性质,确定与各所述第一顶点匹配的、所述量子程序的有向无环图中的第二顶点集合,还包括:
当所述当前节点位于待查询量子线路有向无环图的最后一层级无后继节点时,则不考虑后继节点性质。
如上所述的量子线路查询的方法,优选的,所述根据与各所述第一顶点匹配的所述第二顶点确定所述量子程序中存在的待查询量子线路,具体包括:
根据量子程序的有向无环图的顶点之间的连接关系,对与各所述第一顶点匹配的第二顶点组成的精细匹配集进行交集和/或并集处理。
一种量子线路查询的装置,包括:
构建模块,用于分别构建量子程序、待查询量子线路的有向无环图;
获得模块,用于分别获得所述量子程序的有向无环图中与所述待查询量子线路的有向无环图中各第一顶点匹配的第二顶点;
确定模块,用于根据与各所述第一顶点匹配的所述第二顶点确定所述量子程序中存在的待查询量子线路。
一种存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行所述量子线路查询的方法。
一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行运行时执行所述量子线路查询的方法。
与现有技术相比,本发明首先分别构建量子程序、待查询量子线路的有向无环图;分别获得所述量子程序的有向无环图中与所述待查询量子线路的有向无环图中各第一顶点匹配的第二顶点;根据与各所述第一顶点匹配的所述第二顶点确定所述量子程序中存在的待查询量子线路。本发明借助量子线路可以通过转化为有向无环图和其对应的邻接矩阵,从而构建与量子线路对应的拓扑序列,基于此对应关系,因而可以通过可适用的方法在量子线路中查询指定结构的量子线路。
附图说明
图1是本发明实施例提供的一种量子线路查询方法的流程示意图;
图2a是本发明实施例提供的一种量子线路的示意图;
图2b是本发明实施例提供的量子线路对应的带顶点信息的示意图;
图2c是本发明实施例提供的一种带顶点信息的量子程序的有向无环图;
图3a是本发明实施例提供的另一种量子线路的示意图;
图3b是本发明实施例提供的另一种量子线路对应的带顶点信息的示意图;
图3c是本发明实施例提供的另一种带顶点信息的量子程序的有向无环图;
图4a是本发明实施例提供的一种待查询量子线路的示意图;
图4b是本发明实施例提供的一种带顶点信息的待查询量子程序的有向无环图;
图5是本发明实施例提供的一种量子线路查询装置的结构示意图。
具体实施方式
下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。
需要说明的是,本发明的说明书和权利要求书中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
本发明的实施例提供了一种实现量子线路查询的方法,应用于电子设备如移动终端,如手机、平板电脑,优选应用于计算机,如普通电脑、量子计算机等。下面对其进行详细说明。
需要说明的是,真正的量子计算机是混合结构的,它包含两大部分:一部分是经典计算机,负责执行经典计算与控制;另一部分是量子设备,负责执行量子计算。实际上,真正的量子程序是由量子语言如Qrunes语言编写的一串能够在量子计算机上运行的指令序列,实现了对量子逻辑门操作的支持,并最终实现对量子计算的模拟。具体的说,量子程序就是一系列按照一定时序操作量子逻辑门的指令序列。
在实际应用中,为了对量子计算进行模拟以验证量子应用等等,可以通过运行在普通计算机的量子虚拟机进行实现。本发明实施例所指量子程序,即是在量子操作平台上运行的由经典语言编写的表征量子比特及其演化的程序,其中与量子计算相关的量子比特、量子逻辑门等等均有相应的经典代码表示。
量子线路,也称量子逻辑电路,是最常用的通用量子计算模型,表示在抽象概念下对于量子比特进行操作的线路,其组成包括量子比特、线路(时间线),以及各种量子逻辑门,最后常需要通过量子测量操作将结果读取出来。
不同于传统电路是用金属线所连接以传递电压信号或电流信号,在量子线路中,线路可看成是由时间所连接,亦即量子比特的状态随着时间自然演化,在这过程中按照哈密顿运算符的指示,一直到遇上逻辑门而被操作。
一个量子程序整体上对应有一条总的量子线路,本发明所述量子程序即指该条总的量子线路,其中,该总的量子线路中的量子比特总数与量子程序的量子比特总数相同。可以理解为:一个量子程序主要由量子线路、针对量子线路中量子比特的测量操作、保存测量结果的寄存器及控制流节点(跳转指令)组成,一条量子线路可以包含几十上百个甚至千上万个量子逻辑门操作。量子程序的执行过程,就是对所有的量子逻辑门按照一定时序执行的过程。需要说明的是,时序即单个量子逻辑门被执行的时间顺序。
需要说明的是,经典计算中,最基本的单元是比特,而最基本的控制模式是逻辑门,可以通过逻辑门的组合来达到控制电路的目的。类似地,处理量子比特的方式就是量子逻辑门。使用量子逻辑门,能够使量子态发生演化,量子逻辑门是构成量子线路的基础,就像传统逻辑门跟一般数位线路之间的关系。量子逻辑门包括单比特量子逻辑门,如Hadamard门(H门)、Pauli-X门、Pauli-Y门、Pauli-Z门、RX门、RY门、RZ门;多比特量子逻辑门,如CNOT门、CR门、iSWAP门、Toffoli门。量子逻辑门一般使用酉矩阵表示,而酉矩阵不仅是矩阵形式,也是一种操作和变换。
参见图1,图1为本发明实施例提供的一种量子线路查询方法的流程示意图,具体包括如下步骤:
S101:分别构建量子程序、待查询量子线路的有向无环图;
具体的,量子程序可以理解为一个操作序列,其中可以包含量子线路、量子逻辑门、测量操作(Measure)等。量子线路表示在抽象概念下,对于量子比特进行操作的线路,是各种逻辑门组成的集合,因此量子线路中可以包含量子逻辑门和子量子线路。待查询量子线路为一个已知具体结构的量子线路。
有向无环图(DAG图)是有向图的一种,字面意思的理解就是图中没有环,是一个无回路的有向图,如果有一个非有向无环图,从A点出发向B点经过C点可以回到A点,则形成一个环。若将从C点到A点的方向改为从A点到C点则变成有向无环图,其常被用来表示事件间的驱动依赖关系,任务之间的调度。
具体的,以构建量子程序的有向无环图为例详细说明操作过程,构建待查询量子线路的过程与构建量子程序的有向无环图的方法原理上相同。
首先遍历整个量子程序的子节点,所谓量子程序的子节点指在整个程序的相对位置的一特定结构的数据,子节点可以是量子逻辑门、测量操作(Measure)、子量子程序、量子线路等。在遍历整个量子程序的过程中,如果子节点是量子逻辑门或测量操作则创建顶点,并与量子逻辑门操作或测量操作的量子比特对应的上一个顶点建立边的关系,在遍历过程中,若子节点为量子程序或者量子线路,则继续遍历其中的子节点,确定其子节点中是否包含量子逻辑门或者测量操作。
为了清楚的说明量子程序、待查询量子线路转化为有向无环图的过程,本申请文件后继实施例采用的是带量子比特序号的有向无环图和带顶点序号的有向无环图的结合的方式来详细阐述转化过程。因此后继实施例有向无环图的每个顶点包含的顶点信息包括量子逻辑门种类、量子逻辑门所操作的量子比特以及顶点序号。
示例性的,如图2a所示的量子线路示意图,其量子程序为H(q[0])<<H(q[1])<<H(q[2])<<H(q[3])<<RX(q[0])<<CNOT(q[1],q[2])<<RX(q[3])<<RX(q[1])<<H(q[2])<<CNOT(q[2],q[3]),则遍历该量子程序的过程如下:
具体的,遍历量子线路的节点,首先获取量子线路量子比特数和各量子逻辑门的唯一标识符,例如,0号比特操作的第一个量子逻辑门H门节点的唯一标识符为“1”;最后一个量子比特3号比特操作的第一个量子逻辑门H门节点的唯一标识符为“4”,其中,量子逻辑门的唯一标识符按照量子逻辑门的执行时序进行标记,则遍历量子程序的节点分别为:节点1H(q[0])、节点2H(q[1])、节点3H(q[2])、节点4H(q[3])、节点5RX(q[0])、节点6CNOT(q[1],q[2])、节点7RX(q[3])、节点8RX(q[1])、节点9H(q[2])、节点10CNOT(q[2],q[3])。
在遍历量子线路的节点过程中,记录当前遍历到的节点操作的量子比特序号和唯一标识符,以更新遍历过程中每个比特对应的最后一个节点。并且,创建第一容器,用于记录每个比特对应的最后一个节点及当前遍历到的节点的信息;创建第二容器,用于记录最后一个节点与当前遍历到的节点之间的相邻关系。其中,量子比特对应的最后一个节点是指当前遍历到的量子逻辑门节点的前驱节点。
首先,按照节点操作的量子比特依序遍历量子程序的节点。从量子线路的第一层开始,遍历到H(q[0]),则记录当前遍历的H门操作的量子比特序号0及其唯一标识符“1”,即:(0,1)。初始第一容器中没有元素,即H门没有前驱节点,即当前量子比特对应的最后一个节点为空。在第一容器记录0号比特对应的最后一个节点及当前遍历到节点的唯一标识符信息,为空和1,则记为[1]。由于最后一个节点为空,与下一个节点也就是当前遍历到的节点不存在相邻关系,则第二容器不进行记录。然后,依序遍历到第一层内的H(q[1])、H(q[2])、H(q[3]),处理流程同理。
当遍历至量子线路第二层的起始,即遍历至节点RX(q[0])时,RX门操作的量子比特序号为0,唯一标识符为5,则记录(0,5),此时RX(q[0])的前驱节点为H(q[0]),则更新0号量子比特对应的最后一个节点,即由空更新为H(q[0]),其唯一标识符为“1”。在第一容器记录当前0号比特对应的最后一个节点H(q[0])及当前遍历到的节点RX(q[0])的唯一标识符信息,记为[1,5]。同时,在第二容器记录当前0号比特对应的最后一个节点H(q[0])与当前遍历到的节点RX(q[0])之间的相邻关系,以唯一标识符的形式记录,即记为{1,5},表示节点1和节点5相邻。
遍历到节点CNOT(q[1],q[2])时,CNOT门操作的量子比特序号为1和2,唯一标识符为6,则记录(1,6)和(2,6),该节点6的前驱节点为H(q[1])和H(q[2]),则更新1号比特的最后一个节点为H(q[1])、更新2号比特的最后一个节点为H(q[2])其余节点的处理流程同理,在此不做赘述。
具体的,按照上述方法,继续依序遍历如图2a所示的量子程序的节点,记录量子线路第一层0、1、2、3号比特当前遍历节点的量子逻辑门节点的唯一标识符,并同时在第一容器和第二容器内记录节点唯一标识符,得到如表1所示的量子线路第一层的遍历结果,其中,每一层内的节点分别操作的量子比特互不相同:
记录量子线路第一层0、1、2、3号比特当前遍历节点的量子逻辑门节点的唯一标识符,并同时更新第一容器和第二容器内的节点唯一标识符集合,得到如表1所示的量子线路第一层的遍历结果,其中,每一层内的节点分别操作的量子比特互不相同:
表1:图2a所示量子线路第一层的遍历结果表
具体的,按照上述方法,继续依序遍历如图2a所示的量子程序的节点,记录量子线路第二层0、1、2、3号比特当前遍历节点的量子逻辑门节点的唯一标识符,并同时在第一容器和第二容器内记录节点唯一标识符,得到如表2所示的量子线路第二层的遍历结果:
表2:图2a所示量子线路第二层的遍历结果表
具体的,按照上述方法,继续依序遍历如图2a所示的量子程序的节点,记录量子线路第三层0、1、2、3号比特当前遍历节点的量子逻辑门节点的唯一标识符,并同时在第一容器和第二容器内记录节点唯一标识符,得到如表3所示的量子线路第三层的遍历结果:
表3:图2a所示量子线路第三层的遍历结果表
具体的,按照上述方法,继续依序遍历如图2a所示的量子程序的节点,记录量子线路第四层0、1、2、3号比特当前遍历节点的量子逻辑门节点的唯一标识符,并同时在第一容器和第二容器内记录节点唯一标识符,得到如表4所示的量子线路第四层的遍历结果:
表4:图2a所示量子线路第四层的遍历结果表
具体的,创建节点对应的一顶点,具体为:第一容器中用于记录当前每个比特对应的最后一个节点及当前遍历到的节点的信息的集合,用于构建对应的量子逻辑门节点对应的顶点。例如:
第一容器中的集合[1],即构建对应的顶点1(H(q[0]));
第一容器中的集合[2],即构建对应的顶点2(H(q[1]));
第一容器中的集合[3],即构建对应的顶点3(H(q[2]));
第一容器中的集合[4],即构建对应的顶点4(H(q[3]));
第一容器中的集合[1,5],即构建对应的顶点1(H(q[0]))和顶点5(RX(q[0]));
第一容器中的集合[2,6],即构建对应的顶点2(H(q[1]))和顶点6(CNOT(q[1],q[2]));
第一容器中的集合[3,6],即构建对应的顶点3(H(q[2]))和顶点6(CNOT(q[1],q[2]));
第一容器中的集合[4,7],即构建对应的顶点4(H(q[3]))和顶点7(RX(q[3]));
第一容器中的集合[6,8],即构建对应的顶点6(CNOT(q[1],q[2]))和顶点8(RX(q[1]));
第一容器中的集合[6,9],即构建对应的顶点6(CNOT(q[1],q[2]))和顶点9(H(q[2]));
第一容器中的集合[7,10],即构建对应的顶点7(RX(q[3]))和顶点10(CNOT(q[2],q[3]));
第一容器中的集合[9,10],即构建对应的顶点9(H(q[2]))和顶点10(CNOT(q[2],q[3]));
得到如图2b所示的量子线路对应的带顶点信息的示意图。
构建具有相邻关系的节点对应的顶点之间的边,其中,边的方向由具有相邻关系的节点中的前一节点对应的顶点指向下一节点对应的顶点。
具体的,第二容器中用于记录最后一个节点与当前遍历到的节点之间的相邻关系,用于构建具有相邻关系的节点对应的顶点之间的边,其中,边的方向由具有相邻关系的节点中的前一节点对应的顶点指向下一节点对应的顶点。例如:
第二容器中的集合{1,5}表示顶点1(H(q[0]))和顶点5(RX(q[0]))之间有边相连,且边的方向由顶点1(H(q[0]))指向顶点5(RX(q[0]));
第二容器中的集合{2,6}表示顶点2(H(q[1]))和顶点6(CNOT(q[1],q[2]))之间有边相连,且边的方向由顶点2(H(q[1]))指向顶点6(CNOT(q[1],q[2]));
第二容器中的集合{3,6}表示顶点3(H(q[2]))和顶点6(CNOT(q[1],q[2]))之间有边相连,且边的方向由顶点3(H(q[2]))指向顶点6(CNOT(q[1],q[2]));
第二容器中的集合{4,7}表示顶点4(H(q[3]))和顶点7(RX(q[3]))之间有边相连,且边的方向由顶点4(H(q[3]))指向顶点7(RX(q[3]));
第二容器中的集合{6,8}表示顶点6(CNOT(q[1],q[2]))和顶点8(RX(q[1]))之间有边相连,且边的方向由顶点6(CNOT(q[1],q[2]))指向顶点8(RX(q[1]));
第二容器中的集合{6,9}表示顶点6(CNOT(q[1],q[2]))和顶点9(H(q[2]))之间有边相连,且边的方向由顶点6(CNOT(q[1],q[2]))指向顶点9(H(q[2]));
第二容器中的集合{7,10}表示顶点7(RX(q[3]))和顶点10(CNOT(q[2],q[3]))之间有边相连,且边的方向由顶点7(RX(q[3]))指向顶点10(CNOT(q[2],q[3]));
第二容器中的集合{9,10}表示顶点9(H(q[2]))和顶点10(CNOT(q[2],q[3]))之间有边相连,且边的方向由顶点9(H(q[2]))指向顶点10(CNOT(q[2],q[3]));
综合各个顶点的指向关系,得到如图2c所示的一种带顶点信息的量子程序的有向无环图(DAG)。
示例性的,如图3a所示的另一种量子线路示意图,其量子程序为H(q[0])<<H(q[1])<<CNOT(q[3],q[2])<<H(q[4])<<RX(q[0])<<H(q[2])<<CNOT(q[3],q[4])<<CNOT(q[0],q[1])<<CNOT(q[3],q[2])<<RX(q[4])<<H(q[1])<<H(q[2])<<CNOT(q[4],q[3]),则遍历该量子程序的过程如下:
具体的,遍历量子程序的节点,首先获取量子线路量子比特数和各量子逻辑门的唯一标识符,例如,0号比特操作的第一个量子逻辑门H门节点的唯一标识符为“0”;最后一个量子比特4号比特操作的第一个量子逻辑门H门节点的唯一标识符为“3”,其中,量子逻辑门的唯一标识符按照量子逻辑门的执行时序进行标记。则遍历量子程序的节点分别为:节点0H(q[0])、节点1H(q[1])、节点2CNOT(q[3],q[2])、节点3H(q[4])、节点4RX(q[0])、节点5H(q[2])、节点6CNOT(q[3],q[4])、节点7CNOT(q[0],q[1])、节点8CNOT(q[3],q[2])、节点9RX(q[4])、节点10H(q[1])、节点11H(q[2])、节点12CNOT(q[4],q[3])。
在遍历量子线路的节点过程中,记录当前遍历到的节点操作的量子比特序号和唯一标识符,以更新遍历过程中每个比特对应的最后一个节点。并且,创建第一容器,用于记录每个比特对应的最后一个节点及当前遍历到的节点的信息;创建第二容器,用于记录最后一个节点与当前遍历到的节点之间的相邻关系。其中,量子比特对应的最后一个节点是指当前遍历到的量子逻辑门节点的前驱节点。
首先,按照节点操作的量子比特依序遍历量子程序的节点。从量子线路的第一层开始,遍历到H(q[0]),则记录当前遍历的H门操作的量子比特序号0及其唯一标识符“0”,即:(0,0)。初始第一容器中没有元素,即H门没有前驱节点,即当前量子比特对应的最后一个节点为空。在第一容器记录0号比特对应的最后一个节点及当前遍历到节点的唯一标识符信息,为空和0,则记为[0]。由于最后一个节点为空,与下一个节点也就是当前遍历到的节点不存在相邻关系,则第二容器不进行记录。然后,依序遍历到第一层内的H(q[1])、CNOT(q[3],q[2])、H(q[4]),处理流程同理。
当遍历至量子线路第二层的起始,即遍历至节点RX(q[0])时,RX门操作的量子比特序号为0,唯一标识符为4,则记录(0,4),此时RX(q[0])的前驱节点为H(q[0]),则更新0号量子比特对应的最后一个节点,即由空更新为H(q[0]),其唯一标识符为“0”。在第一容器记录当前0号比特对应的最后一个节点H(q[0])及当前遍历到的节点RX(q[0])的唯一标识符信息,记为[0,4]。同时,在第二容器记录当前0号比特对应的最后一个节点H(q[0])与当前遍历到的节点RX(q[0])之间的相邻关系,以唯一标识符的形式记录,即记为{0,4},表示节点0和节点4相邻。
遍历到节点CNOT(q[3],q[4])时,CNOT门操作的量子比特序号为3和4,唯一标识符为6,则记录(3,6)和(4,6),该节点6的前驱节点为CNOT(q[3],q[2])和H(q[4]),则更新3号比特的最后一个节点为CNOT(q[3],q[2])、更新4号比特的最后一个节点为H(q[4]),其余节点的处理流程同理,在此不做赘述。
具体的,按照上述方法,继续依序遍历如图3a所示的量子程序的节点,记录量子线路第一层0、1、2、3、4号比特当前遍历节点的量子逻辑门节点的唯一标识符,并同时在第一容器和第二容器内记录节点唯一标识符,得到如表5所示的量子线路第一层的遍历结果,其中,每一层内的节点分别操作的量子比特互不相同:
表5:图3a所示量子线路第一层的遍历结果表
具体的,按照上述方法,继续依序遍历如图3a所示的量子程序的节点,记录量子线路第二层0、1、2、3、4号比特当前遍历节点的量子逻辑门节点的唯一标识符,并同时在第一容器和第二容器内记录节点唯一标识符,得到如表6所示的量子线路第二层的遍历结果,其中,每一层内的节点分别操作的量子比特互不相同:
表6:图3a所示量子线路第二层的遍历结果表
具体的,按照上述方法,继续依序遍历如图3a所示的量子程序的节点,记录量子线路第三层0、1、2、3、4号比特当前遍历节点的量子逻辑门节点的唯一标识符,并同时在第一容器和第二容器内记录节点唯一标识符,得到如表7所示的量子线路第三层的遍历结果,其中,每一层内的节点分别操作的量子比特互不相同:
表7:图3a所示量子线路第三层的遍历结果表
具体的,按照上述方法,继续依序遍历如图3a所示的量子程序的节点,记录量子线路第四层0、1、2、3、4号比特当前遍历节点的量子逻辑门节点的唯一标识符,并同时在第一容器和第二容器内记录节点唯一标识符,得到如表8所示的量子线路第四层的遍历结果,其中,每一层内的节点分别操作的量子比特互不相同:
表8:图3a所示量子线路第四层的遍历结果表
具体的,创建节点对应的顶点,具体为:第一容器中用于记录当前每个比特对应的最后一个节点及当前遍历到的节点的信息的集合,用于构建对应的量子逻辑门节点对应的顶点。例如:
第一容器中的集合[0],即构建对应的顶点0(H(q[0]));
第一容器中的集合[1],即构建对应的顶点1(H(q[1]));
第一容器中的集合[2],即构建对应的顶点2(CNOT(q[3],q[2]));
第一容器中的集合[3],即构建对应的顶点3(H(q[4]));
第一容器中的集合[0,4],即构建对应的顶点0(H(q[0]))和顶点4(RX(q[0]));
第一容器中的集合[2,5],即构建对应的顶点2(CNOT(q[3],q[2]))和顶点5(H(q[2]));
第一容器中的集合[2,6],即构建对应的顶点2(CNOT(q[3],q[2]))和顶点6(CNOT(q[3],q[4]));
第一容器中的集合[3,6],即构建对应的顶点3(H(q[4]))和顶点6(CNOT(q[3],q[4]));
第一容器中的集合[4,7],即构建对应的顶点4(RX(q[0]))和顶点7(CNOT(q[0],q[1]));
第一容器中的集合[1,7],即构建对应的顶点1(H(q[1]))和顶点7(CNOT(q[0],q[1]));
第一容器中的集合[5,8],即构建对应的顶点5(H(q[2]))和顶点8(CNOT(q[3],q[2]));
第一容器中的集合[6,8],即构建对应的顶点6(CNOT(q[3],q[4]))和顶点8(CNOT(q[3],q[2]));
第一容器中的集合[6,9],即构建对应的顶点6(CNOT(q[3],q[4]))和顶点9(RX(q[4]));
第一容器中的集合[7,10],即构建对应的顶点7(CNOT(q[0],q[1]))和顶点10(H(q[1]));
第一容器中的集合[8,11],即构建对应的顶点8(CNOT(q[3],q[2]))和顶点11(H(q[2]));
第一容器中的集合[8,12],即构建对应的顶点8(CNOT(q[3],q[2]))和顶点12(CNOT(q[4],q[3]));
第一容器中的集合[9,12],即构建对应的顶点9(RX(q[4]))和顶点12(CNOT(q[4],q[3]));
得到如图3b所示的量子线路对应的带顶点信息的示意图。
构建具有相邻关系的节点对应的顶点之间的边,其中,边的方向由具有相邻关系的节点中的前一节点对应的顶点指向下一节点对应的顶点。
具体的,第二容器中用于记录最后一个节点与当前遍历到的节点之间的相邻关系,用于构建具有相邻关系的节点对应的顶点之间的边,其中,边的方向由具有相邻关系的节点中的前一节点对应的顶点指向下一节点对应的顶点。例如:
第二容器中的集合{0,4}表示顶点0(H(q[0]))和顶点4(RX(q[0]))之间有边相连,且边的方向由顶点0(H(q[0]))指向顶点4(RX(q[0]));
第二容器中的集合{2,5}表示顶点2(CNOT(q[3],q[2]))和顶点5(H(q[2]))之间有边相连,且边的方向由顶点2(CNOT(q[3],q[2]))指向顶点5(H(q[2]));
第二容器中的集合{2,6}表示顶点2(CNOT(q[3],q[2]))和顶点6(RX(q[3]))之间有边相连,且边的方向由顶点2(CNOT(q[3],q[2]))指向顶点6(RX(q[3]));
第二容器中的集合{3,6}表示顶点3(H(q[4]))和顶点6(RX(q[3]))之间有边相连,且边的方向由顶点3(H(q[3]))指向顶点6(CNOT(q[3],q[4]));
第二容器中的集合{4,7}表示顶点4(RX(q[0]))和顶点7(CNOT(q[0],q[1]))之间有边相连,且边的方向由顶点4(RX(q[0]))指向顶点7(CNOT(q[0],q[1]));
第二容器中的集合{1,7}表示顶点1(H(q[1]))和顶点7(CNOT(q[0],q[1]))之间有边相连,且边的方向由顶点1(H(q[1]))指向顶点7(CNOT(q[0],q[1]));
第二容器中的集合{5,8}表示顶点5(H(q[2]))和顶点8(CNOT(q[3],q[2]))之间有边相连,且边的方向由顶点5(H(q[2]))指向顶点8(CNOT(q[3],q[2]));
第二容器中的集合{6,8}表示顶点6(CNOT(q[3],q[4]))和顶点8(CNOT(q[3],q[2]))之间有边相连,且边的方向由顶点6(CNOT(q[3],q[4]))指向顶点8(CNOT(q[3],q[2]));
第二容器中的集合{6,9}表示顶点6(CNOT(q[3],q[4]))和顶点9(RX(q[4]))之间有边相连,且边的方向由顶点6(CNOT(q[3],q[4]))指向顶点9(RX(q[4]));
第二容器中的集合{7,10}表示顶点7(CNOT(q[0],q[1]))和顶点10(H(q[1]))之间有边相连,且边的方向由顶点7(CNOT(q[0],q[1]))指向顶点10(H(q[1]));
第二容器中的集合{8,11}表示顶点8(CNOT(q[3],q[2]))和顶点11(H(q[2]))之间有边相连,且边的方向由顶点8(CNOT(q[3],q[2]))指向顶点11(H(q[2]));
第二容器中的集合{8,12}表示顶点8(CNOT(q[3],q[2]))和顶点12(RX(q[3]))之间有边相连,且边的方向由顶点8(CNOT(q[3],q[2]))指向顶点12(CNOT(q[4],q[3]));
第二容器中的集合{9,12}表示顶点9(RX(q[4]))和顶点12(CNOT(q[4],q[3]))之间有边相连,且边的方向由顶点9(RX(q[4]))指向顶点12(CNOT(q[4],q[3]));
综合各个顶点的指向关系,得到如图3c所示的另一种带顶点信息的量子程序的有向无环图(DAG)。
示例性的,如图4a所示的待查询量子线路为H(q[1]),CNOT(q[0],q[1]),H(q[1]),构建待查询量子线路的有向无环图的过程和构建量子程序有向无环图的过程相同,详细过程在此不再赘述,即:
首先遍历待查询量子线路的所有子节点H(q[1]),CNOT(q[0],q[1]),H(q[1]),并分别创建每个子节点对应的顶点并记录下顶点信息,其中,顶点信息包括表示该子节点包含的逻辑门信息,以及该量子逻辑门操作的量子比特信息和/或表示该顶点被创建的相对顺序的顶点序号,得到如图4b所示的带顶点信息的待查询量子程序的有向无环图。
S102:分别获得所述量子程序的有向无环图中与所述待查询量子线路的有向无环图中各第一顶点匹配的第二顶点;
具体的,以图4b所示的带顶点信息的待查询量子程序的有向无环图为例,查找待查询量子程序的有向无环图在如图2c和图3c所示的带顶点信息的量子程序的有向无环图中是否能被查询。
首先说明如图4b所示的待查询量子程序的有向无环图在图2c所示的量子程序有向无环图中的查询过程。
步骤S1021:针对待查询量子线路有向无环图中的每个第一顶点,根据各第一顶点与后继顶点的性质,确定与各第一顶点匹配的、量子程序的有向无环图中的第二顶点集合,作为各第一顶点的粗略匹配集。
具体的,待查询量子线路中第一顶点分别为H(q[1]),CNOT(q[0],q[1]),H(q[1]),分别将H(q[1]),CNOT(q[0],q[1]),H(q[1])所在的层记为R1层、R2层和R3层,且第一个第一顶点H(q[1])的后继顶点为CNOT(q[0],q[1]),并且量子逻辑门CNOT门的控制比特为0号比特,目标比特为1号比特;第二个第一顶点CNOT(q[0],q[1])的后继顶点为H(q[1]),并且量子逻辑门H门操作的量子比特为1号比特;第三个第一顶点H(q[1])的后继顶点为空,在当前节点位于待查询量子线路有向无环图的最后一层级无后继节点时,则不考虑后继节点性质。
具体的,确定与各第一顶点匹配的、量子程序的有向无环图中的第二顶点集合,作为各第一顶点的粗略匹配集的过程如下:
A1:分别构建各有向无环图对应的分层拓扑序列;其中,分层拓扑序列的节点与对应的有向无环图的顶点一一对应,且节点包含与之对应的顶点和与该顶点相连的后继顶点的信息;
周知的,对一个有向无环图(DAG)进行拓扑排序的效果将有向无环图中所有顶点排成一个线性序列,使得图中任意一对顶点U和V,若边{U,V}属于该有向无环图,则顶点U与顶点V相连,且边的方向由顶点U指向顶点V。有向无环图的拓扑排序的过程,可以简单描述为:1)在有向无环图中选择没有前驱的顶点且输出之;2)在图中删除该顶点和所有以它为尾的弧。
通常,在计算机上实现以上过程时,采用一位数组存储有向无环图的顶点信号,记为顶点矩阵;采用二维的数组存储有向无环图的各顶点之间的边的信息,记为邻接矩阵,且在邻接矩阵的存储结构的头结点中增加一个存放顶点入度的数组。或,通过对邻接矩阵的处理,获得每个顶点的入度。亦或通过对邻接矩阵的处理,获得邻接矩阵对应的有向无环图所包含的顶点数。可以理解的是,入度是指图中某顶点作为图中边的终点次数之和;入度为0的顶点即为没有前驱的顶点。删除入度为0顶点以及以它为尾的弧的操作,则可换以弧头顶点的入度减1来实现。
根据入度对有向无环图的顶点进行分层拓扑排序以获得其拓扑序列,而入度的获得,直接借助邻接矩阵的处理实现,该实现过程,属于现有技术,在此不再赘述。且通过对邻接矩阵的处理,获得邻接矩阵对应的有向无环图所包含的顶点数的实现过程,属于现有技术,在此不再赘述。
分别构建各有向无环图对应的分层拓扑序列,下面以待查询量子线路有向无环图转化为对应的分层拓扑序列为例来说明,同样的,量子线路有向无环图转化为对应的分层拓扑序列方法原理与之相同,在此不再赘述。
具体的,如图4b所示的待查询量子线路有向无环图对应的分层拓扑序列为:H[CNOT]|CNOT[H]|H[],其中:“|”为分层符号,[]表示与当前入度为0的顶点无相连的下一顶点。分层拓扑序列节点分别为:H[CNOT]、CNOT[H]和H[]。其中,节点H[CNOT]与顶点H(q[1])对应,节点CNOT[H]与顶点CNOT(q[0],q[1])对应,节点H[]与顶点H(q[1])对应。分层拓扑序列的节点H[CNOT]包含对应的顶点H(q[1])相连的后继顶点CNOT(q[0],q[1])的信息;节点CNOT[H]包含对应顶点CNOT(q[0],q[1])相连的后继顶点H(q[1])的信息;节点H[]包含对应的顶点H(q[1])无相连的后继顶点的信息。
A2:针对所述待查询量子线路有向无环图中的每个第一顶点,获取与当前第一顶点对应的第一节点,记为第一当前节点;
具体的,待查询量子线路中第一顶点分别为顶点H(q[1]),顶点CNOT(q[0],q[1]),顶点H(q[1]),其所对应的第一当前节点分别为节点H(q[1]),节点CNOT(q[0],q[1])和节点H(q[1])。
A3:确定量子程序的分层拓扑序列内与第一当前节点匹配的各第二节点集合;
首先遍历量子程序分层拓扑序列内的每一个第二节点;针对遍历到的第二当前节点,判断第二当前节点与第一当前节点是否匹配;若匹配,则将第二当前节点归入与所述第一当前节点匹配的第二节点集合。
具体的,首先遍历量子程序分层拓扑序列内每一个第二节点;针对遍历到的第二当前节点H(q[0]),H(q[1]),H(q[2]),H(q[3]),RX(q[0]),CNOT(q[1],q[2]),RX(q[3]),RX(q[1]),H(q[2]),CNOT(q[2],q[3]),判断第二当前节点与第一当前节点是否匹配,其匹配规则满足:判断第二当前节点与第一当前节点的节点特征是否一致;其中:节点特征包括当前顶点的量子逻辑门性质、后继顶点的量子逻辑门性质、和当前顶点的量子逻辑门所操作的量子比特与后继顶点的量子逻辑门所操作的量子比特的相对关系。若满足上述的匹配规则,则将第二当前节点归入与第一当前节点匹配的第二节点集合。
A4:获得各所述第二节点分别对应的、量子程序有向无环图中的第二顶点,作为与当前第一顶点匹配的第二顶点;每个第一顶点匹配的各所述第二顶点组成所述第一当前顶点的粗略匹配集。
具体的,首先遍历在量子程序有向无环图内遍历待查询量子线路第一当前顶点的每个子顶点,找到与待查询量子线路有向无环图每个顶点在量子程序有向无环图中相匹配的顶点,作为可能匹配的顶点,得到第一当前顶点的粗略匹配集。
具体的,待查询量子线路有向无环图的第一顶点H(q[1])的后继顶点为CNOT(q[0],q[1]),则在量子程序的有向无环图中查询可能匹配的顶点,可得结果为如图2c所示的顶点3;继续查找待查询量子线路有向无环图的第一顶点CNOT(q[0],q[1])的后继顶点为H(q[1]),则在量子程序的有向无环图中查询可能匹配的顶点,可得结果为如图2c所示的顶点6;继续查找待查询量子线路有向无环图的第一顶点H(q[1])的后继顶点为空,则在量子程序的有向无环图中查询可能匹配的顶点,可得结果为如图2c所示的顶点序号为1,2,3,4,9的顶点,其中阿拉伯数字表示代表顶点的顶点序号。因此第一当前顶点的粗略匹配集,可以记为如下数据结构:
R1:3
R2:6
R3:1,2,3,4,9
步骤S1022:从所述待查询量子线路的有向无环图的第M层级起,根据该层级内的第一顶点与前驱顶点的性质,确定所述粗略匹配集中符合该性质的、与该层级内的第一顶点匹配的第二顶点,并根据该第二顶点,更新所述粗略匹配集,作为第一当前顶点的精细匹配集,其中,M为正整数,且M=[2,N],N为所述待查询量子线路的有向无环图的层级数,[2,N]表示从第2层开始至第N层结束。
具体的,根据该层级内的第一顶点与前驱顶点的性质,确定所述粗略匹配集中符合该性质的、与该层级内的第一顶点匹配的第二顶点,并根据该第二顶点,更新所述粗略匹配集,具体包括如下步骤:
B1:分别构建各所述有向无环图对应的分层拓扑序列;其中,所述分层拓扑序列的节点与对应的所述有向无环图的顶点一一对应,且所述节点包含与之对应的所述顶点和与该顶点相连的后继顶点的信息;
具体的,分别构建各有向无环图的过程,前文已经详细叙述,在此不再赘述。
示例性的,如图2c所示的量子线路有向无环图对应的分层拓扑序列为:H[RX],H[CNOT],H[CNOT],H[RX]|RX[],CNOT[RX,H],RX[CNOT]|RX[],H[CNOT]|CNOT[]。节点分别为:H[RX],H[CNOT],H[CNOT],H[RX],RX[],CNOT[RX],CNOT[H],RX[CNOT],RX[],H[CNOT],CNOT[],且这些节点与对应的有向无环图的顶点一一对应,其中,H[RX]与H(q[0])对应,H[CNOT]与H(q[1])对应,H[CNOT]与H(q[2])对应,H[RX]与H(q[3])对应,RX[]与RX(q[0])对应,CNOT[RX]与CNOT(q[1],q[2])对应,CNOT[H]与CNOT(q[1],q[2])对应,RX[CNOT]与RX(q[3])对应,RX[]与RX(q[0])对应,H[CNOT]与H(q[2])对应,CNOT[]与CNOT(q[2],q[3])对应。并且,节点H[RX]包含对应的顶点H(q[0])相连的后继顶点RX(q[0])的信息;节点H[CNOT]包含对应的顶点H(q[1])相连的后继顶点CNOT(q[1],q[2])的信息;节点H[CNOT]包含对应的顶点H(q[2])相连的后继顶点CNOT(q[1],q[2])的信息;节点H[RX]包含对应的顶点H(q[3])相连的后继顶点RX(q[3])的信息;节点RX[]包含对应的顶点RX(q[0])无相连的后继顶点的信息;节点CNOT[RX]包含对应的顶点CNOT(q[1],q[2])相连的后继顶点RX(q[1])的信息;节点CNOT[H]包含对应的顶点CNOT(q[1],q[2])相连的后继顶点H(q[2])的信息;节点RX[CNOT]包含对应的顶点RX(q[3])相连的后继顶点CNOT(q[2],q[3])的信息;节点RX[]包含对应的顶点RX(q[1])无相连的后继顶点的信息;节点H[CNOT]包含对应的顶点H(q[2])相连的后继顶点CNOT(q[2],q[3])的信息;节点CNOT[]包含对应的顶点CNOT(q[2],q[3])无相连的后继顶点的信息。
B2:获取所述待查询量子线路的拓扑序列中与该层级内的第一当前顶点相连的第一前驱顶点对应的第一前驱节点;
具体的,例如获取待查询量子线路拓扑序列R2层级中的第一当前顶点为CNOT(q[0],q[1]),该层级内的第一当前顶点CNOT(q[0],q[1])相连的第一前驱顶点对应的第一前驱节点H(q[1])。
B3:查找粗略匹配集中、相连的第二前驱顶点所对应的第二前驱节点与所述第一前驱节点匹配的第二顶点;根据查找出的第二顶点及其相连的第二前驱顶点,更新所述粗略匹配集,作为第一当前顶点的精细匹配集。
具体的,第二顶点的相连的第二前驱顶点所对应的第二前驱节点与第一前驱节点的节点特征是否一致;其中:节点特征包括对应第二前驱顶点的量子逻辑门性质、和第二前驱顶点的量子逻辑门所操作的量子比特与顶点的量子逻辑门所操作的量子比特的相对关系。
根据第一当前顶点CNOT(q[0],q[1])相连的第一前驱顶点对应的第一前驱节点H(q[1]),并根据查找出的第二顶点及其相连的第二前驱顶点,更新粗略匹配集,具体过程如下:
由于第一当前顶点CNOT(q[0],q[1])相连的第一前驱顶点对应的第一前驱节点为H(q[1]),第一当前顶点H(q[1])相连的第一前驱顶点对应的第一前驱节点为CNOT(q[0],q[1]),因此更新粗略匹配集,得到如下数据结构,作为第一当前顶点的精细匹配集:
R1:3
R2:6
R3:9
S103:根据与各第一顶点匹配的第二顶点确定量子程序中存在的待查询量子线路。
根据量子程序的有向无环图的顶点之间的连接关系,对与各第一顶点匹配的第二顶点组成的精细匹配集进行交集和/或并集处理,得到待查询量子线路在量子程序中的匹配结果。
具体的,在量子程序的有向无环图中与待查询量子线路的有向无环图中各第一顶点匹配的第二顶点为精细匹配集(6,3)(9,6),因此可以进行交集和/或并集处理,得到待查询量子线路在量子程序中的匹配结果,即{3,6,9}。
结合图2c和图4b可以看出,以上在量子程序的有向无环图中查找出的与待查询量子线路的有向无环图中各第一顶点匹配的第二顶点为精细匹配集的结果{3,6,9}在量子线路层中两两相邻。
下面以图4b所示的带顶点信息的待查询量子程序的有向无环图为例,查找待查询量子程序的有向无环图在如图3c所示的带顶点信息的量子程序的有向无环图中是否能被查询。
步骤S1021:针对待查询量子线路有向无环图中的每个第一顶点,根据各第一顶点与后继顶点的性质,确定与各第一顶点匹配的、量子程序的有向无环图中的第二顶点集合,作为各第一顶点的粗略匹配集。
具体的,待查询量子线路中第一顶点分别为H(q[1]),CNOT(q[0],q[1]),H(q[1]),分别将H(q[1]),CNOT(q[0],q[1]),H(q[1])所在的层记为R1层、R2层和R3层,且第一个第一顶点H(q[1])的后继顶点为CNOT(q[0],q[1]),并且量子逻辑门CNOT门的控制比特为0号比特,目标比特为1号比特;第二个第一顶点CNOT(q[0],q[1])的后继顶点为H(q[1]),并且量子逻辑门H门的目标比特为1号比特;第三个第一顶点H(q[1])的后继顶点为空,若当当前节点位于待查询量子线路有向无环图的最后一层级无后继节点时,则不考虑后继节点性质。
具体的,确定与各第一顶点匹配的、量子程序的有向无环图中的第二顶点集合,作为各第一顶点的粗略匹配集的过程如下:
A1:分别构建各有向无环图对应的分层拓扑序列;其中,分层拓扑序列的节点与对应的有向无环图的顶点一一对应,且节点包含与之对应的顶点和与该顶点相连的后继顶点的信息;
具体的,分别构建各有向无环图的过程,前文已经详细叙述,在此不再赘述。
示例性的,如图3c所示的量子线路有向无环图对应的分层拓扑序列为:H[RX],H[CNOT],CNOT[H,CNOT],H[CNOT]|RX[CNOT],H[CNOT],CNOT[CNOT,RX]|CNOT[H],CNOT[H,CONT],RX[CNOT]|H[],H[],CNOT[]的节点对应的顶点分别为顶点0:H(q[0]),顶点1:H(q[1]),顶点2:CNOT(q[3],q[2]),顶点3:H(q[4]),顶点4:RX(q[0]),顶点5:H(q[2]),顶点6:CNOT(q[3],q[4]),顶点7:CNOT(q[0],q[1]),顶点8:CNOT(q[3],q[2]),顶点9:RX(q[4]),顶点10:H(q[1]),顶点11:H(q[2]),顶点12:CNOT(q[4],q[3]),这些节点与对应的有向无环图的顶点一一对应,且节点包含与之对应的顶点和与该顶点相连的后继顶点的信息;例如节点0H[RX]包含与其相连的后继节点4RX(q[0])的信息。
A2:针对所述待查询量子线路有向无环图中的每个第一顶点,获取与当前第一顶点对应的第一节点,记为第一当前节点;
具体的,待查询量子线路中第一顶点分别为H(q[1]),CNOT(q[0],q[1]),H(q[1]),其所对应的第一当前节点分别为节点H(q[1]),节点CNOT(q[0],q[1])和节点H(q[1]);
A3:确定量子程序的分层拓扑序列内与第一当前节点匹配的各第二节点集合;
首先遍历量子程序分层拓扑序列内的每一个第二节点;针对遍历到的第二当前节点,判断第二当前节点与第一当前节点是否匹配;若匹配,则将第二当前节点归入与所述第一当前节点匹配的第二节点集合。
具体的,首先遍历量子程序分层拓扑序列内每一个第二节点;针对遍历到的第二当前节点H(q[0]),H(q[1]),CNOT(q[3],q[2]),H(q[4]),RX(q[0]),H(q[2]),CNOT(q[3],q[4]),CNOT(q[0],q[1]),CNOT(q[3],q[2]),RX(q[4]),H(q[1]),H(q[2]),CNOT(q[4],q[3]),判断第二当前节点与第一当前节点是否匹配,其匹配规则满足:判断第二当前节点与第一当前节点的节点特征是否一致;其中:节点特征包括当前顶点的量子逻辑门性质、后继顶点的量子逻辑门性质、和当前顶点的量子逻辑门所操作的量子比特与后继顶点的量子逻辑门所操作的量子比特的相对关系。若满足上述的匹配规则,则将第二当前节点归入与第一当前节点匹配的第二节点集合。
A4:获得各所述第二节点分别对应的、量子程序有向无环图中的第二顶点,作为与当前第一顶点匹配的第二顶点;每个第一顶点匹配的各所述第二顶点组成所述第一当前顶点的粗略匹配集。
具体的,首先遍历在量子程序有向无环图内遍历待查询量子线路第一当前顶点的每个子顶点,找到与待查询量子线路有向无环图每个顶点在量子程序有向无环图中相匹配的顶点,作为可能匹配的顶点,得到第一当前顶点的粗略匹配集。
具体的,待查询量子线路有向无环图的第一顶点H(q[1])的后继顶点为CNOT(q[0],q[1]),则在量子程序的有向无环图中查询可能匹配的顶点,可得结果为如图3b所示的顶点1、顶点3和顶点5;继续查找待查询量子线路有向无环图的第一顶点CNOT(q[0],q[1])的后继顶点为H(q[1]),则在量子程序的有向无环图中查询可能匹配的顶点,可得结果为如图3c所示的顶点2、顶点7和顶点8;继续查找待查询量子线路有向无环图的第一顶点H(q[1])的后继顶点为空,则在量子程序的有向无环图中查询可能匹配的顶点,可得结果为如图3c所示的顶点0,1,3,5,10,11。因此第一当前顶点的粗略匹配集,可以记为如下数据结构:
R1:1,3,5
R2:2,7,8
R3:0,1,3,5,10,11
步骤S1022:从所述待查询量子线路的有向无环图的第M层级起,根据该层级内的第一顶点与前驱顶点的性质,确定所述粗略匹配集中符合该性质的、与该层级内的第一顶点匹配的第二顶点,并根据该第二顶点,更新所述粗略匹配集,作为第一当前顶点的精细匹配集,其中,M为正整数,且M=[2,N],N为所述待查询量子线路的有向无环图的层级数,[2,N]表示从第2层开始至第N层结束。
具体的,根据该层级内的第一顶点与前驱顶点的性质,确定所述粗略匹配集中符合该性质的、与该层级内的第一顶点匹配的第二顶点,并根据该第二顶点,更新所述粗略匹配集,具体包括如下步骤:
B1:分别构建各所述有向无环图对应的分层拓扑序列;其中,所述分层拓扑序列的节点与对应的所述有向无环图的顶点一一对应,且所述节点包含与之对应的所述顶点和与该顶点相连的后继顶点的信息;
具体的,如图3c所示的量子线路有向无环图对应的分层拓扑序列为:H[RX],H[CNOT],CNOT[H,CNOT],H[CNOT]|RX[CNOT],H[CNOT],CNOT[CNOT,RX]|CNOT[H],CNOT[H,CNOT],RX[CNOT]|H[],H[],CNOT[]。节点分别为:H[RX],H[CNOT],CNOT[H],CNOT[CNOT],H[CNOT],RX[CNOT],H[CNOT],CNOT[CNOT],CNOT[RX],CNOT[H],CNOT[H],CNOT[CNOT],RX[CNOT],H[],H[],CNOT[],且这些节点与对应的有向无环图的顶点一一对应,其中,H[RX]与H(q[0])对应,H[CNOT]与H(q[1])对应,CNOT[H]与CNOT(q[3],q[2])对应,CNOT[CNOT]与CNOT(q[3],q[2])对应,H[CNOT]与H(q[4])对应,RX[CNOT]与RX(q[0])对应,H[CNOT]与H(q[2])对应,CNOT[CNOT]与CNOT(q[3],q[4])对应,CNOT[RX]与CNOT(q[3],q[4])对应,CNOT[H]与CNOT(q[0],q[1])对应,CNOT[H]与CNOT(q[3],q[2])对应,CNOT[CNOT]与CNOT(q[3],q[2])对应,RX[CNOT]与RX(q[4])对应,H[]与H(q[1])对应,H[]与H(q[2])对应,CNOT[]与CNOT(q[4],q[3])对应。并且,节点H[RX]包含对应的顶点H(q[0])相连的后继顶点RX(q[0])的信息;节点H[CNOT]包含对应的顶点H(q[1])相连的后继顶点CNOT(q[0],q[1])的信息;节点CNOT[H,CNOT]包含对应的顶点CNOT(q[3],q[2])相连的后继顶点H(q[2])和CNOT(q[3],q[4])的信息;节点H[CNOT]包含对应的顶点H(q[4])相连的后继顶点CNOT(q[3],q[4])的信息;节点RX[CNOT]包含对应的顶点RX(q[0])相连的后继顶点CNOT(q[0],q[1])的信息;节点H[CNOT]包含对应的顶点H(q[2])相连的后继顶点CNOT(q[3],q[2])的信息;节点CNOT[CNOT,RX]包含对应的顶点CNOT(q[3],q[4])相连的后继顶点CNOT(q[3],q[2])和RX(q[4])的信息;节点CNOT[H]包含对应的顶点CNOT(q[0],q[1])相连的后继顶点H(q[1])的信息;节点CNOT[H,CNOT]包含对应的顶点CNOT(q[3],q[2])相连的后继顶点H(q[2])和CNOT(q[4],q[3])的信息;节点RX[CNOT]包含对应的顶点RX(q[4])相连的后继顶点CNOT(q[4],q[3])的信息;节点H[]包含对应的顶点H(q[1])无相连的后继顶点信息;节点H[]包含对应的顶点H(q[2])无相连的后继顶点信息;节点CNOT[]包含对应的顶点CNOT(q[4],q[3])无相连的后继顶点信息。
B2:获取所述待查询量子线路的拓扑序列中与该层级内的第一当前顶点相连的第一前驱顶点对应的第一前驱节点;
具体的,例如获取待查询量子线路拓扑序列R2层级中的第一当前顶点为CNOT(q[0],q[1]),该层级内的第一当前顶点CNOT(q[0],q[1])相连的第一前驱顶点对应的第一前驱节点H(q[1])。
B3:查找粗略匹配集中、相连的第二前驱顶点所对应的第二前驱节点与所述第一前驱节点匹配的第二顶点;根据查找出的第二顶点及其相连的第二前驱顶点,更新所述粗略匹配集,作为第一当前顶点的精细匹配集。
具体的,第二顶点的相连的第二前驱顶点所对应的第二前驱节点与第一前驱节点的节点特征是否一致;其中:节点特征包括对应第二前驱顶点的量子逻辑门性质、和第二前驱顶点的量子逻辑门所操作的量子比特与顶点的量子逻辑门所操作的量子比特的相对关系。
根据第一当前顶点CNOT(q[0],q[1])相连的第一前驱顶点对应的第一前驱节点H(q[1]),并根据查找出的第二顶点及其相连的第二前驱顶点,更新粗略匹配集,具体过程如下:
由于第一当前顶点CNOT(q[0],q[1])相连的第一前驱顶点对应的第一前驱节点为H(q[1]),第一当前顶点H(q[1])相连的第一前驱顶点对应的第一前驱节点为CNOT(q[0],q[1]),即从待查询量子线路的第二层开始依次与第一前驱节点匹配,因此更新粗略匹配集,得到如下数据结构,作为第一当前顶点的精细匹配集:
R1:1,5
R2:7,8
R3:0,1,3,5,10,11
在待查询量子线路的第三层中,由于第一当前顶点H(q[1])相连的第一前驱顶点对应的第一前驱节点为CNOT(q[0],q[1]),第一当前顶点CNOT(q[0],q[1]相连的第一前驱顶点对应的第一前驱节点为H(q[1]),即从待查询量子线路的第三层开始依次与第一前驱节点匹配,因此更新粗略匹配集,得到如下数据结构,作为第一当前顶点的精细匹配集:
R1:1,5
R2:7,8
R3:10,11
S103:根据与各第一顶点匹配的第二顶点确定量子程序中存在的待查询量子线路。
根据量子程序的有向无环图的顶点之间的连接关系,对与各第一顶点匹配的第二顶点组成的精细匹配集进行交集和/或并集处理,得到待查询量子线路在量子程序中的匹配结果。
具体的,在量子程序的有向无环图中与待查询量子线路的有向无环图中各第一顶点匹配的第二顶点为精细匹配集(7,1)(8,5)(10,7)(11,8),因此可以进行交集和/或并集处理,得到待查询量子线路在量子程序中的匹配结果,即{1,7,10}和{5,8,11}。
结合图2c和图3c可以看出,以上在量子程序的有向无环图中查找出的与待查询量子线路的有向无环图中各第一顶点匹配的第二顶点为精细匹配集的结果{5,8,11}在量子线路中两两相邻,匹配集{1,7,10}在量子线路中实现对量子程序中非连续存储的量子线路进行查找和/或识别。
参见图5,图5为本发明实施例提供的一种量子线路查询装置的结构示意图,与图1所示的流程相对应,可以包括:
构建模块501,用于分别构建量子程序、待查询量子线路的有向无环图;
获得模块502,用于分别获得量子程序的有向无环图中与待查询量子线路的有向无环图中各第一顶点匹配的第二顶点;
确定模块503,用于根据与各第一顶点匹配的第二顶点确定量子程序中存在的待查询量子线路。
具体的,获得模块和确定模块,具体用于:
针对待查询量子线路有向无环图中的每个第一顶点,根据各第一顶点与后继顶点的性质,确定与各第一顶点匹配的、量子程序的有向无环图中的第二顶点集合,作为各第一顶点的粗略匹配集;
从待查询量子线路的有向无环图的第M层级起,根据该层级内的第一顶点与前驱顶点的性质,确定粗略匹配集中符合该性质的、与该层级内的第一顶点匹配的第二顶点,并根据该第二顶点,更新粗略匹配集,作为第一当前顶点的精细匹配集,其中,M为正整数,且M=[2,N],N为待查询量子线路的有向无环图的层级数;
分别构建各有向无环图对应的分层拓扑序列;其中,分层拓扑序列的节点与对应的有向无环图的顶点一一对应,且节点包含与之对应的顶点和与该顶点相连的后继顶点的信息;
针对待查询量子线路有向无环图中的每个第一顶点,获取与当前第一顶点对应的第一节点,记为第一当前节点;
确定量子程序的分层拓扑序列内与第一当前节点匹配的各第二节点集合;
获得各第二节点分别对应的、量子程序有向无环图中的第二顶点,作为与当前第一顶点匹配的第二顶点;每个第一顶点匹配的各第二顶点组成第一当前顶点的粗略匹配集;
遍历量子程序分层拓扑序列内的每一个第二节点;
针对遍历到的第二当前节点,判断第二当前节点与第一当前节点是否匹配;
若匹配,则将第二当前节点归入与所述第一当前节点匹配的第二节点集合;
判断第二当前节点与第一当前节点的节点特征是否一致;其中:所述节点特征包括当前顶点的量子逻辑门性质、后继顶点的量子逻辑门性质、和当前顶点的量子逻辑门所操作的量子比特与后继顶点的量子逻辑门所操作的量子比特的相对关系;
分别构建各所述有向无环图对应的分层拓扑序列;其中,所述分层拓扑序列的节点与对应的所述有向无环图的顶点一一对应,且所述节点包含与之对应的所述顶点和与该顶点相连的后继顶点的信息;
获取所述待查询量子线路的拓扑序列中与该层级内的第一当前顶点相连的第一前驱顶点对应的第一前驱节点;
查找所述粗略匹配集中、相连的第二前驱顶点所对应的第二前驱节点与所述第一前驱节点匹配的第二顶点;
根据查找出的第二顶点及其相连的第二前驱顶点,更新所述粗略匹配集,作为第一当前顶点的精细匹配集。
可见,在现有技术方案下,本发明借助量子线路可以通过转化为有向无环图和其对应的邻接矩阵,从而构建与量子线路对应的拓扑序列,基于此对应关系,因而可以通过可适用的方法在量子线路中查询指定结构的量子线路。
本发明实施例还提供一种存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
具体的,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:
S101:分别构建量子程序、待查询量子线路的有向无环图;
S102:分别获得所述量子程序的有向无环图中与所述待查询量子线路的有向无环图中各第一顶点匹配的第二顶点;
S103:根据与各所述第一顶点匹配的所述第二顶点确定所述量子程序中存在的待查询量子线路。
具体的,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(Read-Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
可见,在现有技术方案下,本发明借助量子线路可以通过转化为有向无环图和其对应的邻接矩阵,从而构建与量子线路对应的拓扑序列,基于此对应关系,因而可以通过可适用的方法在量子线路中查询指定结构的量子线路。
本发明实施例还提供一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一项方法实施例中的步骤。
具体的,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
具体的,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
S101:分别构建量子程序、待查询量子线路的有向无环图;
S102:分别获得所述量子程序的有向无环图中与所述待查询量子线路的有向无环图中各第一顶点匹配的第二顶点;
S103:根据与各所述第一顶点匹配的所述第二顶点确定所述量子程序中存在的待查询量子线路。
可见,在现有技术方案下,本发明借助量子线路可以通过转化为有向无环图和其对应的邻接矩阵,从而构建与量子线路对应的拓扑序列,基于此对应关系,因而可以通过可适用的方法在量子线路中查询指定结构的量子线路。
以上依据图式所示的实施例详细说明了本发明的构造、特征及作用效果,以上所述仅为本发明的较佳实施例,但本发明不以图面所示限定实施范围,凡是依照本发明的构想所作的改变,或修改为等同变化的等效实施例,仍未超出说明书与图示所涵盖的精神时,均应在本发明的保护范围内。
Claims (12)
1.一种量子线路查询的方法,其特征在于,所述方法包括:
分别构建量子程序、待查询量子线路的有向无环图;
分别获得所述量子程序的有向无环图中与所述待查询量子线路的有向无环图中各第一顶点匹配的第二顶点;
根据与各所述第一顶点匹配的所述第二顶点确定所述量子程序中存在的待查询量子线路。
2.根据权利要求1所述的量子线路查询的方法,其特征在于,所述分别获得所述量子程序的有向无环图中与所述待查询量子线路的有向无环图中各第一顶点匹配的所述第二顶点,具体包括:
针对所述待查询量子线路有向无环图中的每个第一顶点,根据各所述第一顶点与后继顶点的性质,确定与各所述第一顶点匹配的、所述量子程序的有向无环图中的第二顶点集合,作为各所述第一顶点的粗略匹配集;
从所述待查询量子线路的有向无环图的第M层级起,根据该层级内的第一顶点与前驱顶点的性质,确定所述粗略匹配集中符合该性质的、与该层级内的第一顶点匹配的第二顶点,并根据该第二顶点,更新所述粗略匹配集,作为第一当前顶点的精细匹配集,其中,M为正整数,且M=[2,N],N为所述待查询量子线路的有向无环图的层级数。
3.根据权利要求2所述的量子线路查询的方法,其特征在于,所述针对所述待查询量子线路有向无环图中的每个第一顶点,根据各所述第一顶点与后继顶点的性质,确定与各所述第一顶点匹配的、所述量子程序的有向无环图中的第二顶点集合,具体包括:
分别构建各所述有向无环图对应的分层拓扑序列;其中,所述分层拓扑序列的节点与对应的所述有向无环图的顶点一一对应,且所述节点包含与之对应的所述顶点和与该顶点相连的后继顶点的信息;
针对所述待查询量子线路有向无环图中的每个第一顶点,获取与当前第一顶点对应的第一节点,记为第一当前节点;
确定所述量子程序的分层拓扑序列内与所述第一当前节点匹配的各第二节点集合;
获得各所述第二节点分别对应的、量子程序有向无环图中的第二顶点,作为与当前第一顶点匹配的第二顶点;每个第一顶点匹配的各所述第二顶点组成所述第一当前顶点的粗略匹配集。
4.根据权利要求3所述的量子线路查询的方法,其特征在于,所述确定所述量子程序的分层拓扑序列内与所述第一当前节点匹配的各第二节点集合,具体包括:
遍历量子程序分层拓扑序列内的每一个第二节点;
针对遍历到的第二当前节点,判断第二当前节点与第一当前节点是否匹配;
若匹配,则将所述第二当前节点归入与所述第一当前节点匹配的第二节点集合。
5.根据权利要求4所述的量子线路查询的方法,其特征在于,所述判断第二当前节点与第一当前节点是否匹配;具体包括:
判断第二当前节点与第一当前节点的节点特征是否一致;其中:所述节点特征包括当前顶点的量子逻辑门性质、后继顶点的量子逻辑门性质、和当前顶点的量子逻辑门所操作的量子比特与后继顶点的量子逻辑门所操作的量子比特的相对关系。
6.根据权利要求2所述的量子线路查询的方法,其特征在于,所述根据该层级内的第一顶点与前驱顶点的性质,确定所述粗略匹配集中符合该性质的、与该层级内的第一顶点匹配的第二顶点,并根据该第二顶点,更新所述粗略匹配集,具体包括:
分别构建各所述有向无环图对应的分层拓扑序列;其中,所述分层拓扑序列的节点与对应的所述有向无环图的顶点一一对应,且所述节点包含与之对应的所述顶点和与该顶点相连的后继顶点的信息;
获取所述待查询量子线路的拓扑序列中与该层级内的第一当前顶点相连的第一前驱顶点对应的第一前驱节点;
查找所述粗略匹配集中、相连的第二前驱顶点所对应的第二前驱节点与所述第一前驱节点匹配的第二顶点;
根据查找出的第二顶点及其相连的第二前驱顶点,更新所述粗略匹配集,作为第一当前顶点的精细匹配集。
7.根据权利要求6所述量子线路查询的方法,其特征在于,所述相连的第二前驱顶点所对应的第二前驱节点与所述第一前驱节点匹配,包括:
第二顶点的相连的第二前驱顶点所对应的第二前驱节点与所述第一前驱节点的节点特征是否一致;其中:所述节点特征包括对应第二前驱顶点的量子逻辑门性质、和第二前驱顶点的量子逻辑门所操作的量子比特与顶点的量子逻辑门所操作的量子比特的相对关系。
8.根据权利要求2所述的量子线路查询的方法,其特征在于,所述根据各所述第一顶点与后继顶点的性质,确定与各所述第一顶点匹配的、所述量子程序的有向无环图中的第二顶点集合,还包括:
当所述当前节点位于待查询量子线路有向无环图的最后一层级无后继节点时,则不考虑后继节点性质。
9.根据权利要求1所述的量子线路查询的方法,其特征在于,所述根据与各所述第一顶点匹配的所述第二顶点确定所述量子程序中存在的待查询量子线路,具体包括:
根据量子程序的有向无环图的顶点之间的连接关系,对与各所述第一顶点匹配的第二顶点组成的精细匹配集进行交集和/或并集处理。
10.一种量子线路查询的装置,其特征在于,包括:
构建模块,用于分别构建量子程序、待查询量子线路的有向无环图;
获得模块,用于分别获得所述量子程序的有向无环图中与所述待查询量子线路的有向无环图中各第一顶点匹配的第二顶点;
确定模块,用于根据与各所述第一顶点匹配的所述第二顶点确定所述量子程序中存在的待查询量子线路。
11.一种存储介质,其特征在于,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行所述权利要求1至9任一项中所述的方法。
12.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行所述权利要求1至9任一项中所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911265779.9A CN111027703B (zh) | 2019-12-11 | 2019-12-11 | 一种量子线路查询的方法、装置、存储介质及电子装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911265779.9A CN111027703B (zh) | 2019-12-11 | 2019-12-11 | 一种量子线路查询的方法、装置、存储介质及电子装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111027703A true CN111027703A (zh) | 2020-04-17 |
CN111027703B CN111027703B (zh) | 2024-04-05 |
Family
ID=70205777
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911265779.9A Active CN111027703B (zh) | 2019-12-11 | 2019-12-11 | 一种量子线路查询的方法、装置、存储介质及电子装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111027703B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111241356A (zh) * | 2020-04-26 | 2020-06-05 | 腾讯科技(深圳)有限公司 | 基于模拟量子算法的数据搜索方法、装置及设备 |
CN111598246A (zh) * | 2020-04-22 | 2020-08-28 | 北京百度网讯科技有限公司 | 量子吉布斯态生成方法、装置及电子设备 |
CN113849187A (zh) * | 2021-10-12 | 2021-12-28 | 中国人民解放军战略支援部队信息工程大学 | 面向量子线路噪声的编译优化方法及装置 |
WO2022041974A1 (zh) * | 2020-08-28 | 2022-03-03 | 腾讯科技(深圳)有限公司 | 量子噪声过程分析方法、系统及存储介质和电子设备 |
CN114329853A (zh) * | 2020-09-30 | 2022-04-12 | 合肥本源量子计算科技有限责任公司 | 一种量子拓扑图优化方法、装置、终端及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009138490A1 (en) * | 2008-05-15 | 2009-11-19 | Universiteit Gent | Parameterized configuration for a programmable logic device |
CN109409524A (zh) * | 2018-09-26 | 2019-03-01 | 合肥本源量子计算科技有限责任公司 | 一种量子程序运行方法及装置、存储介质及电子装置 |
US20190121921A1 (en) * | 2017-10-19 | 2019-04-25 | University Of Maryland, College Park | Automated optimization of large-scale quantum circuits with continuous parameters |
CN110516810A (zh) * | 2019-08-29 | 2019-11-29 | 合肥本源量子计算科技有限责任公司 | 一种量子程序的处理方法、装置、存储介质和电子装置 |
-
2019
- 2019-12-11 CN CN201911265779.9A patent/CN111027703B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009138490A1 (en) * | 2008-05-15 | 2009-11-19 | Universiteit Gent | Parameterized configuration for a programmable logic device |
US20190121921A1 (en) * | 2017-10-19 | 2019-04-25 | University Of Maryland, College Park | Automated optimization of large-scale quantum circuits with continuous parameters |
CN109409524A (zh) * | 2018-09-26 | 2019-03-01 | 合肥本源量子计算科技有限责任公司 | 一种量子程序运行方法及装置、存储介质及电子装置 |
CN110516810A (zh) * | 2019-08-29 | 2019-11-29 | 合肥本源量子计算科技有限责任公司 | 一种量子程序的处理方法、装置、存储介质和电子装置 |
Non-Patent Citations (1)
Title |
---|
奚业雷;吕建华;张柏礼;: "基于拓扑序列的DAG子图包含查询算法研究" * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111598246A (zh) * | 2020-04-22 | 2020-08-28 | 北京百度网讯科技有限公司 | 量子吉布斯态生成方法、装置及电子设备 |
CN111241356A (zh) * | 2020-04-26 | 2020-06-05 | 腾讯科技(深圳)有限公司 | 基于模拟量子算法的数据搜索方法、装置及设备 |
US11782937B2 (en) | 2020-04-26 | 2023-10-10 | Tencent Technology (Shenzhen) Company Limited | Data search method and apparatus based on quantum simulated algorithm, and device |
WO2022041974A1 (zh) * | 2020-08-28 | 2022-03-03 | 腾讯科技(深圳)有限公司 | 量子噪声过程分析方法、系统及存储介质和电子设备 |
CN114329853A (zh) * | 2020-09-30 | 2022-04-12 | 合肥本源量子计算科技有限责任公司 | 一种量子拓扑图优化方法、装置、终端及存储介质 |
CN114329853B (zh) * | 2020-09-30 | 2024-02-06 | 本源量子计算科技(合肥)股份有限公司 | 一种量子拓扑图优化方法、装置、终端及存储介质 |
CN113849187A (zh) * | 2021-10-12 | 2021-12-28 | 中国人民解放军战略支援部队信息工程大学 | 面向量子线路噪声的编译优化方法及装置 |
CN113849187B (zh) * | 2021-10-12 | 2022-05-10 | 中国人民解放军战略支援部队信息工程大学 | 面向量子线路噪声的编译优化方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN111027703B (zh) | 2024-04-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111027703B (zh) | 一种量子线路查询的方法、装置、存储介质及电子装置 | |
CN110929873B (zh) | 一种量子程序的处理方法、装置、存储介质和电子装置 | |
CN113033811B (zh) | 两量子比特逻辑门的处理方法及装置 | |
CN111027702B (zh) | 一种实现量子线路替换的方法、装置、存储介质和电子装置 | |
CN106133721B (zh) | 并行决策树处理器架构 | |
Sommer | Shortest-path queries in static networks | |
CN110889507A (zh) | 一种量子程序转有向无环图的方法、装置、存储介质及电子装置 | |
CN110516810B (zh) | 一种量子程序的处理方法、装置、存储介质和电子装置 | |
CN110110858B (zh) | 一种基于强化学习的自动化机器学习方法 | |
CN116822422B (zh) | 数字逻辑电路的分析优化方法及相关设备 | |
Ripon et al. | Improved precedence preservation crossover for multi-objective job shop scheduling problem | |
JP4165712B2 (ja) | データフローグラフの同一サブグラフ検出装置、高位合成装置、データフローグラフの同一サブグラフ検出方法、データフローグラフの同一サブグラフ検出制御プログラムおよび可読記録媒体 | |
KR102405578B1 (ko) | 지식 그래프를 이용한 상황 인지형 다중 문장 관계 추출 방법 및 장치 | |
Ahmad | 40 Algorithms Every Programmer Should Know: Hone your problem-solving skills by learning different algorithms and their implementation in Python | |
CN111178532B (zh) | 一种量子线路匹配的方法、装置、存储介质和电子装置 | |
CN107797852A (zh) | 数据迭代的处理装置及处理方法 | |
CN113128015B (zh) | 预估单振幅模拟量子计算所需资源的方法和系统 | |
van de Ven et al. | Determining capacity of shunting yards by combining graph classification with local search | |
Xiao et al. | ChoroWare: a software toolkit for choropleth map classification | |
KR102430482B1 (ko) | 금지 영역 정보를 기반으로 반도체 소자를 배치하는 방법 | |
CN113609806B (zh) | 一种结合子图同构的量子线路程序通用变换方法 | |
CN115983392A (zh) | 量子程序映射关系的确定方法、装置、介质及电子装置 | |
CN115879562A (zh) | 一种量子程序初始映射的确定方法、装置及量子计算机 | |
CN115775029A (zh) | 量子线路转化方法、装置、介质及电子装置 | |
JP7037048B2 (ja) | 探索プログラムおよび探索方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: 230088 6th floor, E2 building, phase II, innovation industrial park, 2800 innovation Avenue, high tech Zone, Hefei City, Anhui Province Applicant after: Benyuan Quantum Computing Technology (Hefei) Co.,Ltd. Address before: 230088 6th floor, E2 building, phase II, innovation industrial park, 2800 innovation Avenue, high tech Zone, Hefei City, Anhui Province Applicant before: ORIGIN QUANTUM COMPUTING COMPANY, LIMITED, HEFEI |
|
GR01 | Patent grant | ||
GR01 | Patent grant |