一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

用于量子计算使能的分子从头算模拟的方法和系统与流程

2022-03-01 22:16:21 来源:中国专利 TAG:

用于量子计算使能的分子从头算模拟的方法和系统
交叉引用
1.本技术要求于2019年12月17日提交的美国临时专利申请序列号62/949,263和2019年5月13日提交的美国临时申请序列号62/847,141的权益,该申请出于所有目的通过引用整体并入本文。


背景技术:

2.在化学和生物学中,因为分子功能固有地嵌入分子构象(molecular conformation)中,对分子的电子结构和最能量稳定构象的识别和预测具有重要意义。例如,催化反应中的反应速率可以基于使用几种不同构象的催化剂中的哪一种而显著变化。作为另一示例,蛋白质在其形成一定的三级结构时更起作用或才起作用。
3.为了准确地识别和预测电子结构和最稳定的构象异构体,可以执行高度精确的量子化学方法,例如耦合簇理论(cc)或完全组态相互作用(full ci)。然而,此类方法的计算成本会随着分子的大小呈指数级增长,并且在分子大小超过cc约50个原子和full ci约10个原子的情况下,即使在一些当前最先进的经典计算机上执行,它们也经常变得难以处理。因此,需要高效和准确的计算框架来识别与工业相关的化合物和与生物相关的大分子的最稳定构象。
4.与经典计算相比,量子计算(qc)技术可能能够以指数更少的计算资源来计算分子的量子机械能和/或电子结构。因此,使用经典计算难以处理的高精度量子化学计算可能使用qc方法会变得易于处理。然而,qc方法可能会面临挑战,例如,qc资源的高成本和稀缺性。此外,增加量子计算机中的量子位数量是一项技术挑战,这限制了量子计算设备的尺寸。此外,量子位对噪声和环境影响非常灵敏,这可能导致量子位在很短的时间内退化(decohere),从而为运行有意义的计算提供了一个相对较小的窗口。


技术实现要素:

