CN112101512A - 采样装置和采样方法 - Google Patents

采样装置和采样方法 Download PDF

Info

Publication number
CN112101512A
CN112101512A CN202010535178.1A CN202010535178A CN112101512A CN 112101512 A CN112101512 A CN 112101512A CN 202010535178 A CN202010535178 A CN 202010535178A CN 112101512 A CN112101512 A CN 112101512A
Authority
CN
China
Prior art keywords
value
state
state variables
values
update
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202010535178.1A
Other languages
English (en)
Inventor
田村泰孝
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of CN112101512A publication Critical patent/CN112101512A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/047Probabilistic or stochastic networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/18Complex mathematical operations for evaluating statistical data, e.g. average values, frequency distributions, probability functions, regression analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/01Dynamic search techniques; Heuristics; Dynamic trees; Branch-and-bound
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N7/00Computing arrangements based on specific mathematical models
    • G06N7/01Probabilistic graphical models, e.g. probabilistic networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N7/00Computing arrangements based on specific mathematical models
    • G06N7/08Computing arrangements based on specific mathematical models using chaos models or non-linear system models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2111/00Details relating to CAD techniques
    • G06F2111/06Multi-objective optimisation, e.g. Pareto optimisation using simulated annealing [SA], ant colony algorithms or genetic algorithms [GA]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2119/00Details relating to the type or aim of the analysis or the optimisation
    • G06F2119/06Power analysis or power optimisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2119/00Details relating to the type or aim of the analysis or the optimisation
    • G06F2119/08Thermal analysis or thermal optimisation

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Artificial Intelligence (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Algebra (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Probability & Statistics with Applications (AREA)
  • Computational Linguistics (AREA)
  • Health & Medical Sciences (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Molecular Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Nonlinear Science (AREA)
  • Computer Hardware Design (AREA)
  • Geometry (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Evolutionary Biology (AREA)
  • Operations Research (AREA)
  • Databases & Information Systems (AREA)
  • Neurology (AREA)
  • Feedback Control In General (AREA)
  • Complex Calculations (AREA)
  • Indication And Recording Devices For Special Purposes And Tariff Metering Devices (AREA)

Abstract

本发明涉及采样装置和采样方法,采样装置包括多个更新电路和选择电路,多个更新电路包括:存储单元,其存储多个状态变量中的作为变化候选的状态变量和另一状态变量的每个集合的耦合系数、多个状态变量的值以及多个局部字段的值;状态更新单元,其基于作为变化候选的状态变量的局部字段的值计算能量值的变化值,根据对状态变量的值是否改变的判定来改变状态变量的值,以及基于耦合系数来更新其他状态变量的局部字段的值;以及分数更新单元,其根据能量值和温度值来更新分数值;选择电路被配置成基于多个分数值选择由预定数量的更新电路保持的多个状态变量的值的集合,并且输出所选择的多个状态变量的值的集合。

Description

采样装置和采样方法
技术领域
本文所讨论的实施方式涉及采样装置和采样方法。
背景技术
作为用于解决组合优化问题的方法,存在用于通过使用马尔可夫链蒙特卡罗方法(the Markov chain Monte Carlo method)将组合优化问题转换成指示磁性材料的自旋行为的伊辛(Ising)模型并且将该伊辛模型的状态转变为具有低能量的状态的方法。例如,作为一种马尔可夫链蒙特卡罗方法,模拟退火方法是已知的。在模拟退火方法中,通过使用温度作为参数并且在逐渐降低温度的同时转变状态,来搜索具有最低能量的状态(最优解)。
例如,已经提出了通过使用数字电路来执行模拟退火方法的信息处理装置(例如,参照专利文献1)。所提出的信息处理装置如下通过同时将多个状态转变设置为转变候选来执行用于选择单个状态转变的并行搜索。
信息处理装置包括与多个状态变量相对应的多个神经元,并且根据神经元之间的耦合系数,基于每个状态转变的能量变化和温度值,允许具有预定接受概率的每个状态转变。信息处理装置从允许的状态转变中选择一个状态转变并更新该状态。例如,使用通过蒙特卡罗(Metropolis)方法和吉布斯(Gibbs)方法定义的概率作为状态转变的接受概率。
此外,还提出了其中安装有执行伊辛模型的基态搜索的一个或多个半导体芯片的信息处理系统(例如,参考专利文献2)。
此外,提出了包括运算电路的半导体装置,该运算电路基于指示交互模型的一个节点的状态的值、来自另一节点的交互系数和该一个节点的偏置系数来确定指示该一个节点的下一状态的值(例如,参考专利文献3)。
公开了日本公开特许公报第2018-41351号、日本公开特许公报第2016-51350号和日本公开特许公报第2016-51326号作为相关技术。
当通过蒙特卡罗方法和吉布斯方法确定状态转变的接受概率时,每个状态下的占用概率是根据平衡状态下的玻尔兹曼分布(Boltzmann distribution)。因此,将通过使用马尔可夫链蒙特卡罗方法通过在特定温度下的多次状态转变试验获得的状态和基于该状态的值输出为样本,可以实现根据玻尔兹曼分布生成样本的采样器。所生成的样本用于例如通过机器学习等来计算期望值。
此处,如在上述信息处理装置中,考虑通过对多个状态变量进行并行搜索以确定下一状态转变来执行采样。在该方法中,接下来要被反转的状态变量是不可预测的(大体上随机的)。在根据要反转的状态变量更新局部字段的定时处,发生对保持耦合系数值的存储器的随机访问。因此,为了高速操作,考虑在采样器中内置可以随机访问的存储单元,并且所有耦合系数被预先存储在存储单元中。
另一方面,随着状态变量的数量增加,耦合系数的数量也增加。因此,例如,在采样器由包括一个或多个芯片的半导体集成电路实现的情况下,存在可以使用的状态变量的数量取决于存储耦合系数的存储单元的容量而被限制的问题。
本实施方式的一方面的目的在于提供能够改善对可以使用的状态变量的数量的限制的采样装置以及采样方法。
发明内容
根据实施方式的一方面,采样装置包括多个更新电路和选择电路,所述多个更新电路包括:存储单元,其存储针对指示能量值的评估函数中包括的多个状态变量中的作为变化候选的状态变量和另一状态变量的每个集合的耦合系数、多个状态变量的值以及与多个状态变量相对应的多个局部字段的值;状态更新单元,其基于作为变化候选的状态变量的局部字段的值计算能量值的变化值,根据取决于设置的温度值和随机值以及变化值的对状态变量的值是否改变的确定来改变状态变量的值,以及基于耦合系数来更新其他状态变量的局部字段的值;以及分数更新单元,其根据关于多个状态变量的值的能量值和温度值来更新分数值;选择电路被配置成基于与多个更新电路相对应的多个分数值选择由比多个更新电路的数量少的预定数量的更新电路保持的多个状态变量的值的集合,并且输出所选择的多个状态变量的值的集合。
在一方面,可以改进对可以使用的状态变量的数量的限制。
附图说明
图1是示出根据第一实施方式的采样装置的图;
图2是示出根据第二实施方式的采样装置的示例性电路配置的图;
图3是示出复本更新电路的示例性电路配置的图;
图4是示出判定单元的示例性电路配置的图;
图5是示出重采样电路的示例性电路配置的图;
图6是示出选择电路的示例性电路配置的图;
图7是示出采样装置的处理示例的流程图;
图8是示出重采样的示例的流程图;
图9是示出第三实施方式的采样装置的示例性电路配置的图;
图10是示出分数次序选择电路的示例性电路配置的图;
图11是示出选择电路的示例性电路配置的图;
图12是示出采样装置的处理示例的流程图;
图13是示出状态变量的划分示例的图;以及
图14是示出根据第四实施方式的采样装置的示例性电路配置的图。
具体实施方式
在下文中,将参照附图来描述本实施方式。
[第一实施方式]
将描述第一实施方式。
图1是示出根据第一实施方式的采样装置的图。
采样装置10通过使用马尔可夫链蒙特卡罗(MCMC)方法通过使用蒙特卡罗方法和吉布斯方法的参考转变伊辛模型的状态,来执行对根据玻尔兹曼分布的状态的采样。采样装置10可以解决组合优化问题。采样装置10通过使用半导体集成电路(半导体芯片)例如现场可编程门阵列(FPGA)等来实现。
此处,伊辛型能量函数E(x)例如由表达式(1)定义。
[公式1]
Figure BDA0002536742130000041
通过对两个状态变量的值与针对可以从所有状态变量中选择的两个状态变量的所有组合——在没有省略和重复的情况下——的耦合系数的乘积进行积分获得表达式(1)右侧的第一项。参数xi指示第i个状态变量。参数xj指示第j个状态变量。状态变量的值为零或一。存在状态变量被称为二进制变量、位等的情况。耦合系数Wij指示第i个状态变量与第j个状态变量之间的权重(例如,耦合强度)。注意,关于矩阵W={Wij},满足Wij=Wji和Wii=0。下标i和j是状态变量的标识信息,并且被称为索引。针对状态变量的所有组合的耦合系数被存储在连接至采样装置10的外部存储器50中。外部存储器50例如由动态随机存取存储器(DRAM)实现。
表达式(1)的右侧的第二项是所有状态变量中的每一个的偏置值与状态变量的值的乘积的和。参数bi指示第i个状态变量的偏置值。
例如,伊辛模型中的自旋“-1”对应于状态变量的值“0”。伊辛模型中的自旋“+1”对应于状态变量的值“1”。
当状态变量xi的值变为1-xi时,状态变量xi的增量可以表示为δxi=(1-xi)-xi=1-2xi。因此,对于能量函数E(x),伴随状态变量xi的自旋翻转(值的变化)的能量变化ΔEi由表达式(2)表示。
[公式2]
Figure BDA0002536742130000042
参数hi被称为局部字段(local field),并由表达式(3)表示。
[公式3]
Figure BDA0002536742130000051
当状态变量xj改变(位翻转)时,局部字段hi的变化δhi (j)由表达式(4)表示。
[公式4]
Figure BDA0002536742130000052
采样装置10保持关于状态变量xi的局部字段hi,并且当其他状态变量xj的值改变时将变化δhi (j)加至hi,以便获得与位翻转之后的状态相对应的hi。采样装置10可以基于表达式(2)根据局部字段hi获得当状态变量xi被设置为变化候选时的能量变化值ΔEi
如上所述,采样装置10使用蒙特卡罗法和吉布斯法来判定是否允许能量变化为ΔEi(状态变量xi的值的变化)的状态转变。利用该操作,在用于搜索从特定状态到能量低于该状态中的能量的另一状态的转变的邻近搜索中,不仅随机地允许到能量降低的状态的转变而且还随机地允许到能量增加的状态的转变。例如,接受能量变化ΔE的状态变量的值的变化的概率(接受概率)A由表达式(5)表示。
[公式5]
Figure BDA0002536742130000053
此处,参数β是温度值T的倒数(逆温度值),并且满足β=1/T。min运算符指示设置了变量的最小值。例如,在使用蒙特卡罗方法的情况下,采样装置10在能量变化ΔE满足关于均匀随机数u(0<u≤1)的表达式(6)的情况下,允许状态变量的值的变化。
[公式6]
Figure BDA0002536742130000061
采样装置10改变允许变化的状态变量的值,并根据状态变量之间的耦合系数更新其他状态变量的局部字段,以便转变状态。
采样装置10包括与多个状态变量对应的多个复本,并且并行地操作上述随机搜索处理。采样装置10使用退火重要性采样(Annealed Importance Sampling,缩写为AIS)或群体退火(Population Annealing,缩写为PA)方法作为用于整合关于多个复本的信息的方法,退火重要性采样是Jarzynski-Neal原理的应用。
关于Jarzynski-Neal的原理可以参考文献1。关于AIS可以参考文献2。关于PA可以参考文献3。
文献1:Jarzynski,C.,“Equilibrium Free Energies from NonequilibriumProcesses”Acta Phys.POL.B,第29(6)卷,第1609页至第1622页,1998
文献2:Neal,R.M.,“Annealed Importance Sampling”Statistics andComputing,第11卷第2期,第125页至第139页,2001
文献3:K.Hukushimaand Y.Iba,“Population annealing and its applicationto a spin glass”AIP Conference Proceedings,第690卷,第200页至第206页,2003
此处,属于单个复本的状态变量的数量被设置为N(N是等于或大于二的整数)。在这种情况下,由外部存储器50保持的耦合系数的总数是N2。此外,包括在采样装置10中的复本的数量设置为K(K是等于或大于二的整数)。此外,复本的状态表示为状态向量{xp k}(k是等于或大于一并且等于或小于K的整数)。注意,状态向量的下标p是等于或大于零的整数,并且指示时间步长。状态向量的上标k指示复本。存在省略下标p和k的情况。状态向量{xp k}由表达式(7)表示(下标t指示转置)。
[公式7]
Figure BDA0002536742130000062
采样装置10对每个复本给出指示复本的权重的分数Sk。假设分数S0 k=1,采样装置10通过使用MCMC方法将复本的状态从随机初始状态x0 k更新为x1 k、x2 k、……。分数Sp k由表达式(8)表示。
[公式8]
Figure BDA0002536742130000071
此处,逆温度βp的初始值为β0=0,并且分数Sp k的初始值为S0 k=1。
在采样装置10在逆温度βp下通过MCMC方式将状态xp k更新预定次数(例如,对于所有状态变量中的每一个,每次试验总共N次)时,假设p=p+1,通过表达式(9)来更新逆温度,并且获得分数sp k。逆温度根据系数α(>1)几何地增加。通过重复上述过程,对每个复本的分数sp k进行更新。
[公式9]
βp=αβp-1(α>1) (9)
采样装置10基于分数sp k执行采样。
采样装置10包括更新电路11a1、11a2、……和11aK、选择电路12、控制电路13和存储器控制电路14。
更新电路11a1至11aK中的每一个对应于伊辛模型的复本,并且执行对每个复本的随机搜索处理。在图1中,示出了更新电路11a1的配置。更新电路11a2至11aK具有与更新电路11a1类似的配置。更新电路11a1包括存储单元111、状态更新单元112和分数更新单元113。例如,更新电路11a1对应于k=1(下标p和k被省略)的复本。此外,作为变化候选的状态变量的索引(或变化候选的索引)被设置为j。
存储单元111存储针对指示能量值的评估函数中包括的多个状态变量(x1至xN)中的作为变化候选的状态变量xj与其他状态变量{xi}的每个集合的耦合系数{Wij}(可以包含Wjj=0)。此外,存储单元111存储多个状态变量的值和与多个状态变量对应的多个局部字段(h1至hN)的值。存储单元111例如由静态随机存取存储器(SRAM)实现。此时的变化候选的索引j是更新电路11a1至11aK共用的单个索引。变化候选的索引j由状态更新单元112等按预定次序(例如,按索引的次序)选择。
状态更新单元112根据表达式(2),基于作为变化候选的状态变量xj的局部字段hj的值,计算能量值的变化值ΔEj。状态更新单元112根据基于设置温度值T、随机值u以及变化值ΔEj的对是否改变状态变量xj的值的判定来改变状态变量的值,并且基于耦合系数{Wij}更新其他状态变量{xi}的局部字段{hi}的值。此处,基于表达式(6)做出判定。此外,例如,在状态变量xj的值改变的情况下,状态更新单元112通过将当前能量值与变化值ΔEj进行合并来计算关于当前状态的能量值。状态更新单元112在特定温度值T下依次改变作为变化候选的状态变量xj,并且重复以更新状态变量、局部字段以及能量值达预定次数(或预定时段)。当温度值T被控制电路13降低时,状态更新单元112进一步重复以在降低的温度下更新状态变量、局部字段和能量值。
分数更新单元113根据关于多个状态变量(x1至xN)的值的能量值E(x)和温度值T(或者逆温度值β=1/T)来更新分数值S。通过表达式(8)获得分数值S。
选择电路12分别从多个更新电路(更新电路11a1至11aK)获取多个分数值(分数值S1至SK)。选择电路12基于分别与更新电路11a1至11aK相对应的分数值S1至SK,选择由小于多个更新电路的数量K的预定数量L(L是等于或大于一且小于K的整数)的更新电路保持的多个状态变量的集合。多个状态变量的值的集合对应于多个状态向量(L个状态向量)。由选择电路12选择的状态向量表示为{xS}。选择电路12输出所选择的多个状态变量的值的集合。
控制电路13控制更新电路11a1至11aK、选择电路12和存储器控制电路14的操作。例如,控制电路13针对更新电路11a1至11aK的设置状态的初始值、偏置值等、局部字段和温度值(或逆温度值)以及分数值。此外,例如,控制电路13向更新电路11a1至11aK和选择电路12提供时钟。注意,温度值可以由控制电路13或每个更新电路的状态更新单元基于表达式(9)来更新。例如,控制电路13针对更新电路11a1至11aK设置温度值。控制电路13逐渐降低要设置的温度值(也可以称为“逐渐增加逆温度值”)。
控制电路13控制由存储器控制电路14从外部存储器50读取与作为变化候选的状态变量xj相对应的耦合系数{Wij},以及将耦合系数{Wij}写入更新电路11a1至11aK中的每一个的存储单元。例如,耦合系数W按照被选择作为变化候选的索引的次序被预先存储在外部存储器50中。控制电路13根据至存储器控制电路14的变化候选的索引j的递增,输出从外部存储器50读取耦合系数{Wij}并且将耦合系数{Wij}写入更新电路11a1至11aK的存储单元的命令。
响应于来自控制电路13的命令,存储器控制电路14按次序(按照变化候选的索引j的选择次序)从外部存储器50读取作为变化候选的状态变量与其他状态变量之间的耦合系数{Wij}(=W1j、W2j……和WNj)。存储器控制电路14将读取的耦合系数{Wij}(=W1j、W2j……和WNj)存储至包括在更新电路11a1至11aK中的每一个中的存储单元。
此处,在使用AIS的情况下,例如,选择电路12在温度值(或逆温度值)达到目标值时选择L个状态向量{xS},并且输出该状态向量{xS}作为采样状态。考虑选择前L个分数值Sk的方法作为由选择电路12选择状态向量的方法。例如,选择电路12(或控制电路13)可以将由选择电路12输出的状态向量{xS}写入外部存储器50或其他存储器。
此外,考虑基于分数值S计算并输出关于由选择电路12选择的L个状态向量{xS}的要观察的状态函数的平均值。在这种情况下,采样装置10还可以包括平均值计算电路,该平均值计算电路基于与预定数量的更新电路相对应的预定数量的分数值计算预定状态函数的平均值。例如,当假设关于复本k的状态函数为Ap k时,平均值<A>由表达式(10)表示。
[公式10]
Figure BDA0002536742130000091
此外,在使用PA的情况下,例如,选择电路12在根据时间步长p(例如,p=0(mod M)(M是等于或大于一的整数)的定时处计算分数值sp k之后,基于该分数值sp k执行被称为重采样的步骤。此处,“p=0(mod M)”指示通过将p除以M获得的余数为零。在重采样步骤中,选择电路12根据表达式(11)中指示的概率选择复本k的状态,并在下一个时间步长中对所选择的状态进行搜索。
[公式11]
Figure BDA0002536742130000092
在这种情况下,通过针对作为K的除数的m(2≤m<K)以表达式(11)中的概率执行K/m次选择,选择电路12在允许交叠的情况下从由更新电路11a1至11aK保持的状态中选择要被接管的状态。通过将所选择的状态存储在更新电路11a1至11aK中的每一个的存储单元中,选择电路12将每个复本的状态更新为要被接管的状态。存储单元中保持的能量值和局部字段的值被更新为与要被每个更新电路或选择电路12接管的状态相对应的值。例如,选择电路12从作为接管源的更新电路的存储单元中读取状态向量以及能量值和每个局部字段的值,并将所读取的值存储在作为接管目的地的更新电路的存储单元中。当重采样完成时,选择电路12将所有复本的分数值SP k重置为一。然后,重新开始由更新电路11a1至11aK进行的搜索。
在PA的情况下,例如,选择电路12在温度值(或逆温度值)达到目标值时,以表达式(11)中指示的概率选择L个状态向量{xS}(可以是L=m),并输出状态向量{xS}作为采样状态。此外,如使用AIS的情况,采样装置10可以包括平均值计算电路,该平均值计算电路根据表达式(10)基于分数值S计算并输出关于由选择电路12选择的L个状态向量{xS}的要观测的状态函数的平均值。
此外,例如,控制电路13可以在温度值(或逆温度值)达到目标值时输出由更新电路11a1至11aK中的每一个获得的多个状态变量的值中的与最低能量值相对应的多个状态变量的值。作为示例,控制电路13可以输出在温度值达到目标值时由选择电路12选择的状态中的与最低能量相对应的多个状态变量的值,作为组合优化问题的解。
在采样装置10中,包括在更新电路11a1至11aK中的每一个中的存储单元至少保持所有耦合系数中与此时的变化候选的索引j相对应的耦合系数{Wij}就足够了。例如,存储单元可以仅保持所有耦合系数中与此时的变化候选的索引j相对应的耦合系数{Wij}。
然后,将在更新电路11a1至11aK中的每一个的存储单元中保持耦合系数所需的容量抑制为最小N个(然而,当排除索引j时为N-1)耦合系数的大小。因此,与N2个耦合系数被保持在更新电路11a1至11aK中的每一个的存储单元的有限容量中的情况相比,可以在不改变耦合系数的位数的情况下(不使问题表达式的精度恶化的情况下)使用更多的状态变量。以这种方式,根据采样装置10,可以改善对可以使用的状态变量的数量(问题规模)的限制。此外,通过使用更新电路11a1至11aK并行执行采样,可以加速采样。
在下文中,将对使用上述AIS和PA的情况下的采样装置的示例性配置进行更具体的描述。首先,例示使用PA的情况。
[第二实施方式]
接下来,将描述第二实施方式。
图2是示出根据第二实施方式的采样装置的示例性电路配置的图。
采样装置20包括复本更新电路21a1、21a2、……和21aK、重采样电路22、平均值计算块23、控制电路24、存储器接口(I/F)宏25以及先入先出(First In,First Out,FIFO)26。采样装置20连接至外部存储器51。采样装置20通过使用半导体集成电路例如FPGA等实现。
外部存储器51例如是DRAM。外部存储器51存储针对伊辛模型中包括的两个状态变量的所有集合的耦合系数。例如,外部存储器51按与变化候选的索引j的出现次序相对应的次序预先存储所有耦合系数W。当状态变量的数量是N时,存储在外部存储器51中的状态变量的数量是N2
复本更新电路21a1至21aK将复本的状态(状态向量)和与该状态相对应的能量值保持在复本更新电路21a1至21aK中的每一个中包括的内部存储器中。K个复本由复本更新电路21a1至21aK实现。此外,复本更新电路21a1至21aK中的每一个将与属于状态向量的状态变量相对应的局部字段保持在内部存储器中。此外,复本更新电路21a1至21aK中的每一个将关于变化候选的索引j的耦合系数{Wij}保持在内部存储器中。复本更新电路21a1至21aK并行地更新多个复本的状态。一次生成的变化候选的单个索引j对于复本更新电路21a1至21aK是共用的。
复本更新电路21a1至21aK是根据第一实施方式的各个更新电路11a1至11aK的示例。复本更新电路21a1至21aK中的每一个可以被称为执行关于复本的操作的算术电路。
重采样电路22基于由复本更新电路21a1至21aK更新的多个分数值sp k(可以简称为分数)来执行重采样。重采样电路22将由通过重采样从复本更新电路21a1至21aK中选择的复本更新电路保持的状态向量输出至复本更新电路21a1至21aK。
平均值计算块23是使用由重采样电路22选择的复本更新电路的分数Sp k通过表达式(11)等计算状态函数的平均值的电路。
控制电路24向复本更新电路21a1至21aK、重采样电路22和平均值计算块23提供时钟信号(clk),并且控制复本更新电路21a1至21aK、重采样电路22和平均值计算块23的操作。控制电路24控制通过存储器I/F宏25从外部存储器51读取耦合系数{Wij}的定时。控制电路24向存储器I/F宏25输出从外部存储器51读取耦合系数{Wij}的请求。控制电路24是根据第一实施方式的控制电路13的示例。
存储器I/F宏25响应于从控制电路24接收的请求向外部存储器51发出存储器控制信号。该存储器控制信号包括用于读取耦合系数{Wij}的命令。存储器I/F宏25响应于存储器控制信号从外部存储器51接收耦合系数{Wij}的数据。
存储器I/F宏25具有用于同步和重新排列来自外部存储器51等的数据的FIFO功能。存储器I/F宏25将接收到的耦合系数{Wij}的数据输出至FIFO 26。此外,存储器I/F宏25将用于将数据传输同步至复本更新电路21a1至21aK的FIFO控制信号输出至FIFO 26。
FIFO 26从存储器I/F宏25接收耦合系数{Wij}的数据。FIFO 26基于来自存储器I/F宏25的FIFO控制信号,将耦合系数{Wij}的数据输出至复本更新电路21a1至21aK的内部存储器(省略图示)。
存储器I/F宏25和FIFO 26的集合是根据第一实施方式的存储器控制电路14的示例。
接下来,将例示复本更新电路21a1的电路配置。复本更新电路21a2至21aK具有与复本更新电路21a1的电路配置类似的电路配置。
图3是示出复本更新电路的示例性电路配置的图。
复本更新电路21a1包括索引生成单元211、更新单元212、能量变化计算单元213、判定单元214和分数计算单元215。索引生成单元211、更新单元212、能量变化计算单元213以及判定单元214的集合是根据第一实施方式的状态更新单元112(或状态更新电路)的示例。例如,包括索引生成单元211、更新单元212、能量变化计算单元213以及判定单元214的电路块可以被称为状态更新单元或状态更新电路。分数计算单元215是根据第一实施方式的分数更新单元113(或分数更新电路)的示例。
索引生成单元211与从控制电路24提供的时钟信号同步地生成变化候选的索引j,并且将索引j提供给更新单元212。例如,索引生成单元211相对于此时的变化候选的索引j将变化候选的下一索引设置为j+1。由于状态变量的总数是N,所以按照j=1至N的次序逐个生成索引。当索引达到j=N时,从j=1生成索引。以这种方式,索引生成单元211顺序地生成作为变化候选的状态变量的索引j。可以说,索引生成单元211选择作为变化候选的下一状态变量。以这种方式,复本更新电路21a1可以控制作为变化候选的状态变量的索引的生成次序。
更新单元212保持从外部存储器51读取的耦合系数{Wij}=W1j、W2j、……和WNj。更新单元212将作为变化候选的状态变量xj的值和与该状态变量xj对应的局部字段hj的值与从控制电路24提供的时钟信号同步地输出至能量变化计算单元213。
能量变化计算单元213基于状态变量xj的值和局部字段hj的值,计算伊辛模型中的能量值的变化值ΔEkj。能量值的下标k指示复本。基于表达式(2)计算变化值ΔEkj,并且满足ΔEkj=-δxjhj=(2xj-1)hj。能量变化计算单元213将计算出的变化值ΔEkj输出至判定单元214。
判定单元214基于变化值ΔEkj、逆温度值βp以及随机值u来判定是否接受状态变量xj的值的变化。基于表达式(6)做出判定。判定单元214将变化候选的索引j和状态变量xj的变化δxj输出至更新单元212。此处,在接受状态变量xj的值的变化的情况下,满足δxj=1-2xj,并且满足δxj=-1或δxj=+1。在不接受状态变量xj的值的变化的情况下,满足δxj=0。
更新单元212基于由判定单元214输出的变化δxj来更新复本的状态。对于索引i≠j,更新单元212基于表达式(4),将局部字段hi更新为hi=hi+δxjWij。在δxj=0的情况下(在xj未反转的情况下),更新前和更新后的局部字段hi相同。
此外,对于索引i=j,更新单元212将状态变量xj更新为xj=xj+δxj。在δxj=0的情况下(在xj未反转的情况下),更新前和更新后的状态变量xj相同。此外,在δxj≠0的情况下,更新单元212将能量值Ek=E(xp k)更新为Ek=Ek+ΔEkj=Ek+(2xj-1)hj。在δxj=0的情况下,能量值Ek不变。
分数计算单元215与从控制电路24提供的时钟信号同步地(例如,对于由更新单元212对j=1至N进行的一个处理周期进行一次)从更新单元212获取能量值Ek,并且更新分数Sk。Sk=Sk(-(βpp-1)Ek)由表达式(8)给出。根据表达式(8),随着能量值Ek较低,分数Sk趋于较大。注意,分数计算单元215将分数Sp-1 k保持在分数计算单元215的内部存储器(省略图示)中。此外,分数计算单元215基于α根据βp计算βp-1,或者将βp-1保持在内部存储器中。
图4是示出判定单元的示例性电路配置的图。
判定单元214包括偏移值生成单元214a、随机数生成单元214b、噪声值生成单元214c、符号反转电路214d、加法器214e和214f、比较器214g以及选择器214h。
偏移值生成单元214a基于由比较器214g输出的标记Fj生成偏移值Eoff(Eoff≥0),并且将所生成的值提供给加法器214e。例如,在从比较器214g输出的标记Fj指示转变是可能(Fj=1)的情况下,偏移值生成单元214a将偏移值Eoff重置为零。在从比较器214g输出的标记Fj指示转变是不可能(Fj=0)的情况下,偏移值生成单元214a将增量ΔEoff加至偏移值Eoff。在标记Fj连续地指示零的情况下,偏移值生成单元214a通过对增量ΔEoff进行合并,使偏移值Eoff增加增量ΔEoff
随机数生成单元214b生成0<u≤1的均匀随机数u,并且将生成的数输出至噪声值生成单元214c。
噪声值生成单元214c保持用于针对从控制电路24提供的均匀随机数u和逆温度值βp生成表达式(6)左侧的值的转换表。噪声值生成单元214c根据转换表基于表达式(6),生成作为噪声值(热噪声)的-ln(u)/βp的值。噪声值生成单元214c将生成的-ln(u)/βp的值输出至加法器214f。
符号反转电路214d将从能量变化计算单元213提供的能量值的变化值ΔEkj的符号反转,并且将反转后的符号提供给加法器214e。
加法器214e将偏移值Eoff加到从符号反转电路214d提供的-ΔEkj,并且将相加值提供给加法器214f。
加法器214f将热噪声-ln(u)/βp加到从加法器214e提供的-ΔEkj+Eoff,并将获得的值提供给比较器214g。
比较器214g基于表达式(6)通过对由加法器214e输出的评估值-ΔEkj+Eoff–ln(u)/βp与阈值(具体地,零)进行比较来做出判定。在评估值等于或大于零的情况下,比较器214g将指示转变是可能的标记(Fj=1)输出至选择器214h和偏移值生成单元214a。在图4中,省略了比较器214g与偏移值生成单元214a之间的关联线的图示。在评估值小于零的情况下,比较器214g将指示转变是不可能的标记(Fj=0)输出至选择器214h和偏移值生成单元214a。
在从比较器214g输出的标记是Fj=1的情况下,选择器214h将δxj=1-2xj输出至更新单元212。此外,在从比较器214g输出的标记是Fj=0的情况下,选择器214h将δxj=0输出至更新单元212。
此处,在从比较器214g输出的标志Fj指示转变是不可能的情况下,认为当前状态是局部解。通过由偏移值生成单元214a将Eoff加到-ΔEkj并逐渐增大Eoff,状态转变容易被允许。在当前状态是局部解的情况下,便于跳出局部解。
图5是示出重采样电路的示例性电路配置的图。
重采样电路22包括选择电路221和存储器222。
选择电路221在p=0(mod M)的定时处获取由复本更新电路21a1至21aK中的每一个的分数计算单元计算出的分数Sk,并且基于由表达式(11)指示的概率Pk执行重采样。选择电路221是根据第一实施方式的选择电路12的示例。
考虑选择电路221根据计算表达式以由表达式(11)指示的概率Pk执行用于下一步骤接管状态的计算。然而,在这种情况下,计算指数函数的权重,并且执行权重归一化计算。存在这种计算需要大的计算量的情况。
因此,选择电路221可以例如通过使用被称为蓄水池(Reservoir)采样的方法来加速重采样。在该方法中,根据在[0-1]内均匀分布的概率变量ri(i=1、……和K)生成的变量log(-log(ri))(log指示自然对数)到在分数SP k的表达式中出现的能量值作为偏移,并且选择从相加之后的较小值起的m个值。此处,如上所述,m指示复本数量K的除数(然而,2≤m<K)。通过执行K/m次选择,确定下一步骤被接管的复本。在示例中,当K=1024时,m=32。
关于蓄水池采样可以参考文献4。
文献4:Pavlos S.Efraimidis,Paul G.Spirakis,“Weighted random samplingwith a reservoir”Information Processing Letters,97,第5期,第181页至第185页,2006
例如,从控制电路24或采样装置20的外部向选择电路221指定每次的选择数量m。选择电路221获取由m个所选择的复本保持的状态向量{xk}并且将状态向量存储在存储器222中。当K/m次选择完成时,选择电路221将累积在存储器222中的K个状态向量{xS}写回至复本更新电路21a1至21aK。在K/m次选择中的每一次中,存在所选择的状态向量交叠的情况。
利用该操作,将复本更新电路21a1至21aK中的每一个的内部存储器(例如更新单元212的存储器212a)所保持的状态向量更新为基于分数Sk而选择的状态向量{xS}。此处,存储器212a例如是SRAM,并且是根据第一实施方式的存储单元111的示例。
注意,选择电路221从作为接管源的复本更新电路获取与更新后的状态向量对应的能量值和与每个状态变量对应的局部字段的值,并且将获取的值存储在作为接管目的地的复本更新电路的内部存储器中,以便更新能量值和局部字段的值。然而,也可以例如通过每个复本更新电路的更新单元(例如更新单元212)来更新与更新后的状态向量对应的能量值和局部字段的值。
当以这种方式完成重采样时,由复本更新电路21a1至21aK中的每一个的分数计算单元215保持的分数Sk被重置为一。
存储器222例如是SRAM,并且是累积由选择电路221选择的状态向量的存储单元。
图6是示出选择电路的示例性电路配置的图。
选择电路221包括随机数生成单元221a、偏移生成单元221b、加法器221c和选择单元221d。
随机数生成单元221a生成K个随机数ri(i=1、……、和K)。随机数生成单元221a将K个随机数ri输出至偏移生成单元221b。
偏移生成单元221b包括用于针对随机数ri生成log(-log(ri))的转换表,并且基于该表将针对K个随机数ri的K个变量log(-log(ri))输出至加法器221c。
加法器221c将从偏移生成单元221b提供的变量log(-log(ri))加到从复本更新电路21a1至21aK中的每一个提供的分数Sk,并且将结果输出至选择单元221d。加法器221c将K个分数Sk和K个变量log(-log(ri))一对一地关联,并且计算分数和变量的总值(总共获得K个总值)。
选择单元221d选择与从加法器221c输出的K个总值中较低的m个值相对应的复本更新电路,并且将由m个复本更新电路中的每一个保持的状态向量累积在存储器222中。选择单元221d执行K/m次允许交叠的选择,以便在存储器222中累积总共K个状态。选择电路221将存储器222中累积的K个状态输出至各个复本更新电路21a1至21aK,并且更新由复本更新电路21a1至21aK保持的状态。
在重采样中,存在下一搜索接管能量相对低的状态的高概率。通过重复重采样,可以在每个温度下生成适当的样本。
接下来,将描述采样装置20的处理过程。
图7是示出采样装置的处理示例的流程图。
(S10)控制电路24根据伊辛模型执行初始化。例如,控制电路24对复本更新电路21a1至21aK中的每一个设置初始状态、局部字段的初始值、初始温度值(或初始逆温度值)、用于改变温度值(或逆温度值)的系数α、偏置值以及初始能量值。控制电路24将对温度更新的次数进行计数的计数器P设置为一。控制电路24从外部接收通过重采样而选择的状态的数量m,并将数量m设置到选择电路221。此外,控制电路24从外部接收在重采样被执行之前的温度更新次数M的设置。
此处,在随后的步骤S11至S19中,聚焦并描述复本更新电路21a1(k=1)。然而,复本更新电路21a2至21aK并行执行类似的处理。
(S11)分数计算单元215更新分数Sp k。基于表达式(8)更新分数Sp k。注意,在步骤S10中的初始化之后,在首先执行步骤S11的情况下,分数计算单元215例如假设β0=0和S0 k=1来计算分数S1 k
(S12)控制电路24判定是否p=0(mod M)。在p=0(mod M)的情况下,处理进行到步骤S13。在p≠0(mod M)的情况下,处理进行至步骤S14。
(S13)选择电路221执行重采样。稍后将详细描述重采样的过程。
(S14)索引生成单元211将索引j设置为j=0。
(S15)索引生成单元211使索引j递增(j=j+1)。更新单元212接收从外部存储器51读取的耦合系数{Wij}=W1j至WNj,并且将耦合系数存储在存储器212a中。更新单元212将状态变量xj的值和局部字段hj的值输出至能量变化计算单元213。
(S16)能量变化计算单元213基于状态变量xj的值和局部字段hj的值,计算能量值的变化值ΔEj。ΔEj基于表达式(2)来计算。能量变化计算单元213将计算出的ΔEj输出至判定单元214。
(S17)判定单元214判定是否接受状态变量xj的更新(位翻转)。在接受更新的情况下,处理进行至步骤S18。在不接受更新的情况下,处理进行至步骤S19。
(S18)关于索引i(i≠j),更新单元212基于由存储器212a保持的耦合系数Wij,更新由存储器212a保持的局部字段hi。更新单元212改变(位翻转)在存储在存储器212a中的状态下的状态变量xj的值。此外,更新单元212更新存储在存储器212a中的能量值E。
(S19)索引生成单元211判定是否j=N。在j=N的情况下,处理进行至步骤S20。在j≠N的情况下,处理进行至步骤S15。
(S20)控制电路24对提供给复本更新电路21a1至21aK的温度值(或逆温度值)进行更新(温度更新)。基于表达式(9)执行温度更新。控制电路24使p递增(p=p+1)。
(S21)控制电路24判定温度值是否达到目标温度。在温度值达到目标温度的情况下,处理进行至步骤S22。在温度值未达到目标温度的情况下,处理进行至步骤S11。注意,控制电路24可以判定逆温度值是否达到目标逆温度,并且在逆温度值达到目标逆温度的情况下,执行使处理进行至步骤S22的控制,并且在逆温度值未达到目标逆温度的情况下,执行使处理进行至步骤S11的控制。
(S22)控制电路24获取由复本更新电路21a1至21aK所保持的状态中具有最低能量的状态,并输出所获取的具有最低能量的状态。然后,处理结束。
注意,在步骤S22中,控制电路24可以输出由重采样电路22选择的状态(例如,m个状态)和由平均值计算块23通过使用与选择的状态对应的分数计算的预定状态函数的平均值。
此外,代替步骤S15中按预定次序选择索引的方法,考虑选择移动的索引(例如,选择索引并将索引添加到成对的两个状态变量)。在这种情况下,更新单元212通过按预定次序选择移动的索引来确定作为变化候选的下一状态变量。
接下来,将描述重采样的过程。
图8是示出重采样的示例的流程图。
重采样的处理对应于步骤S13。
(S30)选择电路221将计数器C设置为C=1。
(S31)选择电路221从复本更新电路21a1至21aK中的每一个获取分数Sk。选择电路221基于分数Sk从由复本更新电路21a1至21aK保持的K个状态中选择m个状态。
(S32)选择电路221将选择的状态累积在存储器222中。
(S33)选择电路221使计数器C递增(C=C+1)。
(S34)选择电路221判定是否C=K/m。在C=K/m的情况下,处理进行至步骤S35。在C=K/m的情况下,处理进行至步骤S31。
(S35)选择电路221将存储器222中累积的K个状态写入复本更新电路21a1至21aK。将由每个复本更新电路保持的能量值和局部字段的值更新为与更新后的状态(可以通过每个复本更新电路或选择电路221更新)相对应的值。
(S36)选择电路221将由复本更新电路21a1至21aK中的每一个的分数计算单元所保持的分数Sk重置为一。然后,重采样的处理结束。
以这种方式,根据在第一温度值下基于多个分数值所选择的多个状态变量的值的集合(状态向量的集合),选择电路221更新存储在复本更新电路21a1至21aK中的每一个中包括的存储器(存储单元)中的多个状态变量的值。在比第一温度值低的第二温度值下,包括在复本更新电路21a1至21aK中的每一个中的更新单元使用由选择电路221更新的多个状态变量的值作为起点来改变状态变量的值。例如,选择电路221以基于表达式(11)的分数值相对于多个分数值的和的比率(概率Pk),选择由与该分数值相对应的复本更新电路保持的多个状态变量的值。以这种方式,通过根据每个复本的分数选择下一温度步骤要被接管的状态,可以适当地生成根据目标分布(玻尔兹曼分布)具有相对低的能量的状态作为样本。
在采样装置20中,包括在复本更新电路21a1至21aK中的每一个中的存储器至少保持所有耦合系数中与此时的变化候选的索引j相对应的耦合系数{Wij}就足够了。例如,存储器可以仅保持所有耦合系数中与此时的变化候选的索引j相对应的耦合系数{Wij}。
然后,将在复本更新电路21a1至21aK中的每一个的存储器中保持耦合系数所需的容量抑制为最小N个(然而,在排除索引j的情况下为N-1)耦合系数的大小。因此,与N2个耦合系数被保持在复本更新电路21a1至21aK中的每一个的内置存储器的有限容量中的情况相比,可以使用更多的状态变量。以这种方式,根据采样装置20,可以改善对可以使用的状态变量的数量(问题规模)的限制。
[第三实施方式]
接下来,将描述第三实施方式。将主要描述与上述第二实施方式不同的事项,并且将省略对共同事项的描述。
在第三实施方式中,将描述使用AIS的采样装置的示例。
图9是示出根据第三实施方式的采样装置的示例性电路配置的图。
采样装置20a包括复本更新电路21a1、21a2、……和21aK、平均值计算块23、控制电路24、存储器I/F宏25、FIFO 26和分数次序选择电路27。采样装置20a与采样装置20的不同之处在于包括分数次序选择电路27而不是重采样电路22。采样装置20a通过使用半导体集成电路例如FPGA等来实现。
由于复本更新电路21a1、21a2、……和21aK、平均值计算块23、控制电路24、存储器I/F宏25和FIFO 26的功能类似于第二实施方式中具有相同名称的部件的功能,因此将省略其描述。然而,控制电路24控制分数次序选择电路27而不是重采样电路22的操作。此外,平均值计算块23通过使用与由分数次序选择电路27选择的状态相对应的分数来计算状态函数的平均值。
当温度值(或逆温度值)达到目标值时,分数次序选择电路27获取由复本更新电路21a1至21aK中的每一个更新的分数Sk。分数次序选择电路27基于分数Sk从由复本更新电路21a1至21aK保持的状态中选择m个状态,并输出所选择的m个状态。
图10是示出分数次序选择电路的示例性电路配置的图。
分数次序选择电路27包括选择电路271和存储器272。
选择电路271获取由复本更新电路21a1至21aK中的每一个的分数计算单元计算出的分数Sk。选择电路271选择与分数Sk的前m个复本相对应的m个状态{xS},并且将所选择的状态存储在存储器272中。选择电路271输出所选择的m个状态{xS}。选择电路271是根据第一实施方式的选择电路12的示例。
存储器272是保持由选择电路271选择的状态xS的存储单元。
图11是示出选择电路的示例性电路配置的图。
选择电路271包括选择单元271a。
选择单元271a选择与K个分数Sk中的前m个分数对应的复本更新电路并且输出由m个复本更新电路中的每一个保持的状态向量。输出目的地可以是存储器272、平均值计算块23的内部存储器或外部存储器51。
接下来,将描述采样装置20a的处理过程。
图12是示出采样装置的处理示例的流程图。
(S40)控制电路24根据伊辛模型执行初始化。例如,控制电路24对复本更新电路21a1至21aK中的每一个设置初始状态、局部字段的初始值、初始温度值(或初始逆温度值)、用于改变温度值(或逆温度值)的系数α、偏置值以及初始能量值。控制电路24将对温度更新的次数进行计数的计数器P设置为一。控制电路24从外部接收在温度达到目标温度时选择的状态的数量m,并且将所接收的数量设置到选择电路271。
此处,在随后的步骤S41至S47中,聚焦并描述复本更新电路21a1(k=1)。然而,复本更新电路21a2至21aK并行执行类似的处理。
(S41)分数计算单元215更新分数Sp k。基于表达式(8)更新分数Sp k。注意,在步骤S40中的初始化之后,在首先执行步骤S41的情况下,分数计算单元215例如假设β0=0和S0 k=1来计算分数S1 k
(S42)索引生成单元211将索引j设置为j=0。
(S43)索引生成单元211使索引j递增(j=j+1)。更新单元212接收从外部存储器51读取的耦合系数{Wij}=W1j至WNj,并且将耦合系数存储在存储器212a中。更新单元212将状态变量xj的值和局部字段hj的值输出至能量变化计算单元213。
(S44)能量变化计算单元213基于状态变量xj的值和局部字段hj的值,计算能量值的变化值ΔEj。ΔEj基于表达式(2)来计算。能量变化计算单元213将计算出的ΔEj输出至判定单元214。
(S45)判定单元214判定是否接受状态变量xj的更新(位翻转)。在接受更新的情况下,处理进行至步骤S46。在不接受更新的情况下,处理进行至步骤S47。
(S46)关于索引i(i≠j),更新单元212基于由存储器212a保持的耦合系数Wij,更新由存储器212a保持的局部字段hi。更新单元212改变(位翻转)在存储在存储器212a中的状态下的状态变量xj的值。此外,更新单元212更新存储在存储器212a中的能量值E。
(S47)索引生成单元211判定是否j=N,在j=N的情况下,处理进行至步骤S48。在j≠N的情况下,处理进行至步骤S43。
(S48)控制电路24对提供给复本更新电路21a1至21aK的温度值(或逆温度值)进行更新(温度更新)。控制电路24使p递增(p=p+1)。
(S49)控制电路24判定温度值是否达到目标温度。在温度值达到目标温度的情况下,处理进行至步骤S50。在温度值未达到目标温度的情况下,处理进行至步骤S41。注意,控制电路24可以判定逆温度值是否达到目标逆温度,并且在逆温度值达到目标逆温度的情况下,执行使处理进行至步骤S50的控制,并且在逆温度值未达到目标逆温度的情况下,执行使处理进行至步骤S41的控制。
(S50)分数次序选择电路27的选择电路271获取由复本更新电路21a1至21aK更新的K个分数Sk。选择电路271选择与K个分数Sk中的前m个分数对应的复本更新电路并且输出由m个复本更新电路中的每一个保持的m个状态向量。此外,例如,选择电路271输出前m个分数Sk。平均值计算块23基于由选择电路271输出的m个分数,通过表达式(10)计算状态函数的平均值A,并且将计算的值与m个状态向量一起输出。
以这种方式,当温度值达到目标值时,选择电路271基于多个分数值来选择由预定数量的复本更新电路保持的多个状态变量的值的集合。在采样装置20a的情况下,样本的变化与采样装置20的变化相比较大。然而,采样装置20a具有使得电路配置被简化的优点,并且不会发生由重采样引起的开销。
注意,在步骤S50中,控制电路24可以输出由副本更新电路21a1至21aK中的每一个获得的状态向量中的与最低能量值相对应的状态向量。例如,控制电路24可以输出由分数次序选择电路27输出的m个状态向量中的与最低能量值相对应的状态向量。利用该操作,采样装置20a可以用于解决组合优化问题。
在采样装置20a中,包括在复本更新电路21a1至21aK中的每一个中的存储器至少保持所有耦合系数中与此时的变化候选的索引j相对应的耦合系数{Wij}就足够了。例如,存储器可以仅保持所有耦合系数中与此时的变化候选的索引j相对应的耦合系数{Wij}。
然后,将在复本更新电路21a1至21aK中的每一个的存储器中保持耦合系数所需的容量抑制为最小N个(然而,在排除索引j的情况下为N-1)耦合系数的大小。因此,与N2个耦合系数被保持在复本更新电路21a1至21aK中的每一个的内置存储器的有限容量中的情况相比,可以使用更多的状态变量。以这种方式,根据采样装置20a,可以改善对可以使用的状态变量的数量(问题规模)的限制。
[第四实施方式]
接下来,将描述第四实施方式。将主要描述与上述第二实施方式和第三实施方式不同的事项,并且将省略对共同事项的描述。
当状态变量xj改变(位翻转)时,通过使用变化δxj=1-2xj,将更新后的局部字段hi计算为hi=hi+δxjWij。因此,划分的局部字段被划分并保持在多个芯片中,并且控制电路向每个芯片广播δxj的值(0、+1或-1中的任何一个),使得局部字段可以被局部地更新,并且芯片的数量可以增加。
图13是示出状态变量的划分示例的图。
N个状态变量(以及与状态变量相对应的局部字段)被划分成多个组(例如,组61和组62),并且多个组被分别安装在多个组的不同芯片上。更新局部字段的加法操作可以由每个芯片并行执行。
例如,第一存储单元和第一状态更新单元安装在第一芯片上,并且第二存储单元和第二状态更新单元安装在第二芯片上。在图13中的示例的情况下,例如,组61对应于第一芯片。组62对应于第二芯片。
第一存储单元存储针对与组61对应的第一部分的状态变量和作为变化候选的状态变量的集合的耦合系数。第一状态更新单元更新第一部分的状态变量的值和与第一部分的状态变量相对应的局部字段的值。
第二存储单元存储针对与组62对应的第二部分的状态变量和作为变化候选的状态变量的集合的耦合系数。第二状态更新单元更新第二部分的状态变量的值和与第二部分的状态变量相对应的局部字段的值。
组的数量(例如,芯片的数目)可以等于或大于二。
图14是示出根据第四实施方式的采样装置的示例性电路配置的图。
在图14中,示出了N个状态变量被划分成R(R是等于或大于二的整数)个组的示例。属于单个组的状态变量的数量是N/R=m。在这种情况下,使用一个或多个外部存储器。在图14中,示出了R个外部存储器51a1至51aR。外部存储器51a1至51aR例如是DRAM。对于外部存储器51a1至51aR中的每一个,被划分为R个组的耦合系数被分别地存储。
采样装置30包括芯片30a1、30a2、……和30aR和控制电路31。芯片30a1至30aR分别连接至外部存储器51a1至51aR。在以下描述中,聚焦并描述芯片30a1。然而,芯片30a2至30aR具有类似的配置。
芯片30a1包括复本更新电路31a1至31aK、存储器I/F宏311、FIFO312和分配电路313。
复本更新电路31a1至31aK分别负责更新m个状态变量x1 1至xm 1以及m个局部字段h1 1至hm 1。复本更新电路31a1至31aK中的每一个仅将针对作为变化候选的状态变量的索引j的耦合系数Wij=W1j至WNj中的W1j至Wmj保持在复本更新电路31a1至31aK中的每一个的内部存储器(省略图示)中就足够了。在这种情况下,例如,外部存储器51a1保持mN个耦合系数W1i至Wmi(i=1至N)。
在芯片30a1之外的芯片负责要改变的状态变量xj k的情况下,由另一芯片的第k个复本更新电路计算的变化δxj k经由控制电路31被提供给芯片30a1的第k个复本更新电路。第k个复本由安装在芯片30a1至30aR上的R个复本更新电路(第k个复本更新电路)实现。
存储器I/F宏311响应于来自控制电路31的命令,读取存储在外部存储器51a1中的耦合系数W1i至Wmi(i=1至N)中与此时的变化候选的索引j相对应的耦合系数W1j至Wmj,并且将所读取的耦合系数输出至FIFO 312。存储器I/F宏311执行从外部存储器51a1输出的数据的诸如同步和重新排列的处理。
FIFO 312与数据传输同步地将从存储器I/F宏311提供的耦合系数W1j至Wmj输出至分配电路313。
分配电路313将从FIFO 312提供的耦合系数W1j至Wmj存储在复本更新电路31a1至31aK的内部存储器中。
控制电路31具有第二实施方式和第三实施方式中指示的控制电路24的功能。此外,控制电路31获取针对由特定芯片确定的复本k的索引j的δxj k,并将所获取的值发送至另一芯片的复本k的复本更新电路。此外,控制电路31合并由每个芯片的复本k的复本更新电路保持的状态变量的值,并且创建复本k的状态向量。
此外,尽管在图14中没有示出,但是采样装置30包括计算每个复本的分数的分数计算电路以及计算每个复本的能量的能量计算电路,并且包括与重采样电路22或分数次序选择电路27对应的电路。针对由控制电路31合并的每个复本的状态向量,计算每个复本的分数。
此外,控制电路31控制用于将伴随重采样的状态向量写入复本更新电路的处理。例如,在通过重采样选择的状态向量被反映到复本k的情况下,控制电路31将属于状态向量的N个状态变量划分成R个组,并且将划分的组写入到每个芯片的第k个复本更新电路。此时,控制电路31更新每个状态变量的局部字段和复本的能量值。
以这种方式,通过由多个芯片(例如,芯片30a1至30aR)实现采样装置30的K个复本,可以进一步减少在单个复本更新电路的内部存储器(存储单元)中保持耦合系数所需的容量。因此,可以使用更多的状态变量,并且可以改善对状态变量的数量的限制。
顺便提及,现有的信息处理装置(例如,日本公开特许公报第2018-41351号)基于当状态变量(位)被反转时的能量增量,通过并行试验确定要反转的状态变量。因此,尽管可以获得高速度,但是要反转的位是以不可预测的形式(大体上随机)生成的。因此,为了根据反转位更新局部字段,对保持局部字段的值的存储器进行随机访问。为了高速地操作信息处理装置,需要在芯片上安装随机存取存储器,并且在存储器中累积所有的耦合系数。因此,出现了以下问题:可以使用的变量的数量(对应于问题大小)取决于该存储器容量而被限制。
另一方面,为了在保持作为高速来源的并行性的同时改善由于片上存储器容量而引起的对问题大小的限制,需要有效的并行化方法来代替并行试验。
因此,在采样装置10、20、20a和30中,采用并行地操作随机搜索处理(复本)并整合多个复本的信息的方法作为并行化方法。使用作为Jarzynski-Neal原理的应用的AIP或PA作为整合多个复本的信息的方法。
在采样装置10、20、20a和30中,如所指示的,执行按索引次序的试验。通过对芯片外部的存储器(外部存储器)的串行访问来读取耦合系数。耦合系数的一行通过串行访问读取并且由芯片上的多个复本共同使用,以及执行试验。逐渐降低复本的温度值,并且根据基于复本的能量和温度值确定的分数来选择输出目标状态。例如,在采样装置10、20和30中,可以确定下一温度值被接管的复本的状态。
根据采样装置10、20、20a和30,在保持试验的并行性并且执行加速的同时,可以改善由于片上存储器容量而导致的对问题大小的限制。

Claims (10)

1.一种采样装置,包括:
多个更新电路,其包括:
存储单元,其存储针对指示能量值的评估函数中包括的多个状态变量中的作为变化候选的状态变量和另一状态变量的每个集合的耦合系数、所述多个状态变量的值以及与所述多个状态变量相对应的多个局部字段的值,
状态更新单元,其基于作为变化候选的状态变量的局部字段的值计算所述能量值的变化值,根据取决于设置的温度值和随机值以及所述变化值的对所述状态变量的值是否改变的判定来改变所述状态变量的值,以及基于所述耦合系数来更新其他状态变量的局部字段的值,以及
分数更新单元,其根据关于所述多个状态变量的值的所述能量值和所述温度值来更新分数值;以及
选择电路,其被配置成基于与所述多个更新电路相对应的多个分数值选择由比所述多个更新电路的数量少的预定数量的更新电路保持的所述多个状态变量的值的集合,并且输出所选择的所述多个状态变量的值的集合。
2.根据权利要求1所述的采样装置,其中,
在第一温度值下,所述选择电路根据基于所述多个分数值选择的所述多个状态变量的值的集合来更新存储在所述多个更新电路中的每一个中包括的所述存储单元中的所述多个状态变量的值,以及
在低于所述第一温度值的第二温度值下,所述多个更新电路中的每一个中包括的所述状态更新单元使用由所述选择电路更新的所述多个状态变量的值作为起点来改变所述状态变量的值。
3.根据权利要求2所述的采样装置,其中,
所述选择电路以分数值相对于所述多个分数值之和的比率,选择由与所述分数值相对应的更新电路保持的所述多个状态变量的值。
4.根据权利要求1所述的采样装置,其中,
当所述温度值达到目标值时,所述选择电路基于所述多个分数值来选择所述多个状态变量的值的集合。
5.根据权利要求1至4中任一项所述的采样装置,还包括:
存储器控制电路,其被配置成按照作为变化候选的状态变量的选择次序,从存储针对所述多个状态变量中的两个状态变量的所有集合的耦合系数的存储器读取作为变化候选的状态变量与所述其他状态变量之间的耦合系数,并且
将所读取的耦合系数存储在所述多个更新电路中的每一个中包括的所述存储单元中。
6.根据权利要求1至5中任一项所述的采样装置,还包括:
平均值计算电路,其被配置成基于与所述预定数量的更新电路相对应的预定数量的分数值来计算预定状态函数的平均值。
7.根据权利要求1至6中任一项所述的采样装置,还包括:
控制电路,其被配置成将所述温度值设置到所述多个更新电路,并且逐渐地降低所述温度值。
8.根据权利要求1至7中任一项所述的采样装置,还包括:
控制电路,其被配置成当所述温度值达到目标值时,输出由所述多个更新电路中的每一个获得的所述多个状态变量中与最低能量值相对应的所述多个状态变量的值。
9.根据权利要求1至8中任一项所述的采样装置,其中,
所述存储单元包括第一存储单元和第二存储单元,所述第一存储单元存储关于所述多个状态变量中的第一部分的状态变量和作为变化候选的状态变量的集合的耦合系数,所述第二存储单元存储关于所述多个状态变量中的第二部分的状态变量和作为变化候选的状态变量的集合的耦合系数,以及
所述状态更新单元包括第一状态更新单元和第二状态更新单元,所述第一状态更新单元更新所述第一部分的状态变量的值和与所述第一部分的状态变量相对应的局部字段的值,所述第二状态更新单元更新所述第二部分的状态变量的值和与所述第二部分的状态变量相对应的局部字段的值,
所述采样装置还包括:
第一芯片,其包括所述第一存储单元和所述第一状态更新单元;以及
第二芯片,其包括所述第二存储单元和所述第二状态更新单元。
10.一种采样方法,包括:
基于指示能量值的评估函数中包括的多个状态变量中的作为变化候选的状态变量的局部字段的值来计算所述能量值的变化值,
根据取决于设置的温度值和随机值以及所述变化值的对所述状态变量的值是否改变的判定来改变所述状态变量的值,以及
由多个更新电路中的每一个中包括的状态更新单元基于存储在存储单元中的针对作为变化候选的状态变量和其他状态变量的每个集合的耦合系数,更新所述其他状态变量的局部字段的值;
由所述多个更新电路中的每一个中包括的分数更新单元根据关于所述多个状态变量的值的所述能量值和所述温度值来更新分数值;以及
由选择电路基于与所述多个更新电路相对应的多个分数值选择由比所述多个更新电路的数量少的预定数量的更新电路保持的所述多个状态变量的值的集合,并且输出所选择的所述多个状态变量的值的集合。
CN202010535178.1A 2019-06-18 2020-06-12 采样装置和采样方法 Pending CN112101512A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2019112548A JP7239826B2 (ja) 2019-06-18 2019-06-18 サンプリング装置およびサンプリング方法
JP2019-112548 2019-06-18

Publications (1)

Publication Number Publication Date
CN112101512A true CN112101512A (zh) 2020-12-18

Family

ID=70968766

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010535178.1A Pending CN112101512A (zh) 2019-06-18 2020-06-12 采样装置和采样方法

Country Status (4)

Country Link
US (1) US20200401738A1 (zh)
EP (1) EP3754556A1 (zh)
JP (1) JP7239826B2 (zh)
CN (1) CN112101512A (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112734042B (zh) * 2020-12-30 2022-11-15 山东浪潮科学研究院有限公司 一种量子计算机多比特计算能力的标定方法及设备、介质
US11816030B2 (en) * 2022-01-24 2023-11-14 Macronix International Co., Ltd. Memory device and operating method thereof
JP2023122981A (ja) * 2022-02-24 2023-09-05 富士通株式会社 プログラム、データ処理装置及びデータ処理方法
JP2023149806A (ja) 2022-03-31 2023-10-16 富士通株式会社 情報処理装置、情報処理方法およびプログラム
JP2024062514A (ja) * 2022-10-25 2024-05-10 富士通株式会社 データ処理装置、データ処理方法およびプログラム
JP2024077351A (ja) * 2022-11-28 2024-06-07 富士通株式会社 データ処理装置、プログラム及びデータ処理方法

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0934951A (ja) * 1995-07-20 1997-02-07 Nec Corp 組合せ最適化方法
CN104395853A (zh) * 2012-07-18 2015-03-04 旭化成微电子株式会社 信息处理装置、信息处理方法以及信息处理程序
US20180075342A1 (en) * 2016-09-09 2018-03-15 Fujitsu Limited Information processing apparatus, ising unit, and information processing apparatus control method
US20180300287A1 (en) * 2015-06-09 2018-10-18 Hitachi, Ltd. Information processing device and control method therefor
US20190012410A1 (en) * 2017-07-06 2019-01-10 Fujitsu Limited Optimization apparatus and method of controlling optimization apparatus
US20190012409A1 (en) * 2017-07-05 2019-01-10 Fujitsu Limited Optimization apparatus and method of controlling the same
US20190130295A1 (en) * 2017-10-30 2019-05-02 Hitachi, Ltd. Information Processing Apparatus and Information Processing Method

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007270659A (ja) * 2006-03-30 2007-10-18 Toho Gas Co Ltd コジェネレーションシステムの最適化方法および設備提案システム
JP5901712B2 (ja) 2014-08-29 2016-04-13 株式会社日立製作所 半導体装置および情報処理装置
JP5865457B1 (ja) 2014-08-29 2016-02-17 株式会社日立製作所 情報処理システム及び管理装置
JP6468247B2 (ja) * 2016-06-06 2019-02-13 富士通株式会社 イジング装置及びイジング装置の制御方法
JP6803026B2 (ja) * 2017-06-23 2020-12-23 日本電信電話株式会社 結合振動子系の計算装置、プログラム及び方法
JP6465223B1 (ja) * 2018-02-01 2019-02-06 富士通株式会社 最適化装置及び最適化装置の制御方法
JP6465231B1 (ja) * 2018-03-12 2019-02-06 富士通株式会社 最適化装置及び最適化装置の制御方法
EP3852029B1 (en) * 2018-09-13 2024-09-18 Fujitsu Limited Optimization device and control method of optimization device

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0934951A (ja) * 1995-07-20 1997-02-07 Nec Corp 組合せ最適化方法
CN104395853A (zh) * 2012-07-18 2015-03-04 旭化成微电子株式会社 信息处理装置、信息处理方法以及信息处理程序
US20180300287A1 (en) * 2015-06-09 2018-10-18 Hitachi, Ltd. Information processing device and control method therefor
US20180075342A1 (en) * 2016-09-09 2018-03-15 Fujitsu Limited Information processing apparatus, ising unit, and information processing apparatus control method
US20190012409A1 (en) * 2017-07-05 2019-01-10 Fujitsu Limited Optimization apparatus and method of controlling the same
US20190012410A1 (en) * 2017-07-06 2019-01-10 Fujitsu Limited Optimization apparatus and method of controlling optimization apparatus
US20190130295A1 (en) * 2017-10-30 2019-05-02 Hitachi, Ltd. Information Processing Apparatus and Information Processing Method

Also Published As

Publication number Publication date
EP3754556A1 (en) 2020-12-23
US20200401738A1 (en) 2020-12-24
JP7239826B2 (ja) 2023-03-15
EP3754556A8 (en) 2021-02-24
JP2020204929A (ja) 2020-12-24

Similar Documents

Publication Publication Date Title
CN112101512A (zh) 采样装置和采样方法
US10846611B2 (en) Data processing
US11704570B2 (en) Learning device, learning system, and learning method
US12106019B2 (en) Optimization device and optimization method
JP7193708B2 (ja) 最適化装置及び最適化装置の制御方法
US11244026B2 (en) Optimization problem arithmetic method and optimization problem arithmetic device
CN112434398A (zh) 组合优化设备、组合优化方法以及计算机可读记录介质
US20210158212A1 (en) Learning method and learning apparatus
EP3905073A1 (en) Information processing apparatus, information processing method, and program
WO2020054024A1 (ja) 最適化装置及び最適化装置の制御方法
US11409836B2 (en) Optimization problem arithmetic method and optimization problem arithmetic apparatus
US20210012240A1 (en) Learning device and learning method
US20200089475A1 (en) Optimization problem arithmetic method and optimization problem arithmetic apparatus
US20210406422A1 (en) Information processing system, information processing apparatus, and non-transitory computer-readable storage medium
US11886780B2 (en) Optimization device, optimization device control method, and computer-readable recording medium recording optimization device control program
EP4148628A1 (en) Data processing apparatus, data processing method, and data processing program
JP2021184148A (ja) 最適化装置、最適化方法、および最適化プログラム
EP4375831A1 (en) Data processing apparatus, program, and data processing method
CN113283609A (zh) 信息处理方法、信息处理设备和信息处理程序
US20230350972A1 (en) Information processing apparatus and information processing method
JP7470019B2 (ja) 情報処理システム
EP4075345A1 (en) Information processing system, information processing method, and information processing program
EP4361898A2 (en) Data processing device, data processing method, and data processing program
CN117786275A (zh) 数据处理装置和数据处理方法
CN117193709A (zh) 信息处理设备、信息处理方法和存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination