首页 / 专利库 / 电脑编程 / 量子计算 / 一种量子程序的处理方法、装置、存储介质和电子装置

一种量子程序的处理方法、装置、存储介质和电子装置

阅读:778发布:2020-05-13

专利汇可以提供一种量子程序的处理方法、装置、存储介质和电子装置专利检索,专利查询,专利分析的服务。并且本 发明 公开了一种量子程序的处理方法、装置、存储介质和 电子 装置,所述方法包括:构建可以相互替换的 指定 量子 逻辑 门 与指定量子线路的关联关系;查询量子程序中的满足所述关联关系的量子线路,其中,所述满足所述关联关系的量子线路是指与指定量子线路具有匹配关系的线路;使用所述指定量子 逻辑门 直接替换量子程序中的满足所述关联关系的量子线路。本发明借助某些量子逻辑门与量子线路可相互替代性,从而实现将特定结构的量子线路替换为单个量子逻辑门,从而实现 量子计算 的优化。,下面是一种量子程序的处理方法、装置、存储介质和电子装置专利的具体信息内容。

1.一种量子程序的处理方法,其特征在于,所述方法包括:
构建可以相互替换的指定量子逻辑门与指定量子线路的关联关系;
查询量子程序中的满足所述关联关系的量子线路,其中,所述满足所述关联关系的量子线路是指与指定量子线路具有匹配关系的线路;
使用所述指定量子逻辑门直接替换量子程序中的满足所述关联关系的量子线路。
2.根据权利要求1所述的一种量子程序的处理方法,其特征在于,所述查询量子程序中的满足所述关联关系的量子线路,包括:
分别构建所述量子程序、所述满足所述关联关系的量子线路的有向无环图;
基于所述有向无环图,查询所述量子程序中的满足所述关联关系的量子线路。
3.根据权利要求2所述的一种量子程序的处理方法,其特征在于,所述与指定量子线路具有匹配关系的线路,包括:
与指定量子线路的量子逻辑门和量子逻辑门操作的量子比特均一一对应的线路。
4.根据权利要求3所述的一种量子程序的处理方法,其特征在于,所述使用所述指定量子逻辑门直接替换量子程序中的满足所述关联关系的量子线路,包括:
确定所述量子程序中的所述满足所述关联关系的量子线路与所述指定量子逻辑门的量子比特的对应关系,其中,所述对应关系是由所述匹配关系确定;
删除满足所述关联关系的量子线路在所述量子程序对应的有向无环图中的顶点;
根据所述对应关系,将所述量子逻辑门对应的有向无环图中的顶点,插入删除顶点后的所述量子程序对应的有向无环图,生成新的有向无环图,并基于所述新的有向无环图,构建新的量子程序。
5.根据权利要求4所述的一种量子程序的处理方法,其特征在于,所述基于所述新的有向无环图,构建新的量子程序,包括:
获取所述新的有向无环图;
构建所述新的有向无环图对应的分层拓扑序列;
通过所述新的分层拓扑序列,构建新的量子程序。
6.一种量子程序的处理装置,其特征在于,所述装置包括:
构建模块,构建可以相互替换的指定量子逻辑门与指定量子线路的关联关系;
查询模块,用于查询量子程序中的满足所述关联关系的量子线路,其中,所述满足所述关联关系的量子线路是指与指定量子线路具有匹配关系的线路;
替换模块,用于使用所述指定量子逻辑门直接替换量子程序中的满足所述关联关系的量子线路。
7.根据权利要求6所述的一种量子程序的处理装置,其特征在于,所述查询模块,包括:
构建单元,用于分别构建所述量子程序、所述满足所述关联关系的量子线路的有向无环图;
查询单元,用于基于所述有向无环图,查询所述量子程序中的满足所述关联关系的量子线路。
8.根据权利要求6所述的一种量子程序的处理装置,其特征在于,所述替换模块,包括:
确定单元,用于确定所述量子程序中的所述满足所述关联关系的量子线路与所述指定量子逻辑门的量子比特的对应关系,其中,所述对应关系是由所述匹配关系确定;
删除单元,用于删除满足所述关联关系的量子线路在所述量子程序对应的有向无环图中的顶点;
插入单元,用于根据所述对应关系,将所述量子逻辑门对应的有向无环图中的顶点,插入删除顶点后的所述量子程序对应的有向无环图,生成新的有向无环图,并基于所述新的有向无环图,构建新的量子程序。
9.一种存储介质,其特征在于,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行所述权利要求1至5任一项中所述的方法。
10.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行所述权利要求1至5任一项中所述的方法。

说明书全文

一种量子程序的处理方法、装置、存储介质和电子装置

技术领域

[0001] 本发明属于量子计算技术领域,特别是涉及一种量子程序的处理方法、装置、存储介质和电子装置。

背景技术

[0002] 量子逻辑电路又称量子线路,它是量子计算领域中常用的量子计算模型,表示在抽象的概念下,对量子比特进行操作的线路,它是各种量子逻辑组成的集合。在量子计算中,量子计算的模拟主要是通过量子程序所包含的量子逻辑门的操作矩阵对量子态向量进行处理,得到经过量子逻辑门处理后的末态。以量子线路模型描述的量子算法,是一种操控量子计算机,使其对输入状态进行处理,并且输出特定的测量值的方法。量子计算机在运行量子算法时因其具有相对普通计算机更高效的处理数学问题的能,故成为一种正在研究中的关键技术。量子计算的模拟运算过程中,可通过对量子程序所包含的特定量子线路的替换达到简化并提高量子计算的模拟运算速度的效果。
[0003] 现有技术中,存在一些量子逻辑门或量子线路是可以相互替代的,因此若想要实现量子逻辑门对量子线路的相互替换,实现量子计算的简化,有必要实现一种量子程序的处理方法,从而对量子程序所包含的特定量子线路进行查询并替换,从而达到优化量子计算的目的。

发明内容

