多状态量子优化引擎的制作方法

文档序号:15616527发布日期:2018-10-09 21:31阅读:252来源:国知局

本公开一般地涉及量子计算,更具体地涉及多状态量子优化引擎。



背景技术:

优化任务是从针对问题的所有可行解中找到对问题的最佳解的任务。为了执行优化任务,可以对量子硬件(例如量子计算设备)进行构造和编程,以将对对应机器优化问题的解编码成表征量子硬件的多体量子哈密尔顿量的能量谱。例如,解被编码为哈密尔顿量的基态。



技术实现要素:

本说明书涉及使用多状态量子优化引擎来求解优化任务。优化引擎通过对多个量子计算设备进行嵌套调用来生成对优化任务的解。可以执行对量子计算设备的第一次调用以生成对优化任务的一个或多个局部解。可以执行对量子计算设备的第二次调用以基于所生成的一个或多个局部解来生成对优化任务的全局解。

通常,本说明书中所描述的主题的一个创新方面可以在用于使用包括多个计算资源的系统来求解优化任务的方法中实现,其中多个计算资源包括至少一个量子计算资源,该方法包括如下动作:接收输入数据,该输入数据包括(i)指定要求解的优化任务的数据,以及(ii)指定用于求解优化任务的任务目标的数据,该任务目标包括一个或多个局部任务目标和一个或多个全局任务目标;基于局部任务目标来处理接收到的输入数据以获得对优化任务的一个或多个初始解,其中从第一量子计算资源获得至少一个初始解;以及使用第二量子计算资源基于全局任务目标来处理所生成的一个或多个初始解以生成对优化任务的全局解。

该方面的其他实现包括对应的计算机系统、装置和记录在一个或多个计算机储存设备上的计算机程序,其每一个被配置为执行该方法的动作。一个或多个计算机的系统可以被配置为借助于在系统上安装在操作中致使系统执行该动作的软件、固件、硬件或其组合来执行特定的操作或动作。一个或多个计算机程序可以被配置为借助于包括当由数据处理装置执行时使该装置执行动作的指令来执行特定的操作或动作。

前述和其他实现可以单独或组合地各自可选地包括以下特征中的一个或多个。在一些实现中,该方法还包括将所生成的对优化任务的全局解与全局任务目标进行比较,以确定所生成的全局解是否充分满足全局任务目标。

在一些实现中,该方法还包括响应于确定所生成的全局解充分满足全局任务目标,提供表示对优化任务的一个或多个初始解的数据作为输出。

在一些实现中,该方法还包括:响应于确定所生成的全局解未充分满足全局任务目标:生成经修改的输入数据,其包括(i)指定要求解的优化任务的数据,以及(ii)用于求解该优化任务的经修改的局部任务目标;基于经修改的局部任务目标来处理接收到的经修改的输入数据以获得对优化任务的一个或多个经修改的解;以及使用第二量子计算资源基于全局任务目标来处理所生成的一个或多个经修改的解,以生成对优化任务的经修改的全局解。

在一些实现中,生成经修改的输入数据包括将深度学习正则化技术应用于所接收到的输入数据以生成经偏置的输入数据。

在一些实现中,处理接收到的输入数据以生成对优化任务的一个或多个初始局部解包括:将优化任务划分成一个或多个子任务;并针对每个子任务:标识与该子任务相关的局部任务目标;将(i)子任务和(ii)所识别的局部任务目标路由到系统中包括的相应计算资源;以及从系统中包括的相应计算资源中获得对子任务的相应解。

在一些实现中,将优化任务划分成一个或多个子任务包括将优化任务表示为图并将图划分成最小连接的子图。

在一些实现中,基于全局任务目标来处理所生成的一个或多个初始局部解以获得对优化任务的全局解还包括:基于全局任务目标来处理所生成的一个或多个初始局部解和附加数据以获得对优化任务的全局解,附加数据包括以下中的一个或多个:(i)表示在预定时间范围内获得的对先前接收的优化任务的全局解的数据,(ii)表示在剩余的预定时间范围内对未来接收到的优化任务的预测的数据,(iii)表示独立于全局任务目标的对优化任务的解的数据。

在一些实现中,第二量子计算资源是量子退火机。

在一些实现中,基于全局任务目标的对优化任务的全局解被编码成表征量子退火机的问题哈密尔顿量的能量谱。

在一些实现中,处理所生成的一个或多个初始局部解以获得对优化任务的全局解包括:至少基于表示在剩余的预定时间范围内对未来接收到的优化任务的预测的数据来执行量子退火调度任务。

在一些实现中,基于局部任务目标来处理接收到的输入数据以获得对优化任务的一个或多个初始解包括执行第一组算法;使用第二量子计算资源基于全局任务目标来处理所生成的一个或多个初始解以生成对优化任务的全局解包括执行第二组算法;第一组算法与第二组算法不同。

在一些实现中,对优化任务的初始解包括对优化任务的概率解。

在一些实现中,指定用于求解优化任务的任务目标的所接收到的输入数据包括静态数据和实时数据。

在一些实现中,多个计算资源包括(i)量子门计算机,(ii)量子退火机,或(iii)量子模拟器中的一个或多个。

本说明书中描述的主题可以以特定方式实现,以便实现以下优点中的一个或多个。

对于一些优化任务,与经典设备相比,量子计算设备可以在计算速度方面提供改善。例如,量子计算机可以在针对诸如数据库搜索或评估nand树等任务的速度方面实现改善。作为另一个示例,量子退火机与经典退火机相比,对于一些优化任务可以在计算速度方面实现改善。例如,确定与优化任务相关联的复杂多样的全局最小值或最大值是极具挑战性的任务。在一些情况下,使用量子退火机求解优化任务可能是使用经典计算设备的准确而有效的替代方案。

如本说明书中所描述的,多状态量子优化引擎使用对量子计算设备的嵌套调用来求解优化任务。多状态量子优化引擎使用经典和量子计算设备二者,与不包括经典和量子计算设备二者的优化引擎相比,提高了优化引擎的计算能力。另外,通过使用对量子计算设备的嵌套调用,多状态量子优化引擎可以迭代地确定对优化任务的一个或多个局部解,其一起实现了优化任务的一个或多个全局目标。这样的局部解可以被用来在定义优化任务的系统上执行动作,提高系统的效率和/或成本效益。此外,通过并入动态输入数据,多状态量子优化引擎可以生成实时相关且有效的对优化任务的全局或局部解。

如本说明书中所描述的,多状态量子优化引擎可以被用来求解来自广泛应用范围的优化任务,包括但不限于机器学习、采样/蒙特卡罗、信息安全、模式识别、图像分析、系统设计、精准农业、调度、网络设计和生物信息学。此外,多状态量子优化引擎可以被用来提供复杂的实时推荐支持。

典型地,可以由纯经典多状态系统有效描述的变量的数量受到限制。如本说明书所述,多状态量子优化引擎以这样的方式将量子技术与经典技术相结合,使得与传统多状态系统相比允许系统描述更多的变量。另外,多状态量子优化引擎可以应用计算任务的球体描述,并应用从球体核心向表面的多壳投影。因此,由多状态量子优化引擎生成的对计算任务的解可能比由经典多状态优化系统生成的解更准确。另外,多状态量子优化引擎可以被应用于比经典多状态系统更广泛的计算任务范围。

