用于使用聚类收缩的混合算法系统和方法

文档序号:144511 发布日期:2021-10-22 浏览:20次 >En<

阅读说明:本技术 用于使用聚类收缩的混合算法系统和方法 (Hybrid algorithm system and method for using cluster shrinkage ) 是由 詹姆斯·A·金 凯利·T·R·布思比 波·法雷·佩雷 威廉·W·伯诺迪 于 2020-01-13 设计创作,主要内容包括:描述了用于操作混合计算系统的系统和方法,这些系统和方法使用聚类收缩来将较大的密集输入转换为可以容易地映射到量子处理器中的简化输入。该简化输入表示问题的全局结构。技术涉及将输入变量划分为多个聚类并对每个聚类进行收缩。可以使用不加权算术平均组对方法算法来划分这些输入变量。该量子处理器基于该简化输入返回样本,并且这些样本被扩展以对应于原始输入。(Systems and methods for operating a hybrid computing system are described that use clustering contraction to convert large dense inputs into simplified inputs that can be easily mapped into quantum processors. The simplified input represents the global structure of the problem. The technique involves dividing the input variable into a plurality of clusters and shrinking each cluster. These input variables may be partitioned using an unweighted arithmetic mean group pairing method algorithm. The quantum processor returns samples based on the simplified input, and the samples are expanded to correspond to the original input.)

用于使用聚类收缩的混合算法系统和方法

技术领域

本披露总体上涉及用于在采用量子处理器和经典处理器的混合计算系统中求解计算问题的系统和方法。

背景技术

量子退火

量子退火是一种计算方法,该计算方法可以用于找出系统的低能态,通常优选地是系统的基态。该方法所依赖的基本原理在于自然系统趋向于较低能态,因为较低能态更加稳定。虽然经典退火使用经典的热波动来将系统引导到低能态,但量子退火可以使用比如量子隧穿等量子效应作为离域来源,以便比经典退火更精确和/或更快速地达到能量最小值。

量子处理器可以被设计成执行量子退火和/或绝热量子计算。同与问题哈密尔顿算子成比例的第一项以及与离域哈密尔顿算子成比例的第二项之和成比例的演化哈密尔顿算子可以被构造如下:

HE∝A(t)HP+B(,)HD

其中,HE是演化哈密尔顿算子,HP是问题哈密尔顿算子,HD是离域哈密尔顿算子,并且A(t)、B(t)是可以控制演化速率并且通常处于[0,1]范围内的系数。

通过实施超导量子位而实现具体的示例。

马尔可夫链蒙特卡罗

马尔可夫链蒙特卡罗(MCMC)是一类计算技术,其包括例如模拟退火、并行回火、群体退火和其他技术。例如,当不能使用概率分布时可以使用马尔可夫链。马尔可夫链可以被描述为一系列离散随机变量和/或一个随机过程,在该随机过程中,在每个时间步,状态只取决于前一状态。当链足够长时,链的聚合性质(比如均值)可以匹配目标分布的聚合性质。

马尔可夫链可以通过根据马尔可夫提议过程(通常称为“更新操作”)提出新点来获得。新点要么被接受,要么被拒绝。如果新点被拒绝,则做出新提议,依此类推。所接受的新点是使目标分布依概率收敛的点。如果提议和接受标准满足细致平衡条件并且提议满足遍历性要求,则保证收敛。进一步,可以接受提议,使得马尔可夫链是可逆的,即,链中状态闭环上的转移率的乘积在任一方向上都是相同的。可逆马尔可夫链也称为具有细致平衡。通常,在许多情况下,新点位于前一个点的本地。

二次无约束二元优化问题

二次无约束二元优化(QUBO)问题传统上用于计算机科学。变量是TRUE和FALSE——对应于1和0值的状态。

使用上对角矩阵Q(其是实际权重的NxN上三角矩阵)和x(二元变量向量),将QUBO问题定义为最小化以下函数:

其中,对角线项Qi,i是线性系数,而非零非对角线项是二次系数Qi,j

这可以更简洁地表示为

在标量符号中,表示为QUBO的目标函数如下:

二次无约束二元优化问题是无约束的,因为除了在Q中表示的约束以外对变量没有约束。

相关技术的上述示例以及与其相关的限制旨在是说明性的而非排他性的。在阅读本说明书和研究附图之后,相关领域的其他限制将对本领域的技术人员变得显而易见。

发明内容

描述了一种操作混合计算系统的方法。该混合计算系统包括量子处理器和经典处理器。该方法包括:通过该经典处理器将算法应用于具有n个群体变量的输入的问题;通过该经典处理器将该具有n个群体变量的输入转换为具有k个群体变量的简化输入,其中,k≤n;通过该量子处理器根据该简化输入获得样本Sr;以及通过该经典处理器扩展这些样本Sr以获得该问题的一组修改状态。通过经典处理器应用于具有n个群体变量的输入的问题的算法可以是并行回火算法。可以将该n个群体变量划分为k个聚类,并且可以对该k个聚类中的每一个进行收缩以产生具有k个群体变量的简化输入。可以相对于低能态s或基于一组低能态Sc以可能非确定性的方式对这些聚类进行收缩,并扩展这些聚类以取消收缩,或者可以根据所进行的收缩、Sc中观察到的相关性或互能量、以及能量函数f或f对每个聚类内的变量的限制,以可能非确定性的过程对这些聚类进行扩展。可以使聚类中的所有群体变量在该状态s下的值相对于彼此夹紧(clamped),以对该聚类进行收缩。可以使用低能态子集来划分这n个群体变量。可以相对于该低能态子集对每个聚类中的群体变量的值求平均,以对该k个聚类中的每一个进行收缩。可以使用不加权算术平均组对方法算法来将该n个群体变量划分成聚类。在不加权算术平均组对方法算法中可以使用成对熵作为距离度量。可以基于该聚类创建新状态s,以对该k个聚类中的每一个进行收缩。可以使用启发式求解器来创建新状态s。在从量子处理器获得样本之前,可以将嵌入算法应用于该具有简化输入的问题。该方法可以被迭代重复直到满足退出条件。退出条件可以是群体变量的满意质量度量。

描述了一种混合计算系统。该混合计算系统包括量子处理器和经典处理器。该经典处理器可操作以:将算法应用于具有n个群体变量的输入的问题;将该具有n个群体变量的输入转换为具有k个群体变量的简化输入,其中,k≤n;从该量子处理器根据该简化输入获得样本Sr;以及扩展这些样本Sr以获得该问题的一组修改状态。该算法可以是并行回火算法。该经典处理器可以将该n个群体变量划分为k个聚类,并对该k个聚类中的每一个进行收缩以产生具有k个变量的简化输入。可以相对于低能态s或基于一组低能态Sc以可能非确定性的方式对该k个聚类中的每一个进行收缩。可以扩展这些样本Sr以取消收缩,或者可以根据所进行的收缩、Sc中观察到的相关性或互能量、以及能量函数f或f对每个聚类内的变量的限制,以可能非确定性的过程对这些样本进行扩展。可以基于聚类中的群体变量在该状态s下的值使这些群体变量相对于彼此夹紧。可以使用低能态子集将该n个群体变量划分为k个聚类。可以相对于该低能态子集对每个聚类中的所有群体变量的值求平均。可以通过不加权算术平均组对方法算法将该n个群体变量划分为k个聚类。在不加权算术平均组对方法算法中可以使用成对熵作为距离度量。该经典处理器可以操作以在从该量子处理器根据该简化输入获得样本Sr之前,通过嵌入算法来嵌入具有该简化输入的该问题。

