用于量子电路模拟器的设备和方法

文档序号:108409 发布日期:2021-10-15 浏览:21次 >En<

阅读说明:本技术 用于量子电路模拟器的设备和方法 (Apparatus and method for quantum circuit simulator ) 是由 安德烈·埃米尔维奇·卡伦达罗夫 德米特里·谢尔盖维奇·科尔马科夫 尤里·亚历山德罗维奇·佐托夫 于 2019-03-29 设计创作,主要内容包括:本发明提出了一种用于量子电路模拟器的设备和包括至少一个这种设备的量子电路模拟器。所述设备用于:获取第一量子门序列;生成第二量子门序列,作为所述第一量子门序列的子序列;根据所述第二量子门序列计算局部量子比特集和全局量子比特集;生成量子门集群集,其中,每个集群包括使用贪婪算法合并在一起的所述第二量子门序列中的所述量子门的子集;根据所述集群的顺序生成第三量子门序列,所述第三量子门序列包含所述第二量子门序列中的所有量子门;将所述局部量子比特集和所述全局量子比特集提供给所述量子电路模拟器;将所述第三量子门序列输出到所述量子电路模拟器。(The invention proposes a device for a quantum circuit simulator and a quantum circuit simulator comprising at least one such device. The apparatus is for: obtaining a first quantum gate sequence; generating a second quantum gate sequence as a subsequence of the first quantum gate sequence; computing a local qubit set and a global qubit set from the second quantum gate sequence; generating clusters of quantum gates, wherein each cluster comprises a subset of the quantum gates in the second sequence of quantum gates merged together using a greedy algorithm; generating a third sequence of quantum gates according to the order of the clusters, the third sequence of quantum gates including all quantum gates in the second sequence of quantum gates; providing the local qubit set and the global qubit set to the quantum circuit simulator; outputting the third sequence of quantum gates to the quantum circuit simulator.)

用于量子电路模拟器的设备和方法

技术领域

本发明涉及量子计算领域,更具体地,涉及经典计算机上量子电路的模拟。具体地,本发明涉及用于量子电路模拟器的设备,以及包括至少一个这种设备的量子电路模拟器。此外,本发明涉及一种用于量子电路模拟器的量子门和量子比特调度的方法,其中,所述方法可以由所述设备执行。

背景技术

通用量子电路模拟器将模拟量子计算机的整个状态的数学表示存储在存储器中。此状态的大小尺度为2n,n是量子计算机的模拟量子比特的数量。对于40量子比特,此状态的大小为16TiB。这需要使用多节点计算系统,以便在节点的多个存储器上分布大状态。在模拟量子电路期间,需要从远程节点访问状态的一部分。

为了在经典计算机上模拟量子计算,人们可以使用量子计算的线性代数表示(量子电路)。在这个表示中,n量子比特量子电路的状态是希尔伯特空间中具有正交基的向量空间的尺寸等于2n。根据量子计算理论,以下关系成立:

从上述关系来看,在存储器中表示量子计算机状态的直接方法是存储2n个复数{αi},这些复数被称为对应基态的振幅。值|αi|2决定了观察作为量子电路/计算机的输出的基态i的概率。

量子计算可以表示为作用于产生结果状态的向量的线性酉算子U:

由于希尔伯特空间中的基是被定义的,所以算子U由2n×2n维矩阵表示。

在量子计算中,量子门被定义为基本酉算子,作用于一个或几个量子比特。实用的量子门的大小为1量子比特、2量子比特和3量子比特。使用这些量子门,可以表示任何量子算法。根据上述等式(2),任何量子算法都可以用酉矩阵和量子门序列与算子U之间的关系表示:

换句话说,量子算法可以表示为量子门的张量积,每个量子门作用于量子比特的子集。

图8示出了大多数常见量子算法中使用的一组典型量子门。其中,CNOT和CZ是一种特殊量子门的示例,它们被称为受控门。这样的量子门作用于2个或多个量子比特,其中,一个或多个量子比特用于控制某些操作。执行操作的量子比特称为目标,其它量子比特称为控制。