在下面的附图和描述中阐述了本说明书的主题的一个或多个实现的细节。主题的其他特征、方面和优点将从说明书、附图和权利要求中变得明显。

附图说明

图1a描绘了示例多状态量子优化引擎。

图1b描述了全局搜索空间和局部搜索空间的示例可视化。

图2描绘了示例全局优化引擎。

图3是用于基于一个或多个全局任务目标生成对优化任务的全局解的示例过程的流程图。

图4是基于一个或多个全局任务目标生成对优化任务的一个或多个局部解的示例迭代的流程图。

各附图中,相同的附图标号和标记指代相同的元件。

具体实施方式

本说明书描述了用于使用对一个或多个量子计算设备的嵌套调用来执行优化任务——例如优化任务——的系统和方法。量子计算设备包括量子退火机,以及可选的量子模拟器或量子门计算机。系统接收指定要求解的优化任务的输入数据和对应的任务目标。对包括至少一个量子计算设备的一组计算设备的第一组调用获得对优化任务的一组初始局部解,例如局部最优解。基于该组初始局部解,对计算设备——特别是量子退火机——的第二组调用获得对优化任务的解,例如全局最优解。

在一些情况下,所获得的解可以与对于优化任务的全局任务目标——例如,全局目的——进行比较。如果所获得的解充分满足全局任务目标,则可以使用对应的初始解来确定要采取的一个或多个动作,例如对优化任务参数的调整。如果所获得的解未充分满足全局任务目标,则系统可以基于经修改的输入数据迭代地重复获得对优化任务的解的过程,直到获得充分满足全局任务目标的解。

操作环境示例

图1a描绘了示例多状态量子优化引擎100。多状态量子优化引擎100是被实现为一个或多个位置中的一个或多个经典或量子计算设备上的计算机程序的系统的示例,其中可以实现如下所述的系统、组件和技术。多状态量子优化引擎100的组件可以通过数字和/或量子数据通信网络互连。

多状态量子优化引擎100被配置为接收作为表示要求解的优化任务的输入数据,例如输入数据102。例如,在一些情况下,多状态量子优化引擎100可以被配置为求解多个优化任务,并且输入数据102可以是指定多个优化任务中的一个的数据。表示要求解的优化任务的输入数据102可以指定优化任务的一个或多个属性、与优化任务相关联的参数——例如表示优化任务的目标函数在其上将被优化的参数、以及参数的一个或多个值。在一些情况下,输入数据102可以包括静态输入数据和动态输入数据,例如实时输入数据。

例如,输入数据102可以是表示优化供水网络的设计的任务的数据,例如,用以改善由该网络递送的水量或者减少该网络中的水浪费量。在该示例中,输入数据102可以包括表示供水网络的一个或多个属性的静态输入数据,例如可用水管的总数、可用连接节点的总数或可用水箱的总数。另外,输入数据102可以包括表示与优化任务相关联的一个或多个参数的数据,例如每个管道中的水压水平、在每个连接节点处的水压水平、在每个水箱中的水位的高度、遍及网络中的水中的化学物的浓度、水龄或水源。此外,输入数据102可以包括表示供水网络的一个或多个当前属性或参数值的动态输入数据,例如使用中的水管的当前数量、每个管道中的当前水压水平、水中的当前化学物的浓度、或当前的水温。

在一些实现中,输入数据102可以进一步包括指定与优化任务相关联的一个或多个任务目标的数据。任务目标可以包括局部任务目标和全局任务目标。局部任务目标可以包括在求解优化任务时要考虑的局部目的,例如对优化任务的解的局部目标。例如,局部目标可以包括对优化任务变量子集值的约束。全局任务目标可以包括在求解优化任务时要考虑的全局目的,例如对优化任务的解的全局目标。

例如,继续优化供水网络的任务的上述示例,输入数据102可以进一步包括指定局部任务目标的数据,诸如对水中的化学物的浓度以及使用中的水管的数量的约束,例如将化学物浓度约束在0.2%到0.5%之间,例如将水管的总数约束到小于1000。局部任务目标的另一个示例可以是优化供水网络的特定部分。另外,输入数据102还可以包括指定全局任务目标(诸如一个或多个全局目的)的数据,例如,将浪费水量保持在2%以下的目的或每天分配至少1000万加仑水的目的。

在其他实现中,指定与优化任务相关联的一个或多个任务目标的数据可以被存储在多状态量子优化引擎100中,例如存储在任务目标数据存储库112中。例如,如上所述,多状态量子优化引擎100可以被配置为求解多个优化任务,并且输入数据102可以是指定多个优化任务中的一个的数据。在该示例中,多状态量子优化引擎100可以被配置为存储与其被配置来执行的每个优化任务相对应的任务目标。为了方便起见,在整个本文的剩余部分中,指定与优化相关联的一个或多个任务目标的数据被描述为被存储在任务目标数据存储库112中。

多状态量子优化引擎100被配置为处理接收到的输入数据102以生成输出数据104。在一些实现中,所生成的输出数据104可以包括表示对由输入数据102所指定的优化任务的全局解的数据,例如基于一个或多个全局任务目标112b的对优化任务的全局解。下面参考图2和图3,更详细地描述处理表示要求解的优化任务以及用于求解优化任务的一个或多个目标的接收到的输入数据以生成表示对优化任务的全局解的输出数据。

在其它实现中或另外地,输出数据104可以包括表示优化任务的一个或多个局部解的数据,例如,基于局部任务目标112a和全局任务目标112b的对优化任务的一个或多个初始解。对优化任务的局部解可以包括对优化任务的子任务的解。例如,局部解可以包括在与优化任务相关联的参数的子集上是最优的解,例如,其中该子集由局部任务目标112a指定。也就是说,局部解可以包括在优化任务的全局搜索空间的子空间或局部空间上是最优的解。例如,局部空间可以是将表示全局搜索空间的多维样条投影到二维基础空间的结果。全局搜索空间和局部空间的示例可视化150在图1b中被示出。在图1b中,多维样条152表示全局搜索空间,并且二维基础空间154表示局部空间。

作为另一个示例,在优化任务是可分离任务——例如可以被写为多个子任务之和的任务的情况下,局部解可以包括对子任务之和中的每个子任务的最优解,例如,其中子任务由局部任务目标112a指定。下面参考图4更详细地描述基于一个或多个局部和全局任务目标来生成对优化任务的一个或多个局部解。

例如,继续优化供水网络的任务的上述示例,输出数据104可以包括表示与供水网络优化任务相关联的上述参数的全局最优配置(对于全局任务目标,例如浪费目的和生产率目的)的数据。可替代地或另外地,输出数据104可以包括表示对供水网络优化任务的多个局部解的数据,例如,指定要使用的最优水管数量的数据、每个管道中的相关联的水压或者在流过网络的水中的化学物的浓度。在一些实现中,由局部解所指定的参数值可以与由全局解指定的参数值相同。在其他实现中,由局部解指定的参数值可以与由全局解指定的参数值不同,例如,局部解可能建议化学物浓度为0.4%,而全局解可能建议化学物浓度为0.3%。