描述了一种操作混合计算系统的方法。该混合计算系统包括量子处理器和经典处理器。该方法包括:通过该经典处理器相对于状态s生成关于问题的多个变量修改提议;通过该经典处理器制定与接受该多个变量修改提议的子集的能量变化相对应的二次无约束二元优化问题;以及通过该量子处理器求解该二次无约束二元优化问题。该问题可以是二次约束二元优化问题或整数二次规划问题。该方法可以相对于随机状态s生成多个变量修改提议。该多个变量修改问题可以为使得没有两个提议修改同一个变量,并且不超过两个提议影响该二次无约束二元优化问题的成本函数的项。该方法可以进一步包括:通过接受通过求解该二次无约束二元优化问题而指定的该多个变量修改提议的子集来修改该状态s;以及迭代重复直到已经满足退出条件:通过该经典处理器相对于状态sn-1生成多个变量修改提议;通过该经典处理器制定与接受这些变量修改提议的子集的能量变化相对应的二次无约束二元优化问题;通过该量子处理器求解该二次无约束二元优化问题;以及通过接受通过求解该二次无约束二元优化问题而指定的这些提议的子集,将该状态sn-1修改为状态sn。该方法可以进一步包括确定是否已经满足该退出条件。该退出条件可以是以下各项之一:迭代次数、以及该状态sn满足质量度量。

描述了一种混合计算系统。该混合计算系统包括经典处理器和量子处理器。该经典处理器可操作以:相对于状态s生成关于问题的多个变量修改提议;制定与接受该多个变量修改提议的子集的能量变化相对应的二次无约束二元优化问题;以及使该量子处理器求解该二次无约束二元优化问题。该问题可以是以下各项之一:二次约束二元优化问题和整数二次规划问题。该状态s可以是随机状态s。该经典处理器可以操作以生成多个变量修改提议,使得没有两个提议修改同一个变量,并且不超过两个提议影响该二次无约束二元优化问题的成本函数的项。该经典处理器可以进一步操作以:通过接受通过求解该二次无约束二元优化问题而指定的该多个变量修改提议的子集来修改该状态s;以及迭代重复直到已经满足退出条件:相对于状态sn-1生成多个变量修改提议;制定与接受这些变量修改提议的子集的能量变化相对应的二次无约束二元优化问题;使该量子处理器求解该二次无约束二元优化问题;以及通过接受通过求解该二次无约束二元优化问题而指定的这些提议的子集,将该状态sn-1修改为状态sn。该经典处理器可以进一步操作以确定是否已经满足该退出条件。该经典处理器可以操作以确定是否已经满足包括以下各项的一组退出条件之一:经过的迭代次数、以及该状态sn满足质量度量。

附图说明

在附图中,相同的附图标记标识相似的元件或动作。元件在附图中的尺寸和相对位置不一定是按比例绘制的。例如,不同元件的形状以及角度不一定按比例绘制,并且这些元件中的一些可以被任意地放大和定位以提高附图的易读性。进一步地,所绘出的这些元件的特定形状不一定旨在传达与这些特定元件的实际形状有关的任何信息,而可能只是为了方便在图中识别而选取的。

图1是包括量子处理器和经典处理器的示例混合计算系统的示意图。

图2是在混合计算系统中使用聚类收缩的示例操作方法的流程图。

图3是在混合计算系统中使用聚类收缩的示例迭代操作方法的流程图。

图4是在经典计算机中使用聚类收缩的示例操作方法的流程图。

图5是在经典计算机中使用聚类收缩的示例迭代操作方法的流程图。

图6是在混合计算系统中使用经典求解器组合和聚类收缩的示例操作方法的流程图。

图7是在混合计算系统中使用经典求解器组合和聚类收缩的示例迭代操作方法的流程图。

图8是在经典计算机中使用经典求解器组合和聚类收缩的示例操作方法的流程图。

图9是在经典计算机中使用经典求解器组合和聚类收缩的示例迭代操作方法的流程图。

图10是在混合计算系统中利用多个基于约束的更新的示例操作方法的流程图。

图11是在混合计算系统中利用多个基于约束的更新的示例迭代操作方法的流程图。

图12是在混合计算系统中用于计算简化及其嵌入的示例操作方法的流程图。

具体实施方式

在以下说明中,阐述了某些特定的细节以便提供对所披露的各种实施方式的全面理解。然而,相关领域的技术人员将认识到,可以在没有这些特定的细节中的一个或多个的情况下或者使用其他方法、部件、材料等来实践实施方式。在其他实例中,尚未示出或详细描述与计算机系统、服务器计算机、和/或通信网络相关联的公知结构,以避免不必要地模糊对这些实施方式的描述。

除非上下文另外要求,否则贯穿本说明书和所附权利要求,单词“包括(comprising)”与“包括(including)”同义并且是包括性或开放式的(即,不排除附加的、未列举的元件或方法动作)。

贯穿本说明书,对“一个实施方式(one implementation)”或“实施方式(animplementation)”的提及意味着结合该实施方式所描述的具体特征、结构或特性被包括在至少一个实施方式中。因此,贯穿本说明书在各个地方出现的短语“在一个实施方式中”或“在实施方式中”不一定全部指同一实施方式。此外,具体的特征、结构、或特性可以以任何合适的方式结合在一个或多个实施方式中。

贯穿本说明书和所附权利要求,术语“样本”、“采样”、“样本生成器”旨在具有其在统计学和电气工程领域的对应含义。在统计学中,样本是群体的子集,例如单个数据、数据点、对象,或者数据、数据点或对象的子集。在电气工程中,采样是指收集物理系统的多个测量值,例如模拟信号。贯穿本说明书和所附权利要求,术语“求平均(average)”、“求平均(averaging)”、“求平均(averaged)”旨在但不限于具有其在统计学和算术领域的对应含义。在统计学领域,平均值可以指例如均值、中位数和众数,而在算术领域中,平均值可以指算术均值。

混合计算系统可以从模拟处理器中抽取样本。模拟处理器可以被配置为从统计分布中提供样本,从而成为样本生成器。可以作为样本生成器操作的处理器的示例是被设计成用于执行量子退火的量子处理器,其中每个样本对应于处理器的一个状态,而群体对应于从处理器中抽取的一组状态。

如在本说明书和所附权利要求中所使用的,除非上下文另外明确指明,否则单数形式的“一个(a)”、“一种(an)”以及“该”包括复数对象。还应注意,除非上下文另外明确指明,否则术语“或”总体上所使用的意义包括“和/或”。

本文提供的本披露内容的小标题和摘要只是为了方便起见,而并非解释实施方式的范围或含意。

图1展示了包括耦合到量子计算机104的经典计算机102的混合计算系统100。示例经典计算机102包括数字处理器(CPU)106,该CPU可以用于执行经典数字处理任务,并且因此在本文和权利要求中被称为经典处理器。

经典计算机102可以包括至少一个数字处理器(比如具有一个或多个核的中央处理器单元106)、至少一个系统存储器108、以及将各种系统部件(包括系统存储器108)耦合到中央处理器单元106的至少一个系统总线110。数字处理器可以是任何逻辑处理单元,比如一个或多个中央处理单元(“CPU”)、图形处理单元(“GPU”)、数字信号处理器(“DSP”)、专用集成电路(“ASIC”)、可编程门阵列(“FPGA”)、可编程逻辑控制器(PLC)等。

经典计算机102可以包括用户输入/输出子系统112。在一些实施方式中,用户输入/输出子系统包括一个或多个用户输入/输出部件,比如显示器114、鼠标116、和/或键盘118。

系统总线110可以采用任何已知的总线结构或架构,包括具有存储器控制器的存储器总线、外围总线和局部总线。系统存储器108可以包括:非易失性存储器,诸如只读存储器(“ROM”)、静态随机存取存储器(“SRAM”)、闪存NANO;以及易失性存储器,比如随机存取存储器(“RAM”)(未示出)。

经典计算机102还可以包括其他非暂态计算机可读存储介质或处理器可读存储介质或非易失性存储器120。非易失性存储器120可以采取各种形式,包括:用于从硬盘读取和写入该硬盘的硬盘驱动器、用于从可移动光盘读取和写入该可移动光盘的光盘驱动器、和/或用于从磁盘读取和写入该磁盘的磁盘驱动器。光盘可以是CD-ROM或DVD,而磁盘可以是磁软盘或软磁盘。非易失性存储器120可以经由系统总线110与数字处理器通信并且可以包括耦合到系统总线110的适当接口或控制器122。非易失性存储器120可以充当用于经典计算机102的处理器可读指令或计算机可读指令、数据结构、或其他数据(有时也被称为程序模块)的长期存储装置。