[0004] 本发明的目的是提供一种量子程序的处理方法、装置、存储介质和电子装置,以解决现有技术中的不足,它能够实现量子程序中量子计算的优化,从而提高量子计算的效率。
[0005] 本发明采用的技术方案如下:
[0006] 一种量子程序的处理方法,所述方法包括:
[0007] 构建可以相互替换的指定量子逻辑门与指定量子线路的关联关系;
[0008] 查询量子程序中的满足所述关联关系的量子线路,其中,所述满足所述关联关系的量子线路是指与指定量子线路具有匹配关系的线路;
[0009] 使用所述指定量子逻辑门直接替换量子程序中的满足所述关联关系的量子线路。
[0010] 如上所述的量子程序的处理方法,其中,优选的,所述查询量子程序中的满足所述关联关系的量子线路,包括:
[0011] 分别构建所述量子程序、所述满足所述关联关系的量子线路的有向无环图;
[0012] 基于所述有向无环图,查询所述量子程序中的满足所述关联关系的量子线路。
[0013] 如上所述的量子程序的处理方法,其中,优选的,所述与指定量子线路具有匹配关系的线路,包括:
[0014] 与指定量子线路的量子逻辑门和量子逻辑门操作的量子比特均一一对应的线路。
[0015] 如上所述的量子程序的处理方法,其中,优选的,所述使用所述指定量子逻辑门直接替换量子程序中的满足所述关联关系的量子线路,包括:
[0016] 确定所述量子程序中的所述满足所述关联关系的量子线路与所述指定量子逻辑门的量子比特的对应关系,其中,所述对应关系是由所述匹配关系确定;
[0017] 删除满足所述关联关系的量子线路在所述量子程序对应的有向无环图中的顶点
[0018] 根据所述对应关系,将所述量子逻辑门对应的有向无环图中的顶点,插入删除顶点后的所述量子程序对应的有向无环图,生成新的有向无环图,并基于所述新的有向无环图,构建新的量子程序。
[0019] 如上所述的量子程序的处理方法,其中,优选的,所述基于所述新的有向无环图,构建新的量子程序,包括:
[0020] 获取所述新的有向无环图;
[0021] 构建所述新的有向无环图对应的分层拓扑序列;
[0022] 通过所述新的分层拓扑序列,构建新的量子程序。
[0023] 一种量子程序的处理装置,所述装置包括:
[0024] 构建模,构建可以相互替换的指定量子逻辑门与指定量子线路的关联关系;
[0025] 查询模块,用于查询量子程序中的满足所述关联关系的量子线路,其中,所述满足所述关联关系的量子线路是指与指定量子线路具有匹配关系的线路;
[0026] 替换模块,用于使用所述指定量子逻辑门直接替换量子程序中的满足所述关联关系的量子线路。
[0027] 如上所述的量子程序的处理装置,其中,优选的,所述查询模块,包括:
[0028] 构建单元,用于分别构建所述量子程序、所述满足所述关联关系的量子线路的有向无环图;
[0029] 查询单元,用于基于所述有向无环图,查询所述量子程序中的满足所述关联关系的量子线路。
[0030] 如上所述的量子程序的处理装置,其中,优选的,所述替换模块,包括:
[0031] 确定单元,用于确定所述量子程序中的所述满足所述关联关系的量子线路与所述指定量子逻辑门的量子比特的对应关系,其中,所述对应关系是由所述匹配关系确定;
[0032] 删除单元,用于删除满足所述关联关系的量子线路在所述量子程序对应的有向无环图中的顶点;
[0033] 插入单元,用于根据所述对应关系,将所述量子逻辑门对应的有向无环图中的顶点,插入删除顶点后的所述量子程序对应的有向无环图,生成新的有向无环图,并基于所述新的有向无环图,构建新的量子程序。
[0034] 一种存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行所述量子程序的处理方法。
[0035] 一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行所述量子程序的处理方法。
[0036] 与现有技术相比,本发明构建可以相互替换的指定量子逻辑门与指定量子线路的关联关系;查询量子程序中的满足所述关联关系的量子线路,其中,所述满足所述关联关系的量子线路是指与指定量子线路具有匹配关系的线路;使用所述指定量子逻辑门直接替换量子程序中的满足所述关联关系的量子线路。本发明借助某些量子逻辑门与量子线路可相互替代性,从而实现将特定结构的量子线路替换为单个量子逻辑门,从而实现量子计算的优化。附图说明
[0037] 图1是本发明实施例提供的一种量子程序处理方法的流程示意图;
[0038] 图2是本发明实施例提供的一种量子线路的示意图;
[0039] 图3是本发明实施例提供的一种量子线路对应的带顶点信息的示意图;
[0040] 图4是本发明实施例提供的一种量子线路对应的有向无环图的示意图;
[0041] 图5是本发明实施例提供的一种满足关联关系的量子线路有向无环图;
[0042] 图6是本发明实施例提供的另一种满足关联关系的量子线路有向无环图;
[0043] 图7是本发明实施例提供的一种量子逻辑门直接替换量子程序中的满足关联关系的量子线路流程示意图;
[0044] 图8是本发明实施例提供的一种删除满足关联关系的量子线路顶点的示意图;
[0045] 图9是本发明实施例提供的删除另一种满足关联关系的量子线路顶点的示意图;
[0046] 图10是本发明实施例提供的插入量子逻辑门之后的示意图;
[0047] 图11是本发明实施例提供的一种量子线路新的有向无环图;
[0048] 图12是本发明实施例提供的一种新的量子程序示意图;
[0049] 图13是本发明实施例提供的一种量子程序处理装置的结构示意图。

具体实施方式