输出数据104可以被用来发起与由输入数据102指定的优化任务相关联的一个或多个动作,例如动作138。例如,继续优化供水网络任务的上述示例,输出数据104可以被用来调整供水网络中的一个或多个参数,例如增加或减少当前的水化学物浓度、增加或减少使用中的水管的数量、或者增加或减少一个或多个水管压力。

可选地,多状态量子优化引擎100可以包括集成层114和代理136。集成层114可以被配置为管理接收到的输入数据,例如输入数据102。例如,集成层114可以管理数据传送连通性、管理数据访问授权或监视进入系统100的数据馈送。

代理136可以被配置为从多状态量子优化引擎接收输出数据104并且生成要采取的一个或多个动作,例如动作138。动作可以包括局部动作,例如对优化参数的子集的调整,其有助于实现优化任务的局部和全局目的,如以下参考图4更详细描述的。

多状态量子优化引擎100包括全局优化引擎106,该全局优化引擎106又包括局部优化引擎108。全局优化引擎106被配置为接收输入数据102和由输入数据102指定的针对优化任务的任务目标112,并将输入数据102和一个或多个局部任务目标112a提供给局部优化引擎108。

局部优化引擎108被配置为基于一个或多个局部任务目标112a来处理接收到的数据来获得对优化任务的一个或多个初始解,例如,对优化任务的一个或多个局部解。

在一些实现中,局部优化引擎108可以被配置为使用包括在局部优化引擎108中或以其他方式包括在多状态量子优化引擎100中的一个或多个计算资源来处理接收到的数据。在其他实现中,局部优化引擎可以被配置为使用一个或多个外部计算资源(例如,附加的计算资源110a-110d)来处理接收到的数据。例如,局部优化引擎108可以被配置为分析表示要求解的优化任务的接收到的输入数据102和表示对应的局部任务目标112a的数据,并且将与基于局部任务目标112a来求解优化任务相关联的一个或多个计算外包给附加的计算资源110a-110d。

附加的计算资源110a-110d可以包括多个量子退火机计算资源,例如量子退火机110a。量子退火机是被配置为执行量子退火(用于使用量子隧道效应来在给定的候选状态集合上找到给定目标函数的全局最小值的过程)的设备。量子隧道效应是一种量子力学现象,其中量子力学系统克服了以经典方式描述的系统所无法克服的能量格局中的局部化障碍。下面参考图2更详细地描述示例性量子退火机。

附加的计算资源110a-110d可以包括一个或多个量子门处理器,例如量子门处理器110b。量子门处理器包括一个或多个量子电路,即用于量子计算的模型,其中使用在多个量子位(量子比特)上操作的量子逻辑门的序列来执行计算。

附加的计算资源110a-110d可以包括一个或多个量子模拟器,例如量子模拟器110c。量子模拟器是一种量子计算机,其可以被编程来模拟其他量子系统及其属性。示例量子模拟器包括实验平台,诸如超冷量子气体的系统、捕获的离子、光子系统或超导电路。

附加的计算资源110a-110d可以包括一个或多个经典处理器,例如经典处理器110d。在一些实现中,一个或多个经典处理器(例如经典处理器110d)可以包括超级计算机,即具有高级计算能力的计算机。例如,经典处理器110d可以表示具有大量处理器的计算系统,例如分布式计算系统或计算机集群。

多状态量子优化引擎100包括路由器132,该路由器132被配置为确定将哪些计算(如果有的话)外包给附加的计算资源110a-110d。确定将哪些计算(如果有的话)外包给附加的计算资源110a-110d取决于多个因素,包括计算的类型、附加的计算资源110a-110d的当前可用性、运行附加的计算资源110a-110d的成本、以及优化任务的类型。例如,在一些情况下,附加的计算资源可以被配置为仅执行有限数量的特定优化任务或优化任务的类型。

可选地,多状态量子优化引擎100可以包括监视模块128。监视模块128被配置为监视去往和来自一个或多个附加的计算资源110a-d的事务以及在其之间的交互。例如,监视模块128可以被配置为检测对一个或多个附加的计算资源110a-d的失败的或卡住的调用。可导致对一个或多个附加的计算资源110a-d的调用失败或卡住的示例故障包括系统100中所包括的传送层的问题,即,关于数据通过云而被移动的问题、关于安全登录故障的问题,或关于附加的计算资源110a-d自身的问题,例如附加的计算资源110a-d的性能或可用性。监视模块128可以被配置为处理检测到的对一个或多个附加的计算资源110a-d的失败或卡住的调用,并且确定系统100响应失败或卡住的调用而采取的一个或多个纠正动作。可替代地,监视模块128可以被配置为向系统100的其他组件——例如,全局优化引擎106或路由器132——通知所检测到的对一个或多个附加的计算资源110a-d的失败或卡住的调用。

例如,如果将一个或多个计算外包给特定的量子计算资源,并且特定的量子计算资源突然变得不可用或者处理外包的计算太慢,则监视模块128可以被配置为通知系统100的相关组件,例如路由器132或全局优化引擎106。监视系统128还可以被配置为向系统的相关组件提供建议的纠正动作,例如,指示系统100将计算外包给不同的计算资源或使用相同的计算资源对计算进行重操作。通常,所建议的纠正动作可以包括保持系统100实时成功运行的动作——例如,即使当系统100外部发生资源恶化时。

可选地,多状态量子优化引擎100可以包括安全组件130。安全组件130可以被配置为执行与系统100的安全相关的操作。示例操作包括但不限于防止系统入侵、检测系统入侵、向外部系统提供认证、加密由系统100接收和输出的数据、以及防止和/或补救拒绝服务(dos)。

局部优化引擎108被配置为向全局优化引擎106提供对优化任务的一个或多个所获得的初始解。全局优化引擎106被配置为基于全局任务目标112b使用量子计算资源来处理接收到的对优化任务的一个或多个初始解以生成对优化任务的全局解。下面参考图2、图3和图4更详细地描述基于对优化任务的一个或多个初始解以及基于一个或多个全局任务目标生成对优化任务的全局解。

可选地,多状态量子优化引擎100可以包括子图模块122。子图模块122可以被配置为将优化任务划分成多个子任务。例如,子图模块122可以被配置为分析指定要求解的优化任务的数据,并且将优化任务映射到多个最小连接的子图。可以将最小连接的子图提供给全局优化引擎以供处理,例如,这样的处理可以涉及将子图提供给附加的计算资源110a-110d。