使用图形表示,可以为量子算法绘制量子电路,如图9示意性所示。编号的水平线表示量子比特,作用于量子比特的量子门位于对应的线上。量子门按从左到右的顺序应用。根据上述关系(3),从张量积的特性可以得出结论,作用于不相交的量子比特集上量子门是交换的。一组共享相同水平位置的量子门被称为量子电路的一层。

如上所述,通用量子电路模拟器在计算机内存中存储2n个复数的阵列(关系(1)的系数αi)。使用例如IEEE754双精度浮点表示,这需要16·2n字节内存。人们可以很容易地看到,当量子比特的数量增长(例如40量子比特需要16TiB的内存)时,对于一台计算机来说,内存要求很快就变得难以解决。在这种情况下,模拟器程序必须将状态向量拆分为多个部分,并存储在几台计算机(节点,如以上所描述)的内存中。

让量子模拟器在n=L+R个量子比特上运行。然后,如果一台计算机只能存储状态向量的2L个元素,则所需的计算机节点数为2R

在上述关系(1)中选择基的自然方法是将给一个基态分配一个状态,在该状态中,根据索引i的二进制表示,量子比特是|0>或|1>。例如:对于三个量子比特,有8个基态在基态下,所有量子比特都处于状态|0>,在量子比特1处于状态|1>,另外两个处于状态0,在量子比特1和2处于状态|1>,量子比特0处于状态|0>。

根据状态向量分布方案,很明显,当其它R个量子比特的状态固定等于节点秩的二进制表示时,每个节点存储所有振幅,这些振幅决定了前L个量子比特的|0>和|1>的概率。在本文档中,前L个量子比特称为局部量子比特,后R个量子比特称为全局量子比特。

当量子门应用于一个或多个局部量子比特时,在每个节点上局部执行矩阵向量乘法,不需要访问存储在远程节点中的振幅,因为其它量子比特不受门的影响。当量子门应用于一个或多个全局量子比特时,无法执行矩阵向量乘法,因为计算节点不能直接访问远程计算机的内存。在这种情况下,需要一种数据交换机制。

一种传统的方法提供了量子比特重新排序的方法,所述在以下情况下执行:量子比特被重新编号,对应的振幅在节点之间传输,并根据新的量子比特编号和节点的等级存储在对应节点的内存中。这个过程被称为量子比特交换,因为量子比特和振幅交换它们的位置,图11示出了这个过程。这种方法可以用来模拟量子门,量子门最初应用于全局量子比特。在这种情况下,只需要在操作中涉及的全局量子比特与一些未使用的局部量子比特之间交换编号,然后在节点之间传输对应的振幅。之后,可以模拟作用于局部量子比特的量子门。

分布式计算通常使用MPI库来执行节点之间的数据交换,因此用MPI操作来表示程序中的数据交换模式。量子比特交换操作可以使用单个MPI_Alltoall操作完成。任何数量小于或等于R的量子比特都可以一次交换。很容易证明传输的振幅的量等于

其中,k是交换的全局量子比特的数量。从上述关系(4)可以明显看出,一次交换几个量子比特所需的传输数据比逐个顺序交换它们所需的数据要少。

但是,一个典型的量子电路可以包含数十万个门。在没有任何优化技术的情况下,每个门都意味着矩阵向量乘法,在分布式情况下,振幅必须在节点之间传输很多数。因此,在以上描述的方法中,在不仔细定义要交换的量子比特集的情况下,如果集中的一些量子比特没有被包括到足够数量的门应用中,则数据交换会有额外的开销。该方法没有提供任何关于如何确定要重新排序的最优量子比特集的建议。

另一种方法描述了分布式量子电路模拟器(QuEST)的开源实现方式。在QuEST中,使用了以上描述的量子比特重新排序的方法,但实现方式仅限于单个量子比特交换。