5.本文中认识到需要有效利用当前和近期的量子计算系统来解决复杂的量子化学问题的量子算法和电路。一种方法是将工业规模的问题分解为子问题、识别更复杂的子问题、然后使用量子计算机仅处理问题的子集,例如那些对于经典计算机具有挑战性的子问题。
6.本文提供的系统和方法利用量子化学中的问题分解(pd)技术来识别和预测电子结构以及分子的一组最能量稳定的构象异构体。这样的pd技术可以包括碎片分子轨道理论(fmo)方法、分治算法(dc)方法、密度矩阵嵌入理论(dmet)方法、密度矩阵重整化群(dmrg)方法、张量网络、增量方法等,如本文所述。
7.在量子化学中,已经开发出pd技术以使用经典计算以合理的准确度有效地计算分子能量和/或电子结构。在pd技术中,分子可分解成较小的片段,使得对于每个片段,量子机械能和/或电子结构计算变得易于处理。然后可以针对每个片段分别执行量子机械能和/或电子结构计算。由每个片段产生的量子机械能和/或电子结构计算可以重组为原始分子的
解决方案。
8.本文提供的用于在qc平台上执行pd技术的系统和方法可以使每个片段的量子机械能和/或电子结构计算能够以高水平的准确度来执行。进一步地,每个片段的小尺寸可以允许在计算规模相当有限的qc设备上执行高度准确的计算,从而有效且准确地获得复杂的、与工业相关分子的能量和/或电子结构。
9.分子的电子结构和最能量稳定的构象异构体的识别是化学和生物学相关研究与开发的基本过程。尽管可以通过实际合成分子并使用各种物理化学测量来识别其电子结构和构象来执行此类过程,但此类实验过程可能需要非常大量的资源,例如人力和时间。因此,诸如本公开内容所提供的那些高效且准确的计算方法和系统可以显著减少对这种资源的需求,并使通用的r&d过程更加有效。进一步地,本文描述的方法和系统不简单地可以应用于单个化学系统结构(例如,化合物和生物分子),而且还可以应用于具有不同缔合的分子聚集体。例如,本文公开的方法和系统可以用于识别候选药物相对于靶蛋白的最稳定的结合方向,所述结合方向是从可能的结合方向的集合中确定的。
10.本公开内容提供了用于使用量子和经典计算处理器的混合架构来有效地识别化学系统(例如,分子)的电子结构和稳定构象的方法和系统。一种方法可以包括获得分子的指示;计算或获得分子构象的集合;并对于每个构象将化学系统分解为片段(子系统)(可以任选地存储在列表中)。该方法可以进一步包括计算分子的每个构象的每个片段的费米哈密顿量(分子哈密顿量或电子哈密顿量);将每个费米哈密顿量转换为等效的量子位哈密顿量;将量子位哈密顿量转换为量子电路;计算参与总量子机械能和/或电子结构计算的量子位的初始状态;在量子硬件或量子电路的经典模拟器上生成(例如,通过计算模拟)分子量子机械能和/或电子结构;并且组合多个片段的能量和/或电子结构以获得化学系统的总能量的估计值。该方法可以进一步包括针对构象集合中的所有构象重复这些操作,并且基于估计的总量子机械能和/或电子结构对构象集合中的构象进行分类。该方法可以进一步包括提供分类的构象集合的指示(例如,在列表中)。
11.在一方面,本发明提供了一种用于执行化学系统的量子机械能或电子结构计算的方法,所述方法由混合计算单元来实现,所述混合计算单元包括至少一个经典计算机以及包括多个非经典计算机的分布式计算系统,所述方法包括:(a)将所述化学系统的构象集合内的至少一种构象分解成多个分子片段;(b)使用所述混合计算单元确定所述多个分子片段的至少一个子集的量子机械能或电子结构;(c)组合(b)中确定的所述量子机械能或电子结构;以及(d)电子形式地输出指示在(c)中组合的所述量子机械能或电子结构的报告。
12.在一些实施方式中,所述多个非经典计算机包括至少一个量子计算机。在一些实施方式中,所述至少一个量子计算机包括选自以下的一个或多个组件:量子硬件设备和量子电路的经典模拟器。在一些实施方式中,所述量子机械能中的量子机械能包括核-核排斥能。
13.在一些实施方式中,方法进一步包括向所述混合计算单元提供输入,所述输入包括用于所述化学系统的一组原子坐标。在一些实施方式中,方法进一步包括对所述化学系统的构象的所述集合内的两个或更多个构象执行(a)-(c)。在一些实施方式中,方法进一步包括对所述多个分子片段的所述至少子集的所述组合的量子机械能或电子结构进行分类。
14.在一些实施方式中,(a)包括应用选自以下的一个或多个组件:碎片分子轨道理论
(fmo)方法、分治算法(dc)方法、密度矩阵嵌入理论(dmet)方法、密度矩阵重整化群(dmrg)方法、张量网络和增量方法。
15.在一些实施方式中,(b)包括:确定所述多个分子片段的所述至少子集的分子片段的费米哈密顿量(分子哈密顿量或电子哈密顿量);将所述费米哈密顿量转换为等效的量子位哈密顿量;将所述量子位哈密顿量转换为量子电路;和使用所述量子电路确定所述分子片段的量子机械能或电子结构。在一些实施方式中,方法进一步包括使用分子哈密顿量确定所述量子机械能或电子结构。在一些实施方式中,方法进一步包括使用电子哈密顿量确定所述量子机械能或电子结构。在一些实施方式中,将所述费米哈密顿量转换为等效的量子位哈密顿量包括将哈密顿量的费米运算符转换为量子位运算符。
16.在一些实施方式中,方法进一步包括执行所述化学系统的从头算分子动力学(aimd)模拟。在一些实施方式中,所述aimd模拟包括:在(a)之前,获得化学系统的指示,所述指示包括所述化学系统中多个粒子的每个粒子的坐标和所述化学系统中每个粒子的速度;并且在(c)之后:(i)从所述组合的能量或电子结构确定所述化学系统中每个粒子上的力;(ii)更新所述化学系统中所述每个粒子的所述坐标和所述化学系统中所述每个粒子的所述速度;和(iii)电子形式地输出指示所述坐标或所述速度的报告。在一些实施方式中,(i)包括将用于数值梯度估计的jordan量子算法应用于所述量子机械能或电子结构。在一些实施方式中,(ii)包括应用选自以下的一个或多个组件:verlet程序、velocity verlet程序、辛积分、runge-kutta积分和beeman积分。
17.在另一方面,一种用于执行化学系统的量子机械能或电子结构计算的系统可以包括:可操作地耦合至所述存储器的混合计算单元,其中所述混合计算单元包括至少一个经典计算机以及包括多个非经典计算机的分布式计算系统,其中所述混合计算单元被配置为至少:(a)将所述化学系统的构象集合内的至少一种构象分解成多个分子片段;(b)确定所述多个分子片段的至少一个子集的量子机械能或电子结构;(c)组合(b)中确定的所述量子机械能或电子结构;以及(d)电子形式地输出指示在(c)中组合的所述量子机械能或电子结构的报告。
18.在另一方面,一种非暂时性计算机可读介质可以包括机器可执行代码,所述机器可执行代码在由混合计算单元执行时,实现一种用于执行化学系统的量子机械能或电子结构计算的方法,所述混合计算单元包括至少一个经典计算机以及包括多个非经典计算机的分布式计算系统,所述方法包括:(a)将所述化学系统的构象集合内的至少一种构象分解成多个分子片段;(b)确定所述多个分子片段的至少一个子集的量子机械能或电子结构;(c)组合(b)中确定的所述量子机械能或电子结构;以及(d)电子形式地输出指示在(c)中组合的所述量子机械能或电子结构的报告。
19.在另一方面,本公开提供了一种用于执行化学系统的量子机械能或电子结构计算的方法,所述方法由混合计算单元实现,所述混合计算单元包括分布式计算系统,所述分布式计算系统包括多个经典计算机和至少一个非经典计算机,所述方法包括:(a)将所述化学系统的构象集合内的至少一种构象分解成多个分子片段;(b)使用所述混合计算单元确定所述多个分子片段的至少一个子集的量子机械能或电子结构;(c)组合(b)中确定的所述量子机械能或电子结构;以及(d)电子形式地输出指示在(c)中组合的所述量子机械能或电子结构的报告。
20.在一些实施方式中,至少一个非经典计算机包括至少一个量子计算机。在一些实施方式中,所述至少一个量子计算机包括选自以下的一个或多个组件:量子硬件设备和量子电路的经典模拟器。在一些实施方式中,所述量子机械能中的量子机械能包括核-核排斥能。
21.在一些实施方式中,方法进一步包括向所述混合计算单元提供输入,所述输入包括用于所述化学系统的一组原子坐标。在一些实施方式中,方法进一步包括对所述化学系统的构象的所述集合内的两个或更多个构象执行(a)-(c)。在一些实施方式中,方法进一步包括对所述多个分子片段的所述至少子集的所述组合的量子机械能或电子结构进行分类。
22.在一些实施方式中,(a)包括应用选自以下的一个或多个组件:碎片分子轨道理论(fmo)方法、分治算法(dc)方法、密度矩阵嵌入理论(dmet)方法、密度矩阵重整化群(dmrg)方法、张量网络和增量方法。
23.在一些实施方式中,(b)包括:(a)确定所述多个分子片段的所述至少子集的分子片段的费米哈密顿量;(b)将所述费米哈密顿量转换为等效的量子位哈密顿量;(c)将所述量子位哈密顿量转换为量子电路;和(d)使用所述量子电路确定所述分子片段的量子机械能或电子结构。在一些实施方式中,方法进一步包括使用分子哈密顿量确定所述量子机械能或电子结构。在一些实施方式中,方法进一步包括使用电子哈密顿量确定所述量子机械能或电子结构。在一些实施方式中,将所述费米哈密顿量转换为等效的量子位哈密顿量包括将哈密顿量的费米运算符转换为量子位运算符。
24.在一些实施方式中,方法进一步包括执行所述化学系统的从头算分子动力学(aimd)模拟。在一些实施方式中,所述aimd模拟包括:在(a)之前,获得化学系统的指示,所述指示包括所述化学系统中多个粒子的每个粒子的坐标和所述化学系统中每个粒子的速度;并且在(c)之后:(i)从所述组合的能量或电子结构确定所述化学系统中每个粒子上的力;(ii)更新所述化学系统中所述每个粒子的所述坐标和所述化学系统中所述每个粒子的所述速度;和(iii)电子形式地输出指示所述坐标或所述速度的报告。在一些实施方式中,(i)包括将用于数值梯度估计的jordan量子算法应用于所述量子机械能或电子结构。在一些实施方式中,(ii)包括应用选自以下的一个或多个组件:verlet程序、velocity verlet程序、辛积分、runge-kutta积分和beeman积分。
25.在一些实施方式中,方法还包括将所述多个片段中的一个或多个分派到一个或多个远程端点并从所述一个或多个远程端点接收所述量子机械能或电子结构。在一些实施方式中,所述一个或多个远程端点中的至少一个包括非经典计算机。在一些实施方式中,所述一个或多个远程端点包括云计算系统的部分。在一些实施方式中,方法还包括,在(a)之前,从客户端库接收所述至少一个构象并且将所述至少一个构象分派到第一远程端点。在一些实施方式中,(a)和(c)中的至少一个发生在所述第一远程端点处。在一些实施方式中,方法还包括将所述多个片段中的一个或多个分派到一个或多个远程第二端点并从所述第二一个或多个远程端点接收所述量子机械能或电子结构。在一些实施方式中,方法还包括将所述报告传送到所述客户端库。在一些实施方式中,所述第二远程端点中的至少一个包括非经典计算机。在一些实施方式中,所述一个或多个远程端点包括云计算系统的部分。
26.在另一方面,一种用于执行化学系统的量子机械能或电子结构计算的系统可以包括:计算机存储器,包括用于执行化学系统的量子机械能或电子结构计算的指令;以及可操
作地耦合至所述存储器的混合计算单元,其中所述混合计算单元包括分布式计算系统,所述分布式计算系统包括多个经典计算机和至少一个非经典计算机,其中所述混合计算单元被配置为至少执行以下指令:(a)将所述化学系统的构象集合内的至少一种构象分解成多个分子片段;(b)确定所述多个分子片段的至少一个子集的量子机械能或电子结构;(c)组合(b)中确定的所述量子机械能或电子结构;以及(d)电子形式地输出指示在(c)中组合的所述量子机械能或电子结构的报告。
27.在另一方面,非暂时性计算机可读介质可以包括机器可执行代码,所述机器可执行代码在由混合计算单元执行时,实现一种用于执行化学系统的量子机械能或电子结构计算的方法,所述混合计算单元包括分布式计算系统,所述分布式计算系统包括多个经典计算机和至少一个非经典计算机,所述方法包括:(a)将所述化学系统的构象集合内的至少一种构象分解成多个分子片段;(b)确定所述多个分子片段的至少一个子集的量子机械能或电子结构;(c)组合(b)中确定的所述量子机械能或电子结构;以及(d)电子形式地输出指示在(c)中组合的所述量子机械能或电子结构的报告。
28.在另一方面,提供了一种用于执行化学系统的量子机械能或电子结构计算的方法。所述方法由混合计算单元来实现,所述混合计算单元包括至少一个经典计算机和包括多个非经典计算机的分布式计算系统。该方法可以包括:(a)将所述化学系统的构象集合内的至少一种构象分解成多个分子片段;(b)使用所述混合计算单元确定所述多个分子片段的至少一个子集的量子机械能或电子结构;(c)组合(b)中确定的所述量子机械能或电子结构;以及(d)电子形式地输出指示在(c)中组合的所述量子机械能或电子结构的报告。
29.在一些实施方式中,所述多个非经典计算机包括至少一个量子计算机。在一些实施方式中,所述至少一个量子计算机包括选自以下的一个或多个组件:量子硬件设备和量子电路的经典模拟器。在一些实施方式中,所述多个非经典计算机包括不同类型的非经典计算机。在一些实施方式中,所述量子机械能中的量子机械能包括核-核排斥能。在一些实施方式中,该方法进一步包括向所述混合计算单元提供输入,所述输入包括用于所述化学系统的一组原子坐标。在一些实施方案中,该方法进一步包括对所述化学系统的构象的所述集合内的两个或更多个构象执行(a)-(c)。在一些实施方式中,该方法进一步包括对所述多个分子片段的所述至少子集的所述组合的量子机械能或电子结构进行分类。
30.在一些实施方式中,(a)包括应用选自以下的一个或多个组件:碎片分子轨道理论(fmo)方法、分治算法(dc)方法、密度矩阵嵌入理论(dmet)方法、密度矩阵重整化群(dmrg)方法、张量网络和增量方法。在一些实施方式中,(b)包括:确定所述多个分子片段的分子片段的费米哈密顿量;将所述费米哈密顿量转换为等效的量子位哈密顿量;将所述量子位哈密顿量转换为量子电路;和使用所述量子电路确定所述分子片段的量子机械能或电子结构。在一些实施方式中,该方法进一步包括使用分子哈密顿量确定所述量子机械能或电子结构。在一些实施方式中,该方法进一步包括使用电子哈密顿量确定所述量子机械能或电子结构。在一些实施方式中,将所述费米哈密顿量转换为等效的量子位哈密顿量包括将哈密顿量的费米运算符转换为量子位运算符。
31.在一些实施方式中,该方法进一步包括执行所述化学系统的从头算分子动力学(aimd)模拟。在一些实施方式中,所述aimd模拟包括:在(a)之前,获得化学系统的指示,所述指示包括所述化学系统中多个粒子的每个粒子的坐标和所述化学系统中每个粒子的速
度;并且在(c)之后:(i)从所述组合的能量或电子结构确定所述化学系统中每个粒子上的力;(ii)更新所述化学系统中所述每个粒子的所述坐标和所述化学系统中所述每个粒子的所述速度;并且(iii)电子形式地输出指示所述坐标或所述速度的报告。在一些实施方式中,(i)包括将用于数值梯度估计的jordan量子算法应用于所述量子机械能或电子结构。在一些实施方式中,(ii)包括应用选自以下的一个或多个组件:verlet程序、velocity verlet程序、辛积分、runge-kutta积分和beeman积分。
32.在一些实施方式中,该方法还包括将所述多个片段中的一个或多个分派到一个或多个远程端点并从所述一个或多个远程端点接收所述量子机械能或电子结构。在一些实施方式中,所述一个或多个远程端点中的至少一个包括非经典计算机。在一些实施方式中,所述一个或多个远程端点包括云计算系统的部分。在一些实施方式中,该方法还包括,在(a)之前,从客户端库接收所述至少一个构象并且将所述至少一个构象分派到第一远程端点。在一些实施方式中,(a)和(c)中的至少一个发生在所述第一远程端点处。
33.在一些实施方式中,该方法还包括将所述多个片段中的一个或多个分派到一个或多个远程第二端点并从所述第二一个或多个远程端点接收所述量子机械能或电子结构。在一些实施方式中,该方法还包括将所述报告传送到所述客户端库。在一些实施方式中,所述第二远程端点中的至少一个包括非经典计算机。在一些实施方式中,所述一个或多个远程端点包括云计算系统的部分。在一些实施方式中,(a)中的所述分解是使用所述至少一个经典计算机执行的。在一些实施方式中,(b)中的所述确定是使用所述多个非经典计算机中的至少一个非经典计算机执行的。在一些实施方式中,(c)中的所述组合是使用所述至少一个经典计算机执行的。
34.另一方面,提供了一种用于执行化学系统的量子机械能或电子结构计算的系统。该系统可以包括:可操作地耦合至所述存储器的混合计算单元,其中所述混合计算单元包括至少一个经典计算机和包括多个非经典计算机的分布式计算系统,其中所述混合计算单元被配置为至少:(a)将所述化学系统的构象集合内的至少一种构象分解成多个分子片段;(b)确定所述多个分子片段的至少一个子集的量子机械能或电子结构;(c)组合(b)中确定的所述量子机械能或电子结构;以及(d)电子形式地输出指示在(c)中组合的所述量子机械能或电子结构的报告。
35.在一些实施方式中,该系统还包括计算机存储器,所述计算机存储器包括用于为所述化学系统执行所述量子机械能或电子结构计算的指令,其中所述混合计算单元被配置为实现所述指令以执行至少(a)-(d)。
36.在另一方面,提供了一种包括机器可执行代码的非暂时性计算机可读介质,所述机器可执行代码在由混合计算单元执行时,实现一种用于执行化学系统的量子机械能或电子结构计算的方法,所述混合计算单元包括至少一个经典计算机和包括多个非经典计算机的分布式计算系统。该方法可以包括:(a)将所述化学系统的构象集合内的至少一种构象分解成多个分子片段;(b)确定所述多个分子片段的至少一个子集的量子机械能或电子结构;(c)组合(b)中确定的所述量子机械能或电子结构;以及(d)电子形式地输出指示在(c)中组合的所述量子机械能或电子结构的报告。
37.在另一方面,提供了一种用于执行化学系统的量子机械能或电子结构计算的方法。该方法可以由混合计算单元实现,所述混合计算单元包括分布式计算系统,所述分布式
计算系统包括多个经典计算机和至少一个非经典计算机。该方法可以包括:(a)将所述化学系统的构象集合内的至少一种构象分解成多个分子片段;(b)使用所述混合计算单元确定所述多个分子片段的至少一个子集的量子机械能或电子结构;(c)组合(b)中确定的所述量子机械能或电子结构;以及(d)电子形式地输出指示在(c)中组合的所述量子机械能或电子结构的报告。
38.在一些实施方式中,所述至少一个非经典计算机包括至少一个量子计算机。在一些实施方式中,所述至少一个量子计算机包括选自以下的一个或多个组件:量子硬件设备和量子电路的经典模拟器。在一些实施方式中,所述至少一个非经典计算机包括多种不同类型的非经典计算机。在一些实施方式中,所述量子机械能的能量包括核-核排斥能。在一些实施方式中,该方法进一步包括向所述混合计算单元提供输入,所述输入包括用于所述化学系统的一组原子坐标。在一些实施方式中,该方法进一步包括对所述化学系统的构象的所述集合内的两个或更多个构象执行(a)-(c)。在一些实施方式中,该方法进一步包括对所述多个分子片段的所述至少子集的所述组合的量子机械能或电子结构进行分类。
39.在一些实施方式中,(a)包括应用选自以下的一个或多个组件:碎片分子轨道理论(fmo)方法、分治算法(dc)方法、密度矩阵嵌入理论(dmet)方法、密度矩阵重整化群(dmrg)方法、张量网络和增量方法。
40.在一些实施方式中,(b)包括:(a)确定所述多个分子片段的所述至少子集的分子片段的费米哈密顿量;(b)将所述费米哈密顿量转换为等效的量子位哈密顿量;(c)将所述量子位哈密顿量转换为量子电路;以及(d)使用所述量子电路确定所述分子片段的量子机械能或电子结构。在一些实施方式中,该方法进一步包括使用分子哈密顿量来确定所述量子机械能或电子结构。在一些实施方式中,该方法进一步包括使用电子哈密顿量来确定所述量子机械能或电子结构。在一些实施方式中,将所述费米哈密顿量转换为等效的量子位哈密顿量包括将哈密顿量的费米运算符转换为量子位运算符。
41.在一些实施方式中,该方法进一步包括执行所述化学系统的从头算分子动力学(aimd)模拟。在一些实施方式中,所述aimd模拟包括:在(a)之前,获得化学系统的指示,所述指示包括所述化学系统中多个粒子的每个粒子的坐标和所述化学系统中每个粒子的速度;并且在(c)之后:(i)从所述组合的能量或电子结构确定所述化学系统中每个粒子上的力;(ii)更新所述化学系统中所述每个粒子的所述坐标和所述化学系统中所述每个粒子的所述速度;以及(iii)电子形式地输出指示所述坐标或所述速度的报告。在一些实施方式中,(i)包括将用于数值梯度估计的jordan量子算法应用于所述量子机械能或电子结构。在一些实施方式中,(ii)包括应用选自以下的一个或多个组件:verlet程序、velocity verlet程序、辛积分、runge-kutta积分和beeman积分。
42.在一些实施方式中,该方法还包括将所述多个片段中的一个或多个分派到一个或多个远程端点并从所述一个或多个远程端点接收所述量子机械能或电子结构。在一些实施方式中,所述一个或多个远程端点中的至少一个包括非经典计算机。在一些实施方式中,所述一个或多个远程端点包括云计算系统的部分。
43.在一些实施方式中,该方法还包括,在(a)之前,从客户端库接收所述至少一个构象并且将所述至少一个构象分派到第一远程端点。在一些实施方式中,(a)和(c)中的至少一个发生在所述第一远程端点处。在一些实施方式中,该方法还包括将所述多个片段中的
一个或多个分派到一个或多个远程第二端点并从所述第二一个或多个远程端点接收所述量子机械能或电子结构。在一些实施方式中,该方法还包括将所述报告传送到所述客户端库。在一些实施方式中,所述第二远程端点中的至少一个包括非经典计算机。在一些实施方式中,所述一个或多个远程端点包括云计算系统的部分。
44.在一些实施方式中,(a)中的所述分解是使用所述多个经典计算机中的至少一个经典计算机执行的。在一些实施方式中,(b)中的所述确定是使用所述至少一个非经典计算机执行的。在一些实施方式中,(c)中的所述组合是使用所述多个经典计算机中的至少一个经典计算机执行的。
45.在另一方面,提供了一种用于执行化学系统的量子机械能或电子结构计算的系统。该系统可以包括:可操作地耦合至所述存储器的混合计算单元,其中所述混合计算单元包括分布式计算系统,所述分布式计算系统包括多个经典计算机和至少一个非经典计算机,其中所述混合计算单元被配置为至少:(a)将所述化学系统的构象集合内的至少一种构象分解成多个分子片段;(b)确定所述多个分子片段的至少一个子集的量子机械能或电子结构;(c)组合(b)中确定的所述量子机械能或电子结构;以及(d)电子形式地输出指示在(c)中组合的所述量子机械能或电子结构的报告。
46.在一些实施方式中,该系统还包括计算机存储器,所述计算机存储器包括用于为所述化学系统执行所述量子机械能或电子结构计算的指令,其中所述混合计算单元被配置为实现所述指令以执行至少(a)-(d)。
47.在另一方面,提供了一种包括机器可执行代码的非暂时性计算机可读介质,所述机器可执行代码在由混合计算单元执行时,实现一种用于执行化学系统的量子机械能或电子结构计算的方法,所述混合计算单元包括分布式计算系统,所述分布式计算系统包括多个经典计算机和至少一个非经典计算机。该方法包括:(a)将所述化学系统的构象集合内的至少一种构象分解成多个分子片段;(b)确定所述多个分子片段的至少一个子集的量子机械能或电子结构;(c)组合(d)中确定的所述量子机械能或电子结构;以及(d)电子形式地输出指示在(c)中组合的所述量子机械能或电子结构的报告。
48.在另一方面,提供了一种用于执行化学系统的量子机械能或电子结构计算的方法。该方法可以由混合计算单元实现,所述混合计算单元包括至少一个经典计算机和包括多个非经典计算机的分布式计算系统。该方法可以包括:(a)将所述化学系统的构象集合内的至少一种构象分解成多个分子片段;(b)将所述多个分子片段的子集分派给多个求解器;(c)使用所述多个求解器确定所述多个分子片段的所述子集的多个分子片段的量子机械能或电子结构;和(d)电子形式地输出指示在(c)中确定的所述量子机械能或电子结构的报告。
49.在一些实施方式中,所述多个非经典计算机包括至少一个量子计算机。在一些实施方式中,所述至少一个量子计算机包括选自以下的一个或多个组件:量子硬件设备和量子电路的经典模拟器。在一些实施方式中,所述多个非经典计算机包括不同类型的非经典计算机。在一些实施方式中,所述量子机械能中的量子机械能包括核-核排斥能。在一些实施方式中,该方法进一步包括向所述混合计算单元提供输入,所述输入包括用于所述化学系统的一组原子坐标。在一些实施方式中,该方法进一步包括对所述化学系统的构象的所述集合内的两个或更多个构象执行(a)-(c)。在一些实施方式中,该方法进一步包括所述多
个分子片段的所述至少子集的所述组合量子机械能或电子结构。在一些实施方式中,(a)包括应用选自以下的一个或多个组件:碎片分子轨道理论(fmo)方法、分治算法(dc)方法、密度矩阵嵌入理论(dmet)方法、密度矩阵重整化群(dmrg)方法、张量网络和增量方法。
50.在一些实施方式中,(c)包括:确定所述多个分子片段的分子片段的费米哈密顿量;将所述费米哈密顿量转换为等效的量子位哈密顿量;将所述量子位哈密顿量转换为量子电路;和使用所述量子电路确定所述分子片段的量子机械能或电子结构。在一些实施方式中,该方法进一步包括使用分子哈密顿量确定所述量子机械能或电子结构。在一些实施方式中,该方法进一步包括使用电子哈密顿量确定所述量子机械能或电子结构。在一些实施方式中,将所述费米哈密顿量转换为等效的量子位哈密顿量包括将哈密顿量的费米运算符转换为量子位运算符。
51.在一些实施方式中,该方法进一步包括执行所述化学系统的从头算分子动力学(aimd)模拟。在一些实施方式中,所述aimd模拟包括:在(a)之前,获得化学系统的指示,所述指示包括所述化学系统中多个粒子的每个粒子的坐标和所述化学系统中每个粒子的速度;并且在(c)之后:(i)从所述组合的能量或电子结构确定所述化学系统中每个粒子上的力;(ii)更新所述化学系统中所述每个粒子的所述坐标和所述化学系统中所述每个粒子的所述速度;以及(iii)电子形式地输出指示所述坐标或所述速度的报告。在一些实施方式中,(i)包括将用于数值梯度估计的jordan量子算法应用于所述量子机械能或电子结构。在一些实施方式中,(ii)包括应用选自以下的一个或多个组件:verlet程序、velocity verlet程序、辛积分、runge-kutta积分和beeman积分。
52.在一些实施方式中,所述多个求解器包括一个或多个远程端点。在一些实施方式中,该方法进一步包括从所述一个或多个远程端点接收所述量子机械能或电子结构。在一些实施方式中,所述一个或多个远程端点中的至少一个包括非经典计算机。在一些实施方式中,所述一个或多个远程端点包括云计算系统的部分。
53.在一些实施方式中,该方法进一步包括,在(a)之前,从客户端库接收所述至少一个构象并且将所述至少一个构象分派到第一远程端点。在一些实施方式中,(a)和(c)中的至少一个发生在所述第一远程端点处。在一些实施方式中,该方法进一步包括将所述多个片段中的一个或多个分派到一个或多个远程第二端点并从所述第二一个或多个远程端点接收所述量子机械能或电子结构。在一些实施方式中,该方法还包括将所述报告传送到所述客户端库。在一些实施方式中,所述第二远程端点中的至少一个包括非经典计算机。在一些实施方式中,所述一个或多个远程端点包括云计算系统的部分。
54.在一些实施方式中,(a)中的所述分解是使用所述至少一个经典计算机执行的。在一些实施方式中,(b)中的所述分派是使用所述至少一个经典计算机执行的。在一些实施方式中,(b)中的所述分派是使用所述至少一个经典计算机执行的。在一些实施方式中,(c)中的所述确定是使用所述多个非经典计算机中的至少一个非经典计算机执行的。在一些实施方式中,(d)中的所述输出是使用所述至少一个经典计算机执行的。
55.在另一方面,提供了一种用于执行化学系统的量子机械能或电子结构计算的系统。该系统可以包括:可操作地耦合至所述存储器的混合计算单元,其中所述混合计算单元包括分布式计算系统,所述分布式计算系统包括多个经典计算机和至少一个非经典计算机,其中所述混合计算单元被配置为至少:(a)将所述化学系统的构象集合内的至少一种构
象分解成多个分子片段;(b)将所述多个分子片段的子集分派给多个求解器;(c)使用所述多个求解器确定所述多个分子片段的所述子集的多个分子片段的量子机械能或电子结构;以及(d)电子形式地输出指示在(c)中确定的所述量子机械能或电子结构的报告。在一些实施方式中,该系统还包括:计算机存储器,其包括用于为所述化学系统执行所述量子机械能或电子结构计算的指令,其中所述混合计算单元被配置为实现所述指令以执行至少(a)-(d)。
56.在另一方面,提供了一种包括机器可执行代码的非暂时性计算机可读介质,所述机器可执行代码在由混合计算单元执行时,实现一种用于执行化学系统的量子机械能或电子结构计算的方法,所述混合计算单元包括分布式计算系统,所述分布式计算系统包括多个经典计算机和至少一个非经典计算机。该方法可以包括:(a)将所述化学系统的构象集合内的至少一种构象分解成多个分子片段;(b)确定所述多个分子片段的至少一个子集的量子机械能或电子结构;(c)组合(b)中确定的所述量子机械能或电子结构;以及(d)电子形式地输出指示在(c)中组合的所述量子机械能或电子结构的报告。
57.本公开的另一方面提供了一种包括机器可执行代码的非暂时性计算机可读介质,所述机器可执行代码在由一个或多个计算机处理器执行时实现上述或本文其他地方的任何方法。
58.本公开的另一方面提供了一种系统,该系统包括一个或多个计算机处理器和与其耦合的计算机存储器。计算机存储器包括机器可执行代码,所述机器可执行代码在由一个或多个计算机处理器执行时实现上述或本文其他地方的任何方法。
59.根据以下具体实施方式,本公开内容的其他方面和优点对于本领域技术人员将变得容易理解,其中仅示出和描述了本公开内容的说明性实施方式。如将认识到的,本公开内容能够具有其他不同的实施方式,并且其若干细节能够在不脱离本公开内容的情况下在各种明显的方面进行修改。因此,附图和具体实施方式应被视为本质上是说明性的,而非限制性的。援引并入
60.本说明书中所提及的所有出版物、专利和专利申请均通过引用而并入于此,程度犹如具体地和个别地指出要通过引用而并入每一个别出版物、专利或专利申请。在通过引用并入的出版物和专利或专利申请与说明书中包含的公开内容相抵触的程度上,本说明书旨在取代和/或优先于任何此类矛盾的材料。
附图说明
61.本发明的新颖特征在所附权利要求书中具体阐述。通过参考以下对利用到本发明原理的说明性实施方式加以阐述的详细描述以及附图(在本文中也称为“示图”和“图”),将获得对本公开内容的特征和优点的更好的理解。在这些附图中:
62.图1示出了根据本文公开的一些实施方式,在量子计算硬件上使用问题分解技术来提供分子构象异构体的分类列表的指示的方法的示例的流程图。
63.图2示出了根据本文公开的一些实施方式,在量子计算硬件上提供由问题分解技术定义的子系统的量子机械能和/或电子结构的指示的方法的示例的流程图。
64.图3示出根据本文公开的一些实施方式,在量子计算硬件上提供哈密顿量的期望
值的指示的方法的示例的流程图。
65.图4是正庚烷的示例图示,其中虚线指示碎片分子轨道理论(fmo)片段中的键分离原子。
66.图5是正庚烷的示例图示,示出了通过精确ccsd和分治算法ccsd(dc-ccsd)获得的结果之间以及通过精确ccsd和碎片分子轨道理论ccsd(fmo-ccsd)获得的结果之间的比较。
67.图6是正庚烷的示例图示,示出了容纳构象异构体所需的最小球体(虚线圆),以及涉及二面角(1-4的距离)[左侧]的末端碳原子之间的距离(实线);图中示出了每个构象异构体的总量子机械能(左箭头)和最小球体直径(右箭头)之间的关系,它们是基于总量子机械能[中]分类的;并且图中示出了每个构象异构体[右侧]的总量子机械能(左箭头)和最小的1-4距离(右箭头)之间的关系。
[0068]
图7是3-甲基庚烷的示例图示,其中虚线指示碎片分子轨道理论(fmo)片段中的键分离原子。
[0069]
图8示出了正庚烷(蓝色)和3-甲基庚烷(红色)的量子机械能分布。
[0070]
图9是3-甲基庚烷的示例图示,示出了通过精确ccsd和分治算法ccsd(dc-ccsd)获得的结果之间以及通过精确ccsd和碎片分子轨道理论ccsd(fmo-ccsd)获得的结果之间的比较。
[0071]
图10示出了被编程或以其他方式配置以实现本文提供的方法的计算机控制系统。
[0072]
图11示出了用于执行问题分解的增量方法的示例的流程图。
[0073]
图12示出了分子轨道、原子、分子片段和用作增量方法基础的分子。
[0074]
图13示出了根据本文公开的一些实施方式,在量子计算硬件上使用问题分解技术对分子执行从头算分子动力学(aimd)的方法的示例的流程图。
[0075]
图14示出了根据本文公开的一些实施方式,用于在从头算分子动力学(aimd)模拟中计算系统的每个粒子上的力的方法的示例的流程图。
[0076]
图15示出了可用于解决问题(例如,量子化学问题或模拟)的系统或系统组合的示例。
[0077]
图16示出了用于使用分布式计算系统对化学系统执行量子机械能或电子结构计算的方法的示例的流程图。
[0078]
图17示出了包括非经典计算机(例如,量子计算机)和多个经典计算机的分布式计算系统的架构的示例。
[0079]
图18示出了根据本文公开的一些实施方式的包括顺序问题分解的分布式计算系统。
[0080]
图19示出了根据本文公开的一些实施方式的包括问题调度的分布式计算系统。
[0081]
图20示出了根据本文公开的一些实施方式的包括客户端库内的问题调度的分布式计算系统的示例架构。
[0082]
图21示出了根据本文公开的一些实施方式的包括远程端点处的问题调度的分布式计算系统的示例架构。
具体实施方式
[0083]
尽管本发明已经示出和描述了本发明的各个实施方式,但对于本领域技术人员容
易理解的是,这样的实施方式只是以示例的方式提供的。本领域技术人员可以在不偏离本发明的情况下想到许多更改、改变和替代。应当理解,可以采用对本文所描述的本发明实施方式的各种替代方案。
[0084]
除非另有定义,否则本文使用的所有技术术语都与本发明所属领域中普通技术人员普遍理解的含义相同。如本说明书和所附权利要求书中所使用,单数形式“一个”、“一种”和“该”等包括复数指代对象,除非上下文另有明确规定。本文对“或”的任何提及旨在包含“和/或”,除非另有说明。
[0085]
每当术语“至少”、“大于”或“大于或等于”在一系列两个或多个数值中的第一个数值之前时,术语“至少”、“大于”或“大于或等于”适用于该系列数值中的每个数值。例如,大于或等于1、2或3相当于大于或等于1、大于或等于2或大于或等于3。
[0086]
每当术语“不超过”、“小于”或“小于或等于”在一系列两个或多个数值中的第一个数值之前时,术语“不超过”、“小于”或“小于或等于”适用于该系列数值中的每个数值。例如,小于或等于3、2或1相当于小于或等于3、小于或等于2或小于或等于1。
[0087]
在下面的详细描述中,参考了附图,这些附图构成了本文的一部分。在附图中,除非上下文另外指出,否则相似的符号通常标识相似的组件。在详细描述、附图和权利要求中描述的说明性实施方式并不意味着是限制性的。在不脱离本文提出的主题的范围的情况下,可以利用其他实施方式,并且可以进行其他改变。容易理解的是,如本文中一般描述的和附图中示出的,本公开内容的各方面可以以各种不同的配置来布置、替换、组合、分离和设计,所有这些都是在本文中明确考虑的。
[0088]
本公开提供了将量子化学中的问题分解(pd)技术应用于识别和预测化学系统的量子机械能和/或电子结构或者识别分子的一组最能量稳定的构象异构体的方法。本文提供的用于在qc平台上执行pd技术的系统和方法可以使每个片段的量子机械能和/或电子结构计算能够以高水平的准确度来执行。进一步地,每个片段的小尺寸可以允许在计算规模相当有限的qc设备上执行高度准确的计算,从而有效且准确地获得复杂的、与工业相关分子的能量和/或电子结构。本文描述的方法和系统不是简单地可以应用于单个化学系统,而且还可以应用于具有不同缔合结构的分子聚集体。例如,本文公开的方法和系统可以用于从可能的结合方向的集合中识别候选药物与靶蛋白的最稳定的结合方向。
[0089]
在一些情况下,经典计算机可被配置用于执行一个或多个经典算法。经典算法(或经典计算任务)可以包括能够由一个或多个经典计算机执行的算法(或计算任务),而不使用量子计算机、量子就绪计算服务或量子使能计算服务。经典算法可以包括非量子算法。经典计算机可以包括不包括量子计算机、量子就绪计算服务或量子使能计算机的计算机。经典计算机可以处理或存储由数字位(例如,零(“0”)和一(“1”))而非量子比特(量子位)表示的数据。经典计算机的示例包括但不限于:服务器计算机、台式计算机、膝上型计算机、笔记本计算机、亚笔记本计算机、上网本计算机、网络计算机、机顶计算机、流媒体设备、手持式计算机、因特网家用设备、移动智能电话,平板计算机、个人数字助理、视频游戏控制台和载具。
[0090]
混合计算单元可以包括经典计算机和量子计算机。所述量子计算机可被配置用于执行一个或多个量子算法以求解计算问题(例如,量子化学模拟的至少一部分)。可以使用量子计算机、量子就绪计算服务或量子使能计算服务来执行一个或多个量子算法。例如,可
以使用题为“methods and sysetms for quantum ready and quantum enabled computations”的美国专利公开号2018/0107526中描述的系统或方法来执行一种或多种量子算法,其通过引用整体并入本文。所述经典计算机可以包括至少一个经典处理器和计算机存储器,并且可被配置用于执行一个或多个经典算法以求解计算问题(例如,量子化学模拟的至少一部分)。该数字计算机可以包括至少一个计算机处理器和计算机存储器,其中所述数字计算机可以包括具有指令的计算机程序,所述指令可由所述至少一个计算机处理器执行以实施应用程序。该应用程序可以促使用户使用量子计算机和/或经典计算机。
[0091]
一些实施方式可以使用量子计算机以及按位操作的经典计算机,诸如个人台式机、膝上型计算机、超级计算机、分布式计算、集群、基于云的计算资源、智能电话或平板计算机。
[0092]
所述系统可以包括针对用户的接口。在一些情况下,所述接口可以包括应用程序编程接口(api)。该接口可以提供程序模型,该程序模型将量子计算机的内部细节(例如,架构和操作)抽象化(例如,通过向用户隐藏而抽象化)。在一些情况下,针对量子硬件变化,接口可以将更新应用程序的需求最小化。在一些情况下,当量子计算机内部结构发生变化时,接口可以保持不变。
[0093]
本公开内容提供了可包括非经典(量子)计算或使用非经典(量子)计算的系统和方法。量子计算机可能能够比经典计算机更高效地求解特定类别的计算任务。然而,量子计算资源可能是稀有且昂贵的,并且可能涉及一定水平的专业知识以得到高效或有效使用(例如,成本效益高或具有成本效益)。可以调整许多参数以使得量子计算机输出潜在的计算能力。
[0094]
量子计算机(或其他类型的非经典计算机)可能能够作为协处理器,与经典计算机一起工作。包括经典计算机和量子计算机的混合架构(例如,计算系统)对于解决诸如量子化学模拟的复杂计算任务可能非常有效。本文公开的系统和方法可能能够有效且准确地分解或分为给定的量子化学问题,并将量子化学模拟的适当组件委派给量子计算机或经典计算机。
[0095]
尽管本公开内容引用的是量子计算机,但是本公开内容的方法和系统可以用于与其他类型的计算机一起使用,所述其他类型的计算机可以是非经典计算机。这样的非经典计算机可以包括量子计算机、混合量子计算机、量子型计算机或不是经典计算机的其他计算机。非经典计算机的示例可以包括但不限于:hitachi伊辛求解器、基于光学参数的相干伊辛机,以及利用不同物理现象在求解特定类别问题时获得更高效率的其他求解器。
[0096]
在某些情况下,量子计算机可能包括一个或多个绝热量子计算机、量子门阵列、单向量子计算机、拓扑量子计算机、量子图灵机、基于超导体的量子计算机、俘获离子量子计算机、俘获原子量子计算机、光晶格、量子点计算机、基于自旋的量子计算机、基于空间的量子计算机、loss-divincenzo量子计算机、基于核磁共振(nmr)的量子计算机、溶液态nmr量子计算机、固态nmr量子计算机、固态核磁共振凯恩量子计算机、氦对电子量子计算机、基于腔量子电动力学的量子计算机、分子磁量子计算机、基于富勒烯的量子计算机、线性光学量子计算机、基于金刚石的量子计算机、氮基于空位(nv)金刚石的量子计算机、基于玻色-爱因斯坦凝聚态的量子计算机、基于晶体管的量子计算机和基于稀土金属离子掺杂无机晶体的量子计算机。量子计算机可以包括以下中的一项或多项:量子退火器、ising求解器、光学
参量振荡器(opo)和量子计算的门模型。
[0097]
在一些情况下,本公开的非经典计算机可以包括嘈杂的中等规模量子设备。术语噪声中级量子(nisq)是由john preskill在“nisq时代及以后的量子计算”中引入的。arxiv:1801.00862。在这里,“噪声”可能意味着存在对量子位的不完全控制以及“中级”可能意味着量子比特的数量,其范围从50到几百。目前提出了由超导量子位、人造原子、离子阱制成的几种物理系统,作为构建nisq量子设备和最终通用量子计算机的可行候选。
[0098]
在一些情况下,可以使用量子电路的经典模拟器,其可以在经典计算机上运行,例如macbook pro笔记本计算机、windows笔记本计算机或linux笔记本计算机。在一些情况下,经典模拟器可以在云计算平台上运行,以并行或分布式方式访问多个计算节点。在一些情况下,可以使用经典模拟器执行全部或部分量子机械能和/或电子结构计算。
[0099]
在此描述的方法可以在模拟量子模拟器上执行。模拟量子模拟器可以是由多个制造的量子位组成的量子力学系统。模拟量子模拟器可以设计为通过使用物理上不同但数学上等效或近似等效的系统来模拟量子系统。在模拟量子模拟器中,每个量子位都可以在线性射频陷阱中的捕获的原子离子串中实现。每个量子位可以耦合偏置源,称为局部场偏置。量子位上的局部场偏置可以是可编程的和可控的。在一些情况下,包括数字处理单元的量子位控制系统连接到量子位系统并且能够对量子位上的局部场偏置进行编程和调谐。经典计算机
[0100]
在一些情况下,本文描述的系统、介质、网络和方法包括经典计算机或其使用。在一些情况下,经典计算机包括执行经典计算机功能的一个或多个硬件中央处理单元(cpu)。在一些情况下,经典计算机还包括被配置用于执行可执行指令的操作系统(os)。在一些情况下,经典计算机连接至计算机网络。在一些情况下,经典计算机连接至因特网,以使其访问万维网。在一些情况下,经典计算机连接至云计算基础设施。在一些情况下,经典计算机连接至内联网。在一些情况下,经典计算机连接至数据存储设备。
[0101]
根据本文的描述,合适的经典计算机的非限制性示例可以包括:服务器计算机、台式计算机、膝上型计算机、笔记本计算机、亚笔记本计算机、上网本计算机、网络计算机,机顶计算机、流媒体设备、手持式计算机、因特网家用设备、移动智能电话,平板计算机、个人数字助理、视频游戏控制台和载具。智能电话可能适合使用本文描述的方法和系统。在一些情况下,具有计算机网络连接的选择电视、视频播放器和数字音乐播放器可适合用于本文描述的系统和方法。合适的平板计算机可以包括具有轻薄、板式和可转换配置的平板计算机。
[0102]
在一些情况下,经典计算机包括被配置用于执行可执行指令的操作系统。操作系统例如可以是包括程序和数据的软件,该软件管理设备的硬件并提供服务以供执行应用程序。合适的服务器操作系统的非限制性示例包括:freebsd、openbsd、linux、mac os xwindows和合适的个人计算机操作系统的非限制性示例可以包括:合适的个人计算机操作系统的非限制性示例可以包括:mac os和类似unix的操作系统,诸如在一些情况下,操作系统通过云计算提供。合适的移动智能电话操作系统
的非限制性示例可以包括:os、research inblackberrywindowsos、windowsos、和和合适的流媒体设备操作系统的非限制性示例可以包括:applegooglegoogleamazon和合适的视频游戏控制台操作系统的非限制性示例可以包括:xboxmicrosoft xbox one、和
[0103]
在一些情况下,经典计算机包括存储器和/或储存设备。在一些情况下,存储器和/或储存设备是用于临时或永久地存储数据或程序的一个或多个物理设备。在一些情况下,该设备是易失性存储器并且需要电力来维护所存储的信息。在一些情况下,该设备是非易失性存储器,并且在经典计算机未通电时保留所存储的信息。在一些情况下,非易失性存储器包括闪速存储器。在进一步情况下,非易失性存储器包括动态随机存取存储器(dram)。在进一步情况下,非易失性存储器包括铁电随机存取存储器(fram)。在进一步情况下,非易失性存储器包括相变随机存取存储器(pram)。在其他情况下,设备是存储设备,其非限制性示例包括cd-rom、dvd、闪速存储设备、磁盘驱动器、磁带驱动器、光盘驱动器和基于云计算的存储器。在一些情况下,存储器和/或储存设备是诸如本文所公开设备的组合。
[0104]
在一些情况下,经典计算机包括用于为用户发送视觉信息的显示器。在一些情况下,显示器为阴极射线管(crt)。在一些情况下,显示器为液晶显示器(lcd)。在一些情况下,显示器为薄膜晶体管液晶显示器(tft-lcd)。在一些情况下,显示器是有机发光二极管(oled)显示器。在一些情况下,在oled显示器上是无源矩阵oled(pmoled)或有源矩阵oled(amoled)显示器。在一些情况下,显示器为等离子显示器。在其他情况下,显示器为视频投影仪。在一些情况下,显示器是诸如本文所公开设备的组合。
[0105]
在一些情况下,经典计算机包括用于从用户接收信息的输入设备。在一些情况下,所述输入设备是键盘。在一些情况下,所述输入设备是指示设备,其非限制性示例包括:鼠标、轨迹球、触控板、操纵杆、游戏控制器或触控笔。在一些情况下,所述输入设备是触摸屏或多点触摸屏。在一些情况下,输入设备是用于捕获语音或其他声音输入的麦克风。在一些情况下,输入设备是用于捕捉运动或视觉输入的摄像机或其他传感器。在一些情况下,输入设备是kinect、leap motion等。在一些情况下,所述输入设备是诸如本文所公开设备的组合。非暂时性计算机可读存储介质
[0106]
在一些情况下,本文描述的系统和方法包括一个或多个用程序编码的非暂时性计算机可读存储介质,该程序包括可由可选地联网的数字处理设备的操作系统执行的指令。在一些情况下,计算机可读存储介质是经典计算机的有形组件。在一些情况下,计算机可读存储介质可选地可从经典计算机移除。在一些情况下,计算机可读存储介质的非限制性示例包括cd-rom、dvd、闪速存储设备、固态存储器、磁盘驱动器、磁带驱动器、光盘驱动器、云
method,”physical chemistry chemical physics,2012,14,7562描述的那些,其通过引用整体并入本文。
[0116]
例如,dc方法首先由yang,“direct calculation of electron density in density-functional theory:implementation for benzene and a tetrapeptide,”physical review a,1991,44,7823描述,其通过引用整体并入本文。dc方法已经被进一步揭露和描述,例如由akama等人,“implementation of divide-and-conquer method including hartree-fock exchange interaction,”journal of computational chemistry,2007,28,2003和kobayashi等人,“divide-and-conquer approaches to quantum chemistry:theory and implementation,”in linear-scaling techniques in computational chemistry and physics:methods and applications,zalesny等人编辑,(springer netherlands,dordrecht,2011),97-127,其通过引用整体并入本文。
[0117]
例如,dmet首先由knizia等人,“density matrix embedding:asimple alternative to dynamical mean-field theory,”physical review letters,2012,109,186404描述,其通过引用整体并入本文。dmet被进一步揭露和描述,例如由wouters等人,“a practical guide to density matrix embedding theory in quantum chemistry,”journal of chemical theory and computation,2016,12,2706,其通过引用整体并入本文。
[0118]
例如,dmrg首先由steven r.white“density matrix formulation for quantum renormalization groups”描述,physical review letters,1992,69,2863,其全文通过引用并入本文。dmrg的综述由ulrich schollwock,arxiv.org:cond-mat/0409292[cond-mat.str-el]或review of modern physics,2005,77,259提供,其通过引用整体并入本文。
[0119]
例如,张量网络可能是基于其纠缠结构的量子多体状态的数学表示。不同的张量网络结构描述了不同的物理情况,例如有间隙的一维系统、二维系统和尺度不变系统的低能量状态。张量网络可以将量子状态表示为一个或多个矩阵乘积状态。张量网络的评论由roman orus“tensor network for complexquantum systems”,nature reviews physics,2019,1,538提供,其通过引用整体并入本文。
[0120]
图11示出了用于执行问题分解的增量方法1100的示例的流程图。方法1100通常可以被称为“增量方法”,或者可以根据所使用的量子化学方法而被不同地称为方法。例如,增量方法中的单一耦合簇(ucc)方法的利用可以被称为“增量单一耦合簇”(iucc)方法。方法1100可以包括根据操作1102获得分子的指示。本文公开的方法1100可以适用于任何类型的分子。分子可以包括例如有机化合物、无机化合物、聚合物、肽、多肽、蛋白质、核酸、碳水化合物等。本文公开的方法也可适用于分子的复合物,例如一种或多种蛋白质-药物复合物(包括或不包括溶剂分子)。
[0121]
方法1100可以包括根据操作1104执行分子的能量的增量扩展。可以根据方程式(1)执行增量扩展:ec=∑i∈i ∑
i》j