可选地,多状态量子优化引擎100可以包括高速缓存124。高速缓存124被配置为存储之前多状态量子优化引擎已经被用来求解的优化任务的先前生成的初始解和全局解。在某些情况下,这可以包括对同一优化任务的初始和全局解,例如具有不同的任务目标或不同的动态输入数据。在其他情况下,这可以包括对不同优化任务的初始和全局解。高速缓存124可以被配置为存储来自指定感兴趣时间范围的对先前接收的优化任务的先前生成的初始解和全局解,例如,在过去24小时内生成的初始和全局解。高速缓存可以存储初始和全局解(其具有标识解所属的优化任务的对应标签)、与初始和全局解相关联的任务目标、以及与优化任务相关联的系统输入数据。

在操作期间,全局优化引擎106和局部优化引擎108可以被配置为查询高速缓存124以确定高速缓存中是否存在对具有对应任务目标的接收到的优化任务的现有的初始或全局解。如果确定存在现有的初始或全局解,则局部优化引擎和全局优化引擎可以取回解并将解直接提供为输出,例如作为输出数据104。如果确定现有的初始或全局解不存在,则局部优化引擎106和全局优化引擎108可以如上所述地处理接收到的数据。

在一些实现中,系统100可以被配置为确定对相似优化任务的解是否存储在高速缓存124中。例如,系统100可以被配置为将接收到的优化任务与一个或多个其他优化任务——例如先前由系统100接收的优化任务进行比较,并确定一个或多个相应的优化任务的相似性分数。如果所确定的相似性分数中的一个或多个超过预定的相似性阈值,则系统100可以确定该优化任务与另一个优化任务相似,并且可以使用之前获得的对优化任务的解作为对该优化任务的初始解或者作为对该优化任务的最终解。在一些情况下,预先确定相似性阈值可以作为初始学习和参数配置过程的一部分。

可选地,多状态量子优化引擎100可以包括预测模块120。预测模块120预测未来的全局解及其对进入系统100的数据的影响,例如它们对未来输入数据102的影响。在一些实现中,预测模块120可以被配置为在感兴趣的特定时间范围的剩余时间(例如,对于当前24小时时间段的接下来的10小时)内预测未来的全局解。

例如,预测模块120可以包括来自历史时间段的预测数据。可以将预测数据与当前状况和优化任务目标进行比较,以确定当前优化任务和对应任务目标是否与先前看到的优化任务和对应任务目标相似。例如,系统100可以包括针对感兴趣时间段的预测数据,例如,一周中特定的一天中的24小时感兴趣时间段。在该示例中,在稍后时间的该周中的类似的一天,系统100可以使用针对感兴趣时间段的预测数据来确定当前感兴趣时段的状况和优化任务目标是否与先前感兴趣时段的状况和优化任务目标相似。如果确定当前感兴趣时段的状况和优化任务目标与先前感兴趣时段的状况和优化任务目标相似,则系统100可以利用先前看到的优化任务的先前结果作为未来预测数据点直到该预测数据点被来自当前计算的实际结果所取代。

作为另一示例,预测模块120可以被配置为接收实时输入数据,该实时输入数据可以被用来预测未来的全局解及其对进入系统100的数据的影响。例如,当前的天气状况可以被用来预测对与供水网络优化或精准农业相关的优化任务的未来全局解。

可选地,多状态量子优化引擎100可以包括数据质量模块116。数据质量模块116被配置为接收输入数据102并分析输入数据102以确定输入数据102的质量。例如,数据质量模块116可以针对一个或多个数据质量度量——例如,完整性、唯一性、及时性、有效性、准确性或一致性——对接收到的输入数据102进行评分。例如,在一些实现中,系统100可以被配置为从物联网(iot)传感器接收数据馈送,该传感器例如跟踪环境内的对象或实体的位置。如果数据质量模块116确定这些对象或实体中的一个在特定时间段内移动了不切实际的距离,则数据质量模块116可以确定接收到的数据馈送的质量是有问题的,并且该数据馈送可能需要被进一步分析或暂停。

每个度量可以与可以被用来确定数据是否具有可接受质量的相应预定分数阈值相关联。例如,如果被评分的输入数据102超过大部分预定分数阈值,则数据质量模块116可以确定输入数据102具有可接受质量。

如果确定输入数据102具有可接受的质量,则数据质量模块116可以被配置为将输入数据102提供给聚合模块118。聚合模块118被配置为接收重复的数据输入,例如包括输入数据102,并组合数据输入。聚合模块118可以被配置为向系统100的其他组件提供组合的数据输入。例如,在一些实现中,系统100可以包括每500ms接收输入数据读数的iot传感器。典型地,系统100或对应于输入数据读数的优化任务可能仅需要每5秒接收输入数据读数。因此,在该示例中,聚合模块118可以被配置为组合和聚合输入读数以便生成更简单的例如低维度的数据输入。在一些情况下,这可以提高由系统100执行的进一步计算的效率。

如果确定输入数据102不具有可接受的质量,则数据质量模块116可以被配置成指示系统100处理替代的数据输入,例如作为来自先前数据输入的平均值的或从当前数据流外推的数据输入。可替代地,如果确定特定数据输入的准确性对系统执行一个或多个计算的能力至关重要,则数据质量模块116可以被配置为进入误差条件。在这些示例中,数据质量模块116可以获悉何时以及如何指示系统100通过机器学习训练过程来处理替代的数据输入。

可选地,多状态量子优化引擎100可以包括分析平台126。分析平台126被配置为处理接收到的数据,例如输入数据102或表示对优化任务的一个或多个局部或全局解的数据,并提供与接收到的数据相关的分析和可操作见解。

可选地,多状态量子优化引擎100可以包括工作流程模块134。工作流程模块134可以被配置为提供用于将值指派给优化任务参数、定义优化任务目标以及管理学习过程的用户接口,其中系统可以通过学习过程而被训练。工作流程模块134可以进一步被配置为允许系统100的用户在复杂的目标相关的任务上进行协调,使得可以有效地使用系统100。工作流程模块134还可以被配置为允许各种级别的基于角色的访问控制。例如,工作流程模块134可以被配置为允许初级团队成员修改一些任务目标,但是使得他们不能修改重要的任务目标。以这种方式,工作流程模块134可以减少重要的不希望的动作的可能性,(诸如在供水网络中打开大型总水管被避免)。

图2描绘了如上参考图1a所介绍的示例全局优化引擎106。示例全局优化引擎106包括局部优化引擎108和比较模块206。如上参考图1a所述,全局优化引擎106与至少一个或多个附加的计算资源——例如量子计算资源204以及存储一个或多个任务目标的数据库——例如数据存储库112进行通信。

在操作(a)期间,全局优化引擎106被配置为接收指定要求解的优化任务的输入数据102以及表示优化任务的一个或多个属性和优化任务的参数的数据,如以上参考图1a所描述的。输入数据可以包括静态数据和动态数据。例如,继续以上参考图1a描述的优化供水网络设计的示例优化任务,在操作(a)期间,全局优化引擎106可以接收表示供水网络的各个位置处的水压的当前读数的动态数据和表示流过网络的流体的流体动力学特性的静态数据。

在一些实现中,全局优化引擎106可以被配置为直接接收输入数据102,例如以如上面参考图1a所描述的那样被提供给多状态量子优化引擎100的形式。在其他实现中,全局优化引擎106可以被配置为从多状态量子优化引擎100的另一个组件——例如从集成层114或数据质量模块116接收输入数据102。