量子电路模拟最复杂的方法使用调度组件(调度器),该组件确定要应用的门的顺序和要重新排序的量子比特集。门被重新排序为称为级的序列。级包含作用于局部量子比特的门。在级内,门形成称为集群的子序列。相同集群的门被融合到单个多量子比特门中,该门通过单个矩阵向量乘法模拟。在级之间,进行量子比特重新排序。

图12示出了这种门和级集群。假设量子比特0-2当前是局部的,3-4是全局的,第一级由灰色线勾勒的2个门集群组成,第二级由黑色线勾勒的集群组成。在为第一级量子比特应用门之后,进行重新排序:3、4与1、2交换,然后可以应用第二级。

实现这种方法的主要问题是集群和级的构建方法。该方法不描述任何算法,也不提供调度器的源代码。

总之,尽管量子电路模拟有一套主要的方法,包括门的调度、门集群的构建和量子比特的重新排序,但寻找门和量子比特的最优顺序的问题仍未解决。所有之前的方法都没有描述任何根据明确的最优性标准计算量子比特和门置换的方法。

发明内容

鉴于上述问题和缺点,本发明的实施例的目的是改进现有的方法。目的是为量子电路模拟器提供一种复杂的门和量子比特置换计算方法。这会得到量子电路模拟器中的最优数据交换和最优量子门应用调度,并相应地减少节点之间传输的数据量。计算的置换应提供最小数量的矩阵向量乘法和最小数量的数据传输。为此,应提供一种设备和方法,所述设备和方法可用于分布式量子电路模拟器中,用于门调度和量子比特重新排序调度。

该目的通过所附独立权利要求中描述的本发明的实施例实现。从属权利要求中进一步定义了本发明的有利实现方式。

特别是,本发明的实施例提供一种设备和方法,其计算最优数据交换和量子门应用调度,从而显著减少节点之间传输的数据量,以及要执行的算术运算量。所有这些都会提高量子电路模拟器性能,甚至提高达数倍。

本发明的实施例基于张量乘积运算的关联性使得可以通过不同的方式将关系(3)拆分为多个因子,从而根据计算的性能或内存消耗考虑来构造因子:

上述关系(5)和量子门的交换特性被应用,奠定了本发明的实施例的核心,通过门序列置换优化量子电路模拟。

基于单个门的特性,并使用贪婪算法,所述设备和方法具体计算门的置换和量子比特的置换,这得到级中的集群的最小数量,以及量子电路模拟期间的级的最小数量。

本发明的第一方面提供了一种用于量子电路模拟器的设备,所述设备用于:获取第一量子门序列;通过使用贪婪算法,特别是带有回溯的贪婪算法,生成第二量子门序列,所述第二量子门序列是所述第一量子门序列的子序列;根据所述第二量子门序列计算局部量子比特集和全局量子比特集;生成量子门集群集,其中,每个集群包括使用贪婪算法合并在一起的所述第二量子门序列中的所述量子门的子集;根据所述集群的顺序生成第三量子门序列,所述第三量子门序列包含所述第二量子门序列中的所有量子门;将所述局部量子比特集和所述全局量子比特集提供给所述量子电路模拟器;将所述第三量子门序列输出到所述量子电路模拟器。

计算的局部和全局量子比特集特别是“最佳”局部量子比特和全局量子比特集。因此,“最佳”是指算法可以做到的最佳状态。也就是说,算法搜索这些量子比特集的许多变体,然后可以选择在第二序列中具有最大门数的量子比特集。在第一方面的设备运行算法之前,可以有意地预定义局部量子比特集。这是指算法将包括量子门,所述量子门作用于这些量子比特。

第一方面的设备可以用于分布式量子电路模拟器,并且可以提供门调度和量子比特重新排序。换句话说,该设备可以为量子电路模拟器提供复杂的门和量子比特置换计算。计算的置换能得到量子电路模拟器中的最优数据交换和量子门应用调度,从而显著减少模拟器节点之间传输的数据量。