尽管经典计算机102已经被描述为采用硬盘、光盘和/或磁盘,但相关领域的技术人员将认识到,可以采用其他类型的非易失性计算机可读介质,比如磁带盒、闪存卡、闪存、ROM、智能卡等。相关领域的技术人员将认识到,一些计算机架构采用了易失性存储器和非易失性存储器。例如,易失性存储器中的数据可以被缓存到非易失性存储器或采用集成电路来提供非易失性存储器的固态盘。

各种处理器可读指令或计算机可读指令、数据结构或其他数据可以存储在系统存储器108中。例如,系统存储器108可以存储用于与远程客户端进行通信并调度资源(包括经典计算机102和量子计算机104上的资源)的使用的指令。例如,系统存储器108可以存储处理器可读指令或计算机可读指令、数据结构或其他数据,这些指令和数据在由处理器或计算机执行时,使(多个)处理器或(多个)计算机执行方法200(图2)、300(图3)、400(图4)、500(图5)、600(图6)、700(图7)、800(图8)、900(图9)、1000(图10)、1100(图11)和1200(图12)的一个、多个或所有动作。

在一些实施方式中,系统存储器108可以存储处理器可读计算指令或计算机可读计算指令以对量子计算机104执行预处理、协处理和后处理。系统存储器108可以存储一组量子计算机接口指令以与量子计算机104交互。

量子计算机104可以包括一个或多个量子处理器,比如量子处理器124。可以在隔离环境中提供量子计算机104,例如,使量子计算机的内部元件避开热、磁场和其他外部噪声(未示出)的隔离环境。量子处理器124包括可编程元件,比如量子位、耦合器和其他器件。根据本披露,量子处理器(比如量子处理器124)可以被设计成用于执行量子退火和/或绝热量子计算。美国专利7,533,068中描述了量子处理器的示例。

混合计算系统(例如混合计算系统100)可以用于难以映射到或不能适应量子处理器拓扑结构的问题。例如由于量子处理器的连接不足而导致的难以映射到量子处理器的问题的示例是具有较大的密集输入的问题。此类问题可以通过经典处理器使用比如并行回火或基于群体的方法(例如,遗传算法)等算法来求解。然而,如利用Houdayer等能聚类移动的并行回火的一些算法在应用于稀疏输入时很强大,但在密集输入上效率不高。当前的技术不执行聚类更新或者一次执行单个翻转,因此当聚类彼此之间具有非平凡关系时(例如在硬输入的情况下)效率低下。

因此,需要有技术来将比量子处理器的拓扑结构更大和/或更密集的输入简化成适合量子处理器并代表问题的硬性全局结构的输入。本披露中描述的混合算法采用经典资源(例如,GPU)来求解问题的局部结构,并采用量子处理器来求解问题的全局且更硬性的结构。

用于减小问题规模的方法是将输入变量划分为可以收缩的聚类,得到可以在量子处理器上求解的简化输入的问题。将变量划分为使得每个变量都只在一个聚类中。然后对每个聚类进行收缩以将关于n个变量的原始输入(其中n可能是非常大的数字)简化为关于k个变量的输入(其中k是划分中的聚类数量)。k的值可以基于量子处理器的拓扑结构来选择,例如,k可以是适合量子处理器的拓扑结构的最大变量数量。在至少一个实施方式中,k的值可以等于n。

在给定状态s并且变量被划分为k个聚类的情况下,存在相对于s翻转或不翻转这k个聚类的2k种方式。找到要翻转的子集等同于在关于k个变量的简化输入上的伊辛(Ising)最小化问题,并且可以在量子处理器上求解。然后,量子处理器基于简化输入生成一组样本,并且该组样本可以基于s或根据包括但不限于本文档中描述的手段的其他手段来扩展。这种方法实现了强大的多聚类移动,从而求解问题的全局结构,这可能是纯经典方法难以求解的。例如,将变量划分为聚类的经典算法(例如连锁树遗传算法)仅考虑了基于聚类的基本更新(例如一次翻转单个聚类)而没有考虑可以翻转k个聚类的所有可能的方式。

图2是使用聚类收缩来操作混合计算系统的示例方法200的流程图。方法200通过混合计算系统(例如混合计算系统100)执行,该混合计算系统包括量子处理器和非量子(或经典)处理器。

方法200包括动作201至208;然而,本领域技术人员将理解,动作的数量是示例,并且在一些实施方式中,可以省略某些动作,可以添加其他动作,和/或可以改变动作的顺序。

方法200例如响应于来自其他例程的调用而在201处开始。

在202处,经典处理器将算法应用于具有n个群体变量的问题。该问题可以在201处作为一组输入的一部分被接收。在至少一个实施方式中,在202处应用并行回火算法。该算法可以被应用持续预定时间,例如持续足以生成可用于在203处划分这n个群体变量的状态的时间。

在203处,经典处理器将这n个群体变量划分为k个聚类,其中k<n,使得每个变量都只在一个聚类中。在至少一个实施方式中,k≤n。在一些实施方式中,相对于在202处运行算法得到的低能态子集S来划分这n个群体变量。例如,如果在202处应用了并行回火算法,则最冷随机游走遇到的状态将具有最低能量;这些状态将被选择用来划分这n个群体变量。在至少一个实施方式中,使用不加权算术平均组对方法(UPGMA)算法来将这n个群体变量划分为k个聚类。成对互信息是可以在UPGMA中使用的距离度量的示例;然而,也可以使用其他成对对称度量或分数。可替代地,相对于感兴趣的低能态s来划分这n个群体变量。

在204处,经典处理器对这k个聚类中的每一个进行收缩,从而减少群体变量的数量,并产生202的问题的简化输入。在一些实施方式中,k≤n。在一些实施方式中,经典处理器通过基于聚类中的所有变量相对于状态s的值夹紧这些变量来对每个聚类进行收缩,因此获得表示202的问题的简化输入的k个变量。状态s可以在202处确定,或者可以由经典处理器使用启发式求解器基于在203处确定的聚类来创建。可替代地,经典处理器基于一组状态而不是单个状态s来对每个聚类进行收缩,例如通过在每个聚类内求平均,通过对限制于聚类的能量函数应用采样启发法,或应用模拟在该组状态内观察到的相关性或互信息的非确定性算法。

在205处,经典处理器将具有简化输入的问题发送到量子处理器。在一些实施方式中,将嵌入算法(例如次要嵌入)应用于具有简化输入的问题,从而生成可以发送到量子处理器的嵌入问题。

在206处,量子处理器根据简化输入返回样本Sr

在207处,经典处理器扩展样本Sr以获得关于n个群体变量的原始输入的一组新的修改状态。当在204处使用状态s来简化输入时,样本Sr是通过翻转由来自Sr的状态决定的聚类相对于s来扩展的。在一些实施方式中,样本Sr基于一组低能态来扩展。在这些或其他实施方式中,扩展可以附加地考虑在低能态内观察到的统计数据(比如互信息或相关性)、以及能量函数。

在208处,方法200终止,直到例如再次被调用。

图3是使用聚类收缩来操作混合计算系统的示例迭代方法300的流程图。方法300通过混合计算系统(例如混合计算系统100)执行,该混合计算系统包括量子处理器和非量子(或经典)处理器。

方法300包括动作301至310;然而,本领域技术人员将理解,动作的数量是示例,并且在一些实施方式中,可以省略某些动作,可以添加其他动作,和/或可以改变动作的顺序。

方法300例如响应于来自其他例程的调用而在301处开始。

在302处,经典处理器将算法应用于具有n个群体变量的问题,如上文参考方法200的动作202所描述的。