全局优化引擎106被配置为将接收到的输入数据102提供给局部优化引擎108。局部优化引擎108被配置为基于被包括在任务目标数据存储库112中的局部任务目标112a来处理输入数据102以获得对优化任务的一个或多个初始解。如上面参考图1a所描述的,对优化任务的初始解可以包括对优化任务的子任务的解。例如,初始解可以包括在与优化任务相关联的参数的子集上是最优的解,或者——在优化任务是可以被写为子任务之和的可分离任务的情况下——可以包括对子任务的解。

在一些实现中,局部优化引擎108可以被配置为处理输入数据102以通过将优化任务划分成一个或多个子任务来获得对优化任务的一个或多个初始解。例如,如上面参考图1所描述的,局部优化引擎108可以与多状态量子优化引擎100的子图组件122进行数据通信,并且可以被配置为向子图组件122提供表示优化任务的数据,并且接收表示多个最小连接的子图的数据,该多个最小连接的子图表示优化问题的子任务。对于每个子任务,局部优化引擎108可以进一步被配置为从任务目标数据存储库112中识别与子任务相关的局部任务目标。局部优化引擎108然后可以被配置为将表示每个子任务的数据与其识别的相应局部任务目标路由到包括在系统中的相应计算资源。包括在系统中的计算资源可以使用第一组算法——例如经典算法或量子算法——来处理接收到的任务。

所获得的一个或多个初始解中的至少一个可以从量子计算资源——例如,量子计算资源204——获得。例如,局部优化引擎108可以被配置为将指定优化任务和一个或多个局部任务目标112a的数据提供给量子退火机。

为了使用量子退火机——例如量子计算资源204——来求解优化任务,包括在量子退火机中的量子硬件208可以被构建和编程来将对优化任务的解编码为表征量子硬件208的多体量子哈密尔顿量hp的能量谱。例如,该解可以被编码在哈密尔顿量hp的基态中。量子硬件208可以被配置为执行绝热量子计算,其以易于准备的、已知的初始哈密尔顿量hi的已知基态开始。随着时间的推移,当已知的初始哈密尔顿量hi演化为用于求解问题的哈密尔顿量hp时,已知的基态演化并保持在演化的哈密尔顿量的瞬时基态中。在演化结束时获得哈密尔顿量hp的基态。然后可以通过测量量子硬件208来读出对优化任务的解。

在操作(b)期间,局部优化引擎108可以被配置为向量子退火机提供表示优化任务210的子任务的数据。例如,局部优化引擎108可以将局部任务目标应用于在阶段(a)接收的数据,并且将表示复杂任务的数据传输到量子计算资源204。

在一些实现中,局部优化引擎108可以被配置为与量子计算资源204进行通信以确定量子硬件208内可用的物理连接和交互,以便将子任务映射到可以由量子计算资源204的量子硬件208来实现的合适的哈密尔顿量hp。局部优化引擎108然后可以被配置为向量子计算资源204提供表示哈密尔顿量hp的数据。在其它实现中,量子计算资源204可以包括一个或多个组件,该一个或多个组件被配置为接收表示子任务和一个或多个子任务目标的数据,并且例如使用量子编译器将接收到的数据编码成可以由量子硬件208实现的合适的哈密尔顿量hp。

在操作(c)期间,全局优化引擎106被配置为从量子计算资源204接收表示对子任务212的初始解——例如,针对局部优化任务的解集合——的数据。全局优化引擎106可以被配置为对比较模块206进行一个或多个调用,参考全局任务目标112b或者参考在该过程的阶段(a)期间接收到的静态数据以确定要发送给量子计算资源214的复杂的全局优化任务。继续上述示例,复杂的全局优化任务的示例可以包括确定采取哪些动作以使得在给定时间段结束时,基于当前的输入数据、预测结果、历史结果和任务约束实现特定的水压、混合或总累积流量。尽管在图2中未示出,但是全局优化引擎106被进一步配置为接收来自其他计算资源——例如,如上面参考图1a所述的附加的计算资源110a-110d——的对其他子任务的初始解的数据。

为了生成优化任务的全局解,在操作(d)期间,全局优化引擎106被配置为向第二量子计算资源214——例如第二量子退火机——提供表示一个或多个初始解的数据,例如包括表示初始解212的数据和表示要求解的优化任务的数据。第二量子计算资源214可以使用第二组算法——例如经典算法或量子算法——来处理接收到的数据。在某些情况下,第二组算法可以与上述第一组算法不同。例如,第一组算法可以包括第一退火调度,并且第二组算法可以包括与第一退火调度不同的第二退火调度。

在一些实现中,全局优化引擎106可以被配置为向第二量子计算资源214提供附加数据。附加数据可以包括但不限于表示全局任务目标112b的数据、表示先前生成的、在预定时间段内对先前所见的优化任务的全局解的数据、或者表示在预定时间段的剩余部分内可能看到的、对优化任务的全局解的预测的数据。例如,作为用于生成对优化任务的最终解的迭代过程的一部分,全局优化引擎106可以向量子计算资源提供对优化任务的中间解。

在一些实现中,全局优化引擎106可以被配置为与第二量子计算资源214——例如第二量子退火机——进行通信,以确定量子硬件218内可用的物理连接和交互,以便将优化任务和附加数据112b、224和226映射到可以由第二量子计算资源214的量子硬件218实现的合适的哈密尔顿量hlp。全局优化引擎106然后可以被配置为向第二量子计算资源214提供表示哈密尔顿量hlp的数据。在其他实现中,量子计算资源214可以包括一个或多个组件,该一个或多个组件被配置为接收表示优化任务和附加数据212b、224和226的数据,并且例如使用量子编译器将接收到的数据编码成可以由量子硬件218来实现的合适的哈密尔顿量。

第二量子计算资源214可以被配置为接收表示一个或多个初始解212、要求解的优化任务、以及附加数据112b、224、226的数据,或者接收表示合适的哈密尔顿量hlp的数据,并且基于接收到的数据执行量子退火调度以便确定对优化任务的全局解。

在一些实现中,由第二量子计算资源214所使用的算法可以基于所预测的全局解而变化。例如,在某些情况下,与优化任务相关联的全局任务目标可以包括对优化任务的全局解的目的全局结果。继续优化供水网络的示例,全局解的目的全局结果可以是:全局解在给定时间单位内将该网络处理的水量最大化。全局优化引擎106因此可以基于全局目的结果来改变由第二量子计算资源所使用的算法(和/或在一些情况下改变量子计算资源的类型),使得第二量子计算资源214以迭代地将所生成的全局解引导至全局目的结果的方式来处理接收到的初始解。

例如,量子多状态优化引擎可以在整个给定时间段(例如一天)内执行一系列局部计算,其中每个局部计算在一天结束时导致有助于实现目的全局结果的结果/动作。在一些设置中,由量子多状态优化引擎接收的输入数据可以包括随时间变化的动态数据,例如来自iot的动态数据。在这些设置中,在给定时间段开始时量子计算资源的选择或者量子计算资源所使用的算法的选择可能导致可能实现或有助于目的全局结果的输出,然而,在给定时间段结束时量子计算资源的同样选择或者量子计算资源所使用的算法同样选择可能不能导致可能实现或有助于目的全局结果的输出。