在第一方面的一种实现方式中,所述设备还用于,当生成所述量子门集群集时:按所述集群的顺序,将包括较多量子门的集群排在包括较少量子门的集群之前。

在第一方面的一种实现方式中,所述设备还用于,当生成所述量子门集群集时:根据集群中的最大可能量子比特数生成所述集群。

上述实现方式可以提高第一方面的设备执行的算法的效率。

在第一方面的一种实现方式中,所述设备还用于,当生成所述量子门集群集时:根据所述集群中的最大可能量子比特数,逐一选择与所述第二量子门序列相关联的量子比特的所有可能组合;为每种组合构建集群;选择其中量子门数量最多的集群。

在第一方面的一种实现方式中,所述设备还用于,当生成所述量子门集群集时:维护锁定量子比特集;如果量子门的矩阵表示是对角线的,则将所述量子门包括到集群中;如果量子门作用的量子比特中的至少一个不属于所选择的量子比特组合,则跳过所述量子门;和/或如果量子门作用的量子比特中的至少一个在所述锁定量子比特集中,则跳过所述量子门;如果跳过量子门,则将所述量子门作用的所有量子比特添加到所述锁定量子比特集中;否则,将量子门包括到集群中。

在第一方面的一种实现方式中,所述设备还用于,当生成所述量子门集群集时:确定包括最大数量量子门的集群;输出所述确定的集群的所述量子门,特别是将所述输出的量子门插入所述第三量子门序列中;从所述第二量子门序列中删除所述输出量子门。

在第一方面的一种实现方式中,所述设备还用于,当计算所述局部量子比特集和所述全局量子比特集时:分别根据局部量子比特的最大数量和/或全局量子比特的最大数量确定所述局部量子比特集和/或所述全局量子比特集。

在第一方面的一种实现方式中,所述设备还用于,当生成所述第二量子门序列时:将作用于单个量子比特的量子门与作用于包括相同单个量子比特的量子比特子集的所述第一量子门序列中的相邻量子门融合。

在第一方面的一种实现方式中,所述设备还用于,当生成所述第二量子门序列时:将作用于最多所述最大数量的局部量子比特的量子门包括到所述第二量子门序列中;如果所述第一量子门序列包括作用于单个量子比特的至少一个量子门和作用于相同量子比特和至少一个其它量子比特的另一个量子门,则将所述单量子比特门和另一个多量子比特门一起包括到所述第二量子门序列中。

在第一方面的一种实现方式中,所述设备还用于,当生成所述第二量子门序列时:创建所述贪婪算法的分支,其中,量子门包括到所述第二量子门序列中;和/或创建所述贪婪算法的分支,其中,跳过所述第一量子门序列中的量子门;如果包括量子门,则将所述量子门作用的所有量子比特添加到所述局部量子比特集中;或者,如果跳过量子门,则将所述量子门作用的所有量子比特添加到所述锁定量子比特集中。

在第一方面的一种实现方式中,所述设备还用于,当生成所述第二量子门序列时:最多创建所述贪婪算法的最大分支数。

在第一方面的一种实现方式中,所述设备还用于,当应用所述贪婪算法的分支时:用尽可能多的门构建所述第二量子门序列;测试所述第一量子门序列中的每个门,并根据测试结果,跳过所述门或将所述门包括到所述第二量子门序列中。

在第一方面的一种实现方式中,所述设备还用于,当生成所述第二量子门序列时:维护锁定量子比特集;如果应用量子门需要多于预定阈值的量子比特才为局部量子比特,则跳过所述量子门;和/或如果量子门作用的所述量子比特中的至少一个在锁定量子比特集中,则跳过所述量子门,如果跳过量子门,则将所述量子门作用的所有量子比特添加到所述锁定量子比特集中。