在303处,经典处理器将这n个群体变量划分为k个聚类,如上文参考方法200的动作203所描述的。

在304处,经典处理器对这k个聚类中的每一个进行收缩,如上文参考方法200的动作204所描述的。

在305处,经典处理器将具有简化输入的问题发送到量子处理器。

在306处,量子处理器根据简化输入返回样本Sr

在307处,经典处理器扩展样本Sr,如上文参考方法200的动作207所描述的。

在308处,经典处理器将修改状态整合到这n个群体变量中。

在309处,经典处理器检查是否已经满足退出条件。如果已经满足退出条件,则控制传递到310,否则传递到302,在此再次将算法应用于该问题。退出条件可以是确定是否满足群体变量的质量度量。

在310处,方法300终止,直到例如再次被调用。

与量子处理器相比,经典计算机通常可以求解具有更大输入规模的问题。然而,对于非常大的输入,从经典计算机获得解的时间可能过长。因此,需要减小经典计算机的问题输入规模。可以采用上述方法来操作经典计算机或包括多个经典计算机的经典计算系统。另外,混合计算系统可以通过经典计算机来采用上述方法。

用于减小问题规模的方法是将输入变量划分为可以收缩的聚类,得到可以在量子处理器上求解的简化输入的问题。将变量划分为使得每个变量都只在一个聚类中。然后对每个聚类进行收缩以将关于n个变量的原始输入(其中n可能是非常大的数字)简化为关于k个变量的输入(其中k是划分中的聚类数量)。在至少一个实施方式中,k的值可以等于n。

在给定状态s并且变量被划分为k个聚类的情况下,存在相对于s翻转或不翻转这k个聚类的2k种方式。找到要翻转的子集等同于在关于k个变量的简化输入上的伊辛最小化问题,并且可以在经典处理器上使用经典求解器来求解。在本披露和所附权利要求中使用术语经典求解器或经典算法来表示仅使用经典(即,非量子)计算资源的求解器或算法。可以使用的经典求解器的示例是并行回火和模拟退火。然后,经典处理器基于简化输入生成一组样本,并且该组样本可以基于s来扩展。在其他实施方式中,扩展可以部分地基于能量函数和/或在整个问题求解过程中观察到的统计数据。

图4是用于使用聚类收缩来求解计算问题的示例方法400的流程图。方法400通过经典计算系统执行,该经典计算系统包括至少一个非量子(或经典)处理器。可替代地,方法400可以通过混合计算系统(例如混合计算系统100)、使用经典处理器来执行。方法400包括动作401至408;然而,本领域技术人员将理解,动作的数量是示例,并且在一些实施方式中,可以省略某些动作,可以添加其他动作,和/或可以改变动作的顺序。

方法400例如响应于来自其他例程的调用而在401处开始。

在402处,经典处理器将算法应用于具有n个群体变量的问题。该问题可以在401处作为一组输入的一部分被接收。在至少一个实施方式中,在402处应用并行回火算法。该算法可以被应用持续预定时间,例如持续足以生成可用于在403处划分这n个群体变量的状态的时间。

在403处,经典处理器将这n个群体变量划分为k个聚类,其中k<n,使得每个变量都只在一个聚类中。在至少一个实施方式中,k≤n。在一些实施方式中,相对于在402处运行算法得到的低能态子集S来划分这n个群体变量。例如,如果在402处应用了并行回火算法,则最冷随机游走遇到的状态将具有最低能量;这些状态将被选择用来划分这n个群体变量。在至少一个实施方式中,使用不加权算术平均组对方法(UPGMA)算法来将这n个群体变量划分为k个聚类。成对互信息是可以在UPGMA中使用的距离度量的示例;然而,也可以使用其他成对对称度量或分数。可替代地,相对于感兴趣的低能态s来划分这n个群体变量。

在404处,经典处理器对这k个聚类中的每一个进行收缩,从而减少群体变量的数量,并产生402的问题的简化输入。在至少一个实施方式中,k≤n。在一些实施方式中,经典处理器通过基于聚类中的所有变量相对于状态s的值夹紧这些变量来对每个聚类进行收缩,因此获得表示402的问题的简化输入的k个变量。状态s可以在402处确定,或者可以由经典处理器使用启发式求解器基于在403处确定的聚类来创建。可替代地,经典处理器基于一组状态而不是单个状态s例如通过在每个聚类内求平均来对每个聚类进行收缩。在这些或其他实施方式中,收缩可以附加地考虑在低能态内观察到的统计数据、以及限制于每个聚类的能量函数。

在405处,经典处理器将经典算法应用于具有简化输入的问题。在一些实施方式中,应用了并行回火算法。在至少一个实施方式中,应用了模拟退火算法。

在405处应用经典算法之后,在406处,经典处理器根据简化输入获得样本Sr

在407处,经典处理器扩展样本Sr以获得关于n个群体变量的原始输入的一组新的修改状态。当在404处使用状态s来简化输入时,样本Sr是通过翻转由来自Sr的状态决定的聚类相对于s来扩展的。在一些实施方式中,样本Sr基于一组低能态来扩展。在这些或其他实施方式中,扩展可以附加地考虑在该组低能态内观察到的统计数据、以及能量函数。

在408处,方法400终止,直到例如再次被调用。

图5是用于使用聚类收缩来求解计算问题的示例迭代方法500的流程图。方法500通过经典计算系统执行,该经典计算系统包括至少一个非量子(或经典)处理器。可替代地,方法500可以通过混合计算系统(例如混合计算系统100)、使用经典处理器来执行。方法500包括动作501至510;然而,本领域技术人员将理解,动作的数量是示例,并且在一些实施方式中,可以省略某些动作,可以添加其他动作,和/或可以改变动作的顺序。

方法500例如响应于来自其他例程的调用而在501处开始。

在502处,经典处理器将算法应用于具有n个群体变量的问题,如上文参考方法400的动作402所描述的。

在503处,经典处理器将这n个群体变量划分为k个聚类,如上文参考方法400的动作403所描述的。

在404处,经典处理器对这k个聚类中的每一个进行收缩,如上文参考方法400的动作404所描述的。

在505处,经典处理器将经典算法应用于具有简化输入的问题,如上文参考方法400的动作405所描述的。

在505处应用经典算法之后,在506处,经典处理器根据简化输入获得样本Sr

在507处,经典处理器扩展样本Sr,如上文参考方法400的动作407所描述的。

在508处,经典处理器将修改状态整合到这n个群体变量中。

在509处,经典处理器检查是否已经满足退出条件。如果已经满足退出条件,则控制传递到510,否则传递到502,在此再次将算法应用于该问题。退出条件可以是确定是否满足群体变量的质量度量。

在510处,方法500终止,直到例如再次被调用。

可替代地,问题规模可以通过以下方式来减小:将经典求解器组合应用于关于n个变量的问题,并从经典求解器组合中的每个经典求解器获得至少一个样本或解,从而获得关于k个变量的简化输入的问题,其中k<n。在至少一个实施方式中,k≤n。经典求解器可以都在不同的经典计算机上并行运行。然后,可以在经典处理器上使用经典求解器来求解简化输入的问题,以基于简化输入获得一组样本。可替代地,可以在基于简化输入的量子处理器上求解简化输入。然后,可以将该组样本扩展到原始问题规模。

图6是在混合计算系统中使用经典求解器组合的示例操作方法600的流程图。方法600通过混合计算系统(例如混合计算系统100)执行,该混合计算系统包括量子处理器和非量子(或经典)处理器。

方法600包括动作601至609;然而,本领域技术人员将理解,动作的数量是示例,并且在一些实施方式中,可以省略某些动作,可以添加其他动作,和/或可以改变动作的顺序。

方法600例如响应于来自其他例程的调用而在601处开始。

在602处,经典处理器将经典算法组合应用于具有n个群体变量的问题。该问题可以在601处作为一组输入的一部分被接收。在至少一个实施方式中,经典算法组合包括并行回火、模拟退火和分支定界。该算法可以被应用持续预定时间,例如持续足以生成可用于在605处对样本聚类进行收缩的时间。

