掌桥专利:专业的专利平台
掌桥专利
首页

迭代量子退火

文献发布时间:2024-04-18 20:02:18


迭代量子退火

技术领域

本发明涉及迭代量子退火。

背景技术

除非本文另有指示,否则本节中描述的方法不是本申请中权利要求的现有技术,并且不因包含在本节中而被承认是现有技术。

量子计算方法利用量子力学行为来执行某些操作。例如,量子计算可以用于执行优化。

发明内容

实施例实现迭代量子退火以提供优化的解。退火引擎位于量子退火器(或数字退火器、模拟退火器或经典解算器)的上游。退火引擎被配置为处理原始二次无约束二元优化(Quadratic Unconstrained Binary Optimization,QUBO)模型的初始解,从而构造第二QUBO模型。然后,将第二模型馈送到量子退火器,量子退火器返回计算的解。退火引擎根据计算的解和第二QUBO模型来构造中间解。如果退火引擎确定中间解满足停止标准,则据此构造最终解。如果退火引擎确定不满足停止标准,则用中间解覆写第二QUBO模型,以形成针对QUBO模型创建、量子退火和停止标准的满足评估的另一次迭代的基础。

以下详细描述和附图提供了对各种实施例的性质和优点的更好理解。

附图说明

图1示出了根据实施例的系统的简化图。

图2示出了根据实施例的方法的简化流程图。

图3示出了根据示例的系统的概况。

图4示出了根据实施例的被配置为实现迭代量子退火的专用计算机器的硬件。

图5示出了示例计算机系统。

具体实施方式

本文描述了实现迭代量子退火的方法和装置。在下面的描述中,为了解释的目的,阐述了许多示例和具体细节,以便提供对根据本发明的实施例的透彻理解。然而,对于本领域技术人员清楚的是,由权利要求定义的实施例可以仅包括这些示例中的一些或所有特征,或者这些示例中的一些或所有特征与下述的其他特征的组合,并且还可以包括本文描述的特征和概念的修改和等同物。

量子计算的一种类型是量子退火。量子退火是一种优化过程,其利用量子力学的性质来寻找二次无约束二元优化(QUBO)的全局最小值:

针对矩阵

由于QUBO的表示以及与Ising模型的密切关系,因此将QUBO用作事实上的用于量子退火的标准接口。

量子退火可以提供高达经典方法的指数速度。如在实践中实现的,量子退火可以被认为是一种启发式方法。也就是说,量子退火提供了一个有价值的解,但可能不能保证是最佳的。

量子退火不支持热启动。也就是说,量子退火不接受初始解并进一步改进它。相反,量子退火从零开始。这种缺乏对热启动的支持可能在尝试将经典方法或程序与量子退火进行组合时引起问题。

此外,人们不能迭代地应用量子退火来解决组合优化问题。这可能不利地约束量子退火的使用和应用。

为了避免这些问题并使量子退火更有用,实施例导出了用量子退火和初始解求解量子粒子的迭代方法。具体地,在给定初始解的情况下,实施例构造了用量子退火计算当前解的增量的QUBO。然后,可以迭代地使用该程序,并且将其与经典方法或程序进行组合。

图1示出了根据实施例的被配置为实现迭代量子退火的示例系统的简化视图。具体地,系统100包括退火引擎102,退火引擎102被配置为读取104可从一个或多个源106获得的选定的数据105。

退火引擎与可以包括数据库108的非暂时性计算机可读存储介质进行通信。该存储介质可以接收和保留由退火引擎从源读取的数据。

在某些实施例中,退火引擎可以参考该存储的数据,以便构造110原始优化模型112。对于QUBO模型的情况,矩阵可以由引擎来构造。

虽然图1示出了引擎构造原始优化模型,但是这不是必需的。根据某些实施例,已经存在的原始优化模型可以是可获得的,用于从源进行读取和用于在存储介质中保留。

已经从源中选择和读取的所存储的数据也可以用于构造114优化的初始解116。然而,同样在替代实施例中,初始解可能已经是可从源获得的,用于由退火引擎导入和参考(而不是被构造)。

基于原始优化模型和初始解,构造120新QUBO模型118。下面详细描述QUBO模型的这种构造。

然后,将构造的新模型发送122到量子退火器124进行处理126。量子退火器可以采取各种形式。

量子退火器可以是专用硬件。数字退火器和经典解算器(例如,Gurobi优化器)也是可能的。替代地,程序可以实现模拟量子退火。

量子退火器基于量子力学行为(实际的和/或模拟的)来执行QUBO。然后,量子退火器将其计算的解130发送128回退火引擎。