在第一方面的一种实现方式中,所述设备还用于,当生成所述第二量子门序列时:如果量子门的矩阵表示是对角线的,则将所述量子门包括到所述第二量子门序列中,不将量子门作用的量子比特添加到所述局部量子比特集;和/或如果量子门作用的所有量子比特已经在所述局部量子比特集中,则将所述量子门包括到所述第二量子门序列中。

在第一方面的一种实现方式中,所述设备还用于,当计算所述局部量子比特集和所述全局量子比特集时:构建所述第一量子门序列中的量子门作用的所有量子比特的集;将所述第二量子门序列中的量子门作用的所有量子比特包括到所述局部量子比特集中;将在所述所有量子比特的集中且不在所述局部量子比特集中的所有量子比特包括到所述全局量子比特集中。

本发明的第二方面提供了一种量子电路模拟器,包括根据第一方面或其任何实现方式的设备。

本发明的第三方面提供了一种用于量子电路模拟器的量子门和量子比特调度的方法,所述方法包括:获取第一量子门序列;通过使用贪婪算法,特别是带有回溯的贪婪算法,生成第二量子门序列,所述第二量子门序列是所述第一量子门序列的子序列;根据所述第二量子门序列计算局部量子比特集和全局量子比特集;生成量子门集群集,其中,每个集群包括使用贪婪算法合并在一起的所述第二量子门序列中的所述量子门的子集;根据所述集群的顺序生成第三量子门序列,所述第三量子门序列包含所述第二量子门序列中的所有量子门;将所述局部量子比特集和所述全局量子比特集提供给所述量子电路模拟器;将所述第三量子门序列输出到所述量子电路模拟器。

本发明的第四方面提供了一种计算机程序产品,包括程序代码,用于控制根据第一方面或其任何实现方式所述的设备,或用于在处理器上实现时执行第三方面或其任何实现方式所述的方法。

在第四方面的一种实现方式中,所述方法还包括,当生成量子门的集群集时:按所述集群的顺序,将包括较多量子门的集群排在包括较少量子门的集群之前。

在第四方面的一种实现方式中,所述方法还包括,当生成量子门的集群集时:根据集群中的最大可能量子比特数生成所述集群。

在第四方面的一种实现方式中,所述方法还包括,当生成量子门的集群集时:根据所述集群中的最大可能量子比特数,逐一选择与所述第二量子门序列相关联的量子比特的所有可能组合;为每种组合构建集群;选择其中量子门数量最多的集群。

在第四方面的一种实现方式中,所述方法还包括,当生成量子门的集群集时:维护锁定量子比特集;如果量子门的矩阵表示是对角线的,则将所述量子门包括到集群中;如果量子门作用的量子比特中的至少一个不属于所选择的量子比特组合,则跳过所述量子门;和/或如果量子门作用的量子比特中的至少一个在所述锁定量子比特集中,则跳过所述量子门;如果跳过量子门,则将所述量子门作用的所有量子比特添加到所述锁定量子比特集中;否则,将量子门包括到集群中。

在第四方面的一种实现方式中,所述方法还包括,当生成量子门的集群集时:确定包括最大数量量子门的集群;输出所述确定的集群的所述量子门,特别是将所述输出的量子门插入所述第三量子门序列中;从所述第二量子门序列中删除所述输出量子门。

在第四方面的一种实现方式中,所述方法还包括,当计算所述局部量子比特集和所述全局量子比特集时:分别根据局部量子比特的最大数量和/或全局量子比特的最大数量确定所述局部量子比特集和/或所述全局量子比特集。

在第四方面的一种实现方式中,所述方法还包括,当生成所述第二量子门序列时:将作用于单个量子比特的量子门与作用于包括相同单个量子比特的量子比特子集的所述第一量子门序列中的相邻量子门融合。

在第四方面的一种实现方式中,所述方法还包括,当生成所述第二量子门序列时:将作用于最多所述最大数量的局部量子比特的量子门包括到所述第二量子门序列中;如果所述第一量子门序列包括作用于单个量子比特的至少一个量子门和作用于相同量子比特和至少一个其它量子比特的另一个量子门,则将所述单量子比特门和另一个多量子比特门一起包括到所述第二量子门序列中。