[0050] 下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。
[0051] 需要说明的是,本发明的说明书权利要求书中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
[0052] 本发明的实施例提供了一种量子程序的处理方法,应用于电子设备如移动终端,如手机、平板电脑,优选应用于计算机,如普通电脑、量子计算机等。下面对其进行详细说明。
[0053] 需要说明的是,真正的量子计算机是混合结构的,它包含两大部分:一部分是经典计算机,负责执行经典计算与控制;另一部分是量子设备,负责执行量子计算。实际上,真正的量子程序是由量子语言如Qrunes语言编写的一串能够在量子计算机上运行的指令序列,实现了对量子逻辑门操作的支持,并最终实现对量子计算的模拟。具体的说,量子程序就是一系列按照一定时序操作量子逻辑门的指令序列。
[0054] 在实际应用中,为了对量子计算进行模拟以验证量子应用等等,可以通过运行在普通计算机的量子虚拟机实现。本发明实施例所指量子程序,即是在量子操作平台上运行的由经典语言编写的表征量子比特及其演化的程序,其中与量子计算相关的量子比特、量子逻辑门等等均有相应的经典代码表示。
[0055] 量子线路,也称量子逻辑电路,是最常用的通用量子计算模型,表示在抽象概念下对于量子比特进行操作的线路,其组成包括量子比特、线路(时间线),以及各种量子逻辑门,最后常需要通过量子测量操作将结果读取出来。
[0056] 不同于传统电路是用金属线所连接以传递电压信号电流信号,在量子线路中,线路可看成是由时间所连接,亦即量子比特的状态随着时间自然演化,在这过程中按照哈密顿运算符的指示,一直到遇上逻辑门而被操作。
[0057] 一个量子程序整体上对应有一条总的量子线路,本发明所述量子程序即指该条总的量子线路,其中,该总的量子线路中的量子比特总数与量子程序的量子比特总数相同。可以理解为:一个量子程序主要由量子线路、针对量子线路中量子比特的测量操作、保存测量结果的寄存器及控制流节点(跳转指令)组成,一条量子线路可以包含几十上百个甚至千上万个量子逻辑门操作。量子程序的执行过程,就是对所有的量子逻辑门按照一定时序执行的过程。需要说明的是,时序即单个量子逻辑门被执行的时间顺序。
[0058] 需要说明的是,经典计算中,最基本的单元是比特,而最基本的控制模式是逻辑门,可以通过逻辑门的组合来达到控制电路的目的。类似地,处理量子比特的方式就是量子逻辑门。使用量子逻辑门,能够使量子态发生演化,量子逻辑门是构成量子线路的基础,就像传统逻辑门跟一般数位线路之间的关系。量子逻辑门包括单比特量子逻辑门,如Hadamard门(H门)、Pauli-X门、Pauli-Y门、Pauli-Z门、RX门、RY门、RZ门;多比特量子逻辑门,如CNOT门、CR门、SWAP门、iSWAP门、Toffoli门等。量子逻辑门一般使用酉矩阵表示,而酉矩阵不仅是矩阵形式,也是一种操作和变换。
[0059] 可以理解的是,在量子计算模拟中,量子程序中可能存在多个特定结构的子量子线路或由多个相同的量子逻辑门组成的子量子线路,这些量子逻辑门或子量子线路是可以相互替代的,例如一个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])。
[0060] 通过这些量子逻辑门或子量子线路的相互替代,可以达到减少量子逻辑门的个数,从而优化量子计算的效果,例如:采用一个例如SWAP的量子逻辑门替换多个CNOT门组成的量子线路。
[0061] 基于此,参见图1,图1为本发明实施例提供的一种量子程序处理方法的流程示意图,具体包括如下步骤:
[0062] S101:构建可以相互替换的指定量子逻辑门与指定量子线路的关联关系;
[0063] 具体的,量子逻辑门是构成量子线路的基础,在量子计算模拟中,量子程序中可能存在多个特定结构的子量子线路或由多个相同的量子逻辑门组成的子量子线路,这些量子逻辑门或子量子线路是可以相互替代的,例如CZ门、CNOT门、SWAP门等。这些指定量子逻辑门均可以等效为多个单量子逻辑门和/或多个双量子逻辑门组成的指定量子线路。
[0064] 构建可以相互替换的指定量子逻辑门与指定量子线路的关联关系,其中,关联关系为所构建的指定量子逻辑门与所构建的指定量子线路功能等同,进行量子计算时的结果相同。示例性的,可以与指定量子线路相互替换的指定量子逻辑门,如CZ(q[i],q[j])、CNOT(q[i],q[j])、SWAP(q[i],q[j])等,则与CZ(q[i],q[j])可以相互替换的指定量子线路为H(q[j])<
[0065] 示例性的,以构建可以相互替换的指定量子逻辑门SWAP(q[i],q[j])与指定量子线路CNOT(q[i],q[j])<
[0066] 可选的,构建量子逻辑门SWAP(q[0],q[1])和与其功能等同的量子线路CNOT(q[0],q[1])<
[0067] 其中,所构建的关联关系为SWAP(q[0],q[1])=CNOT(q[0],q[1])+H(q[0])+H(q[1])+CNOT(q[0],q[1])+H(q[0])+H(q[1])+CNOT(q[0],q[1]);或SWAP(q[0],q[1])=CNOT(q[0],q[1])+CNOT(q[1],q[0])+CNOT(q[0],q[1])。
[0068] S102:查询量子程序中的满足所述关联关系的量子线路,其中,所述满足所述关联关系的量子线路是指与指定量子线路具有匹配关系的线路;
[0069] 具体的,查询量子程序中的满足所述关联关系的量子线路,即在量子程序中查询出满足与所构建的指定量子逻辑门功能等同的量子线路。可以理解的是,一个量子程序整体上对应有一条总的量子线路,本发明实施例所述量子程序即指该条总的量子线路。
[0070] 所述满足所述关联关系的量子线路是指与指定量子线路具有匹配关系的线路,其中所述与指定量子线路具有匹配关系的线路,包括与指定量子线路的量子逻辑门和量子逻辑门操作的量子比特均一一对应的线路。
[0071] 示例性的,若指定量子线路为CNOT(q[i],q[j])<
[0072] 示例性的,若指定量子线路为CNOT(q[i],q[j])<
[0073] 示例性的,如图2所示的量子程序为H(q[0])<
[0074] 示例性的,满足所述关联关系的量子线路为CNOT(q[0],q[1])<
[0075] 示例性的,另一种满足所述关联关系的量子线路为CNOT(q[0],q[1])<
[0076] S1021:分别构建所述量子程序、所述满足所述关联关系的量子线路的有向无环图;
[0077] 具体的,量子程序可以理解为一个操作序列,其中可以包含量子线路、量子逻辑门、测量操作(Measure)等。
[0078] 首先获取量子程序中的节点,所谓量子程序中的节点,是指在整个程序的相对位置的一特定结构的数据,可以是量子逻辑门、测量操作(Measure)、子量子程序、量子线路等。
[0079] 具体的,可以通过遍历量子程序的节点,得到量子程序中各量子操作节点的节点信息;其中,量子操作节点的类型为量子逻辑门节点和测量操作(Measure)节点。
[0080] 示例性的,如图2所示的量子程序的节点分别为H(q[0])、H(q[1])、H(q[2])、H(q[3])、CNOT(q[0],q[1])、CNOT(q[2],q[3])、H(q[0])、H(q[1])、CNOT(q[3],q[2])、CNOT(q[0],q[1])、CNOT(q[2],q[3])、H(q[0])、H(q[1])、RX(q[2])、H(q[3])、CNOT(q[0],q[1])、RY(q[2])、H(q[0])、H(q[1])。
[0081] 其次根据所述节点操作的量子比特,确定节点之间的关系;
[0082] 具体的,针对每一所述量子操作节点,从该节点操作的量子比特依序执行的所有量子操作节点中,确定该节点的下一节点,得到该节点与下一节点之间的相邻关系。
[0083] 具体的,遍历如图2所示的量子程序的节点,首先获取量子线路量子比特数和各量子逻辑门的唯一标识符,例如,0号比特操作的第一个量子逻辑门H门节点的唯一标识符为“1”;最后一个量子比特3号比特操作的第一个量子逻辑门H门节点的唯一标识符为“4”,其中,量子逻辑门的唯一标识符按照量子逻辑门的执行时序进行标记,则遍历量子程序的节点分别为:节点1H(q[0])、节点2H(q[1])、节点3H(q[2])、节点4H(q[3])、节点5CNOT(q[0],q[1])、节点6CNOT(q[2],q[3])、节点7H(q[0])、节点8H(q[1])、节点9CNOT(q[3],q[2])、节点10CNOT(q[0],q[1])、节点11CNOT(q[2],q[3])、节点12H(q[0])、节点13H(q[1])、节点14RX(q[2])、节点15H(q[3])、节点16CNOT(q[0],q[1])、节点17RY(q[2])、节点18H(q[0])、节点
19H(q[1])。
[0084] 记录当前遍历到的节点操作的量子比特序号和唯一标识符,以更新遍历过程中每个比特对应的最后一个节点。并且,创建第一容器,用于记录每个比特对应的最后一个节点及当前遍历到的节点的信息;创建第二容器,用于记录最后一个节点与当前遍历到的节点之间的相邻关系。其中,量子比特对应的最后一个节点是指当前遍历到的量子逻辑门节点的前驱节点。
[0085] 首先,按照节点操作的量子比特依序遍历量子程序的节点。从量子线路的第一层开始,遍历到H(q[0]),则记录当前遍历的H门操作的量子比特序号0及其唯一标识符“1”,即:(0,1)。初始第一容器中没有元素,即H门没有前驱节点,即当前量子比特对应的最后一个节点为空。在第一容器记录0号比特对应的最后一个节点及当前遍历到节点的唯一标识符信息,为空和1,则记为[1]。由于最后一个节点为空,与下一个节点也就是当前遍历到的节点不存在相邻关系,则第二容器不进行记录。然后,依序遍历到第一层内的H(q[1])、H(q[2])、H(q[3]),处理流程同理。
[0086] 当遍历至量子线路第二层的起始,即遍历至节点CNOT(q[0],q[1])时,CNOT门控制的量子比特序号为0,目标量子比特序号为1,唯一标识符为5,则记录(0,5)和(1,5),此时CNOT(q[0],q[1])的前驱节点为H(q[0])和H(q[1]),则更新0号量子比特对应的最后一个节点,即由空更新为H(q[0]),其唯一标识符为“1”;更新1号量子比特对应的最后一个节点,即由空更新为H(q[1]),其唯一标识符为“2”。在第一容器记录当前0号比特对应的最后一个节点H(q[0])及当前遍历到的节点CNOT(q[0],q[1])的唯一标识符信息,记为[1,5]。同时,在第二容器记录当前0号比特对应的最后一个节点H(q[0])与当前遍历到的节点CNOT(q[0],q[1])之间的相邻关系,以唯一标识符的形式记录,即记为{1,5},表示节点1和节点5相邻;在第一容器记录当前1号比特对应的最后一个节点H(q[1])及当前遍历到的节点CNOT(q[0],q[1])的唯一标识符信息,记为[2,5]。同时,在第二容器记录当前1号比特对应的最后一个节点H(q[1])与当前遍历到的节点CNOT(q[0],q[1])之间的相邻关系,以唯一标识符的形式记录,即记为{2,5},表示节点2和节点5相邻。
[0087] 遍历到节点CNOT(q[2],q[3])时,CNOT门操作的量子比特序号为2和3,唯一标识符为6,则记录(2,6)和(3,6),该节点6的前驱节点为H(q[2])和H(q[3]),则更新2号比特的最后一个节点为H(q[2])、更新3号比特的最后一个节点为H(q[3]),其余节点的处理流程同理,在此不做赘述。
[0088] 具体的,按照上述方法,继续依序遍历如图2所示的量子程序的节点,记录量子线路第一层0、1、2、3号比特当前遍历节点的量子逻辑门节点的唯一标识符,并同时在第一容器和第二容器内记录节点唯一标识符,得到如表1所示的量子线路第一层的遍历结果,其中,每一层内的节点分别操作的量子比特互不相同:
[0089] 表1:图2所示量子线路第一层的遍历结果表
[0090]
[0091] 具体的,按照上述方法,继续依序遍历如图2所示的量子程序的节点,记录量子线路第二层0、1、2、3号比特当前遍历节点的量子逻辑门节点的唯一标识符,并同时在第一容器和第二容器内记录节点唯一标识符,得到如表2所示的量子线路第二层的遍历结果:
[0092] 表2:图2所示量子线路第二层的遍历结果表
[0093]
[0094] 具体的,按照上述方法,继续依序遍历如图2所示的量子程序的节点,记录量子线路第三层0、1、2、3号比特当前遍历节点的量子逻辑门节点的唯一标识符,并同时更新第一容器和第二容器内的节点唯一标识符集合,得到如表3所示的量子线路第三层的遍历结果:
[0095] 表3:图2所示量子线路第三层的遍历结果表
[0096]
[0097]
[0098] 具体的,按照上述方法,继续依序遍历如图2所示的量子程序的节点,记录量子线路第四层0、1、2、3号比特当前遍历节点的量子逻辑门节点的唯一标识符,并同时更新第一容器和第二容器内的节点唯一标识符集合,得到如表4所示的量子线路第四层的遍历结果:
[0099] 表4:图2所示量子线路第四层的遍历结果表
[0100]
[0101] 具体的,按照上述方法,继续依序遍历如图2所示的量子程序的节点,记录量子线路第五层0、1、2、3号比特当前遍历节点的量子逻辑门节点的唯一标识符,并同时更新第一容器和第二容器内的节点唯一标识符集合,得到如表5所示的量子线路第五层的遍历结果:
[0102] 表5:图2所示量子线路第五层的遍历结果表
[0103]
[0104] 具体的,按照上述方法,继续依序遍历如图2所示的量子程序的节点,记录量子线路第六层0、1、2、3号比特当前遍历节点的量子逻辑门节点的唯一标识符,并同时更新第一容器和第二容器内的节点唯一标识符集合,得到如表6所示的量子线路第六层的遍历结果:
[0105] 表6:图2所示量子线路第六层的遍历结果表
[0106]
[0107] 具体的,按照上述方法,继续依序遍历如图2所示的量子程序的节点,记录量子线路第七层0、1、2、3号比特当前遍历节点的量子逻辑门节点的唯一标识符,并同时更新第一容器和第二容器内的节点唯一标识符集合,得到如表7所示的量子线路第七层的遍历结果:
[0108] 表7:图2所示量子线路第七层的遍历结果表
[0109]
[0110] 具体的,创建节点对应的顶点,具体为:第一容器中用于记录每个比特对应的最后一个节点及当前遍历到的节点的信息的集合,用于构建对应的量子逻辑门节点对应的顶点。例如:
[0111] 第一容器中的集合[1],即构建对应的顶点1(H(q[0]));
[0112] 第一容器中的集合[2],即构建对应的顶点2(H(q[1]));
[0113] 第一容器中的集合[3],即构建对应的顶点3(H(q[2]));
[0114] 第一容器中的集合[4],即构建对应的顶点4(H(q[3]));
[0115] 第一容器中的集合[1,5],即构建对应的顶点1(H(q[0]))和顶点5(CNOT(q[0],q[1]));
[0116] 第一容器中的集合[2,5],即构建对应的顶点2(H(q[1]))和顶点5(CNOT(q[0],q[1]));
[0117] 第一容器中的集合[3,6],即构建对应的顶点3(H(q[2]))和顶点6(CNOT(q[2],q[3]));
[0118] 第一容器中的集合[4,6],即构建对应的顶点4(H(q[3]))和顶点6(CNOT(q[2],q[3]));
[0119] 第一容器中的集合[5,7],即构建对应的顶点5(CNOT(q[0],q[1]))和顶点7(H(q[0]));
[0120] 第一容器中的集合[5,8],即构建对应的顶点5(CNOT(q[0],q[1]))和顶点8(H(q[1]));
[0121] 第一容器中的集合[6,9],即构建对应的顶点6(CNOT(q[2],q[3]))和顶点9(CNOT(q[3],q[2]));
[0122] 第一容器中的集合[7,10],即构建对应的顶点7(H(q[0]))和顶点10(CNOT(q[0],q[1]));
[0123] 第一容器中的集合[8,10],即构建对应的顶点8(H(q[1]))和顶点10(CNOT(q[0],q[1]));
[0124] 第一容器中的集合[9,11],即构建对应的顶点9(CNOT(q[3],q[2]))和顶点11(CNOT(q[2],q[3]));
[0125] 第一容器中的集合[10,12],即构建对应的顶点10(CNOT(q[0],q[1]))和顶点12(H(q[0]));
[0126] 第一容器中的集合[10,13],即构建对应的顶点10(CNOT(q[0],q[1]))和顶点13(H(q[1]));
[0127] 第一容器中的集合[11,14],即构建对应的顶点11(CNOT(q[2],q[3]))和顶点14(RX(q[2]));
[0128] 第一容器中的集合[11,15],即构建对应的顶点11(CNOT(q[2],q[3]))和顶点15(H(q[3]));
[0129] 第一容器中的集合[12,16],即构建对应的顶点12(H(q[0]))和顶点16(CNOT(q[0],q[1]));
[0130] 第一容器中的集合[13,16],即构建对应的顶点13(H(q[1]))和顶点16(CNOT(q[0],q[1]));
[0131] 第一容器中的集合[14,17],即构建对应的顶点14(RX(q[2]))和顶点17(RY(q[2]));
[0132] 第一容器中的集合[16,18],即构建对应的顶点16(CNOT(q[0],q[1]))和顶点18(H(q[0]));
[0133] 第一容器中的集合[16,19],即构建对应的顶点16(CNOT(q[0],q[1]))和顶点19(H(q[1]));
[0134] 得到如图3所示的量子线路对应的带顶点信息的示意图。
[0135] 构建具有相邻关系的节点对应的顶点之间的边,其中,所述边的方向由具有相邻关系的节点中的前一节点对应的顶点指向下一节点对应的顶点。
[0136] 具体的,第二容器中用于记录最后一个节点与当前遍历到的节点之间的相邻关系,用于构建具有所述相邻关系的节点对应的顶点之间的边,其中,所述边的方向由具有所述相邻关系的节点中的前一节点对应的顶点指向下一节点对应的顶点。例如:
[0137] 第二容器中的集合{1,5}表示顶点1(H(q[0]))和顶点5(CNOT(q[0],q[1]))之间有边相连,且边的方向由顶点1(H(q[0]))指向顶点5(CNOT(q[0],q[1]));
[0138] 第二容器中的集合{2,5}表示顶点2(H(q[1]))和顶点5(CNOT(q[0],q[1]))之间有边相连,且边的方向由顶点2(H(q[1]))指向顶点5(CNOT(q[0],q[1]));
[0139] 第二容器中的集合{3,6}表示顶点3(H(q[2]))和顶点6(CNOT(q[2],q[3]))之间有边相连,且边的方向由顶点3(H(q[2]))指向顶点6(CNOT(q[2],q[3]));
[0140] 第二容器中的集合{4,6}表示顶点4(H(q[3]))和顶点6(CNOT(q[2],q[3]))之间有边相连,且边的方向由顶点4(H(q[3]))指向顶点6(CNOT(q[2],q[3]));
[0141] 第二容器中的集合{5,7}表示顶点5(CNOT(q[0],q[1]))和顶点7(H(q[0]))之间有边相连,且边的方向由顶点5(CNOT(q[0],q[1]))指向顶点7(H(q[0]));
[0142] 第二容器中的集合{5,8}表示顶点5(CNOT(q[0],q[1]))和顶点8(H(q[1]))之间有边相连,且边的方向由顶点5(CNOT(q[0],q[1]))指向顶点8(H(q[1]));
[0143] 第二容器中的集合{6,9}表示顶点6(CNOT(q[2],q[3]))和顶点9(CNOT(q[3],q[2]))之间有边相连,且边的方向由顶点6(CNOT(q[2],q[3]))指向顶点9(CNOT(q[3],q[2]));
[0144] 第二容器中的集合{7,10}表示顶点7(H(q[0]))和顶点10(CNOT(q[0],q[1]))之间有边相连,且边的方向由顶点7(H(q[0]))指向顶点10(CNOT(q[0],q[1]));
[0145] 第二容器中的集合{8,10}表示顶点8(H(q[1]))和顶点10(CNOT(q[0],q[1]))之间有边相连,且边的方向由顶点8(H(q[1]))指向顶点10(CNOT(q[0],q[1]));
[0146] 第二容器中的集合{9,11}表示顶点9(CNOT(q[3],q[2]))和顶点11(CNOT(q[2],q[3]))之间有边相连,且边的方向由顶点(CNOT(q[3],q[2]))指向顶点11(CNOT(q[2],q[3]));
[0147] 第二容器中的集合{10,12}表示顶点10(CNOT(q[0],q[1]))和顶点12(H(q[0]))之间有边相连,且边的方向由顶点10(CNOT(q[0],q[1]))指向顶点12(H(q[0]));
[0148] 第二容器中的集合{10,13}表示顶点10(CNOT(q[0],q[1]))和顶点13(H(q[1]))之间有边相连,且边的方向由顶点10(CNOT(q[0],q[1]))指向顶点13(H(q[1]));
[0149] 第二容器中的集合{11,14}表示顶点11(CNOT(q[2],q[3]))和顶点14(RX(q[2]))之间有边相连,且边的方向由顶点11(CNOT(q[2],q[3]))指向顶点14(RX(q[2]));
[0150] 第二容器中的集合{11,15}表示顶点11(CNOT(q[2],q[3]))和顶点15(H(q[3]))之间有边相连,且边的方向由顶点11(CNOT(q[2],q[3]))指向顶点15(H(q[3]));
[0151] 第二容器中的集合{12,16}表示顶点12(H(q[0]))和顶点16(CNOT(q[0],q[1]))之间有边相连,且边的方向由顶点12(H(q[0]))指向顶点16(CNOT(q[0],q[1]));
[0152] 第二容器中的集合{13,16}表示顶点13(H(q[1]))和顶点16(CNOT(q[0],q[1]))之间有边相连,且边的方向由顶点13(H(q[1]))指向顶点16(CNOT(q[0],q[1]));
[0153] 第二容器中的集合{14,17}表示顶点14(RX(q[2]))和顶点17(RY(q[2]))之间有边相连,且边的方向由顶点14(RX(q[2]))指向顶点17(RY(q[2]));
[0154] 第二容器中的集合{16,18}表示顶点16(CNOT(q[0],q[1]))和顶点18(H(q[0]))之间有边相连,且边的方向由顶点16(CNOT(q[0],q[1]))指向顶点18(H(q[0]));
[0155] 第二容器中的集合{16,19}表示顶点16(CNOT(q[0],q[1]))和顶点19(H(q[1]))之间有边相连,且边的方向由顶点16(CNOT(q[0],q[1]))指向顶点19(H(q[1]));
[0156] 综合各个顶点的指向关系,得到如图4所示的量子线路对应的有向无环图的示意图。
[0157] 示例性的,构建满足所述关联关系量子线路节点为CNOT(q[0],q[1])、H(q[0])、H(q[1])、CNOT(q[0],q[1])、H(q[0])、H(q[1])、CNOT(q[0],q[1])的有向无环图;具体的,构建满足所述关联关系量子线路有向无环图的方法、原理和上述构建量子程序有向无环图的方法及原理相同,在此不再赘述,得到如图5所示的满足所述关联关系的量子线路有向无环图。
[0158] 构建另一种满足所述关联关系量子线路节点为CNOT(q[0],q[1])、CNOT(q[1],q[0])、CNOT(q[0],q[1])的有向无环图;具体的,构建另一种满足所述关联关系量子线路有向无环图的方法、原理和上述构建量子程序有向无环图的方法及原理相同,在此不再赘述,得到如图6所示的另一种满足所述关联关系的量子线路有向无环图。
[0159] S1022:基于所述有向无环图,查询所述量子程序中的满足所述关联关系的量子线路。
[0160] 首先,基于所述有向无环图,获得各所述有向无环图对应的分层拓扑序列;
[0161] 周知的,对一个有向无环图(DAG)进行拓扑排序的效果将有向无环图中所有顶点排成一个线性序列,使得图中任意一对顶点U和V,若边{U,V}属于该有向无环图,则顶点U与顶点V相连,且边的方向由顶点U指向顶点V。有向无环图的拓扑排序的过程,可以简单描述为:1)在有向无环图中选择没有前驱的顶点且输出之;2)在图中删除该顶点和所有以它为尾的弧。
[0162] 具体的,获得各所述有向无环图分别对应的邻接矩阵,通常采用二维的数组存储有向无环图的各顶点之间的边的信息,记为邻接矩阵,且在邻接矩阵的存储结构的头结点中增加一个存放顶点入度的数组。或,通过对邻接矩阵的处理,获得每个顶点的入度。亦或通过对邻接矩阵的处理,获得邻接矩阵对应的有向无环图所包含的顶点数。可以理解的是,入度是指图中某顶点作为图中边的终点次数之和;入度为0的顶点即为没有前驱的顶点。删除入度为0顶点以及以它为尾的弧的操作,则可换以弧头顶点的入度减1来实现。
[0163] 基于所述邻接矩阵,获得各所述有向无环图对应的分层拓扑序列。
[0164] 具体的,针对量子线路有向无环图对应的邻接矩阵进行分层拓扑排序的过程,可以描述如下:
[0165] 获取当前有向无环图内所有入度为0的顶点对应的顶点特征信息作为一个序列单元输出。
[0166] 具体的,获取所述有向无环图内所有入度为0的顶点,并获取与这些顶点相连的下一个顶点的信息;将各所述入度为0的顶点对应的所述下一个顶点的信息存入该入度为0的顶点信息后,作为拓扑序列的一个序列单元信息输出,即获得一个序列单元;删除当前有向无环图中所有以入度为0的顶点,及所有以入度为0的顶点为尾的边以更新所述有向无环图;对更新之后的所述有向无环图重复执行上述过程,直至有向无环图处理完,得到完整的分层拓扑序列。
[0167] 示例性的,如图4所示的量子线路的有向无环图,获取所述有向无环图内所有入度为0的顶点,即顶点1、顶点2、顶点3和顶点4,并获取与顶点1、顶点2、顶点3和顶点4相连的下一个顶点的信息;顶点1、顶点2相连的下一个顶点为顶点5,顶点3、顶点4相连的下一个顶点为顶点6;将各所述入度为0的顶点对应的所述下一个顶点的信息存入该入度为0的顶点信息后,作为拓扑序列的一个序列单元信息输出;即将顶点5(CNOT(q[0],q[1])的信息存入对应的入度为0的顶点1H(q[0])的顶点信息后,得到H(q[0])[CNOT(q[0],q[1])],可以简化记为H[CNOT];将顶点5(CNOT(q[0],q[1])的信息存入对应的入度为0的顶点2H(q[1])的顶点信息后,得到H(q[1])[CNOT(q[0],q[1])],可以简化记为H[CNOT];将顶点6(CNOT(q[2],q[3])的信息存入对应的入度为0的顶点3H(q[2])的顶点信息后,得到H(q[2])[CNOT(q[2],q[3])],可以简化记为H[CNOT];将顶点6(CNOT(q[2],q[3])的信息存入对应的入度为0的顶点4H(q[3])的顶点信息后,得到H(q[3])[CNOT(q[2],q[3])],可以简化记为H[CNOT];至此,当前有向无环图内所有入度为0的顶点及相连的下一个顶点的信息,得到的一个序列单元为:H(q[0])[CNOT(q[0],q[1])],H(q[1])[CNOT(q[0],q[1])],H(q[2])[CNOT(q[2],q[3])],H(q[3])[CNOT(q[2],q[3])],可以简化记为H[CNOT],H[CNOT],H[CNOT],H[CNOT];
[0168] 删除当前有向无环图中所有以入度为0的顶点,及所有以入度为0的顶点为尾的边以更新所述有向无环图;对更新之后的所述有向无环图重复执行上述过程,得到的一个序列单元为:CNOT(q[0],q[1])[H(q[0])],CNOT(q[0],q[1])[H(q[1])],CNOT(q[2],q[3])[CNOT(q[3],q[2])],可以简化记为CNOT[H],CNOT[H],CNOT[CNOT];
[0169] 继续删除当前有向无环图中所有以入度为0的顶点,及所有以入度为0的顶点为尾的边以更新所述有向无环图;对更新之后的所述有向无环图重复执行上述过程,得到的一个序列单元为:H(q[0])[CNOT(q[0],q[1])],H(q[1])[CNOT(q[0],q[1])],CNOT(q[3],q[2])[CNOT(q[2],q[3])],可以简化记为H[CNOT],H[CNOT],CNOT[CNOT];
[0170] 继续删除当前有向无环图中所有以入度为0的顶点,及所有以入度为0的顶点为尾的边以更新所述有向无环图;对更新之后的所述有向无环图重复执行上述过程,得到的一个序列单元为:CNOT(q[0],q[1])[H(q[0])],CNOT(q[0],q[1])[H(q[1])],CNOT(q[2],q[3])[RX(q[2])],CNOT(q[2],q[3])[H(q[3])],可以简化记为CNOT[H],CNOT[H],CNOT[RX],CNOT[H];
[0171] 继续删除当前有向无环图中所有以入度为0的顶点,及所有以入度为0的顶点为尾的边以更新所述有向无环图;对更新之后的所述有向无环图重复执行上述过程,得到的一个序列单元为:H(q[0])[CNOT(q[0],q[1])],H(q[1])[CNOT(q[0],q[1])],RX(q[2])[RY(q[2])],H(q[3])[],可以简化记为H[CNOT],H[CNOT],RX[RY],H[];
[0172] 继续删除当前有向无环图中所有以入度为0的顶点,及所有以入度为0的顶点为尾的边以更新所述有向无环图;对更新之后的所述有向无环图重复执行上述过程,得到的一个序列单元为:CNOT(q[0],q[1])[H(q[0])],CNOT(q[0],q[1])[H(q[1])],RY(q[2])[],可以简化记为CNOT[H],CNOT[H],RY[];
[0173] 继续删除当前有向无环图中所有以入度为0的顶点,及所有以入度为0的顶点为尾的边以更新所述有向无环图;对更新之后的所述有向无环图重复执行上述过程的一个序列单元为:H(q[0])[],H(q[1])[],可以简化记为H[],H[];
[0174] 此时,如图4所示的量子线路的有向无环图处理完,即H[CNOT],H[CNOT],H[CNOT],H[CNOT]|CNOT[H],CNOT[H],CNOT[CNOT]|H[CNOT],H[CNOT],CNOT[CNOT]|CNOT[H],CNOT[H],CNOT[RX],CNOT[H]|H[CNOT],H[CNOT],RX[RY],H[]|CNOT[H],CNOT[H],RY[]|H[],H[]为得到的完整分层拓扑序列。其中:“|”为分层符号,[]表示与当前入度为0的顶点无相连的下一顶点。
[0175] 需要说明的是,不管以H(q[0])[CNOT(q[0],q[1])]的形式还是H[CNOT]的形式输出拓扑序列的序列单元,可以理解的是,拓扑序列的每个序列单元应该包括当前顶点量子逻辑门的性质、与当前顶点相连的下一个顶点的量子逻辑门性质、当前顶点的量子逻辑门操作的量子比特和与当前顶点相连的下一个顶点的量子逻辑门操作的量子比特的相对关系和/或量子比特性质。
[0176] 进一步需要说明的是,以上所述的当前顶点指每次遍历当前有向无环图时确定的当前有向无环图中所有入度为0的顶点。
[0177] 而可以理解的是,量子逻辑门分为带参量子逻辑门和不带参量子逻辑门,带参量子逻辑门又分为参数可调量子逻辑门和参数固定量子逻辑门,所述量子逻辑门的性质包含量子逻辑门的种类以及量子逻辑门的参数性质。
[0178] 另外,可以理解的是,量子程序和/或量子线路中,为了区分不同量子比特,通常借助量子比特序号(即量子位)表示,以上所述的量子比特序号是根据量子程序和/或量子线路的需要而设置的,具有不确定性,当前顶点的量子逻辑门操作的量子比特和与当前顶点相连的下一个顶点的量子逻辑门操作的量子比特的相对关系是指量子逻辑门所操作的量子比特对应的量子位的相对关系。
[0179] 另外,以上所述的量子比特的性质是指量子逻辑门作用相关的量子比特的作用,比如:对于两门或者多门,起控制作用的量子比特为控制比特,起被控制作用的量子比特称为目标比特,控制比特和目标比特的性质和作用不一样。
[0180] 以上过程,完整的描述了示例性的图4所示的量子线路的有向无环图的分层拓扑排序过程。本领域技术人员等同和/或等效进行的任意量子线路的分层拓扑排序均落入以上保护范围。
[0181] 同时,如图5所示的一种满足关联关系的量子线路有向无环图,基于以上类似过程,进行分层拓扑排序,与上述方法和原理相同,在此不再赘述,得到的分层拓扑序列为CNOT[H],CNOT[H]|H[CNOT],H[CNOT]|CNOT[H],CNOT[H]|H[CNOT],H[CNOT]|CNOT[]。
[0182] 同时,如图6所示的另一种满足关联关系的量子线路有向无环图,基于以上类似过程,进行分层拓扑排序,与上述方法和原理相同,在此不再赘述,得到的分层拓扑序列为CNOT[CNOT]|CNOT[CNOT]|CNOT[]。
[0183] 具体的,据以上描述可知,分层拓扑序列的序列单元包含:当前顶点量子逻辑门的性质、与当前顶点相连的下一个顶点的量子逻辑门性质、当前顶点的量子逻辑门操作的量子比特和与当前顶点相连的下一个顶点的量子逻辑门操作的量子比特的相对关系和/或量子比特性质。
[0184] 针对选定的序列单元的匹配时,可以描述为:
[0185] 步骤a:先进行选定的两序列单元所包含的“当前顶点量子逻辑门的性质、与当前顶点相连的下一个顶点的量子逻辑门性质”的匹配。
[0186] 针对“当前顶点量子逻辑门的性质、与当前顶点相连的下一个顶点的量子逻辑门性质”这两项的比较匹配,示例性的,量子线路有向无环图的分层拓扑序列为G,满足关联关系的量子线路有向无环图的分层拓扑序列为p,顶点v1∈G,顶点v2∈p。。
[0187] 示例性的,假设v2为H门,v2连接的顶点为CNOT门,v2操作的量子比特是CNOT门的控制比特,若v1是RX门,则v1和v2不匹配;
[0188] 示例性的,假设v2为H门,v2连接的顶点为CNOT门,v2操作的量子比特是CNOT门的控制比特,若v1是H门,v1连接的顶点为RY门,则v1和v2不匹配;
[0189] 示例性的,假设v2为H门,v2连接的顶点为CNOT门,v2操作的量子比特是CNOT门的控制比特,若v1是H门,v1连接的顶点为CNOT门,v1操作的量子比特是CNOT门的目标比特,则v1和v2不匹配;
[0190] 示例性的,假设v2为H门,v2连接的顶点为CNOT门,v2操作的量子比特是CNOT门的控制比特,若v1是H门,v1连接的顶点为CNOT门,v1操作的量子比特是CNOT门的控制比特,则v1和v2匹配。
[0191] 以上描述通过量子逻辑门的类型特征进行匹配的示例。可以理解的是,针对含参量子逻辑门,还需要比较量子逻辑门的参数,示例性的,如RX门、RY门、RZ门等均是包含偏转度参数的量子逻辑门,此时参数的误差必须在一定范围内,例如对于RX门中包含的偏转角度,优选的,误差范围不大于10^(-6)。
[0192] 步骤b:然后进行选定的两序列单元所包含的“当前顶点的量子逻辑门操作的量子比特和与当前顶点相连的下一个顶点的量子逻辑门操作的量子比特的相对关系和/或量子比特性质”的匹配。
[0193] 容易理解的是,针对“当前顶点量子逻辑门的性质、与当前顶点相连的下一个顶点的量子逻辑门性质”这两项的比较匹配,p中的每个顶点v2在G中都会匹配出一组顶点[v1]集合,为了进一步匹配,需要针对“当前顶点的量子逻辑门操作的量子比特和与当前顶点相连的下一个顶点的量子逻辑门操作的量子比特的相对关系和/或量子比特性质”这一项的比较匹配。
[0194] 可以理解的是,量子比特的相对关系和/或量子比特性质的理解如下,例如图4所示量子线路的有向无环图的拓扑序列中的CNOT(q[0],q[1])[H(q[1])]的顶点中,量子逻辑门H操作的q[1]为量子逻辑门CNOT操作的目标比特q[1],而CNOT操作的控制比特为q[0];例如图5所示的有向无环图的拓扑序列中的CNOT(q[0],q[1])[H(q[1])],量子逻辑门H操作的q[1]为量子逻辑门CNOT操作的目标比特q[1],而CNOT操作的控制比特为q[0]。因此CNOT(q[0],q[1])[H(q[1])]和CNOT(q[0],q[1])[H(q[1])]两者的量子比特的相对关系和量子比特性质均一致,两者相互匹配。
[0195] 基于以上描述,进一步,首先基于序列单元获得满足关联关系的量子线路有向无环图的分层拓扑序列CNOT[H],CNOT[H]|H[CNOT],H[CNOT]|CNOT[H],CNOT[H]|H[CNOT],H[CNOT]|CNOT[]的序列单元和量子线路的分层拓扑序列H[CNOT],H[CNOT],H[CNOT],H[CNOT]|CNOT[H],CNOT[H],CNOT[CNOT]|H[CNOT],H[CNOT],CNOT[CNOT]|CNOT[H],CNOT[H],CNOT[RX],CNOT[H]|H[CNOT],H[CNOT],RX[RY],H[]|CNOT[H],CNOT[H],RY[]|H[],H[]中相互匹配的序列单元的判断过程如下:
[0196] 从所述量子线路分层拓扑序列的第一层开始,判断满足关联关系量子线路分层拓扑序列每一层是否存在与满足关联关系量子线路分层拓扑序列的第一层的各第二类序列单元匹配的第一类序列单元,直至第一次得到存在与满足关联关系量子线路分层拓扑序列的第一层的各第二类序列单元匹配的第一类序列单元的量子线路分层拓扑序列层,记为所述量子线路分层拓扑序列起始层,并记录与所述满足关联关系量子线路分层拓扑序列的第一层的各第二类序列单元匹配的第一类序列单元的集合;
[0197] 判断所述量子线路分层拓扑序列当前层的下一层是否存在与所述满足关联关系量子线路拓扑序列当前层的下一层的各第二类序列单元匹配的第一类序列单元;
[0198] 若存在与满足关联关系量子线路分层拓扑序列当前层的下一层的各第二类序列单元匹配的第一类序列单元,记录该次匹配出的第一类序列单元的集合,返回执行上一步,直至满足关联关系量子线路拓扑序列的最后一层匹配完成;
[0199] 若不存在与满足关联关系量子线路分层拓扑序列当前层的下一层的各第二类序列单元匹配的第一类序列单元,则所述量子线路中不含有与满足关联关系量子线路相匹配的子量子线路。
[0200] 在实际应用中,可以根据量子线路是否包括多个与满足关联关系量子线路匹配的子量子线路的情况,而决定是否进行下一次匹配。所记录的按层划分的第一类序列单元的集合,用于下一次匹配时的第一类序列单元的排除。
[0201] 定义满足所述关联关系量子线路分层拓扑序列层与量子线路分层拓扑序列层匹配的规则满足:
[0202] 对于满足所述关联关系量子线路当前拓扑序列层的每一个序列单元,在量子线路当前拓扑序列层都能找到与之相匹配的序列单元;其中,两个序列单元的匹配,遵循以上所述的序列单元匹配要求,在此不再赘述。
[0203] 示例性的,若满足所述关联关系量子线路的分层拓扑序列为CNOT[H],CNOT[H]|H[CNOT],H[CNOT]|CNOT[H],CNOT[H]|H[CNOT],H[CNOT]|CNOT[],则在如图2所示的量子线路中的匹配过程包括:
[0204] 获取量子线路有向无环图的分层拓扑序列,每一层设为G1,G2,G3……Gn;获取满足所述关联关系量子线路的有向无环图的分层拓扑序列,每一层设为Q1,Q2,Q3……Qn;
[0205] 示例性的,如图2所示的量子线路拓扑序列的分层如下:
[0206] G1层:H(q[0]),H(q[1]),H(q[2]),H(q[3]);
[0207] G2层:CNOT(q[0],q[1]),CNOT(q[2],q[3]);
[0208] G3层:H(q[0]),H(q[1]),CNOT(q[3],q[2]);
[0209] G4层:CNOT(q[0],q[1]),CNOT(q[2],q[3]);
[0210] G5层:H(q[0]),H(q[1]),RX(q[2]),H(q[3]);
[0211] G6层:CNOT(q[0],q[1]),RY(q[2]);
[0212] G7层:H(q[0])、H(q[1])。
[0213] 如图5所示的一种满足所述关联关系量子线路有向无环图的拓扑序列的分层如下:
[0214] Q1层:CNOT(q[0],q[1]);
[0215] Q2层:H(q[0]),H(q[1]);
[0216] Q3层:CNOT(q[0],q[1]);
[0217] Q4层:H(q[0]),H(q[1]);
[0218] Q5层:CNOT(q[0],q[1])。
[0219] 从量子线路拓扑序列的第一层开始,判断量子线路拓扑序列每一层是否存在与满足所述关联关系量子线路拓扑序列的第一层的各第二类序列单元匹配的第一类序列单元,直至第一次得到存在与满足所述关联关系量子线路拓扑序列的第一层的各第二类序列单元匹配的第一类序列单元的量子线路拓扑序列层,记为量子线路拓扑序列起始层,并记录与满足所述关联关系量子线路拓扑序列的第一层的各第二类序列单元匹配的第一类序列单元的集合;
[0220] 根据所述第二序列单元匹配的所述第一类序列单元,确定所述量子线路中存在的满足所述关联关系量子线路。
[0221] 示例性的,首先从量子线路拓扑序列的第一层G1层H(q[0]),H(q[1]),H(q[2]),H(q[3])开始判断主量子线路拓扑序列每一层是否存在与满足所述关联关系量子线路拓扑序列的第一层的各第二类序列单元匹配的第一类序列单元。满足所述关联关系量子线路拓扑序列的第一层Q1层为CNOT(q[0],q[1]),量子逻辑门为CNOT门,在量子线路拓扑序列的第一层G1层中找不到与之匹配的序列单元,因此继续在量子线路拓扑序列的下一层G2层CNOT(q[0],q[1]),CNOT(q[2],q[3])中继续匹配;通过匹配可以得到满足所述关联关系量子线路拓扑序列的第一层CNOT(q[0],q[1])与量子线路拓扑序列的第二层中的顶点CNOT(q[0],q[1])匹配,将量子线路拓扑序列的第二层记为量子线路拓扑序列起始层,并记录与满足所述关联关系量子线路拓扑序列的第一层的各第二类序列单元匹配的第一类序列单元的集合,即[CNOT(q[0],q[1]):CNOT(q[0],q[1])],其中“:”之前为满足所述关联关系量子线路拓扑序列的序列单元,“:”之后为量子线路拓扑序列的序列单元。
[0222] 继续判断量子线路拓扑序列当前层的下一层,即G3层H(q[0]),H(q[1]),CNOT(q[3],q[2])中是否存在与满足所述关联关系量子线路拓扑序列当前层的下一层,即Q2层H(q[0]),H(q[1])的序列单元是否匹配,若存在与满足所述关联关系量子线路拓扑序列当前层的下一层的各第二类序列单元匹配的第一类序列单元,记录该次匹配出的第一类序列单元的集合。通过匹配可以得到满足所述关联关系量子线路拓扑序列的第二层H(q[0]),H(q[1])与量子线路拓扑序列的第三层中的顶点H(q[0]),H(q[1])匹配,将量子线路拓扑序列的第三层记为量子线路拓扑序列起始层的下一层,并记录与满足所述关联关系量子线路拓扑序列的第二层的各第二类序列单元匹配的第一类序列单元的集合,即[CNOT(q[0],q[1])|H(q[0]),H(q[1])]:[CNOT(q[0],q[1])|H(q[0]),H(q[1])]。
[0223] 继续判断量子线路拓扑序列当前层的下一层及后续层数,直至量子线路拓扑序列的最后一层,重复上述步骤,匹配所有与满足所述关联关系量子线路分层拓扑序列中各第二类序列单元匹配的第一类序列单元;
[0224] 若量子线路拓扑序列当前层的下一层及后续层,存在与所述满足所述关联关系量子线路分层拓扑序列当前层的下一层的各第二类序列单元匹配的第一类序列单元,继续记录该次匹配出的第一类序列单元的集合,返回执行上一步,直至满足所述关联关系量子线路拓扑序列的最后一层匹配完成;记录与满足所述关联关系量子线路拓扑序列层的各第二类序列单元匹配的第一类序列单元的集合,即[CNOT(q[0],q[1])|H(q[0]),H(q[1])|CNOT(q[0],q[1])|H(q[0]),H(q[1])|CNOT(q[0],q[1])]:[CNOT(q[0],q[1])|H(q[0]),H(q[1])|CNOT(q[0],q[1])|H(q[0]),H(q[1])|CNOT(q[0],q[1])],其中“:”之前为满足所述关联关系量子线路拓扑序列的序列单元,“:”之后为量子线路拓扑序列的序列单元。
[0225] 若不存在与所述满足所述关联关系量子线路分层拓扑序列当前层的下一层的各第二类序列单元匹配的第一类序列单元,则量子线路中不含有与满足所述关联关系量子线路相匹配的子量子线路。
[0226] 示例性的,若另一种满足所述关联关系量子线路的分层拓扑序列为CNOT[CNOT]|CNOT[CNOT]|CNOT[],则在如图2所示的量子线路中的匹配过程和上述满足所述关联关系量子线路在如图2所示的量子线路中的匹配过程、方法、原理相同,在此不再赘述,获取并记录与另一种满足所述关联关系量子线路拓扑序列层的各第二类序列单元匹配的第一类序列单元的集合,即[CNOT(q[0],q[1])|CNOT(q[1],q[0])|CNOT(q[0],q[1])]:[CNOT(q[2],q[3])|CNOT(q[3],q[2])|CNOT(q[2],q[3])],其中“:”之前为另一种满足所述关联关系量子线路拓扑序列的序列单元,“:”之后为量子线路拓扑序列的序列单元。
[0227] S103:使用所述指定量子逻辑门直接替换量子程序中的满足所述关联关系的量子线路。
[0228] 参见图7,图7为本发明实施例提供的一种量子逻辑门直接替换量子程序中的满足关联关系的量子线路流程示意图,具体包括如下步骤:
[0229] S701:确定所述量子程序中的所述满足所述关联关系的量子线路与所述指定量子逻辑门的量子比特的对应关系,其中,所述对应关系是由所述匹配关系确定;
[0230] 具体的,根据上述匹配规则,对量子程序中的满足关联关系的量子线路匹配的每一个结果集,首先获取指定量子逻辑门和满足所述关联关系量子线路的量子比特的对应关系,其中,所述对应关系是由所述匹配关系确定。
[0231] 可选的,例如指定量子逻辑门SWAP(q[i],q[j]),其所操作的量子比特分别为i号比特和j号比特;量子程序中的满足关联关系的量子线路为CNOT(q[0],q[1])<
[0232] 可选的,例如指定量子逻辑门SWAP(q[i],q[j]),其所操作的量子比特分别为i号比特和j号比特;量子程序中的满足关联关系的量子线路为CNOT(q[2],q[3])<
[0233] S702:删除满足所述关联关系的量子线路在所述量子程序对应的有向无环图中的顶点;
[0234] 具体的,如图4所示的量子线路有向无环图中,首先查找满足所述关联关系的量子线路在所述量子线路有向无环图中的顶点位置并删除顶点及与顶点相连的边。
[0235] 示例性的,例如满足所述关联关系的量子线路为CNOT(q[0],q[1])<
[0236] 示例性的,继续查找满足所述关联关系的量子线路在所述量子线路有向无环图中的顶点位置并删除顶点及与顶点相连的边。
[0237] 可选的,例如另一种满足所述关联关系的量子线路为CNOT(q[2],q[3])<
[0238] S703:根据所述对应关系,将所述量子逻辑门对应的有向无环图中的顶点,插入删除顶点后的所述量子程序对应的有向无环图,生成新的有向无环图,并基于所述新的有向无环图,构建新的量子程序。
[0239] 具体的,根据前述对应关系[i,j]:[0,1],即指定量子逻辑门所操作的量子比特序号和满足所述关联关系的量子线路所操作的量子比特序号一一对应;即满足所述关联关系的量子线路CNOT(q[0],q[1])<
[0240] 具体的,将量子逻辑门SWAP(q[0],q[1])对应的有向无环图中的顶点,插入删除满足所述关联关系的量子线路顶点之后的量子线路对应的有向无环图中;将量子逻辑门SWAP(q[2],q[3])对应的有向无环图中的顶点,插入删除另一个满足所述关联关系的量子线路顶点之后的量子线路对应的有向无环图中;得到如图10所示的插入量子逻辑门之后的示意图。
[0241] 基于插入量子逻辑门顶点之后的子图,生成新的有向无环图,示例性的,如图10所示的插入量子逻辑门之后的示意图,生成原顶点1H(q[0])指向SWAP(q[0],q[1])的有向边;生成原顶点2H(q[1])指向SWAP(q[0],q[1])的有向边;生成SWAP(q[0],q[1])指向原顶点
18H(q[0])的有向边;生成SWAP(q[0],q[1])指向原顶点19H(q[1])的有向边;生成原顶点3H(q[2])指向SWAP(q[2],q[3])的有向边;生成原顶点4H(q[3])指向SWAP(q[2],q[3])的有向边;生成SWAP(q[2],q[3])指向原顶点14RX(q[2])的有向边;生成SWAP(q[2],q[3])指向原顶点15H(q[3])的有向边;得到如图11所示的一种量子线路新的有向无环图。
[0242] 获取所述新的有向无环图,基于该新的有向无环图,构建所述新的有向无环图对应的分层拓扑序列,按照上述方法,构建所述新的有向无环图对应的分层拓扑序列的原理和方法与前述相同,在此不再赘述,即新有向无环图对应的分层拓扑序列为H(q[0])[SWAP(q[0],q[1])],H(q[1])[SWAP(q[0],q[1])],H(q[2])[SWAP(q[2],q[3])],H(q[3])[SWAP(q[2],q[3])]|SWAP(q[0],q[1])[H(q[0])],SWAP(q[0],q[1])[H(q[1])],SWAP(q[2],q[3])[RX(q[2])],SWAP(q[2],q[3])[H(q[3])]|H(q[0])[],H(q[1])[],RX(q[2])[RY(q[2])],H(q[3])[]|RY(q[2])[],可以简化记为H[SWAP],H[SWAP],H[SWAP],H[SWAP]|SWAP[H],SWAP[H],SWAP[RX],SWAP[H]|H[],H[],RX[RY],H[]|RY[];最后通过新有向无环图对应的分层拓扑序列,构建新的量子程序,即新的量子程序为:H(q[0])<
[0243] 需要说明的是,上述过程完整说明了可相互替换的指定量子逻辑门与指定量子线路的替换的方法及其原理,容易想到的是,上述方法同样适用于可以相互替换的指定量子线路与另一个指定量子线路之间的替换,例如指定量子线路为CNOT(q[i],q[j])<
[0244] 参见图13,图13为本发明实施例提供的一种量子程序处理装置的结构示意图,与图1所示的流程相对应,可以包括:
[0245] 构建模块1301,用于构建可以相互替换的指定量子逻辑门与指定量子线路的关联关系;
[0246] 查询模块1302,用于查询量子程序中的满足所述关联关系的量子线路,其中,所述满足所述关联关系的量子线路是指与指定量子线路具有匹配关系的线路;
[0247] 替换模块1303,用于使用所述指定量子逻辑门直接替换量子程序中的满足所述关联关系的量子线路。
[0248] 具体的,查询模块,具体用于:
[0249] 分别构建所述量子程序、所述满足所述关联关系的量子线路的有向无环图;
[0250] 用于基于所述有向无环图,查询所述量子程序中的满足所述关联关系的量子线路。
[0251] 具体的,替换模块,具体用于:
[0252] 确定所述量子程序中的所述满足所述关联关系的量子线路与所述指定量子逻辑门的量子比特的对应关系,其中,所述对应关系是由所述匹配关系确定;
[0253] 删除满足所述关联关系的量子线路在所述量子程序对应的有向无环图中的顶点;
[0254] 根据所述对应关系,将所述量子逻辑门对应的有向无环图中的顶点,插入删除顶点后的所述量子程序对应的有向无环图,生成新的有向无环图,并基于所述新的有向无环图,构建新的量子程序。
[0255] 可见,在现有技术方案下,本发明构建可以相互替换的指定量子逻辑门与指定量子线路的关联关系;查询量子程序中的满足所述关联关系的量子线路,其中,所述满足所述关联关系的量子线路是指与指定量子线路具有匹配关系的线路;使用所述指定量子逻辑门直接替换量子程序中的满足所述关联关系的量子线路。本发明借助某些量子逻辑门与量子线路可相互替代性,从而实现将特定结构的量子线路替换为单个量子逻辑门,从而实现量子计算的优化。
[0256] 本发明实施例还提供一种存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
[0257] 具体的,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:
[0258] S101:构建可以相互替换的指定量子逻辑门与指定量子线路的关联关系;
[0259] S102:查询量子程序中的满足所述关联关系的量子线路,其中,所述满足所述关联关系的量子线路是指与指定量子线路具有匹配关系的线路;
[0260] S103:使用所述指定量子逻辑门直接替换量子程序中的满足所述关联关系的量子线路。
[0261] 具体的,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(Read-Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
[0262] 可见,在现有技术方案下,本发明构建可以相互替换的指定量子逻辑门与指定量子线路的关联关系;查询量子程序中的满足所述关联关系的量子线路,其中,所述满足所述关联关系的量子线路是指与指定量子线路具有匹配关系的线路;使用所述指定量子逻辑门直接替换量子程序中的满足所述关联关系的量子线路。本发明借助某些量子逻辑门与量子线路可相互替代性,从而实现将特定结构的量子线路替换为单个量子逻辑门,从而实现量子计算的优化。
[0263] 本发明实施例还提供一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一项方法实施例中的步骤。
[0264] 具体的,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
[0265] 具体的,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
[0266] S101:构建可以相互替换的指定量子逻辑门与指定量子线路的关联关系;
[0267] S102:查询量子程序中的满足所述关联关系的量子线路,其中,所述满足所述关联关系的量子线路是指与指定量子线路具有匹配关系的线路;
[0268] S103:使用所述指定量子逻辑门直接替换量子程序中的满足所述关联关系的量子线路。
[0269] 可见,在现有技术方案下,本发明构建可以相互替换的指定量子逻辑门与指定量子线路的关联关系;查询量子程序中的满足所述关联关系的量子线路,其中,所述满足所述关联关系的量子线路是指与指定量子线路具有匹配关系的线路;使用所述指定量子逻辑门直接替换量子程序中的满足所述关联关系的量子线路。本发明借助某些量子逻辑门与量子线路可相互替代性,从而实现将特定结构的量子线路替换为单个量子逻辑门,从而实现量子计算的优化。
[0270] 以上依据图式所示的实施例详细说明了本发明的构造、特征及作用效果,以上所述仅为本发明的较佳实施例,但本发明不以图面所示限定实施范围,凡是依照本发明的构想所作的改变,或修改为等同变化的等效实施例,仍未超出说明书与图示所涵盖的精神时,均应在本发明的保护范围内。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