发明内容
本公开的目的是提供一种组合优化问题求解方法、装置、存储介质和电子设备,旨在提高对组合优化问题的求解效率和准确度。
为了实现上述目的,本公开实施例第一方面提供一种组合优化问题求解方法,所述方法包括:
获取待求解的组合优化问题的目标函数;
基于包含σz泡利算符的表达式对所述目标函数中的自变量进行变量代换;
在所述组合优化问题的求解目标为所述目标函数的最大值时,对所述变量代换后的目标函数取反,得到目标哈密顿量,在所述组合优化问题的求解目标为所述目标函数的最小值时,直接将所述变量代换后的目标函数作为目标哈密顿量;
获取所述目标哈密顿量的泡利校验矩阵和系数集合,所述泡利校验矩阵的行向量用于表征所述目标哈密顿量中所述σz泡利算符构成的泡利项;
基于所述泡利校验矩阵和所述系数集合计算所述目标哈密顿量对应基态的稳定子;
基于所述稳定子计算所述目标哈密顿量的基态能量,并基于所述基态能量得到所述目标函数的最大值或最小值。
可选地,所述基于所述泡利校验矩阵和所述系数集合计算所述目标哈密顿量对应基态的稳定子,包括:
从所述系数集合中选出绝对值最大的目标系数,并从所述泡利校验矩阵中选出对应所述目标系数的目标行向量;
在所述目标系数为正数时,将所述目标行向量取反后作为稳定子生成元,在所述目标系数为负数时,直接将所述目标行向量作为稳定子生成元;
更新所述泡利校验矩阵,以使得更新后的所述泡利校验矩阵中的行向量均与所述稳定子生成元互相线性无关,并相应更新所述系数集合;
在得到的所述稳定子生成元数量小于所述目标哈密顿量对应的量子比特数量,且泡利校验矩阵和对应系数集合仍有元素时,返回执行所述从所述系数集合中选出绝对值最大的目标系数,并从所述泡利校验矩阵中选出对应所述目标系数的目标行向量的步骤;
在得到的所述稳定子生成元数量等于所述目标哈密顿量对应的量子比特数量,或泡利校验矩阵和对应系数集合为空集时,将得到的所有所述稳定子生成元作为所述目标哈密顿量对应基态的稳定子。
可选地,所述组合优化问题包括多项式无约束二进制优化问题,所述目标函数为:
其中,为所述目标函数,x为自变量,J为系数,i1,…,ik为序号。
可选地,所述多项式无约束二进制优化问题包括二次无约束二进制优化问题和最大割问题。
可选地,所述基于包含σz泡利算符的表达式对所述目标函数中的自变量进行变量代换,包括:
基于表达式对所述目标函数中的自变量xi进行变量代换。
可选地,所述组合优化问题包括伊辛模型,所述目标函数为:
其中,为所述目标函数,s为自变量,J和h为系数,i,j为序号。
可选地,所述基于包含σz泡利算符的表达式对所述目标函数中的自变量进行变量代换,包括:
基于表达式Zi对所述目标函数中的自变量si进行变量代换。
本公开实施例第二方面提供一种组合优化问题求解装置,所述装置包括:
第一获取模块,用于获取待求解的组合优化问题的目标函数;
代换模块,用于基于包含σz泡利算符的表达式对所述目标函数中的自变量进行变量代换;
取反模块,用于在所述组合优化问题的求解目标为所述目标函数的最大值时,对所述变量代换后的目标函数取反,得到目标哈密顿量,在所述组合优化问题的求解目标为所述目标函数的最小值时,直接将所述变量代换后的目标函数作为目标哈密顿量;
第二获取模块,用于获取所述目标哈密顿量的泡利校验矩阵和系数集合,所述泡利校验矩阵的行向量用于表征所述目标哈密顿量中所述σz泡利算符构成的泡利项;
稳定子计算模块,用于基于所述泡利校验矩阵和所述系数集合计算所述目标哈密顿量对应基态的稳定子;
能量计算模块,用于基于所述稳定子计算所述目标哈密顿量的基态能量,并基于所述基态能量得到所述目标函数的最大值或最小值。
本公开实施例的第三方面,提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述第一方面中任一项所述方法的步骤。
本公开实施例的第四方面,提供一种电子设备,包括:
存储器,其上存储有计算机程序;
处理器,用于执行所述存储器中的所述计算机程序,以实现上述第一方面中任一项所述方法的步骤。
通过上述技术方案,获取待求解组合优化问题的目标函数后,利用包含σz泡利算符的表达式对所述目标函数进行变换,并根据组合优化问题的求解目标决定是否对变换后的目标函数取反,以得到目标哈密顿量,之后根据目标哈密顿量的泡利校验矩阵和系数集合计算目标哈密顿量的稳定子,并根据稳定子计算出基态能量,得到目标函数的最大值或最小值,完成对于组合优化问题的求解,通过将目标函数转化为目标哈密顿量,进而利用稳定子特性求解基态能量,以完成对于组合优化问题的求解,提高了求解的效率和准确度。
本公开的其他特征和优点将在随后的具体实施方式部分予以详细说明。
具体实施方式
以下结合附图对本公开的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本公开,并不用于限制本公开。
组合优化问题(COP)研究的是离散事件的最优编排、分组、次序或筛选等。其数学模型可描述为在一定约束条件下,寻找决策变量的取值,使得目标函数/>为最小(或最大)。
组合优化问题在现实生活中几乎无处不在。当前量子计算在这类问题中的应用主要通过两种途径:1)利用专用量子计算解决特定的优化问题。例如,通过量子退火和相干伊辛机解决二次无约束二进制优化(QUBO)问题。2)通过通用门电路上的变分算法解决一般的组合优化问题,例如变分算法中的量子近似优化算法(QAOA)。
当前量子计算正处于含噪中等规模(NISQ)时代,还需要一段时间才能最终实现通用容错计算。在这一时期,量子硬件的性能还不足以保证许多复杂量子算法的顺利执行,从而在一定程度上限制了量子计算的实用。在这一背景下,对介于经典和量子之间的各种准经典算法进行开发是大有益处的:从经典的角度来看,它表现为量子启发式算法,可以在经典算力上实现,并在一定程度上对经典算法有所改善和补充;从量子的角度看,它可以作为预处理步骤,为进一步的量子计算奠定基础。
基于此,本公开创造性的提出了一种量子启发式的准经典方法,将组合优化问题转化为基态能量的求解问题,以利用稳定子的特性实现对于组合优化问题的求解。
对于一般性的基态求解问题,我们可以从量子计算的视角加以审视。多量子比特态构成的希尔伯特空间是很大的。对于n量子比特体系,这一空间的维度是2n。这一方面是量子计算得以超越经典计算的理论基础,另一方面也给量子算法的具体实现带来了一定难度。考虑哈密顿量:
其中/>σi∈{I,X,Y,Z}
其中,H为哈密顿量,Pi为泡利项,c0和ci为系数,σi为泡利项中的算符,I为恒等算符,X为σx泡利算符,Y为σy泡利算符,Z为σz泡利算符。该哈密顿量中,每个泡利(Pauli)项Pi是作用在不同量子比特上的泡利算符σ的张量积通过计算哈密顿量的本征值,就可以得到能量。我们希望找到能量最低的态,也就是基态。由于整个希尔伯特空间很大,要直接找到基态是很困难的。例如,利用变分量子本征求解器(VQE)算法求解基态,常常会遇到所谓局部最小(local minimum)和贫瘠高原(barren plateau)问题。这些问题出现的原因之一就是,整个希尔伯特空间是指数维的,而哈密顿量中涉及的泡利项的集合R一般来说只是多项式大小的。为缓解这些问题,可以考虑先设法缩小希尔伯特空间,在一个特定的子空间中近似求解。例如,可以选择子空间为所谓“稳定子态”构成的空间。
首先对稳定子体系进行简单介绍。我们定义单量子比特的泡利群为:
G1≡{±I,±iI,±X,±iX,±Y,±iY,±Z,±iZ}
而n比特Pauli群则相应地定义为:
这里表示张量积。对于Gn的任意交换子群S,如果S不包含-I,我们可以定义一个子空间VS,使得:
我们称VS是被S稳定的空间,而S是空间VS的稳定子。对于有限群,我们常常用它的生成元来进行描述。于是,我们可以将S写成:
S=<s1,...,sl>
这里s1,...,sl是S的一组生成元。可以证明,如果S的独立生成元数目为l,则VS的维度为2n-l。在特殊情形l=n下,VS为1维空间,也就是由唯一的态组成。我们把这种态称作“稳定子态”。于是,对于特定的稳定子态,我们只需要找到n个独立的稳定子生成元就可以完整描述。
根据已知的研究,所有稳定子态在整个希尔伯特空间中是均匀分布的,因此,我们可以先在所有稳定子态构成的离散子空间中寻找哈密顿量的最低能量态。由于搜索空间大大缩小,求解难度在一定程度上降低了。同时,求得的稳定子态可以很接近真实基态。将这一过程应用于组合优化问题对应的基态求解,可以使得对于组合优化问题的求解更加高效和准确。
图1是根据一示例性实施例示出的一种组合优化问题求解方法的流程图,参见图1,该方法包括:
S101,获取待求解的组合优化问题的目标函数。
S102,基于包含σz泡利算符的表达式对所述目标函数中的自变量进行变量代换。
S103,在所述组合优化问题的求解目标为所述目标函数的最大值时,对所述变量代换后的目标函数取反,得到目标哈密顿量,在所述组合优化问题的求解目标为所述目标函数的最小值时,直接将所述变量代换后的目标函数作为目标哈密顿量。
S104,获取所述目标哈密顿量的泡利校验矩阵和系数集合,所述泡利校验矩阵的行向量用于表征所述目标哈密顿量中所述σz泡利算符构成的泡利项。
S105,基于所述泡利校验矩阵和所述系数集合计算所述目标哈密顿量对应基态的稳定子。
S106,基于所述稳定子计算所述目标哈密顿量的基态能量,并基于所述基态能量得到所述目标函数的最大值或最小值。
在步骤S101中,对于不同的组合优化问题,获取其相对应的目标函数。
可选地,在一些实施例中,所述组合优化问题包括多项式无约束二进制优化问题,所述目标函数为:
其中,为所述目标函数,x为自变量,J为系数,i1,…,ik为序号。
在很多组合优化问题中,目标函数的决策变量xi可以用二进制变量来表示。约束条件则常常可以通过拉格朗日乘子法转移到目标函数中,而最终的目标函数多表现为xi的多项式。于是我们得到了所谓多项式无约束二进制优化(PUBO)问题。对于PUBO问题,可以获取其对应的目标函数:
PUBO问题原则上可以通过引入辅助变量转换为QUBO问题求解,但这一过程往往比较繁琐,得到的目标函数也更加复杂。通过稳定子算法,可以直接求解PUBO问题,而无须借助QUBO。
在一些实施例中,多项式无约束二进制优化问题包括二次无约束二进制优化问题和最大割问题。
具体来讲,二次无约束二进制优化(QUBO,Quadratic Unconstrained BinaryOptimization)问题,是一种用于解决组合优化问题的数学模型,旨在对二进制变量序列xi,i=1,2,...,n,寻求其目标函数的极值。其中,x=(x1,x2,...,xn)为自变量,xT是x的转置,Q=(qij)n×n为系数矩阵。
最大割问题(Max-cut Problem),是图论中的一类组合优化问题,旨在对二进制变量序列xi,i=1,2,...,n,寻求其目标函数的最大值。这一函数的图论含义如下。对于n个顶点的图G,令wij为边(i,j)上的权。给每个顶点i赋一个值xi,用所有取值0的顶点构成集合U,取值1的顶点构成集合D。U和D之间的边集构成G的一个割。上述函数C(x)就是这个割的总权重。简而言之,最大割问题就是寻求图G的一个割,使得其权重最大。
QUBO问题和最大割问题均为特殊的PUBO问题,对于QUBO问题和最大割问题,可以直接获取其各自对应的上述目标函数。
可选地,在一些实施例中,组合优化问题包括伊辛模型,所述目标函数为:
其中,为所述目标函数,s为自变量,J和h为系数,i,j为序号。
伊辛模型(Ising model)是一种用于描述磁性物质行为的物理模型,可以定义在一个图/晶格上,在描述物理模型时,表示哈密顿量,si∈{-1,1},为自旋变量,Jij为边(i,j)上的耦合系数,hi为顶点系数。伊辛模型的求解目标是求得哈密顿量/>的最小值。伊辛模型除用来描述物理现象外,还被应用于经济、计算机等众多领域,以求解这些领域的部分组合优化问题。对应用于不同领域的伊辛模型,均可以获取哈密顿量/>作为其目标函数。
总体上看,最大割问题、二次无约束二进制优化问题以及伊辛模型有两处差异:
(1)变量取值不同。这可以通过变量代换si=1-2xi或来转化。
(2)一次项形式不同。这可以通过创建辅助变量来转化。
因此,这三类问题是完全等价的。人们通常利用QUBO表述对现实问题进行建模,用最大割表述进行算法分析,用伊辛表述进行物理实现。在一些实施方式中,也可以对这三类组合优化问题进行相互转化,对此本公开不作具体限制。
在一种可能的实施方式中,所述组合优化问题求解方法可以应用于超大规模集成电路(Very Large Scale Integration Circuit,VLSI)设计,在其瞬态路由(transientrouting)过程中,属于不同连接网络的导线可能会交叉,因此,某些导线必须在不同的电路板层上布线。为实现相应布线,需要在印刷电路板设计中放置过孔(via),在生产过程中,过孔会导致额外的工作,并经常导致电路板因裂纹而失效,且需要额外的空间,因此希望找到合适的电路板层分配,使得过孔的数量尽量少。
以包含两个电路板层的情况为例,假设所有连接网络恰好连接两个引脚,则每个连接网络只有一根导线,将每根导线划分为自由段(free segments)和关键段(criticalsegments),关键段对应于布局图G=(V,E)的节点集V,边集E包含两种边,分别为冲突边(conflict edge)和连续边(continuation edge),其中,当关键段i和j必须处于不同电路板层时,对应节点Vi和Vj通过冲突边连接;当关键段通过自由段连接时,对应节点Vi和Vj通过连续边连接。即E=A∪B,其中,A是冲突边的集合,B是连续边的集合。
对于G的子图H=(V,A),如果H是二分图(Bipartite Graph),则H可以分割成连通的二分图分支(bipartite components)(V1,A1)…(Vk,Ak)。一旦将分支(Vi,Ai)中的一个节点分配到一个电路板层,则Vi中所有其它节点的分配就都确定了。
进而可以将上述找到合适的电路板层分配,使得过孔的数量尽量少的问题转化为对应于图R的最大割问题,R=(W,F,C)。
对于图R=(W,F,C),节点集合W中的节点vi是从H的分支(Vi,Ai)中任意选定的代表节点;当且仅当G包含一条(连续)边连接Vi中的某个节点和Vj中的某个节点时,边集合F包含一条连接vi和vj的边(i,j),i≠j;C为cij的集合,cij=αij-βij,为边(i,j)的权重,其中,αij为vi和vj被分配到同一电路板层时,Vi和Vj之间必要的过孔数量,βij是vi和vj被分配到不同电路板层时,Vi和Vj之间必要的过孔数量,αij和βij容易通过对图G中连续边统计数量得到。
基于上述描述,可选地,组合优化问题求解方法应用于超大规模集成电路设计时,在步骤S101中,获取待求解的组合优化问题的目标函数,包括:
S1011,确定目标超大规模集成电路中目标电路板层的每一导线的关键段以及所述关键段的相连关系;
S1012,基于所述关键段和所述相连关系生成图H=(V,A),其中,V为作为节点的所述关键段的节点集合,A为冲突边的边集合,所述冲突边连接存在于不同电路板层的关键段节点;
S1013,在所述图H为二分图时,基于所述图H生成对应于所述超大规模集成电路设计中待求解最大割问题的有权无向图R=(W,F,C),其中,W、F和C分别为所述图R的节点集合、边集合和对应边的权重集合,W中的节点vi表示所述图H分割后的二分图分支(Vi,Ai),当Vi和Vj中的节点对应的关键段相连时,F包含一条连接vi和vj的边,权重集合C中的权重cij=αij-βij,cij为连接vi和vj的边的权重,αij为vi和vj被分配到相同电路板层时Vi和Vj之间必要的过孔数量,βij是vi和vj被分配到不同电路板层时Vi和Vj之间必要的过孔数量。
S1014,获取对应于所述图R的目标函数。
通过步骤S1011至步骤S1014,可以将超大规模集成电路设计的过孔数量最小化问题转化为对应于上述图R的最大割问题,其具体执行过程可以参见上述相关描述。
需要说明的是,在步骤S1011中,目标超大规模集成电路可以是待进行电路设计的超大规模集成电路,目标电路板层可以是待解决过孔数量最小化问题的电路板层,其可以是目标超大规模集成电路中的某两层电路板层,其中的每个连接网络可以仅包含一根导线。可以将每根导线划分为自由段和关键段,并确定关键段的相连关系。在步骤S1014中,可以直接将图R中的节点作为目标函数的自变量,将图R中的权重作为目标函数中对应自变量的权重,进而得到相应最大割问题的目标函数。
在一些实施例中,本公开的组合优化问题求解方法还可以用于求解旅行商问题(TSP)、物流线路优化、拣货线路优化、生产排程优化等技术领域,对此本公开不做具体限制。
在步骤S102中,为将目标函数转化为泡利项之和的形式,先利用包含σz泡利算符的表达式对目标函数中对应的自变量进行变量代换。
举例来讲,对于PUBO问题,包括上述最大割问题及QUBO问题,基于包含σz泡利算符的表达式对所述目标函数中的自变量进行变量代换,包括:
基于表达式对所述目标函数中的自变量xi进行变量代换。
其中,Zi表示σz泡利算符。
对于PUBO问题的上述目标函数,利用替换目标函数中的自变量/>对于最大割问题及QUBO问题的上述目标函数,利用/>替换其目标函数中的自变量xi。
对于伊辛模型,基于包含σz泡利算符的表达式对所述目标函数中的自变量进行变量代换,包括:
基于表达式Zi对所述目标函数中的自变量si进行变量代换。
其中,Zi表示σz泡利算符。具体来讲,对于伊辛模型的上述目标函数,利用Zi替换其目标函数中的si。
以最大割问题的目标函数为例,对于其目标函数对其做变量代换:
可以得到:
在步骤S103中,根据组合优化问题的求解目标决定是否对变量代换后的目标函数取反。若组合优化问题的求解目标是为了得到目标函数的最大值,则对变量代换后的目标函数取反,即对其整体乘上一个负号,得到目标哈密顿量,以便于后续求解其基态能量,若其求解目标是为了得到目标函数的最小值,则无需进行取反操作,直接将变量代换后的目标函数作为目标哈密顿量。
沿用前述例子,由于最大割问题的求解目标为其目标函数的最大值,因此对其变量代换后的目标函数取反,整体乘上一个负号,得到目标哈密顿量:
在步骤104中,泡利校验矩阵可以看做多个行向量的集合,每个行向量用于表示目标哈密顿量中对应的一个泡利项,例如上述最大割问题对应的目标哈密顿量表达式中ZiZj构成的泡利项。系数集合可以为目标哈密顿量中的泡利项的权重系数wij/2构成的集合。获取系数集合可以直接按照一定的规则从目标哈密顿量的表达式中获取。
可选地,在步骤S104中,获取所述目标哈密顿量的泡利校验矩阵,包括:
S1041,获取所述目标哈密顿量的泡利项集合;
S1042,针对所述泡利项集合中每个泡利项,基于σz泡利算符对应的向量[1|0]确定该泡利项对应的校验行向量;
S1043,基于所述校验行向量得到泡利校验矩阵。
在步骤S1041中,获取目标哈密顿量中的每一个泡利项构成的泡利项集合,其每个泡利项均由一个或多个σz泡利算符构成。
获取泡利项集合后,进入执行步骤S1042。为便于后续步骤计算稳定子,验证稳定子生成元之间互相独立的性质,人们在利用稳定子体系构造纠错码的过程中发展了稳定子的另一种表示方式,这就是“校验矩阵”。在这一表示中,单个σz泡利算符用一个两比特的行向量[1|0]来表示,对于n个σz泡利算符的张量积,只需要将行向量推广到2n比特使得[mj|mj+n]表示第j位的σz泡利算符,对于目标函数转化而来的目标哈密顿量,由于其泡利项仅包含σz泡利算符,因此mj为1,mj+n为0。因此对于泡利项集合中的泡利项,可以基于σz泡利算符对应的向量[1|0]确定其对应的校验行向量。例如对于泡利项Z1Z2,确定其对应的校验行向量为[11|00]。
确定校验行向量后,进入执行步骤S1043。在步骤S1043中,可以将校验行向量按照其对应的泡利项在哈密顿量中的顺序排列得到泡利校验矩阵。
可选地,在步骤S105中,基于所述泡利校验矩阵和所述系数集合计算所述目标哈密顿量对应基态的稳定子,包括:
S1051,从所述系数集合中选出绝对值最大的目标系数,并从所述泡利校验矩阵中选出对应所述目标系数的目标行向量;
S1052,在所述目标系数为正数时,将所述目标行向量取反后作为稳定子生成元,在所述目标系数为负数时,直接将所述目标行向量作为稳定子生成元;
S1053,更新所述泡利校验矩阵,以使得更新后的所述泡利校验矩阵中的行向量均与所述稳定子生成元互相线性无关,并相应更新所述系数集合;
S1054,在得到的所述稳定子生成元数量小于所述目标哈密顿量对应的量子比特数量,且泡利校验矩阵和对应系数集合仍有元素时,返回执行所述从所述系数集合中选出绝对值最大的目标系数,并从所述泡利校验矩阵中选出对应所述目标系数的目标行向量的步骤;
S1055,在得到的所述稳定子生成元数量等于所述目标哈密顿量对应的量子比特数量,或泡利校验矩阵和对应系数集合为空集时,将得到的所有所述稳定子生成元作为所述目标哈密顿量对应基态的稳定子。
在步骤S1051中,确定系数集合中绝对值最大的目标系数,然后将该目标系数从系数集合中选出,即选择该目标系数后,将该目标系数从系数集合中取出,也即将目标系数从系数集合中删除。此外,从泡利校验矩阵中选出对应目标系数的目标行向量,然后将目标行向量从泡利校验矩阵中删除。即目标系数为目标行向量对应的泡利项在目标哈密顿量中的系数。
选出目标系数后,可以进入执行步骤S1052,在步骤S1052中,判断目标系数的正负情况,若目标系数为正数,则将目标行向量取反即整体乘以-1后作为稳定子生成元,若目标系数为负数,则直接将目标行向量作为稳定子生成元。例如,若绝对值最大的目标系数为wij,如果wij>0,可以选择稳定子生成元-ZiZj,如果wij<0,可以选择稳定子生成元ZiZj。
在步骤S1053中,对泡利校验矩阵进行更新,得到更新后的泡利校验矩阵,使得更新后的泡利校验矩阵中的每个行向量都与稳定子生成元互相独立即线性无关。并根据对泡利校验矩阵的更新方式,相应的更新系数集合。由于转化后的目标哈密顿量中只有Pauli算符Z出现,所有项都是对易的,在求解过程中无需检验稳定子的对易性。这也是问题的经典性质的体现。
可选地,在步骤S1053中,更新所述泡利校验矩阵,以使得更新后的所述泡利校验矩阵中的行向量均与所述稳定子生成元互相线性无关,并相应更新所述系数集合,包括:
基于高斯消元法或施密特正交化对所述泡利校验矩阵进行变换,以消去所述泡利校验矩阵中与所述稳定子生成元线性相关的行向量,并相应更新所述系数集合。
具体来讲,高斯消元法(Gaussian elimination)通过对泡利校验矩阵进行初等行变换,将泡利校验矩阵转换为简化行阶梯形式,在变换过程中,可以合并同类项,消去泡利校验矩阵中与稳定子生成元互相线性相关的行向量。相应地,对系数集合中的系数进行更新,以保持原本与行向量的对应关系。
施密特正交化(Schmidt orthogonalization)是求欧氏空间正交基的一种方法,通过施密特正交化对泡利校验矩阵进行初等行变换,将泡利校验矩阵的行向量按照特定的方式转换为另一组相互正交的向量,在变换过程中,可以消去泡利校验矩阵中与稳定子生成元互相线性相关的行向量,即对于当前得到的所有稳定子生成元张成的子空间,若泡利校验矩阵中存在行向量位于该子空间,则将该行向量消去。相应地,对系数集合中的系数进行更新,以保持原本与行向量的对应关系。
可选地,若基于施密特正交化对所述泡利校验矩阵进行变换,所述基于施密特正交化对所述泡利校验矩阵进行变换,以消去所述泡利校验矩阵中与所述稳定子生成元线性相关的行向量,并相应更新所述系数集合,包括:
基于如下公式对所述泡利校验矩阵进行变换以及对所述系数集合进行更新,以消去所述泡利校验矩阵中与所述稳定子生成元线性相关的行向量:
其中,表示已得到的稳定子生成元; 表示泡利校验矩阵中的行向量对应的泡利项; 和/>分别表示/>Pj和Pk中第r个泡利矩阵;/>为基于泡利校验矩阵中的行向量对应的泡利项Pi original得到稳定子生成元/> 的系数,ci为Pi original的系数。Pi original也即/>公式中的Pi。
通过上述方式就可以实现对于泡利校验矩阵的变换,并同时对系数进行更新,需要说明的是,更新的系数包含对应于Pj的原系数cj、选择时的正负性l。
高斯消元法和施密特正交化变换前后的向量组等价,在其它可能的实施方式中,也可以采取类似的等价变换方式,对此本公开不做具体限制。
步骤S1053执行完成后,根据得到的稳定子生成元的数量决定进入执行步骤S1054或步骤S1055。
在步骤S1054中,判断稳定子生成元数量与目标哈密顿量对应的量子比特数量n的大小关系,若稳定子生成元数量小于n,且泡利校验矩阵和对应系数集合仍有元素时,则还无法根据得到的所有稳定子生成元确定基态能量,此时可以返回步骤S1051,进入下一次迭代过程,重新执行步骤S1051及后续相关步骤。需要说明的是,泡利校验矩阵可视为校验行向量的集合,故泡利校验矩阵中的元素为校验行向量。
在步骤S1055中,随着相关步骤的多次迭代执行,稳定子生成元的数量逐渐增加,泡利校验矩阵和对应系数集合中的元素逐渐减少,当稳定子生成元的数量达到量子比特数量n,或者泡利校验矩阵和对应系数集合为空集时,将得到的所有稳定子生成元作为对应于目标分子基态的稳定子,以进入执行步骤S106。
在步骤S106中,基于所述稳定子计算所述目标哈密顿量的基态能量,可以包括:
基于如下公式计算所述目标量子体系的基态能量:
其中,E为所述基态能量,c0是所述目标哈密顿量中仅由恒等算符构成的项的系数,为第k个稳定子生成元被选中时的实时系数。
具体来讲,可以在每次得到稳定子生成元时,记录稳定子生成元对应的系数,当得到所有n个稳定子生成元后,计算所有系数的绝对值之和,然后再用目标哈密顿量中仅由恒等算符构成的项的系数减去该绝对值之和,即可得到基态能量。由于得到的稳定子对应的稳定子态很接近真实基态,该基态能量也接近真实基态能量,准确度较高。
求得基态能量后,可以根据基态能量计算目标函数的最大值或最小值,以完成对于组合优化问题的求解,具体来讲,在步骤S106中,基于所述基态能量得到所述目标函数的最大值或最小值,包括:
在所述组合优化问题的求解目标为所述目标函数的最大值时,对所述基态能量取反,得到所述目标函数的最大值,在所述组合优化问题的求解目标为所述目标函数的最小值时,直接将所述基态能量作为目标函数的最小值。
通过上述技术方案,获取待求解组合优化问题的目标函数后,利用包含σz泡利算符的表达式对所述目标函数进行变换,并根据组合优化问题的求解目标决定是否对变换后的目标函数取反,以得到目标哈密顿量,之后根据目标哈密顿量的泡利校验矩阵和系数集合计算目标哈密顿量的稳定子,并根据稳定子计算出基态能量,得到目标函数的最大值或最小值,完成对于组合优化问题的求解,通过将目标函数转化为目标哈密顿量,进而利用稳定子特性求解基态能量,以完成对于组合优化问题的求解,提高了求解的效率和准确度。
相关技术中,利用某些方法如变分量子本征求解器(VQE)算法求解基态时,常常会遇到所谓局部最小(local minimum)和贫瘠高原(barren plateau)问题。而本公开的技术方案求解基态时直接从哈密顿量出发去寻找稳定子生成元,可以完全避免变分电路中的贫瘠高原困境,并在很大程度上缓解其局部最小问题。并且由于利用了泡利算符的量子编码来进行运算,算法较为高效。
SG算法是Sahni与Gonzalez最早于1976年提出的一个启发式算法,对于SG算法来说,在实用中,SG算法的性能非常一般,所以人们对其做了很多不同的改进。其中一种改进的版本被称为SG3。
以求解最大割问题为例,考察本公开的方法在实际应用中的性能。我们选择旅行商问题(Travelling salesman problem,TSP)库中的一些实例图进行求解,然后与其它算法的结果进行比较。首先我们比较本公开方法与SG3算法的结果,如下表1(表1示出本公开方法与SG3算法在一些TSP实例上的计算结果对比,表1中,“稳定子割权”表示本公开方法对应的割权,“稳定子割率”表示本公开方法对应的割率):
表1
实例名 |
顶点数 |
总权重 |
稳定子割权 |
稳定子割率 |
SG3割率 |
gr17 |
17 |
37346 |
24986 |
0.669 |
0.669 |
bayg29 |
29 |
66313 |
42693 |
0.644 |
0.564 |
hk48 |
48 |
1153784 |
771712 |
0.669 |
0.669 |
berlin52 |
52 |
762783 |
470726 |
0.617 |
0.617 |
brazil58 |
58 |
3523646 |
2208793 |
0.627 |
0.564 |
可以看出,在表中给出的5个实例中,本公开方法全都不落下风,并且在其中的两个实例(bayg29与brazil58)上显著优于SG3算法,具有显著的进步。
此外,将本公开的方法与其他算法(C-GRASP,LS,circuit)进行对比,结果见下表2(表2示出本公开方法与某些算法在一些TSP实例上的计算结果对比),可以发现本公开的方法在一些实例中具有一定优势。
表2
实例名 |
顶点数 |
C-GRASP割权 |
LS割权 |
circuit割权 |
稳定子割权 |
最优割权 |
gr17 |
17 |
24986 |
24986 |
24986 |
24986 |
24986 |
dantzig42 |
42 |
42638 |
42638 |
42638 |
42638 |
42638 |
gr48 |
48 |
320277 |
320277 |
320277 |
320277 |
320277 |
hk48 |
48 |
771712 |
771712 |
771712 |
771712 |
771712 |
kroA100 |
100 |
5897368 |
5897368 |
5897368 |
5897392 |
5897392 |
kroB100 |
100 |
5763020 |
5763020 |
5763020 |
5763047 |
5763047 |
kroC100 |
100 |
5890745 |
5890745 |
5890745 |
5890760 |
5890760 |
kroD100 |
100 |
5463250 |
5463250 |
5463250 |
5463250 |
5463250 |
kroE100 |
100 |
5986587 |
5986587 |
5986587 |
5986591 |
5986591 |
图2是根据一示例性实施例示出的一种组合优化问题求解装置的框图,如图2所述,该装置200包括:
第一获取模块210,用于获取待求解的组合优化问题的目标函数;
代换模块220,用于基于包含σz泡利算符的表达式对所述目标函数中的自变量进行变量代换;
取反模块230,用于在所述组合优化问题的求解目标为所述目标函数的最大值时,对所述变量代换后的目标函数取反,得到目标哈密顿量,在所述组合优化问题的求解目标为所述目标函数的最小值时,直接将所述变量代换后的目标函数作为目标哈密顿量;
第二获取模块240,用于获取所述目标哈密顿量的泡利校验矩阵和系数集合,所述泡利校验矩阵的行向量用于表征所述目标哈密顿量中所述σz泡利算符构成的泡利项;
稳定子计算模块250,用于基于所述泡利校验矩阵和所述系数集合计算所述目标哈密顿量对应基态的稳定子;
能量计算模块260,用于基于所述稳定子计算所述目标哈密顿量的基态能量,并基于所述基态能量得到所述目标函数的最大值或最小值。
可选地,所述稳定子计算模块250还用于:
从所述系数集合中选出绝对值最大的目标系数,并从所述泡利校验矩阵中选出对应所述目标系数的目标行向量;
在所述目标系数为正数时,将所述目标行向量取反后作为稳定子生成元,在所述目标系数为负数时,直接将所述目标行向量作为稳定子生成元;
更新所述泡利校验矩阵,以使得更新后的所述泡利校验矩阵中的行向量均与所述稳定子生成元互相线性无关,并相应更新所述系数集合;
在得到的所述稳定子生成元数量小于所述目标哈密顿量对应的量子比特数量,且泡利校验矩阵和对应系数集合仍有元素时,返回执行所述从所述系数集合中选出绝对值最大的目标系数,并从所述泡利校验矩阵中选出对应所述目标系数的目标行向量的步骤;
在得到的所述稳定子生成元数量等于所述目标哈密顿量对应的量子比特数量,或泡利校验矩阵和对应系数集合为空集时,将得到的所有所述稳定子生成元作为所述目标哈密顿量对应基态的稳定子。
可选地,所述组合优化问题包括多项式无约束二进制优化问题,所述目标函数为:
其中,为所述目标函数,x为自变量,J为系数,i1,…,ik为序号。
可选地,所述多项式无约束二进制优化问题包括二次无约束二进制优化问题和最大割问题。
可选地,所述代换模块220还用于:
基于表达式对所述目标函数中的自变量xi进行变量代换。
可选地,所述组合优化问题包括伊辛模型,所述目标函数为:
其中,为所述目标函数,s为自变量,J和h为系数,i,j为序号。
可选地,所述代换模块220还用于:
基于表达式Zi对所述目标函数中的自变量si进行变量代换。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
图3是根据一示例性实施例示出的一种电子设备的框图。如图3所示,该电子设备700可以包括:处理器701,存储器702。该电子设备700还可以包括多媒体组件703,输入/输出(I/O)接口704,以及通信组件705中的一者或多者。
其中,处理器701用于控制该电子设备700的整体操作,以完成上述的组合优化问题求解方法中的全部或部分步骤。存储器702用于存储各种类型的数据以支持在该电子设备700的操作,这些数据例如可以包括用于在该电子设备700上操作的任何应用程序或方法的指令,以及应用程序相关的数据,例如联系人数据、收发的消息、图片、音频、视频等等。该存储器702可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,例如静态随机存取存储器(Static Random Access Memory,简称SRAM),电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,简称EEPROM),可擦除可编程只读存储器(Erasable Programmable Read-Only Memory,简称EPROM),可编程只读存储器(Programmable Read-Only Memory,简称PROM),只读存储器(Read-Only Memory,简称ROM),磁存储器,快闪存储器,磁盘或光盘。多媒体组件703可以包括屏幕和音频组件。其中屏幕例如可以是触摸屏,音频组件用于输出和/或输入音频信号。例如,音频组件可以包括一个麦克风,麦克风用于接收外部音频信号。所接收的音频信号可以被进一步存储在存储器702或通过通信组件705发送。音频组件还包括至少一个扬声器,用于输出音频信号。I/O接口704为处理器701和其他接口模块之间提供接口,上述其他接口模块可以是键盘,鼠标,按钮等。这些按钮可以是虚拟按钮或者实体按钮。通信组件705用于该电子设备700与其他设备之间进行有线或无线通信。无线通信,例如Wi-Fi,蓝牙,近场通信(Near FieldCommunication,简称NFC),2G、3G、4G、NB-IOT、eMTC、或其他5G等等,或它们中的一种或几种的组合,在此不做限定。因此相应的该通信组件705可以包括:Wi-Fi模块,蓝牙模块,NFC模块等等。
在一示例性实施例中,电子设备700可以被一个或多个应用专用集成电路(Application Specific Integrated Circuit,简称ASIC)、数字信号处理器(DigitalSignal Processor,简称DSP)、数字信号处理设备(Digital Signal Processing Device,简称DSPD)、可编程逻辑器件(Programmable Logic Device,简称PLD)、现场可编程门阵列(Field Programmable Gate Array,简称FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述的组合优化问题求解方法。
在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,该程序指令被处理器执行时实现上述的组合优化问题求解方法的步骤。例如,该计算机可读存储介质可以为上述包括程序指令的存储器702,上述程序指令可由电子设备700的处理器701执行以完成上述的组合优化问题求解方法。
以上结合附图详细描述了本公开的优选实施方式,但是,本公开并不限于上述实施方式中的具体细节,在本公开的技术构思范围内,可以对本公开的技术方案进行多种简单变型,这些简单变型均属于本公开的保护范围。
另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合,为了避免不必要的重复,本公开对各种可能的组合方式不再另行说明。
此外,本公开的各种不同的实施方式之间也可以进行任意组合,只要其不违背本公开的思想,其同样应当视为本公开所公开的内容。