在第四方面的一种实现方式中,所述方法还包括,当生成所述第二量子门序列时:创建所述贪婪算法的分支,其中,量子门包括到所述第二量子门序列中;和/或创建所述贪婪算法的分支,其中,跳过所述第一量子门序列中的量子门;如果包括量子门,则将所述量子门作用的所有量子比特添加到所述局部量子比特集中;或者,如果跳过量子门,则将所述量子门作用的所有量子比特添加到所述锁定量子比特集中。

在第四方面的一种实现方式中,所述方法还包括,当生成所述第二量子门序列时:最多创建所述贪婪算法的最大分支数。

在第四方面的一种实现方式中,所述方法还包括,当应用所述贪婪算法的分支时:用尽可能多的门构建所述第二量子门序列;测试所述第一量子门序列中的每个门,并根据测试结果,跳过所述门或将所述门包括到所述第二量子门序列中。

在第四方面的一种实现方式中,所述方法还包括,当生成所述第二量子门序列时:维护锁定量子比特集;如果应用量子门需要多于预定阈值的量子比特才为局部量子比特,则跳过所述量子门;和/或如果量子门作用的所述量子比特中的至少一个在锁定量子比特集中,则跳过所述量子门;如果跳过量子门,则将所述量子门作用的所有量子比特添加到所述锁定量子比特集中。

在第四方面的一种实现方式中,所述方法还包括,当生成所述第二量子门序列时:如果量子门的矩阵表示是对角线的,则将所述量子门包括到所述第二量子门序列中,不将量子门作用的量子比特添加到所述局部量子比特集;和/或如果量子门作用的所有量子比特已经在所述局部量子比特集中,则将所述量子门包括到所述第二量子门序列中。

在第四方面的一种实现方式中,所述方法还包括,当计算所述局部量子比特集和所述全局量子比特集时:构建所述第一量子门序列中的量子门作用的所有量子比特的集;将所述第二量子门序列中的量子门作用的所有量子比特包括到所述局部量子比特集中;将在所述所有量子比特的集中且不在所述局部量子比特集中的所有量子比特包括到所述全局量子比特集中。

需要说明的是,本申请中描述的所有设备、元件、单元和模块可以在软件或硬件元件或其任何类型的组合中实现。本申请中描述的各种实体执行的所有步骤和所描述的将由各种实体执行的功能旨在表明各个实体适于或用于执行各自的步骤和功能。虽然在以下具体实施例的描述中,由外部实体执行的特定功能或步骤没有在执行该具体步骤或功能的该实体的具体详述元件的描述中反映,但是技术人员应该清楚,这些方法和功能可以在相应的硬件或软件元件或其任何组合中实现。

附图说明

结合所附附图,下面具体实施例的描述阐述上述本发明的各方面及实现方式。

图1示出了根据本发明的实施例的用于量子电路模拟器的设备。

图2示出了根据本发明的实施例的用于量子电路模拟器的设备执行的集群调度方法的伪代码。

图3示出了根据本发明的实施例的用于量子电路模拟器的设备执行的集群调度方法的框图。

图4示出了根据本发明的实施例的用于量子电路模拟器的设备执行的级调度方法的伪代码。

图5示出了根据本发明的实施例的用于量子电路模拟器的设备执行的级调度方法的框图。

图6(a)中示出了不同至上电路上的调度器结果,图6(b)中示出了根据本发明的实施例的量子电路模拟器与8节点集群上的QuEST模拟器相比的30层至上电路模拟的结果。

图7示出了根据本发明的实施例的用于量子电路模拟器的量子门和量子比特调度的方法。

图8示出了典型的量子门及其量子电路表示。

图9示出了用于量子算法的量子电路的图形表示。

