通过绝热量子计算解决数字逻辑约束问题的制作方法

文档序号:11814763阅读:214来源:国知局
通过绝热量子计算解决数字逻辑约束问题的制作方法与工艺

本发明要求2014年3月12日提交的名称为“Method for Solving Digital Logic Constraint Problems Via Adiabatic Quantum Computation”的美国临时申请No.61/952,049的优先权,该美国临时申请通过引用而全部并入本申请。

附图说明

图1示出了根据本发明的一实施方式的包括经典计算机和量子计算机的系统;

图2示出了根据本发明的一实施方式的门类型的图表;

图3a示出了根据本发明的一实施方式的处理流程图;

图3b示出了根据本发明的一实施方式的处理流程图;

图4示出了根据本发明的一实施方式的标准形式的加法器电路;

图5示出了根据本发明的一实施方式的中间输出被编号的加法器电路;

图6示出了根据本发明的一实施方式的门被编号的加法器电路;

图7示出了根据本发明的一实施方式的作为表格的加法器电路;

图8示出了根据本发明的一实施方式的用于G11的示例置换矩阵;

图9示出了根据本发明的一实施方式的用于G11的示例门矩阵;

图10示出了根据本发明的一实施方式的用于G11的最终矩阵计算;

图11示出了根据本发明的一实施方式的用于整个电路的矩阵;

图12示出了根据本发明的一实施方式的约束矩阵;

图13示出了根据本发明的一实施方式的添加有约束的电路矩阵。

具体实施方式

许多实际的优化问题利用经典的计算机和算法解决起来在计算上可能是昂贵的。这些优化问题可能需要为一组变量求值,从而最小化或最大化某一值,或者满足一组约束。这些问题在本领域被称为NP难题。例如,调度问题、资源利用问题、和路由问题全部可以为这种NP难题的示例。这些约束的形式和所涉及的变量的属性可以不同,但是它们全部可以被表示为对比特作用的布尔函数(或布尔电路)。即使当这些问题被表示为适合于由经典计算机进行的解译的逻辑电路时,寻找丢失的信息也可能在计算上是昂贵的和/或在实践上是不可能的(例如其中仅仅已知输出且期望输入的单向函数)。

本文所描述的系统和方法可以用来经由量子计算来解决涉及二进制变量和任意的布尔函数的约束问题或优化问题。该问题和任何约束可以被转换成可用作到量子计算机的输入的形式,从而量子计算机可以寻找解答。该形式可以为能量表示,并且量子计算机可以最小化该能量表示中的能量,以寻找解答。例如,输入可以为适合于由绝热量子计算机进行评估的哈密顿矩阵,从而哈密顿矩阵的最低能量状态表示该问题的解答。该问题可以被表示为数字逻辑电路以及一组约束。这些约束可以为定义值(例如用于该问题的已知的或所期望的输入或输出),并且在一些实施方式中,这些约束可以为单比特约束。一个或多个输入、一个或多个输出、或一个或多个输入和一个或多个输出的组合可以被约束。可以将该电路转换到标准形式,可以向每一个电路路径分配量子比特(quantum bit,q-比特),可以生成表示该电路的矩阵,可以应用这些约束以减小矩阵,可以经由量子计算机找到最低能量状态,以及可以鉴于初始问题解释结果状态。因此,通过应用本文所描述的系统和方法,可以表示为逻辑电路的任何问题都可以使用量子计算机来进行评估。

一些实施方式可以包括经典计算机和相关的软件,其可以接受问题定义(例如逻辑电路和约束),执行所需要的翻译以及解译结果。这种实施方式还可以包括可以执行能量最小化的量子计算机(例如绝缘量子计算机或其它的量子计算机)。

图1示出了根据本发明的一实施方式的包括经典计算机20和量子计算机30的系统10。经典计算机20可以为能够使用比特执行算数运算和/或逻辑运算的任何一个或多个可编程的数字机。在一些实施方式中,经典计算机20可以包括一个或多个处理器22、存储器24、数据存储装置26和/或其它的公知的或新型的部件。这些部件可以物理连接或通过网络或无线链路连接。经典计算机20还可以包括可以指示上述的部件的操作的软件。

