伊辛机核心电路、其单元以及用于其退火的方法 |
|||||||
申请号 | CN202410175853.2 | 申请日 | 2024-02-07 | 公开(公告)号 | CN117993513A | 公开(公告)日 | 2024-05-07 |
申请人 | 张江国家实验室; | 发明人 | 杨建国; 刘一璇; 蒋海军; | ||||
摘要 | 本 发明 公开了伊辛机核心 电路 、其单元以及用于其 退火 的方法。一种用于伊辛机核心电路的单元包括:环形 振荡器 ,用于产生两个交互 信号 并提供 输出信号 ,这两个交互信号分别与两个相反的自旋状态相关联,输出信号与单元的所确定的自旋状态相关联;多个耦合模 块 ,每个耦合模块将环形振荡器与相邻单元进行多级电容性耦合;读出模块,与环形振荡器耦合,用于基于输出信号产生读出信号,该读出信号指示单元的所确定的自旋状态;以及存储模块,与多个耦合模块耦合,用于存储指示单元与相邻单元之间的耦合权重的信息。 | ||||||
权利要求 | 1.一种用于伊辛机核心电路的单元,包括: |
||||||
说明书全文 | 伊辛机核心电路、其单元以及用于其退火的方法技术领域背景技术[0002] 组合优化问题广泛存在于人工智能决策、药物开发、超大规模集成电路(Very‑Large‑Scale Integration,VSLI)布局布线和交通运输等领域中。这些组合优化问题(例如,最大割问题、布尔可满足性问题和旅行商问题)的解决需要超高算力的支持,其能耗巨大,并且求解时间随问题规模的增长呈指数级增长,因此难以用传统的冯·诺依曼(von Neumann)架构的经典计算机得到有效解决。 [0003] 作为一种面向组合优化问题的专用求解器,伊辛求解器(Ising solver)(又称“伊辛机”)通过将组合优化问题映射成伊辛模型,将最优解的求解转换为寻找伊辛模型的基态来有效地求解组合优化问题。 [0004] 近年来已提出基于各种工艺平台的伊辛机,包括基于超导量子比特的量子退火器、相干光学伊辛机、数字互补金属‑氧化物‑半导体(Complementary Metal‑Oxide‑Semiconductor,CMOS)伊辛机以及CMOS环形振荡器(ring oscillator,ROSC)伊辛机等。 [0005] 数字伊辛机依赖于外部的随机数发生器来引入用于退火的随机性,并且由于数字伊辛机的离散时间特性,需要数千个周期进行自旋的迭代和更新。相干光学伊辛机需要长达1千米的光纤腔和复杂的光学设备,此外,还需要超高速、大功率的现场可编程门阵列(Field Programmable Gate Array,FPGA)来辅助实现自旋间的耦合。量子退火器得益于量子比特之间的互感耦合能够实现完全并行的一次性自旋更新,使得系统自然地松弛到基态,但是量子退火器需要极低的工作问题(~15mK),这导致了巨大的冷却成本。作为对量子退火器的有效模拟,ROSC伊辛机可在室温下运行,并且可以显著较少能耗和求解时间。 [0006] 目前的ROSC伊辛机的应用仍然受限。本领域中需要一种稳定、高准确性的伊辛机。发明内容 [0007] 为提供一种稳定、高准确性的伊辛机,提供本发明。 [0008] 根据本发明的一个方面,提供一种用于伊辛机核心电路的单元,其包括:环形振荡器,用于产生两个交互信号并提供输出信号,所述两个交互信号分别与两个相反的自旋状态相关联,所述输出信号与所述单元的所确定的自旋状态相关联;多个耦合模块,每个耦合模块将所述环形振荡器与相邻单元进行多级电容性耦合;读出模块,与所述环形振荡器连接,用于基于所述输出信号产生读出信号,所述读出信号指示所述单元的所确定的自旋状态;以及存储模块,与所述多个耦合模块连接,用于存储指示所述单元与相邻单元之间的耦合权重的信息。 [0009] 如上所述的单元,其中,所述环形振荡器包括:串联连接的奇数数量的多个反相器,其中,两个相邻的反相器的输出端用于提供所述两个交互信号,在所述两个相邻的反相器中处于上游的反相器的供电电压受锁定信号调制以锁定相位,并且所述锁定信号的频率是所述环形振荡器的振荡频率的两倍。 [0010] 如以上任一项所述的单元,其中,所述环形振荡器还包括:与非门,与所述奇数数量的多个反相器串联连接,所述与非门用于接收使能信号以使所述环形振荡器起振。 [0011] 如以上任一项所述的单元,其中,每个耦合模块与所述环形振荡器的提供所述两个交互信号的两个节点耦合,并且与相应的相邻单元的环形振荡器的提供相应的两个交互信号的对应的两个节点耦合。 [0013] 如以上任一项所述的单元,其中,所述电容器包括串联和/或并联连接的多个电容器,并且所述开关包括多个开关,其中,所述单元与相邻单元之间的耦合权重至少部分地基于所述多个开关的开、合状态和/或所述多个电容器的电容值来确定。 [0014] 如以上任一项所述的单元,其中,所述电容器包括MOS电容器。 [0015] 如以上任一项所述的单元,其中,所述环形振荡器用于提供第一输出信号,并且相邻单元的环形振荡器用于提供第二输出信号,所述第一输出信号和所述第二输出信号包括指示相位的信号,所述读出模块用于:至少部分地基于所述第一输出信号和所述第二输出信号之间的相位偏移来产生所述读出信号。 [0016] 如以上任一项所述的单元,其中,所述单元与相邻单元之间的耦合权重按预定义的时序和预定义的分组开始被保持有效,以进行退火。 [0017] 如以上任一项所述的单元,其中,所述预定义的时序限定开始使耦合权重被保持有效的预定时间段,并且所述预定义的分组限定在每个预定时间段内依次开始被保持有效的预定数量的耦合权重的序列。 [0018] 如以上任一项所述的单元,其中,第一预定数量的耦合权重的第一序列在每个预定时间段内依次开始被保持有效,直到所述第一序列结束,并且第一预定数量的耦合权重的第二序列在每个预定时间段内依次开始被保持有效,直到所述第二序列结束。 [0019] 如以上任一项所述的单元,其中,所述第一序列和所述第二序列通过随机遍历耦合权重来产生。 [0020] 如以上任一项所述的单元,其中,第二预定数量的耦合权重的第三序列在每个预定时间段内依次开始被保持有效,直到所述第三序列结束,并且第二预定数量的耦合权重的第四序列在每个预定时间段内依次开始被保持有效,直到所述第四序列结束,其中,所述第二预定数量与所述第一预定数量不同。 [0021] 根据本发明的另一方面,提供一种伊辛机核心电路,其包括如以上任一项所述的多个单元,其中,所述多个单元彼此通信。 [0022] 如上所述的伊辛机核心电路,其中,所述多个单元按照国王图拓扑耦合。 [0023] 根据本发明的又一方面,提供一种用于伊辛机核心电路的退火的方法,所述伊辛机核心电路包括多个单元,所述多个单元彼此通信,每个单元与对应的相邻单元耦合以限定耦合权重,所述方法包括:确定每个单元与对应的相邻单元之间的耦合权重;确定预定义的时序;确定预定义的分组;以及按所述预定义的时序和所述预定义的分组使每个单元与对应的相邻单元之间的耦合权重开始保持有效,以进行退火。 [0024] 如上所述的方法,其中,确定所述预定义的时序包括:确定开始使耦合权重保持有效的预定时间段,并且确定所述预定义的分组包括:确定在每个预定时间段内依次开始被保持有效的预定数量的耦合权重的序列。 [0025] 如以上任一项所述的方法,其中,按所述预定义的时序和所述预定义的分组使每个单元与对应的相邻单元之间的耦合权重开始保持有效包括:使第一预定数量的耦合权重的第一序列在每个预定时间段内依次开始保持有效,直到所述第一序列结束;以及使第一预定数量的耦合权重的第二序列在每个预定时间段内依次开始保持有效,直到所述第二序列结束。 [0026] 如以上任一项所述的方法,其中,所述第一序列和所述第二序列通过随机遍历耦合权重来产生。 [0027] 如以上任一项所述的方法,其中,按所述预定义的时序和所述预定义的分组使每个单元与对应的相邻单元之间的耦合权重开始保持有效还包括:使第二预定数量的耦合权重的第三序列在每个预定时间段内依次开始保持有效,直到所述第三序列结束;以及使第二预定数量的耦合权重的第四序列在每个预定时间段内依次开始保持有效,直到所述第四序列结束,其中,所述第二预定数量与所述第一预定数量不同。 [0029] 结合附图描述本发明的各实施例。 [0030] 图1示出了用于描述伊辛模型的示意图。 [0031] 图2示出了根据本发明的一些实施例的伊辛机核心电路的结构框图。 [0032] 图3示出了根据本发明的一些实施例的伊辛机核心电路的单元的结构框图。 [0033] 图4示出了根据本发明的一些实施例的伊辛机核心电路的单元的环形振荡器的电路图。 [0034] 图5示出了根据本发明的一些实施例的伊辛机核心电路的单元的耦合模块的电路图。 [0036] 图7示出了根据本发明的一些实施例的伊辛机核心电路的单元的存储模块的1比特存储单元的电路图。 [0037] 图8示出了用于根据本发明的一些实施例的伊辛机核心电路及其单元的洗牌渐进式退火(shuffled progressive annealing,SPA)的示意图。 [0038] 图9示出了根据本发明的一些实施例的用于伊辛机核心电路的退火的方法的流程图。 [0039] 图10示出了根据本发明的一些实施例的按预定义的时序和预定义的分组对伊辛机核心电路进行退火的过程的流程图。 具体实施方式[0040] 在本申请中,术语“多级电容性耦合”是指被耦合的单元之间通过电容耦合,并且该耦合可通过多个电容值来反映多个耦合强度。 [0041] 图1示出了用于描述伊辛模型的示意图。 [0044] 图1中示出包括四个相互作用的单元的系统的伊辛模型。每个自旋粒子(例如,自旋粒子σi、σj)都包括两种完全随机的状态(例如,+1、‑1,在图1中分别以向上和向下的箭头表示)。彼此耦合的自旋粒子之间存在相互作用,在图1中示出自旋粒子σi、σj之间的相互作用Jij。另外,外部场也会影响每一个自旋粒子,在图1中示出外部场对自旋粒子σi的作用hi。由此,图1中所示的系统的哈密顿量H可通过以下式(1)计算: [0045] H(σ1,…,σn)=‑∑i<jJijσiσj‑∑ihiσi (1) [0046] 对于某些特定问题,当将其转换为伊辛模型时,对应于外部场对自旋粒子的作用为零,则式(1)变成以下式(2): [0047] H(σ1,…,σn)=‑∑i [0048] 伊辛模型的求解是使系统的哈密顿量H不断降低(即,伴随着系统的退火)的过程。在实际应用中,可将实际问题中的参量映射到伊辛模型中的自旋粒子的自旋状态,并且通过算法模拟退火过程或采用系统固有的物理退火机制使得系统的哈密顿量不断降低,通过求解伊辛模型来解决实际的组合优化问题,由此通过量子计算来解决组合优化问题,克服经典计算中算力不足、功耗大等问题。 [0049] 图2示出了根据本发明的一些实施例的伊辛机核心电路200的结构框图。 [0050] 伊辛机核心电路200可包括多个单元,这些单元彼此通信。下文结合图3‑图8描述了伊辛机核心电路200的单元的细节。 [0051] 在一些实施例中,伊辛机核心电路200的各个单元按阵列布置。作为示例,图2示出这些单元按32×32的阵列布置。在一些实施例中,伊辛机核心电路200的各个单元按照国王图拓扑耦合。也就是说,相应单元与其相邻的上、下、左、右、左上、左下、右上、右下的单元(如果有)耦合。各单元之间的其他耦合方式也是可能的。 [0052] 图3示出了根据本发明的一些实施例的伊辛机核心电路的单元300的结构框图。单元300可用作图2中的伊辛机核心电路200中的单元(例如,单元(1,1)),但本发明不限于此。尽管在图3中将单元300示出为单元(1,1),但这仅是示例性的,本领域技术人员能够根据针对单元(1,1)的描述来实现伊辛机核心电路(例如,图2中的伊辛机核心电路200)的各个单元。 [0053] 单元300可包括环形振荡器310、耦合块330、读出模块350和存储模块370。 [0054] 环形振荡器310可用于产生分别与两个相反的自旋状态相关联的两个交互信号U(1,1)_0、U(1,1)_1,并且可用于提供与单元300的所确定的自旋状态相关联的输出信号U(1,1)_6。通过环形振荡器310产生的振荡信号,可取得与自旋状态相关联的交互信号。通过单元300与相邻单元之间(通过环形振荡器的交互信号)的相互作用,可确定环形振荡器300的所确定的自旋信号并将其读出。通过环形振荡器310自身的振荡机制,可实现伊辛模型求解中所需的退火过程。由此,可使包括环形振荡器310的单元300能够用作伊辛机核心电路(例如,图2中的伊辛机核心电路200)的单元。下文将结合图4描述环形振荡器300的进一步细节。 [0055] 耦合块330可包括多个耦合模块:耦合模块0 331、耦合模块1 332、耦合模块2 333、耦合模块3 334等。耦合模块0 331、耦合模块1 332、耦合模块2333、耦合模块3 334中的每个耦合模块可用于将环形振荡器310与相邻单元(例如,相邻单元的环形振荡器)进行多级电容性耦合。下文将结合图5描述每个耦合模块的进一步细节。 [0056] 现有的采用环形振荡器的伊辛机常使用电阻进行单元之间的耦合。各单元之间不合适的电阻耦合强度会导致振荡器停止振荡或导致不成功的耦合,这限制了耦合权重的分辨率。通过耦合模块0 331、耦合模块1 332、耦合模块2 333、耦合模块3 334等将伊辛机核心电路的各单元之间进行电容性耦合,借助于电容的高通特性使得耦合更稳定,实现了稳定的多级耦合。此外,多级耦合改善了系统应用的灵活性和可扩展性。 [0057] 读出模块350与环形振荡器310连接。读出模块350用于基于环形振荡器350的输出信号U(1,1)_6来产生读出信号OUT(1,1),该读出信号OUT(1,1)指示单元300的所确定的自旋状态。下文将结合图6描述读出模块350的进一步细节。 [0058] 存储模块370与耦合块330的耦合模块0 331、耦合模块1 332、耦合模块2 333、耦合模块3 334等连接。存储模块370可用于存储指示单元300与相邻单元之间的耦合权重的信息。在一些实施例中,存储模块370可包括多个1比特存储单元以及其独立的预充电电路和放大器电路(图3中未示出),多个1比特存储单元例如可以是多个1比特静态随机存取存储器(Static Random Access Memory,SRAM)。下文将结合图7描述存储模块370的1比特存储单元的进一步细节。 [0059] 图4示出了根据本发明的一些实施例的伊辛机核心电路的单元的环形振荡器400的电路图。环形振荡器400可用作图3中的环形振荡器310,但本发明不限于此。 [0060] 环形振荡器400可包括串联连接的奇数数量的多个反相器。尽管图4中示出8个反相器,但本领域技术人员可知,最少可利用串联连接的三个反相器来组成环形振荡器,因此,本领域技术人员可采用相比图中所示的配置更多或更少的奇数数量的反相器。 [0061] 两个相邻的反相器410、420的输出端分别用于提供交互信号Ui_0、Ui_1。该交互信号Ui_0、Ui_1分别与两个相反的自旋状态相关联。交互信号Ui_0、Ui_1所在的端口可以是环形振荡器400所在的单元与相邻单元耦合的接口。作为示例,交互信号Ui_0、Ui_1分别可以与图3中的交互信号U(1,1)_0、U(1,1)_1对应。反相器410、420中处于上游的反相器410的供电电压受次谐波注入锁定信号SHIL_CLK调制以锁定相位。该次谐波注入锁定信号SHIL_CLK的频率被设定为环形振荡器400的振荡频率的两倍,使得环形振荡器400可以存在两个相位状态,其可对应于两个相反的自旋状态(例如,+1和‑1)。 [0062] 环形振荡器400中的另一节点处的输出信号Ui_6可以与该环形振荡器400所在的单元的所确定的自旋状态相关联。作为示例,输出信号Ui_6可以与图3中的输出信号U(1,1)_6对应。在一些实施例中,输出信号Ui_6可包括指示相位的信号。 [0063] 在一些实施例中,环形振荡器400还可包括与非门430。该与非门430可与奇数数量的多个反相器串联连接。与非门430可用于接收使能信号ROSC_EN,以使环形振荡器400起振。 [0064] 本领域技术人员可以根据实际配置需要来设计反相器和/或与非门的晶体管的尺寸和参数,以降低环形振荡器400的频率,从而匹配外围电路。 [0065] 图5示出了根据本发明的一些实施例的伊辛机核心电路的单元的耦合模块500的电路图。耦合模块可用于图3中的单元300的耦合块330的耦合模块0 331、耦合模块1 332、耦合模块2 333、耦合模块3 334中的每一个,但本发明的范围不限于此。 [0066] 作为示例,耦合模块500示出为将单元i 590与单元j 595进行多级电容性耦合。单元i 590和单元j 595均可以与上文结合图3描述的单元300类似。 [0067] 在一些实施例中,耦合模块500可与单元i 590的提供两个交互信号的两个节点(例如,参考图4中提供交互信号Ui_0、Ui_1的两个节点)耦合,并且可与相邻单元j 595的提供两个交互信号的两个节点耦合。 [0068] 在一些实施例中,耦合模块500可包括电容器和开关。借助于电容器的高通特性,可使得耦合相对于传统的电阻耦合更稳定。 [0069] 在一些实施例中,电容器可包括串联连接的多个电容器。在一些实施例中,电容器可包括并联连接的多个电容器。在一些实施例中,电容器可包括串联连接的多个电容器和并联连接的多个电容器。通过电容器和开关的开/合状态的各种组合,可提供不同的电容值,其可对应于多个耦合强度,由此提供多级电容性耦合。 [0070] 在一些实施例中,电容器可包括金属‑氧化物‑半导体(Metal‑Oxide‑Semiconductor,MOS)电容器。由于MOS电容器的面积比普通电容器更小,因此可进一步减小耦合模块500的面积。 [0071] 在一些实施例中,耦合模块500可包括网络510。网络510可包括并联连接的电容器C1、C2、在电容器C1的两端与其串联连接的开关S1、S2、在电容器C2的两端与其串联连接的开关S3、S4、以及连接电容器C1的一端与电容器C2的相对的另一端的开关S5。开关S1‑S5的开/合状态的各种组合可提供网络510内的不同电容值,由此提供单元i 590与单元j 595之间的不同的耦合强度。 [0072] 在一些实施例中,耦合模块500还可包括网络520。网络520可包括与单元i 590串联连接的开关Si_0、Si_1以及与单元j 595串联连接的开关Sj_0、Sj_1。开关Si_1、Si_1、Sj_0、Sj_1的开/合状态的各种组合可提供单元i 590与单元j 595之间的不同的耦合正负。耦合正负可以与耦合强度共同构成耦合权重(即,带正负符号的耦合强度)。 [0073] 以下表1列出了与图5中所示的耦合模块500的配置对应的真值表。 [0074] 表1耦合权重配置真值表 [0075] [0076] 针对具体的组合优化问题,可将其对应参量之间的影响权重映射到相应的真值表,由此,可通过伊辛机求解伊辛模型来求解该组合优化问题。本领域技术人员能够根据具体组合优化问题来确定所需的真值表,从而相应地对耦合模块500的配置进行调整(例如,增加/减小电容器的数量、增加/减小电容器的电容值,增加/减小开关的数量,改变电容器的连接方式,改变开关的连接方式等)以适配相应的组合优化问题。 [0077] 图6示出了根据本发明的一些实施例的伊辛机核心电路的单元的读出模块600的电路图及其输入信号、输出信号的波形图示650。读出模块600可以用作图3中的读出模块350,但是本发明的范围不限于此。 [0078] 在一些实施例中,读出模块600可接收其所在的单元的环形振荡器提供的输出信号Ui_6以及相邻单元的环形振荡器提供的输出信号Ui‑1_6。在一些实施例中,输出信号Ui_6、Ui‑1_6可包括指示相位的信号。读出模块600可基于信号Ui_6与信号Ui‑1_6之间的相位偏移来产生读出信号Ui_OUT。 [0079] 由于大规模环形振荡器阵列具有固有的相位噪声,因此导致难以区分某些自旋的状态,但相邻单元的自旋之间的相位差几乎总是正确的。因此,通过比较指示当前单元的自旋状态的信号与相邻单元的自旋状态的信号之间的相位,可确定并输出指示当前单元的自旋状态的信号。这更有利于判断单元的自旋状态,并且有助于减小电路面积。这一点将在下文结合图示650来描述。 [0080] 在一些实施例中,读出模块600可包括异或门610,该异或门610可接收来自两个相邻单元的环形振荡器的输出信号Ui_6、Ui‑1_6,并输出其异或结果。 [0081] 任选地,在一些实施例中,读出模块600可包括数据选择器620。数据选择器620可接收异或门610输出的异或结果以及信号Ui_6,并在选择信号SEL的选择下输出异或结果或信号Ui_6中的一个。由此使得读取模块600可在以下两种模式之间进行切换:i)仅基于当前单元的环形振荡器的输出信号Ui_6来产生读出信号Ui_OUT;或者ii)基于当前单元的环形振荡器的输出信号Ui_6和相邻单元的环形振荡器的输出信号Ui‑1_6两者来产生读出信号Ui_OUT。在一些实施例中,数据选择器620可被省略。相应地,读出模块600可以仅以上述模式ii)进行操作。 [0082] 在一些实施例中,读出模块600可包括D触发器630。D触发器630用于接收数据选择器620的选择结果,并且基于时钟信号CLK的边沿来输出该选择结果,以产生读出信号Ui_OUT。 [0083] 图示650示出读出模块600的示例性输入信号和输出信号。在651处示出信号Ui_6、Ui‑1_6完全同相时的情况,此时,信号Ui_OUT为持续的低电平输出。在652处示出信号Ui_6、Ui‑1_6大致同相时的情况,此时,信号Ui_OUT可包括更多的0,而信号Ui_OUT基本处于低电平,表明当前单元与相邻单元是同相的。在653处示出信号Ui_6、Ui‑1_6完全反相时的情况,此时,信号Ui_OUT为持续的高电平输出。在654处示出信号Ui_6、Ui‑1_6大致反相时的情况,此时,信号Ui_OUT可包括更多的1,而信号Ui_OUT基本处于高电平,表明当前单元与相邻单元是反相的。 [0084] 仅基于当前单元的环形振荡器的输出信号来读出信号的设计需要判断8种相位状态。相比之下,基于当前单元和相邻单元各自的环形振荡器的输出信号之间的相位偏移仅需要判断两种相位状态,使得对单元的自旋状态的判断更准确且方便。同时,电路面积也可减小约2.2倍。 [0085] 图7示出了根据本发明的一些实施例的伊辛机核心电路的单元的存储模块的1比特存储单元700(例如,1比特SRAM)的电路图。1比特存储单元可用作图3的单元300的存储模块370的1比特SRAM。 [0086] 1比特存储单元700可包括预充电电路710、SRAM单元730和放大器750。SRAM单元730与预充电电路710连接,放大器750与SRAM单元730连接。 [0087] 在一些实施例中,存储模块(例如,图3中的存储模块370)可包括24个1比特存储单元(例如,1比特存储单元700)。在一些实施例中,1比特存储单元可包括6T SRAM单元。 [0088] 在一些实施例中,受绝热量子退火的启发,可采用渐进式退火(progressive annealing,PA)方法,使当前单元与相邻单元之间的耦合权重按预定义的时序和预定义的分组被保持有效,以进行退火。也就是说,在退火过程中,使相邻单元之间的耦合权重依次逐个(批)有效,使得系统可从简单的初始状态过度到由诸如最大割问题决定的状态。这保证了系统的哈密顿量能够近似缓慢地变化,使得即时能量景观变得更加复杂,系统的状态也会保持在基态。 [0089] 在一些实施例中,预定义的时序可限定耦合权重被保持有效的预定时间段。在一些实施例中,预定义的分组可限定在每个预定时间段内依次被保持有效的预定数量的耦合权重的序列。 [0090] 在一些实施例中,为了考虑到退火时间表对求解过程的影响,还可采用SPA方法。 [0091] 图8示出了用于根据本发明的一些实施例的伊辛机核心电路及其单元的SPA的示意图。 [0092] 图8中示出序列集合810、序列集合820和序列集合830以及图例850。图8中示出的每个权重wi可与图5中的耦合模块500所确定的耦合权重对应。 [0093] 序列集合810可包括序列812、814、816,其中在每个预定时间段τ1内使对应的一个耦合权重被保持有效,并且先前已被保持有效的耦合权重一直被保持有效,直到该序列结束。例如,序列812的退火时序如以下表2所示: [0094] 表2序列812的退火时序表 [0095] [0096] 序列集合820可包括序列822、824,其中的每个序列在每个预定时间段τ2内使对应的两个耦合权重被保持有效,并且先前已被保持有效的耦合权重一直被保持有效,直到该序列结束。例如,序列822的退火时序如以下表3所示: [0097] 表3序列822的退火时序表 [0098] [0099] 序列集合830可包括一个序列,该序列可包括该示例中的全部20个耦合权重w1‑w20。通过对耦合权重逐个/批有效的顺序进行洗牌,可引入一些随机性,使得系统能够探索解空间的不同区域,从而提高解的多样性,增加了找到最优解的概率。例如,针对问题规模为16×16的不同权重精度的随机最大割问题,与无退火方式相比,SPA方法可将求解准确度提高8%‑15%。 [0100] 在一些实施例中,预定时间段τi可基于耦合权重改变后环形振荡器阵列的相位要达到稳定所需的时间来确定。 [0101] 当每一步被保持有效的耦合权重的个数n从N到1变化时,时间尺度逐渐分离。 [0102] 在一些实施例中,耦合权重的每个序列可通过随机遍历耦合权重(例如,耦合权重w1‑w20)来确定,使得每一次遍历都按随机顺序取得所涉及的每个耦合权重一次且仅取得一次。所产生的随机序列可以重复使用,这减少了对外部随机数发生器的需求。 [0103] 图9示出了根据本发明的一些实施例的用于伊辛机核心电路的退火的方法900的流程图。 [0104] 方法900可用于各种伊辛机核心电路,包括但不限于上文结合图2描述的伊辛机核心电路200。方法900适用的伊辛机核心电路可包括多个单元,这些单元彼此通信。每个单元可与对应的相邻单元耦合以限定耦合权重。这些单元可包括但不限于上文结合图3描述的单元300。 [0105] 方法900可包括:在框910处,确定每个单元与对应的相邻单元之间的耦合权重。 [0106] 在一些实施例中,相邻单元之间可通过电容性耦合;相应地,耦合权重可基于相邻单元之间的电容值来确定。在一些实施例中,相邻单元之间可通过电阻性耦合;相应地,耦合权重可基于相邻单元之间的电阻值来确定。在其他实施例中,相邻单元之间还可通过使得相邻单元能够彼此作用或影响的方式来耦合。 [0107] 方法900可包括:在框930处,确定预定义的时序。 [0108] 在一些实施例中,框930处的步骤可包括:在框935处,确定开始使耦合权重保持有效的预定时间段。作为示例,每个预定时间段可包括上文结合图8描述的持续时间为τ1、τ2等的时间段。 [0109] 在一些实施例中,框930处的步骤可包括:在框950处,确定预定义的分组。 [0110] 在一些实施例中,框950处的步骤可包括:在框955处,确定在每个预定时间段内依次开始被保持有效的预定数量的耦合权重的序列。作为示例,预定数量可以是1、2、…、N等,其中,N是所涉及的耦合权重的总数。作为示例,序列可包括上文结合图8所描述的包含单个耦合权重作为元素的序列812、814、816,包含两个耦合权重作为元素的序列822、824,包含全部N个耦合权重的序列830。 [0111] 方法900可包括:在框970处,按预定义的时序和预定义的分组使每个单元与对应的相邻单元之间的耦合权重开始保持有效,以进行退火。 [0112] 在退火过程中,使相邻单元之间的耦合权重依次逐个(批)有效,使得系统可从简单的初始状态过度到由诸如最大割问题决定的状态。这保证了系统的哈密顿量能够近似缓慢地变化,使得即时能量景观变得更加复杂,系统的状态也会保持在基态。 [0113] 图10示出了根据本发明的一些实施例的按预定义的时序和预定义的分组对伊辛机核心电路进行退火的过程1000的流程图。过程1000可以是图9中的方法900中的步骤970的具体实现方式,但本发明的范围不限于此。 [0114] 过程1000可包括:在框1010处,使第一预定数量的耦合权重的第一序列在每个预定时间段内依次开始保持有效,直到第一序列结束。作为示例,第一序列可以是上文结合图8描述的序列812、814或816中的一个。作为示例,耦合权重被保持有效的时序可以如上文中的表2所示或根据具体的序列与之类似。 [0115] 过程1000可包括:在框1030处,使第一预定数量的耦合权重的第二序列在每个预定时间段内依次开始保持有效,直到第二序列结束。作为示例,第二序列可以是上文结合图8描述的序列812、814或816中的另一个。作为示例,耦合权重被保持有效的时序可以如上文中的表2所示或根据具体的序列与之类似。 [0116] 在一些实施例中,可以进一步使第一预定数量的耦合权重的其他序列在每个预定时间段内依次开始保持有效,直到该序列结束。如图10中的框1030与框1050之间的省略号所示。所操作的序列的数量可根据需要来确定。 [0117] 过程1000可包括:在框1050处,使第二预定数量的耦合权重的第三序列在每个预定时间段内依次开始保持有效,直到第三序列结束。作为示例,第三序列可以是上文结合图8描述的序列822、824或中的一个。作为示例,耦合权重被保持有效的时序可以如上文中的表3所示或根据具体的序列与之类似。 [0118] 过程1000可包括:在框1070处,使第一预定数量的耦合权重的第四序列在每个预定时间段内依次开始保持有效,直到第四序列结束。作为示例,第四序列可以是上文结合图8描述的序列822、824或中的另一个。作为示例,耦合权重被保持有效的时序可以如上文中的表3所示或根据具体的序列与之类似。 [0119] 在一些实施例中,可以进一步使第二预定数量的耦合权重的其他序列在每个预定时间段内依次开始保持有效,直到该序列结束,如图10中的框1070之后的省略号所示。所操作的序列的数量可根据需要来确定。 [0120] 在一些实施例中,还可进一步对第三预定数量、第四预定数量等的耦合权重的相应序列执行相应的操作,如图10中的框1070之后的省略号所示。 [0121] 通过对耦合权重逐个/批有效的顺序进行洗牌,可引入一些随机性,使得系统能够探索解空间的不同区域,从而提高解的多样性,增加了找到最优解的概率。例如,针对问题规模为16×16的不同权重精度的随机最大割问题,与无退火方式相比,SPA方法可将求解准确度提高8%‑15%。 [0122] 在一些实施例中,第一序列、第二序列、第三序列、第四序列、以及可选的进一步的序列中的一个或多个可通过随机遍历所涉及的耦合权重来产生。所产生的随机序列可以重复使用,这减少了对外部随机数发生器的需求。 [0123] 已结合附图描述了本发明的实施例,各实施例是说明性而非限制性的。 |