退火引擎根据初始解和由量子退火器返回的计算的解来构造131第一中间解132。然后将第一中间解写入134存储介质。

然后,退火引擎确定135新模型生成的另一次迭代是否适当。也就是说,第一中间解可能是可接受的,或者可能被进一步改进。

退火引擎关于是否执行新模型生成的另一次迭代的决定可以参考136一个或多个停止标准137。停止标准的示例可以包括但不限于以下各项中的一个或多个:

·(固定的)迭代次数;

·时间限制;

·无进展条款(例如,包括解质量)。

如果确定不应进一步改进该解,则不用量子退火器进行进一步迭代。退火引擎构造138最终解139进行存储。

更具体地,由量子退火器返回的第一计算解以及据此构造的解可以是数学形式的(例如,向量)。相比之下,根据该解而生成的最终解可以表示用户可理解的关于优化的参数。

在下面的示例中进一步讨论对此的说明,其涉及车辆配送路线的优化。虽然由量子退火器返回的计算的解可以是数学向量的形式,但是最后返回给用户140(应用或人)的最终解可以是优化的地理车辆路线(物理位置和连接它们的道路)的形式。

退火引擎可以确定应该改进第一中间解。在这些情况下,退火引擎参考第一构造解(其可能已经取代了初始解,例如通过在存储介质中覆写初始解来取代初始解)来执行模型生成的另一次迭代142。

在下一次迭代期间,退火引擎根据最新构造的解和根据原始模型来构造用于量子退火的最新模型。该最新模型再次被转发到量子退火器进行处理。

将所得的第二计算解返回到退火引擎进行处理(另一个新解的构造、进一步的迭代确定)。这种迭代可以继续,直到最后(例如,由量子退火器参考停止标准)做出决定来构造最终解以传送给用户。

图2是根据实施例的方法200的流程图。在202,读取包括第一矩阵的原始的第一二次无约束二元优化(QUBO)模型。

在204,根据第一QUBO模型和初始解来构造包括第二矩阵的第二QUBO模型。在206,将第二QUBO模型发送到量子退火器;

在208,响应于发送第二QUBO模型而从量子退火器接收第一计算解。在210,根据初始解和第一计算解来构造第一中间解。

在212,将第一中间解存储在非暂时性计算机可读存储介质中。在214,参考停止标准来确定是否应该执行迭代。

如果要执行另一次迭代,则该方法返回216至204,以根据原始模型和最新解来构造另一个新模型。如果确定不执行迭代,则在218,根据最新解来构造最终解。

现在结合以下推导来提供根据各种实施例的关于迭代量子退火的进一步细节。

首先,为了简单起见,让我们介绍一下模2加法:

其中/>

现在,针对由以下矩阵定义的QUBO:

设x∈{0,1}

那么,针对任何y∈{0,1}

该优化问题可以变换成QUBO。也就是说,存在

我们现在将构造矩阵

由于z

因此,

现在,设

那么,

总之,针对给定的y和

为了简单起见,我们引入函数:

该函数基于给定的矩阵和解向量来构造新矩阵。

在给定已经引入的符号的情况下,函数T将Q和y映射到

此外,针对

即,a:=α(Q)是退火过程的解。

用于迭代退火的方法的实施例现在可以陈述如下。

给定

输出

方法

1.构造