在603处,经典处理器从每个经典算法获得至少一个样本。

在604处,经典处理器基于样本统计数据将这n个群体变量划分为k个聚类。

在605处,经典处理器对这k个聚类中的每一个进行收缩,从而减少群体变量的数量,并产生602的问题的简化输入。在一些实施方式中,经典处理器通过基于聚类中的所有变量相对于状态s的值夹紧这些变量来对每个聚类进行收缩,因此获得表示602的问题的简化输入的k个变量。状态s可以在602处在运行经典算法组合之后确定。可替代地,经典处理器基于一组状态而不是单个状态s例如通过在每个聚类内求平均来对每个聚类进行收缩。在这些或其他实施方式中,扩展可以附加地考虑在低能态内观察到的统计数据、以及限制于每个聚类的能量函数。在至少一个实施方式中,k的值可以等于n。

在606处,经典处理器将具有简化输入的问题发送到量子处理器。在一些实施方式中,将嵌入算法(例如次要嵌入)应用于具有简化输入的问题,从而生成可以发送到量子处理器的嵌入问题。

在607处,量子处理器根据简化输入返回样本Sr

在608处,经典处理器扩展样本Sr以获得关于n个群体变量的原始输入的一组新的修改状态。当在605处使用状态s来简化输入时,样本Sr是通过翻转由来自Sr的状态决定的聚类相对于s来扩展的。在一些实施方式中,样本Sr基于一组低能态来扩展。在这些或其他实施方式中,扩展可以附加地考虑在低能态内观察到的统计数据、以及能量函数。

在609处,方法600终止,直到例如再次被调用。

图7是使用经典求解器组合来操作混合计算系统的示例迭代方法700的流程图。方法700通过混合计算系统(例如混合计算系统100)执行,该混合计算系统包括量子处理器和非量子(或经典)处理器。

方法700包括动作701至711;然而,本领域技术人员将理解,动作的数量是示例,并且在一些实施方式中,可以省略某些动作,可以添加其他动作,和/或可以改变动作的顺序。

方法700例如响应于来自其他例程的调用而在701处开始。

在702处,经典处理器将经典算法组合应用于具有n个群体变量的问题,如上文参考方法600的动作602所描述的。

在703处,经典处理器从每个经典算法获得至少一个样本,如上文参考方法600的动作603所描述的。

在704处,经典处理器基于样本统计数据将这n个群体变量划分为k个聚类。

在705处,经典处理器对这k个聚类中的每一个进行收缩,如上文参考方法600的动作605所描述的。

在706处,经典处理器将具有简化输入的问题发送到量子处理器,如上文参考方法600的动作606所描述的。

在707处,量子处理器根据简化输入返回样本Sr

在708处,经典处理器扩展样本Sr,如上文参考方法600的动作608所描述的。

在709处,经典处理器将修改状态整合到来自动作702的原始问题的这n个群体变量中。

在710处,经典处理器检查是否已经满足退出条件。如果满足退出条件,则控制传递到711,否则传递到702,在此再次将经典算法组合应用于该问题。退出条件可以是确定是否满足群体变量的质量度量。

在711处,方法700终止,直到例如再次被调用。

图8是用于使用经典求解器组合来求解计算问题的示例方法800的流程图。方法800通过经典计算系统执行,该经典计算系统包括至少一个非量子(或经典)处理器。可替代地,方法800可以通过混合计算系统(例如混合计算系统100)、使用经典处理器来执行。方法800包括动作801至809;然而,本领域技术人员将理解,动作的数量是示例,并且在一些实施方式中,可以省略某些动作,可以添加其他动作,和/或可以改变动作的顺序。

方法800例如响应于来自其他例程的调用而在801处开始。

在802处,经典计算系统将经典算法组合应用于具有n个群体变量的问题。该问题可以在801处作为一组输入的一部分被接收。在至少一个实施方式中,经典算法组合包括并行回火、模拟退火和分支定界。该算法可以被应用持续预定时间,例如持续足以生成可用于在805处对样本聚类进行收缩的时间。经典求解器可以在单独的经典处理器上并行执行。

在803处,经典处理器从每个经典算法获得至少一个样本。

在804处,经典处理器基于样本统计数据将这n个群体变量划分为k个聚类。

在805处,经典处理器对这k个聚类中的每一个进行收缩,从而减少群体变量的数量,并产生802的问题的简化输入。在一些实施方式中,经典处理器通过基于聚类中的所有变量相对于状态s的值夹紧这些变量来对每个聚类进行收缩,因此获得表示802的问题的简化输入的k个变量。状态s可以在802处在运行经典算法组合之后确定。可替代地,经典处理器基于一组状态而不是单个状态s例如通过在每个聚类内求平均来对每个聚类进行收缩。在这些或其他实施方式中,收缩可以附加地考虑在低能态内观察到的统计数据、以及限制于每个聚类的能量函数。在至少一个实施方式中,k的值可以等于n。

在806处,经典处理器将经典算法应用于具有简化输入的问题。在一些实施方式中,应用了并行回火算法。在至少一个实施方式中,应用了模拟退火算法。

在806处应用经典算法之后,在807处,经典处理器根据简化输入获得样本Sr

在808处,经典处理器扩展样本Sr以获得关于n个群体变量的原始输入的一组新的修改状态。当在805处使用状态s来简化输入时,样本Sr是通过翻转由来自Sr的状态决定的聚类相对于s来扩展的。在一些实施方式中,样本Sr基于一组低能态来扩展。在这些或其他实施方式中,扩展可以附加地考虑在低能态内观察到的统计数据、以及能量函数。

在809处,方法800终止,直到例如再次被调用。

图9是用于使用经典求解器的组合来求解计算问题的示例迭代方法900的流程图。方法900通过经典计算系统执行,该经典计算系统包括至少一个非量子(或经典)处理器。可替代地,方法900可以通过混合计算系统(例如混合计算系统100)、使用经典处理器来执行。

方法900包括动作901至911;然而,本领域技术人员将理解,动作的数量是示例,并且在一些实施方式中,可以省略某些动作,可以添加其他动作,和/或可以改变动作的顺序。

方法900例如响应于来自其他例程的调用而在901处开始。

在902处,经典处理器将经典算法组合应用于具有n个群体变量的问题,如上文参考方法800的动作802所描述的。

在903处,经典处理器从每个经典算法获得至少一个样本,如上文参考方法800的动作803所描述的。

在904处,经典处理器基于样本统计数据将这n个群体变量划分为k个聚类。

在905处,经典处理器对这k个聚类中的每一个进行收缩,如上文参考方法800的动作805所描述的。

在906处,经典处理器将经典算法应用于具有简化输入的问题,如上文参考方法800的动作806所描述的。

在906处应用经典算法之后,在907处,经典处理器根据简化输入获得样本Sr

在908处,经典处理器扩展样本Sr,如上文参考方法800的动作808所描述的。

在909处,经典处理器将修改状态整合到来自动作902的原始问题的这n个群体变量中。

在910处,经典处理器检查是否已经满足退出条件。如果满足退出条件,则控制传递到911,否则传递到902,在此再次将经典算法组合应用于该问题。退出条件可以是确定是否满足群体变量的质量度量。

在911处,方法900终止,直到例如再次被调用。

某些类别的问题(例如二次约束二元优化(QCBO)问题)可能无法通过可作为量子退火器操作的量子处理器来直接求解。可以通过添加较大的惩罚项将QCBO问题转换为二次无约束二元优化(QUBO)问题;然后,可以对量子处理器进行编程,以便为QUBO提供解。向QCBO添加惩罚项是必要的,用于确保QUBO的任何不满足约束的潜在解将产生一个或多个惩罚项,从而引导QUBO的任何基态满足约束。