例如,在给定时间段开始时由量子退火机使用的量子退火调度可以包括横向场强度或表示温度的变量的第一变化率。第一变化率可以取决于局部优化引擎在时间段开始时生成的局部解和输入数据。在某些情况下,局部优化引擎在时间段结束时生成的局部解和输入数据可能与局部优化引擎在时间段开始时生成的局部解和输入数据显著不同。例如,局部解的数量和复杂性和/或输入数据量可能更大。因此,为了提高由第二量子计算资源获得的全局解的准确性,使用具有横向场强度或代表温度的变量的第二变化率量子退火调度可能是有益的。例如,第二变化率可能比第一变化率更慢。

在操作(e)期间,全局优化引擎106被配置为从第二量子计算资源214接收表示对优化任务222的全局解的数据。在一些实现中,在操作(f)期间,全局优化引擎106可以被配置为将表示对优化任务的全局解的数据作为输出直接提供,例如作为输出数据104。在其他实现中,全局优化引擎106可以被配置为向比较模块206提供表示对优化任务222的全局解的数据。

比较模块206被配置为将表示生成的对优化任务222的全局解的数据与表示全局任务目标112b的数据进行比较,以确定生成的全局解222是否充分满足全局任务目标112b。例如,比较模块206可以被配置为将比较函数应用于表示所生成的全局解222的数据和表示全局任务目标112b的数据,以生成比较分数。比较模块206然后可以被配置为将比较分数与预定分数阈值进行比较以确定所生成的全局解222是否充分满足全局任务目标112b。

在操作(g)期间,如果比较模块206确定所生成的全局解222充分满足全局任务目标112b,则比较模块可以被配置为将表示全局解222的数据和可选的表示由局部优化引擎108获得的一个或多个初始解的数据——例如包括表示初始解212的数据——作为输出提供。

在操作期间,如果比较模块206确定所生成的全局解222未充分满足全局任务目标112b,则比较模块可以被配置为生成修改的全局优化引擎输入数据,例如输入数据102的修改版本。经修改的输入数据可以包括(i)指定要求解的优化任务的数据,以及(ii)用于求解优化任务的经修改的局部任务目标。经修改的输入数据包括输入数据,例如输入数据102,其已经以如下方式被改变或偏置:由系统执行的用于求解优化任务的下一次计算迭代将更好地与优化任务的全局任务目标对准。

为了生成经修改的全局优化引擎输入数据,比较模块206可以被配置为将深度学习正则化技术应用于当前输入数据以生成经偏置的输入数据,例如经偏置的局部任务目标。这可以包括应用选择性地阻止优化任务参数的一个或多个中止算法。

例如,继续优化供水网络的设计的示例优化任务,示例优化任务参数可以包括供水网络中的可用管道的总数。最初,接收到的输入数据102可以包括指定在供水网络中有2000个管道可用的数据,而指定针对优化任务的全局任务目标的数据可以指定将使用最多1000个管道。如果生成的对优化任务的全局解指定在供水网络的优化设计中将使用1500个管道,则比较模块可以被配置为确定生成的全局解未充分满足全局任务目标,并且可以生成针对优化任务的经修改的全局优化引擎输入数据。例如,比较模块可以选择性地阻止或修复一个或多个优化任务参数,例如包括可用水管的数量。可替代地或另外地,比较模块可以偏置输入数据,例如偏置输入数据使得它指定在供水网络中有1200个管道可用而不是2000个。

全局优化引擎106可以被配置为如上参考操作(b)-(e)所描述的那样处理经修改的输入数据。例如,全局优化引擎106可以被配置为基于经修改的局部任务目标来处理经修改的输入数据以获得对优化任务的一个或多个经修改的解。全局优化引擎106然后可以被配置为使用第二量子计算资源214基于全局任务目标112b来处理所生成的一个或多个经修改的解,以生成对优化任务的经修改的全局解。当确定所生成的全局解充分满足全局任务目标112b时,比较模块206可以被配置为提供表示全局解的数据以及可选的表示由局部优化引擎108获得的一个或多个对应的初始解的数据,以作为输出104。下面参考图4更详细地描述用于生成对优化任务的全局解和一个或多个局部解的迭代过程。

对硬件进行编程

图3是用于使用包括多个计算资源的系统来求解优化任务的示例过程300的流程图,其中多个计算资源包括至少一个量子计算资源。为了方便,过程300将被描述为由位于一个或多个位置中的一个或多个经典计算设备或量子计算设备的系统来执行。例如,根据本说明书被适当地编程的优化引擎——例如图1a的多状态量子优化引擎100——可以执行过程300。

系统接收输入数据,输入数据包括(i)指定要求解的优化任务的数据和(ii)指定用于求解优化任务的任务目标的数据(步骤302)。输入数据可以包括静态数据和动态数据。用于求解优化任务的任务目标包括局部任务目标和全局任务目标。例如,如上面参考图1a所描述的,优化任务可以是优化网络例如供水网络的设计的任务。在该示例中,指定要求解的优化任务的数据可以包括关于网络的细节,例如可用水管、连接器或水箱的总数或总体网络容量。局部任务目标可以包括约束每个管道中的相应水压的值、或约束水中化学物浓度的值。全局任务目标可以包括约束浪费水量或指定目标分配率。

作为另一个示例,优化任务可以是优化癌症放疗治疗的任务,例如,将放疗治疗对肿瘤周围的组织和身体部位的附带损伤最小化。在该示例中,指定要求解的优化任务的数据可以包括关于治疗的细节,例如肿瘤位于何处、周围组织的类型、周围身体部位的类型、治疗强度。局部任务目标可以包括约束治疗的强度或指定不应被治疗影响的身体区域,例如眼神经。全局任务目标可以包括管理特定的治疗量或强度。其他示例优化任务可以发生在诸如机器学习、蛋白质折叠、采样/蒙特卡罗、信息安全、模式识别、图像分析、系统设计、精细化农业、调度和生物信息学等领域中。

系统基于局部任务目标(即,一个或多个局部解)来处理接收到的输入数据以获得对优化任务的一个或多个初始解(步骤304)。从第一量子计算资源获得至少一个初始解。如以上参考图1a和图1b所述,对优化任务的局部解可以包括对优化任务的子任务的解。例如,局部解可以包括在与优化任务相关联的参数的子集上是最优的解,例如,其中该子集由局部任务目标指定。作为另一个示例,在优化任务是可分离任务——例如是可以被写为多个子任务之和的任务的情况下,局部解可以包括对子任务之和中的每个子任务的最优解,例如,其中子任务由局部任务目标指定。在一些实现中,局部解可以是概率解,例如,在与优化任务相关联的一个或多个参数上的概率分布。