图10示出了状态向量分布的方案。

图11示出了量子比特交换。

图12示出了门和级的集群。

具体实施方式

图1示出了根据本发明的实施例的设备100。设备100适用于量子电路模拟器110。设备100可以是量子电路模拟器110的一部分,或者可以连接到量子电路模拟器110。设备100特别用于调度量子电路模拟器110的量子门和量子比特,以便提高量子电路模拟器的性能。量子电路模拟器110可以是一个或多个经典计算机或计算机节点,它们一起用于模拟量子计算机上量子电路的执行。量子电路模拟器110可以包括至少一个设备100,或者可以与至少一个设备100一起工作。

设备100用于根据作为设备100的输入接收的量子电路等获取第一量子门序列101。量子电路可以是要在量子电路模拟器110上/由量子电路模拟器110模拟的量子电路。设备100还用于生成第二量子门序列102,第二量子门序列102是第一量子门序列101的子序列。因此,设备100使用贪婪算法,特别是带有回溯的贪婪算法。也就是说,第二量子门序列102是根据第一量子门序列101使用带有回溯的贪婪算法生成的。

此外,设备100用于根据生成的第二量子门序列102,分别计算局部量子比特集103a和全局量子比特集103b。这些量子比特集可以被称为最优或最终量子比特集。此外,设备100还用于生成量子门的集群104集,其中,每个集群104包括通过使用贪婪算法合并在一起的第二量子门序列102中的量子门的子集。贪婪算法在本质上可以类似于用于生成第二序列102的贪婪算法。然后,设备100用于根据量子门的集群104的顺序生成第三量子门序列105,第三量子门序列105包含第二量子门序列102中的所有量子门。

最后,设备100用于将局部量子比特集103a和全局量子比特集103b提供给量子电路模拟器110,并将第三量子门序列105输出给量子电路模拟器。根据这些输入,量子电路模拟器110可以模拟量子电路,在模拟器110的多个节点之间需要传输的数据更少,并且执行的算术运算更少。

值得注意的是,在图1的设备100中,量子门的集群104的生成和第三量子门序列105的生成可以称为集群调度算法。该算法使得设备100可以执行模拟器110的量子门调度。量子比特集103a和103b的计算和输出可以称为级调度算法。该算法使得设备100可以执行模拟器110的量子比特调度。

图2示出了集群调度算法的伪代码,集群调度算法可以由根据本发明的实施例的设备100,特别是图1的设备100执行,以便生成集群104集并输出第三量子门序列105。图3进一步示出了集群调度算法的框图。

集群调度算法有两个参数:“qubits”,即量子门的输入序列中涉及的所有量子比特的集;和k,这是集群104中的最大可能量子比特数。该算法还将量子门的序列(具体为第二量子门序列102)作为输入。

该算法进一步将量子门合并成量子门集群104。因此,它试图最小化生成的集群104的总数。此外,该算法使用贪婪方法,该方法:(a)找到包含最大数量量子门的集群104;(b)返回该集群104作为结果;并从量子门的输入序列中删除该量子门集群104;(c)再次进行(a)。

在步骤(a)中,算法可以逐个选择k个量子比特的所有可能组合;可以从这个组合中生成仅包含量子比特的量子门序列,其中,这些量子门可以合并在一个集群104中;可以选择最大大小的列表作为下一个集群104。

设备100还可以立即融合单量子比特量子门。如果存在至少一个作用于量子比特q的多量子比特门,则作用于量子比特q的单量子比特门g不会改变级的总数。因此,该量子门g可以立即融合(合并)到包含量子比特q的任何相邻量子门。这种优化有利于显著加快级调度算法,该级调度算法可以由设备100执行,并在下文描述。

图4示出了级调度算法的伪代码,级调度算法可以由根据本发明的实施例的设备100,特别是图1的设备100执行,以便调度和输出量子比特。图5示出了级调度算法的框图。