然而,向QUBO问题添加惩罚项可能会使其更难以求解。特别地,比如量子退火器等模拟设备需要很高的操作精度,并且所添加的惩罚项大大提高了求解问题所需的精度。因此,单独在模拟设备上求解带有添加的惩罚项的QUBO可能是不可行的。因此,期望混合方法来求解QCBO,该方法利用比如量子退火器等模拟处理器同时遵守添加的约束。

蒙特卡罗算法提出了变量翻转,并以基于能量变化的概率接受该翻转。混合蒙特卡罗算法生成多个变量翻转,针对这些变量翻转,混合蒙特卡罗算法制定了QUBO问题,该问题的能量对应于变量翻转提议的组合所产生的能量变化。QUBO中的每个变量对应于单个变量翻转接受或拒绝。然后可以通过量子处理器求解QUBO,所产生的解是最有可能接受的所提出的变量翻转的组合。混合蒙特卡罗算法可以应用于QCBO问题和其中接受提议子集的影响可以被建模为QUBO的其他问题。例如,混合蒙特卡罗算法可以应用于二次问题、混合整数问题或整数二次规划。

混合蒙特卡罗算法最初将状态s用作问题的潜在解。状态s可以是随机状态。混合蒙特卡罗算法然后生成对状态s的多个提出的修改(例如,变量翻转),使得多个提议共同遵守两个限制。第一个限制是没有两个提议修改同一个变量。第二个限制是不超过两个提议影响成本函数的项,其中,成本函数(或能量/适应度函数)表示为所有项的总和。混合蒙特卡罗算法可以生成数量k个提议。

混合蒙特卡罗算法制定关于k个变量的QUBO,使得对于长度为k的给定二进制字符串sb的QUBO的能量对应于具有状态s’的原始问题的能量,该状态是在通过接受k个提议的子集(由sb表示)来修改s之后产生的。

然后,可以将QUBO编程到量子处理器(例如量子退火器或任何其他QUBO求解器)中以提供解。解是提出的修改的子集。根据解来修改变量会导致新状态s’作为原始问题的潜在解。

混合蒙特卡罗算法可以迭代生成一组新的提出的修改,基于从算法的先前迭代修改得到的状态,制定QUBO并通过量子处理器求解QUBO。

图10是利用多个基于约束的更新来操作混合计算系统的示例方法1000的流程图。方法1000在包括量子处理器和经典处理器的混合计算系统(例如图1的混合计算系统100)上执行,并且将参考混合计算系统100进行描述。

方法1000包括动作1001至1007;然而,本领域技术人员将理解,动作的数量是示例,并且在一些实施方式中,可以省略某些动作,可以添加其他动作,和/或可以改变动作的顺序。

方法1000例如响应于来自其他例程的调用而在1001处开始。

在1002处,混合计算系统100考虑状态s作为问题的解。状态s可以是随机状态或作为一组输入的一部分。

在1003处,混合计算系统100确定是否可以关于状态s生成满足两个限制的修改提议。这些限制是:没有两个提议修改同一个变量,以及不超过两个提议影响成本函数的项。第一个提议总是满足限制,但当前提议与先前生成的提议的并集可能不满足这两个限制。如果可以生成这样的提议,则控制传递到1004,否则传递到1005。

在1004处,混合计算系统100生成修改提议。该提议可以存储在存储器系统中以供稍后使用。控制传递到1003,在此混合计算系统100确定是否可以生成遵守这些限制的另一提议。

在1005处,混合计算系统100制定关于k个变量的QUBO(其中,k是修改提议的数量),使得对于长度为k的给定二进制字符串sb的QUBO的能量对应于具有状态s’的原始问题的能量,该状态是在通过接受k个提议的子集(由sb表示)来修改s之后产生的。

在1006处,混合计算系统100使量子处理器124求解QUBO。来自量子处理器124的解是提出的修改的子集。根据解来修改变量会导致新状态s’作为原始问题的潜在解。

在1007处,方法1000终止,直到例如再次被调用。

图11是利用多个基于约束的更新来操作混合计算系统的示例迭代操作方法1100的流程图。

方法1100在包括量子处理器和经典处理器的混合计算系统(例如图1的混合计算系统100)上执行,并且将参考混合计算系统100进行描述。

方法1100包括动作1101至1109;然而,本领域技术人员将理解,动作的数量是示例,并且在一些实施方式中,可以省略某些动作,可以添加其他动作,和/或可以改变动作的顺序。

方法1100例如响应于来自其他例程的调用而在1101处开始。

在1102处,混合计算系统100考虑状态sn作为问题的解,如上文参考方法1000的动作1002所描述的。

在1103处,混合计算系统100确定是否可以关于状态sn生成满足两个限制的修改提议,如上文参考方法1100的动作1003所描述的。

在1104处,混合计算系统100生成修改提议,如上文参考方法1000的动作1004所描述的。

在1105处,混合计算系统100制定QUBO,如上文参考方法1000的动作1005所描述的。

在1106处,混合计算系统100使量子处理器124求解QUBO,如上文参考方法1000的动作1006所描述的。

在1107处,混合计算系统100将状态sn修改为状态sn+1,其中,状态sn+1是在通过接受k个提议的子集(由动作1106处的QUBO的解表示)来修改状态sn之后产生的。

在1108处,混合计算系统100确定是否已经满足退出条件。在至少一个实施方式中,退出条件是满足状态sn+1的质量度量。在另一个实施方式中,退出条件是完成方法1100的一定次数迭代。

在1109处,方法1100终止,直到例如再次被调用。

在包括量子处理器和经典处理器的混合计算系统(例如混合计算系统100)上执行的算法可以受益于嵌入算法,以使问题与量子处理器的硬件相配。

将问题嵌入量子处理器的拓扑结构中的示例算法基于以下嵌入标准。给定源图S和目标图T,该目标图可以表示例如量子处理器的拓扑结构,嵌入ε被定义为从S的节点到T的节点集的映射,使得:

1.对于每个v∈V(S),诱导子图T[ε(v)]非空且连通,并且

2.对于所有u,v∈V(S),当且仅当u≠v,则

集ε(v)称为链。

第二个标准可以通过先拆后换操作来放松,如下所述。

对于源节点u∈S,

1.设定ε(u):={}。

2.对于每个节点q∈T,定义惩罚函数W(u,q):=|v∈S:q∈ε(v))}|——当前占用q的源节点数量的指数函数。

3.对于u的每个S邻居v,执行狄克斯特拉算法(Dijkstra’s algorithm)的节点加权变体来计算节点距离D(v,q)和父节点P(v,q),取W(u,q)为q的权重。

4.对于每个节点q∈T,定义根成本估计R(q):=Σv~uD(v,q),其中,v~意指v是u的S邻居。

5.选择使R(q)最小化的节点q0并更新ε(u):={q0}。

6.对于每个S邻居v,构造从q0通过父节点到ε(v)的路径;并将该路径(省略p)添加到ε(u)。

上述算法返回从图S上定义的问题到图T上定义的嵌入问题的嵌入,称为重叠嵌入。上述算法也可以与外部提供的经过启发式改进的重叠嵌入一起使用。

给定伊辛问题,在变量[σ1,…,n]上,

其中对于所有i,Ji,i=0,简化是这些变量的相对分配,这表示伊辛问题的受限子空间。在i≠j的情况下简化(σx≡±σy)产生关于n-1个变量的简化的伊辛问题,这可以通过对E的符号化简来计算。本领域技术人员将理解,伊辛问题可以转化为QUBO。

本披露的系统和方法描述了在反馈过程中计算嵌入和简化以找到使惩罚函数最小化的可嵌入简化的算法。惩罚函数可以由用户或由另一种方法或算法提供。

图12是在混合计算系统中用于计算简化及其嵌入的示例操作方法1200的流程图。方法1200在包括量子处理器和经典处理器的混合计算系统(例如图1的混合计算系统100)上执行,并且将参考混合计算系统100进行描述。方法1200可以用作方法200(图2)、300(图3)、400(图4)、500(图5)、600(图6)、700(图7)、800(图8)和900(图9)的一部分以减小问题的输入规模并将该问题嵌入到量子处理器中。

