CN115310613A - 量子计算平台适配方法、装置及量子计算机操作系统 - Google Patents
量子计算平台适配方法、装置及量子计算机操作系统 Download PDFInfo
- Publication number
- CN115310613A CN115310613A CN202110430151.0A CN202110430151A CN115310613A CN 115310613 A CN115310613 A CN 115310613A CN 202110430151 A CN202110430151 A CN 202110430151A CN 115310613 A CN115310613 A CN 115310613A
- Authority
- CN
- China
- Prior art keywords
- quantum
- isomorphic
- graph
- sub
- cost
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N10/00—Quantum computing, i.e. information processing based on quantum-mechanical phenomena
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
技术领域
本申请涉及量子计算技术领域,尤其涉及一种量子计算平台适配方法、装置及量子计算机操作系统。
背景技术
不同的量子计算平台包括不同的量子芯片,不同的量子计算芯片支持不同的量子逻辑门集合。量子软件开发者在进行量子算法实现时,开发的量子程序往往只能在特定的量子芯片上运行。因此,如何提升量子程序的可扩展性,使其能够适配不同的量子计算平台,在不同的量子芯片上运行,是一个需要解决的问题。
发明内容
本申请实施例提供一种量子计算平台适配方法、装置及量子计算机操作系统,用于提升量子程序的可拓展性,使其能够适配不同的量子计算平台,在不同的量子芯片上运行。
第一方面,本申请实施例提供一种量子计算平台适配方法,所述方法包括:
获取待运行的量子程序和量子计算平台对应的量子芯片的拓扑结构,所述拓扑结构用于表示电子设备中的物理量子比特以及物理量子比特之间的连接关系;
基于所述拓扑结构将所述量子程序适配至所述量子计算平台。
可选地,在所述基于所述拓扑结构将所述量子程序适配至所述量子计算平台方面,包括:
构建所述量子程序的第一有向无环图;
遍历所述第一有向无环图得到最大子图序列,所述最大子图序列包括N个最大子图,所述N为大于或等于1的整数;
确定所述N个最大子图在所述拓扑结构中的同构子图,得到N个同构子图集合,所述N个同构子图集合与所述N个最大子图一一对应;
基于所述N个同构子图集合构建量子线路,所述量子线路允许在所述量子计算平台上运行。
可选地,在所述构建所述量子程序的第一有向无环图方面,包括:
获取所述量子程序中的量子逻辑门;
基于所述量子逻辑门构建第一有向无环图,所述第一有向无环图包括节点和有向边;所述节点包括两个点和一条边,所述两个点用于表示所述量子逻辑门对应的两个逻辑量子比特,所述一条边用于表示作用在两个逻辑量子比特上的量子逻辑门;所述有向边用于表示所述量子逻辑门按逻辑量子比特的量子态演化时序的依赖关系。
可选地,在所述量子逻辑门包括多量子逻辑门;所述基于所述量子逻辑门构建第一有向无环图方面,包括:
将所述多量子逻辑门转化为单量子逻辑门与两量子逻辑门;
删除所述单量子逻辑门,以及基于所述两量子逻辑门构建第一有向无环图。
可选地,在所述基于所述量子逻辑门构建第一有向无环图方面,包括:
若所述量子逻辑门包括多个连续的两量子逻辑门,且所述多个连续的两量子逻辑门作用相同的两个逻辑量子比特上,则基于所述多个连续的两量子逻辑门中的任一个构建第一有向无环图。
可选地,所述方法还包括:
若所述量子逻辑门包括多个连续的两量子逻辑门,且所述多个连续的两量子逻辑门作用不同的两个逻辑量子比特上,则基于所述多个连续的两量子逻辑门依次构建第一有向无环图。
第二方面,本申请实施例提供一种量子计算平台适配装置,所述装置包括:
获取单元,用于获取待运行的量子程序和量子计算平台对应的量子芯片的拓扑结构,所述拓扑结构用于表示电子设备中的物理量子比特以及物理量子比特之间的连接关系;
适配单元,用于基于所述拓扑结构将所述量子程序适配至所述量子计算平台。
第三方面,本申请实施例提供一种电子设备,包括处理器、存储器、通信接口以及一个或多个程序,其中,上述一个或多个程序被存储在上述存储器中,并且被配置由上述处理器执行,上述程序包括用于执行本申请实施例第一方面所述的方法中的步骤的指令。
第四方面,本申请实施例提供了一种计算机可读存储介质,其中,上述计算机可读存储介质存储用于电子数据交换的计算机程序,其中,上述计算机程序使得计算机执行如本申请实施例第一方面所述的方法中所描述的部分或全部步骤。
第五方面,本申请实施例提供了一种计算机程序产品,其中,上述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,上述计算机程序可操作来使计算机执行如本申请实施例第一方面所述的方法中所描述的部分或全部步骤。该计算机程序产品可以为一个软件安装包。
第六方面,本申请实施例提供了一种量子计算机操作系统,其中,上述量子计算机操作系统根据本申请实施例第一方面所述的方法中所描述的部分或全部步骤实现所述量子计算平台的适配。
可以看出,在本申请实施例中,首先获取待运行的量子程序和量子计算平台对应的量子芯片的拓扑结构,该拓扑结构用于表示电子设备中的物理量子比特以及物理量子比特之间的连接关系;然后基于该拓扑结构将量子程序适配至该量子计算平台;量子程序能否在量子芯片上运行主要取决于由芯片的拓扑结构,因此基于拓扑结构对量子程序进行适配,可以将量子程序适配至不同的量子计算平台,在不同的量子芯片上运行同一量子程序,从而提升了量子程序的可拓展性。除此之外,也减少了量子软件开发者的工作量,不用针对不同的量子芯片开发相同功能的量子软件。
本申请的这些方面或其他方面在以下实施例的描述中会更加简明易懂。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种量子计算平台适配方法的计算机终端的硬件结构框图;
图2A为本申请实施例提供的一种量子计算平台适配方法的流程示意图;
图2B为本申请实施例提供的一种量子线路的结构示意图;
图2C为图2B所示的量子线路对应的第一有向无环图的示意图;
图2D为基于图2C所示的第一有向无环图中的第一节点确定的第一子图的示意图;
图2E为图2C删除第一节点后得到的第二有向无环图的示意图;
图2F为基于第二节点在图2D上进行拓展得到的第二子图的示意图;
图2G为图2E删除第二节点后得到的第三有向无环图的示意图;
图2H为基于新的第二节点在图2F上进行拓展得到的第二子图的示意图;
图2I为图2G删除新的第二节点后得到的新的第一有向无环图的示意图;
图2J为基于图2I所示的第一有向无环图中的第一节点确定的第一子图的示意图;
图2K为图2J删除第一节点后得到的第二有向无环图的示意图;
图2L为基于第二节点在图2J上进行拓展得到的第二子图的示意图;
图2M为图2K删除第二节点后得到的第三有向无环图的示意图;
图2N为基于图2M所示的第三有向无环图中的第一节点确定的第一子图的示意图;
图2O为本申请实施例提供的一种包括单量子逻辑门的第一有向无环图的示意图;
图2P为基于图2O得到的新的第一有向无环图的示意图;
图2Q为本申请实施例提供的一种电子设备中的物理量子比特的拓扑结构图;
图2R为本申请实施例提供的一种同构子图的示意图;
图2S为本申请实施例提供的一种同构子图之间相互匹配的示意图;
图2T为本申请实施例提供的一种同构子图之间相互匹配的示意图;
图2U为本申请实施例提供的一种同构子图之间相互匹配的示意图;
图3为本申请实施例提供的另一种量子计算平台适配方法的流程示意图;
图4为本申请实施例提供的一种电子设备的结构示意图;
图5是本申请实施例提供的一种量子计算平台适配装置的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
以下分别进行详细说明。
本申请的说明书和权利要求书及所述附图中的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
本申请实施例首先提供了一种量子计算平台适配方法,该方法可以应用于电子设备,如计算机终端,具体如普通电脑、量子计算机等。
下面以运行在计算机终端上为例对其进行详细说明。图1为本申请实施例提供的一种量子计算平台适配方法的计算机终端的硬件结构框图。如图1所示,计算机终端可以包括一个或多个(图1中仅示出一个)处理器102(处理器102 可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)和用于存储基于量子计算平台适配方法的存储器104,可选地,上述计算机终端还可以包括用于通信功能的传输装置106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述计算机终端的结构造成限定。例如,计算机终端还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
存储器104可用于存储应用软件的软件程序以及模块,如本申请实施例中的量子计算平台适配方法对应的程序指令/模块,处理器102通过运行存储在存储器104内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端的通信供应商提供的无线网络。在一个实例中,传输装置106 包括一个网络适配器(Network Interface Controller,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
需要说明的是,真正的量子计算机是混合结构的,它包含两大部分:一部分是经典计算机,负责执行经典计算与控制;另一部分是量子设备,负责运行量子程序进而实现量子计算。而量子程序是由量子语言如QRunes语言编写的一串能够在量子计算机上运行的指令序列,实现了对量子逻辑门操作的支持,并最终实现量子计算。具体的说,量子程序就是一系列按照一定时序操作量子逻辑门的指令序列。
在实际应用中,因受限于量子设备硬件的发展,通常需要进行量子计算模拟以验证量子算法、量子应用等等。量子计算模拟即借助普通计算机的资源搭建的虚拟架构(即量子虚拟机)实现特定问题对应的量子程序的模拟运行的过程。通常,需要构建特定问题对应的量子程序。本申请实施例所指量子程序,即是经典语言编写的表征量子比特及其演化的程序,其中与量子计算相关的量子比特、量子逻辑门等等均有相应的经典代码表示。
量子线路作为量子程序的一种体现方式,也称量子逻辑电路,是最常用的通用量子计算模型,表示在抽象概念下对于量子比特进行操作的线路,其组成包括量子比特、线路(时间线)、以及各种量子逻辑门,最后常需要通过量子测量操作将结果读取出来。
不同于传统电路是用金属线所连接以传递电压信号或电流信号,在量子线路中,线路可看成是由时间所连接,亦即量子比特的状态随着时间自然演化,在这过程中按照哈密顿运算符的指示,一直到遇上逻辑门而被操作。
一个量子程序整体上对应有一条总的量子线路,本发明所述量子程序即指该条总的量子线路,其中,该总的量子线路中的量子比特总数与量子程序的量子比特总数相同。可以理解为:一个量子程序可以由量子线路、针对量子线路中量子比特的测量操作、保存测量结果的寄存器及控制流节点(跳转指令)组成,一条量子线路可以包含几十上百个甚至千上万个量子逻辑门操作。量子程序的执行过程,就是对所有的量子逻辑门按照一定时序执行的过程。需要说明的是,时序即单个量子逻辑门被执行的时间顺序。
需要说明的是,经典计算中,最基本的单元是比特,而最基本的控制模式是逻辑门,可以通过逻辑门的组合来达到控制电路的目的。类似地,处理量子比特的方式就是量子逻辑门。使用量子逻辑门,能够使量子态发生演化,量子逻辑门是构成量子线路的基础,量子逻辑门包括单比特量子逻辑门,如Hadamard 门(H门,阿达马门)、泡利-X门(X门)、泡利-Y门(Y门)、泡利-Z门(Z门)、 RX门、RY门、RZ门等等;多比特量子逻辑门,如CNOT门、CR门、iSWAP 门、Toffoli门等等。量子逻辑门一般使用酉矩阵表示,而酉矩阵不仅是矩阵形式,也是一种操作和变换。一般量子逻辑门在量子态上的作用是通过酉矩阵左乘以量子态右矢对应的矩阵进行计算。
参见图2A,图2A为本申请实施例提供的一种量子计算平台适配方法的流程示意图。该方法包括:
步骤201:获取待运行的量子程序和量子计算平台对应的量子芯片的拓扑结构,所述拓扑结构用于表示电子设备中的物理量子比特以及物理量子比特之间的连接关系。
其中,量子计算平台可以包括不同体系的量子计算平台,如量子计算机、量子虚拟机、经典计算机中的一种或是几种体系组合构成的量子计算平台。本申请实施例中的量子计算平台为上述量子计算平台中的任意一个。
其中,所述连接关系表示两量子逻辑门可以作用在两个物理量子比特上。
步骤202:基于所述拓扑结构将所述量子程序适配至所述量子计算平台。
可以看出,在本申请实施例中,首先获取待运行的量子程序和量子计算平台对应的量子芯片的拓扑结构,该拓扑结构用于表示电子设备中的物理量子比特以及物理量子比特之间的连接关系;然后基于该拓扑结构将量子程序适配至该量子计算平台;量子程序能否在量子芯片上运行主要取决于由芯片的拓扑结构,因此基于拓扑结构对量子程序进行适配,可以将量子程序适配至不同的量子计算平台,在不同的量子芯片上运行同一量子程序,从而提升了量子程序的可拓展性。除此之外,也减少了量子软件开发者的工作量,不用针对不同的量子芯片开发相同功能的量子软件。
在本申请的一实施例中,在所述基于所述拓扑结构将所述量子程序适配至所述量子计算平台方面,包括:
构建所述量子程序的第一有向无环图;
遍历所述第一有向无环图得到最大子图序列,所述最大子图序列包括N个最大子图,所述N为大于或等于1的整数;
确定所述N个最大子图在所述拓扑结构中的同构子图,得到N个同构子图集合,所述N个同构子图集合与所述N个最大子图一一对应;
基于所述N个同构子图集合构建量子线路,所述量子线路允许在所述量子计算平台上运行。
其中,N个最大子图按照各自得到的顺序依次排列,得到最大子图序列。
其中,同构子图是最大子图基于电子设备中量子芯片的拓扑结构映射得到的在所述量子芯片上的比特关系图。举例说明,假定最大子图为“q[0]—q[1]”,电子设备中量子芯片的拓扑结构为线性的“Q[0]—Q[1]—Q[2]—Q[3]”,则可以将“q[0]—q[1]”映射到“Q[0]—Q[1]”,也可以映射到“Q[1]—Q[2]”,还可以映射到“Q[2]—Q[3]”,那么最大子图“q[0]—q[1]”的同构子图为:“Q[0]—Q[1]”、“Q[1]—Q[2]”、“Q[2]—Q[3]”。
其中,基于所述N个同构子图集合构建量子线路可以是从每个同构子图集合中任选一个同构子图,基于得到的N个同构子图构建量子线路。
可以看出,在本申请实施例中,首先构建量子程序的第一有向无环图,然后遍历第一有向无环图得到包括N个最大子图的最大子图序列,接着确定N个最大子图在拓扑结构中的同构子图,最后基于得到的N个最大子图集合构建量子线路,从而将量子程序转化成当前量子计算平台支持的量子线路,实现了量子线路的构建。
在本申请的一实施例中,在所述构建所述量子程序的第一有向无环图方面,包括:
获取所述量子程序中的量子逻辑门;
基于所述量子逻辑门构建第一有向无环图,所述第一有向无环图包括节点和有向边;所述节点包括两个点和一条边,所述两个点用于表示所述量子逻辑门对应的两个逻辑量子比特,所述一条边用于表示作用在两个逻辑量子比特上的量子逻辑门;所述有向边用于表示所述量子逻辑门按逻辑量子比特的量子态演化时序的依赖关系。
在本申请的一实施例中,所述量子逻辑门包括多量子逻辑门;在所述基于所述量子逻辑门构建第一有向无环图方面,包括:
将所述多量子逻辑门转化为单量子逻辑门与两量子逻辑门;
删除所述单量子逻辑门,以及基于所述两量子逻辑门构建第一有向无环图。
需要说明的是,若量子程序包括单量子逻辑门、两量子逻辑门、多量子逻辑门,则首先将多量子逻辑门转化成单量子逻辑门和两量子逻辑门,然后将转化后得到的单量子逻辑门和转化前量子程序中本身存在的单量子逻辑门删除,再基于转化后得到的两量子逻辑门和转化前量子程序中本身存在的两量子逻辑门构建第一有向无环图。
第一有向无环图中单量子逻辑门的存在并不影响最大子图的构建,通过有单量子逻辑门的第一有向无环图得到的最大子图与通过无单量子逻辑门的第一有向无环图得到的最大子图相同。因此,在这里为了简便,删除了单量子逻辑门。
在后续最大子图序列的构建过程中,会通过图形举例说明两者得到的最大子图序列相同,在这不再详细阐述。
在本申请的一实施例中,在所述基于所述量子逻辑门构建第一有向无环图方面,包括:
若所述量子逻辑门包括多个连续的两量子逻辑门,且所述多个连续的两量子逻辑门作用相同的两个逻辑量子比特上,则基于所述多个连续的两量子逻辑门中的任一个构建第一有向无环图。
其中,这里的多个指的是两个或两个以上。
举例说明,量子程序包括两个CZ(q[0],q[1])且两个CZ(q[0],q[1])在时序上是相邻的,那么这两个CZ(q[0],q[1])就是多个连续且作用在相同的两个逻辑量子比特上的两量子逻辑门。两个CZ(q[0],q[1])中间还存在其他的两量子逻辑门,那么这两者就不是多个连续且作用在相同的两个逻辑量子比特上的两量子逻辑门。对于多个连续且作用在相同的两个逻辑量子比特上的两量子逻辑门,基于其中任一个构建第一有向无环图,或是基于其中多个构建第一有向无环图,通过这两者构建的第一有向无环图去生成的最大子图是相同的。同样,在这里为了简便,只基于其中一个去构建第一有向无环图。
在本申请的一实施例中,所述方法还包括:
若所述量子逻辑门包括多个连续的两量子逻辑门,且所述多个连续的两量子逻辑门作用不同的两个逻辑量子比特上,则基于所述多个连续的两量子逻辑门依次构建第一有向无环图。
举例说明,量子程序包括两个连续的CZ,只要两个CZ作用的量子比特有一个不同,那么两者就是多个连续的两量子逻辑门作用不同的两个逻辑量子比特上,在第一有向无环图构建时,就需要基于两者去构建。
还需要说明的是,若量子程序中包括共轭转置的量子线路,则需要将该转置共轭的量子线路进行转化,然后再基于转化后的量子线路构建第一有向无环图;若量子程序中存在测量操作,对于测量操作的处理方式与单量子逻辑门的处理方式相同,删除该测量操作或单量子逻辑门,记录该测量操作或单量子逻辑门信息后再基于两量子逻辑门构建第一有向无环图。
进一步地,基于两量子逻辑门构建第一有向无环图的具体实现方式为:
获取两量子逻辑门作用的逻辑量子比特信息;
基于所述逻辑量子比特信息依次执行所述两量子逻辑门,确定当前执行的所述两量子逻辑门与下一待执行的所述两量子逻辑门的相邻关系;
构建所述两量子逻辑门对应的节点,所述节点包括两个点和一条边,所述两个点用于表示所述两量子逻辑门对应的两个逻辑量子比特,所述一条边用于表示作用在两个逻辑量子比特上的量子逻辑门;
基于所述相邻关系构建所述节点之间的有向边,所述有向边用于表示所述两量子逻辑门按逻辑量子比特的量子态演化时序的依赖关系;
基于所述节点和所述有向边得到第一有向无环图。
举例说明,假定量子程序为CZ(q[0],q[1])<<CZ(q[0],q[2])<<CZ(q[0], q[3])<<CZ(q[1],q[2])<<CZ(q[1],q[3])<<CZ(q[2],q[3])。该量子程序对应的量子线路如图2B所示,图2B为本申请实施例提供的一种量子线路的结构示意图。根据上述实施例,可以构建出该量子线路的第一有向无环图,如图 2C所示,图2C为图2B所示的量子线路对应的第一有向无环图的示意图。第一有向无环图包括6个节点和8条有向边。
进一步地,在所述遍历所述第一有向无环图得到最大子图序列方面,包括:
确定所述第一有向无环图中的第一节点,所述第一节点的入度为0;
基于所述第一节点生成第一子图;
删除所述第一节点得到第二有向无环图;
确定所述第二有向无环图中是否存在第二节点,所述第二节点的入度为0;
若所述第二有向无环图中不存在所述第二节点,则将所述第一子图确定为最大子图;
将所述最大子图按照生成顺序排列,得到最大子图序列。
其中,入度是图论算法中重要的概念之一,它通常指有向图中某点作为图中边的终点的次数之和。
可以看出,在本申请实施例中,首先确定第一有向无环图中的入度为0的第一节点,基于第一节点生成第一子图;然后删除第一节点得到第二有向无环图,确定第二有向无环图中是否存在入度为0的第二节点;若第二有向无环图中不存在第二节点,则将第一子图确定为最大子图,以及将最大子图按照生成顺序排列,得到最大子图序列。本申请实施例提供了一种最大子图序列确定的方法,从图论的角度去确定最大子图序列,在第二有向无环图中不存在第二节点时,实现了最大子图序列的确定。
进一步地,所述方法还包括:
若所述第二有向无环图中存在所述第二节点,则确定所述第二节点的优先级,所述第二节点包括两个点和一条边,所述两个点用于表示量子程序中的两个逻辑量子比特,所述一条边用于表示作用在两个逻辑量子比特上的量子逻辑门;所述第二节点的优先级基于所述两个点和一条边、所述第一子图确定;
基于所述第二节点的优先级和所述第二节点,生成最大子图。
举例说明,如图2C所示,对于CZ(q[0],q[1])对应的节点,包括两个点和一条边:q[0]对应的点和q[1]对应的点,q[0]对应的点和q[1]对应的点之间的边。q[0]对应的点表示逻辑量子比特q[0],q[1]对应的点表示逻辑量子比特q[1],q[0]对应的点和q[1]对应的点之间的边表示作用在逻辑量子比特q[0]和逻辑量子比特q[1]上的CZ门。
可以看出,在本申请实施例中,若第二有向无环图中存在第二节点,则确定第二节点的优先级,基于第二节点的优先级和第二节点,生成最大子图。本申请实施例提供了一种最大子图序列确定的方法,从图论的角度去确定最大子图序列,在第二有向无环图中存在第二节点时,基于第二节点的优先级和第二节点生成最大子图,进而实现了最大子图序列的确定。
进一步地,在基于所述第二节点的优先级和所述第二节点,生成最大子图方面,包括:
若所述第二节点的优先级为第一优先级,则基于所述第二节点,将所述第一子图拓展为第二子图,以及将所述第二子图作为新的第一子图;
删除所述第二节点,得到第三有向无环图;
将所述第三有向无环图作为新的第二有向无环图,然后执行步骤所述确定所述第二有向无环图中是否存在第二节点。
进一步地,所述将所述第一子图拓展为第二子图的具体实现方式为:若所述第一子图中存在所述两个点中的其中之一且不存在所述一条边,则以存在的所述两个点中的其中之一为顶点作边,得到所述两个点中的另外一个点,将所述两个点之间的连线作为所述一条边,将拓展后的所述第一子图作为第二子图。
可以看出,在本申请实施例中,若第二节点的优先级为第一优先级,则基于第二节点将第一子图拓展为第二子图,以及将第二子图作为新的第一子图;然后删除第二节点,得到第三有向无环图;将第三有向无环图作为新的第二有向无环图,然后执行步骤所述确定所述第二有向无环图中是否存在第二节点。本申请实施例提供了一种最大子图的确定方法,在第二节点的优先级为第一优先级时,对第一子图进行拓展,直到第一子图无法拓展时,得到的即为最大子图,从而实现了最大子图的确定。
进一步地,所述方法还包括:
若所述第二节点的优先级为第二优先级,则将所述第二节点作为新的第一节点,然后执行步骤所述基于所述第一节点生成第一子图,所述第一优先级大于所述第二优先级。
进一步地,在将所述第二节点作为新的第一节点之前,所述方法还包括:
删除优先级为第一优先级的第二节点,将所述新的第一子图确定为最大子图。
需要说明的是,若包括第二节点,则存在两种情况:一种是可以基于第二节点继续拓展子图,从而得到相较于先前更大的子图;另一种是不可以基于第二节点继续拓展子图,那么当前的子图即为最大子图。对于第一种情况的优先级必定大于第二种情况的优先级,否则,得到的子图不是最大子图。
可以看出,在本申请实施例中,若第二节点的优先级为第二优先级,则将第二节点作为新的第一节点,然后执行步骤所述基于所述第一节点生成第一子图。本申请实施例提供了一种最大子图的确定方法,在第二节点的优先级为第二优先级时,即第一子图已经无法拓展,就是最大子图,故将得到的第一子图确定为最大子图,然后将第二节点作为新的第一节点,重新开始寻找其他的最大子图,从而实现了最大子图的确定。
进一步地,所述第一优先级包括第一子优先级、第二子优先级,所述第二优先级包括第三子优先级、第四子优先级;在所述确定所述第二节点的优先级方面,包括:
若所述第一子图中不存在所述两个点和所述一条边,则将所述第二节点的优先级确定为第四子优先级;
若所述第一子图中存在所述两个点且不存在所述一条边,则将所述第二节点的优先级确定为第三子优先级;
若所述第一子图中存在所述两个点中的其中之一且不存在所述一条边,则将所述第二节点的优先级确定为第二子优先级;
若所述第一子图中存在所述两个点和所述一条边,则将所述第二节点的优先级确定为第一子优先级;
优先级从大到小依次为:所述第一子优先级、所述第二子优先级、所述第三子优先级、所述第四子优先级。
需要说明的是,对于不能拓展最大子图的情况包括两种子情况:一是第一子图中不存在两个点和一条边,二是第一子图中存在两个点且不存在一条边。若将两个点和一条边作为特征点,则前一种子情况包括的特征点数量为0,后一种子情况包括的特征点数量为2。若根据特征点的数量多少去确定优先级,则前一种子情况的优先级小于后一种子情况的优先级,即第四子优先级小于第三子优先级。
同理,对于能拓展最大子图的情况包括两种子情况:一是第一子图中存在两个点中的其中之一且不存在一条边,二是第一子图中存在两个点和一条边。若将两个点和一条边作为特征点,则前一种子情况包括的特征点数量为1,后一种子情况包括的特征点数量为3。若根据特征点的数量多少去确定优先级,则前一种子情况的优先级小于后一种子情况的优先级,即第二子优先级小于第一子优先级。
上述实施例已经说明了第一优先级(即第一子优先级和第二子优先级)和第二优先级(即第三子优先级和第四子优先级)的确定依据,即可以得到第三子优先级小于第二子优先级,在这不在阐述。因此,可以确定优先级从大到小依次为:第一子优先级、第二子优先级、第三子优先级、第四子优先级。
可以看出,在本申请实施例中,若第一子图中不存在两个点和一条边,则将第二节点的优先级确定为第四子优先级;若第一子图中存在两个点且不存在一条边,则将第二节点的优先级确定为第三子优先级;若第一子图中存在两个点中的其中之一且不存在一条边,则将第二节点的优先级确定为第二子优先级;若第一子图中存在两个点和一条边,则将第二节点的优先级确定为第一子优先级;优先级从大到小依次为:第一子优先级、第二子优先级、第三子优先级、第四子优先级。本申请实施例提供一种第二节点的优先级确定方法,将第二节点包括的两个点和一条边作为特征点,根据该特征点的数量多少去确定优先级的大小,实现了第二优先级的确定。
下面为本申请实施例提供的最大子图序列确定方法的一具体应用场景。
举例说明,假定量子程序为CZ(q[0],q[1])<<CZ(q[0],q[2])<<CZ(q[0], q[3])<<CZ(q[1],q[2])<<CZ(q[1],q[3])<<CZ(q[2],q[3])。量子程序对应的第一有向无环图为图2C所示。根据图2C所示的第一有向无环图确定最大子图序列的步骤如下:由于CZ(q[0],q[1])对应的节点的入度为0,首先可以确定第一有向无环图中的第一节点为CZ(q[0],q[1])对应的节点。将第一节点包括的两个点(q[0]对应的点和q[1]对应的点)作为第一子图中的两个端点,将第一节点包括的边作为第一子图中的边得到第一子图,如图2D所示,图2D为基于图2C所示的第一有向无环图中的第一节点确定的第一子图的示意图。删除第一节点,得到第二有向无环图,如图2E所示,图2E为图2C删除第一节点后得到的第二有向无环图的示意图。然后确定第二有向无环图中是否存在第二节点,第二有向无环图中CZ(q[0],q[2])对应的节点入度为0,因此CZ(q[0], q[2])对应的节点为第二节点。该第二节点包括两个点:q[0]对应的点和q[2]对应的点,以及两者间的一条边。第一子图中存在q[0]对应的点,将该第二节点的优先级确定为第二子优先级;以q[0]对应的点作边,将第一子图拓展为第二子图,如图2F所示,图2F为基于第二节点在图2D上进行拓展得到的第二子图的示意图。然后将上述的第二子图作为新的第一子图,删除第二节点,得到第三有向无环图,如图2G所示,图2G为图2E删除第二节点后得到的第三有向无环图的示意图。将第三有向无环图作为新的第二有向无环图,然后确定该新的第二有向无环图中是否存在第二节点。由于CZ(q[0],q[3])对应的节点的入度、 CZ(q[1],q[2])对应的节点的入度均为0,因此这里存在2个第二节点。确定 CZ(q[0],q[3])对应的节点的优先级和CZ(q[1],q[2])对应的节点优先级。 CZ(q[0],q[3])对应的节点中的一个点在新的第一子图中,其优先级为第二子优先级;CZ(q[1],q[2])对应的节点中的两个点均在新的第一子图中但两个点间的边却不在新的第一子图中,因此其优先级为第四子优先级。第二子优先级大于第四子优先级,先执行第二子优先级对应的节点。以q[0]对应的点作边,将新的第一子图拓展为第二子图,如图2H所示,图2H为基于新的第二节点在图 2F上进行拓展得到的第二子图的示意图。再执行CZ(q[1],q[2])对应的节点,由于该节点对应的优先级为第四子优先级,则将上述得到的新的第一子图确定为最大子图。
删除CZ(q[0],q[3])对应的节点,得到新的第一有向无环图,如图2I所示,图2I为图2G删除新的第二节点后得到的新的第一有向无环图的示意图。将CZ(q[1],q[2])对应的节点作为新的第一节点。将第一节点包括的两个点(q[1] 对应的点和q[2]对应的点)作为第一子图中的两个端点,将第一节点包括的边作为第一子图的边得到第一子图,如图2J所示,图2J为基于图2I所示的第一有向无环图中的第一节点确定的第一子图的示意图。删除第一节点CZ(q[1],q[2]) 对应的节点,得到第二有向无环图,如图2K所示,图2K为图2J删除第一节点后得到的第二有向无环图的示意图。然后确定第二有向无环图中是否存在第二节点,第二有向无环图中CZ(q[1],q[3])对应的节点入度为0,因此CZ(q[1], q[3])对应的节点为第二节点。该第二节点包括2个点:q[1]对应的点和q[3]对应的点,以及两者间的一条边。第一子图中存在q[1]对应的点,将该第二节点的优先级确定为第二子优先级;以q[1]对应的点作边,将第一子图拓展为第二子图,如图2L所示,图2L为基于第二节点在图2J上进行拓展得到的第二子图的示意图。然后将上述的第二子图作为新的第一子图,删除第二节点CZ(q[1],q[3]) 对应的节点,得到第三有向无环图,如图2M所示,图2M为图2K删除第二节点后得到的第三有向无环图的示意图。将第三有向无环图作为新的第二有向无环图,然后确定该新的第二有向无环图中是否存在第二节点。由于CZ(q[2], q[3])对应的节点的入度为0,因此CZ(q[2],q[3])对应的节点为第二节点。 CZ(q[2],q[3])对应的节点中的两个点均在新的第一子图中但两个点间的边却不在新的第一子图中,因此其优先级为第四子优先级。将上述得到的新的第一子图确定为最大子图。
将CZ(q[2],q[3])对应的节点作为新的第一节点。将第一节点包括两个点 (q[2]对应的点和q[3]对应的点)作为第一子图中的两个端点,将第一节点包括的边作为第一子图的边得到第一子图,如图2N所示,图2N为基于图2M所示的第三有向无环图中的第一节点确定的第一子图的示意图。删除CZ(q[2],q[3]) 对应的节点,得到的第二有向无环图为空,第二有向无环图中不存在第二节点,将第一子图确定为最大子图。
综上,可以得到三个最大子图:CZ(q[0],q[1])<<CZ(q[0],q[2])<<CZ (q[0],q[3])构成的最大子图(如图2H所示);CZ(q[1],q[2])<<CZ(q[1], q[3])构成的最大子图(如图2L所示);CZ(q[2],q[3])构成的最大子图(如图2N所示)。将三个子图按照得到的顺序依次排列即可得到最大子图序列。
需要说明的是,若量子程序中存在单量子逻辑门,其最大子图序列与上述实施例中得到的最大子图序列相同。假定量子程序为H(q[0])<<CZ(q[0],q[1]) <<CZ(q[0],q[2])<<H(q[3])<<CZ(q[0],q[3])<<CZ(q[1],q[2])<<CZ (q[1],q[3])<<CZ(q[2],q[3])。如图2O所示,图2O为本申请实施例提供的一种包括单量子逻辑门的第一有向无环图的示意图。对于H[0]对应的节点只包括一个点(q[0]对应的点),因此得到的第一子图为一个点。在该点上进行拓展,执行CZ(q[0],q[1])对应的节点,可以将上述第一子图拓展为图2D,后续步骤相同,可以得到第0个最大子图(图2H)。删除CZ(q[0],q[3])对应的节点,得到新的第一有向无环图,如图2P所示,图2P为基于图2O得到的新的第一有向无环图的示意图。第一有向无环图中,CZ(q[1],q[2])对应的节点和 H(q[3])对应的节点入度均为0,且两个节点是新的第一子图构建的开始,第一子图中不包括两者包括的点或边,因此两者的优先级相同。先基于CZ(q[1], q[2])对应的节点构建第一子图或是先基于H(q[3])对应的节点构建第一子图均可,H(q[3])对应的节点包括的点都可以并入第1个最大子图(图2L)。后续步骤相同,可得到第2个最大子图(图2N)。
具体地,在所述基于所述N个同构子图集合构建量子线路方面,包括:
确定所述N个同构子图集合中每个同构子图的固定成本和任意相邻同构子图集合中同构子图两两之间的交换成本,以及基于所述固定成本和所述交换成本构建量子线路;所述固定成本基于所述同构子图对应的量子逻辑门确定,所述交换成本基于所述同构子图对应的量子逻辑门之间转化所需要的SWAP门确定。
举例说明,假定量子程序为CZ(q[0],q[1])<<CZ(q[0],q[2])<<CZ(q[0], q[3])<<CZ(q[1],q[2])<<CZ(q[1],q[3])<<CZ(q[2],q[3])。可以得到三个最大子图:CZ(q[0],q[1])<<CZ(q[0],q[2])<<CZ(q[0],q[3])构成的最大子图(如图2H所示);CZ(q[1],q[2])<<CZ(q[1],q[3])构成的最大子图(如图2L所示);CZ(q[2],q[3])构成的最大子图(如图2N所示)。
如图2Q所示,图2Q为本申请实施例提供的一种电子设备中的物理量子比特的拓扑结构图。该电子设备包括8个物理量子比特,分别为Q[0]、Q[1]、Q[2]、 Q[3]、Q[4]、Q[5]、Q[6]、Q[7]。其中,Q[0]与Q[1]及Q[4]连接,Q[5]与Q[1]、 Q[4]及Q[6]连接,Q[2]与Q[1]、Q[6]及Q[3]连接,Q[7]与Q[3]及Q[6]连接。
将第0个最大子图(图2H)在图2Q中进行映射,可以得到24个第一同构子图,该24个第一同构子图构成第0个同构子图集合;将第1个最大子图(图 2L)在图2Q中进行映射,可以得到32个第二同构子图,该32个第二同构子图构成第1个同构子图集合;将第2个最大子图(图2L)在图2Q中进行映射,可以得到20个第三同构子图,该20个第三同构子图构成第2个同构子图集合,如图2R所示,图2R为本申请实施例提供的一种同构子图的示意图。每个第一同构子图、每个第二同构子图、每个第三同构子图的具体形式,在此就不一一详细列举。
确定上述3个同构子图集合中每个同构子图的固定成本,可以得到第一固定成本集合、第二固定成本集合、第三固定成本集合,第一固定成本集合包括 24个第一固定成本,第二固定成本集合包括32个第二固定成本,第三固定成本集合包括20个第三固定成本;确定上述3个同构子图集合中任意相邻同构子图集合中同构子图两两之间的交换成本,可以得到24×32个第0个同构子图集合与第1个同构子图集合中同构子图两两之间的第一交换成本,以及可以得到 32×20个第1个同构子图集合与第2个同构子图集合中同构子图两两之间的第二交换成本。基于24个第一固定成本、32个第二固定成本、20个第三固定成本、 24×32个第一交换成本和32×20个第二交换成本构建量子线路。
可以看出,在本申请实施例中,先确定N个同构子图集合中每个同构子图的固定成本和任意相邻同构子图集合中同构子图两两之间的交换成本,以及基于固定成本和交换成本构建量子线路;固定成本基于同构子图对应的量子逻辑门确定,交换成本基于同构子图对应的量子逻辑门之间转化所需要的SWAP门确定。本申请实施例提供了一种量子线路构建的方法,通过同构子图的固定成本和同构子图间的交换成本构建量子线路,实现了量子线路的构建。
进一步地,所述N个最大子图构成最大子图序列,所述最大子图序列中的第i个最大子图对应的同构子图集合包括ki个同构子图,所述最大子图序列的编号从0开始,直至N-1;在所述确定所述N个同构子图集合中每个同构子图的固定成本和任意相邻同构子图集合中同构子图两两之间的交换成本,以及基于所述固定成本和所述交换成本构建量子线路方面,包括:
确定所述N个同构子图集合中每个同构子图的固定成本,得到N个固定成本集合,所述N个固定成本集合与所述N个同构子图集合一一对应;
确定所述N个同构子图集合中任意相邻同构子图集合中同构子图两两之间的交换成本,得到N-1个交换成本集合,每个所述交换成本集合包括ki·ki+1个交换成本;
举例说明,如图2Q所示,第0个同构子图集合包括24个第一同构子图,每个第一同构子图对应一个固定成本,第一固定成本集合包括24个第一固定成本;第1个同构子图集合包括32个第二同构子图,每个第二同构子图对应一个固定成本,第二固定成本集合包括32个第二固定成本;第2个同构子图集合包括20个第三同构子图,每个第三同构子图对应一个固定成本,第三固定成本集合包括20个第三固定成本;第0个同构子图集合与第1个同构子图间存在24×32 个第一交换成本,第1个同构子图集合与第2个同构子图间存在32×20个第二交换成本。
如图2Q所示,可以基于第0个同构子图集合、第1个同构子图集合和第2 个同构子图集合构建出条量子线路,每条量子线路对应一个消耗成本,每个消耗成本基于一个第一固定成本、一个第二固定成本、一个第三固定成本、一个第一交换成本和一个第二交换成本确定。可以选取消耗成本最小的构建量子线路。
可以看出,在本申请实施例中,确定N个同构子图集合中每个同构子图的固定成本,得到N个固定成本集合,N个固定成本集合与N个同构子图集合一一对应;确定N个同构子图集合中任意相邻同构子图集合中同构子图两两之间的交换成本,得到N-1个交换成本集合,每个交换成本集合包括ki·ki+1个交换成本;基于N个固定成本集合与N-1个交换成本集合确定个消耗成本;基于个消耗成本构建量子线路。本申请实施例提供了一种量子线路的构建方法,通过计算出所有量子线路的消耗成本,然后选取消耗成本最小的量子线路进行构建,本申请实施例构建的量子线路的消耗成本最少,保真度最高,从而得到的量子线路的品质也是最高的。
上述申请实施例提供的量子线路构建方法可以找到消耗成本最小的量子线路,然而,其计算量和存储量是非常巨大的,因此,本申请提供了另外一种量子线路构建的方法,具体方式请参见下述实施例。
进一步地,所述N个最大子图构成最大子图序列,所述最大子图序列中的第i个最大子图对应的同构子图集合包括ki个同构子图,所述最大子图序列的编号从0开始,直至N-1;在所述确定所述N个同构子图集合中每个同构子图的固定成本和任意相邻同构子图集合中同构子图两两之间的交换成本,以及基于所述固定成本和所述交换成本构建量子线路方面,包括:
确定第一同构子图集合中每个第一同构子图的第一固定成本,得到第一固定成本集合,所述第一同构子图集合为所述第0个最大子图对应的同构子图集合;
确定第二同构子图集合中每个第二同构子图的第二固定成本,得到第二固定成本集合,所述第二同构子图集合为所述第i个最大子图对应的同构子图集合;
确定所述第二同构子图集合中所有的第二同构子图与所述第一同构子图集合中每一个第一同构子图的交换成本,得到k0个交换成本集合,每个交换成本集合包括ki个交换成本;
基于所述第一固定成本集合、所述第二固定成本集合和所述k0个交换成本集合确定k0个消耗成本集合,每个消耗成本集合包括ki个消耗成本;
确定每个所述消耗成本集合中最小的消耗成本,得到k0个最小的消耗成本,所述k0个最小的消耗成本与所述第一同构子图集合中的k0个第一同构子图一一对应;
将所述k0个第一同构子图中的每个第一同构子图及其对应的第二同构子图组成为新的第一同构子图,得到k0个新的第一同构子图;
将所述k0个新的第一同构子图构成的集合确定为新的第一同构子图集合;
令i=i+1,以及执行步骤所述确定第一同构子图集合中每个第一同构子图的第一固定成本,得到第一固定成本集合,所述i的初始值为1;
在i=N-1时,基于得到的k0个最小的消耗成本构建量子线路。
进一步地,新的第一同构子图的第一固定成本基于其对应的上一个第一同构子图的第一固定成本,上一个第二同构子图的第二固定成本,以及上一个第一同构子图与上一个第二同构子图的交换成本确定。
举例说明,如图2S所示,图2S为本申请实施例提供的一种同构子图之间相互匹配的示意图。确定第0个同构子图集合中每个第一同构子图的第一固定成本,得到第一固定成本集合,第一固定成本集合包括24个第一固定成本,分别为第一固定成本0、第一固定成本1···第一固定成本23;确定第1个同构子图集合中每个第二同构子图的第二固定成本,得到第二固定成本集合,第二固定成本集合包括32个第二固定成本,分别为第二固定成本0、第二固定成本1···第二固定成本31。
确定第二同构子图0、第二同构子图1···第二同构子图31与第一同构子图0 的交换成本,可以得到交换成本集合0,交换成本集合0包括交换成本00、交换成本10、交换成本20···交换成本310;确定第二同构子图0、第二同构子图 1···第二同构子图31与第一同构子图1的交换成本,可以得到交换成本集合1,交换成本集合1包括交换成本01、交换成本11、交换成本21···交换成本311···一直到确定第二同构子图0、第二同构子图1···第二同构子图31与第一同构子图 23的交换成本,可以得到交换成本集合23,交换成本集合23包括交换成本023、交换成本123、交换成本223···交换成本3123。
第一同构子图0与第二同构子图0的消耗成本00基于交换成本00、第一固定成本0、第二固定成本0确定;第一同构子图0与第二同构子图1的消耗成本 10基于交换成本10、第一固定成本0、第二固定成本1确定···第一同构子图0 与第二同构子图31的消耗成本310基于交换成本310、第一固定成本0、第二固定成本31确定;消耗成本00、消耗成本10···消耗成本310构成消耗成本集合0;
第一同构子图1与第二同构子图0的消耗成本01基于交换成本01、第一固定成本1、第二固定成本0确定;第一同构子图1与第二同构子图1的消耗成本 11基于交换成本11、第一固定成本1、第二固定成本1确定···第一同构子图1 与第二同构子图31的消耗成本311基于交换成本311、第一固定成本1、第二固定成本31确定;消耗成本01、消耗成本11···消耗成本311构成消耗成本集合1;
···
第一同构子图23与第二同构子图0的消耗成本023基于交换成本023、第一固定成本23、第二固定成本0确定;第一同构子图23与第二同构子图1的消耗成本123基于交换成本123、第一固定成本23、第二固定成本1确定···第一同构子图23与第二同构子图31的消耗成本3123基于交换成本3123、第一固定成本23、第二固定成本31确定;消耗成本023、消耗成本123···消耗成本3123 构成消耗成本集合23。
确定消耗成本集合0中最小的消耗成本,确定消耗成本集合1中最小的消耗成本···确定消耗成本集合23中最小的消耗成本,得到24个最小的消耗成本。
将第一同构子图0与及其对应的第二同构子图组成新的第一同构子图0,将第一同构子图1与及其对应的第二同构子图组成新的第一同构子图1···将第一同构子图23与及其对应的第二同构子图组成新的第一同构子图23;新的第一同构子图0、新的第一同构子图1···新的第一同构子图23构成新的第一同构子图集合。
确定新的同构子图集合中每个第一同构子图的第一固定成本,得到第一固定成本集合,第一固定成本集合包括24个第一固定成本,分别为第一固定成本 0’、第一固定成本1’···第一固定成本23’;确定第2个同构子图集合中每个第二同构子图(这里第三同构子图为新的第二同构子图)的第二固定成本,得到第二固定成本集合,第二固定成本集合包括32个第二固定成本,分别为第二固定成本0’、第二固定成本1’···第二固定成本31’。
确定第二同构子图0’、第二同构子图1’···第二同构子图31’与第一同构子图0’的交换成本,可以得到交换成本集合0’,交换成本集合0’包括交换成本00’、交换成本10’、交换成本20’···交换成本310’;确定第二同构子图0’、第二同构子图1’···第二同构子图31’与第一同构子图1’的交换成本,可以得到交换成本集合1’,交换成本集合1’包括交换成本01’、交换成本11’、交换成本21’···交换成本311’···一直到确定第二同构子图0’、第二同构子图1’···第二同构子图31’与第一同构子图23’的交换成本,可以得到交换成本集合23’,交换成本集合23’包括交换成本023’、交换成本123’、交换成本223’···交换成本3123’。
第一同构子图0’与第二同构子图0’的消耗成本00’基于交换成本00’、第一固定成本0’、第二固定成本0’确定;第一同构子图0’与第二同构子图1’的消耗成本10’基于交换成本10’、第一固定成本0’、第二固定成本1’确定···第一同构子图0’与第二同构子图31’的消耗成本310’基于交换成本310’、第一固定成本0’、第二固定成本31’确定;消耗成本00’、消耗成本10’···消耗成本310’构成消耗成本集合0’;
第一同构子图1’与第二同构子图0’的消耗成本01’基于交换成本01’、第一固定成本1’、第二固定成本0’确定;第一同构子图1’与第二同构子图1’的消耗成本11’基于交换成本11’、第一固定成本1’、第二固定成本1’确定···第一同构子图1’与第二同构子图31’的消耗成本311’基于交换成本311’、第一固定成本1’、第二固定成本31’确定;消耗成本01’、消耗成本11’···消耗成本311’构成消耗成本集合1’;
···
第一同构子图23’与第二同构子图0’的消耗成本023’基于交换成本023’、第一固定成本23’、第二固定成本0’确定;第一同构子图23’与第二同构子图1’的消耗成本123’基于交换成本123’、第一固定成本23’、第二固定成本1’确定···第一同构子图23’与第二同构子图31’的消耗成本3123’基于交换成本3123’、第一固定成本23’、第二固定成本31’确定;消耗成本023’、消耗成本123’···消耗成本3123’构成消耗成本集合23’。
确定消耗成本集合0’中最小的消耗成本,确定消耗成本集合1’中最小的消耗成本···确定消耗成本集合23’中最小的消耗成本,得到24个最小的消耗成本。确定24个最小的消耗成本对应的24个量子线路。量子线路0由第一同构子图0、其对应的第二同构子图、其对应的第三同构子图构成;量子线路1由第一同构子图1、其对应的第二同构子图、其对应的第三同构子图构成···量子线路23由第一同构子图23、其对应的第二同构子图、其对应的第三同构子图构成。选择其中消耗成本最小的量子线路。
可以看出,在本申请实施例中,确定第一同构子图集合中每个第一同构子图的第一固定成本,得到第一固定成本集合,第一同构子图集合为第0个最大子图对应的同构子图集合;确定第二同构子图集合中每个第二同构子图的第二固定成本,得到第二固定成本集合,第二同构子图集合为第i个最大子图对应的同构子图集合;确定第二同构子图集合中所有的第二同构子图与第一同构子图集合中每一个第一同构子图的交换成本,得到k0个交换成本集合,每个交换成本集合包括ki个交换成本;基于第一固定成本集合、第二固定成本集合和k0个交换成本集合确定k0个消耗成本集合,消耗成本集合包括ki个消耗成本;确定每个消耗成本集合中最小的消耗成本,得到k0个最小的消耗成本,k0个最小的消耗成本与第一同构子图集合中的k0个第一同构子图一一对应;将k0个第一同构子图中的每个第一同构子图及其对应的第二同构子图组成为新的第一同构子图,得到k0个新的第一同构子图;将k0个新的第一同构子图构成的集合确定为新的第一同构子图集合;令i=i+1,以及执行步骤确定第一同构子图集合中每个第一同构子图的第一固定成本,得到第一固定成本集合,i的初始值为1;在i=N-1 时,基于得到的k0个最小的消耗成本构建量子线路。
本申请实施例提供了另外一种量子线路的构建方法,通过遍历的方式,对最大子图序列从前往后进行匹配,找到k0个消耗成本,消耗成本的数量与第0 个最大子图对应的同构子图数量相等,基于这k0个消耗成本确定每一个最大子图对应的一个同构子图,然后用这每一个最大子图对应的一个同构子图构建量子线路。本申请实施例每两个相邻的同构子图集合就进行一次筛选,每次都只得到与第0个最大子图对应的同构子图数量相等的最优同构子图,在大大降低了计算量与存储量的同时,能够构建出量子线路。
上述一申请实施例提供的量子线路构建方法可以找到消耗最小的量子线路,然而,其计算量和存储量是非常巨大的;上述另一申请实施例提供的量子线路的构建方法虽然降低了计算量和存储量,但是可能忽略掉最优的量子线路。因此,本申请又提供了另外一种量子线路构建的方法,具体方式请参见下述实施例。
进一步地,所述N个最大子图构成最大子图序列,所述最大子图序列中的第i个最大子图对应的同构子图集合包括ki个同构子图,所述最大子图序列的编号从0开始,直至N-1;在所述确定所述N个同构子图集合中每个同构子图的固定成本和任意相邻同构子图集合中同构子图两两之间的交换成本,以及基于所述固定成本和所述交换成本构建量子线路方面,包括:
确定第一同构子图集合中每个第一同构子图的第一固定成本,得到第一固定成本集合,所述第一同构子图集合为所述第0个最大子图对应的同构子图集合;
确定第二同构子图集合中每个第二同构子图的第二固定成本,得到第二固定成本集合,所述第二同构子图集合为所述第i个最大子图对应的同构子图集合;
确定所述第一同构子图集合中所有的第一同构子图与所述第二同构子图集合中每一个第二同构子图的交换成本,得到ki个交换成本集合,每个交换成本集合包括k0个交换成本;
基于所述第一固定成本集合、所述第二固定成本集合和所述ki个交换成本集合确定ki个消耗成本集合,每个消耗成本集合包括k0个消耗成本;
确定每个所述消耗成本集合中最小的消耗成本,得到ki个最小的消耗成本,所述ki个最小的消耗成本与所述第二同构子图集合中的ki个第二同构子图一一对应;
将所述ki个第二同构子图中的每个第二同构子图及其对应的第一同构子图组成为新的第一同构子图,得到ki个新的第一同构子图;
将所述ki个新的第一同构子图构成的集合确定为新的第一同构子图集合;
令i=i+1,以及执行步骤所述确定第一同构子图集合中每个第一同构子图的第一固定成本,得到第一固定成本集合,所述i的初始值为1;
在i=N-1时,基于得到的kN-1个最小的消耗成本构建量子线路。
举例说明,如图2T所示,图2T为本申请实施例提供的一种同构子图之间相互匹配的示意图。确定第0个同构子图集合中每个第一同构子图的第一固定成本,得到第一固定成本集合,第一固定成本集合包括24个第一固定成本,分别为第一固定成本0、第一固定成本1···第一固定成本23;确定第1个同构子图集合中每个第二同构子图的第二固定成本,得到第二固定成本集合,第二固定成本集合包括32个第二固定成本,分别为第二固定成本0、第二固定成本1···第二固定成本31。
确定第一同构子图0、第一同构子图1···第一同构子图23与第二同构子图0 的交换成本,可以得到交换成本集合0,交换成本集合0包括交换成本00、交换成本01、交换成本01···交换成本023;确定第一同构子图0、第一同构子图 1···第一同构子图23与第二同构子图1的交换成本,可以得到交换成本集合1,交换成本集合1包括交换成本10、交换成本11、交换成本12···交换成本123;···一直到确定第一同构子图0、第一同构子图1···第一同构子图23与第二同构子图 31的交换成本,可以得到交换成本集合31,交换成本集合31包括交换成本310、交换成本311、交换成本312···交换成本3123。
第一同构子图0与第二同构子图0的消耗成本00基于交换成本00、第一固定成本0、第二固定成本0确定;第一同构子图1与第二同构子图0的消耗成本 01基于交换成本01、第一固定成本1、第二固定成本0确定···第一同构子图23 与第二同构子图0的消耗成本023基于交换成本023、第一固定成本23、第二固定成本0确定;消耗成本00、消耗成本01···消耗成本023构成消耗成本集合 0;
第一同构子图0与第二同构子图1的消耗成本10基于交换成本10、第一固定成本0、第二固定成本1确定;第一同构子图1与第二同构子图1的消耗成本 11基于交换成本11、第一固定成本1、第二固定成本1确定···第一同构子图23 与第二同构子图1的消耗成本123基于交换成本123、第一固定成本23、第二固定成本1确定;消耗成本10、消耗成本11···消耗成本123构成消耗成本集合 1;
···
第一同构子图0与第二同构子图31的消耗成本310基于交换成本310、第一固定成本0、第二固定成本31确定;第一同构子图1与第二同构子图31的消耗成本311基于交换成本311、第一固定成本1、第二固定成本31确定···第一同构子图23与第二同构子图31的消耗成本3123基于交换成本3123、第一固定成本23、第二固定成本31确定;消耗成本310、消耗成本311···消耗成本3123 构成消耗成本集合31。
确定消耗成本集合0中最小的消耗成本,确定消耗成本集合1中最小的消耗成本···确定消耗成本集合31中最小的消耗成本,得到32个最小的消耗成本。
将第二同构子图0与及其对应的第一同构子图组成新的第一同构子图0,将第二同构子图1与及其对应的第一同构子图组成新的第一同构子图1···将第二同构子图31与及其对应的第一同构子图组成新的第一同构子图31;新的第一同构子图0、新的第一同构子图1···新的第一同构子图31构成新的第一同构子图集合。
确定新的同构子图集合中每个第一同构子图的第一固定成本,得到第一固定成本集合,第一固定成本集合包括32个第一固定成本,分别为第一固定成本 0’、第一固定成本1’···第一固定成本31’;确定第2个同构子图集合中每个第二同构子图(这里第三同构子图为新的第二同构子图)的第二固定成本,得到第二固定成本集合,第二固定成本集合包括20个第二固定成本,分别为第二固定成本0’、第二固定成本1’···第二固定成本19’。
确定第一同构子图0’、第一同构子图1’···第一同构子图31’与第二同构子图0’的交换成本,可以得到交换成本集合0’,交换成本集合0’包括交换成本00’、交换成本10’、交换成本20’···交换成本310’;确定第一同构子图0’、第一同构子图1’···第一同构子图31’与第二同构子图1’的交换成本,可以得到交换成本集合1’,交换成本集合1’包括交换成本01’、交换成本11’、交换成本21’···交换成本311’···一直到确定第一同构子图0’、第一同构子图1’···第一同构子图31’与第二同构子图19’的交换成本,可以得到交换成本集合19’,交换成本集合19’包括交换成本019’、交换成本119’、交换成本219’···交换成本3119’。
第一同构子图0’与第二同构子图0’的消耗成本00’基于交换成本00’、第一固定成本0’、第二固定成本0’确定;第一同构子图1’与第二同构子图0’的消耗成本01’基于交换成本01’、第一固定成本1’、第二固定成本0’确定···第一同构子图31’与第二同构子图0’的消耗成本031’基于交换成本031’、第一固定成本31’、第二固定成本0’确定;消耗成本00’、消耗成本01’···消耗成本031’构成消耗成本集合0’;
第一同构子图0’与第二同构子图1’的消耗成本10’基于交换成本10’、第一固定成本0’、第二固定成本1’确定;第一同构子图1’与第二同构子图1’的消耗成本11’基于交换成本11’、第一固定成本1’、第二固定成本1’确定···第一同构子图31’与第二同构子图1’的消耗成本131’基于交换成本131’、第一固定成本 31’、第二固定成本1’确定;消耗成本10’、消耗成本11’···消耗成本131’构成消耗成本集合1’;
···
第一同构子图0’与第二同构子图31’的消耗成本310’基于交换成本310’、第一固定成本0’、第二固定成本31’确定;第一同构子图1’与第二同构子图31’的消耗成本311’基于交换成本311’、第一固定成本1’、第二固定成本31’确定···第一同构子图31’与第二同构子图19’的消耗成本1931’基于交换成本1931’、第一固定成本31’、第二固定成本19’确定;消耗成本310’、消耗成本311’···消耗成本3119’构成消耗成本集合19’。
确定消耗成本集合0’中最小的消耗成本,确定消耗成本集合1’中最小的消耗成本···确定消耗成本集合19’中最小的消耗成本,得到20个最小的消耗成本。确定20个最小的消耗成本对应的20个量子线路。量子线路0由第三同构子图0、其对应的第二同构子图、其对应的第一同构子图构成;量子线路1由第三同构子图1、其对应的第二同构子图、其对应的第一同构子图构成···量子线路19由第三同构子图19、其对应的第二同构子图、其对应的第一同构子图构成。选择其中消耗成本最小的量子线路。
可以看出,在本申请实施例中,确定第一同构子图集合中每个第一同构子图的第一固定成本,得到第一固定成本集合,第一同构子图集合为第0个最大子图对应的同构子图集合;确定第二同构子图集合中每个第二同构子图的第二固定成本,得到第二固定成本集合,第二同构子图集合为第i个最大子图对应的同构子图集合;确定第一同构子图集合中所有的第一同构子图与第二同构子图集合中每一个第二同构子图的交换成本,得到ki个交换成本集合,每个交换成本集合包括k0个交换成本;基于第一固定成本集合、第二固定成本集合和ki个交换成本集合确定ki个消耗成本集合,每个消耗成本集合包括k0个消耗成本;确定每个所述消耗成本集合中最小的消耗成本,得到ki个最小的消耗成本,ki个最小的消耗成本与第二同构子图集合中的ki个第二同构子图一一对应;将ki个第二同构子图中的每个第二同构子图及其对应的第一同构子图组成为新的第一同构子图,得到ki个新的第一同构子图;将ki个新的第一同构子图构成的集合确定为新的第一同构子图集合;令i=i+1,以及执行步骤确定第一同构子图集合中每个第一同构子图的第一固定成本,得到第一固定成本集合,i的初始值为 1;在i=N-1时,基于得到的kN-1个最小的消耗成本构建量子线路。
本申请实施例提供了另外一种量子线路的构建方法,通过遍历的方式,对最大子图序列从后往前进行匹配,找到kN-1个消耗成本,消耗成本的数量与第 N-1个最大子图对应的同构子图数量相等,基于这kN-1个消耗成本确定每一个最大子图对应的一个同构子图,然后用这每一个最大子图对应的一个同构子图构建量子线路。本申请实施例每两个相邻的同构子图集合就进行一次筛选,每次都只得到与后一个最大子图对应的同构子图数量相等的最优同构子图,在大大降低了计算量与存储量的同时,也能够构建出最优的量子线路。
在下面的实施例中,再举一个具体的例子说明从前往后遍历构建量子线路和从后往前遍历构建量子线路两种方式的区别。
如图2U所示,图2U为本申请实施例提供的一种同构子图之间相互匹配的示意图。第0个同构子图集合包括第一同构子图0和第一同构子图1,第1个同构子图集合包括第二同构子图0和第二同构子图1,第2个同构子图集合包括第三同构子图0和第三同构子图1;第一同构子图0、第一同构子图1、第二同构子图0、第二同构子图1、第三同构子图0和第三同构子图1本身的保真度为1,第一同构子图0与第二同构子图0之间的保真度为0.9,第一同构子图0与第二同构子图1之间的保真度为0.85,第一同构子图1与第二同构子图0之间的保真度为0.9,第一同构子图1与第二同构子图1之间的保真度为0.85,第二同构子图0与第三同构子图0之间的保真度为0.9,第二同构子图0与第三同构子图 1之间的保真度为0.8,第二同构子图1与第三同构子图0之间的保真度为1,第二同构子图1与第二同构子图1之间的保真度为0.7。
从前往后遍历构建量子线路:第一同构子图0与第二同构子图0的消耗成本为0.1(1-1×0.9×1),第一同构子图0与第二同构子图1的消耗成本为0.15 (1-1×0.85×1),选取消耗成本最低的,得到新的第一同构子图0,新的第一同构子图0由第一同构子图0与第二同构子图0构成;第一同构子图1与第二同构子图0的消耗成本为0.1(1-1×0.9×1),第一同构子图1与第二同构子图1的消耗成本为0.15(1-1×0.85×1),选取消耗成本最低的,得到新的第一同构子图 1,新的第一同构子图1由第一同构子图1与第二同构子图0构成;新的第一同构子图0与第三同构子图0的消耗成本为0.19(1-1×0.9×1×0.9×1),新的第一同构子图0与第三同构子图1的消耗成本为0.28(1-1×0.9×1×0.8×1),选取消耗成本最低的,得到新的第一同构子图0,新的第一同构子图0由第一同构子图0、第二同构子图0、第三同构子图0构成;新的第一同构子图1与第三同构子图0 的消耗成本为0.19(1-1×0.9×1×0.9×1),新的第一同构子图1与第三同构子图1 的消耗成本为0.28(1-1×0.9×1×0.8×1),选取消耗成本最低的,得到新的第一同构子图1,新的第一同构子图1由第一同构子图1、第二同构子图0、第三同构子图0构成;最后从新的第一同构子图0和新的第一同构子图1中选择消耗成本最低的同构子图构建量子线路,由于两者的消耗成本均为0.19,故可以基于第一同构子图0、第二同构子图0、第三同构子图0构建量子线路,或者可以基于第一同构子图1、第二同构子图0、第三同构子图0构建量子线路。
从后往前遍历构建量子线路:第二同构子图0与第一同构子图0的消耗成本为0.1(1-1×0.9×1),第二同构子图0与第一同构子图1的消耗成本为0.1 (1-1×0.9×1),选取消耗成本最低的,得到新的第一同构子图0,两者消耗成本相同,故新的第一同构子图0可以由第一同构子图0与第二同构子图0构成,也可以由第一同构子图1与第二同构子图0构成;第二同构子图1与第一同构子图0的消耗成本为0.15(1-1×0.85×1),第二同构子图1与第二同构子图1的消耗成本为0.15(1-1×0.85×1),选取消耗成本最低的,得到新的第一同构子图 1,两者消耗成本相同,故新的第一同构子图1可以由第一同构子图1与第二同构子图0构成,也可以由第一同构子图1与第二同构子图1构成;新的第一同构子图0与第三同构子图0的消耗成本为0.19(1-1×0.9×1×0.9×1),新的第一同构子图0与第三同构子图1的消耗成本为0.28(1-1×0.9×1×0.8×1),选取消耗成本最低的,得到新的第一同构子图0,新的第一同构子图0由第一同构子图0、第二同构子图0、第三同构子图0构成,或者,新的第一同构子图0由第一同构子图1、第二同构子图0、第三同构子图0构成;新的第一同构子图1与第三同构子图0的消耗成本为0.15(1-1×0.85×1×1×1),新的第一同构子图1与第三同构子图1的消耗成本为0.405(1-1×0.85×1×0.7×1),选取消耗成本最低的,得到新的第一同构子图1,新的第一同构子图1可以由第一同构子图0、第二同构子图1、第三同构子图0构成,也可以由第一同构子图1、第二同构子图1、第三同构子图0构成;最后从新的第一同构子图0和新的第一同构子图1中选择消耗成本最低的同构子图构建量子线路,新的第一同构子图1的消耗成本最低为 0.85,故可以基于第一同构子图0、第二同构子图1、第三同构子图0构建量子线路,或者可以基于第一同构子图1、第二同构子图1、第三同构子图0构建量子线路。
可以看出,从前往后遍历构建量子线路,得到的结果是基于第一同构子图0、第二同构子图0、第三同构子图0构建量子线路,或者基于第一同构子图1、第二同构子图0、第三同构子图0构建量子线路;从前往后遍历构建量子线路,得到的结果是基于第一同构子图0、第二同构子图1、第三同构子图0构建量子线路,或者基于第一同构子图1、第二同构子图1、第三同构子图0构建量子线路。两者得到的结果不同,前者的总体消耗成本为0.19,后者的总体消耗成本为0.15,明显后者由于前者,前者找到的不是最优的构建量子线路的方法。
需要说明的是,上述三个构建量子线路的实施例中最大子图、最大子图序列、同构子图、同构子图集合、第一固定成本集合、第二固定成本集合、消耗成本集合等都是从0开始编号,其也可以是从1开始编号或是从其他任意数字或字母进行编号,在这里就不进行一一举例说明。
进一步地,所述固定成本和所述交换成本基于保真度确定。
进一步地,所述固定成本和所述交换成本基于CZ门的个数确定。
需要说明的是,任何一个双量子逻辑门对应的保真度都可以等价为至少一个CZ门对应的保真度。
其中,每个同构子图对应一个最大子图,每个最大子图基于至少一个两量子逻辑门确定,每个同构子图的固定成本则基于至少一个两量子逻辑门对应的保真度之积确定。
举例说明,最大子图2H对应的量子逻辑门为CZ(q[0],q[1])、CZ(q[0], q[2])、CZ(q[0],q[3]);最大子图2L对应的量子逻辑门为CZ(q[1],q[2])、 CZ(q[1],q[3])。将最大子图2H和最大子图2L映射到图2Q中,最大子图2H 的映射关系如下:q[1]—>Q[0],q[0]—>Q[1],q[3]—>Q[2],q[2]—>Q[5],最大子图2L的映射关系如下:q[3]—>Q[2],q[1]—>Q[1],q[2]—>Q[5]。
基于保真度确定固定成本和交换成本:
在CZ门对应的模拟信号作用在Q[0]和Q[1]上的保真度为F01,CZ门对应的模拟信号作用在Q[1]和Q[2]上的保真度为F12,CZ门对应的模拟信号作用在 Q[1]和Q[5]上的保真度为F15。最大子图2H的固定成本为1-F01·F12·F15;执行 CZ(q[1],q[2]),CZ(q[1],q[3])时,需要将q[1]的映射关系从Q[0]变换到 Q[1]上,最大子图2L的固定成本为1-F12·F15;将q[1]的映射关系从Q[0]变换到 Q[1]上,需要引入量子逻辑门SWAP(q[0],q[1]),SWAP(q[0],q[1])=CZ(q[0], q[1])CZ(q[0],q[1])CZ(q[0],q[1]),因此,最大子图2H与最大子图2L的交换成本为1-F01 3。总的消耗成本为1-F01·F12·F15·F12·F15·F01 3。
基于CZ门的个数确定固定成本和交换成本:最大子图2H的固定成本为3 个CZ门,最大子图2L的固定成本为2个CZ门,最大子图2H与最大子图2L 的交换成本为3个CZ门,总的消耗成本为8个CZ门。
参见图3,图3为本申请实施例提供的另一种量子计算平台适配方法的流程示意图。该方法包括:
步骤301:获取待运行的量子程序和量子计算平台对应的量子芯片的拓扑结构,所述拓扑结构用于表示电子设备中的物理量子比特以及物理量子比特之间的连接关系。
步骤302:获取所述量子程序中的量子逻辑门。
步骤303:若所述量子逻辑门包括多量子逻辑门,则将所述多量子逻辑门转化为单量子逻辑门与两量子逻辑门。
步骤304:删除所述单量子逻辑门,以及基于所述两量子逻辑门构建第一有向无环图。
步骤305:若所述量子逻辑门包括多个连续的两量子逻辑门,且所述多个连续的两量子逻辑门作用相同的两个逻辑量子比特上,则基于所述多个连续的两量子逻辑门中的任一个构建第一有向无环图。
步骤306:若所述量子逻辑门包括多个连续的两量子逻辑门,且所述多个连续的两量子逻辑门作用不同的两个逻辑量子比特上,则基于所述多个连续的两量子逻辑门依次构建第一有向无环图,所述第一有向无环图包括节点和有向边;所述节点包括两个点和一条边,所述两个点用于表示所述量子逻辑门对应的两个逻辑量子比特,所述一条边用于表示作用在两个逻辑量子比特上的量子逻辑门;所述有向边用于表示所述量子逻辑门按逻辑量子比特的量子态演化时序的依赖关系。
步骤307:遍历所述第一有向无环图得到最大子图序列,所述最大子图序列包括N个最大子图,所述N为大于或等于1的整数;
步骤308:确定所述N个最大子图在所述拓扑结构中的同构子图,得到N 个同构子图集合,所述N个同构子图集合与所述N个最大子图一一对应;
步骤309:基于所述N个同构子图集合构建量子线路,所述量子线路允许在所述量子计算平台上运行。
需要说明的是,本实施例的具体实现过程可参见上述方法实施例所述的具体实现过程,在此不再叙述。
与上述图1、图2A和图3所示的实施例一致的,请参阅图4,图4为本申请实施例提供的一种电子设备的结构示意图,如图4所示,该电子设备包括处理器、存储器、通信接口以及一个或多个程序,其中,上述一个或多个程序被存储在上述存储器中,并且被配置由上述处理器执行,上述程序包括用于执行以下步骤的指令:
获取待运行的量子程序和量子计算平台对应的量子芯片的拓扑结构,所述拓扑结构用于表示电子设备中的物理量子比特以及物理量子比特之间的连接关系;
基于所述拓扑结构将所述量子程序适配至所述量子计算平台。
在本申请的一实施例中,在所述基于所述拓扑结构将所述量子程序适配至所述量子计算平台方面,上述程序包括具体用于执行以下步骤的指令:
构建所述量子程序的第一有向无环图;
遍历所述第一有向无环图得到最大子图序列,所述最大子图序列包括N个最大子图,所述N为大于或等于1的整数;
确定所述N个最大子图在所述拓扑结构中的同构子图,得到N个同构子图集合,所述N个同构子图集合与所述N个最大子图一一对应;
基于所述N个同构子图集合构建量子线路,所述量子线路允许在所述量子计算平台上运行。
在本申请的一实施例中,在所述构建所述量子程序的第一有向无环图方面,上述程序包括具体用于执行以下步骤的指令:
获取所述量子程序中的量子逻辑门;
基于所述量子逻辑门构建第一有向无环图,所述第一有向无环图包括节点和有向边;所述节点包括两个点和一条边,所述两个点用于表示所述量子逻辑门对应的两个逻辑量子比特,所述一条边用于表示作用在两个逻辑量子比特之上的量子逻辑门;所述有向边用于表示所述量子逻辑门按逻辑量子比特的量子态演化时序的依赖关系。
在本申请的一实施例中,所述量子逻辑门包括多量子逻辑门;在所述基于所述量子逻辑门构建第一有向无环图方面,上述程序包括具体用于执行以下步骤的指令:
将所述多量子逻辑门转化为单量子逻辑门与两量子逻辑门;
删除所述单量子逻辑门,以及基于所述两量子逻辑门构建第一有向无环图。
在本申请的一实施例中,在所述基于所述量子逻辑门构建第一有向无环图方面,上述程序包括具体用于执行以下步骤的指令:
若所述量子逻辑门包括多个连续的两量子逻辑门,且所述多个连续的两量子逻辑门作用相同的两个逻辑量子比特上,则基于所述多个连续的两量子逻辑门中的任一个构建第一有向无环图。
在本申请的一实施例中,上述程序包括还用于执行以下步骤的指令:
若所述量子逻辑门包括多个连续的两量子逻辑门,且所述多个连续的两量子逻辑门作用不同的两个逻辑量子比特上,则基于所述多个连续的两量子逻辑门依次构建第一有向无环图。
需要说明的是,本实施例的具体实现过程可参见上述方法实施例所述的具体实现过程,在此不再叙述。
本申请实施例可以根据所述方法示例对电子设备进行功能单元的划分,例如,可以对应各个功能划分各个功能单元,也可以将两个或两个以上的功能集成在一个处理单元中。所述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。需要说明的是,本申请实施例中对单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
下面为本申请装置实施例,本申请装置实施例用于执行本申请方法实施例所实现的方法。请参阅图5,图5是本申请实施例提供的一种量子计算平台适配装置的结构示意图,所述装置包括:
获取单元501,用于获取待运行的量子程序和量子计算平台对应的量子芯片的拓扑结构,所述拓扑结构用于表示电子设备中的物理量子比特以及物理量子比特之间的连接关系;
适配单元502,用于基于所述拓扑结构将所述量子程序适配至所述量子计算平台。
在本申请的一实施例中,在所述基于所述拓扑结构将所述量子程序适配至所述量子计算平台方面,所述适配单元502,具体用于:
构建所述量子程序的第一有向无环图;
遍历所述第一有向无环图得到最大子图序列,所述最大子图序列包括N个最大子图,所述N为大于或等于1的整数;
确定所述N个最大子图在所述拓扑结构中的同构子图,得到N个同构子图集合,所述N个同构子图集合与所述N个最大子图一一对应;
基于所述N个同构子图集合构建量子线路,所述量子线路允许在所述量子计算平台上运行。
在本申请的一实施例中,在所述构建所述量子程序的第一有向无环图方面,所述适配单元502,具体用于:
获取所述量子程序中的量子逻辑门;
基于所述量子逻辑门构建第一有向无环图,所述第一有向无环图包括节点和有向边;所述节点包括两个点和一条边,所述两个点用于表示所述量子逻辑门对应的两个逻辑量子比特,所述一条边用于表示作用在两个逻辑量子比特上的量子逻辑门;所述有向边用于表示所述量子逻辑门按逻辑量子比特的量子态演化时序的依赖关系。
在本申请的一实施例中,所述量子逻辑门包括多量子逻辑门;在所述基于所述量子逻辑门构建第一有向无环图方面,所述适配单元502,具体用于:
将所述多量子逻辑门转化为单量子逻辑门与两量子逻辑门;
删除所述单量子逻辑门,以及基于所述两量子逻辑门构建第一有向无环图。
在本申请的一实施例中,在所述基于所述量子逻辑门构建第一有向无环图方面,所述适配单元502,具体用于:
若所述量子逻辑门包括多个连续的两量子逻辑门,且所述多个连续的两量子逻辑门作用相同的两个逻辑量子比特上,则基于所述多个连续的两量子逻辑门中的任一个构建第一有向无环图。
在本申请的一实施例中,所述适配单元502,还用于:
若所述量子逻辑门包括多个连续的两量子逻辑门,且所述多个连续的两量子逻辑门作用不同的两个逻辑量子比特上,则基于所述多个连续的两量子逻辑门依次构建第一有向无环图。
需要说明的是,获取单元501和适配单元502可通过处理器实现。
本申请实施例还提供一种计算机可读存储介质,其中,该计算机可读存储介质存储用于电子数据交换的计算机程序,该计算机程序使得计算机执行如上述方法实施例中记载的任一方法的部分或全部步骤,上述计算机包括电子设备。
本申请实施例还提供一种计算机程序产品,上述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,上述计算机程序可操作来使计算机执行如上述方法实施例中记载的任一方法的部分或全部步骤。该计算机程序产品可以为一个软件安装包,上述计算机包括电子设备。
本申请实施例还提供一种量子计算机操作系统,该量子计算机操作系统根据上述方法实施例中记载的任一方法的部分或全部步骤实现所述量子计算平台的适配。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如上述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
上述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例上述方法的全部或部分步骤。而前述的存储器包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM, Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储器中,存储器可以包括:闪存盘、只读存储器(英文:Read-Only Memory,简称:ROM)、随机存取器(英文:Random Access Memory,简称:RAM)、磁盘或光盘等。
以上对本申请实施例进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (10)
1.一种量子计算平台适配方法,其特征在于,所述方法包括:
获取待运行的量子程序和量子计算平台对应的量子芯片的拓扑结构,所述拓扑结构用于表示电子设备中的物理量子比特以及物理量子比特之间的连接关系;
基于所述拓扑结构将所述量子程序适配至所述量子计算平台。
2.根据权利要求1所述的方法,其特征在于,所述基于所述拓扑结构将所述量子程序适配至所述量子计算平台,包括:
构建所述量子程序的第一有向无环图;
遍历所述第一有向无环图得到最大子图序列,所述最大子图序列包括N个最大子图,所述N为大于或等于1的整数;
确定所述N个最大子图在所述拓扑结构中的同构子图,得到N个同构子图集合,所述N个同构子图集合与所述N个最大子图一一对应;
基于所述N个同构子图集合构建量子线路,所述量子线路允许在所述量子计算平台上运行。
3.根据权利要求2所述的方法,其特征在于,所述构建所述量子程序的第一有向无环图,包括:
获取所述量子程序中的量子逻辑门;
基于所述量子逻辑门构建第一有向无环图,所述第一有向无环图包括节点和有向边;所述节点包括两个点和一条边,所述两个点用于表示所述量子逻辑门对应的两个逻辑量子比特,所述一条边用于表示作用在两个逻辑量子比特上的量子逻辑门;所述有向边用于表示所述量子逻辑门按逻辑量子比特的量子态演化时序的依赖关系。
4.根据权利要求3所述的方法,其特征在于,所述量子逻辑门包括多量子逻辑门;所述基于所述量子逻辑门构建第一有向无环图,包括:
将所述多量子逻辑门转化为单量子逻辑门与两量子逻辑门;
删除所述单量子逻辑门,以及基于所述两量子逻辑门构建第一有向无环图。
5.根据权利要求3所述的方法,其特征在于,所述基于所述量子逻辑门构建第一有向无环图,包括:
若所述量子逻辑门包括多个连续的两量子逻辑门,且所述多个连续的两量子逻辑门作用相同的两个逻辑量子比特上,则基于所述多个连续的两量子逻辑门中的任一个构建第一有向无环图。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
若所述量子逻辑门包括多个连续的两量子逻辑门,且所述多个连续的两量子逻辑门作用不同的两个逻辑量子比特上,则基于所述多个连续的两量子逻辑门依次构建第一有向无环图。
7.一种量子计算平台适配装置,其特征在于,所述装置包括:
获取单元,用于获取待运行的量子程序和量子计算平台对应的量子芯片的拓扑结构,所述拓扑结构用于表示电子设备中的物理量子比特以及物理量子比特之间的连接关系;
适配单元,用于基于所述拓扑结构将所述量子程序适配至所述量子计算平台。
8.一种电子设备,其特征在于,包括处理器、存储器、通信接口,以及一个或多个程序,所述一个或多个程序被存储在所述存储器中,并且被配置由所述处理器执行,所述程序包括用于执行如权利要求1-6任一项所述的方法中的步骤的指令。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行以实现权利要求1-6任一项所述的方法。
10.一种量子计算机操作系统,其特征在于,所述量子计算机操作系统根据权利要求1-6任一项所述的方法实现所述量子计算平台的适配。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110430151.0A CN115310613A (zh) | 2021-04-21 | 2021-04-21 | 量子计算平台适配方法、装置及量子计算机操作系统 |
PCT/CN2022/087842 WO2022222944A1 (zh) | 2021-04-21 | 2022-04-20 | 量子计算平台适配方法、装置及量子计算机操作系统 |
EP22791051.0A EP4328807A1 (en) | 2021-04-21 | 2022-04-20 | Method and apparatus for adaptating to quantum computing platform, and quantum computer operating system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110430151.0A CN115310613A (zh) | 2021-04-21 | 2021-04-21 | 量子计算平台适配方法、装置及量子计算机操作系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115310613A true CN115310613A (zh) | 2022-11-08 |
Family
ID=83854480
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110430151.0A Pending CN115310613A (zh) | 2021-04-21 | 2021-04-21 | 量子计算平台适配方法、装置及量子计算机操作系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115310613A (zh) |
-
2021
- 2021-04-21 CN CN202110430151.0A patent/CN115310613A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110908667B (zh) | 神经网络联合编译的方法、装置和电子设备 | |
CN113033811B (zh) | 两量子比特逻辑门的处理方法及装置 | |
CN110825375A (zh) | 一种量子程序的转化方法、装置、存储介质和电子装置 | |
CN110929873A (zh) | 一种量子程序的处理方法、装置、存储介质和电子装置 | |
CN112883241B (zh) | 基于连通分量生成优化的超级计算机基准测试加速方法 | |
CN114764549A (zh) | 基于矩阵乘积态的量子线路模拟计算方法、装置 | |
CN114819163A (zh) | 量子生成对抗网络的训练方法、装置、介质及电子装置 | |
US20240061724A1 (en) | Quantum computing task execution method and apparatus, and quantum computer operating system | |
CN113222153A (zh) | 一种量子态的模拟方法、装置、存储介质和电子装置 | |
CN115310613A (zh) | 量子计算平台适配方法、装置及量子计算机操作系统 | |
CN115310614B (zh) | 量子线路构建方法、装置及量子计算机操作系统 | |
CN115879562B (zh) | 一种量子程序初始映射的确定方法、装置及量子计算机 | |
CN114881238A (zh) | 量子鉴别器的构造方法、装置、介质及电子装置 | |
CN115829047B (zh) | 量子程序最终映射的确定方法、装置及量子计算机 | |
CN115310612A (zh) | 量子线路构建方法、装置及量子计算机操作系统 | |
WO2022222944A1 (zh) | 量子计算平台适配方法、装置及量子计算机操作系统 | |
CN115983392A (zh) | 量子程序映射关系的确定方法、装置、介质及电子装置 | |
CN115423108B (zh) | 量子线路切割处理方法、装置及量子计算机操作系统 | |
CN115271080B (zh) | 量子计算任务执行方法、装置及量子计算机操作系统 | |
CN114912619A (zh) | 一种量子计算任务调度方法、装置及量子计算机操作系统 | |
CN115730669B (zh) | 一种量子线路的处理方法、装置及量子计算机操作系统 | |
CN114372583B (zh) | 基于机器学习框架的量子程序优化方法及相关设备 | |
WO2024066808A1 (zh) | 量子线路生成方法、装置、存储介质及电子装置 | |
CN114764618B (zh) | 一种针对线性系统的量子预处理方法及装置 | |
CN115511094B (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 |