在一些实施方式中,经典计算机20可以包括经由一个网络或多个网络彼此连接的多个经典计算机。网络可以为任意多个的完全或部分互连的经典计算机和/或量子计算机,其中经典计算机和/或量子计算机中的一些或全部能够相互通信。本领域技术人员应该理解的是,经典计算机和/或量子计算机之间的连接可以在一些情况下为有线的(例如经由以太网、同轴电缆、光纤或其它有线连接),或者可以为无线的(例如经由Wi-Fi、WiMax或其它的无线连接)。经典计算机和/或量子计算机之间的连接可以使用任何协议,包括例如TCP的面向连接协议或例如UDP的无连接协议。至少两个经典计算机和/或量子计算机通过其可以交换数据的任何连接可以为网络的基础。

量子计算机30可以为能够使用量子比特执行算数运算和/或逻辑运算的任何一个或多个可编程的量子机。在一些实施方式中,量子计算机30可以包括一个或多个量子处理器32、量子存储器34和/或其它的公知的或新型的部件。这些部件可以物理连接或通过网络或无线链路连接。量子计算机30还可以包括可以指示上述的部件的操作的软件。在一些实施方式中,量子计算机30可以包括经由一个网络或多个网络彼此连接的多个量子计算机。量子计算机30可以连接到经典计算机20,从而量子计算机30与经典计算机20可以交换数据。本文讨论的示例中所使用的量子计算机30为使用伊辛模型的绝热量子计算机,但是在一些实施方式中可以使用其它类型的量子计算机(例如使用二次无约束二进制优化(Quadratic Unconstrained Binary Optimization,QUBO)模型的量子计算机)。

通过将表示为逻辑电路和一组有约束的输入和/或输出的问题转换成可由量子计算机所分析的形式,可以解决其中一些或全部的输入是未知的NP难题,例如其中仅仅输出是可得的单向函数。例如,除了以下参照图2至图13所讨论的示例,本文所描述的系统和方法还可以应用于解决与各种不同的系统相关联的问题。这种问题可以包括:寻找用于例如安全散列算法-1(secure hash algorithm,SHA)的加密散列函数的原像,其中该散列函数被定义为电路并且该散列函数的输出被约束;计算例如高级加密标准(advanced encryption standard,AES)的加密算法的纯文本,其中该算法被定义为电路并且约束包括密钥和密文的比特的子集;以及其它的计算昂贵的问题,例如旅行推销员问题,该旅行推销员问题可应用于包括制造和交付的各种问题。

首先,可以将待解决的问题转换到如下表示:数字电路,以及一组应用到该电路的输入、输出或输入和输出二者的某组合的一位约束。由于可以将约束应用到输入、输出或输入和输出二者的某组合,因而本文所描述的系统和方法可以用来将普通的门逻辑转换成适合用在量子计算中的形式,以及用来执行搜索、反演或其它的一般约束满足问题。例如,为了在量子计算环境内模拟普通的数字逻辑,可以对输入进行规定(约束),并且可以求出输出。可替选地,为了搜索满足一组输出的一组输入,可以对输出进行规定(约束),并且可以求出输入。许多用例可以规定(约束)一些输入和一些输出二者。以下的示例使用两位全加器作为在考虑之中的数字电路并且规定第一输入为2且规定输出为5,以及期望发现第二输入应当为3。这是一个简化的示例来说明所公开的问题解决进程,并且本领域技术人员应该领会的是可以使用任何逻辑、输入和/或输出。在示出简单的示例之后,讨论该过程的具体实践应用。

图2示出了根据本发明的一实施方式的门类型的图表100。一些门组在功能上可以为完整的,这意味着所有可能的电路可以由来自该组的门的组合形成。例如,一个在功能上完整的门组可以包括“与”门和“非”门。为了本文所描述的示例电路的目的,定义了在功能上完整的具体的门组,这在本文中称为“标准门”。在图2中示出了用于示例的标准门组的名称101-108、符号111-118和真值表121-128,以及将在以下更详细地描述的用于每一个门的能量表示(例如能量矩阵131-138)。在一些实施方式中,可以使用其它的门组。