方法1200包括动作1201至1211;然而,本领域技术人员将理解,动作的数量是示例,并且在一些实施方式中,可以省略某些动作,可以添加其他动作,和/或可以改变动作的顺序。

方法1200例如响应于来自其他例程的调用而在1201处开始。

在1202处,混合计算系统100接收简化惩罚产生函数X。简化惩罚产生函数X为每个有序S节点对(u,v)分配惩罚X(u,v)。简化惩罚产生函数X可以作为方法1200的一组输入的一部分被接收。

在1203处,混合计算系统100基于1202的简化惩罚产生函数X确定新的惩罚函数

在1204处,混合计算系统100根据1203的惩罚函数W’确定S到T的重叠嵌入ε。混合计算系统100可以使用启发式嵌入来产生重叠嵌入。

在1205处,混合计算系统100确定在1204处确定的重叠嵌入ε是否包含重叠链。如果ε包含重叠链,则控制传递到1206,否则传递到1211,在此方法1200终止。

在1206处,混合计算系统100对于每个T节点q,计算S节点集Y(q)={v:q∈ε(v)}。

在1207处,混合计算系统100从图G选择一丛边缘M,其中G被定义为对于任何q如果则具有边缘(u,v)并且边缘权重为1(u,v)的图。混合计算系统100可以根据几种技术来选择丛M。在一个实施方式中,M可以是包含单个边缘的单元素集,该单个边缘是在根据边缘权重的分布下随机选择的。可替代地,M可以是G的最大权重匹配。在另一个实施方式中,M可以是通过随机(其概率根据边缘权重而定)添加边缘来构造的丛。在又另一个实施方式中,边缘权重将进一步增加,增加量为ε(u)∪ε(v)的大小、诱导图T[ε(u)∪(v)]的直径、或预测合并链的性能的更复杂度量。

在12008处,混合计算系统100确定简化的伊辛问题。对于每个(a,b)∈M,混合计算系统100指定(σa≡±σb)并简化b。混合计算系统100可以根据多种技术选择符号。在一个实施方式中,在存在可用的历史样本语料库的情况下,取单个样本并且基于该样本选择每个关系式的符号。可替代地,在存在可用的历史样本语料库的情况下,从在该语料库中看到的关系式中选择每个关系式的符号((σa≡σb)与(σa≡-σb)),该符号是根据每个关系式的样本能量来分配的。在又另一实施方式中,当问题已经被简化时,例如在方法1200的连续迭代中,混合计算系统100从辅助求解器收集样本语料库并根据上述技术之一确定每个关系式的符号。在至少一个实施方式中,边缘和符号的选择是通过选择使简化的伊辛问题的哈密顿量中的最大幅值hi和Ji,j最小化的那些边缘和符号来协力进行的。在这些或其他实施方式中,收缩可以附加地考虑在低能态内观察到的统计数据、以及限制于每个聚类的能量函数。