例如,继续上面的第一示例,对优化供水网络的任务的局部解可以包括针对与优化任务相关联的参数子集的最优值,例如针对一个或多个水管中的水压的最优值、或者网络中的水中化学物的最佳浓度、或者针对一部分供水网络中的所有参数的最佳值。另外,继续上面的第二示例,对优化癌症放疗治疗的任务的局部解可以包括针对与优化任务相关联的参数子集的最优值,例如针对治疗强度的最优值或者当被应用于患者身体的特定区域时针对所有参数的最优值。

在一些实现中,系统可以通过将优化任务划分成一个或多个子任务来处理接收到的输入数据以生成对优化任务的一个或多个初始局部解。例如,系统可以将优化任务表示为具有节点和边的图,并将该图划分成多个最小连接的子图以辅助对子任务的计算处理。

然后,系统可以针对每个子任务标识与子任务相关的局部任务目标,并且将(i)子任务和(ii)所标识的局部任务目标路由到包括在系统中的相应计算资源。系统从包括在系统中的相应计算资源获得对每个子任务的相应解。

系统使用第二量子计算资源基于全局任务目标来处理所生成的一个或多个初始解以生成对优化任务的全局解(步骤306)。如以上参考图1a所述,对优化任务的全局解可以包括参数值,所述参数值在与优化任务相对应的系统中被实现时提供系统实现一个或多个全局任务目标的最高可能性。在一些实现中,由对优化任务的局部解指定的参数值可以与由全局解指定的参数值相同。在其他实现中,由局部解指定的参数值可以与由全局解指定的参数值不同。

在一些实现中,系统可以通过处理生成的一个或多个初始局部解连同附加数据一起基于全局任务目标来处理生成的一个或多个初始局部解,以获得对优化任务的全局解。附加数据可以包括(i)表示在预定时间范围内对先前接收到的优化任务所获得的全局解的数据,(ii)表示在剩余的预定时间范围内对未来接收到的优化任务的预测的数据,或(iii)表示独立于全局任务目标的对优化任务的解的数据。包括这样的附加数据可以增加系统的计算准确性并产生更好的全局解,例如,当与仅基于一个或多个初始局部解和全局任务目标所生成的全局解相比较时。

在一些实现中,第二量子计算资源可以是量子退火机。在这些实现中,对优化任务的全局解可以被编码为表征量子退火机的问题哈密尔顿量的能量谱。为了生成全局解,量子退火机可以基于一个或多个初始局部解以及可选的附加数据来遵循量子退火调度。

所生成的全局解可以被用来确定在对应于优化任务的系统中要采取的一个或多个动作,即对系统参数值的一个或多个调整。在一些情况下,调整每个系统参数可能实际上是不可能的。在这些情况下,确定在对应于优化任务的系统的局部区域中要采取的一个或多个局部动作可能更实际,即对系统参数值的子集的一个或多个调整可能更实际,其中局部动作也是基于全局任务目标的。下面参考图4更详细地描述基于一个或多个全局任务目标生成对优化任务的一个或多个局部解。

图4是基于一个或多个全局任务目标生成对优化任务的一个或多个局部解的示例性迭代的流程图。为了方便,过程400将被描述为由位于一个或多个位置中的一个或多个经典计算设备或量子计算设备的系统来执行。例如,根据本说明书适当地编程的优化引擎——例如图1a的多状态量子优化引擎100——可以执行过程400。

系统将所生成的对优化任务的全局解与全局任务目标进行比较,以确定所生成的全局解是否充分满足全局任务目标(步骤402)。例如,系统可以被配置为将比较函数应用于表示所生成的全局解的数据以及表示全局任务目标的数据。根据比较函数的结果,系统可以对生成的全局解进行评分。如果分数超过预定分数阈值,则系统可以确定全局解是否充分满足全局任务目标。

响应于确定生成的全局解充分满足全局任务目标,系统提供表示对优化任务的一个或多个初始解的数据作为输出(步骤404)。如以上关于图1和图3所述,表示对优化任务的一个或多个初始解的数据可以被用来确定在针对其指定了优化任务的系统中采取的一个或多个动作。例如,初始解可以对应于优化任务参数的子集(例如可访问的可调参数的子集)上的局部任务目标。因此基于一个或多个初始解采取动作可以包括基于一个或多个初始解来调整参数的子集。由于上面参考图1-图3描述的特定系统架构和过程,基于一个或多个初始解采取行动使得针对其定义了优化任务的系统能够实现或接近实现全局任务目标。

响应于确定生成的全局解未充分满足全局任务目标,系统生成经修改的输入数据,其包括(i)指定要求解的优化任务的数据,以及(ii)用于求解优化任务的经修改的局部任务目标(步骤406)。生成经修改的全局优化引擎输入数据可以包括将深度学习正则化技术应用于指定优化任务的当前输入数据和任务目标以生成经偏置的输入数据,例如经偏置的局部任务目标。这可以包括应用选择性地阻止优化任务参数的一个或多个中止算法,如以上参考图2所描述的那样。

系统基于经修改的局部任务目标来处理接收到的经修改的输入数据以获得对优化任务的一个或多个经修改的解(步骤408)。例如,该系统可以执行如上参考图3的步骤304所描述的操作。

系统使用第二量子计算资源基于全局任务目标来处理所生成的一个或多个经修改的解以生成对优化任务的经修改的全局解(步骤410)。例如,该系统可以执行如上参考图3的步骤306所描述的操作。

系统可以被配置为迭代地执行步骤402-410,直到在步骤402处确定所生成的用于迭代的全局解充分满足全局任务目标。

本说明书中所描述的数字和/或量子主题以及数字功能操作和量子操作的实现可以以数字电子电路、合适的量子电路或者更一般的量子计算系统以有形体现的数字以数字和/或量子计算机软件或固件、以数字和/或量子计算机硬件——包括本说明书中公开的结构及其结构等同物、或者以其中一个或多个的组合来实现。术语“量子计算系统”可以包括但不限于量子计算机、量子信息处理系统、量子密码系统或量子模拟器。

本说明书中描述的数字和/或量子主题的实现可以被实现为一个或多个数字和/或量子计算机程序,即编码在有形的非暂时性储存介质上用于由数据处理装置执行或控制数据处理装置的操作的数字和/或量子计算机程序指令的一个或多个模块。数字和/或量子计算机储存介质可以是机器可读储存设备、机器可读储存基板、随机或串行存取存储器设备、一个或多个量子位或它们中的一个或多个的组合。可替代地或另外地,程序指令可以被编码在能够对数字和/或量子信息进行编码的人工生成的传播信号上,例如机器生成的电、光或电磁信号,该信号被生成以对数字和/或量子信息进行编码以用于传输给合适的接收器装置以供数据处理装置执行。