图3a示出了根据本发明的一实施方式的解决约束系统的高级别过程200。图3b示出了根据本发明的一实施方式的过程200的具体实现300。在以下所描述的与这些过程200/300相关的示例中,一些动作被描述为由经典计算机20来执行,而其它的动作被描述为由量子计算机30来执行。本领域技术人员应该领会的是,在一些实施方式中,所列出的动作中的任意一个可以由经典计算机20或量子计算机30来执行。其中仅仅量子计算机30用来执行整个的过程200的实施方式可以是可行的。其中仅仅经典计算机20用来执行整个的过程200的实施方式也可以是可行的。

通过经典计算机20可以将数字电路转换成仅仅包括标准门的形式205,并且可以在一些实施方式中通过经典计算机20对所产生的电路进行优化。例如,如图3b中所示,可以将包含数字电路的Verilog文件输入到例如Yosys的编辑工具中305。优化可以通过将线性门的组合组合成单个的非线性门或一组非线性门来发生。优化还可以通过去除其中常量作为一个输入来提供的门而发生。电气工程和计算机科学领域中已知的其它优化也可以应用。例如,可以将Verilog源文件转换到Yosys内部表示310。然后,Yosys编辑器可以应用优化315(例如通过去除从未有源的电路分支或其它的未使用过的元件,巩固布尔运算树,合并相同的单元,去除和/或简化具有常量输入的元件等)。例如,在功能上完整的门的各个组之间的转换电路可以利用电气工程领域内已知的任何过程来执行。

图4示出了根据本发明的一实施方式的在两位加法器转换至标准门400之后的两位加法器。在该示例中,V1和V2分别为第一个数的低位和高位,V3和V4分别为第二个数的低位和高位,并且V5、V6和V7为两个数的从低位到高位的总和的位。每一个输入和输出还被给定了唯一的编号(V1-V7)。如在图3b中所示出的,经典计算机20可以循环通过输入320并且从1(即,在本示例中的V1)开始标记每一个输入325。

返回到图3a,通过经典计算机20可以向门逻辑的每一个中间输出(其还不是最后输出)分配唯一的编号210,该唯一的编号从继最高的输入编号或输出编号之后的第一编号开始。这些中间标记的特定次序可以为任意的,但可以贯穿该过程的其余部分而保持一致。如在图3b中所示出的,经典计算机20循环通过输出330并且以计数器中的在先前的标记操作之后的下一个数字开始标记每一个输出335。图5示出了根据本发明的一实施方式的在分配中间输出编号之后的二位加法器500。

返回到图3a,通过经典计算机20可以向每一个门分配唯一的编号215,该编号从数字1开始。如图3b中所示出的,经典计算机20可以循环通过门340,并且从1开始标记每一个门345。经典计算机20还可以以计数器中的在先前的标记操作之后的下一个数字开始标记每一个门输出350。再一次,该特定次序可以为任意的,但可以贯穿该过程的其余部分而保持一致。图6示出了根据本发明的一实施方式的在分配门编号之后的前馈加法器600。

返回到图3a,通过经典计算机20可以将该电路的表示转换成表格形式220。为了完成该转换,可以依次考虑每一个门,并且可以确定以下元素:

●门的编号

●门的类型

●门的第一个输入的数值

●门的第二个输入的数值

●门的输出的数值。

当寻找与门的输入和输出关联的编号时,可以相同地对待V#和T#(也就是说,原输入和输出以及中间输出全部可以为联合的编号方案的一部分)。可以将产生的数据点放置到表格中。图7示出了根据本发明的一实施方式的以表格形式的前馈加法器700。例如,在图7中,门G11的编号为11,其类型为APP,其第一个输入为10,其第二个输入为15,并且其输出为17。

返回到图3a,通过经典计算机20可以为每一个门生成矩阵225。每一个门矩阵可以为方阵,其中维数比输入、输出和中间输出的总和多1;在该示例中为19。为了简化在本说明书的其余部分中的矩阵的描述,输入、输出和中间输出的总和被标记为N。为了计算用于门的矩阵,可以计算置换矩阵,可以执行门矩阵查找并且可以形成最终的矩阵。

图8为根据本发明的一实施方式的用于G11的置换矩阵800。为了计算矩阵,4乘(N+1)矩阵可以被初始化至全部为0,并且可以将以下的元素设置为1:

●(1,1)