在12009处,混合计算系统100简化惩罚函数。混合计算系统100可以根据几种技术来简化X。在一个实施方式中,对于M中的每个(a,b),混合计算系统100设定X(a,x):=(a,x)+X(b,x)和X(x,b):=(x,a)+X(x,b),归一化到区间(0,1。可替代地,当根据样本语料库计算X时,混合计算系统100根据1208的符号选择来过滤语料库并在简化后的语料库上重新计算X。在又另一实施方式中,混合计算系统100通过辅助求解器根据1208的简化的伊辛问题计算样本,并根据所获得的样本重新计算X。

在1210处,混合计算系统100简化嵌入ε。混合计算系统100可以根据几种不同的技术来简化嵌入ε。在一个实施方式中,混合计算系统100设定对于M中的每个(a,b),ε(a):=ε(a)∪ε(b),然后通过启发式求解器针对1208的简化的伊辛问题改进嵌入ε。可替代地,混合计算系统100通过启发式求解器确定新的嵌入ε,在某些情况下,该新的嵌入可以是重叠嵌入。

在12011处,方法1200终止,直到例如再次被调用。

列举的示例实施例

以下列举的示例实施例提供了本发明的非限制性示例实施例的特征和特征组合的示例。

示例实施例1。一种操作混合计算系统的方法,该混合计算系统包括量子处理器和经典处理器,该方法包括:

通过该经典处理器将算法应用于具有n个群体变量的输入的问题;

通过该经典处理器将该具有n个群体变量的输入转换为具有k个群体变量的简化输入,其中,k≤n;

通过该量子处理器根据该简化输入获得样本Sr;以及

通过该经典处理器扩展这些样本Sr以获得该问题的一组修改状态。

示例实施例2。根据示例实施例1所述的方法,其中,通过该经典处理器将算法应用于具有n个群体变量的输入的问题包括:通过该经典处理器将并行回火算法应用于具有n个群体变量的输入的问题。

示例实施例3。根据示例实施例1或2所述的方法,其中,将该具有n个群体变量的输入转换为具有k个群体变量的简化输入,其中,k≤n,包括:将该n个群体变量划分为k个聚类,以及对该k个聚类中的每一个进行收缩以产生具有k个群体变量的简化输入。

示例实施例4。根据示例实施例3所述的方法,其中,对该k个聚类中的每一个进行收缩以产生具有k个群体变量的简化输入包括:相对于低能态s对该k个聚类中的每一个进行收缩以产生具有k个群体变量的简化输入,并且扩展这些样本Sr以获得该问题的一组修改状态包括:相对于低能态s扩展这些样本Sr以获得该问题的一组修改状态。

示例实施例5。根据示例实施例4所述的方法,其中,相对于低能态s对该k个聚类中的每一个进行收缩包括:基于每个聚类中的所有群体变量在该状态s下的值使这些群体变量相对于彼此夹紧。

示例实施例6。根据示例实施例5所述的方法,其中,相对于低能态s对该k个聚类中的每一个进行收缩包括:基于该聚类创建新状态s。

示例实施例7。根据示例实施例3所述的方法,其中,将该n个群体变量划分为k个聚类包括:使用低能态子集将该n个群体变量划分为k个聚类。

示例实施例8。根据示例实施例7所述的方法,其中,对该k个聚类中的每一个进行收缩包括:相对于该低能态子集对每个聚类中的所有群体变量的值求平均。

示例实施例9。根据示例实施例7或8所述的方法,其中,使用低能态子集将该n个群体变量划分为k个聚类包括:通过不加权算术平均组对方法算法将该n个群体变量划分为k个聚类。

示例实施例10。根据示例实施例9所述的方法,其中,通过不加权算术平均组对方法算法将该n个群体变量划分为k个聚类包括:通过使用成对熵作为距离度量的不加权算术平均组对方法算法将该n个群体变量划分为k个聚类。

示例实施例11。根据示例实施例6所述的方法,其中,基于该聚类创建新状态s包括:使用启发式求解器为每个聚类创建新状态s。

示例实施例12。根据示例实施例1至11中任一项所述的方法,其中,通过该量子处理器根据该简化输入获得样本Sr包括:在通过该量子处理器根据该简化输入获得样本Sr之前,通过该经典处理器将嵌入算法应用于具有该简化输入的该问题。

示例实施例13。根据示例实施例1至12中任一项所述的方法,进一步包括:

迭代重复直到满足退出条件:

通过该经典处理器将算法应用于该问题;

通过该经典处理器将该具有n个群体变量的输入转换为具有k个群体变量的简化输入,其中,k≤n;

通过该量子处理器根据该简化输入获得样本Sr

通过该经典处理器扩展这些样本Sr以获得该问题的一组修改状态;以及

将这些修改状态整合到该问题中。

示例实施例14。根据示例实施例13所述的方法,进一步包括确定是否已经满足退出条件。

示例实施例15。根据示例实施例14所述的方法,其中,确定是否已经满足退出条件包括确定是否满足这些群体变量的质量度量。

示例实施例16。一种混合计算系统,该混合计算系统包括量子处理器和经典处理器,该经典处理器可操作以:

将算法应用于具有n个群体变量的输入的问题;

将该具有n个群体变量的输入转换为具有k个群体变量的简化输入,其中,k≤n;

从该量子处理器根据该简化输入获得样本Sr;以及

扩展这些样本Sr以获得该问题的一组修改状态。

示例实施例17。根据示例实施例16所述的系统,其中,该算法是并行回火算法。

示例实施例18。根据示例实施例16或17所述的系统,其中,该经典处理器可操作以将该n个群体变量划分为k个聚类,并对该k个聚类中的每一个进行收缩以产生具有k个变量的简化输入。

示例实施例19。根据示例实施例18所述的系统,其中,相对于低能态s对该k个聚类中的每一个进行收缩,并且相对于低能态s扩展这些样本Sr

示例实施例20。根据示例实施例19所述的系统,其中,基于每个聚类中的所有群体变量在该状态s下的值使这些群体变量相对于彼此夹紧。

示例实施例21。根据示例实施例18所述的系统,其中,使用低能态子集将该n个群体变量划分为k个聚类。

示例实施例22。根据示例实施例21所述的系统,其中,相对于该低能态子集对每个聚类中的所有群体变量的值求平均。

示例实施例23。根据示例实施例21或22所述的系统,其中,通过不加权算术平均组对方法算法将该n个群体变量划分为k个聚类。

示例实施例24。根据示例实施例23所述的系统,其中,该不加权算术平均组对方法算法使用成对熵作为距离度量。

示例实施例25。根据示例实施例20所述的系统,其中,基于该聚类创建新状态s。

示例实施例26。根据示例实施例25所述的系统,其中,使用启发式求解器为每个聚类创建新状态s。

示例实施例27。根据示例实施例16至26中任一项所述的系统,其中,该经典处理器可操作以在从该量子处理器根据该简化输入获得样本Sr之前,通过嵌入算法来嵌入具有该简化输入的该问题。

示例实施例28。一种操作混合计算系统的方法,该混合计算系统包括量子处理器和经典处理器,该方法包括:

通过该经典处理器相对于状态s生成关于问题的多个变量修改提议;

通过该经典处理器制定与接受该多个变量修改提议的子集的能量变化相对应的二次无约束二元优化问题;以及

通过该量子处理器求解该二次无约束二元优化问题。

示例实施例29。根据示例实施例28所述的方法,其中,生成关于问题的多个变量修改提议包括:生成关于由以下各项之一组成的问题的多个变量修改提议:二次约束二元优化问题和整数二次规划问题。

示例实施例30。根据示例实施例28或29所述的方法,其中,相对于状态s生成多个变量修改提议包括:相对于随机状态s生成关于问题的多个变量修改提议。

示例实施例31。根据示例实施例28至30中任一项所述的方法,其中,通过经典处理器相对于状态s生成多个变量修改提议包括:生成多个变量修改提议,使得没有两个提议修改同一个变量,并且不超过两个提议影响该二次无约束二元优化问题的成本函数的项。

示例实施例32。根据示例实施例28至31中任一项所述的方法,进一步包括通过接受通过求解该二次无约束二元优化问题而指定的该多个变量修改提议的子集来修改该状态s;以及迭代重复直到已经满足退出条件:

通过该经典处理器相对于状态sn-1生成多个变量修改提议;

通过该经典处理器制定与接受这些变量修改提议的子集的能量变化相对应的二次无约束二元优化问题;

通过该量子处理器求解该二次无约束二元优化问题;以及

通过接受通过求解该二次无约束二元优化问题而指定的这些提议的子集,将该状态sn-1修改为状态sn

示例实施例33。根据示例实施例32所述的方法,进一步包括确定是否已经满足该退出条件。

示例实施例34。根据示例实施例33所述的方法,其中,确定是否已经满足该退出条件包括:确定是否已经满足来自以下各项的组中的至少一个条件:迭代次数、以及该状态sn满足质量度量。

示例实施例35。一种混合计算系统,该混合计算系统包括经典处理器和量子处理器,该经典处理器可操作以:

相对于状态s生成关于问题的多个变量修改提议;

制定与接受该多个变量修改提议的子集的能量变化相对应的二次无约束二元优化问题;以及

使该量子处理器求解该二次无约束二元优化问题。

示例实施例36。根据示例实施例35所述的系统,其中,该问题是以下各项中的至少一项:二次约束二元优化问题和整数二次规划问题。

示例实施例37。根据示例实施例35或36所述的系统,其中,该状态s是随机状态s。

示例实施例38。根据示例实施例35至37中任一项所述的系统,其中,该经典处理器可操作以生成多个变量修改提议,使得没有两个提议修改同一个变量,并且不超过两个提议影响该二次无约束二元优化问题的成本函数的项。

示例实施例39。根据示例实施例35至38中任一项所述的系统,其中,该经典处理器进一步可操作以通过接受通过求解该二次无约束二元优化问题而指定的该多个变量修改提议的子集来修改该状态s;以及迭代重复直到已经满足退出条件:

相对于状态sn-1生成多个变量修改提议;

制定与接受这些变量修改提议的子集的能量变化相对应的二次无约束二元优化问题;

使该量子处理器求解该二次无约束二元优化问题;以及

通过接受通过求解该二次无约束二元优化问题而指定的这些提议的子集,将该状态sn-1修改为状态sn

示例实施例40。根据示例实施例39所述的系统,进一步包括可操作以确定是否已经满足该退出条件的该经典处理器。

示例实施例41根据示例实施例40所述的系统,其中,该经典处理器可操作以确定是否已经满足包括以下各项的一组退出条件之一:经过的迭代次数、以及该状态sn满足质量度量。

以上描述的(多种)方法、(多个)过程、或(多种)技术可以通过存储在一个或多个非暂态处理器可读介质上的一系列处理器可读指令来实施。以上描述的(多种)方法、(多个)过程、或(多种)技术方法的一些示例部分地是由专用设备比如绝热量子计算机或量子退火器、或对绝热量子计算机或量子退火器进行编程或以其他方式控制其操作的系统(例如包括至少一个数字处理器的计算机)来执行。以上描述的(多种)方法、(多个)过程、或(多种)技术可以包括各种动作,但本领域技术人员应了解的是,在替代性示例中可以省略某些动作,和/或可以添加附加动作。本领域技术人员还应了解的是,所展示的动作顺序是仅出于示例目的而示出的并且可以在替代性示例中改变。上文所描述的(多种)方法、(多个)过程、或(多种)技术的示例动作或操作中的一些被迭代地执行。可以在每次迭代期间、在多次迭代之后、或在所有迭代结束时执行上文所描述的(多种)方法、(多个)过程、或(多种)技术中的一些动作。

对所展示的实施方式的以上描述(包括摘要中所描述的内容)并非旨在是穷尽性的或将实施方式限于所披露的精确形式。如相关领域的技术人员将认识到的,尽管本文出于说明性目的描述了具体实施方式和示例,但是可以在不脱离本披露内容的精神和范围的情况下做出各种等效修改。本文所提供的各种实施方式的传授内容可以应用于量子计算的其他方法,并不一定是上文总体上所描述的示例量子计算方法。

上文所描述的各种实施方式可以被组合以提供进一步的实施方式。在本说明书中提及的和/或在申请数据表中列出的所有普通转让的美国专利申请出版物、美国专利申请、外国专利和外国专利申请的全部内容通过引用并入本文,包括但不限于:美国专利7,533,068

鉴于以上详细描述,可以对实施方式做出这些和其他改变。通常,在以下权利要求中,所使用的术语不应该被解释为将权利要求限制为本说明书和权利要求中披露的具体实施方式,而是应该被解释为包括所有可能的实施方式,连同此权利要求有权获得的等效物的整个范围。因此,权利要求不受本披露内容的限制。

37页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:信息处理装置、信息处理方法以及信息处理程序

网友询问留言

已有0条留言

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

精彩留言,会给你点赞!