CN111027702B - 一种实现量子线路替换的方法、装置、存储介质和电子装置 - Google Patents
一种实现量子线路替换的方法、装置、存储介质和电子装置 Download PDFInfo
- Publication number
- CN111027702B CN111027702B CN201911265560.9A CN201911265560A CN111027702B CN 111027702 B CN111027702 B CN 111027702B CN 201911265560 A CN201911265560 A CN 201911265560A CN 111027702 B CN111027702 B CN 111027702B
- Authority
- CN
- China
- Prior art keywords
- quantum
- sequence
- program
- circuit
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 90
- 239000002096 quantum dot Substances 0.000 claims description 62
- 238000004590 computer program Methods 0.000 claims description 15
- 125000002015 acyclic group Chemical group 0.000 claims description 10
- 238000005259 measurement Methods 0.000 claims description 9
- 238000012545 processing Methods 0.000 abstract description 10
- 230000008569 process Effects 0.000 description 42
- 239000011159 matrix material Substances 0.000 description 16
- 238000010586 diagram Methods 0.000 description 7
- 238000010276 construction Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 5
- 238000004088 simulation Methods 0.000 description 5
- 230000004888 barrier function Effects 0.000 description 2
- 210000001072 colon Anatomy 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000035515 penetration Effects 0.000 description 2
- 235000001553 Betula platyphylla Nutrition 0.000 description 1
- 241001313086 Betula platyphylla Species 0.000 description 1
- 102100031033 CCR4-NOT transcription complex subunit 3 Human genes 0.000 description 1
- 101000919663 Homo sapiens CCR4-NOT transcription complex subunit 3 Proteins 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000008030 elimination Effects 0.000 description 1
- 238000003379 elimination reaction Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000011835 investigation Methods 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000002243 precursor Substances 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 239000013598 vector Substances 0.000 description 1
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=1开始,在所述量子程序的拓扑序列中的第一类序列单元中,依次查找与所述待查询量子线路的拓扑序列每相邻m层的所有第二类序列单元匹配的第一类序列单元;其中,m为正整数且m不大于所述待查询量子线路的拓扑序列的层数;
输出匹配结果;若所述匹配结果中,各待查询量子线路的拓扑序列每相邻 m层的所有第二类序列单元均存在唯一匹配的量子程序的拓扑序列的第一类序列单元,则匹配完成;
否则,将m加1,返回执行在所述量子程序的拓扑序列中的第一类序列单元中,依次查找与所述待查询量子线路的拓扑序列依次相邻m层的所有第二类序列单元匹配的第一类序列单元的步骤。
如上所述的实现量子线路替换的方法,优选的,所述基于所述拓扑序列,查询所述量子程序中与所述待查询量子线路匹配的子量子线路,包括:
根据第二预设匹配规则,通过分别遍历所述量子程序的拓扑序列中的第一类序列单元和所述待查询量子线路第二类序列单元将所述待查询量子线路和所述量子程序分别对应的分层拓扑序列进行匹配,得到所述量子程序中与所述待查询量子线路匹配的子量子线路。
如上所述的实现量子线路替换的方法,优选的,根据第二预设匹配规则,通过分别遍历所述量子程序的拓扑序列中的第一类序列单元和所述待查询量子线路第二类序列单元将所述待查询量子线路和所述量子程序分别对应的分层拓扑序列进行匹配,得到所述量子程序中与所述待查询量子线路匹配的子量子线路,包括:
从所述量子程序拓扑序列的第一层开始,判断所述量子程序拓扑序列每一层是否存在与所述待查询量子线路拓扑序列的第一层的各第二类序列单元匹配的第一类序列单元,直至第一次得到存在与所述待查询量子线路拓扑序列的第一层的各第二类序列单元匹配的第一类序列单元的量子程序拓扑序列层,记为所述量子程序拓扑序列起始层,并记录与所述待查询量子线路拓扑序列的第一层的各第二类序列单元匹配的第一类序列单元的集合;
判断所述量子程序拓扑序列当前层的下一层是否存在与所述待查询量子线路拓扑序列当前层的下一层的各第二类序列单元匹配的第一类序列单元;
若存在与所述待查询量子线路拓扑序列当前层的下一层的各第二类序列单元匹配的第一类序列单元,记录该次匹配出的第一类序列单元的集合,返回执行上一步,直至待查询量子线路拓扑序列的最后一层匹配完成。
如上所述的实现量子线路替换的方法,优选的,所述将所述子量子线路替换为所述目标量子线路,获得新的量子程序,包括:
确定所述子量子线路与所述目标量子线路的量子比特的对应关系;
删除所述子量子线路在所述量子程序对应的有向无环图中的顶点;
根据所述对应关系,将所述目标量子线路对应的有向无环图中的顶点,插入删除顶点后的量子程序对应的有向无环图中形成新有向无环图,并基于所述新有向无环图,构建新的量子程序。
如上所述的实现量子线路替换的方法,优选的,所述基于所述新有向无环图,构建新的量子程序,具体包括:
获取所述新有向无环图;
构建所述新有向无环图对应的新分层拓扑序列;
通过所述新分层拓扑序列,构建新的量子程序。
一种实现量子线路替换的装置,包括:
构建模块,用于分别构建量子程序、待查询量子线路、目标量子线路的有向无环图;
查询模块,用于根据所述有向无环图,查询所述量子程序中与所述待查询量子线路匹配的子量子线路;
替换模块,用于将所述子量子线路替换为所述目标量子线路,获得新的量子程序。
如上所述的实现量子线路替换的装置,优选的,所述构建模块包括:
获取单元,用于分别获取量子程序、待查询量子线路、目标量子线路对应的拓扑序列。
如上所述的实现量子线路替换的装置,优选的,所述构建模块还包括:
遍历单元,用于分别遍历所述量子程序、待查询量子线路、目标量子线路中的所有子节点;
判断单元,用于判断如果所述子节点为量子逻辑门或测量操作,则创建该子节点对应的一顶点,并与该子节点操作的量子比特对应的上一顶点,建立该上一顶点指向该顶点的边。
如上所述的实现量子线路替换的装置,优选的,所述构建模块还包括:
排序单元,用于将各所述有向无环图分别进行分层拓扑排序,分别得到各有向无环图对应的一个分层拓扑序列,其中,所述分层拓扑序列包括:顶点间的并行信息以及顶点引出的所述有向边的信息。
如上所述的实现量子线路替换的装置,优选的,所述查询模块包括:
第一预设匹配单元,用于根据第一预设匹配规则,通过分别遍历所述量子程序的拓扑序列中的第一类序列单元和所述待查询量子线路第二类序列单元将所述待查询量子线路和所述量子程序分别对应的分层拓扑序列进行匹配,得到所述量子程序中与所述待查询量子线路匹配的子量子线路。
第二预设匹配单元,用于根据第二预设匹配规则,通过分别遍历所述量子程序的拓扑序列中的第一类序列单元和所述待查询量子线路第二类序列单元将所述待查询量子线路和所述量子程序分别对应的分层拓扑序列进行匹配,得到所述量子程序中与所述待查询量子线路匹配的子量子线路。
如上所述的实现量子线路替换的装置,优选的,所述替换模块包括:
确定单元,用于确定所述子量子线路与所述目标量子线路的量子比特的对应关系;
删除单元,用于删除所述子量子线路在所述量子程序对应的有向无环图中的顶点;
插入单元,用于根据所述对应关系,将所述目标量子线路对应的有向无环图中的顶点,插入删除顶点后的量子程序对应的有向无环图中形成新有向无环图,并基于所述新有向无环图,构建新的量子程序。
一种存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行所述实现量子线路替换的方法。
一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行所述实现量子线路替换的方法。
与现有技术相比,本发明分别构建量子程序、待查询量子线路、目标量子线路的有向无环图;基于有向无环图,查询量子程序中与待查询量子线路匹配的子量子线路;将子量子线路替换为目标量子线路,获得新的量子程序。本发明借助有向无环图实现所述量子程序中与所述待查询量子线路匹配的子量子线路的查询以及替换,因为有向无环图反映的是量子线路的空间展示,对应的量子线路的非连续存储,所以本发明能够实现量子程序中非连续存储的量子线路的替换处理。
附图说明
图1是本发明实施例提供的一种实现量子线路替换方法的流程示意图;
图2是本发明实施例提供的一种带量子比特序号的待查询量子线路的有向无环图;
图3是本发明实施例提供的一种带顶点序号的待查询量子线路的有向无环图;
图4是本发明实施例提供的一种带量子比特序号处于更新过程中的有向无环图的示意图;
图4a是本发明实施例提供的一种带量子比特序号处于进一步更新中的有向无环图的示意图;
图5是本发明实施例提供的一种带顶点序号和量子比特序号的量子程序的有向无环图;
图5a是本发明实施例提供的一种带顶点序号和量子比特序号处于更新过程中的量子程序的有向无环图;
图5b是本发明实施例提供的一种带顶点序号和量子比特序号处于进一步更新中的量子程序的有向无环图;
图6是本发明实施例提供的一种量子程序划分执行时序后的量子线路示意图;
图7是本发明实施例提供的一种实现子量子线路替换为目标量子线路流程示意图;
图8是本发明实施例提供的一种实现量子线路替换装置的结构示意图。
具体实施方式
下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。
需要说明的是,本发明的说明书和权利要求书中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
本发明的实施例提供了一种实现量子线路替换的方法,应用于电子设备如移动终端,如手机、平板电脑,优选应用于计算机,如普通电脑、量子计算机等。下面对其进行详细说明。
需要说明的是,真正的量子计算机是混合结构的,它包含两大部分:一部分是经典计算机,负责执行经典计算与控制;另一部分是量子设备,负责执行量子计算。实际上,真正的量子程序是由量子语言如Qrunes语言编写的一串能够在量子计算机上运行的指令序列,实现了对量子逻辑门操作的支持,并最终实现对量子计算的模拟。具体的说,量子程序就是一系列按照一定时序操作量子逻辑门的指令序列。
在实际应用中,为了对量子计算进行模拟以验证量子应用等等,可以通过运行在普通计算机的量子虚拟机实现。本发明实施例所指量子程序,即是在量子操作平台上运行的由经典语言编写的表征量子比特及其演化的程序,其中与量子计算相关的量子比特、量子逻辑门等等均有相应的经典代码表示。
量子线路,也称量子逻辑电路,是最常用的通用量子计算模型,表示在抽象概念下对于量子比特进行操作的线路,其组成包括量子比特、线路(时间线),以及各种量子逻辑门,最后常需要通过量子测量操作将结果读取出来。
不同于传统电路是用金属线所连接以传递电压信号或电流信号,在量子线路中,线路可看成是由时间所连接,亦即量子比特的状态随着时间自然演化,在这过程中按照哈密顿运算符的指示,一直到遇上逻辑门而被操作。
一个量子程序整体上对应有一条总的量子线路,本发明所述量子程序即指该条总的量子线路,其中,该总的量子线路中的量子比特总数与量子程序的量子比特总数相同。可以理解为:一个量子程序主要由量子线路、针对量子线路中量子比特的测量操作、保存测量结果的寄存器及控制流节点(跳转指令)组成,一条量子线路可以包含几十上百个甚至千上万个量子逻辑门操作。量子程序的执行过程,就是对所有的量子逻辑门按照一定时序执行的过程。需要说明的是,时序即单个量子逻辑门被执行的时间顺序。
需要说明的是,经典计算中,最基本的单元是比特,而最基本的控制模式是逻辑门,可以通过逻辑门的组合来达到控制电路的目的。类似地,处理量子比特的方式就是量子逻辑门。使用量子逻辑门,能够使量子态发生演化,量子逻辑门是构成量子线路的基础,就像传统逻辑门跟一般数位线路之间的关系。量子逻辑门包括单比特量子逻辑门,如Hadamard门(H门)、Pauli-X门、Pauli-Y 门、Pauli-Z门、RX门、RY门、RZ门;多比特量子逻辑门,如CNOT门、CR 门、iSWAP门、Toffoli门。量子逻辑门一般使用酉矩阵表示,而酉矩阵不仅是矩阵形式,也是一种操作和变换。
可以理解的是,在量子计算模拟中,量子程序中可能存在多个特定结构的子量子线路或由多个相同的量子逻辑门组成的子量子线路,这些量子逻辑门或子量子线路是可以相互替代的,例如一个SWAP门可以使用多个单门和CNOT 门替换,具体替换关系为:SWAP(q[i],q[j])=CNOT(q[i],q[j])+H(q[i])+H(q[j])+CNOT(q[i],q[j])+H(q[i])+H(q[j])+CNOT(q[i],q[j]);也可以仅使用多个CNOT门进行替换,具体替换关系为:SWAP(q[i],q[j])= CNOT(q[i],q[j])+CNOT(q[j],q[i])+CNOT(q[i],q[j])。
通过这些量子逻辑门或子量子线路的相互替代,可以达到减少量子逻辑门的个数,从而优化量子计算的效果,例如:采用一个例如SWAP的量子逻辑门替换多个CNOT门组成的量子线路。
通过这些量子逻辑门或子量子线路的相互替代,也可以一定程度克服不同平台间的技术壁垒,并提高程序运行效率。例如:现今的量子计算研究“百花争放、百家齐鸣”的大局势下,参局的各量子计算公司之间的用于执行量子计算的核心的平台并没有统一标准,例如A公司定义了SWAP门,而B公司没有定义SWAP门,只在量子程序中用多个单门和CNOT门来等效SWAP门的功能。这样导致A公司包含SWAP门的量子程序只能在自身开发的量子程序运行平台进行调试等后续工作,而无法利用B公司使用的量子程序运行平台进行后续工作。如此发展,则将可能造成不同平台间的技术壁垒,影响量子计算整体行业的发展。
现有技术中,针对能够一定程度解决以上技术问题的可以相互替代的量子逻辑门或子量子线路有连续存储的局限,针对非连续存储的量子线路,并没有可行的替换方法。
基于此,参见图1,图1为本发明实施例提供的一种实现量子线路替换方法的流程示意图,具体包括如下步骤:
S101:分别构建量子程序、待查询量子线路、目标量子线路的有向无环图;
具体的,量子程序可以理解为一个操作序列,其中可以包含量子线路、量子逻辑门、测量操作(Measure)等。量子线路表示在抽象概念下,对于量子比特进行操作的线路,是各种逻辑门组成的集合,因此量子线路中可以包含量子逻辑门和子量子线路。待查询量子线路和目标量子线路均为一个已知具体结构的量子线路。
有向无环图(DAG图)是有向图的一种,字面意思的理解就是图中没有环,是一个无回路的有向图,如果有一个非有向无环图,从A点出发向B点经过C 点可以回到A点,则形成一个环。若将从C点到A点的方向改为从A点到C 点则变成有向无环图,其常被用来表示事件间的驱动依赖关系,任务之间的调度。
具体的,以构建量子程序的有向无环图为例详细说明操作过程,构建待查询量子线路和构建目标量子线路过程与构建量子程序的有向无环图的方法相同。
首先遍历整个量子程序的子节点,所谓量子程序的子节点指在整个程序的相对位置的一特定结构的数据,子节点可以是量子逻辑门、测量操作(Measure)、子量子程序、量子线路等。在遍历整个量子程序的过程中,如果子节点是量子逻辑门和测量操作则创建该子节点对应的顶点,并与量子逻辑门操作的量子比特对应的上一个顶点建立边的关系,如果遍历过程中,若子节点为量子程序或者量子线路,则继续遍历其子节点,确定其子节点中是否包含量子逻辑门或者测量操作。
示例性的,待查询量子线路为H(q[0])<<H(q[1])<<CNOT(q[0],q[1])<<RX(q[0])<<RY(q[1]),则构建待查询量子线路的有向无环图的过程如下:
首先遍历待查询量子线路的所有子节点,分别为节点H(q[0])、节点 H(q[1])、节点CNOT(q[0],q[1])、节点RX(q[0])、节点RY(q[1]),并分别创建每个子节点对应的顶点并记录下顶点信息,分别为顶点H(q[0])、顶点 H(q[1])、顶点CNOT(q[0],q[1])、顶点RX(q[0])、顶点RY(q[1]),其中,顶点信息包括表示该子节点包含的逻辑门信息,以及该量子逻辑门操作的量子比特信息(如图2所示)和/或表示该顶点被创建的相对顺序的顶点序号(如图3所示)。
下面以顶点信息包括表示该子节点包含的逻辑门信息,以及表示该顶点被创建的相对顺序的顶点序号为例说明。
示例性的,待查询量子线路为H(q[0])<<H(q[1])<<CNOT(q[0], q[1])<<RX(q[0])<<RY(q[1])的有向无环图的构建过程,具体如下:
针对遍历到的H(q[0]),H(q[1])子节点,创建的顶点及记录下顶点信息为:H(q[0]),H(q[1]);其中0和1分别表示0比特和1比特,即两个H门分别操控的量子比特序号为0和1。同时,由于H(q[0]),H(q[1])这两个子节点操作的量子比特无对应的上一顶点,因此无需建立上一顶点指向该H(q[0])或顶点H(q[1])的边。
当遍历到量子节点CNOT(q[0],q[1])时,创建的顶点及记录下顶点信息为:CNOT(q[0],q[1]);其中0和1分别表示CNOT门操作的控制比特和目标比特,同时,由于CNOT(q[0],q[1])顶点操作的0比特和1比特的上一个顶点分别为H(q[0]),H(q[1]),则分别建立H(q[0])和H(q[1])指向CNOT(q[0], q[1])的边,即创建边H(q[0])->CNOT(q[0],q[1])和H(q[1])->CNOT(q[0], q[1]),其中“->”表示边的方向。
按照上述方法和原理,依次遍历上述待查询量子线路的所有子节点,遍历节点RX(q[0]),并创建与该子节点对应的顶点及记录下顶点信息RX(q[0]), 创建边CNOT(q[0],q[1])->RX(q[0]);直至遍历完该量子线路的最后一个子节点RY(q[1]),并创建与该子节点对应的顶点及记录下顶点信息RY(q[1]),并创建边CNOT(q[0],q[1])->RY(q[1]),得到如图2所示的一种带量子比特序号的待查询量子线路的有向无环图(DAG)。
针对遍历到的H(q[0]),H(q[1])子节点,创建的顶点及记录下顶点信息为:H1,H2;其中,1表示第一个创建的顶点,即该顶点的顶点序号为1,也可以理解为顶点1;2表示第二个创建的顶点,即该顶点的顶点序号为2,可以理解为顶点2。同时,由于H(q[0]),H(q[1])这两个子节点操作的量子比特无对应的上一顶点,因此无需建立上一顶点指向该顶点1或顶点2的边。
当遍历到量子节点CNOT(q[0],q[1])时,创建的顶点及记录下顶点信息为:CNOT3;其中,3表示第三个创建的顶点,即该顶点的顶点序号为3,也可以理解为顶点3,同时,由于CNOT(q[0],q[1])这个子节点操作的0比特和1 比特的上一个顶点分别为顶点1,顶点2,则分别建立顶点1和顶点2指向顶点3的边,即创建边<1,3>和<2,3>。
按照上述方法和原理,依次遍历,直至遍历完该量子线路的最后一个子节点RY(q[1]),并创建与该子节点对应的顶点及记录下顶点信息RY5,得到如图 3所示的一种带顶点序号的待查询量子线路的有向无环图(DAG)。
为了更清楚的说明量子程序、待查询量子线路、目标量子线路转化为有向无环图的过程,本申请文件后续实施例采用的是带量子比特序号的有向无环图和带顶点序号的有向无环图的结合的方式来详细阐述转化过程。因此后续实施例有向无环图的每个顶点包含的顶点信息包括量子逻辑门种类、量子逻辑门所操作的量子比特以及顶点信号。
示例性的,若量子程序为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])<<RY(q[2])<<CNOT(q[2],q[3]) 则遍历该量子程序的过程如下:
首先分别创建顶点并记录下该量子逻辑门操作的量子比特,记为: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]), RY(q[2]),CNOT(q[2],q[3]);当遍历到量子逻辑门RX门时,且0比特的上一个顶点为1,则创建新的顶点5代表RX操作,创建边<1,5>;继续遍历该量子线路,当遍历到量子逻辑门CNOT门时,且CNOT门操作的量子比特为1 比特和2比特,记录1比特和2比特的上一个顶点分别为2,3,则创建新的顶点6代表CNOT门操作,创建边<2,6><3,6>;当遍历到量子逻辑门RX门时,且RX门操作的量子比特为3比特,记录3比特的上一个顶点为4,则创建新的顶点7代表RX门操作,创建边<4,7>;当遍历到量子逻辑门RX门时,且RX门操作的量子比特为1比特,记录1比特的上一个顶点为6,则创建新的顶点8代表RX门操作,创建边<6,8>;当遍历到量子逻辑门RY门时,且RY门操作的量子比特为2比特,记录2比特的上一个顶点为6,则创建新的顶点9 代表RY门操作,创建边<6,9>;继续遍历该量子线路,当遍历到量子逻辑门 CNOT门时,且CNOT门操作的量子比特为2比特和3比特,记录2比特和3比特的上一个顶点分别为7,9,则创建新的顶点10代表CNOT门操作,创建边<7,10><9,10>;得到如图5所示的一种带顶点序号和量子比特序号的量子程序的有向无环图(DAG)。
S102:基于所述有向无环图,查询所述量子程序中与所述待查询量子线路匹配的子量子线路;
具体的,基于有向无环图,查询量子程序中与待查询量子线路匹配的子量子线路,首先需要各所述有向无环图分别对应的拓扑序列,然后基于所述拓扑序列,查询所述量子程序中与所述待查询量子线路匹配的子量子线路。
S1021:获得各所述有向无环图分别对应的拓扑序列;
周知的,对一个有向无环图(DAG)进行拓扑排序的效果将有向无环图中所有顶点排成一个线性序列,使得图中任意一对顶点U和V,若边<U,V>属于该有向无环图,则U在线性序列中出现在V之前。例如边<3,4>,可知顶点3 与顶点4相连,且边的方向由顶点3指向顶点4。有向无环图的拓扑排序的过程,可以简单描述为:1)在有向无环图中选择没有前驱的顶点且输出之;2) 在图中删除该顶点和所有以它为尾的弧。
通常,在计算机上实现以上过程时,采用一位数组存储有向无环图的顶点信号,记为顶点矩阵;采用二维的数组存储有向无环图的各顶点之间的边的信息,记为邻接矩阵,且在邻接矩阵的存储结构的头结点中增加一个存放顶点入度的数组。或,通过对邻接矩阵的处理,获得每个顶点的入度。亦或通过对邻接矩阵的处理,获得邻接矩阵对应的有向无环图所包含的顶点数。可以理解的是,入度是指图中某顶点作为图中边的终点次数之和;入度为0的顶点即为没有前驱动的顶点。删除入度为0顶点以及以它为尾的弧的操作,则可换以弧头顶点的入度减1来实现。
本实施例中,根据入度对有向无环图的顶点进行分层拓扑排序以获得其拓扑序列,而入度的获得,直接借助邻接矩阵的处理实现,该实现过程,属于现有技术,在此不再赘述。且通过对邻接矩阵的处理,获得邻接矩阵对应的有向无环图所包含的顶点数的实现过程,属于现有技术,在此不再赘述
针对量子线路的有向无环图进行分层拓扑排序的过程,可以描述如下:
a.获得有向无环图的顶点数,并判断所述顶点数是否为0;
如果顶点数为0,则直接输出空序列作为输出拓扑序列;
如果顶点数不为0,则获取所述当前有向无环图内所有入度为0的顶点对应的顶点特征信息作为一个序列单元输出;并更新所述有向无环图;
b.对更新之后的所述有向无环图重复执行a过程,直至有向无环图处理完,得到完整拓扑序列。
其中:在a过程中,获取有向无环图的顶点数可以通过有向无环图的顶点矩阵获取,亦可以通过有向无环图的邻接矩阵获得,在此不做具体限制。
其中:在a过程中,获取所述有向无环图内所有入度为0的顶点对应的拓扑序列的顶点特征信息作为一个序列单元的具体实现过程,可以描述为:
(a1)获取所述有向无环图内所有入度为0的顶点,并获取与这些顶点相连的下一个顶点的信息;具体的,该过程可以通过遍历当前有向无环图的邻接矩阵实现;
(a2)将各所述入度为0的顶点对应的所述下一个顶点的信息存入该入度为0的顶点信息后,作为拓扑序列的一个序列单元信息输出,即获得一个序列单元;
(a3)删除当前有向无环图中所有以入度为0的顶点,及所有以入度为0 的顶点为尾的边以更新所述有向无环图。
示例性的,参见图2、图3所示的量子线路的有向无环图的分层拓扑排序过程如下:
A1.获得有向无环图的顶点数,并判断所述顶点数是否为0;
如果顶点数为0,则直接输出空序列作为输出拓扑序列;
如果顶点数不为0,则获取所述有向无环图内所有入度为0的顶点对应的顶点特征信息作为一序列单元输出;并更新所述有向无环图。
具体的,
(a11)针对图2和3的有向无环图,可知该有向无环图的顶点数为5,不为0,则遍历图2和3的有向无环图,该遍历可以通过遍历有向无环图的邻接矩阵实现,遍历得到当前有向无环图中入度均为0的顶点为顶点H(q[0])和 H(q[1]),与顶点H(q[0])和H(q[1])分别相连的下一个顶点为顶点CNOT(q[0], q[1])。
(a12)将各所述入度为0的顶点对应的所述下一个顶点的信息存入该入度为0的顶点信息后,作为拓扑序列的一个序列单元信息输出;即将顶点 CNOT(q[0],q[1])的信息存入对应的入度为0的顶点H(q[0])的顶点信息后,得到H(q[0])[CNOT(q[0],q[1])],可以简化记为H[CNOT],作为拓扑序列的一个序列单元信息输出;同时,将顶点CNOT(q[0],q[1])的信息存入对应的入度为0的顶点H(q[1])的顶点信息后,得到H(q[1])[CNOT(q[0],q[1])],亦可以简化记为H[CNOT],作为拓扑序列的另一个序列单元信息输出。得到的拓扑序列包含两个序列单元信息,即得到拓扑序列的一部分,简记为H[CNOT], H[CNOT]。
(a13)删除当前有向无环图中所有以入度为0的顶点,及所有以入度为 0的顶点为尾的边以更新所述有向无环图。即删除顶点H(q[0])和H(q[1]),以及H(q[0])指向CNOT(q[0],q[1])的边,H(q[1])指向CNOT(q[0],q[1])的边,得到如图4所示更新之后的有向无环图。
需要说明的是,不管以H(q[1])[CNOT(q[0],q[1])]的形式还是H[CNOT] 的形式输出拓扑序列的序列单元,可以理解的是,拓扑序列的每个序列单元应该包括当前顶点量子逻辑门的性质、与当前顶点相连的下一个顶点的量子逻辑门性质、当前顶点的量子逻辑门操作的量子比特和与当前顶点相连的下一个顶点的量子逻辑门操作的量子比特的相对关系和/或量子比特性质。
进一步需要说明的是,以上所述的当前顶点指每次遍历当前有向无环图时确定的当前有向无环图中所有入度为0的顶点。
而可以理解的是,量子逻辑门分为带参量子逻辑门和不带参量子逻辑门,带参量子逻辑门又分为参数可调量子逻辑门和参数固定量子逻辑门,所述量子逻辑门的性质包含量子逻辑门的种类以及量子逻辑门的参数性质。
另外,可以理解的是,量子程序和/或量子线路中,为了区分不同量子比特,通常借助量子比特序号(即量子位)表示,以上所述的量子比特序号是根据量子程序和/或量子线路的需要而设置的,具有不确定性,当前顶点的量子逻辑门操作的量子比特和与当前顶点相连的下一个顶点的量子逻辑门操作的量子比特的相对关系是指量子逻辑门所操作的量子比特对应的量子位的相对关系。
另外,以上所述的量子比特的性质是指量子逻辑门作用相关的量子比特的作用,比如:对于两门或者多门,起控制作用的量子比特为控制比特,起被控制作用的量子比特称为目标比特,控制比特和目标比特的性质和作用不一样。
B1.对更新之后的所述有向无环图重复执行a过程,直至有向无环图处理完,得到完整拓扑序列。
具体的,针对(a13)更新之后的如图4所示有向无环图,继续执行(a11) 到(a13)的过程,得到的部分拓扑序列更新为H[CNOT],H[CNOT]|CNOT[RX], CNOT[RY],得到更新之后的如图4a所示一种带量子比特序号处于进一步更新中的有向无环图的示意图。
在针对如图4a所示有向无环图继续执行(a1)到(a3)的过程,得到的部分拓扑序列更新为H[CNOT],H[CNOT]|CNOT[RX],CNOT[RY]|RX[],RY[],此时,如图2和图3的有向无环图处理完,即H[CNOT],H[CNOT]|CNOT[RX], CNOT[RY]|RX[],RY[]为得到的完整拓扑序列。其中:“|”为分层符号,[]表示与当前入度为0的顶点无相连的下一顶点。
以上过程,完整的描述了如图2和图3所示的待查询量子线路的有向无环图的分层拓扑排序过程。本领域技术人员等同和/或等效进行的任意量子线路的分层拓扑排序均落入以上保护范围。
同时,基于图5所示的量子线路有向无环图,基于以上相同的方法和原理,进行分层拓扑排序,得到的拓扑序列为H[RX],H[CNOT],H[CNOT],H[RX]|RX [],CNOT[RX],CNOT[RY],RX[CNOT]|RX[],RY[CNOT]|CNOT[]。
具体的,分层拓扑排序过程如下:
执行步骤A1操作,获得有向无环图的顶点数,并判断所述顶点数是否为 0;
如果顶点数为0,则直接输出空序列作为输出拓扑序列;
如果顶点数不为0,则获取所述有向无环图内所有入度为0的顶点对应的序列单元信息作为部分拓扑序列输出;并更新所述有向无环图。
具体的,
(a21)针对图5的有向无环图,可知该有向无环图的顶点数为10,不为0,则遍历图5的有向无环图,该遍历可以通过遍历有向无环图的邻接矩阵实现,遍历得到当前有向无环图中入度均为0的顶点为顶点H(q[0])、H(q[1]) H(q[2])和H(q[3]),与顶点H(q[0])相连的下一个顶点为顶点RX(q[0]),与顶点H(q[1])和H(q[2])分别相连的下一个顶点为顶点CNOT(q[1],q[2]),与顶点H(q[3])相连的下一个顶点为顶点RX(q[3])。
(a22)将各所述入度为0的顶点对应的所述下一个顶点的信息存入该入度为0的顶点信息后,作为拓扑序列的一个序列单元信息输出;即将顶点 RX(q[0])的信息存入对应的入度为0的顶点H(q[0])的顶点信息后,得到 H(q[0])[RX(q[0])],可以简化记为H[RX],作为拓扑序列的一个序列单元信息输出;将顶点CNOT(q[1],q[2])的信息存入对应的入度为0的顶点H(q[1]) 的顶点信息后,得到H(q[1])[CNOT(q[1],q[2])],可以简化记为H[CNOT],作为拓扑序列的一个序列单元信息输出;同时,将顶点CNOT(q[1],q[2])的信息存入对应的入度为0的顶点H(q[2])的顶点信息后,得到 H(q[2])[CNOT(q[1],q[2])],亦可以简化记为H[CNOT],作为拓扑序列的另一个序列单元信息输出。得到的拓扑序列包含两个序列单元,即得到拓扑序列的一部分,简记为H[CNOT],H[CNOT];将顶点RX(q[3])的信息存入对应的入度为0的顶点H(q[3])的顶点信息后,得到H(q[3])[RX(q[3])],可以简化记为H[RX],作为拓扑序列的一个序列单元输出。
(a23)删除当前有向无环图中所有以入度为0的顶点,及所有以入度为 0的顶点为尾的边以更新所述有向无环图。即删除顶点H(q[0])、H(q[1])、 H(q[2])和H(q[3]),以及H(q[0])指向RX(q[0])的边<1,5>,H(q[1])指向 CNOT(q[1],q[2])的边<2,6>,H(q[2])指向CNOT(q[1],q[2])的边<3,6>, H(q[3])指向RX(q[3])的边<4,7>,得到如图5a所示更新之后的有向无环图。
需要说明的是,以上所述的当前顶点指每次遍历当前有向无环图时确定的当前有向无环图中所有入度为0的顶点。
B1.对更新之后的所述有向无环图重复执行a过程,直至有向无环图处理完,得到完整拓扑序列。
具体的,针对(a23)更新之后的如图5a所示有向无环图,继续执行(a21) 到(a23)的过程,得到的部分拓扑序列更新为H[RX],H[CNOT],H[CNOT], H[RX]|RX[],CNOT[RX],CNOT[RY],RX[CNOT],得到如图5b所示更新之后的有向无环图。
在针对如图5b所示有向无环图继续执行(a21)到(a23)的过程,得到的部分拓扑序列更新为H[RX],H[CNOT],H[CNOT],H[RX]|RX[],CNOT[RX], CNOT[RY],RX[CNOT]|RX[],RY[CNOT]|CNOT[],此时,如图5所示的有向无环图处理完,即H[RX],H[CNOT],H[CNOT],H[RX]|RX[],CNOT[RX],CNOT[RY], RX[CNOT]|RX[],RY[CNOT]|CNOT[]为得到的完整拓扑序列。其中:“|”为分层符号,[]表示与当前入度为0的顶点无相连的下一顶点。
以上过程,完整的描述了示例性的图5所示的量子线路的有向无环图的分层拓扑排序过程。本领域技术人员等同和/或等效进行的任意量子线路的分层拓扑排序均落入以上保护范围。
S1022:基于所述拓扑序列,查询所述量子程序中与所述待查询量子线路匹配的子量子线路;
具体的,据以上描述可知,拓扑序列的序列单元包含:当前顶点量子逻辑门的性质、与当前顶点相连的下一个顶点的量子逻辑门性质、当前顶点的量子逻辑门操作的量子比特和与当前顶点相连的下一个顶点的量子逻辑门操作的量子比特的相对关系和/或量子比特性质。
针对选定的序列单元的匹配时,可以描述为:
步骤c1:先进行选定的两序列单元所包含的“当前顶点量子逻辑门的性质、与当前顶点相连的下一个顶点的量子逻辑门性质”的匹配。
针对“当前顶点量子逻辑门的性质、与当前顶点相连的下一个顶点的量子逻辑门性质”这两项的比较匹配,示例性的,定义量子程序有向无环图的分层拓扑序列为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)。
步骤c2:然后进行选定的两序列单元所包含的“当前顶点的量子逻辑门操作的量子比特和与当前顶点相连的下一个顶点的量子逻辑门操作的量子比特的相对关系和/或量子比特性质”的匹配。
容易理解的是,针对“当前顶点量子逻辑门的性质、与当前顶点相连的下一个顶点的量子逻辑门性质”这两项的比较匹配,p中的每个顶点v2在G中都会匹配出一组顶点{v1}集合,为了进一步匹配,需要针对“当前顶点的量子逻辑门操作的量子比特和与当前顶点相连的下一个顶点的量子逻辑门操作的量子比特的相对关系和/或量子比特性质”这一项的比较匹配。
可以理解的是,量子比特的相对关系和/或量子比特性质的理解如下,例如图2和图3的有向无环图的拓扑序列中的H(q[0])[CNOT(q[0],q[1])]的顶点中,量子逻辑门H操作的q[0]的为量子逻辑门CNOT操作的控制比特q[0],而CNOT操作的目标比特为q[1]。例如图5的有向无环图的拓扑序列中的H(q[1])[CNOT(q[1],q[2])],量子逻辑门H操作的q[1]的为量子逻辑门CNOT 操作的控制比特q[1],而CNOT操作的目标比特为q[2]。因此H(q[0])[CNOT(q[0],q[1])]和H(q[1])[CNOT(q[1],q[2])]两者的量子比特的相对关系和量子比特性质均一致,两者相互匹配。
示例性的,例如图2和图3的有向无环图的拓扑序列中的[CNOT(q[0],q[1])]RX(q[0])的顶点中,量子逻辑门CNOT操作的控制比特q[0]为量子逻辑门RX操作的目标比特q[0]。例如图5的有向无环图的拓扑序列中的 [CNOT(q[1],q[2])]RX(q[1]),量子逻辑门CNOT操作的控制比特q[1]为量子逻辑门RX操作的目标比特q[1]。因此[CNOT(q[0],q[1])]RX(q[0])和 [CNOT(q[1],q[2])]RX(q[1])两者的量子比特的相对关系和量子比特性质均一致,两者相互匹配。
示例性的,若待查询量子线路有向无环图拓扑序列中的顶点为[CNOT(q[0],q[1])][CZ(q[1],q[0])],量子逻辑门CNOT操作的控制比特q[0]为量子逻辑门CZ操作的目标比特q[0],量子逻辑门CNOT操作的目标比特q[1]为量子逻辑门CZ操作的控制比特q[1]。若目标量子线路有向无环图拓扑序列中的顶点为 [CNOT(q[2],q[3])][CZ(q[3],q[2])],量子逻辑门CNOT操作的控制比特q[2]为量子逻辑门CZ操作的目标比特q[2],量子逻辑门CNOT操作的目标比特q[3]为量子逻辑门CZ操作的控制比特q[3]。因此[CNOT(q[0],q[1])][CZ(q[1], q[0])]和[CNOT(q[2],q[3])][CZ(q[3],q[2])]两者的量子比特的相对关系和量子比特性质均一致,两者相互匹配。
基于以上描述,进一步,基于序列单元获得待查询量子线路的拓扑序列 H[CNOT],H[CNOT]|CNOT[RX],CNOT[RY]|RX[],RY[]的序列单元和量子程序的拓扑序列H[RX],H[CNOT],H[CNOT],H[RX]|RX[],CNOT[RX],CNOT[RY], RX[CNOT]|RX[],RY[CNOT]|CNOT[]中相互匹配的序列单元的判断过程如下:
在待查询量子线路的拓扑序列中,序列单元1(H[CNOT])反映待查询量子线路的有向无环图的顶点1(H[q0])连接待查询量子线路的有向无环图的顶点3(CNOT[q0,q1]),且顶点1(H[q0])的H门操作的量子比特q0为顶点 3(CNOT[q0,q1])的控制比特q0;
序列单元2(H[CNOT])反映待查询量子线路的有向无环图的顶点2(H[q1]) 连接待查询量子线路有向无环图的顶点3(CNOT[q0,q1]),且顶点2(H[q1]) 的H门操作的量子比特q1为顶点3(CNOT[q0,q1])的目标比特q1;
序列单元3(CNOT[RX],CNOT[RY])反映待查询量子线路的有向无环图的顶点3(CNOT[q0,q1])连接待查询量子线路有向无环图的顶点4(RX[q0]) 和顶点5(RY[q1])。
在量子程序的拓扑序列中,序列单元2(H[CNOT])反映量子程序的有向无环图的当前顶点2(H[q1])连接量子程序的有向无环图的顶点6(CNOT[q1, q2]),且当前顶点2(H[q1])的H门操作的量子比特q1为顶点6(CNOT[q1, q2])的控制比特q1;
序列单元3(H[CNOT])反映量子程序的有向无环图的当前顶点3(H[q2]) 连接量子程序有向无环图的顶点6(CNOT[q1,q2]),且顶点3(H[q2])的H 门操作的量子比特q2为顶点6(CNOT[q0,q1])的目标比特q2;
序列单元6(CNOT[RX],CNOT[RY])反映量子程序的有向无环图的顶点6 (CNOT[q1,q2])连接量子程序有向无环图的顶点8(RX[q1])和顶点9(RY[q2])。
通过以上描述可知判断:
待查询量子线路拓扑序列的序列单元1和量子程序拓扑序列的序列单元2 两者所包含的“当前顶点量子逻辑门的性质、与当前顶点相连的下一个顶点的量子逻辑门性质”一致,且两者所包含的“当前顶点的量子逻辑门操作的量子比特和与当前顶点相连的下一个顶点的量子逻辑门操作的量子比特的相对关系和/或量子比特性质”,因此待查询量子线路拓扑序列的序列单元1和量子程序拓扑序列的序列单元2两者匹配。
同样的道理,待查询量子线路拓扑序列的序列单元2和量子程序拓扑序列的序列单元3匹配;待查询量子线路拓扑序列的序列单元3和量子程序拓扑序列的序列单元6匹配。
因此,待查询量子线路的拓扑序列H[CNOT],H[CNOT]|CNOT[RX], CNOT[RY]|RX[],RY[]与“H[RX],H[CNOT],H[CNOT],H[RX]|RX[],CNOT[RX], CNOT[RY],RX[CNOT]|RX[],RY[CNOT]|CNOT[]”拓扑序列中加粗黑体表示的“H[CNOT],H[CNOT]”和“CNOT[RX],CNOT[RY]”这些位于不同层的序列单元匹配。对应的待查询量子线路的拓扑序列的有向无环图整体与“H[RX], H[CNOT],H[CNOT],H[RX]|RX[],CNOT[RX],CNOT[RY],RX[CNOT]|RX[],RY[CNOT]|CNOT[]”拓扑序列中加粗黑体表示的位于不同层的“H[CNOT], H[CNOT]”和“CNOT[RX],CNOT[RY]”组成的子图(即上文所述子量子线路) 是相互匹配,可以相互替换的。
因此,基于拓扑序列,查询量子程序中与待查询量子线路匹配的子量子线路;可以通过分别遍历量子程序的拓扑序列中的每一个序列单元(记为第一类序列单元)和待查询量子线路每一个序列单元(记为第二类序列单元),针对遍历到的第一类序列单元和第二类序列单元采用如上所述的“针对选定的序列单元的匹配方法”进行匹配。
其中:遍历量子程序的拓扑序列中的第一类序列单元和待查询量子线路的第二类序列单元实现量子程序的拓扑序列和待查询量子线路的拓扑序列的匹配,可以按第一预设匹配规则进行,具体如下:
步骤S1:从m=1开始,在量子程序的拓扑序列中的第一类序列单元中,依次查找与待查询量子线路的拓扑序列每相邻m层的所有第二类序列单元匹配的第一类序列单元;其中,m为正整数且m不大于待查询量子线路的拓扑序列的层数;
步骤S2:输出匹配结果;若匹配结果中,各待查询量子线路的拓扑序列每相邻m层的所有第二类序列单元均存在唯一匹配的量子程序的拓扑序列的第一类序列单元,则匹配完成;
否则,将m加1,返回执行在量子程序的拓扑序列中的第一类序列单元中,依次查找与待查询量子线路的拓扑序列依次相邻m层的所有第二类序列单元匹配的第一类序列单元的步骤。
可以根据量子程序是否包括多个与待查询量子线路完全一致的子量子线路的情况,而决定是否进行下一次匹配。
其中,以上所述的匹配结果,均可以有相同的表达形式,例如,采用参与匹配的各序列单元本身,和/或参与匹配的各序列单元所包含的有向无环图的当前顶点的顶点序号。本实施例为方便表示,优选后者。
结合图2所对应的待查询量子拓扑序列H[CNOT],H[CNOT]|CNOT[RX], CNOT[RY]|RX[],RY[]和图5所对应的待查询拓扑序列:H[RX],H[CNOT], H[CNOT],H[RX]|RX[],CNOT[RX],CNOT[RY],RX[CNOT]|RX[],RY[CNOT]|CNOT[]示例性介绍以上过程如下:
步骤S1:m=1,即依次遍历查找与待查询量子线路的拓扑序列每一层的所有第二类序列单元匹配的量子程序的拓扑序列的第一类序列单元;并输出匹配结果;具体的:
步骤S11:首先查找与待查询量子线路的拓扑序列第一层的所有第二类序列单元匹配的量子程序的拓扑序列的第一类序列单元,采用参与匹配的各序列单元所包含的有向无环图的当前顶点的顶点序号表征匹配结果。
待查询量子线路的拓扑序列第一层的两个第二类序列单元分别为 H[CNOT],H[CNOT],两个第二类序列单元所包含的当前顶点序号分别为1和2。量子程序拓扑序列中与两个第二类序列单元分别匹配的两个第一序列单元 H[CNOT],H[CNOT]所包含的当前顶点序号分别为2和3,所以匹配结果记为: 1:[2],2:[3];
步骤S12:继续从量子程序拓扑序列中未被匹配的其它层的第一类序列单元中查找与待查询量子线路的拓扑序列第二层的所有第二类序列单元匹配的第一类序列单元,采用参与匹配的各序列单元所包含的有向无环图的当前顶点的顶点序号表征匹配结果。匹配结果记为3:[6];原因同上,不在赘述。
步骤S13:继续从量子程序拓扑序列中未被匹配的其它层的第一类序列单元中查找与待查询量子线路的拓扑序列第三层的所有第二类序列单元匹配的第一类序列单元,采用参与匹配的各序列单元所包含的有向无环图的当前顶点的顶点序号表征匹配结果。匹配结果记为4:[5,7,8],5:[9];原因同上,不在赘述。
以上匹配结果组成上述第一次匹配结果:1:[2],2:[3]|3:[6]|4:[5, 7,8],5:[9]。由于存在“4:[5,7,8]”这样的非唯一匹配结果,所以m+1 变为2,重复执行步骤S1,记为S1’。
步骤S1’:依次遍历查找与待查询量子线路的拓扑序列依次相邻两层的所有第二类序列单元匹配的量子程序的拓扑序列的第一类序列单元;并输出结果;
具体的,步骤S1’-1:首先依次遍历查找与待查询量子线路的拓扑序列相邻两层的所有第二类序列单元H[CNOT],H[CNOT]|CNOT[RX],CNOT[RY]匹配的量子程序的拓扑序列的第一类序列单元;匹配结果为[1,2|3]:[2,3|6]。原因同上,不在赘述。
步骤S1’-2:继续遍历查找与待查询量子线路的拓扑序列剩余一层的所有第二类序列单元RX[],RY[]匹配的量子程序的拓扑序列的第一类序列单元;匹配结果为4:[5,7,8],5:[9]。原因同上,不在赘述。
以上匹配结果组成上述第一次匹配结果:[1,2|3]:[2,3|6]|4:[5,7, 8],5:[9]。由于存在“4:[5,7,8],5:[9]”这样的非唯一匹配结果,所以需要进行步骤S3的匹配。
步骤S1’-3:则依次遍历查找与待查询量子线路的拓扑序列每相邻三层的所有第二类序列单元H[CNOT],H[CNOT]|CNOT[RX,RY]|RX[],RY[]匹配的量子程序的拓扑序列的第一类序列单元;匹配结果为[1,2|3|4,5]:[2,3|6|8, 9]。每一个序列单元均存在唯一匹配结果,则匹配结束。
其中,遍历所述量子程序的拓扑序列中的第一类序列单元和所述待查询量子线路第二类序列单元实现所述量子程序的拓扑序列和所述待查询量子线路的拓扑序列的匹配可以按第一预设匹配规则匹配完成之后,还可以根据匹配过程输出满足唯一匹配关系的所有第二类序列单元和与之匹配的序列单元所包含的当前顶点的量子比特之间的对应关系。
示例性的,针对所有第二类序列单元H(q0)[CNOT(q0,q1)],H(q1)[CNOT(q0,q1)]|CNOT(q0,q1)[RX(q0)],CNOT(q0,q1)[RY(q1)]|RX(q 0)[],RY(q1)[]匹配的量子程序的拓扑序列的第一类序列单元H(q1)[CNOT(q1,q2)],H(q2)[CNOT(q1,q2)]|CNOT(q1,q2)[RX(q2)],CNOT(q1,q2)[RY(q2)]|R X(q1)[],RY(q2)[],可知所有第二类序列单元和与之匹配的序列单元所包含的当前顶点的量子比特之间的对应关系为q0:[q1],q1:[q2];冒号前为和第二类序列单元有关的量子比特,冒号前为和第一类序列单元有关的量子比特。
在另一实施例中,可以根据第二预设匹配规则,将待查询量子线路和量子程序分别对应的分层拓扑序列进行匹配,得到量子程序中与待查询量子线路匹配的子量子线路。
具体的,遍历量子程序的拓扑序列中的第一类序列单元和待查询量子线路的第二类序列单元实现量子程序的拓扑序列和待查询量子线路的拓扑序列的匹配可以按第二预设匹配规则进行,可以如下:
步骤D1:从量子程序拓扑序列的第一层开始,判断量子程序拓扑序列每一层是否存在与待查询量子线路拓扑序列的第一层的各第二类序列单元匹配的第一类序列单元,直至第一次得到存在与待查询量子线路拓扑序列的第一层的各第二类序列单元匹配的第一类序列单元的量子程序拓扑序列层,记为量子程序拓扑序列起始层,并记录与待查询量子线路拓扑序列的第一层的各第二类序列单元匹配的第一类序列单元的集合;
步骤D2:判断量子程序拓扑序列当前层的下一层是否存在与待查询量子线路拓扑序列当前层的下一层的各第二类序列单元匹配的第一类序列单元;
步骤D3:若存在与待查询量子线路拓扑序列当前层的下一层的各第二类序列单元匹配的第一类序列单元,记录该次匹配出的第一类序列单元的集合,返回执行步骤D2,直至待查询量子线路拓扑序列的最后一层匹配完成。
在实际应用中,可以根据量子程序是否包括多个与待查询量子线路完全一致的子量子线路的情况,而决定是否进行下一次匹配。所记录的按层划分的第一类序列单元的集合,用于下一次匹配时的第一类序列单元的排除。
参见图6,如图6所示的一种量子程序划分执行时序后的量子线路示意图,虚线表示对执行层的划分,其量子程序的运行顺序为:H(q[0])<<H(q[1])<<R Y(q[2])<<H(q[4])<<RX(q[0])<<X(q[1])<<CNOT(q[4],q[3])<<Z(q[0])<<H(q [1])<<CNOT(q[2],q[3])<<H(q[4])<<CNOT(q[1],q[0])<<H(q[2])<<CNOT(q[3],q[4])<<RZ(q[3])<<Y(q[4])<<RX(q[4])。其中,H为哈达马Hadamard门,RX 门为任意旋转X门,CNOT为控制非门(Control-NOT),X为非门,RY为任意旋转Y门,RZ为任意旋转Z门,q0、q1、q2、q3、q4是指比特位从0至4的量子比特。除CNOT门为两量子逻辑门外,其余均为单量子逻辑门。单词NOT 及其连接的竖线,即表示两量子逻辑门CNOT门,单词NOT所处横线对应的量子比特表示CNOT门操作的目标比特,竖线连接的另一横线对应的量子比特表示CNOT门操作的控制比特。例如CNOT(q[1],q[0]),q1为控制比特,q0为目标比特,CNOT门同时对该两个量子比特进行操作。
定义的待查询量子线路拓扑序列层与量子程序拓扑序列层匹配的规则满足:
对于待查询量子线路当前拓扑序列层的每一个序列单元,在量子程序当前拓扑序列层都能找到与之相匹配的序列单元;其中,两个序列单元的匹配,遵循以上所述的序列单元匹配要求,在此不再赘述。
示例性的,若待查询量子线路为CNOT(q[4],q[3])<<H(q[4])<<CNOT(q[3],q[4]),则在如图6所示的量子程序中的匹配过程包括:
获取量子程序的有向无环图的分层拓扑序列,每一层设为G1,G2,G3…… Gn;获取待查询量子线路的有向无环图的分层拓扑序列,每一层设为Q1,Q2, Q3……Qn;
示例性的,如图6所示的量子程序拓扑序列的分层如下:
G1层:H(q[0]),H(q[1]),RY(q[2]),H(q[4]);
G2层:RX(q[0]),X(q[1]),CNOT(q[4],q[3]);
G3层:Z(q[0]),H(q[1]),CNOT(q[2],q[3]),H(q[4]);
G4层:CNOT(q[1],q[0]),H(q[2]),CNOT(q[3],q[4]);
G5层:RZ(q[3]),Y(q[4]);
G6层:RX(q[4])。
待查询量子线路拓扑序列如下:
Q1层:CNOT(q[4],q[3]);
Q2层:H(q[4]);
Q3层:CNOT(q[3],q[4])。
从量子程序拓扑序列的第一层开始,判断量子程序拓扑序列每一层是否存在与待查询量子线路拓扑序列的第一层的各第二类序列单元匹配的第一类序列单元,直至第一次得到存在与待查询量子线路拓扑序列的第一层的各第二类序列单元匹配的第一类序列单元的量子程序拓扑序列层,记为量子程序拓扑序列起始层,并记录与待查询量子线路拓扑序列的第一层的各第二类序列单元匹配的第一类序列单元的集合;
首先从量子程序拓扑序列的第一层G1层H(q[0]),H(q[1]),RY(q[2]), H(q[4])开始判断量子程序拓扑序列每一层是否存在与待查询量子线路拓扑序列的第一层的各第二类序列单元匹配的第一类序列单元。待查询量子线路拓扑序列的第一层Q1层为CNOT(q[4],q[3]),量子逻辑门为CNOT门,在量子程序拓扑序列的第一层G1层中找不到与之匹配的序列单元,因此继续在量子程序拓扑序列的下一层G2层RX(q[0]),X(q[1]),CNOT(q[4],q[3])中继续匹配;通过匹配可以得到待查询量子线路拓扑序列的第一层CNOT(q[4],q[3]) 与量子程序拓扑序列的第二层中的顶点CNOT(q[4],q[3])匹配,将量子程序拓扑序列的第二层记为量子程序拓扑序列起始层,并记录与待查询量子线路拓扑序列的第一层的各第二类序列单元匹配的第一类序列单元的集合,即 [CNOT(q[4],q[3]):CNOT(q[4],q[3])],其中“:”之前的为待查询量子拓扑序列的序列单元,“:”之后的为量子程序拓扑序列的序列单元。
继续判断量子程序拓扑序列当前层的下一层,即G3层Z(q[0]),H(q[1]), CNOT(q[2],q[3]),H(q[4])中是否存在与待查询量子线路拓扑序列当前层的下一层,即Q2层H(q[4])的序列单元是否匹配,若存在与待查询量子线路拓扑序列当前层的下一层的各第二类序列单元匹配的第一类序列单元,记录该次匹配出的第一类序列单元的集合。通过匹配可以得到待查询量子线路拓扑序列的第二层H(q[4])与量子程序拓扑序列的第三层中的顶点H(q[4])匹配,将量子程序拓扑序列的第三层记为量子程序拓扑序列起始层的下一层,并记录与待查询量子线路拓扑序列的第二层的各第二类序列单元匹配的第一类序列单元的集合,即[CNOT(q[4],q[3])|H(q[4])]:[CNOT(q[4],q[3])|H(q[4])]。
继续判断量子程序拓扑序列当前层的下一层,即G4层CNOT(q[1],q[0]), H(q[2]),CNOT(q[3],q[4]),直至待查询量子线路拓扑序列的最后一层,即 Q3层CNOT(q[3],q[4])匹配完成。通过匹配可以得到待查询量子线路拓扑序列的第三层CNOT(q[3],q[4])与量子程序拓扑序列的第四层中的顶点 CNOT(q[3],q[4])匹配,将量子程序拓扑序列的第四层记为量子程序拓扑序列当前层的下一层,并记录与待查询量子线路拓扑序列的第三层的各第二类序列单元匹配的第一类序列单元的集合,即[CNOT(q[4],q[3])|H(q[4])| CNOT(q[3],q[4])]:[CNOT(q[4],q[3])|H(q[4])|CNOT(q[3],q[4])]。
示例性的,待查询量子线路的第一层,即Q1层:CNOT(q[4],q[3])逻辑门包括CNOT门和H门,且第一个顶点CNOT(q[4],q[3])相连的顶点为H(q[4]),则在量子程序中匹配的顶点必须与CNOT门和H门相连;例如量子程序匹配的顶点为CNOT门和H门,或者为CNOT门、H门、RX门,也可以为CNOT门、H 门、Z门等,找出在量子程序中CNOT门和H门相连的所有顶点集合;再判断对于双量子逻辑门和其边指向的量子逻辑门量子比特的对应关系是否相同,例如待查询量子线路顶点CNOT(q[4],q[3]),H(q[4]),则量子程序顶点匹配的顶点集合可以为CNOT(q[4],q[3]),H(q[4])或CNOT(q[4],q[3]),H(q[3]),最后在量子程序与待查询量子线路匹配的顶点集合中筛选出与待查询量子线路顶点信息完全匹配的顶点集合,即CNOT(q[4],q[3]),H(q[4])。
示例性的,根据顶点匹配的规则,待查询量子线路的逻辑门包括CNOT门和H门,且第二个顶点H(q[4])相连的顶点为CNOT(q[3],q[4]),则在量子程序中匹配的顶点必须与H门和CNOT门相连;例如量子程序匹配的顶点为CNOT 门和H门,或者为CNOT门、H门、RX门,也可以为CNOT门、H门、Z门等,找出在量子程序中H门和CNOT门相连的所有顶点集合;再判断对于双量子逻辑门和其边指向的量子逻辑门量子比特的对应关系是否相同,例如待查询量子线路顶点H(q[4]),CNOT(q[3],q[4]),则量子程序顶点匹配的顶点集合可以为H(q[3]),CNOT(q[3],q[4]),或H(q[4]),CNOT(q[3],q[4]),最后在量子程序与待查询量子线路匹配的顶点集合中筛选出与待查询量子线路顶点信息完全匹配的顶点集合,即H(q[4]),CNOT(q[3],q[4]),结合待查询量子线路第一个顶点的信息CNOT(q[4],q[3]),且与第一个顶点CNOT(q[4],q[3]) 相连的顶点为H(q[4]),与第二个顶点H(q[4])相连的顶点为CNOT(q[3],q[4]),在量子程序与待查询量子线路匹配的顶点集合中筛选出与待查询量子线路顶点信息完全匹配的顶点集合,即CNOT(q[4],q[3]),H(q[4]),CNOT(q[3], q[4])。
S103:将所述子量子线路替换为所述目标量子线路,获得新的量子程序
参见图7,图7为本发明实施例提供的一种实现子量子线路替换为目标量子线路流程示意图,具体包括如下步骤:
S701:确定所述子量子线路与所述目标量子线路的量子比特的对应关系;
具体的,根据预设匹配规则,对子图查询匹配的每一个结果集,首先获取子量子线路和目标量子线路的量子比特的对应关系。
可选的,例如,子量子线路操作的量子比特为0号比特、1号比特、2号比特及3号比特,目标量子线路操作的量子比特为i号比特、j号比特、k号比特及n号比特,则子量子线路和目标量子线路的量子比特的对应关系为子量子线路的0号比特对应目标量子线路的i号比特;子量子线路的1号比特对应目标量子线路的j号比特;子量子线路的2号比特对应目标量子线路的k号比特;子量子线路的3号比特对应目标量子线路的n号比特;并将该对应关系一一记录下来,即[0,1,2,3]:[i,j,k,n],“:”前为子量子线路操作的量子比特序号,“:”后为目标量子线路操作的量子比特序号。
S702:删除所述子量子线路在所述量子程序对应的有向无环图中的顶点;
具体的,在量子程序对应的有向无环图中,首先查找子量子线路在所述量子程序对应有向无环图中的顶点位置并删除顶点及与顶点相连的边。示例性的,例如子量子线路为H(q[1])<<H(q[2])<<CNOT(q[1],q[2])<<RX(q[1])<<RY(q [2]),则在量子程序对应的有向无环图中确定顶点H(q[1])、H(q[2])、CNOT(q [1],q[2])、RX(q[1])、RY(q[2])的位置,然后删除顶点H(q[1])、H(q[2])、 CNOT(q[1],q[2])、RX(q[1])、RY(q[2])以及与顶点H(q[1])、H(q[2])、CNO T(q[1],q[2])、RX(q[1])、RY(q[2])相连的边。
示例性的,例如子量子线路为CNOT(q[4],q[3])<<H(q[4])<<CNOT(q[3], q[4]),则在量子程序对应的有向无环图中确定顶点CNOT(q[4],q[3])、 H(q[4])、CNOT(q[3],q[4])的位置,然后删除顶点CNOT(q[4],q[3])、H(q[4])、 CNOT(q[3],q[4])以及与顶点CNOT(q[4],q[3])、H(q[4])、CNOT(q[3],q[4]) 相连的边。
在量子程序中查找子量子线路结果图的每一个顶点并删除这些顶点,为后续的替换做准备。
S703:根据所述对应关系,将所述目标量子线路对应的有向无环图中的顶点,插入删除顶点后的量子程序对应的有向无环图中,并基于该有向无环图,构建新的量子程序。
示例性的,子量子线路为H(q[1])<<H(q[2])<<CNOT(q[1],q[2])<<RX(q [1])<<RY(q[2]),若目标量子线路为CZ(q[i],q[j])<<H(q[j]),根据上述的对应关系,则插入目标量子线路的顶点为CZ(q[1],q[2]),H(q[2]),然后获取删除顶点并替换新顶点CZ(q[1],q[2]),H(q[2])后的量子程序对应的有向无环图;
示例性的,子量子线路为CNOT(q[4],q[3])<<H(q[4])<<CNOT(q[3],q[4]),若目标量子线路为CZ(q[i],q[j])<<H(q[j]),根据上述的对应关系,则插入目标量子线路的顶点为CZ(q[3],q[4]),H(q[4]),然后获取删除顶点并替换新顶点CZ(q[3],q[4]),H(q[4])后的量子程序对应的有向无环图;最后根据替换新顶点后的量子程序对应的有向无环图构建相应的分层拓扑序列;通过分层拓扑序列,构建新的量子程序。
参见图8,图8为本发明实施例提供的一种实现量子线路替换的装置的结构示意图,与图1所示的流程相对应,可以包括:
构建模块801,用于分别构建量子程序、待查询量子线路、目标量子线路的有向无环图;
查询模块802,用于根据所述有向无环图,查询所述量子程序中与所述待查询量子线路匹配的子量子线路;
替换模块803,用于将所述子量子线路替换为所述目标量子线路,获得新的量子程序。
具体的,所述构建模块包括:
获取单元,用于分别获取量子程序、待查询量子线路、目标量子线路对应的拓扑序列。
具体的,所述构建模块还包括:
遍历单元,用于分别遍历所述量子程序、待查询量子线路、目标量子线路中的所有子节点;
判断单元,用于判断如果所述子节点为量子逻辑门或测量操作,则创建该子节点对应的一顶点,并与该子节点操作的量子比特对应的上一顶点,建立该上一顶点指向该顶点的边。
具体的,所述构建模块还包括:
排序单元,用于将各所述有向无环图分别进行分层拓扑排序,分别得到各有向无环图对应的一个分层拓扑序列,其中,所述分层拓扑序列包括:顶点间的并行信息以及顶点引出的所述有向边的信息。
具体的,所述查询模块包括:
第一预设匹配单元,用于根据第一预设匹配规则,将所述待查询量子线路和所述量子程序分别对应的分层拓扑序列进行匹配,得到所述量子程序中与所述待查询量子线路匹配的子量子线路。
第二预设匹配单元,用于根据第二预设匹配规则,将所述待查询量子线路和所述量子程序分别对应的分层拓扑序列进行匹配,得到所述量子程序中与所述待查询量子线路匹配的子量子线路。
具体的,所述替换模块包括:
确定单元,用于确定所述子量子线路与所述目标量子线路的量子比特的对应关系;
删除单元,用于删除所述子量子线路在所述量子程序对应的有向无环图中的顶点;
插入单元,用于根据所述对应关系,将所述目标量子线路对应的有向无环图中的顶点,插入删除顶点后的量子程序对应的有向无环图中形成新有向无环图,并基于新有向无环图,构建新的量子程序。
与现有技术相比,本发明借助有向无环图实现所述量子程序中与所述待查询量子线路匹配的子量子线路的查询以及替换,因为有向无环图反映的是量子线路的空间展示,对应的量子线路的非连续存储,所以本发明能够实现量子程序中非连续存储的量子线路的替换处理。
本发明实施例还提供一种存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行以实现上述量子线路替换的方法。
具体的,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:
S101:分别构建量子程序、待查询量子线路、目标量子线路的有向无环图;
S102:基于有向无环图,查询量子程序中与待查询量子线路匹配的子量子线路;
S103:将子量子线路替换为目标量子线路,获得新的量子程序。
具体的,在本实施例中,上述具有存储功能的装置可以包括但不限于:U 盘、只读存储器(Read-Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
与现有技术相比,本发明借助有向无环图实现所述量子程序中与所述待查询量子线路匹配的子量子线路的查询以及替换,因为有向无环图反映的是量子线路的空间展示,对应的量子线路的非连续存储,所以本发明能够实现量子程序中非连续存储的量子线路的替换处理。
本发明实施例还提供一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述量子线路替换的方法。
具体的,在本实施例中,上述电子装置可以被设置为执行以下步骤的计算机程序。
S101:分别构建量子程序、待查询量子线路、目标量子线路的有向无环图;
S102:基于有向无环图,查询量子程序中与待查询量子线路匹配的子量子线路;
S103:将子量子线路替换为目标量子线路,获得新的量子程序。
与现有技术相比,本发明借助有向无环图实现所述量子程序中与所述待查询量子线路匹配的子量子线路的查询以及替换,因为有向无环图反映的是量子线路的空间展示,对应的量子线路的非连续存储,所以本发明能够实现量子程序中非连续存储的量子线路的替换处理。
以上依据图式所示的实施例详细说明了本发明的构造、特征及作用效果,以上所述仅为本发明的较佳实施例,但本发明不以图面所示限定实施范围,凡是依照本发明的构想所作的改变,或修改为等同变化的等效实施例,仍未超出说明书与图示所涵盖的精神时,均应在本发明的保护范围内。
Claims (18)
1.一种实现量子线路替换的方法,其特征在于,所述方法包括:
分别构建量子程序、待查询量子线路、目标量子线路的有向无环图;
基于所述有向无环图,查询所述量子程序中与所述待查询量子线路匹配的子量子线路,其中,所述子量子线路基于所述有向无环图的拓扑序列确定;
将所述子量子线路替换为所述目标量子线路,获得新的量子程序。
2.根据权利要求1所述的一种实现量子线路替换的方法,其特征在于,所述分别构建量子程序、待查询量子线路、目标量子线路的有向无环图,包括:
分别遍历所述量子程序、待查询量子线路、目标量子线路中的所有子节点;
如果所述子节点为量子逻辑门或测量操作,则创建该子节点对应的一顶点,并与该子节点操作的量子比特对应的上一顶点,建立该上一顶点指向该顶点的边。
3.根据权利要求1所述的一种实现量子线路替换的方法,其特征在于,所述基于所述有向无环图,查询所述量子程序中与所述待查询量子线路匹配的子量子线路,包括:
获得各所述有向无环图分别对应的拓扑序列;
基于所述拓扑序列,查询所述量子程序中与所述待查询量子线路匹配的子量子线路。
4.根据权利要求3所述的一种实现量子线路替换的方法,其特征在于,所述获得各所述有向无环图分别对应的拓扑序列,包括:
将各所述有向无环图分别进行分层拓扑排序,分别得到各有向无环图对应的一个分层拓扑序列,其中,所述分层拓扑序列包括:顶点间的并行信息以及顶点引出的有向边的信息。
5.根据权利要求4所述的一种实现量子线路替换的方法,其特征在于,所述基于所述拓扑序列,查询所述量子程序中与所述待查询量子线路匹配的子量子线路,包括:
根据第一预设匹配规则,通过分别遍历所述量子程序的拓扑序列中的第一类序列单元和所述待查询量子线路第二类序列单元将所述待查询量子线路和所述量子程序分别对应的分层拓扑序列进行匹配,得到所述量子程序中与所述待查询量子线路匹配的子量子线路。
6.根据权利要求5所述的一种实现量子线路替换的方法,其特征在于,所述根据第一预设匹配规则,通过分别遍历所述量子程序的拓扑序列中的第一类序列单元和所述待查询量子线路第二类序列单元将所述待查询量子线路和所述量子程序分别对应的分层拓扑序列进行匹配,得到所述量子程序中与所述待查询量子线路匹配的子量子线路,包括:
从m=1开始,在所述量子程序的拓扑序列中的第一类序列单元中,依次查找与所述待查询量子线路的拓扑序列每相邻m层的所有第二类序列单元匹配的第一类序列单元;其中,m为正整数且m不大于所述待查询量子线路的拓扑序列的层数;
输出匹配结果;若所述匹配结果中,各待查询量子线路的拓扑序列每相邻m层的所有第二类序列单元均存在唯一匹配的量子程序的拓扑序列的第一类序列单元,则匹配完成;
否则,将m加1,返回执行在所述量子程序的拓扑序列中的第一类序列单元中,依次查找与所述待查询量子线路的拓扑序列依次相邻m层的所有第二类序列单元匹配的第一类序列单元的步骤。
7.根据权利要求4所述的一种实现量子线路替换的方法,其特征在于,所述基于所述拓扑序列,查询所述量子程序中与所述待查询量子线路匹配的子量子线路,包括:
根据第二预设匹配规则,通过分别遍历所述量子程序的拓扑序列中的第一类序列单元和所述待查询量子线路第二类序列单元将所述待查询量子线路和所述量子程序分别对应的分层拓扑序列进行匹配,得到所述量子程序中与所述待查询量子线路匹配的子量子线路。
8.根据权利要求7所述的一种实现量子线路替换的方法,其特征在于,所述根据第二预设匹配规则,通过分别遍历所述量子程序的拓扑序列中的第一类序列单元和所述待查询量子线路第二类序列单元将所述待查询量子线路和所述量子程序分别对应的分层拓扑序列进行匹配,得到所述量子程序中与所述待查询量子线路匹配的子量子线路,包括:
从所述量子程序拓扑序列的第一层开始,判断所述量子程序拓扑序列每一层是否存在与所述待查询量子线路拓扑序列的第一层的各第二类序列单元匹配的第一类序列单元,直至第一次得到存在与所述待查询量子线路拓扑序列的第一层的各第二类序列单元匹配的第一类序列单元的量子程序拓扑序列层,记为所述量子程序拓扑序列起始层,并记录与所述待查询量子线路拓扑序列的第一层的各第二类序列单元匹配的第一类序列单元的集合;
判断所述量子程序拓扑序列当前层的下一层是否存在与所述待查询量子线路拓扑序列当前层的下一层的各第二类序列单元匹配的第一类序列单元;
若存在与所述待查询量子线路拓扑序列当前层的下一层的各第二类序列单元匹配的第一类序列单元,记录该次匹配出的第一类序列单元的集合,返回执行上一步,直至待查询量子线路拓扑序列的最后一层匹配完成。
9.根据权利要求1-8任一项所述的一种实现量子线路替换的方法,其特征在于,所述将所述子量子线路替换为所述目标量子线路,获得新的量子程序,包括:
确定所述子量子线路与所述目标量子线路的量子比特的对应关系;
删除所述子量子线路在所述量子程序对应的有向无环图中的顶点;
根据所述对应关系,将所述目标量子线路对应的有向无环图中的顶点,插入删除顶点后的量子程序对应的有向无环图中形成新有向无环图,并基于所述新有向无环图,构建新的量子程序。
10.根据权利要求9所述的一种实现量子线路替换的方法,其特征在于,所述基于所述新有向无环图,构建新的量子程序,具体包括:
获取所述新有向无环图;
构建所述新有向无环图对应的新分层拓扑序列;
通过所述新分层拓扑序列,构建新的量子程序。
11.一种实现量子线路替换的装置,其特征在于,包括:
构建模块,用于分别构建量子程序、待查询量子线路、目标量子线路的有向无环图;
查询模块,用于根据所述有向无环图,查询所述量子程序中与所述待查询量子线路匹配的子量子线路,其中,所述子量子线路基于所述有向无环图的拓扑序列确定;
替换模块,用于将所述子量子线路替换为所述目标量子线路,获得新的量子程序。
12.根据权利要求11所述的一种实现量子线路替换的装置,其特征在于,所述构建模块包括:
获取单元,用于分别获取量子程序、待查询量子线路、目标量子线路对应的拓扑序列。
13.根据权利要求11所述的一种实现量子线路替换的装置,其特征在于,所述构建模块还包括:
遍历单元,用于分别遍历所述量子程序、待查询量子线路、目标量子线路中的所有子节点;
判断单元,用于判断如果所述子节点为量子逻辑门或测量操作,则创建该子节点对应的一顶点,并与该子节点操作的量子比特对应的上一顶点,建立该上一顶点指向该顶点的边。
14.根据权利要求11所述的一种实现量子线路替换的装置,其特征在于,所述构建模块还包括:
排序单元,用于将各所述有向无环图分别进行分层拓扑排序,分别得到各有向无环图对应的一个分层拓扑序列,其中,所述分层拓扑序列包括:顶点间的并行信息以及顶点引出的有向边的信息。
15.根据权利要求11所述的一种实现量子线路替换的装置,其特征在于,所述查询模块包括:
第一预设匹配单元,用于根据第一预设匹配规则,通过分别遍历所述量子程序的拓扑序列中的第一类序列单元和所述待查询量子线路第二类序列单元将所述待查询量子线路和所述量子程序分别对应的分层拓扑序列进行匹配,得到所述量子程序中与所述待查询量子线路匹配的子量子线路;
第二预设匹配单元,用于根据第二预设匹配规则,通过分别遍历所述量子程序的拓扑序列中的第一类序列单元和所述待查询量子线路第二类序列单元将所述待查询量子线路和所述量子程序分别对应的分层拓扑序列进行匹配,得到所述量子程序中与所述待查询量子线路匹配的子量子线路。
16.根据权利要求11所述的一种实现量子线路替换的装置,其特征在于,所述替换模块包括:
确定单元,用于确定所述子量子线路与所述目标量子线路的量子比特的对应关系;
删除单元,用于删除所述子量子线路在所述量子程序对应的有向无环图中的顶点;
插入单元,用于根据所述对应关系,将所述目标量子线路对应的有向无环图中的顶点,插入删除顶点后的量子程序对应的有向无环图中形成新有向无环图,并基于所述新有向无环图,构建新的量子程序。
17.一种存储介质,其特征在于,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行所述权利要求1至10任一项中所述的方法。
18.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行所述权利要求1至10任一项中所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911265560.9A CN111027702B (zh) | 2019-12-11 | 2019-12-11 | 一种实现量子线路替换的方法、装置、存储介质和电子装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911265560.9A CN111027702B (zh) | 2019-12-11 | 2019-12-11 | 一种实现量子线路替换的方法、装置、存储介质和电子装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111027702A CN111027702A (zh) | 2020-04-17 |
CN111027702B true CN111027702B (zh) | 2023-12-15 |
Family
ID=70205733
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911265560.9A Active CN111027702B (zh) | 2019-12-11 | 2019-12-11 | 一种实现量子线路替换的方法、装置、存储介质和电子装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111027702B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111241356B (zh) * | 2020-04-26 | 2020-08-11 | 腾讯科技(深圳)有限公司 | 基于模拟量子算法的数据搜索方法、装置及设备 |
CN114511089A (zh) * | 2020-10-23 | 2022-05-17 | 合肥本源量子计算科技有限责任公司 | 量子连通图谱的连通度优化方法、装置、终端及存储介质 |
CN114329853B (zh) * | 2020-09-30 | 2024-02-06 | 本源量子计算科技(合肥)股份有限公司 | 一种量子拓扑图优化方法、装置、终端及存储介质 |
WO2022068880A1 (zh) * | 2020-09-30 | 2022-04-07 | 合肥本源量子计算科技有限责任公司 | 一种量子拓扑图优化方法、装置、终端及存储介质 |
CN113849187B (zh) * | 2021-10-12 | 2022-05-10 | 中国人民解放军战略支援部队信息工程大学 | 面向量子线路噪声的编译优化方法及装置 |
WO2023061441A1 (zh) * | 2021-10-13 | 2023-04-20 | 合肥本源量子计算科技有限责任公司 | 文本的量子线路确定方法、文本分类方法及相关装置 |
CN116151384B (zh) * | 2023-02-20 | 2023-09-08 | 北京百度网讯科技有限公司 | 量子电路处理方法、装置及电子设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2662778A1 (en) * | 2012-05-11 | 2013-11-13 | Simula Innovation AS | Method and apparatus for determining paths between source / destination pairs |
CN106610867A (zh) * | 2016-12-21 | 2017-05-03 | 成都理工大学 | 一种片上网络任务调度方法及装置 |
CN109409524A (zh) * | 2018-09-26 | 2019-03-01 | 合肥本源量子计算科技有限责任公司 | 一种量子程序运行方法及装置、存储介质及电子装置 |
CN110188885A (zh) * | 2019-06-28 | 2019-08-30 | 合肥本源量子计算科技有限责任公司 | 一种量子计算模拟方法、装置、存储介质和电子装置 |
CN110516810A (zh) * | 2019-08-29 | 2019-11-29 | 合肥本源量子计算科技有限责任公司 | 一种量子程序的处理方法、装置、存储介质和电子装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9210045B2 (en) * | 2011-03-08 | 2015-12-08 | Cisco Technology, Inc. | Gravitational parent selection in directed acyclic graphs |
-
2019
- 2019-12-11 CN CN201911265560.9A patent/CN111027702B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2662778A1 (en) * | 2012-05-11 | 2013-11-13 | Simula Innovation AS | Method and apparatus for determining paths between source / destination pairs |
CN106610867A (zh) * | 2016-12-21 | 2017-05-03 | 成都理工大学 | 一种片上网络任务调度方法及装置 |
CN109409524A (zh) * | 2018-09-26 | 2019-03-01 | 合肥本源量子计算科技有限责任公司 | 一种量子程序运行方法及装置、存储介质及电子装置 |
CN110188885A (zh) * | 2019-06-28 | 2019-08-30 | 合肥本源量子计算科技有限责任公司 | 一种量子计算模拟方法、装置、存储介质和电子装置 |
CN110516810A (zh) * | 2019-08-29 | 2019-11-29 | 合肥本源量子计算科技有限责任公司 | 一种量子程序的处理方法、装置、存储介质和电子装置 |
Non-Patent Citations (1)
Title |
---|
鹿玉 ; 管致锦 ; 程学云 ; 谈莹莹 ; 张宗源 ; .基于矩阵变换的线性最近邻量子线路综合与优化.电子学报.2018,(03),全文. * |
Also Published As
Publication number | Publication date |
---|---|
CN111027702A (zh) | 2020-04-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111027702B (zh) | 一种实现量子线路替换的方法、装置、存储介质和电子装置 | |
CN110929873B (zh) | 一种量子程序的处理方法、装置、存储介质和电子装置 | |
CN110825375B (zh) | 一种量子程序的转化方法、装置、存储介质和电子装置 | |
CN110188885B (zh) | 一种量子计算模拟方法、装置、存储介质和电子装置 | |
CN113033811B (zh) | 两量子比特逻辑门的处理方法及装置 | |
CN111027703B (zh) | 一种量子线路查询的方法、装置、存储介质及电子装置 | |
Hui et al. | A genetic algorithm for product disassembly sequence planning | |
WO2020151129A1 (zh) | 量子机器学习框架构建方法、装置、量子计算机及计算机存储介质 | |
CN110826719B (zh) | 一种量子程序的处理方法、装置、存储介质和电子装置 | |
CN110516810B (zh) | 一种量子程序的处理方法、装置、存储介质和电子装置 | |
CN110889507A (zh) | 一种量子程序转有向无环图的方法、装置、存储介质及电子装置 | |
Vergidis et al. | Business process improvement using multi-objective optimisation | |
CN111915011B (zh) | 一种单振幅量子计算模拟方法 | |
Wang et al. | Improved complexity of quantum oracles for ternary grover algorithm for graph coloring | |
CN113222155B (zh) | 一种量子线路的构建方法、装置、电子装置和存储介质 | |
Sekanina et al. | Evolutionary design of arbitrarily large sorting networks using development | |
Kalatzantonakis et al. | Cooperative versus non-cooperative parallel variable neighborhood search strategies: a case study on the capacitated vehicle routing problem | |
Wu et al. | Generalized chromosome genetic algorithm for generalized traveling salesman problems and its applications for machining | |
US20240061724A1 (en) | Quantum computing task execution method and apparatus, and quantum computer operating system | |
CN111178532B (zh) | 一种量子线路匹配的方法、装置、存储介质和电子装置 | |
CN113128015A (zh) | 预估单振幅模拟量子计算所需资源的方法和系统 | |
CN113609806B (zh) | 一种结合子图同构的量子线路程序通用变换方法 | |
CN115146485A (zh) | 基于gpu加速的射频链路仿真方法 | |
CN115983392A (zh) | 量子程序映射关系的确定方法、装置、介质及电子装置 | |
CN115879562A (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 |