2.应用量子退火Δx←α(Q

3.如果

4.前往1或返回x

当使用零向量x=0

在上面的4.中,没有规定何时前往1.或返回x。可能的停止标准的示例包括但不限于:

·固定的迭代次数,

·时间限制,或者

·无进展条款。

当选择x≠0

示例

现在结合容量受限的车辆路线选择问题来描述执行迭代量子退火的实施例的示例。这假设可从德国Walldorf的SAP SE获得的软件程序负责寻找用于移动包裹的最佳路线。

具体地,有几个客户,每个客户都有一定数量的他们想要领取的包裹。此外,还有一个现存的卡车车队,每个卡车都有一定的容量。

容量受限的车辆路线选择问题的目标是在不使卡车超载的同时使行进时间或距离最小化的情况下领取所有包裹。

图3示出了根据示例的系统300的概况。这里,卡车的数量和它们相应的容量是已知的。这些值对于SAP计算机应用302来说可以是可从第一源304(例如,SAP系统1)获得的。

SAP应用还可以访问:

·客户;

·客户位置;

·客户需求;

·从一个客户到另一个客户的距离和/或行进时间。

这些值可从不同的源306(例如,SAP系统2)获得。可从各种源获得的数据307可以一起用于构造QUBO模型。

在该示例中,初始解308可以是前一天的卡车路线,并且也被保存在一个或几个SAP系统中。也就是说,前一天的路线应该是信息丰富的,因为预计配送情况不会每天都显著改变。

注意,可以使用不同类型的初始解。例如,更短的先前路线可用作更长的路线的初始解的参考。

QUBO模型310表示将通过量子退火解决的优化问题。在给定初始解的情况下,实施例可以将该解转化成卡车随后可以执行的实际路线。

如图3所示,用户312(SAP用户或系统)基于对确定当天的卡车路线的兴趣,开始314如下所述的程序1.-8.。

1.从SAP系统和附加的源315中,选择用于构造QUBO模型的数据316。由运行SAP应用的计算设备318读取317该数据。

2.利用在1中选择的数据,构造表示QUBO模型的矩阵Q。

3.从SAP系统和/或附加的源中,选择用于构造初始解的数据320。由运行应用的计算设备读取该数据。

4.利用在3中选择和读取的数据,构造表示QUBO模型的初始解x

5.然后,根据2处的原始模型和4处的初始解来构造新QUBO模型322。因此,矩阵

注意:在上面给出的数学推导中,x

因此,根据实施例,初始解在每次迭代中被中间解覆写。在程序结束产生最终解时,中间解本身被覆写(或不被覆写)。

6.然后,将在5.中构造的QUBO模型发送324到量子退火器326。也就是说,将QUBO模型从计算设备(其上运行有SAP应用)发送到负责管理量子退火器的计算设备。

量子退火器运行由矩阵

7.在330,设

例如,如果第i个条目是1(Δx

x

因此,如果(x

根据当前的示例,假设在一条路线中,客户a被客户b接替,并且客户c被客户d接替。现在,Δx告知路线不应是从a到b和从c到d,而是从a到d和从c到b。

这将对应于四(4)次位翻转:

·两(2)次用于取消选择从a到b和从c到d,以及

·两(2)次用于选择从a到d和从c到b。

现在可以做出决定解x是否为最终解,或者解x是否应该被进一步改进。这可以是基于一个或多个停止标准,例如,·固定的迭代次数、·时间限制和/或·无进展条款。

如果解应该被进一步改进,则在332,系统回到步骤5。在这些情况下,将x

然而,如果断定x是最终解,则程序移动334到下面的8。

8.最后,在336,将(数学)最终解x转换成车辆的实际路线选择。将该路线选择传送338给用户。

现在返回到图1,其中描述了引擎位于数据库外部的特定实施例。然而,这不是必需的。

相反,替代实施例可以利用内存数据库引擎(例如,可从SAP SE获得的HANA内存数据库的内存数据库引擎)的处理能力,以便执行各种功能。这些功能的示例可以包括但不限于以下各项中的一个或多个:

·存储从源读取的数据;

·构造初始解;

·构造原始模型;

·根据初始解和计算的解来构造新模型;

·构造最终解;

·存储停止标准所参考的(例如,时间、迭代、解质量和/或条款)信息。

因此,图4示出了根据实施例的被配置为执行迭代量子退火的专用计算机器的硬件。具体地,计算机系统401包括处理器402,处理器402与包括数据库403的非暂时性计算机可读存储介质进行电子通信。该计算机可读存储介质上存储有与退火引擎相对应的代码405。代码对应于解404。代码可以被配置为参考存储在非暂时性计算机可读存储介质的数据库中的数据,例如该数据可以存在于本地或存在于远程数据库服务器中。软件服务器一起可以形成用软件程序编程的计算机系统的集群或逻辑网络,这些计算机系统彼此通信并且一起工作以便处理请求。

鉴于主题的上述实施方式,本申请公开了以下示例列表,其中,单独的一个示例的一个特征或所述示例的一个以上特征的组合以及可选的与一个或多个其他示例的一个或多个特征的组合是也落在本申请的公开内容内的其他示例:

示例1:计算机实现的系统和方法包括:

读取包括第一矩阵的第一二次无约束二元优化(QUBO)模型;

根据第一QUBO模型和初始解来构造包括第二矩阵的第二QUBO模型;

将第二QUBO模型发送到量子退火器;

响应于发送第二QUBO模型而从量子退火器接收第一计算解;

根据初始解和第一计算解来构造第一中间解;以及

将第一中间解写入非暂时性计算机可读存储介质。

示例2:如示例1所述的计算机实现的系统和方法还包括:

将第一中间解变换成最终解;以及

将最终解传送给用户。

示例3:如示例1或2所述的计算机实现的系统和方法还包括:

确定第一中间解不满足停止标准;

根据第二QUBO模型和第一中间解来构造第三QUBO模型;

将第三QUBO模型发送到量子退火器;

响应于发送第三QUBO模型而从量子退火器接收第二计算解;

根据初始解和第二计算解来构造第二中间解;以及

用第二中间解覆写第一中间解。

示例4:如示例3所述的计算机实现的系统和方法,其中,停止标准包括迭代次数和时间限制中的至少一个。

示例5:如示例3或4所述的计算机实现的系统和方法还包括:

确定第一中间解的解质量,

其中,停止标准包括参考解质量的无进展条款。

示例6:如示例1、2、3、4或5所述的计算机实现的系统和方法还包括根据从源读取的数据来构造初始解。

示例7:如示例1、2、3、4、5或6所述的计算机实现的系统和方法还包括根据从源读取的数据来构造第一QUBO模型。

示例8:如示例1、2、3、4、5、6或7所述的计算机实现的系统和方法,其中,量子退火器包括数字退火器、模拟退火器和经典解算器中的至少一个。

示例9:如示例1、2、3、4、5、6、7或8所述的计算机实现的系统和方法,其中:

内存数据库的内存数据库引擎根据第一QUBO模型和初始解来构造第二QUBO模型;并且

非暂时性计算机可读存储介质包括内存数据库。

图5中示出了示例计算机系统500。计算机系统510包括总线505或用于传送信息的其他通信机制以及与总线505耦合的用于处理信息的处理器501。计算机系统510还包括耦合到总线505的存储器502,用于存储将由处理器501执行的信息和指令,包括例如用于执行上述技术的信息和指令。该存储器还可以用于在执行将由处理器501执行的指令期间存储变量或其他中间信息。这种存储器的可能实施方式可以是但不限于随机存取存储器(random access memory,RAM)、只读存储器(read only memory,ROM)或两者。还提供了存储设备503,用于存储信息和指令。存储设备的常见形式包括例如硬盘驱动器、磁盘、光盘、CD-ROM、DVD、闪存、USB存储卡或计算机可以读取的任何其他介质。例如,存储设备503可以包括用于执行上述技术的源代码、二进制代码或软件文件。存储设备和存储器都是计算机可读介质的示例。

计算机系统510可以经由总线505耦合到显示器512(诸如发光二极管(LightEmitting Diode,LED)或液晶显示器(liquid crystaldisplay,LCD)),用于向计算机用户显示信息。输入设备511(诸如键盘和/或鼠标)耦合到总线505,用于从用户向处理器501传送信息和命令选择。这些组件的组合允许用户与系统进行通信。在一些系统中,总线505可以被分成多个专用总线。

计算机系统510还包括与总线505耦合的网络接口504。网络接口504可以在计算机系统510与本地网络520之间提供双向数据通信。例如,网络接口504可以是用以通过电话线提供数据通信连接的数字订户线路(digital subscriber line,DSL)或调制解调器。网络接口的另一个示例是用以提供到兼容局域网(1ocal areanetwork,LAN)的数据通信连接的LAN卡。无线链路是另一个示例。在任何这种实施方式中,网络接口504发送和接收携带表示各种类型的信息的数字数据流的电信号、电磁信号或光信号。

计算机系统510可以通过本地网络520、内联网或互联网530上的网络接口504发送和接收信息,包括消息或其他接口动作。对于本地网络,计算机系统510可以与多个其他计算机机器(诸如服务器515)进行通信。相应地,计算机系统510和由服务器515表示的服务器计算机系统可以形成云计算网络,该云计算网络可以用本文描述的过程来编程。在互联网示例中,软件组件或服务可以驻留在网络上的多个不同的计算机系统510或服务器531-535上。例如,上述过程可以在一个或多个服务器上实现。服务器531可以通过互联网530、本地网络520和网络接口504将动作或消息从一个组件传输到计算机系统510上的组件。例如,上述软件组件和过程可以在任何计算机系统上实现,并且在网络上发送和/或接收信息。

上面的描述说明了本发明的各种实施例以及如何实现本发明的各方面的示例。上述示例和实施例不应被认为是仅有的实施例,而是被呈现来说明由所附权利要求定义的本发明的灵活性和优点。基于上述公开内容和以下权利要求,其他布置、实施例、实施方式和等同物对于本领域技术人员来说将是清楚的,并且可以在不脱离由权利要求定义的本发明的精神和范围的情况下被采用。

相关技术
  • 利用量子退火增强模拟退火
  • 利用量子退火增强模拟退火
技术分类

06120116579205