ij

i》j》k

ijk
ꢀꢀꢀ
(1)
[0122]
此处,相关能量ec(总分子能量与平均场hartree-fock能量之差)表示为n体bethe-goldstone扩展。各个n体相关能量贡献由方程式(2)定义:∈i=e
c(i)ꢀꢀꢀꢀ
(2)

ij
=ec(ij)-∈
i-∈j∈
ijk
=ec(ijk)-∈
ij-∈
ik-∈
jk-∈
j-∈
j-∈k[0123]
此处,ec(i)是各个1体相关能量,ec(ij)是各个2体相关能量,以及ec(ijk)是各个3体相关能量。索引i、j和k可以对应于任意数量的分子轨道、原子、分子片段或整个分子。索引i、j和k可以对应于分子轨道、原子、分子片段和整个分子的任何可能组合。因此,可以根据分子轨道、原子、分子片段和整个分子的任何可能的组合来表达增量扩展。
[0124]
图12描绘了分子轨道、原子、分子片段和用作增量方法基础的分子。当以原子、片段和分子的任何可能组合表示增量扩展时,所得框架可能成为fmo方法的框架。当增量扩展以分子轨道表示时,所得框架可能成为增量完全组态相互作用(ifci)方法的框架,例如由zimmerman等人“strong correlation in incremental full configuration interaction,”journal of chemical physics,2017,146,224104描述,其通过引用整体并入本文。
[0125]
回到图11的描述,根据操作1106,方法1100可以进一步包括参考操作1104描述的针对每个增量求解薛定谔方程(例如,通过使用量子化学模拟器来根据方法200求解量子化学问题)。在一些情况下,可以使用相位估计程序来实现薛定谔方程的解。例如,相位估计算法由aspuru-guzik等人,“simulated quantum computation of molecular energies,”science,2005,309,1704描述,其通过引用整体并入本文。在一些情况下,可以使用绝热量子模拟来实现薛定谔方程的解。在一些情况下,可以通过求解变分量子本征求解器(vqe)内的单一耦合簇(ucc)问题来实现薛定谔方程的解。例如,vqe由mcclean等人,“the theory of variational hybrid quantum-classical algorithms,”new journal of physics,2016,18,023023描述,其通过引用整体并入本文。在一些情况下,ucc ansatz可包括给定增量的所有可能的激发。在这种情况下,ucc ansatz可能等效于薛定谔方程的精确解,或者等效于每个增量的完全组态相互作用(fci)。在一些情况下,ucc ansatz到低阶激发的截断可以用于近似每个增量的精确结果(以任何可能的近似值)。薛定谔方程的解可以重复一个或多个增量。例如,可以对所有增量的任何可能子集重复薛定谔方程的解,或者可以对所有增量重复薛定谔方程的解。在一些情况下,可以对每个增量的薛定谔方程的解进行并行化。例如,可以使用高性能计算架构并行化每个增量的薛定谔方程的解。
[0126]
方法1100可以进一步包括根据操作1108计算量子力学分子电子能量。可以通过根据方程式(1)对每个增量贡献求和来计算量子力学分子电子能以产生量子力学分子相关能,从而得出所研究系统的总量子机械能。
[0127]
回到图1的描述,在一些情况下,相同的分段方案可以用于集合中的所有构象异构体。例如,当硬件的能力受到限制并且片段大小必须非常小时,这种分段方案可能是合适的。该分段方案可以与在本文的示例中描述的错误消除有关。在一些情况下,可以将不同的分段方案用于集合中的一个或多个构象异构体。(b)计算每个pd片段的量子机械能和/或电子结构
[0128]
方法100可以包括使用混合计算单元确定多个分子片段的至少一个子集中的每个的量子机械能和/或电子结构。例如,方法100可以包括根据操作110、112和114)来计算一个或多个子系统的量子机械能和/或电子结构。
[0129]
根据操作110,可以选择列表中的下一个片段或子系统。然后,可以针对每个pd片
wigner转换或bravyi-kitaev转换。
[0140]
例如,jordan-wigner转换提供了以下量子位哈密顿量:
[0141]
此处,指示外积,是方程式(3)中源自h
pq
和v
pqrs
的常数。索引集{p,q,r,s}可以在自旋轨道上求和。索引集{a,b,c,d}可以是x或y。
[0142]
根据操作216,可以离散哈密顿量中的时间,以准备执行哈密顿量的模拟。(iii)电路准备
[0143]
根据操作218,可以模拟量子位哈密顿量。可以通过执行本文关于图3公开的操作310、312、314和318中的任何至少1、2、3或4,或至多4、3、2或1来模拟量子位哈密顿量。
[0144]
精确区分分子构象的过程中的阻碍可能是执行总量子机械能和/或电子结构计算。为了帮助缓解该障碍,可以使用pd技术将问题分解为更小,更易于管理的部分。在一些情况下,可以使用量子计算机来执行子问题的子集中的每个的总量子机械能和/或电子结构计算。在一些情况下,可以在经典计算机上模拟子问题的子集的每个的量子计算过程。使用量子计算机计算总量子机械能和/或电子结构的过程可以包括运行量子算法以计算描述该子问题的哈密顿量的最低特征值。
[0145]
图3示出了在量子计算硬件上提供哈密顿量的期望值的指示的方法218的示例的流程图。方法218可以包括方法200的操作218。
[0146]
方法218可以包括根据操作310将哈密顿量转换为与正在使用的计算系统(例如,量子计算系统或硬件,或量子经典系统或硬件)的特性(例如,量子位的连通性和哪些门可能被应用)匹配的量子电路。用于计算哈密顿量的最低能量特征值的技术可以包括相位估计算法和变分量子本征求解器(vqe)。例如,相位估计算法由[aspuru-guzik等人,“simulated quantum computation of molecular energies,”science,2005,309,1704]描述,其通过引用整体并入本文。例如,vqe由[mcclean等人,“the theory of variational hybrid quantum-classical algorithms,”new journal of physics,2016,18,023023]描述,其通过引用整体并入本文。可执行这些算法以将分子或子分子的量子位哈密顿量编码为量子电路的参数。(iv)每个pd片段的初始状态准备
[0147]
方法218可以包括根据操作312为在量子经典硬件上的量子化学模拟准备初始状态(或初始猜测)。合适的初始状态可以是hartree fock波函数。合适的初始状态可以是通过后hartree fock方法获得的波函数。例如,可以使用[matsuura等人,“vanqver:the variational and adiabatically navigated quantum eigensolver,”arxiv:1810.11511,october31,2018]中描述的任何系统或方法来准备合适的初始状态,其通过引用整体并入本文。(v)在量子经典硬件上模拟pd哈密顿量
[0148]
给定量子电路(来自操作310)和初始状态(来自操作312),方法218可以包括模拟量子位哈密顿量。方法218可以包括根据操作314在量子计算机上编译和执行(例如,优化)初始状态和/或量子位哈密顿量。在一些情况下,量子计算机包括量子硬件设备316或量子电路的经典模拟器(例如,量子硬件模拟器316)。例如,根据操作314,可以将转换的量子电
路和初始量子位状态发送到量子硬件设备316或发送到量子硬件模拟器316以对每个片段执行量子化学模拟。
[0149]
用于计算片段的总量子机械能和/或电子结构的电路和初始状态的发送(分别根据操作310和312)可以在转换的片段准备好时按顺序完成,或者它们都可以被计算,然后并行发送到一个或多个量子硬件设备或经典模拟器。
[0150]
在一些情况下,量子计算机可以包括一个或多个绝热量子计算机、量子门阵列、单向量子计算机、拓扑量子计算机、量子图灵机、基于超导体的量子计算机、俘获离子量子计算机、俘获原子量子计算机、光学晶格、量子点计算机、基于自旋的量子计算机、基于空间的量子计算机、loss-divincenzo量子计算机、基于核磁共振(nmr)的量子计算机、溶液态nmr量子计算机、固态nmr量子计算机、固体-状态核磁共振凯恩量子计算机、氦对电子量子计算机、基于腔量子电动力学的量子计算机、分子磁量子计算机、基于富勒烯的量子计算机、线性光学量子计算机、基于金刚石的量子计算机、基于氮空位(nv)金刚石的量子计算机、基于玻色-爱因斯坦凝聚态的量子计算机、基于晶体管的量子计算机和基于稀土金属离子掺杂无机晶体的量子计算机。量子计算机可以包括以下中的一个或多个:量子退火器、ising求解器、光学参量振荡器(opo)和量子计算的门模型。
[0151]
在一些情况下,可以使用量子电路的经典模拟器,其可以在经典计算机上运行,例如macbook pro膝上型计算机、windows膝上型计算机或linux膝上型计算机。在一些情况下,经典模拟器可以在能够以并行或分布式方式访问多个计算节点的云计算平台上运行。在一些情况下,可以使用经典模拟器来执行对于片段的子集的总量子机械能和/或电子结构计算,并且可以使用量子硬件来执行对于其余片段的总量子机械能和/或电子结构计算。(vi)测量所得状态
[0152]
方法218可以包括根据操作318测量量子比特以提供最低特征值的经典指示。根据所使用的算法,还可以提供产生最低能量特征值的电子结构配置所需的参数。测量的基础可以由哈密顿量和所使用的量子算法来指示。对存储在量子比特中的量子数据的测量可以将该信息转换为经典的信息比特。为了提供对被测量数据的准确估计,可以重复操作218的至少一部分。在这种情况下,可以对从操作218的多个重复执行中获得的多个结果进行平均。根据所使用的算法,还可以提供产生产生最低能量特征值的电子结构配置所需的参数。
[0153]
回到图2的讨论,在执行操作218一次或更多次之后,方法200可以包括根据操作220测量哈密顿量的期望值的指示。
[0154]
方法200可以包括根据操作222确定是否使用了born-oppenheimer近似(例如,在操作204中)。如果使用了born-oppenheimer近似,则方法200可以包括根据操作224,计算核-核排斥能,然后将计算出的核-核排斥能与测得的期望值相加。方法200可以包括根据操作226提供子系统的量子机械能和/或电子结构的指示,从而结束由方法200执行的量子化学模拟。
[0155]
回到图1的讨论,方法100可以包括根据操作112存储子系统的所得量子机械能和/或电子结构,例如在量子力学子系统能和/或电子结构的列表中。方法100可以包括:根据操作100,确定是否已经处理了构象异构体的所有子系统以计算它们的量子机械能和/或电子结构;如果没有,则可以选择列表上的下一个子系统(根据操作110),并且可以在其上执行操作112和114。
(c)组合pd片段的量子机械能和/或电子结构
[0156]
在化学系统的一个或多个分子片段经过处理以计算其量子机械能和/或电子结构之后,使用混合计算单元对化学系统执行量子机械能和/或电子结构计算的方法可以包括组合为分子片段确定的量子机械能和/或电子结构。例如,根据操作118,用于有效识别化学系统的稳定构象的方法可以包括重新组合每个片段获得的能量和/或电子结构以获得整个化学系统(例如分子)的构象异构体的总量子机械能和/或电子结构。在操作118中执行片段的能量和/或电子结构的重新组合以获得化学系统的构象异构体的总量子机械能和/或电子结构的方法可以依赖于操作108中使用的问题分解(pd)方法,并由该方法充分描述。然后可以存储所得的构象异构体的量子机械能和/或电子结构,例如在量子力学构象异构体能和/或电子结构的列表中。
[0157]
根据操作120,确定是否已经处理了化学系统(例如分子)中所有感兴趣的构象异构体以计算它们的量子机械能和/或电子结构;如果不是,则选择列表上的下一个构象异构体(根据操作106),并且在其上执行操作108、110、112、114、116和118。
[0158]
在一些情况下,执行操作108、110、112、114、116和118直到满足停止标准。在一个实施方式中,停止标准可以是每个片段的电子结构能量的收敛。在另一实施方式中,停止标准可以是每个片段的分子性质(片段的电子数、减少的密度矩阵等)的收敛。虽然问题分解可能不会改变正在计算的分子的属性,例如能量,但在某些情况下,改变问题分解的方式和类型直到满足停止标准可能是有用的。例如,片段的数量和/或大小可以迭代地改变。例如,块抽取可以在密度矩阵重归一化组方法中迭代地改变。例如,片段大小可以从较大的片段变到较小的片段,以提高在具有大量片段的系统中收敛的速度。例如,在对称系统中,可以改变片段的数量和/或大小,直到发现片段之间足够的平移不变性以通过利用对称性来提高系统收敛的速度。最稳定构象异构体的预测
[0159]
在对构象异构体的集合中的感兴趣的构象异构体进行处理以计算其量子机械能和/或电子结构之后,根据操作122,基于由操作118提供的每个构象异构体的总量子机械能和/或电子结构的估计,构象异构体集合中提供的构象异构体可以以任何顺序分类,例如通过增加或减少稳定性的顺序分类。根据操作124,基于所得的量子机械能和/或电子结构,提供化学系统的构象异构体分类列表的指示,这提供了对化学系统的构象异构体集合中最稳定的构象异构体的预测。
[0160]
pd方法通常可以提供准确的结果,如fedorov等人,“exploring chemistry with the fragment molecular orbital method,”physical chemistry chemical physics,2012,14,7562;kobayashi等人,“divide-and-conquer approaches to quantum chemistry:theory and implementation,”in linear-scaling techniques in computational chemistry and physics:methods and applications,zalesny等人编辑.(springer netherlands,dordrecht,2011),97-127;以及wouters等人,“a practical guide to density matrix embedding theory in quantum chemistry,”journal of chemical theory and computation,2016,12,2706所描述的那样,其中的每一个通过引用整体并入本文。
[0161]
此外,下面的示例说明了即使当片段大小非常小时,通过具有和不具有pd的特定
方法(例如,通过ccsd)获得的能量之间的良好相关性。因此,可以基于通过pd获得的能量直接识别化学系统中最稳定的构象异构体,或者通过使用上面公开的方法来缩小构象异构体集合的大小以进行更精确的计算。从头算分子动力学
[0162]
本公开内容的系统和方法可用于使用从头算分子动力学(aimd)技术来模拟分子结构随时间的演变。在这样的模拟中,本文所述的量子使能问题分解(pd)技术可计算分子的量子机械能和/或电子结构(例如,如本文中针对图1、图2或图3所述)。量子机械能和/或电子结构计算可以用作aimd框架中力计算的基础。可以基于通过本文所述的量子使能pd技术获得的量子机械能来确定作用在分子内的粒子(例如分子内的一个或多个原子)上的力。然后可以使用aimd技术更新粒子的位置和速度。
[0163]
图13示出了在量子计算硬件上使用问题分解技术对分子执行从头算分子动力学(aimd)的方法1300的示例的流程图。
[0164]
方法1300可以包括根据操作1302获得输入分子的指示。本文公开的方法1300可以适用于任何类型的化学系统。化学系统可以包括例如有机化合物、无机化合物、聚合物、肽、多肽、蛋白质、核酸、碳水化合物等。本文公开的方法也可适用于分子的复合物,例如一种或多种蛋白质-药物复合物(包括或不包括溶剂分子)。
[0165]
方法1300可以包括根据操作1304获得系统中粒子的初始坐标。例如,系统中粒子的初始坐标可以对应于分子内原子核的坐标。系统中粒子的初始坐标可以是理论得出的,也可以是实验得出的。例如,系统中粒子的初始坐标可以从预测的分子结构中得出。系统中粒子的初始坐标可以从实验程序得出,例如x射线晶体学、透射电子显微镜(tem)、扫描电子显微镜(sem)、扫描隧道电子显微镜(stem)、原子力显微镜(afm)、溶液态核磁共振(nmr)、固态nmr或其他实验程序。系统中粒子的初始坐标可以从数据库中获得,例如pubchem、生物相关的化学实体(chebi)、drugbank、小分子通路数据库(smpdb)、chemdb、蛋白质数据库(pdb)或其他数据库。
[0166]
方法1300可以包括根据操作1306获得系统中粒子的初始速度。粒子的初始速度可以以各种方式获得。例如,可以通过在温度下从maxwell-boltzmann分布中随机选择每个粒子的速度来获得粒子的初始速度。在一些情况下,这样的过程可能导致系统的净动量,导致系统整体的初始线性运动。在一些情况下,可以通过计算系统的净动量并调整每个粒子的初始速度以将净动量减小为零来消除初始线性运动。类似地,该过程可能导致系统的净角动量,导致系统整体的初始旋转运动。在一些情况下,可以通过计算系统的净角动量并调整每个粒子的初始角速度以将净角动量减小为零来消除初始旋转运动。
[0167]
在操作1304或1306期间,可以设置附加参数。例如,可以指定分子动力学时间步骤的目标数量、时间增量、目标温度和/或目标压力。
[0168]
方法1300可以包括根据操作1308计算在系统的每个粒子上的力。
[0169]
图14示出了用于在从头算分子动力学(aimd)模拟中计算系统的每个粒子上的力的方法1400的示例的流程图。该方法可以包括实现用于系统的量子机械能和/或电子结构计算的量子使能pd的方法,例如本文所述的方法100。
[0170]
该方法可以进一步包括根据操作1402估计在系统的每个粒子上的力。可以从系统的量子机械能和/或电子结构计算中计算在系统的每个粒子上的力。可以通过多种程序来
计算在系统的每个粒子上的力。例如,可以使用jordan的用于数值梯度估计的量子算法来计算在系统每个粒子上的力,如jordan,“fast quantum algorithm for numerical gradient estimation”,physical review letters,2015,95,050501中所公开的,其通过引用整体并入本文。可以使用量子硬件(例如本文所述的量子计算机)或在量子模拟器(例如本文所述的量子模拟器)上执行用于数字梯度估计的jordan量子算法。可以使用经典硬件(例如本文所述的经典计算机)上的数值梯度估计技术来计算在系统每个粒子上的力。
[0171]
回到图13的讨论,方法1300可以进一步包括根据操作1310在下一时间步骤中更新系统中粒子的坐标和/或速度。系统中粒子的坐标和/或速度可以根据各种程序来更新。例如,可以使用verlet程序更新系统中粒子的坐标和/或速度,其中坐标和/或速度基于最近和第二最近时间步骤使用坐标和/或速度的系列扩展来更新。可以使用速度verlet程序更新系统中粒子的坐标和/或速度,其中基于最近速度更新位置,基于最近的力部分地更新速度,使用更新的位置计算更新后的力,并基于最近的力完全地更新速度。系统中粒子的坐标和/或速度可以使用多种积分技术通过力的数值积分来更新,例如辛积分、verlet-stoermer积分、runge-kutta积分、beeman积分或其他积分技术。在系统中粒子的坐标和/或速度的更新期间,可以应用各种恒温器和/或恒压器以维持对系统的温度和/或压力的控制。例如,可以应用langevin恒温器和anderson恒压器。
[0172]
方法1300可以包括根据操作1312将粒子的坐标和/或速度存储在系统中,例如存储在坐标和/或速度的列表中。坐标和/或速度列表可以包括系统的轨迹。
[0173]
方法1300可以包括根据操作1314检查分子动力学时间步骤的数量。可以重复操作1302、1304、1306、1308、1310和1312中的任何一个或多个,直到时间步骤的数量直到满足停止标准,例如,达到阈值、预定步数等。在这种情况下,方法1300可以停止。
[0174]
方法1300可以包括提供系统的结果轨迹的指示。分布式计算
[0175]
在一些情况下,多个分子片段的每个子集的量子机械能和/或电子结构可以使用一个或多个分布式计算系统来确定或计算,例如一个或多个集群或基于云的计算系统。分布式计算系统可以包括多个非经典计算机(例如这里描述的任何非经典计算机)、多个经典计算机或两者。例如,分布式计算系统可以包括多个非经典计算机。多个非经典计算机中的每个非经典计算机可被分配(例如,经由调度例程)以确定或计算多个分子片段中的一个或多个分子片段的量子机械能和/或电子结构。每个非经典计算机可以被配置为与分配给多个非经典计算机中的其他非经典计算机的其他分子片段的量子机械能和/或电子结构的确定或计算并行地确定或计算分配给非经典计算机的一个或多个分子片段的量子机械能和/或电子结构。通过这种方式,可以大大加快对量子力学分子电子能和/或分子电子结构的确定。
[0176]
分布式计算系统可以包括至少大约1、2、3、4、5、6、7、8、9、10、20、30、40、50、60、70、80、90、100、200、300、400、500、600、700、800、900、1,000、2,000、3,000、4,000、5,000、6,000、7,000、8,000、9,000、10,000、20,000、30,000、40,000、50,000、60,000、70,000、80,000、90,000、100,000、200,000、300,000、400,000、500,000、600,000、700,000、800,000、900,000、1,000,000或更多个非经典计算机。分布式计算系统可以包括至多大约1,000,000、900,000、800,000、700,000、600,000、500,000、400,000、300,000、200,000、100,000、
90,000、80,000、70,000、60,000、50,000、40,000、30,000、20,000、10,000、9,000、8,000、7,000、6,000、5,000、4,000、3,000、2,000、1,000、900、800、700、600、500、400、300、200、100、90、80、70、60、50、40、30、20、10、9、8、7、6、5、4、3、2或1个非经典计算机。分布式计算系统可以包括在由前述值中的任意两个定义的范围内的多个非经典计算机。
[0177]
多个非经典计算机中的每个非经典计算机可以被配置为确定或计算至少大约1、2、3、4、5、6、7、8、9、10、20、30、40、50、60、70、80、90、100、200、300、400、500、600、700、800、900、1,000、2,000、3,000、4,000、5,000、6,000、7,000、8,000、9,000、10,000、20,000、30,000、40,000、50,000、60,000、70,000、80,000、90,000、100,000、200,000、300,000、400,000、500,000、600,000、700,000、800,000、900,000、1,000,000、2,000,000、3,000,000、4,000,000、5,000,000、6,000,000、7,000,000、8,000,000、9,000,000、10,000,000、20,000,000、30,000,000、40,000,000、50,000,000、60,000,000、70,000,000、80,000,000、90,000,000、100,000,000、200,000,000、300,000,000、400,000,000、500,000,000、600,000,000、700,000,000、800,000,000、900,000,000、1,000,000,000或更多个片段的量子机械能和/或电子结构。每个非经典计算机可以被配置为确定或计算至多大约1,000,000,000、900,000,000、800,000,000、700,000,000、600,000,000、500,000,000、400,000,000、300,000,000、200,000,000、100,000,000、90,000,000、80,000,000、70,000,000、60,000,000、50,000,000、40,000,000、30,000,000、20,000,000、10,000,000、9,000,000、8,000,000、7,000,000、6,000,000、5,000,000、4,000,000、3,000,000、2,000,000、1,000,000、900,000、800,000、700,000、600,000、500,000、400,000、300,000、200,000、100,000、90,000、80,000、70,000、60,000、50,000、40,000、30,000、20,000、10,000、9,000、8,000、7,000、6,000、5,000、4,000、3,000、2,000、1,000、900、800、700、600、500、400、300、200、100、90、80、70、60、50、40、30、20、10、9、8、7、6、5、4、3、2或1个片段的量子机械能和/或电子结构。每个非经典计算机可以被配置为确定或计算在由前述值中的任意两个限定的范围内的多个片段的量子机械能和/或电子结构。
[0178]
图16示出了用于使用分布式计算系统执行化学系统的量子机械能或电子结构计算的方法1600的示例的流程图。
[0179]
方法1600可以包括这里关于图1的方法100描述的一个或多个操作。例如,方法1600可以包括获得分子的指示(如本文关于图1的方法100所描述的操作102,图16中未示出)。方法1600可以包括生成或获得分子的构象异构体列表(如本文关于图1的方法100所描述的操作104,图16中未示出)。方法1600可以包括选择列表中的下一个构象异构体(如本文关于图1的方法100所描述的操作106,图16中未示出)。方法1600可以包括执行问题分解以填充构象异构体的子系统列表(如本文关于图1的方法100所描述的操作108)。
[0180]
如图16所示,方法1600可以包括将构象异构体的每个子系统分配给作业调度器。构象异构体的每个子系统可包含本文所述的任何分子片段。作业调度器然后可以将构象异构体的每个子系统分配给本文描述的分布式计算系统。
[0181]
方法1600可以包括使用分布式计算系统计算每个子系统的能量和/或电子结构(如本文关于图1的方法100所描述的操作112,图16中未示出)。方法1600可以包括存储每个子系统的所得能量和/或电子结构(如本文关于图1的方法100所描述的操作114,图16中未示出)。方法1600可以包括确定是否已经评估了构象异构体的所有子系统(如本文关于图1
的方法100所描述的操作116,图16中未示出)。方法1600可以包括将所有子系统能量和/或电子结构组合到构象异构体的能量和/或电子结构中(如本文关于图1的方法100所描述的操作118,图16中未示出)。方法1600可以包括确定是否已经评估了分子的所有构象异构体(如本文关于图1的方法100所描述的操作120,图16中未示出)。方法1600可以包括基于每个构象异构体的所得能量和/或电子结构对构象进行分类(如本文关于图1的方法100所描述的操作122,图16中未示出)。方法1600可以包括基于所得能量和/或电子结构提供分子构象异构体的排序列表的指示(如本文关于图1的方法100所描述的操作124,图16中未示出)。
[0182]
在一些情况下,一个或多个分布式计算系统可用于执行本文描述的方法的一个或多个操作。例如,分布式计算系统可用于执行本文关于图1描述的方法100的操作102、104、106、108、110、112、114、116、118、120、122和124中的一个或多个,本文关于图2描述的方法200的操作202、204、206、208、210、212、214、216、218、220、222、224或226中的一个或多个,本文关于图3描述的方法300的操作310、312、314或318中的一个或多个,本文关于图11描述的方法1100的操作1102、1104、1106或1108中的一个或多个,本文关于图13描述的方法1300的操作1302、1304、1306、1308、1310、1312、1314或1316中的一个或多个,或本文关于图14描述的方法1400的操作1402。分布式计算系统可以包括多个经典计算机(例如本文描述的任何经典计算机)。多个经典计算机中的每个经典计算机可被分配(例如,经由调度例程)以针对多个分子片段的一个或多个分子片段参照分布式计算系统执行本文所述的任何一个或多个操作。每个经典计算机可以被配置为与执行对分配给多个经典计算机的其他经典计算机的其他分子片段的一个或多个操作并行地执行对分配给经典计算机的一个或多个分子片段的任何一个或多个操作。以这种方式,可以大大加快操作的执行。
[0183]
分布式计算系统可以包括至少大约1、2、3、4、5、6、7、8、9、10、20、30、40、50、60、70、80、90、100、200、300、400、500、600、700、800、900、1,000、2,000、3,000、4,000、5,000、6,000、7,000、8,000、9,000、10,000、20,000、30,000、40,000、50,000、60,000、70,000、80,000、90,000、100,000、200,000、300,000、400,000、500,000、600,000、700,000、800,000、900,000、1,000,000或更多个经典计算机。分布式计算系统可以包括至多大约1,000,000、900,000、800,000、700,000、600,000、500,000、400,000、300,000、200,000、100,000、90,000、80,000、70,000、60,000、50,000、40,000、30,000、20,000、10,000、9,000、8,000、7,000、6,000、5,000、4,000、3,000、2,000、1,000、900、800、700、600、500、400、300、200、100、90、80、70、60、50、40、30、20、10、9、8、7、6、5、4、3、2或1个经典计算机。分布式计算系统可以包括在由前述值中的任意两个定义的范围内的多个经典计算机。
[0184]
多个经典计算机中的每个经典计算机可以被配置为对于至少大约1、2、3、4、5、6、7、8、9、10、20、30、40、50、60、70、80、90、100、200、300、400、500、600、700、800、900、1,000、2,000、3,000、4,000、5,000、6,000、7,000、8,000、9,000、10,000、20,000、30,000、40,000、50,000、60,000、70,000、80,000、90,000、100,000、200,000、300,000、400,000、500,000、600,000、700,000、800,000、900,000、1,000,000、2,000,000、3,000,000、4,000,000、5,000,000、6,000,000、7,000,000、8,000,000、9,000,000、10,000,000、20,000,000、30,000,000、40,000,000、50,000,000、60,000,000、70,000,000、80,000,000、90,000,000、100,000,000、200,000,000、300,000,000、400,000,000、500,000,000、600,000,000、700,000,000、800,000,000、900,000,000、1,000,000,000或更多个片段参考分布式计算系统执行本文描
述的任何一个或多个操作。每个经典计算机可以被配置为对于至多大约1,000,000,000、900,000,000、800,000,000、700,000,000、600,000,000、500,000,000、400,000,000、300,000,000、200,000,000、100,000,000、90,000,000、80,000,000、70,000,000、60,000,000、50,000,000、40,000,000、30,000,000、20,000,000、10,000,000、9,000,000、8,000,000、7,000,000、6,000,000、5,000,000、4,000,000、3,000,000、2,000,000、1,000,000、900,000、800,000、700,000、600,000、500,000、400,000、300,000、200,000、100,000、90,000、80,000、70,000、60,000、50,000、40,000、30,000、20,000、10,000、9,000、8,000、7,000、6,000、5,000、4,000、3,000、2,000、1,000、900、800、700、600、500、400、300、200、100、90、80、70、60、50、40、30、20、10、9、8、7、6、5、4、3、2或1个片段参考分布式计算系统执行本文描述的任何一个或多个操作。每个经典计算机可以被配置为对于在由前述值中的任意两个限定的范围内的多个片段参考分布式计算系统执行本文描述的任何一个或多个操作。
[0185]
在一些情况下,分布式计算系统可以包括多个非经典计算机(例如本文所述的任何非经典计算机)和多个经典计算机(例如本文所述的任何经典计算机)。在一些情况下,可以使用分布式计算系统解决问题(例如量子化学问题或模拟),该系统包括各种类型或系统组合,例如一个或多个经典计算机、一个或多个非经典计算机(例如一个或多个量子计算机),或一个或多个经典计算机和一个或多个非经典计算机的组合。例如,图15示出了可用于解决诸如量子化学问题或模拟的问题的系统或系统组合的示例。
[0186]
图15示出了可以用于解决问题的不同类型的应用层预处理方法和近似。在右侧,计算的实现可以在经典计算系统上完全实现。在左侧,计算的实现可以在非经典计算系统(例如,门模型量子硬件)上完全实现。在这两者之间,可以使用不同类型的量子模拟器和量子仿真器来实现计算。
[0187]
例如,本文描述的方法可以在模拟量子模拟器(例如,门模型量子模拟器)上执行。模拟量子模拟器可以是由多个制造的量子位组成的量子力学系统。模拟量子模拟器可以设计为通过使用物理上不同但数学上等效或近似等效的系统来模拟量子系统。例如,每个量子位可以在线性射频陷阱中的俘获的原子离子串的离子中实现。每个量子位可以耦合到的偏置源称为局部场偏置。量子位上的局部场偏置可以是可编程的和可控的。在一些情况下,包括数字处理单元的量子位控制系统连接到量子位系统并且能够对量子位上的局部场偏置进行编程和调谐。
[0188]
模拟量子模拟器可以包括一组门和耦合,其可以在硬件上本地实现。模拟量子模拟器可以包括一组门和耦合,其可能不在硬件上本地实现(例如,非本地门)。模拟量子模拟器可以使用二级量子位(例如,辅助量子位)和本地门的组合来模拟非本地门的动作。要解决的问题可以利用量子比特化的哈密顿量、量子算法层、电路编译器和/或优化器、或硬件或模拟器后端的接口中的一个或多个。
[0189]
在一些情况下,可以使用经典模拟器(例如,经典仿真器)执行全部或部分量子机械能和/或电子结构计算。经典模拟器可以在经典计算机上运行,例如macbook pro笔记本计算机、windows笔记本计算机或linux笔记本计算机。在一些情况下,经典模拟器可以在云计算平台上运行,以并行或分布式方式访问多个计算节点,如本文关于图18、图19、图20和图21所描述的。
[0190]
在一些情况下,可以使用量子电路的经典模拟器,该模拟器可以模拟量子硬件上
的计算电路层(例如,经典电路层仿真器)。要解决的问题可以利用量子比特化的哈密顿量、量子算法层或电路编译器、电路优化器或两者中的一个或多个。经典的电路层仿真器可以允许在不使用昂贵的量子硬件的情况下对量子机器代码进行测试、原型设计等。经典电路层仿真器可以仿真门模型量子计算机或模拟量子模拟器或两者的门操作。
[0191]
在一些情况下,可以使用量子算法的经典模拟器,该模拟器可以模拟量子硬件(例如,经典算法仿真器)上计算的电路编译器和电路层。要解决的问题可以利用量子比特化的哈密顿量或量子算法层中的一个或多个。经典算法仿真器可以允许在不使用昂贵的量子硬件的情况下对量子机器代码进行测试、原型设计等。经典算法仿真器可以仿真门模型量子计算机或模拟量子模拟器或两者的门操作。经典算法仿真器可以仿真门模型量子计算机或模拟量子模拟器或两者的电路编译和优化。
[0192]
在一些情况下,可以使用经典模拟器来执行量子机械能和/或电子结构计算,该模拟器可以模拟量子力学系统,而无需将费米哈密顿量转换为量子位哈密顿量(例如,费米子量子仿真器)
[0193]
图17示出了包括非经典或量子计算机(qc 1)和多个经典计算机(cl 1到cl k,其中k是整数)的分布式计算系统的架构的示例。分布式计算系统可以包括至少一个经典计算机和至少一个非经典计算机。在一些情况下,分布式计算系统可以包括所有经典计算机。在一些情况下,分布式计算系统可以具有所有量子计算机。分布式计算系统可以包括(i)至少或多个(例如,至少2、3、4、5、6、7、8、9、10或更多个)非经典计算机(例如,量子计算机),以及(ii)至少或多个(例如,至少2、3、4、5、6、7、8、9、10或更多个)经典计算机。
[0194]
分布式计算系统可以由调度器管理。调度器可以调整一个或多个子问题中的至少一个的一个或多个参数。调度器可以识别分布式计算网络的各个节点中的计算资源,例如,一个或多个非经典计算机、一个或多个经典计算机、一个或多个虚拟机、一个或多个基于云的机器、一个或多个工作站,一个或多个超级计算节点,一个或多个服务器等。调度器可以对子问题进行排序,可以对子问题进行优先级排序,可以将问题分布到各种计算资源等。
[0195]
图18、图19、图20和图21示出了本公开的分布式计算系统的组织的各种示例。在一些情况下,任何图18、图19、图20或图21的分布式计算系统可以用于执行本文描述的方法的一个或多个操作。例如,任何图18、图19、图20或图21中的分布式计算系统可以用于执行本文关于图1描述的方法100的操作102、104、106、108、110、112、114、116、118、120、122和124中的一个或多个,本文关于图2描述的方法200的操作202、204、206、208、210、212、214、216、218、220、222、224或226中的一个或多个,本文关于图3描述的方法300的操作310、312、314或318中的一个或多个,本文关于图11描述的方法1100的操作1102、1104、1106或1108中的一个或多个,本文关于图13描述的方法1300的操作1302、1304、1306、1308、1310、1312、1314或1316中的一个或多个,或本文关于图14描述的方法1400的操作1402。
[0196]
图18示出了根据一些实施方式的包括顺序问题分解的分布式计算系统。本文描述的用于计算分子的量子机械能和/或电子结构的启用量子的问题分解(pd)技术(例如,如本文关于图1、图2或图3所描述的)可以包括可在图18的分布式计算系统1800上实施的顺序问题分解技术的实施方式、变体或示例。
[0197]
目标1810可以包括化学系统。化学系统可以包括例如分子、分子的一部分、片段、聚集体等。目标1810可以分解为一个或多个片段。例如,目标1810可以分解为片段1811、
1812、1813、1814和1815。图18示出了问题分解器1820。问题分解器可以包括本文公开的任何问题分解方法和/或技术。在分解之后,片段1811可以在电子结构求解器1830上被编码为片段1811'。电子结构求解器1830可以包括非经典或量子计算系统,如本文所述。电子结构求解器1830可以计算片段1811'的能量e'。电子结构求解器1830可以将能量e'传递到问题分解器1820,并且片段1812可以传递到电子结构求解器1830。目标1810的每个片段可以顺序地传递到电子结构求解器1830。多个片段的全部或一部分可以传递到电子结构求解器1830。可以以任何顺序将多个片段传递到电子结构求解器1830。
[0198]
问题分解器1820和电子结构求解器1830可以包括分布式计算系统的部分。例如,问题分解器1820对用户来说可以是本地的(例如,在用户使用的同一台机器上,在单独机器上的相同物理位置等),而电子结构求解器1830对用户来说可以是远程的。例如,问题分解器1820可以包括客户端库的一部分。例如,电子结构求解器1830可以包括远程端点。例如,问题分解器1820对第一远程端点处的用户来说可以是远程的,而电子结构求解器1830对第二远程端点处的用户来说可以是远程的。第一远程端点和第二远程端点可以是相同的端点。第一远程端点和第二远程端点可以彼此远程。例如,第一远程端点可以包括远程服务器并且第二远程端点可以包括非经典计算机。远程端点可以包括本文公开的经典计算系统、非经典计算系统或混合计算单元。
[0199]
虽然图18中所示的示例示出了五个片段和求解器,但是本公开的方法可以与任何数量的片段和求解器一起使用。例如,图18的分布式计算系统可以被配置为对于至少大约1、2、3、4、5、6、7、8、9、10、20、30、40、50、60、70、80、90、100、200、300、400、500、600、700、800、900、1,000、2,000、3,000、4,000、5,000、6,000、7,000、8,000、9,000、10,000、20,000、30,000、40,000、50,000、60,000、70,000、80,000、90,000、100,000、200,000、300,000、400,000、500,000、600,000、700,000、800,000、900,000、1,000,000、2,000,000、3,000,000、4,000,000、5,000,000、6,000,000、7,000,000、8,000,000、9,000,000、10,000,000、20,000,000、30,000,000、40,000,000、50,000,000、60,000,000、70,000,000、80,000,000、90,000,000、100,000,000、200,000,000、300,000,000、400,000,000、500,000,000、600,000,000、700,000,000、800,000,000、900,000,000、1,000,000,000或更多个片段执行本文描述的任何一个或多个操作。例如,图18的分布式计算系统可以被配置为对于至多大约1,000,000,000、900,000,000、800,000,000、700,000,000、600,000,000、500,000,000、400,000,000、300,000,000、200,000,000、100,000,000、90,000,000、80,000,000、70,000,000、60,000,000、50,000,000、40,000,000、30,000,000、20,000,000、10,000,000、9,000,000、8,000,000、7,000,000、6,000,000、5,000,000、4,000,000、3,000,000、2,000,000、1,000,000、900,000、800,000、700,000、600,000、500,000、400,000、300,000、200,000、100,000、90,000、80,000、70,000、60,000、50,000、40,000、30,000、20,000、10,000、9,000、8,000、7,000、6,000、5,000、4,000、3,000、2,000、1,000、900、800、700、600、500、400、300、200、100、90、80、70、60、50、40、30、20、10、9、8、7、6、5、4、3、2或1个片段执行本文描述的任何一个或多个操作。例如,图18的分布式计算系统可以被配置为对于在由前述值中的任意两个限定的范围内的多个片段执行本文描述的任何一个或多个操作。
[0200]
在一些情况下,包括顺序问题分解的方法可以包括生成电子结构求解器的示例;生成多个片段中的每一个;并用其电子结构求解器顺序求解每个片段的电子结构,从而为
每个片段生成能量。可以通过问题的并行化来改进顺序问题分解。
[0201]
问题的并行化可以通过问题分解以及问题的子系统在高性能计算机中的一个或多个节点上的分布来促进,该高性能计算机可以包括一个或多个非经典计算机。图18、图19、图20和图21示出了分布式计算系统的示例,其可以实施本文所述的方法,用于使用分布式计算系统(例如,如本文关于图16所述的)执行化学系统的量子机械能或电子结构计算。方法1600可以包括本文描述的启用量子的问题分解(pd)技术的一个或多个操作以计算分子的量子机械能和/或电子结构(例如,如本文关于图1、图2或图3所述的)。图1、图2、图3、图11、图13或图14的方法的步骤可以在包括多个非经典计算机(例如本文描述的任何非经典计算机)和多个经典计算机(例如本文描述的任何经典计算机)的分布式计算系统上执行。
[0202]
图19示出了根据一些实施方式的包括问题分派的分布式计算系统1900。问题分派可以用于将问题的子系统分布在一个或多个节点上。例如,问题分派可以提供控制子系统到节点的分布并从节点返回结果的逻辑。问题分派可以控制问题的每个子系统是在本地(例如,在相同机器上,在单独机器上的相同物理位置等)、在云上还是在高性能计算集群中解决。
[0203]
问题分解可以创建子系统,例如片段,以及每个片段的数据结构。例如,数据结构可能包含电子结构求解器的类型和/或要传递给求解器的参数。在一些情况下,数据结构可以传递来自用户的输入。在一些情况下,数据结构可以基于输入问题传递参数。问题分派可以处理具有参数(例如来自字典的参数)的电子结构求解器的创建和/或实现。问题分派可以从求解器返回输出,例如能量。简单的问题分派可以连续地创建和/或实现每个求解器。在一些示例中,问题分派可以使用多处理包来创建和/或使用并行方案实现每个求解器,例如python的多处理包。
[0204]
目标1910可以包括化学系统。化学系统可以包括,例如,分子、分子的一部分、片段、聚集体等。目标1910可以分解为一个或多个片段。例如,目标1910可以在问题分解器处分解成片段1911、1912、1913、1914和1915。图19示出了问题分解器1920。问题分解器可以包括执行本文公开的任何问题分解方法和/或技术的指令。
[0205]
在分解之后,可以通过问题分派1940将片段分布到一个或多个电子结构求解器1931、1932、1933、1934和1935。问题分派1940可以创建和/或实现电子结构求解器。问题分派1940可以将参数传递给求解器,例如来自用户的输入参数。问题分派可以从求解器返回输出,例如能量。
[0206]
片段1911、1912、1913、1914和1915可以在电子结构求解器1931、1932、1933、1934和1935上编码为片段1911'、1912'、1913'、1914'和1915'。电子结构求解器1931、1932、1933、1934和1935可以包括一个或多个非经典计算系统、一个或多个量子计算系统、或一个或多个混合计算单元,如本文所述。电子结构求解器1931、1932、1933、1934和1935可以分别计算片段1911'、1912'、1913'、1914'和1915'的能量e1、e2、e3、e4和e5。电子结构求解器1931、1932、1933、1934和1935可以将能量e1、e2、e3、e4和e5传递到问题分派1940。电子结构求解器可以从问题分派接收和返回片段。
[0207]
多个片段中的全部或一部分可以被传递到电子结构求解器。多个片段可以以任何顺序、顺序地或并行地传递到电子结构求解器。问题分解器1920、问题分派器1930和电子结构求解器1931、1932、1933、1934和1935可以包括分布式计算系统的部分。
[0208]
包括图19的问题分派的分布式计算系统可以以多种方式实现。例如,一些代码可以由“客户端”数字计算设备运行,例如用户的数字计算设备,而其他代码可以在分布式计算系统的一部分上运行,该分布式计算系统可以包括一个或多个远程端点。分布式计算系统可以包括一个或多个集群或基于云的计算系统。分布式计算系统可以包括多个非经典计算机(例如本文描述的任何非经典计算机)、多个经典计算机或两者。分布式计算系统可以包括一个或多个端点。一个或多个端点可以包括代表性状态转移(rest)端点。一个或多个端点可以执行来自客户端库的响应。rest调用可以在分布式计算系统上执行,例如,通过诸如云网络的网络连接的一个或多个经典的、混合的或非经典的计算设备。
[0209]
虽然图19中所示的示例示出了五个片段和求解器,但是本公开的方法可以与任何数量的片段和求解器一起使用。例如,图19的分布式计算系统可以被配置为对于至少大约1、2、3、4、5、6、7、8、9、10、20、30、40、50、60、70、80、90、100、200、300、400、500、600、700、800、900、1,000、2,000、3,000、4,000、5,000、6,000、7,000、8,000、9,000、10,000、20,000、30,000、40,000、50,000、60,000、70,000、80,000、90,000、100,000、200,000、300,000、400,000、500,000、600,000、700,000、800,000、900,000、1,000,000、2,000,000、3,000,000、4,000,000、5,000,000、6,000,000、7,000,000、8,000,000、9,000,000、10,000,000、20,000,000、30,000,000、40,000,000、50,000,000、60,000,000、70,000,000、80,000,000、90,000,000、100,000,000、200,000,000、300,000,000、400,000,000、500,000,000、600,000,000、700,000,000、800,000,000、900,000,000、1,000,000,000或更多个片段执行本文描述的任何一个或多个操作。例如,图19的分布式计算系统可以被配置为对于至多大约1,000,000,000、900,000,000、800,000,000、700,000,000、600,000,000、500,000,000、400,000,000、300,000,000、200,000,000、100,000,000、90,000,000、80,000,000、70,000,000、60,000,000、50,000,000、40,000,000、30,000,000、20,000,000、10,000,000、9,000,000、8,000,000、7,000,000、6,000,000、5,000,000、4,000,000、3,000,000、2,000,000、1,000,000、900,000、800,000、700,000、600,000、500,000、400,000、300,000、200,000、100,000、90,000、80,000、70,000、60,000、50,000、40,000、30,000、20,000、10,000、9,000、8,000、7,000、6,000、5,000、4,000、3,000、2,000、1,000、900、800、700、600、500、400、300、200、100、90、80、70、60、50、40、30、20、10、9、8、7、6、5、4、3、2或1个片段执行本文描述的任何一个或多个操作。例如,图19的分布式计算系统可以被配置为对于在由前述值中的任意两个限定的范围内的多个片段执行本文描述的任何一个或多个操作。
[0210]
存在许多方法以在客户端库和一个或多个端点之间分布问题。客户端库和一个或多个端点之间的功能分布可以基于要解决的问题和/或用户的需要而变化。
[0211]
在一种方法中,问题分解和问题分派可以发生在客户端库内,例如参见图20。问题分解和问题分派可能发生在用户的数字计算设备上。问题分派可以将子系统分布到位于一个或多个远程端点的电子结构求解器。远程端点可以包括一个或多个高性能计算系统的节点,例如一个或多个非经典计算系统、一个或多个经典计算系统或其组合。
[0212]
在另一种方法中,问题可以从客户端库传送到远程端点,该远程端点可以分解问题并分派问题,例如参见图21。在一些情况下,问题可以从远程端点分派到一个或多个第二远程端点,该第二远程端点可以包括一个或多个高性能计算系统的节点。在一些情况下,一个或多个第二远程端点的一个或多个节点可以是本地的问题分派(例如,在相同机器上,在
单独机器上的相同物理位置等)。在一些情况下,一个或多个第二远程端点的一个或多个节点可以是远程的问题分派。
[0213]
在另一种方法中,问题可以在客户端库内分解,传送到包括问题分派的远程端点,并且传送到包括电子结构求解器的一个或多个第二远程端点。
[0214]
图20示出了根据一些实施方式的包括客户端库内的问题分派的分布式计算系统的示例架构2000。在所示实施方式中,问题分解可由客户端代码执行。问题分解可以生成子系统和/或求解器参数。客户端系统可以将子系统和/或求解器参数转发给问题分派。问题分派可以创建和进行rest调用,将返回值映射回输入子系统,并将值返回到问题分解。如果用户不希望公开要解决的问题,则图20的架构可以是有利的,因为可以将数据片段而不是问题的更完整的实现传输到远程端点。
[0215]
如图20所示,目标2010、问题分解器2020和问题分派2040可以包括客户端计算系统2050的部分,例如客户端库。目标2010可以包括化学系统。化学系统可以包括例如分子、分子的一部分、片段、聚集体等。目标2010可以分解为一个或多个片段。例如,目标2010可以在问题分解器处分解为片段2011、2012、2013、2014和2015。图20示出了问题分解器2020。问题分解器可以包括执行本文公开的任何问题分解方法和/或技术的指令。
[0216]
在分解之后,可以通过问题分派2040将片段分布到一个或多个电子结构求解器2031、2032、2033、2034和2035。问题分派2040可以创建和/或实现电子结构求解器。问题分派2040可以将参数传递给求解器,例如来自用户的输入参数。问题分派可以从求解器返回输出,例如能量。
[0217]
问题分派2040可以用于与一个或多个求解器通信。在所示的实施方式中,一个或多个求解器可以包括一个或多个远程端点2060的部分。远程端点可以是彼此本地的(例如,在相同机器上,在单独的机器上的相同物理位置等)或彼此远程的。远程端点可以包括远程服务器、云网络、分布式计算系统的部分等。由问题分派调用的求解器可以特定于问题类型和/或片段类型。问题分派可以部分地用于分布计算操作以减少计算时间和/或增加计算精度。
[0218]
片段2011、2012、2013、2014和2015可以在电子结构求解器2031、2032、2033、2034和2035上编码为片段2011'、2012'、2013'、2014'和2015'。电子结构求解器2031、2032、2033、2034和2035可以包括一个或多个非经典计算系统、一个或多个量子计算系统、或一个或多个混合计算单元,如本文所述。电子结构求解器2031、2032、2033、2034和2035可以分别计算片段2011'、2012'、2013'、2014'和2015'的能量e1、e2、e3、e4和e5。电子结构求解器2031、2032、2033、2034和2035可以将能量e1、e2、e3、e4和e5传递到问题分派2040。电子结构求解器可以从问题分派接收和返回片段。
[0219]
多个片段中的全部或一部分可以被传递到电子结构求解器。多个片段可以以任何顺序、顺序地或并行地传递到电子结构求解器。
[0220]
虽然图20中所示的示例示出了五个片段和求解器,但是本公开的方法可以与任何数量的片段和求解器一起使用。例如,图20的分布式计算系统可以被配置为对于至少大约1、2、3、4、5、6、7、8、9、10、20、30、40、50、60、70、80、90、100、200、300、400、500、600、700、800、900、1,000、2,000、3,000、4,000、5,000、6,000、7,000、8,000、9,000、10,000、20,000、30,000、40,000、50,000、60,000、70,000、80,000、90,000、100,000、200,000、300,000、400,
000、500,000、600,000、700,000、800,000、900,000、1,000,000、2,000,000、3,000,000、4,000,000、5,000,000、6,000,000、7,000,000、8,000,000、9,000,000、10,000,000、20,000,000、30,000,000、40,000,000、50,000,000、60,000,000、70,000,000、80,000,000、90,000,000、100,000,000、200,000,000、300,000,000、400,000,000、500,000,000、600,000,000、700,000,000、800,000,000、900,000,000、1,000,000,000或更多个片段执行本文描述的任何一个或多个操作。例如,图20的分布式计算系统可以被配置为对于至多大约1,000,000,000、900,000,000、800,000,000、700,000,000、600,000,000、500,000,000、400,000,000、300,000,000、200,000,000、100,000,000、90,000,000、80,000,000、70,000,000、60,000,000、50,000,000、40,000,000、30,000,000、20,000,000、10,000,000、9,000,000、8,000,000、7,000,000、6,000,000、5,000,000、4,000,000、3,000,000、2,000,000、1,000,000、900,000、800,000、700,000、600,000、500,000、400,000、300,000、200,000、100,000、90,000、80,000、70,000、60,000、50,000、40,000、30,000、20,000、10,000、9,000、8,000、7,000、6,000、5,000、4,000、3,000、2,000、1,000、900、800、700、600、500、400、300、200、100、90、80、70、60、50、40、30、20、10、9、8、7、6、5、4、3、2或1个片段执行本文描述的任何一个或多个操作。例如,图20的分布式计算系统可以被配置为对于在由前述值中的任意两个限定的范围内的多个片段执行本文描述的任何一个或多个操作。
[0221]
图21示出了根据一些实施方式的包括远程端点处的问题分派的分布式计算系统的示例架构2100。在图示的实施方式中,问题可以从客户端库发送到第一远程端点。问题分解可以由第一远程端点处的代码执行。问题分解可以生成子系统和/或求解器参数。第一远程端点可以将子系统和/或求解器参数转发给问题分派。问题分派可以向一个或多个第二远程端点发送和接收。例如,问题分派可以创建和进行rest调用一个或多个第二远程端点,将来自一个或多个第二远程端点的返回值映射回输入子系统,并将这些值返回到问题分解。
[0222]
在所示实施方式中,客户端代码可以是瘦库,其包含对分布式计算系统(例如,云基础设施)进行rest调用的电子结构求解器和问题分解的版本。例如,可以对问题分解端点进行rest调用,该端点执行问题分解并使用问题分派来调用尽可能多的电子结构求解器端点。问题分解远程调用可以以与本地调用相同或相似的方式返回给用户。
[0223]
出于多种原因,图21的架构可以是有利的。例如,有限的客户端库可以最小化位于客户端机器上的代码量。这可以允许较低性能的客户端机器执行代码。这也可以允许容易地分发和更新软件。作为第二个示例,可以通过增加提供者拥有的硬件上的代码量来实现计算量更大的问题分解方法。提供者可以实现用户可能无法直接访问以进行问题分解的gpu机器或高性能架构。
[0224]
如图21所示,目标2110可以包括客户端计算系统2150的一部分,例如客户端库。目标2110可以包括化学系统。化学系统可以包括例如分子、分子的一部分、片段、聚集体等。图21可以限制客户端计算系统上的计算负载。
[0225]
客户端计算系统可以与第一一个或多个远程端点2160通信。例如,客户端计算系统可以将目标、分子、构象、一个或多个片段和计算参数中的一个或多个传送到第一一个或多个远程端点。例如,客户端计算系统可以接收与问题的解对应的值(一个或多个能量、特征值、结构、速率等)、关于计算状态的信息、关于计算的进度的参数等中的一个或多个。第
一一个或多个端点2160可以包括问题分解器2120和问题分派2140。目标2110可以在问题分解器2120处分解成一个或多个片段。例如,目标2110可以在问题分解器处分解为片段2111、2112、2113、2114和2115。问题分解器可以包括执行本文公开的任何问题分解方法和/或技术的指令。
[0226]
在分解之后,可以通过问题分派2140将片段分布到一个或多个电子结构求解器2131、2132、2133、2134和2135。问题分派2140可以创建和/或实现电子结构求解器。问题分派2140可以将参数传递给求解器,例如来自用户的输入参数。问题分派可以从求解器返回输出,例如能量。
[0227]
问题分派2140可以用于与一个或多个求解器通信。在所示实施方式中,一个或多个求解器可以包括一个或多个第二端点2170的部分。第二端点可以是彼此本地的(例如,在相同机器上,在单独机器上的相同物理位置等)或彼此远程的。第二端点可以包括远程服务器、云网络、分布式计算系统的部分等。由问题分派调用的求解器可以特定于问题类型和/或片段类型。问题分派可以部分地用于分布计算操作以减少计算时间和/或增加计算精度。
[0228]
片段2111、2112、2113、2114和2115可以在电子结构求解器2131、2132、2133、2134和2135上编码为片段2111'、2112'、2113'、2114'和2115'。电子结构求解器2131、2132、2133、2134和2135可以包括一个或多个非经典计算系统、一个或多个量子计算系统、或一个或多个混合计算单元,如本文所述。电子结构求解器2131、2132、2133、2134和2135可以分别计算片段2111'、2112'、2113'、2114'和2115'的能量e1、e2、e3、e4和e5。电子结构求解器2131、2132、2133、2134和2135可以将能量e1、e2、e3、e4和e5传递到问题分派2140。电子结构求解器可以从问题分派接收和返回片段。
[0229]
多个片段中的全部或一部分可以被传递到电子结构求解器。多个片段可以以任何顺序、顺序地或并行地传递到电子结构求解器。
[0230]
虽然图21中所示的示例示出了五个片段和求解器,但是本公开的方法可以与任何数量的片段和求解器一起使用。例如,图21的分布式计算系统可以被配置为对于至少大约1、2、3、4、5、6、7、8、9、10、20、30、40、50、60、70、80、90、100、200、300、400、500、600、700、800、900、1,000、2,000、3,000、4,000、5,000、6,000、7,000、8,000、9,000、10,000、20,000、30,000、40,000、50,000、60,000、70,000、80,000、90,000、100,000、200,000、300,000、400,000、500,000、600,000、700,000、800,000、900,000、1,000,000、2,000,000、3,000,000、4,000,000、5,000,000、6,000,000、7,000,000、8,000,000、9,000,000、10,000,000、20,000,000、30,000,000、40,000,000、50,000,000、60,000,000、70,000,000、80,000,000、90,000,000、100,000,000、200,000,000、300,000,000、400,000,000、500,000,000、600,000,000、700,000,000、800,000,000、900,000,000、1,000,000,000或更多个片段执行本文描述的任何一个或多个操作。例如,图21的分布式计算系统可以被配置为对于至多大约1,000,000,000、900,000,000、800,000,000、700,000,000、600,000,000、500,000,000、400,000,000、300,000,000、200,000,000、100,000,000、90,000,000、80,000,000、70,000,000、60,000,000、50,000,000、40,000,000、30,000,000、20,000,000、10,000,000、9,000,000、8,000,000、7,000,000、6,000,000、5,000,000、4,000,000、3,000,000、2,000,000、1,000,000、900,000、800,000、700,000、600,000、500,000、400,000、300,000、200,000、100,000、90,000、80,000、70,000、60,000、50,000、40,000、30,000、20,000、10,000、9,000、8,000、7,
000、6,000、5,000、4,000、3,000、2,000、1,000、900、800、700、600、500、400、300、200、100、90、80、70、60、50、40、30、20、10、9、8、7、6、5、4、3、2或1个片段执行本文描述的任何一个或多个操作。例如,图21的分布式计算系统可以被配置为对于在由前述值中的任意两个限定的范围内的多个片段执行本文描述的任何一个或多个操作。计算机系统
[0231]
本公开提供了被编程以实现本公开的方法的计算机系统。图10示出了计算机系统1001,其被编程或以其他方式配置为:确定化学系统的构象集合;将集合内的至少一种构象分解成多个分子片段;使用混合计算单元确定多个分子片段的至少一个子集的每一个的量子机械能和/或电子结构;组合确定的量子机械能和/或电子结构;并以电子方式输出指示组合的量子机械能和/或电子结构的报告。
[0232]
计算机系统1001可以调节本公开的方法和系统的各个方面,例如,确定化学系统的构象集合;将集合内的至少一种构象分解成多个分子片段;使用混合计算单元确定多个分子片段的至少一个子集中的每一个的量子机械能和/或电子结构;组合确定的量子机械能和/或电子结构;以电子方式输出指示组合的量子机械能和/或电子结构的报告。
[0233]
计算机系统1001可以是用户的电子设备或相对于电子设备位于远程的计算机系统。电子设备可以是移动电子设备。计算机系统1001包括中央处理器(cpu,本文也称为“处理器”和“计算机处理器”)1005,其可以是单核或多核处理器,或用于并行处理的多个处理器。计算机系统1001还包括存储器或存储器位置1010(例如随机存取存储器、只读存储器、闪存)、电子存储单元1015(例如硬盘)、用于与一个或多个其他系统通信的通信接口1020(例如网络适配器)和外围设备1025,例如高速缓存、其他存储器、数据存储和/或电子显示适配器。存储器1010、存储单元1015、接口1020和外围设备1025通过诸如母板的通信总线(实线)与cpu 1005通信。存储单元1015可以是用于存储数据的数据存储单元(或数据仓库)。计算机系统1001可以在通信接口1020的帮助下可操作地耦合到计算机网络(“网络”)1030。网络1030可以是因特网、内部网和/或外联网、或正在与因特网通信的内联网和/或外部网。
[0234]
在一些情况下,网络1030是电信和/或数据网络。网络1030可以包括一个或多个计算机服务器,其可以实现分布式计算,例如云计算。例如,一个或多个计算机服务器可以通过网络1030(“云”)实现云计算,以执行本公开的分析、计算和生成的各个方面,例如,确定化学系统的构象集合;将集合内的至少一种构象分解成多个分子片段;使用混合计算单元确定多个分子片段的至少一个子集中的每一个的量子机械能和/或电子结构;组合确定的量子机械能和/或电子结构;以电子方式输出指示组合的量子机械能和/或电子结构的报告。这种云计算可以由云计算平台提供,例如亚马逊网络服务(aws)、微软azure、谷歌云平台和ibm云。在一些情况下,在计算机系统1001的帮助下,网络1030可以实现对等网络,其可以使耦合到计算机系统1001的设备能够充当客户端或服务器。“云”服务(包括上述一个或多个云平台)也可用于提供数据存储。
[0235]
cpu 1005可以执行一系列机器可读指令,这些指令可以在程序或软件中实施。指令可以存储在存储器位置,例如存储器1010。指令可以被引导到cpu 1005,cpu 1005可以随后编程或以其他方式配置cpu 1005以实现本公开的方法。cpu 1005执行的操作的示例可以包括获取、解码、执行和写回。
[0236]
cpu 1005可以是电路的一部分,例如集成电路。系统1001的一个或多个其他组件可以包括在电路中。在一些情况下,该电路是专用集成电路(asic)。cpu 1005可以包括一个或多个通用处理器、一个或多个图形处理单元(gpu)或其组合。
[0237]
存储单元1015可以存储文件,例如驱动程序、库和保存的程序。存储单元1015可以存储用户数据,例如化学系统的构象集合、多个分解的分子片段、分子片段的量子机械能和/或电子结构、构象异构体的组合的量子机械能和/或电子结构、具有量子机械能和/或电子结构的分子片段列表、具有组合的量子机械能和/或电子结构的分子构象异构体列表以及指示组合的量子机械能和/或电子结构的报告(有时与存储器交换数据)。在一些情况下,计算机系统1001可以包括位于计算机系统1001外部的一个或多个附加数据存储单元,例如位于通过内联网或因特网与计算机系统1001通信的远程服务器上。
[0238]
计算机系统1001可以通过网络1030与一个或多个远程计算机系统通信。例如,计算机系统1001可以与用户的远程计算机系统通信。远程计算机系统的示例包括个人计算机(例如便携式pc)、平板计算机或平板计算机(例如,ipad、galaxy tab)、电话、智能电话(例如,iphone、支持android的设备、)或个人数字助理。用户可以经由网络1030访问计算机系统1001。用户可以控制或调节本公开的方法和系统的各个方面,例如,确定化学系统的构象集合;将集合内的至少一种构象分解成多个分子片段;使用混合计算单元确定多个分子片段的至少一个子集中的每一个的量子机械能和/或电子结构;组合确定的量子机械能和/或电子结构;以电子方式输出指示组合的量子机械能和/或电子结构的报告。
[0239]
如本文所述的方法可以通过存储在计算机系统1001的电子存储位置,例如存储在存储器1010或电子存储单元1015上的机器(例如,计算机处理器)可执行代码来实现。机器可执行或机器可读代码可以以软件的形式提供。在使用过程中,该代码可由处理器1005执行。在一些情况下,该代码可以从存储单元1015中检索并存储在存储器1010中以供处理器1005随时访问。在一些情况下,电子存储单元1015可以被排除,并且机器可执行指令存储在存储器1010上。
[0240]
代码可以被预编译和配置以与具有适合执行代码的处理器的机器一起使用,或者可以在运行时编译。代码可以以编程语言提供,可以选择该编程语言以使代码能够以预编译或编译时的方式执行。
[0241]
本文提供的系统和方法的方面,例如计算机系统1001,可以在编程中实施。该技术的各个方面可以被认为是“产品”或“制品”,其通常以机器(或处理器)可执行代码和/或相关数据的形式在一种机器可读介质中承载或实施。机器可执行代码可以存储在电子存储单元上,例如存储器(例如,只读存储器、随机存取存储器、闪存、固态存储器)或硬盘。“存储”类型的介质可以包括计算机、处理器等或其相关模块的任何或所有有形存储器,例如各种半导体存储器、磁带驱动器、磁盘驱动器等,其可以随时提供非暂时性存储以进行软件编程。软件的全部或部分有时可以通过因特网或各种其他电信网络进行通信。例如,这样的通信可以使软件能够从一个计算机或处理器加载到另一计算机或处理器中,例如从管理服务器或主机计算机加载到应用服务器的计算机平台中。因此,可以承载软件元件的另一种类型的介质包括光波、电波和电磁波,例如跨本地设备之间的物理接口、通过有线和光学陆线
网络以及通过各种空中链路使用。承载这种波的物理元件,例如有线或无线链路、光链路等,也可以被认为是承载软件的介质。如本文所用,除非限于非暂时性、有形“存储”介质,诸如计算机或机器“可读介质”的术语是指参与向处理器提供指令以供执行的任何介质。
[0242]
因此,机器可读介质,例如计算机可执行代码,可以采用多种形式,包括但不限于有形存储介质、载波介质或物理传输介质。非易失性存储介质包括例如光盘或磁盘,例如任何计算机等中的任何存储设备,诸如可用于实现图中所示的数据库等。易失性存储介质包括动态存储器,例如此类计算机平台的主存储器。有形传输介质包括同轴电缆;铜线和光纤,包括构成计算机系统内总线的电线。载波传输介质可以采用电信号或电磁信号,或声波或光波的形式,例如在射频(rf))和红外(ir)数据通信期间生成的那些。因此,常见形式的计算机可读介质包括例如:软盘、软盘、硬盘、磁带、任何其他磁介质、cd-rom、dvd或dvd-rom、任何其他光学介质、打孔卡纸磁带、任何其他带有孔洞图案的物理存储介质、ram、rom、prom和eprom、flash-eprom、任何其他存储器芯片或盒式磁带、传输数据或指令的载波、传输此类载波的电缆或链接或计算机可以从中读取编程代码和/或数据的任何其他介质。许多这些形式的计算机可读介质可能涉及将一个或多个指令的一个或多个序列传送到处理器以供执行。
[0243]
计算机系统1001可以包括电子显示器1035或与电子显示器1035通信,该电子显示器1035包括用户界面(ui)1040,用于提供例如化学系统的构象集合的用户选择;用于分解成多个分子片段的集合内的构象;用于确定量子机械能和/或电子结构的多个分子片段的至少一个子集;以及born-oppenheimer近似的使用。ui的示例包括但不限于图形用户界面(gui)和基于web的用户界面。
[0244]
计算机系统1001可以包括非经典计算机或与非经典计算机(例如,量子计算机)1045通信以执行例如量子算法(例如,量子机械能和/或电子结构计算)。非经典计算机1045可以与中央处理单元1005和/或网络1030(例如,云)可操作地耦合。
[0245]
本公开的计算机系统可以如在例如国际申请号pct/ca2017/050709、美国申请号15/486,960、美国专利号9,537,953和美国专利号9,660,859中所描述的,其中的每一个通过引用整体并入本文。
[0246]
本公开的方法和系统可以通过一种或多种算法来实现。算法可以通过由中央处理单元1005执行的软件来实现。例如,该算法可以确定化学系统的构象集合;将集合内的至少一种构象分解成多个分子片段;使用混合计算单元确定多个分子片段的至少一个子集的每一个的量子机械能和/或电子结构;组合确定的量子机械能和/或电子结构;并以电子方式输出指示组合的量子机械能和/或电子结构的报告。
[0247]
尽管本文针对一些系统进行了描述,例如混合或量子经典计算或计算硬件,但可以使用包括各种类型或系统组合(例如,一个或多个经典计算机、一个或多个非经典计算机(例如一个或多个量子计算机)或一个或多个经典计算机与一个或多个非经典计算机的组合)的计算系统来解决问题(例如量子化学问题或模拟)。例如,图15示出了可以用于解决诸如量子化学问题或模拟的问题的系统或系统组合的示例。
[0248]
与用于执行化学系统的量子机械能或电子结构计算的系统和方法相关的更多细节可以在2017年11月30日提交的美国临时专利申请序列号62/593,060和2018年11月30日提交的pct申请序列号pct/ca2018/051531中找到,出于所有目的,这些申请通过引用整体
并入本文。示例示例1(正庚烷)
[0249]
对于化合物的不同构象,研究了有无pd的总量子机械能计算结果之间的相关性。pd固定构象的模拟结果可能不在化学准确性范围内。然而,如果这是由于系统错误引起的,那么比较同一分子的不同构象异构体的两个错误结果可以消除该错误,并且可以在分子的两个构象之间提供准确的相对量子机械能差。因此,即使没有针对每个单独的构象异构体的总量子机械能的最佳精确估计,该方法也可以用于基于它们的总量子机械能值来准确地选择最佳的构象异构体(例如,最稳定的构象异构体)。在这种方法下,可以使用更具攻击性的pd技术(例如,缓冲区大小相对较小的dc)从可用的构象异构体集合中找到最佳的构象异构体。更具攻击性的pd技术可能会产生较小的子分子,这反过来可能意味着需要较少的量子资源来进行大分子实验。因此,该方法可以使用量子计算资源高效和准确地预测化学系统中最稳定的构象异构体。
[0250]
在此示例中,正庚烷被靶向,如图4所示,其中虚线指示碎片分子轨道理论(fmo)片段中的键分离原子。通过将四个二面角改变120度(反式、旁式、旁式'),然后去除对称的冗余构象和高能构象,生成40个正庚烷构象的集合。为了获得有和没有问题分解(pd)的总能量之间的相关性,执行ccsd作为基线参考,并将两种问题分解方法、dc-ccsd和fmo-ccsd应用于该分子系统。考虑了七个片段:2个末端ch3组和5个ch2组。对于dc,检查了和的缓冲区大小。对于fmo,检查了2体和3体扩展。所有计算均使用gamess-us进行,基础设置为6-31g。gamess量子化学软件包在schmidt等人,“general atomic and molecular electronic structure system,”journal of computational chemistry,1993,14,1347-1363中进行了描述,其通过引用整体并入本文。使用小于的缓冲区大小测试了dc方法,但是几乎所有构象异构体的计算都无法收敛到解。
[0251]
图5示出了正庚烷的精确ccsd和dc-ccsd结果之间以及精确ccsd和fmo-ccsd结果之间的比较(构象异构体量子机械能值列表)。精确ccsd的结果和带有问题分解的ccsd的结果之间获得良好的相关性;除具有三体扩展的fmo(fmo_3)外,测定系数r2大于0.96。尽管dc-ccsd提供了更好的结果,但dc计算有时难以收敛到解。对于正庚烷,fmo为所有检查的40个构象异构体提供了一个解决方案,而dc分别使用和缓冲区大小为35个和36个构象异构体提供了一个解决方案。还应注意,根据构象,在dc计算的情况下,求解一个片段所需的自旋轨道数可能会有所不同,因为缓冲区是基于到片段中心的距离来定义的。
[0252]
再次参考图5,例如,如右上方面板中的虚线圆圈所示,观察到几个构象异构体集群。此处,简要讨论了为什么观察到这些集群。首先,检查了精确ccsd能与可容纳该构象异构体的最小球体直径之间的关系。该直径可以被认为是构象异构体的结构紧密性的量度。如图6的中间面板所示,当构象异构体由于空间排斥而变得结构紧密时,总量子机械能通常增加。然而,如所看到的,就总量子机械能而言,直径不能完全解释构象异构体的聚集。接下来,检查总量子机械能与二面角中两个最外层碳原子之间的距离(1-4距离)之间的关系。如图6右面板所示,该图示出了总量子机械能与每个构象异构体的最小1-4距离之间的关系,该1-4距离很好地说明了群集行为。1-4距离根据反式、旁式或旁式’的二面角而变化。如果
是反式,则1-4距离变为最长。旁式和旁式’的二面角具有相同的1-4距离,其比反式的1-4距离短,由于空间排斥导致更高的(不太稳定的)总量子机械能。这是总能量离散化的主要来源,也是在目前的分子系统中观察构象异构体就总量子机械能而言聚集的原因。示例2(3-甲基庚烷)
[0253]
如所观察到的,对于简单的聚合物系统,fmo和dc都工作得相对较好。接下来,如图7所示,通过将一个甲基移到正庚烷“3”位的碳原子上,产生3-甲基庚烷,生成多样化的能量图谱以进行检测。将甲基引入“3”位使分子不对称。与正庚烷的情况一样,通过将四个二面角改变120度(反式、旁式、旁式’),并除去高能构象后得到65个构象,生成3-甲基庚烷的构象集合。
[0254]
图8示出了由ccsd获得的量子机械能分布(相对于最低能量的能量),以说明一个甲基如何从正庚烷中调节和多样化量子机械能图谱。图9示出了3-甲基庚烷的精确ccsd和dc-ccsd结果之间以及精确ccsd和fmo-ccsd结果之间的比较(量子力学构象能值的列表)。如图所示,在3-甲基庚烷上的fmo(2体)方法表现出稳定的性能,r2为0.94。尽管dc用缓冲获得的总能量比通过fmo 2体获得的总能量更接近精确ccsd,但r2低于fmo。当缓冲增加到时,采用3-甲基庚烷的dc方法提供了与精确ccsd非常一致的结果。然而,应注意的是,dc再次轻微受到收敛失败问题的影响。fmo为所有检查的65个构象异构体提供了一个解决方案,而dc能够分别为38个和46个具有和缓冲区大小的构象异构体提供了一个解决方案。示例3(dmet中的求解器片段)
[0255]
示例3是使用顺序实现的dmet问题分解示例。示例3还示出了由用户指定分片的实现。用户可以传递片段列表、分子说明和平均场说明。分子的原子可以按照它们从调用返回到量子化学包(例如pyscf mol原子调用)的顺序进行索引。每个片段可以由它包含的原子的索引定义,并且可选地,可能使用用户想要求解求解器使用的片段和/或任何参数的求解器类型。
[0256]
如果用户使用片段原子传入求解器参数,则可以使用指定的求解器求解该片段;否则,可以使用问题分解对象持有的示例求解。
[0257]
示例如下所示:
示例4(dmet中片段的求解器参数)
[0258]
在一些情况下,在dmet中指定片段的方法可能不适用于增量方法。例如,在增量方法中,片段可能是自动生成的,它们可能不是由片段中的原子定义的,而是由相互作用的大小定义的。在这种情况下,本文公开的方法和系统可以修改片段的说明书,使得元组的第一个成员是增量名称而不是原子列表。类似的方法可以应用于越来越高阶的微扰理论方法。
[0259]
例如:
[0260]
没有指定自定义求解器的片段可以使用问题分解对象所持有的默认电子结构求
解器,就像在上面的dmet情况下一样。示例5(fno、嵌套求解器和嵌套qemis)
[0261]
示例5示出了其中用户可能未指定问题分解的示例。示例5还示出了冻结自然轨道(fno)方法的示例实现。冻结自然轨道方法可以与耦合簇(cc)方法相结合,并且可以提高cc计算的速度。fno方法可以将相关计算的虚拟空间减少至少大约一半。例如,fno方法可以通过识别和删除对cc能量没有显着贡献的虚拟轨道组合来降低计算成本。fno可以用本文公开的问题分解方法来实现。例如,fno可以在问题分解之前、问题分解和电子结构求解器之间或简单地在电子结构求解器之前实施。例如,发送到分布式计算系统(例如云)的rest调用可能具有嵌套结构。在嵌套结构中,电子结构求解器之前的每个请求都可能有“next_solver”参数,其包含对管道中下一步的调用。几个示例如下:电子结构求解器前的fno
[0262]
为了将fno求解器与电子结构求解器一起使用,用户可以在对fno求解器的调用中指定电子结构求解器及其参数。fno求解器可能会调用管道中的下一步,并在嵌套求解器执行后返回其结果。
[0263]
例如:电子结构求解器之前的dmet之前的fno
[0264]
为了在fno之后使用dmet,fno求解器可以嵌套上面的dmet调用。请注意,包含对两个片段的调用的字典可能会插入到完整调用的字典中。
[0265]
例如:
电子结构求解器之前的fno之前的dmet
[0266]
为了在dmet产生的每个片段上使用fno,可以翻转上述调用,添加fno作为每个dmet片段的下一个求解器,然后添加fno调用的下一个求解器作为电子结构求解器。在这个示例中,可以在一些片段上使用fno,例如,可能在计算上更昂贵的片段。
[0267]
例如:
[0268]
虽然本文已经示出和描述了本发明的优选实施方式,但是对于本领域技术人员来说,这些实施方式仅作为示例提供是显而易见的。本发明不旨在受说明书中提供的特定示例的限制。虽然已经参考前述说明书描述了本发明,但是本文的实施方式的描述和图示并不意味着被解释为限制性的。在不脱离本发明的情况下,本领域技术人员现在将想到许多变化、变化和替换。此外,应当理解,本发明的所有方面不限于本文阐述的具体描述、配置或相对比例,这些具体描述、配置或相对比例取决于各种条件和变量。应当理解,在实践本发明时可以采用对本文描述的本发明的实施方式的各种替代。因此预期本发明还应涵盖任何此类替代、修改、变化或等同物。以下权利要求旨在限定本发明的范围,并且由此涵盖在这些权利要求及其等同物范围内的方法和结构。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献