●(2,In 1+1),其中In 1为用于讨论的门的、在220中所生成的表中找到的数值

●(3,In 2+1),其中In 2为用于讨论的门的、在220中所生成的表中找到的数值

●(4,Out+1),其中Out为用于讨论的门的、在220中所生成的表中找到的数值。

可以使用4乘(N+1)矩阵,这是因为对于在一组标准门中的任何数字门可总是存在2个输入和1个输出,加上“总是1”的比特。

根据图7的表格700,对于门G11,可以将以下的矩阵元素设置为1:

●(1,1)

●(2,10+1)=(2,11)

●(3,15+1)=(3,16)

●(4,18+1)=(4,19)。

因此,用于G11的置换矩阵800示出在图8中。

图9为根据本发明的一实施方式的用于G11的门矩阵900。为了执行门矩阵查找,可以选择用于讨论中的门的适当的门矩阵。例如,该矩阵可以根据图2的门类型的表格100、基于门的类型来进行选择。具体地,对于每一种类型的门,在图2中,适当的门矩阵131-138示出到门的真值表121-128的右侧。因此,如在图9中所示出的,对于类型为APP的门G11,可以选择第一个门矩阵131。

图10为根据本发明的一实施方式的用于G11的最终矩阵计算1000。再次为了形成最终矩阵,置换矩阵的转置、门矩阵和置换矩阵可以按顺序相乘。也就是:M=P^T G P。对于门G11,这示出在图10中。

返回到图3a,可以为每一个门生成矩阵225,因此每个门产生一个矩阵。当每一个门具有一个矩阵时,可以通过经典计算机20将矩阵总和在一起230。对于示例电路,结果矩阵1100示出在图11中。

返回到图3a,通过经典计算机20可以修改矩阵,以规定针对输入和输出的约束235。可以构建初始化为全部为0的大小为(N+1)乘(N+1)的约束矩阵C。对于被约束到值1的每一个输入或输出,(1,x+1)和(x+1,1)可以被设置为-1,其中x为输入或输出的索引。对于被约束到值0的每一个输入或输出,(1,x+1)和(x+1,1)可以被设置为+1,其中x为输入或输出的索引。因此,为了要求示例加法器电路的第一个输入为2且输出为5,可以应用以下一组的约束:

●V1=0

●V2=1

●V5=1

●V6=0

●V7=1

这些示例约束通过示出在图12中的矩阵1200来进行表示。

为了完成约束规定235,通过经典计算机20可以将约束矩阵加到电路矩阵,例如产生在图13中示出的最终矩阵1300。

最终矩阵的创建还可以如在图3b中所示出的进行。可以从文件将约束读取到约束矩阵C中335。可以创建最终矩阵F 360,但是这时候可还尚未计算最终矩阵F。经典计算机20可以循环通过门365,并创建每一个置换矩阵P 370和门矩阵G 375。再次,置换矩阵的转置、门矩阵和置换矩阵可以按顺序相乘380。当该过程针对所有的门完成时,可以将约束矩阵加到电路矩阵385。

返回到图3a,可以将最终矩阵解释为哈密顿矩阵240或其它的能量表示。可以将被解释为哈密顿矩阵的最终矩阵作为输入提供到可以计算低能量状态的系统。在该模型中,假设N+1个量子比特。对于每一个量子比特,该量子比特的状态可以为自旋向上(+1)或自旋向下(-1)。调用每一个量子比特状态Si,以及刚刚被计算为M的最终矩阵,该系统的总能量可以定义为:

<mrow> <mi>E</mi> <mo>=</mo> <msubsup> <mi>&Sigma;</mi> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>N</mi> </msubsup> <msubsup> <mi>&Sigma;</mi> <mrow> <mi>j</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>N</mi> </msubsup> <msub> <mi>M</mi> <mrow> <mi>i</mi> <mo>,</mo> <mi>j</mi> </mrow> </msub> <msub> <mi>S</mi> <mi>i</mi> </msub> <msub> <mi>S</mi> <mi>j</mi> </msub> </mrow>

