CN111178532A - 一种量子线路匹配的方法、装置、存储介质和电子装置 - Google Patents

一种量子线路匹配的方法、装置、存储介质和电子装置 Download PDF

Info

Publication number
CN111178532A
CN111178532A CN201911280587.5A CN201911280587A CN111178532A CN 111178532 A CN111178532 A CN 111178532A CN 201911280587 A CN201911280587 A CN 201911280587A CN 111178532 A CN111178532 A CN 111178532A
Authority
CN
China
Prior art keywords
sequence
quantum
type
layer
quantum circuit
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
Application number
CN201911280587.5A
Other languages
English (en)
Other versions
CN111178532B (zh
Inventor
窦猛汉
俞磊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Origin Quantum Computing Technology Co Ltd
Original Assignee
Origin Quantum Computing Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Origin Quantum Computing Technology Co Ltd filed Critical Origin Quantum Computing Technology Co Ltd
Priority to CN201911280587.5A priority Critical patent/CN111178532B/zh
Publication of CN111178532A publication Critical patent/CN111178532A/zh
Application granted granted Critical
Publication of CN111178532B publication Critical patent/CN111178532B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

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

Landscapes

  • Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Computing Systems (AREA)
  • Evolutionary Computation (AREA)
  • Condensed Matter Physics & Semiconductors (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

本发明公开了一种量子线路匹配的方法、装置、存储介质和电子装置,该方法包括分别构建主量子线路、待查询量子线路的有向无环图;基于所述有向无环图,获得各所述有向无环图对应的分层拓扑序列;根据所述分层拓扑序列,查询所述主量子线路分层拓扑序列中与所述待查询量子线路分层拓扑序列中各第二类序列单元匹配的第一类序列单元;根据所述第二序列单元匹配的所述第一类序列单元,确定所述主量子线路中存在的待查询量子线路。本发明能够实现在主量子线路中查找特定结构的子量子线路的问题。

Description

一种量子线路匹配的方法、装置、存储介质和电子装置
技术领域
本发明属于量子计算技术领域,特别是涉及一种量子线路匹配的方法、装置、存储介质和电子装置。
背景技术
量子逻辑电路又称量子线路,它是量子计算领域中常用的量子计算模型,表示在抽象的概念下,对量子比特进行操作的线路,它是各种量子逻辑门组成的集合。在量子计算中,量子计算的模拟主要是通过量子程序所包含的量子逻辑门的操作矩阵对量子态向量进行处理,得到经过量子逻辑门处理后的末态。以量子线路模型描述的量子算法,是一种操控量子计算机,使其对输入状态进行处理,并且输出特定的测量值的方法。量子计算机在运行量子算法时因其具有相对普通计算机更高效的处理数学问题的能力,故成为一种正在研究中的关键技术。量子计算的模拟运算过程中,可通过对量子程序所包含的特定量子线路的替换达到简化并提高量子计算的模拟运算速度的效果。
现有技术中,若想对量子线路所包含的特定量子线路进行替换处理时,首先需要查找出在量子线路中是否存在特定结构的子量子线路,因此有必要实现一种量子线路匹配的方法,解决在量子线路中查找特定结构的子量子线路的问题。
发明内容
本发明的目的是提供一种量子线路匹配的方法、装置、存储介质和电子装置,以解决现有技术中的不足,它能够解决在主量子线路中查找特定结构的子量子线路的问题。
本发明采用的技术方案如下:
一种量子线路匹配的方法,所述方法包括:
分别构建主量子线路、待查询量子线路的有向无环图;
基于所述有向无环图,获得各所述有向无环图对应的分层拓扑序列;
根据所述分层拓扑序列,查询所述主量子线路分层拓扑序列中与所述待查询量子线路分层拓扑序列中各第二类序列单元匹配的第一类序列单元;
根据所述第二序列单元匹配的所述第一类序列单元,确定所述主量子线路中存在的待查询量子线路。
如上所述的量子线路匹配的方法,优选的,所述分别构建主量子线路、待查询量子线路的有向无环图,包括:
分别遍历所述主量子线路、待查询量子线路中的节点;
如果所述节点为量子逻辑门或测量操作,则创建该节点对应的一顶点,并与该节点操作的量子比特对应的上一顶点,建立该上一顶点指向该顶点的边。
如上所述的量子线路匹配的方法,优选的,所述基于所述有向无环图,获得各所述有向无环图对应的分层拓扑序列,包括:
获得各所述有向无环图分别对应的邻接矩阵;
基于所述邻接矩阵,获得各所述有向无环图对应的分层拓扑序列。
如上所述的量子线路匹配的方法,优选的,所述根据所述分层拓扑序列,查询所述主量子线路分层拓扑序列中与所述待查询量子线路分层拓扑序列中各第二类序列单元匹配的第一类序列单元,包括:
从所述主量子线路分层拓扑序列的第一层开始,判断所述主量子线路分层拓扑序列每一层是否存在与所述待查询量子线路分层拓扑序列的第一层的各第二类序列单元匹配的第一类序列单元,直至第一次得到存在与所述待查询量子线路分层拓扑序列的第一层的各第二类序列单元匹配的第一类序列单元的主量子线路分层拓扑序列层,记为所述主量子线路分层拓扑序列起始层,并记录与所述待查询量子线路分层拓扑序列的第一层的各第二类序列单元匹配的第一类序列单元的集合;
判断所述主量子线路分层拓扑序列当前层的下一层是否存在与所述待查询量子线路拓扑序列当前层的下一层的各第二类序列单元匹配的第一类序列单元;
若存在与所述待查询量子线路分层拓扑序列当前层的下一层的各第二类序列单元匹配的第一类序列单元,记录该次匹配出的第一类序列单元的集合,返回执行上一步,直至待查询量子线路拓扑序列的最后一层匹配完成。
如上所述的量子线路匹配的方法,优选的,所述方法还包括:
若不存在与所述待查询量子线路分层拓扑序列当前层的下一层的各第二类序列单元匹配的第一类序列单元,则所述主量子线路中不含有与待查询量子线路相匹配的子量子线路。
一种量子线路匹配的装置,所述装置包括:
构建模块,用于分别构建主量子线路、待查询量子线路的有向无环图;
获得模块,用于基于所述有向无环图,获得各所述有向无环图对应的分层拓扑序列;
查询模块,用于根据所述分层拓扑序列,查询所述主量子线路分层拓扑序列中与所述待查询量子线路拓扑序列中各第二类序列单元匹配的第一类序列单元;
确定模块,用于根据所述第二序列单元匹配的所述第一类序列单元,确定所述主量子线路中存在的待查询量子线路。
如上所述的量子线路匹配的装置,优选的,所述构建模块,包括:
遍历单元,用于分别遍历所述主量子线路、待查询量子线路中的节点;
创建单元,用于如果所述节点为量子逻辑门或测量操作,则创建该节点对应的一顶点,并与该节点操作的量子比特对应的上一顶点,建立该上一顶点指向该顶点的边。
如上所述的量子线路匹配的装置,优选的,所述获得模块,包括:
第一获得单元,用于获得各所述有向无环图分别对应的邻接矩阵;
第二获得单元,用于基于所述邻接矩阵,获得各所述有向无环图对应的分层拓扑序列。
如上所述的量子线路匹配的装置,优选的,所述查询模块,包括:
第一判断单元,用于从所述主量子线路分层拓扑序列的第一层开始,判断所述主量子线路分层拓扑序列每一层是否存在与所述待查询量子线路分层拓扑序列的第一层的各第二类序列单元匹配的第一类序列单元,直至第一次得到存在与所述待查询量子线路分层拓扑序列的第一层的各第二类序列单元匹配的第一类序列单元的主量子线路分层拓扑序列层,记为所述主量子线路分层拓扑序列起始层,并记录与所述待查询量子线路分层拓扑序列的第一层的各第二类序列单元匹配的第一类序列单元的集合;
第二判断单元,用于判断所述主量子线路分层拓扑序列当前层的下一层是否存在与所述待查询量子线路拓扑序列当前层的下一层的各第二类序列单元匹配的第一类序列单元;
记录单元,用于若存在与所述待查询量子线路分层拓扑序列当前层的下一层的各第二类序列单元匹配的第一类序列单元,记录该次匹配出的第一类序列单元的集合,返回执行上一步,直至待查询量子线路拓扑序列的最后一层匹配完成。
一种存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行所述实现量子线路匹配的方法。
一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行所述实现量子线路匹配的方法。
与现有技术相比,本发明首先分别构建主量子线路、待查询量子线路的有向无环图;基于所述有向无环图,获得各所述有向无环图对应的分层拓扑序列;根据所述分层拓扑序列,查询所述主量子线路分层拓扑序列中与所述待查询量子线路分层拓扑序列中各第二类序列单元匹配的第一类序列单元;根据所述第二序列单元匹配的所述第一类序列单元,确定所述主量子线路中存在的待查询量子线路。本发明借助分层拓扑序列实现所述主量子线路中与所述待查询量子线路匹配的子量子线路,解决在主量子线路中查找特定结构的子量子线路的问题。
附图说明
图1是本发明实施例提供的一种量子线路匹配方法的流程示意图;
图2是本发明实施例提供的一种量子线路示意图;
图3是本发明实施例提供的一种的量子线路对应的带顶点信息的示意图;
图4是本发明实施例提供的一种带顶点信息的量子线路的有向无环图;
图5是本发明实施例提供的一种待查询量子线路的示意图;
图6是本发明实施例提供的一种带顶点信息的待查询量子线路的有向无环图;
图7是本发明实施例提供的一种量子线路匹配装置的结构示意图。
具体实施方式
下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。
需要说明的是,本发明的说明书和权利要求书中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
本发明的实施例提供了一种实现量子线路匹配的方法,应用于电子设备如移动终端,如手机、平板电脑,优选应用于计算机,如普通电脑、量子计算机等。下面对其进行详细说明。
需要说明的是,真正的量子计算机是混合结构的,它包含两大部分:一部分是经典计算机,负责执行经典计算与控制;另一部分是量子设备,负责执行量子计算。实际上,真正的量子程序是由量子语言如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点则变成有向无环图,其常被用来表示事件间的驱动依赖关系,任务之间的调度。
具体的,以构建如图2所示的主量子线路的有向无环图为例详细说明操作过程,构建待查询量子线路有向无环图的过程与构建主量子线路有向无环图在方法原理上相同。
S1011:分别遍历所述主量子线路、待查询量子线路中的节点;
首先遍历整个主量子线路的节点,所谓主量子线路的节点指在整个线路的相对位置的一特定结构的数据,节点可以是量子逻辑门、测量操作(Measure)。
具体的,遍历主量子线路的节点,首先获取量子线路量子比特数和各量子逻辑门的唯一标识符,例如,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])。
遍历待查询量子线路的节点与遍历主量子线路的节点方法及原理相同,再此不再赘述,待查询量子线路的节点为节点1:CNOT(q[0],q[1])和节点2:H(q[1])。
S1012:如果所述节点为量子逻辑门或测量操作,则创建该节点对应的一顶点,并与该节点操作的量子比特对应的上一顶点,建立该上一顶点指向该顶点的边。
示例性的,如图2所示的主量子线路示意图,其量子程序为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])。
在遍历主量子线路的节点过程中,记录当前遍历到的节点操作的量子比特序号和唯一标识符,以更新遍历过程中每个比特对应的最后一个节点。并且,创建第一容器,用于记录每个比特对应的最后一个节点及当前遍历到的节点的信息;创建第二容器,用于记录最后一个节点与当前遍历到的节点之间的相邻关系。其中,量子比特对应的最后一个节点是指当前遍历到的量子逻辑门节点的前驱节点。
首先,按照节点操作的量子比特依序遍历量子程序的节点。从量子线路的第一层开始,遍历到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]),其余节点的处理流程同理,在此不做赘述。
具体的,按照上述方法,继续依序遍历如图2所示的量子程序的节点,记录量子线路第一层0、1、2、3号比特当前遍历节点的量子逻辑门节点的唯一标识符,并同时在第一容器和第二容器内记录节点唯一标识符,得到如表1所示的量子线路第一层的遍历结果,其中,每一层内的节点分别操作的量子比特互不相同:
表1:图2所示量子线路第一层的遍历结果表
Figure BDA0002312885400000081
具体的,按照上述方法,继续依序遍历如图2所示的量子程序的节点,记录量子线路第二层0、1、2、3号比特当前遍历节点的量子逻辑门节点的唯一标识符,并同时在第一容器和第二容器内记录节点唯一标识符,得到如表2所示的量子线路第二层的遍历结果:
表2:图2所示量子线路第二层的遍历结果表
Figure BDA0002312885400000091
具体的,按照上述方法,继续依序遍历如图2所示的量子程序的节点,记录量子线路第三层0、1、2、3号比特当前遍历节点的量子逻辑门节点的唯一标识符,并同时在第一容器和第二容器内记录节点唯一标识符,得到如表3所示的量子线路第三层的遍历结果:
表3:图2所示量子线路第三层的遍历结果表
Figure BDA0002312885400000092
具体的,按照上述方法,继续依序遍历如图2所示的量子程序的节点,记录量子线路第四层0、1、2、3号比特当前遍历节点的量子逻辑门节点的唯一标识符,并同时在第一容器和第二容器内记录节点唯一标识符,得到如表4所示的量子线路第四层的遍历结果:
表4:图2所示量子线路第四层的遍历结果表
Figure BDA0002312885400000093
Figure BDA0002312885400000101
具体的,创建节点对应的顶点,具体为:第一容器中用于记录每个比特对应的最后一个节点及当前遍历到的节点的信息的集合,用于构建对应的量子逻辑门节点对应的顶点。例如:
第一容器中的集合[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]));
得到如图3所示的量子线路对应的带顶点信息的示意图。
具体的,建立该上一顶点指向该顶点的边,过程如下:
第二容器中用于记录最后一个节点与当前遍历到的节点之间的相邻关系,用于构建具有所述相邻关系的节点对应的顶点之间的边,其中,所述边的方向由具有所述相邻关系的节点中的前一节点对应的顶点指向下一节点对应的顶点。例如:
第二容器中的集合{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]));
综合各个顶点的指向关系,得到如图4所示的一种带顶点信息的量子程序的有向无环图(DAG)。
示例性的,如图5所示的待查询量子线路的示意图,将所述待查询量子线路转化为如图6所示的待查询量子线路对应的有向无环图的过程,与上述方法和原理相同,在此不再赘述。
S102:基于所述有向无环图,获得各所述有向无环图对应的分层拓扑序列;
周知的,对一个有向无环图(DAG)进行拓扑排序的效果将有向无环图中所有顶点排成一个线性序列,使得图中任意一对顶点U和V,若边{U,V}属于该有向无环图,则顶点U与顶点V相连,且边的方向由顶点U指向顶点V。有向无环图的拓扑排序的过程,可以简单描述为:1)在有向无环图中选择没有前驱的顶点且输出之;2)在图中删除该顶点和所有以它为尾的弧。
S1021:获得各所述有向无环图分别对应的邻接矩阵;
通常采用二维的数组存储有向无环图的各顶点之间的边的信息,记为邻接矩阵,且在邻接矩阵的存储结构的头结点中增加一个存放顶点入度的数组。或,通过对邻接矩阵的处理,获得每个顶点的入度。亦或通过对邻接矩阵的处理,获得邻接矩阵对应的有向无环图所包含的顶点数。可以理解的是,入度是指图中某顶点作为图中边的终点次数之和;入度为0的顶点即为没有前驱的顶点。删除入度为0顶点以及以它为尾的弧的操作,则可换以弧头顶点的入度减1来实现。
具体的,如图4所示的有向无环图,获得其对应的邻接矩阵如下:
表1:图4所示有向无环图对应的邻接矩阵
1 2 3 4 5 6 7 8 9 10
1 0 0 0 0 1 0 0 0 0 0
2 0 0 0 0 0 1 0 0 0 0
3 0 0 0 0 0 1 0 0 0 0
4 0 0 0 0 0 0 1 0 0 0
5 0 0 0 0 0 0 0 0 0 0
6 0 0 0 0 0 0 0 1 1 0
7 0 0 0 0 0 0 0 0 0 1
8 0 0 0 0 0 0 0 0 0 0
9 0 0 0 0 0 0 0 0 0 1
10 0 0 0 0 0 0 0 0 0 0
其中,邻接矩阵加粗部分的数字1-10代表有向无环图的顶点序号,每列数字1-10代表有向无环图边的起始顶点序号,每行数字1-10代表有向无环图边的终止顶点序号。
示例性的,从上述邻接矩阵可以看出顶点1、顶点2、顶点3和顶点4的入度为0;顶点5的入度为1;顶点6的入度为2;顶点7的入度为1;顶点8的入度为1;顶点9的入度为1;顶点10的入度为2;{1,5}表示从起始顶点1至终止顶点5之间存在有向边,且边的方向从顶点1指向顶点5。
S1022:基于所述邻接矩阵,获得各所述有向无环图对应的分层拓扑序列。
具体的,针对量子线路有向无环图对应的邻接矩阵进行分层拓扑排序的过程,可以描述如下:
获取当前有向无环图内所有入度为0的顶点对应的顶点特征信息作为一个序列单元输出。
具体的,获取所述有向无环图内所有入度为0的顶点,并获取与这些顶点相连的下一个顶点的信息;将各所述入度为0的顶点对应的所述下一个顶点的信息存入该入度为0的顶点信息后,作为拓扑序列的一个序列单元信息输出,即获得一个序列单元;删除当前有向无环图中所有以入度为0的顶点,及所有以入度为0的顶点为尾的边以更新所述有向无环图;对更新之后的所述有向无环图重复执行上述过程,直至有向无环图处理完,得到完整的分层拓扑序列。
示例性的,如图4所示的有向无环图,获取所述有向无环图内所有入度为0的顶点,即顶点1、顶点2、顶点3和顶点4,并获取与顶点1、顶点2、顶点3和顶点4相连的下一个顶点的信息;顶点1相连的下一个顶点为顶点5,顶点2相连的下一个顶点为顶点6,顶点3相连的下一个顶点为顶点6,顶点4相连的下一个顶点为顶点7;将各所述入度为0的顶点对应的所述下一个顶点的信息存入该入度为0的顶点信息后,作为拓扑序列的一个序列单元信息输出;即将顶点5(RX(q[0]))的信息存入对应的入度为0的顶点1H(q[0])的顶点信息后,得到H(q[0])[RX(q[0])],可以简化记为H[RX];将顶点6(CNOT(q[1],q[2])的信息存入对应的入度为0的顶点2H(q[1])的顶点信息后,得到H(q[1])[CNOT(q[1],q[2])],可以简化记为H[CNOT];将顶点6CNOT(q[1],q[2])的信息存入对应的入度为0的顶点3H(q[2])的顶点信息后,得到H(q[2])[CNOT(q[1],q[2])],可以简化记为H[CNOT];将顶点7RX(q[3])的信息存入对应的入度为0的顶点4H(q[3])的顶点信息后,得到H(q[3])[RX(q[3])],可以简化记为H[RX];至此,当前有向无环图内所有入度为0的顶点及相连的下一个顶点的信息,得到的一个序列单元为:H(q[0])[RX q[0]],H(q[1])[CNOT(q[1],q[2])],H(q[2])[CNOT(q[1],q[2])],H(q[3])[RX(q[3])],可以简化记为:H[RX],H[CNOT],H[CNOT],H[RX]。
删除当前有向无环图中所有以入度为0的顶点,及所有以入度为0的顶点为尾的边以更新所述有向无环图;对更新之后的所述有向无环图重复执行上述过程,得到的一个序列单元为:RX(q[0])[],CNOT(q[1],q[2])[RX(q[1])],CNOT(q[1],q[2])[H(q[2])],RX(q[3])[CNOT(q[2],q[3])],可以简化记为RX[],CNOT[RX],CNOT[H],RX[CNOT]。
继续删除当前有向无环图中所有以入度为0的顶点,及所有以入度为0的顶点为尾的边以更新所述有向无环图;对更新之后的所述有向无环图重复执行上述过程,得到的一个序列单元为:RX(q[1])[],H(q[2])[CNOT(q[2],q[3])],可以简化记为:RX[],H[CNOT]。
继续删除当前有向无环图中所有以入度为0的顶点,及所有以入度为0的顶点为尾的边以更新所述有向无环图;对更新之后的所述有向无环图重复执行上述过程的一个序列单元为:CNOT(q[2],q[3])[],可以简化记为CNOT[]。
此时,如图4所示的有向无环图处理完,即H[RX],H[CNOT],H[CNOT],H[RX]|RX[],CNOT[RX],CNOT[H],RX[CNOT]|RX[],H[CNOT]|CNOT[]为得到的完整分层拓扑序列。其中:“|”为分层符号,[]表示与当前入度为0的顶点无相连的下一顶点。
需要说明的是,不管以H(q[1])[CNOT(q[1],q[2])]的形式还是H[CNOT]的形式输出拓扑序列的序列单元,可以理解的是,拓扑序列的每个序列单元应该包括当前顶点量子逻辑门的性质、与当前顶点相连的下一个顶点的量子逻辑门性质、当前顶点的量子逻辑门操作的量子比特和与当前顶点相连的下一个顶点的量子逻辑门操作的量子比特的相对关系和/或量子比特性质。
进一步需要说明的是,以上所述的当前顶点指每次遍历当前有向无环图时确定的当前有向无环图中所有入度为0的顶点。
而可以理解的是,量子逻辑门分为带参量子逻辑门和不带参量子逻辑门,带参量子逻辑门又分为参数可调量子逻辑门和参数固定量子逻辑门,所述量子逻辑门的性质包含量子逻辑门的种类以及量子逻辑门的参数性质。
另外,可以理解的是,量子程序和/或量子线路中,为了区分不同量子比特,通常借助量子比特序号(即量子位)表示,以上所述的量子比特序号是根据量子程序和/或量子线路的需要而设置的,具有不确定性,当前顶点的量子逻辑门操作的量子比特和与当前顶点相连的下一个顶点的量子逻辑门操作的量子比特的相对关系是指量子逻辑门所操作的量子比特对应的量子位的相对关系。
另外,以上所述的量子比特的性质是指量子逻辑门作用相关的量子比特的作用,比如:对于两门或者多门,起控制作用的量子比特为控制比特,起被控制作用的量子比特称为目标比特,控制比特和目标比特的性质和作用不一样。
以上过程,完整的描述了示例性的图4所示的量子线路的有向无环图的分层拓扑排序过程。本领域技术人员等同和/或等效进行的任意量子线路的分层拓扑排序均落入以上保护范围。
同时,如图6所示的待查询量子线路对应的有向无环图,基于以上类似过程,进行分层拓扑排序,与上述方法和原理相同,在此不再赘述,得到的分层拓扑序列为CNOT[H]|H[]。
S103:根据所述分层拓扑序列,查询所述主量子线路分层拓扑序列中与所述待查询量子线路分层拓扑序列中各第二类序列单元匹配的第一类序列单元;
具体的,据以上描述可知,分层拓扑序列的序列单元包含:当前顶点量子逻辑门的性质、与当前顶点相连的下一个顶点的量子逻辑门性质、当前顶点的量子逻辑门操作的量子比特和与当前顶点相连的下一个顶点的量子逻辑门操作的量子比特的相对关系和/或量子比特性质。
针对选定的序列单元的匹配时,可以描述为:
步骤a:先进行选定的两序列单元所包含的“当前顶点量子逻辑门的性质、与当前顶点相连的下一个顶点的量子逻辑门性质”的匹配。
针对“当前顶点量子逻辑门的性质、与当前顶点相连的下一个顶点的量子逻辑门性质”这两项的比较匹配,示例性的,定义量子线路有向无环图的分层拓扑序列为G,待查询量子线路有向无环图的分层拓扑序列为p,顶点v1∈G,顶点v2∈p。。
示例性的,假设v2为H门,v2连接的顶点为CNOT门,v2操作的量子比特是CNOT门的控制比特,若v1是RX门,则v1和v2不匹配;
示例性的,假设v2为H门,v2连接的顶点为CNOT门,v2操作的量子比特是CNOT门的控制比特,若v1是H门,v1连接的顶点为RY门,则v1和v2不匹配;
示例性的,假设v2为H门,v2连接的顶点为CNOT门,v2操作的量子比特是CNOT门的控制比特,若v1是H门,v1连接的顶点为CNOT门,v1操作的量子比特是CNOT门的目标比特,则v1和v2不匹配;
示例性的,假设v2为H门,v2连接的顶点为CNOT门,v2操作的量子比特是CNOT门的控制比特,若v1是H门,v1连接的顶点为CNOT门,v1操作的量子比特是CNOT门的控制比特,则v1和v2匹配。
以上描述通过量子逻辑门的类型特征进行匹配的示例。可以理解的是,针对含参量子逻辑门,还需要比较量子逻辑门的参数,示例性的,如RX门、RY门、RZ门等均是包含偏转角度参数的量子逻辑门,此时参数的误差必须在一定范围内,例如对于RX门中包含的偏转角度,优选的,误差范围不大于10^(-6)。
步骤b:然后进行选定的两序列单元所包含的“当前顶点的量子逻辑门操作的量子比特和与当前顶点相连的下一个顶点的量子逻辑门操作的量子比特的相对关系和/或量子比特性质”的匹配。
容易理解的是,针对“当前顶点量子逻辑门的性质、与当前顶点相连的下一个顶点的量子逻辑门性质”这两项的比较匹配,p中的每个顶点v2在G中都会匹配出一组顶点{v1}集合,为了进一步匹配,需要针对“当前顶点的量子逻辑门操作的量子比特和与当前顶点相连的下一个顶点的量子逻辑门操作的量子比特的相对关系和/或量子比特性质”这一项的比较匹配。
可以理解的是,量子比特的相对关系和/或量子比特性质的理解如下,例如图4的有向无环图的拓扑序列中的CNOT(q[1],q[2])[H(q[2])]的顶点中,量子逻辑门H操作的q[2]为量子逻辑门CNOT操作的目标比特q[2],而CNOT操作的控制比特为q[1]。例如图6的有向无环图的拓扑序列中的CNOT(q[0],q[1])[H(q[1])],量子逻辑门H操作的q[1]为量子逻辑门CNOT操作的目标比特q[1],而CNOT操作的控制比特为q[0]。因此CNOT(q[1],q[2])[H(q[2])]和CNOT(q[0],q[1])[H(q[1])]两者的量子比特的相对关系和量子比特性质均一致,两者相互匹配。
基于以上描述,进一步,基于序列单元获得待查询量子线路的分层拓扑序列CNOT[H]|H[]的序列单元和主量子线路的分层拓扑序列H[RX],H[CNOT],H[CNOT],H[RX]|RX[],CNOT[RX,RY],RX[CNOT]|RX[],RY[CNOT]|CNOT[]中相互匹配的序列单元的判断过程如下:
S1031:从所述主量子线路分层拓扑序列的第一层开始,判断所述主量子线路分层拓扑序列每一层是否存在与所述待查询量子线路分层拓扑序列的第一层的各第二类序列单元匹配的第一类序列单元,直至第一次得到存在与所述待查询量子线路分层拓扑序列的第一层的各第二类序列单元匹配的第一类序列单元的主量子线路分层拓扑序列层,记为所述主量子线路分层拓扑序列起始层,并记录与所述待查询量子线路分层拓扑序列的第一层的各第二类序列单元匹配的第一类序列单元的集合;
S1032:判断所述主量子线路分层拓扑序列当前层的下一层是否存在与所述待查询量子线路拓扑序列当前层的下一层的各第二类序列单元匹配的第一类序列单元;
S1033:若存在与所述待查询量子线路分层拓扑序列当前层的下一层的各第二类序列单元匹配的第一类序列单元,记录该次匹配出的第一类序列单元的集合,返回执行上一步,直至待查询量子线路拓扑序列的最后一层匹配完成;
若不存在与所述待查询量子线路分层拓扑序列当前层的下一层的各第二类序列单元匹配的第一类序列单元,则所述主量子线路中不含有与待查询量子线路相匹配的子量子线路。
在实际应用中,可以根据主量子线路是否包括多个与待查询量子线路匹配的子量子线路的情况,而决定是否进行下一次匹配。所记录的按层划分的第一类序列单元的集合,用于下一次匹配时的第一类序列单元的排除。
定义待查询量子线路分层拓扑序列层与主量子线路分层拓扑序列层匹配的规则满足:
对于待查询量子线路当前拓扑序列层的每一个序列单元,在主量子线路当前拓扑序列层都能找到与之相匹配的序列单元;其中,两个序列单元的匹配,遵循以上所述的序列单元匹配要求,在此不再赘述。
示例性的,若待查询量子线路分层拓扑序列为CNOT(q[0],q[1])[H(q[1])]|H(q[1])[],则在如图2所示的主量子线路中的匹配过程包括:
获取主量子线路有向无环图的分层拓扑序列,每一层设为G1,G2,G3……Gn;获取待查询量子线路的有向无环图的分层拓扑序列,每一层设为Q1,Q2,Q3……Qn;
示例性的,如图2所示的主量子线路拓扑序列的分层如下:
G1层:H(q[0]),H(q[1]),H(q[2]),H(q[3]);
G2层:RX(q[0]),CNOT(q[1],q[2]),RX(q[3]);
G3层:RX(q[1]),H(q[2]);
G4层:CNOT(q[2],q[3])。
如图5所示的待查询量子线路拓扑序列的分层如下:
Q1层:CNOT(q[0],q[1]);
Q2层:H(q[1])。
从主量子线路拓扑序列的第一层开始,判断主量子线路拓扑序列每一层是否存在与待查询量子线路拓扑序列的第一层的各第二类序列单元匹配的第一类序列单元,直至第一次得到存在与待查询量子线路拓扑序列的第一层的各第二类序列单元匹配的第一类序列单元的主量子线路拓扑序列层,记为主量子线路拓扑序列起始层,并记录与待查询量子线路拓扑序列的第一层的各第二类序列单元匹配的第一类序列单元的集合;
S104:根据所述第二序列单元匹配的所述第一类序列单元,确定所述主量子线路中存在的待查询量子线路。
示例性的,首先从主量子线路拓扑序列的第一层G1层H(q[0]),H(q[1]),H(q[2]),H(q[3])开始判断主量子线路拓扑序列每一层是否存在与待查询量子线路拓扑序列的第一层的各第二类序列单元匹配的第一类序列单元。待查询量子线路拓扑序列的第一层Q1层为CNOT(q[0],q[1]),量子逻辑门为CNOT门,在主量子线路拓扑序列的第一层G1层中找不到与之匹配的序列单元,因此继续在主量子线路拓扑序列的下一层G2层RX(q[0]),CNOT(q[1],q[2]),RX(q[3])中继续匹配;通过匹配可以得到待查询量子线路拓扑序列的第一层CNOT(q[0],q[1])与主量子线路拓扑序列的第二层中的顶点CNOT(q[1],q[2])匹配,将主量子线路拓扑序列的第二层记为主量子线路拓扑序列起始层,并记录与待查询量子线路拓扑序列的第一层的各第二类序列单元匹配的第一类序列单元的集合,即[CNOT(q[0],q[1]):CNOT(q[1],q[2])],其中“:”之前为待查询量子拓扑序列的序列单元,“:”之后为主量子线路拓扑序列的序列单元。
继续判断主量子线路拓扑序列当前层的下一层,即G3层RX(q[1]),H(q[2])中是否存在与待查询量子线路拓扑序列当前层的下一层,即Q2层H(q[1])的序列单元是否匹配,若存在与待查询量子线路拓扑序列当前层的下一层的各第二类序列单元匹配的第一类序列单元,记录该次匹配出的第一类序列单元的集合。通过匹配可以得到待查询量子线路拓扑序列的第二层H(q[1])与主量子线路拓扑序列的第三层中的顶点H(q[2])匹配,将主量子线路拓扑序列的第三层记为主量子线路拓扑序列起始层的下一层,并记录与待查询量子线路拓扑序列的第二层的各第二类序列单元匹配的第一类序列单元的集合,即[CNOT(q[0],q[1])|H(q[1])]:[CNOT(q[1],q[2])|H(q[2])]。
继续判断主量子线路拓扑序列当前层的下一层及后续层数,直至主量子线路拓扑序列的最后一层,重复上述步骤,匹配所有与待查询量子线路分层拓扑序列中各第二类序列单元匹配的第一类序列单元;
若主量子线路拓扑序列当前层的下一层及后续层,存在与所述待查询量子线路分层拓扑序列当前层的下一层的各第二类序列单元匹配的第一类序列单元,继续记录该次匹配出的第一类序列单元的集合,返回执行上一步,直至待查询量子线路拓扑序列的最后一层匹配完成;
若不存在与所述待查询量子线路分层拓扑序列当前层的下一层的各第二类序列单元匹配的第一类序列单元,则主量子线路中不含有与待查询量子线路相匹配的子量子线路。
参见图7,图7为本发明实施例提供的一种量子线路匹配装置的结构示意图,与图1所示的流程相对应,可以包括:
构建模块701,用于分别构建主量子线路、待查询量子线路的有向无环图;
获得模块702,用于基于所述有向无环图,获得各所述有向无环图对应的分层拓扑序列;
查询模块703,用于根据所述分层拓扑序列,查询所述主量子线路分层拓扑序列中与所述待查询量子线路拓扑序列中各第二类序列单元匹配的第一类序列单元;
确定模块704,用于根据所述第二序列单元匹配的所述第一类序列单元,确定所述主量子线路中存在的待查询量子线路。
具体的,所述构建模块,包括:
遍历单元,用于分别遍历所述主量子线路、待查询量子线路中的节点;
创建单元,用于如果所述节点为量子逻辑门或测量操作,则创建该节点对应的一顶点,并与该节点操作的量子比特对应的上一顶点,建立该上一顶点指向该顶点的边。
具体的,所述获得模块,包括:
第一获得单元,用于获得各所述有向无环图分别对应的邻接矩阵;
第二获得单元,用于基于所述邻接矩阵,获得各所述有向无环图对应的分层拓扑序列。
具体的,所述查询模块,包括:
第一判断单元,用于从所述主量子线路分层拓扑序列的第一层开始,判断所述主量子线路分层拓扑序列每一层是否存在与所述待查询量子线路分层拓扑序列的第一层的各第二类序列单元匹配的第一类序列单元,直至第一次得到存在与所述待查询量子线路分层拓扑序列的第一层的各第二类序列单元匹配的第一类序列单元的主量子线路分层拓扑序列层,记为所述主量子线路分层拓扑序列起始层,并记录与所述待查询量子线路分层拓扑序列的第一层的各第二类序列单元匹配的第一类序列单元的集合;
第二判断单元,用于判断所述主量子线路分层拓扑序列当前层的下一层是否存在与所述待查询量子线路拓扑序列当前层的下一层的各第二类序列单元匹配的第一类序列单元;
记录单元,用于若存在与所述待查询量子线路分层拓扑序列当前层的下一层的各第二类序列单元匹配的第一类序列单元,记录该次匹配出的第一类序列单元的集合,返回执行上一步,直至待查询量子线路拓扑序列的最后一层匹配完成。
可见,在现有技术方案下,本发明借助分层拓扑序列实现所述主量子线路中与所述待查询量子线路匹配的子量子线路,解决在主量子线路中查找特定结构的子量子线路的问题。
本发明实施例还提供一种存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行以实现上述量子线路匹配的方法。
具体的,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:
S101:分别构建主量子线路、待查询量子线路的有向无环图;
S102:基于所述有向无环图,获得各所述有向无环图对应的分层拓扑序列;
S103:根据所述分层拓扑序列,查询所述主量子线路分层拓扑序列中与所述待查询量子线路分层拓扑序列中各第二类序列单元匹配的第一类序列单元;
S104:根据所述第二序列单元匹配的所述第一类序列单元,确定所述主量子线路中存在的待查询量子线路。
具体的,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(Read-Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
可见,在现有技术方案下,本发明借助分层拓扑序列实现所述主量子线路中与所述待查询量子线路匹配的子量子线路,解决在主量子线路中查找特定结构的子量子线路的问题。
本发明实施例还提供一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述量子线路匹配的方法。
具体的,在本实施例中,上述电子装置可以被设置为执行以下步骤的计算机程序。
S101:分别构建主量子线路、待查询量子线路的有向无环图;
S102:基于所述有向无环图,获得各所述有向无环图对应的分层拓扑序列;
S103:根据所述分层拓扑序列,查询所述主量子线路分层拓扑序列中与所述待查询量子线路分层拓扑序列中各第二类序列单元匹配的第一类序列单元;
S104:根据所述第二序列单元匹配的所述第一类序列单元,确定所述主量子线路中存在的待查询量子线路。
可见,在现有技术方案下,本发明借助分层拓扑序列实现所述主量子线路中与所述待查询量子线路匹配的子量子线路,解决在主量子线路中查找特定结构的子量子线路的问题。
以上依据图式所示的实施例详细说明了本发明的构造、特征及作用效果,以上所述仅为本发明的较佳实施例,但本发明不以图面所示限定实施范围,凡是依照本发明的构想所作的改变,或修改为等同变化的等效实施例,仍未超出说明书与图示所涵盖的精神时,均应在本发明的保护范围内。

Claims (11)

1.一种量子线路匹配的方法,其特征在于,所述方法包括:
分别构建主量子线路、待查询量子线路的有向无环图;
基于所述有向无环图,获得各所述有向无环图对应的分层拓扑序列;
根据所述分层拓扑序列,查询所述主量子线路分层拓扑序列中与所述待查询量子线路分层拓扑序列中各第二类序列单元匹配的第一类序列单元;
根据所述第二序列单元匹配的所述第一类序列单元,确定所述主量子线路中存在的待查询量子线路。
2.根据权利要求1所述的一种量子线路匹配的方法,其特征在于,所述分别构建主量子线路、待查询量子线路的有向无环图,包括:
分别遍历所述主量子线路、待查询量子线路中的节点;
如果所述节点为量子逻辑门或测量操作,则创建该节点对应的一顶点,并与该节点操作的量子比特对应的上一顶点,建立该上一顶点指向该顶点的边。
3.根据权利要求2所述的一种量子线路匹配的方法,其特征在于,所述基于所述有向无环图,获得各所述有向无环图对应的分层拓扑序列,包括:
获得各所述有向无环图分别对应的邻接矩阵;
基于所述邻接矩阵,获得各所述有向无环图对应的分层拓扑序列。
4.根据权利要求3所述的一种量子线路匹配的方法,其特征在于,所述根据所述分层拓扑序列,查询所述主量子线路分层拓扑序列中与所述待查询量子线路分层拓扑序列中各第二类序列单元匹配的第一类序列单元,包括:
从所述主量子线路分层拓扑序列的第一层开始,判断所述主量子线路分层拓扑序列每一层是否存在与所述待查询量子线路分层拓扑序列的第一层的各第二类序列单元匹配的第一类序列单元,直至第一次得到存在与所述待查询量子线路分层拓扑序列的第一层的各第二类序列单元匹配的第一类序列单元的主量子线路分层拓扑序列层,记为所述主量子线路分层拓扑序列起始层,并记录与所述待查询量子线路分层拓扑序列的第一层的各第二类序列单元匹配的第一类序列单元的集合;
判断所述主量子线路分层拓扑序列当前层的下一层是否存在与所述待查询量子线路拓扑序列当前层的下一层的各第二类序列单元匹配的第一类序列单元;
若存在与所述待查询量子线路分层拓扑序列当前层的下一层的各第二类序列单元匹配的第一类序列单元,记录该次匹配出的第一类序列单元的集合,返回执行上一步,直至待查询量子线路拓扑序列的最后一层匹配完成。
5.根据权利要求4所述的一种量子线路匹配的方法,其特征在于,还包括:
若不存在与所述待查询量子线路分层拓扑序列当前层的下一层的各第二类序列单元匹配的第一类序列单元,则所述主量子线路中不含有与待查询量子线路相匹配的子量子线路。
6.一种量子线路匹配的装置,其特征在于,所述装置包括:
构建模块,用于分别构建主量子线路、待查询量子线路的有向无环图;
获得模块,用于基于所述有向无环图,获得各所述有向无环图对应的分层拓扑序列;
查询模块,用于根据所述分层拓扑序列,查询所述主量子线路分层拓扑序列中与所述待查询量子线路拓扑序列中各第二类序列单元匹配的第一类序列单元;
确定模块,用于根据所述第二序列单元匹配的所述第一类序列单元,确定所述主量子线路中存在的待查询量子线路。
7.根据权利要求6所述的一种量子线路匹配的装置,其特征在于,所述构建模块,包括:
遍历单元,用于分别遍历所述主量子线路、待查询量子线路中的节点;
创建单元,用于如果所述节点为量子逻辑门或测量操作,则创建该节点对应的一顶点,并与该节点操作的量子比特对应的上一顶点,建立该上一顶点指向该顶点的边。
8.根据权利要求6所述的一种量子线路匹配的装置,其特征在于,所述获得模块,包括:
第一获得单元,用于获得各所述有向无环图分别对应的邻接矩阵;
第二获得单元,用于基于所述邻接矩阵,获得各所述有向无环图对应的分层拓扑序列。
9.根据权利要求6所述的一种量子线路匹配的装置,其特征在于,所述查询模块,包括:
第一判断单元,用于从所述主量子线路分层拓扑序列的第一层开始,判断所述主量子线路分层拓扑序列每一层是否存在与所述待查询量子线路分层拓扑序列的第一层的各第二类序列单元匹配的第一类序列单元,直至第一次得到存在与所述待查询量子线路分层拓扑序列的第一层的各第二类序列单元匹配的第一类序列单元的主量子线路分层拓扑序列层,记为所述主量子线路分层拓扑序列起始层,并记录与所述待查询量子线路分层拓扑序列的第一层的各第二类序列单元匹配的第一类序列单元的集合;
第二判断单元,用于判断所述主量子线路分层拓扑序列当前层的下一层是否存在与所述待查询量子线路拓扑序列当前层的下一层的各第二类序列单元匹配的第一类序列单元;
记录单元,用于若存在与所述待查询量子线路分层拓扑序列当前层的下一层的各第二类序列单元匹配的第一类序列单元,记录该次匹配出的第一类序列单元的集合,返回执行上一步,直至待查询量子线路拓扑序列的最后一层匹配完成。
10.一种存储介质,其特征在于,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行所述权利要求1至5任一项中所述的方法。
11.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行所述权利要求1至5任一项中所述的方法。
CN201911280587.5A 2019-12-11 2019-12-11 一种量子线路匹配的方法、装置、存储介质和电子装置 Active CN111178532B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911280587.5A CN111178532B (zh) 2019-12-11 2019-12-11 一种量子线路匹配的方法、装置、存储介质和电子装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911280587.5A CN111178532B (zh) 2019-12-11 2019-12-11 一种量子线路匹配的方法、装置、存储介质和电子装置

Publications (2)

Publication Number Publication Date
CN111178532A true CN111178532A (zh) 2020-05-19
CN111178532B CN111178532B (zh) 2023-12-12

Family

ID=70653885

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911280587.5A Active CN111178532B (zh) 2019-12-11 2019-12-11 一种量子线路匹配的方法、装置、存储介质和电子装置

Country Status (1)

Country Link
CN (1) CN111178532B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023040057A1 (zh) * 2021-09-14 2023-03-23 威讯柏睿数据科技(北京)有限公司 一种获取指定顶点拓扑序列的方法和设备
CN115907023A (zh) * 2021-08-17 2023-04-04 合肥本源量子计算科技有限责任公司 待执行量子程序目标映射的确定方法、装置及量子计算机
CN116629370A (zh) * 2023-06-26 2023-08-22 北京百度网讯科技有限公司 量子电路处理方法、装置及电子设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3249557A1 (en) * 2016-05-27 2017-11-29 Dynactionize N.V. Computer implemented and computer controlled method, computer program product and platform for arranging data for processing and storage at a data storage engine
CN109409524A (zh) * 2018-09-26 2019-03-01 合肥本源量子计算科技有限责任公司 一种量子程序运行方法及装置、存储介质及电子装置
WO2019054990A1 (en) * 2017-09-12 2019-03-21 Fowler Austin Greig QUANTUM ERROR CORRECTION
CN110187885A (zh) * 2019-06-10 2019-08-30 合肥本源量子计算科技有限责任公司 一种量子程序编译的中间代码生成方法及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3249557A1 (en) * 2016-05-27 2017-11-29 Dynactionize N.V. Computer implemented and computer controlled method, computer program product and platform for arranging data for processing and storage at a data storage engine
WO2019054990A1 (en) * 2017-09-12 2019-03-21 Fowler Austin Greig QUANTUM ERROR CORRECTION
CN109409524A (zh) * 2018-09-26 2019-03-01 合肥本源量子计算科技有限责任公司 一种量子程序运行方法及装置、存储介质及电子装置
CN110187885A (zh) * 2019-06-10 2019-08-30 合肥本源量子计算科技有限责任公司 一种量子程序编译的中间代码生成方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
奚业雷;吕建华;张柏礼;: "基于拓扑序列的DAG子图包含查询算法研究" *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115907023A (zh) * 2021-08-17 2023-04-04 合肥本源量子计算科技有限责任公司 待执行量子程序目标映射的确定方法、装置及量子计算机
WO2023040057A1 (zh) * 2021-09-14 2023-03-23 威讯柏睿数据科技(北京)有限公司 一种获取指定顶点拓扑序列的方法和设备
CN116629370A (zh) * 2023-06-26 2023-08-22 北京百度网讯科技有限公司 量子电路处理方法、装置及电子设备
CN116629370B (zh) * 2023-06-26 2024-05-24 北京百度网讯科技有限公司 量子电路处理方法、装置及电子设备

Also Published As

Publication number Publication date
CN111178532B (zh) 2023-12-12

Similar Documents

Publication Publication Date Title
CN110929873B (zh) 一种量子程序的处理方法、装置、存储介质和电子装置
CN111027702B (zh) 一种实现量子线路替换的方法、装置、存储介质和电子装置
CN110825375B (zh) 一种量子程序的转化方法、装置、存储介质和电子装置
CN113033811B (zh) 两量子比特逻辑门的处理方法及装置
CN111027703B (zh) 一种量子线路查询的方法、装置、存储介质及电子装置
CN110516810B (zh) 一种量子程序的处理方法、装置、存储介质和电子装置
CN110889507A (zh) 一种量子程序转有向无环图的方法、装置、存储介质及电子装置
CN111178532B (zh) 一种量子线路匹配的方法、装置、存储介质和电子装置
CN112073221B (zh) 一种实现网络节点排序的方法及装置
CN113222155B (zh) 一种量子线路的构建方法、装置、电子装置和存储介质
CN111915011B (zh) 一种单振幅量子计算模拟方法
CN113128015B (zh) 预估单振幅模拟量子计算所需资源的方法和系统
CN111931939A (zh) 一种单振幅量子计算模拟方法
CN115146485B (zh) 基于gpu加速的射频链路仿真方法
CN116932988A (zh) 组合优化问题求解方法、装置、存储介质和电子设备
CN115983392A (zh) 量子程序映射关系的确定方法、装置、介质及电子装置
KR102474856B1 (ko) 인공지능 기반의 반도체 설계 자동화 방법
CN113609806B (zh) 一种结合子图同构的量子线路程序通用变换方法
Iacca et al. Introducing kimeme, a novel platform for multi-disciplinary multi-objective optimization
CN115775029A (zh) 量子线路转化方法、装置、介质及电子装置
WO2024116608A1 (ja) 計算機システム及び情報処理方法
Verbeek et al. Visualizing state spaces with Petri nets
CN114692880B (zh) 一种量子线路中量子态振幅的模拟方法及装置
CN116227585B (zh) 集群任务的并行执行方法、装置、计算机设备和存储介质
CN114372584B (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
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

CB02 Change of applicant information
GR01 Patent grant
GR01 Patent grant