术语量子信息和量子数据是指由量子系统携带、保存或存储的信息或数据,其中最小的非平凡系统是量子位,即定义量子信息单位的系统。可以理解的是,术语“量子位”包含可以在对应的上下文中适当地近似为两级系统的所有量子系统。这样的量子系统可以包括多级系统,例如具有两个或更多级别。举例来说,这样的系统可以包括原子、电子、光子、离子或超导量子位。在许多实现中,计算基础状态用基态和第一激发态来识别,但是应该理解,计算状态用更高级激发态来识别的其他设置是可能的。术语“数据处理装置”是指数字和/或量子数据处理硬件,并且包含用于处理数字和/或量子数据的所有类型的装置、设备和机器,例如包括可编程数字处理器、可编程量子处理器、数字计算机、量子计算机、多个数字和量子处理器或计算机及其组合。该装置还可以是或者进一步包括专用逻辑电路,例如fpga(现场可编程门阵列)、asic(专用集成电路)或量子模拟器,即量子数据处理装置,其被设计来模拟或产生关于特定量子系统的信息。特别来说,量子模拟器是一种专用的量子计算机,它不具备执行通用量子计算的能力。除了硬件之外,该装置可以可选地包括为数字和/或量子计算机程序创建执行环境的代码,例如构成处理器固件、协议栈、数据库管理系统、操作系统或它们中的一个或多个的组合的代码。

数字计算机程序也可以被称为或被描述为程序、软件、软件应用、模块、软件模块、脚本或代码,其可以以任何形式的编程语言来编写,包括编译或解释语言或者声明性的或过程性的语言,并且它可以以任何形式进行部署,包括作为独立程序或作为模块、组件、子例程或适于在数字计算环境中使用的其他单元。量子计算机程序也可以被称为或描述为程序、软件、软件应用程序、模块、软件模块、脚本或代码,其可以以任何形式的编程语言来编写,包括编译或解释语言或者说明性的或过程性的语言,并且被翻译成合适的量子编程语言,或者可以用量子编程语言如qcl或quipper来编写。

数字和/或量子计算机程序可以但不一定对应于文件系统中的文件。可以将程序存储在保存其他程序或数据的文件的一部分——例如存储在标记语言文档中的一个或多个脚本中、专用于所讨论的程序的单个文件中、或者在多个协调文件——例如存储一个或多个模块、子程序或部分代码的文件中。数字和/或量子计算机程序可以被部署为在一个数字量子计算机上或在多个数字和/或量子计算机上被执行,该多个数字和/或量子计算机位于一个地点处或跨多个地点分布并且通过数字和/或量子数据通信网络互连。量子数据通信网络被理解为是可以使用量子系统传输量子数据(例如量子位)的网络。通常,数字数据通信网络不能传输量子数据,但是量子数据通信网络可以传输量子数据和数字数据二者。

在本说明书中描述的过程和逻辑流程可以由一个或多个可编程数字和/或量子计算机执行,其适当地与一个或多个数字和/或量子处理器一起操作,执行一个或多个数字和/或量子计算机程序以通过对输入数字和量子数据进行操作并生成输出来执行功能。过程和逻辑流程也可以由专用逻辑电路例如fpga或asic或量子模拟器、或由专用逻辑电路或量子模拟器与一个或多个编程的数字和/或量子计算机的组合来执行,并且装置也可以被实现为专用逻辑电路例如fpga或asic或量子模拟器、或专用逻辑电路或量子模拟器与一个或多个编程的数字和/或量子计算机的组合。

对于“被配置为”执行特定操作或动作的一个或多个数字和/或量子计算机的系统意味着系统已经在其上安装了软件、固件、硬件或它们的组合,其在操作中使系统执行操作或动作。对于被配置为执行特定操作或动作的一个或多个数字和/或量子计算机程序意味着一个或多个程序包括指令,所述指令在由数字和/或量子数据处理装置执行时使装置执行操作或动作。量子计算机可以接收来自数字计算机的指令,所述指令在由量子计算装置执行时使装置执行操作或动作。

适于执行数字和/或量子计算机程序的数字和/或量子计算机可以基于通用或专用数字和/或量子处理器或两者,或者任何其他类型的中央数字和/或量子计算机处理单元。通常,中央数字和/或量子处理单元将接收来自只读存储器、随机存取存储器或适于传输量子数据例如光子的量子系统或其组合的指令和数字和/或量子数据。

数字和/或量子计算机的基本元件是用于执行或实行指令的中央处理单元以及用于存储指令和数字和/或量子数据的一个或多个存储器设备。中央处理单元和存储器可以由专用逻辑电路或量子模拟器补充或被并入其中。通常,数字和/或量子计算机还将包括用于存储数字和/或量子数据的一个或多个大容量储存设备(例如磁性、磁光盘、光盘或适于存储量子信息的量子系统),或者可操作地耦合来从一个或多个大容量储存设备接收数字和/或量子数据,或者将数字和/或量子数据传送到一个或多个大容量储存设备。但是,数字和/或量子计算机不需要具有这种设备。

适于存储数字和/或量子计算机程序指令以及数字和/或量子数据的数字和/或量子计算机可读介质包括所有形式的非易失性数字和/或量子存储器、介质和存储器设备,包括作为示例的半导体存储器件,例如eprom、eeprom和闪存器件;磁盘,例如内部硬盘或可移动磁盘;磁光盘;cd-rom和dvd-rom盘;和量子系统,例如捕获的原子或电子。可以理解的是,量子存储器是能够以高保真度和高效率长时间存储量子数据的设备,例如用于传输光的光-物质接口和用于存储和保留量子数据的诸如叠加或量子相干性之类的量子特征的物质。

本说明书中描述的各种系统或其一部分的控制可以在数字和/或量子计算机程序产品中实现,该计算机程序产品包括存储在一个或多个非暂时性机器可读储存介质上并且可在一个或多个数字和/或量子处理设备上执行的指令。本说明书中描述的系统或其部分可以各自被实现为可以包括一个或多个数字和/或量子处理设备和存储器的装置、方法或系统,以存储可执行指令来执行本说明书中描述的操作。

虽然本说明书包含许多具体的实现细节,但这些细节不应被解释为对可要求保护的范围的限制,而应被解释为对可能是特定于具体实现的特征的描述。在单独的实现的上下文中本说明书中描述的某些特征也可以在单个实现中被组合实现。反之,在单个实现的上下文中描述的各种特征也可以在多个实现中单独实现或以任何合适的子组合来实现。此外,尽管上文可以将特征描述为以某些组合起作用并且甚至最初如此要求保护,但是在一些情况下可以从组合中删除来自所要求保护的组合的一个或多个特征,并且所要求保护的组合可以针对子组合或子组合的变形。

类似地,尽管在附图中以特定顺序描绘了操作,但这不应被理解为要求以所示出的特定顺序或按序列顺序执行这样的操作,或者要执行所有被说明的操作以达到期望的结果。在某些场景中,多任务和并行处理可能是有利的。此外,上述实现中的各种系统模块和组件的分离不应该被理解为在所有实现中都需要这种分离,并且应该理解,所描述的程序组件和系统通常可以一起被集成在单个软件产品中,或者封装成多个软件产品。

已经描述了主题的特定实现。其他实现在以下权利要求的范围内。例如,权利要求中记载的动作可以以不同的顺序执行并仍然实现期望的结果。作为一个示例,附图中描绘的过程不一定需要所示出的特定顺序或序列顺序来实现期望的结果。在一些情况下,多任务和并行处理可能是有利的。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1