级调度算法有两个参数:Lmax,表示局部量子比特的最大数量;Bmax,表示要创建的最大分支数量。该算法以量子门列表作为输入。该算法返回一组103a量子比特,这些量子比特在当前级期间必须是局部的。因此,该算法尝试最小化级的总数。特别是,该算法使用了贪婪的方法,即该方法构造了级,级中包含尽可能多的量子门。

该算法还可以回溯量子门序列,并可以维护:(a)locals,即希望在级期间成为局部的一组量子比特;(b)locked,即一组锁定量子比特(跳过一些操作的量子比特);(c)B,即回溯的这个分支中的新分支的最大可能数量;(d)N,即在这个级中采取的量子门的数量。

该算法的过程具体可以根据以下案例分析:

·如果门量子比特或门控制量子比特中至少一个被锁定,则必须跳过量子门。

·否则,如果门矩阵是对角线的,它也可以应用于局部和全局量子比特,而不对量子比特添加任何要求。

·否则,如果此量子门的应用需要太多量子比特才为局部的,则跳过该门。

·否则,如果所有门量子比特都已经被要求是局部的,则量子门也可以应用,而不增加任何要求。

·否则,如果无法唯一确定应用/跳过门,则算法在两个分支上分支:一个分支跳过了此门;另一个分支应用此门。

当算法跳过门时,其所有量子比特都可以被锁定。当算法决定应用非对角线门时,其所有量子比特可能都需要是局部的。如果在回溯期间所有量子比特都被锁定,算法可能会返回到上一级递归。

一些量子比特可以有意地保持在局部,例如在启动算法之前预先填充locals量子比特集。这使得可以在模拟器110中执行其它优化,这是由于可以调节要交换的振幅的存储器放置布局。

图6(a)中示出了由设备100执行的方法的结果。设备100已经用3个全局量子比特和不同数量的总量子比特进行了测试。根据所得到的级之间的置换,应用所有全局量子比特与相同数量的局部量子比特的交换。

在图6(b)中,将根据本发明的实施例的量子电路模拟器110(即包括图1所示的设备100)与QuEST模拟器,特别是8节点集群上的QuEST模拟器进行比较。根据本发明的实施例的模拟器110由于减少了矩阵-向量乘法的数量,性能提升了一个数量级。这是因为设备100执行了集群级算法/方法,以及级调度算法/方法减少了数据传输量。

图7示出了根据本发明的实施例的方法700。方法700用于量子电路模拟器110的量子门和量子比特调度。方法700可以由图1的设备100或由包括所述设备100的量子电路模拟器110执行。

所述方法包括:步骤701,获取第一量子门序列101;步骤702,通过使用贪婪算法,特别是带有回溯的贪婪算法,生成第二量子门序列102,所述第二量子门序列102是所述第一量子门序列101的子序列;步骤703,根据所述第二量子门序列102计算局部量子比特集103a和全局量子比特集103b;步骤704,生成量子门集群104集,其中,每个集群104包括通过使用贪婪算法合并在一起的所述第二量子门序列102的所述量子门的子集;步骤705,根据所述集群104的顺序生成第三量子门序列105,所述第三量子门序列105包含所述第二量子门序列102中的所有量子门;步骤706,将所述局部量子比特集103a和所述全局量子比特集103b提供给所述量子电路模拟器110;步骤707,将所述第三量子门序列105输出到所述量子电路模拟器110。

已经结合作为示例的不同实施例以及实现方式描述了本发明。但是,根据对附图、本发明和独立权利要求的研究,本领域技术人员在实践所要求保护的发明时,能够理解和实现其它变化。在权利要求书以及说明书中,词语“包括”不排除其它元件或步骤,且不定“一”、“一个”不排除多个。单个元件或其它单元可满足权利要求书中所叙述的若干实体或项目的功能。在互不相同的从属权利要求中列举某些措施并不表示这些措施的组合不能用于有益的实现方式。

23页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:用于量子位错误检测的方法和设备

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!