可以将哈密顿矩阵转换成用于由经典计算机20正在使用的专门的量子计算机的适当的形式。如果绝热量子计算机使用自旋玻璃模型,则转换可能是不必要的。尽管在该示例中哈密顿矩阵为进入量子计算机30的适当的形式(即,问题的适当的能量表示),但是本领域技术人员应该领会的是,在一些实施方式中也可以使用其它的能量表示。例如,可以将最终矩阵解释为一组量子比特运算、一组量子门或一组量子门运算或任何其它的由量子计算机30所使用的格式。在一些实施方式(例如QUBO实施方式)中。每一个量子比特可以为+1或0,而不是自旋向上或自旋向下。

通过量子计算机30可以最小化哈密顿矩阵的能量或其它的能量表示245,并且通过经典计算机20可以从量子计算机30检索输出量子比特Si。例如,如在图3b中所示出的,可以求出用于最终矩阵F的最小的能量矢量390。

返回到图3a,然后可以通过经典计算机20解释结果250。每一个量子比特输出(其可以为+1或-1)可以与第一个量子比特的值S1相乘。第一个量子比特可以忽略。如在图3b中所示出的,最小的能量矢量可以被解释为无约束的值395。为了求出用于该电路的所期望的输入或输出的值,对于每一个输入或输出索引n,可以检查输出量子比特Sn+1。如果量子比特为+1,则我们可以推断输入或输出具有值1。如果量子比特为-1,则我们可以推断输入或输出具有值0。

以上所描述的示例说明了用于特定问题解决情景的图3a的过程200。本领域技术人员应该领会的是,相同的过程200可以应用到任何优化问题或约束问题,而电路、表格、矩阵、能量状态等等可以为不同的,过程200可以以类似的方式进行。

例如,图3a的过程200可以应用到求出SHA-1加密散列函数或其它散列函数的原像。在该示例中,散列函数可以被转换为具有标准门的电路205、被标记210-215、被转换成表格形式220以及被转换成矩阵225-230。可以约束输出(例如约束到散列函数的已知的输出)并且可以将受约束的输出应用到矩阵235。可以解释最终矩阵240,可以求出最小的能量状态245,以及所解释的结果可以揭示用于散列函数的原像250。

在另一个示例中,图3a的过程200可以应用到寻找AES加密算法或其它加密算法的纯文本。在该示例中,加密算法可以被转换为具有标准门的电路205、被标记210-215、被转换成表格形式220以及被转换成矩阵225-230。可以定义约束(例如已知的密钥的输入比特子集和输出密文)并且可以将约束应用到矩阵235。可以解释最终矩阵240,可以求出最小的能量状态245,以及所解释的结果可以揭示用于加密算法的纯文本250。

图3a的过程200还可以应用到旅行推销员问题。例如,具有标准门的电路可以定义一组位置和这些位置之间的旅行距离205。该电路可以被标记210-215、被转换成表格形式220以及被转换成矩阵225-230。约束可以包括一组拜访位置和为所有的拜访所分配的总时间,这组拜访位置和总时间可以为该电路的输入。可以将受约束的输入应用到矩阵235。可以解释最终矩阵240,可以求出最小的能量状态245,以及所解释的结果可以包括一个或多个可能的路线,或者,如果在分配的时间中没有路线是可能的,则指示没有路线是可行的250。如果没有路线可行,则可以将约束改变到较小的位置列表或者延长的分配时间,并且可以重复过程200。

尽管已经在上面描述了各种实施方式,但是应当理解的是,它们是通过举例而不是限制的方式提出。对于相关领域技术人员显而易见的是,可以在形式和细节上进行各种改变而不脱离其精神和范围。事实上,在阅读了上面的描述后,对于相关领域技术人员显而易见的是如何实现替选的实施方式。

此外,应该理解的是,突出功能和优点的任何附图都仅用于示例的目的。所公开的方法和系统分别是足够灵活的和可配置的,使得它们可以以不同于所示出的其它方式来利用。

虽然术语“至少一个”可以常常用在本说明书、权利要求书和附图中,但是术语“一”、“该”、“所述”等也在本说明书,权利要求书和附图中意味着“至少一个”或“该至少一个”。

最后,申请人的意图是仅包括根据35U.S.C.112(f)解释的明确的语言“用于……的装置”或“用于……的步骤”的权利要求。没有明确包括短语“用于……的装置”或者“用于……的步骤”的权利要求都不得根据35U.S.C.112(f)解释。

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