CN111008696A - 优化装置和控制优化装置的方法 - Google Patents

优化装置和控制优化装置的方法 Download PDF

Info

Publication number
CN111008696A
CN111008696A CN201910934026.6A CN201910934026A CN111008696A CN 111008696 A CN111008696 A CN 111008696A CN 201910934026 A CN201910934026 A CN 201910934026A CN 111008696 A CN111008696 A CN 111008696A
Authority
CN
China
Prior art keywords
circuit
arithmetic processing
stage
selection
bits
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.)
Granted
Application number
CN201910934026.6A
Other languages
English (en)
Other versions
CN111008696B (zh
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 CN111008696A publication Critical patent/CN111008696A/zh
Application granted granted Critical
Publication of CN111008696B publication Critical patent/CN111008696B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/11Complex mathematical operations for solving equations, e.g. nonlinear equations, general mathematical optimization problems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/57Arithmetic logic units [ALU], i.e. arrangements or devices for performing two or more of the operations covered by groups G06F7/483 – G06F7/556 or for performing logical operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • 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/044Recurrent networks, e.g. Hopfield networks
    • 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/045Combinations of networks
    • 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
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • 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
    • G06N10/00Quantum computing, i.e. information processing based on quantum-mechanical phenomena

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biophysics (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Computational Linguistics (AREA)
  • Molecular Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Neurology (AREA)
  • Databases & Information Systems (AREA)
  • Algebra (AREA)
  • Operations Research (AREA)
  • Probability & Statistics with Applications (AREA)
  • Complex Calculations (AREA)
  • Advance Control (AREA)

Abstract

涉及优化装置和控制优化装置的方法。优化装置包括环形连接的M级运算处理电路,每级运算处理电路包括:确定电路,基于Ising模型的信息对每个第一位确定是否允许更新;第一选择电路,基于确定电路结果从被允许更新的更新许可位选择一更新候选位并输出其识别信息;计数电路,计数更新许可位数量;状态更新电路,基于最后级运算处理电路提供给最前级的识别信息更新任一第二位的值,除最前级运算处理电路之外每级运算处理电路包括第二选择电路,第二选择电路以更新许可位数量除以其与前级运算处理电路提供的数量之和获得的第一概率选择第一选择电路输出的第一识别信息并以1减第一概率获得的第二概率选择前级运算处理电路提供的第二识别信息。

Description

优化装置和控制优化装置的方法
技术领域
本文所描述的实施方式涉及优化装置和控制该优化装置的方法。
背景技术
在相关领域中,存在如下一种方法,其通过利用Ising型能量函数的优化装置(也称为Ising机或Boltzmann机)来计算在其中Neumann式计算机为无效的多变量优化问题。优化装置用表示磁性物质的自旋行为的Ising模型代替待计算的问题,并计算该问题。
优化装置可以使用例如神经网络为该问题建模。在这种情况下,与Ising模型中所包括的所有自旋相对应的多个位中的每一个位用作为神经元,该神经元基于另一个位的值以及指示其自身位和所述另一个位之间的相互作用的大小的权重因数(也称作耦合因数)输出0或1。例如,优化装置使用诸如模拟退火法(simulated annealing)的随机搜索方法来获得可以得到Ising模型的能量函数值(在下文中,称为能量)的最小值的各个位的值的组合来作为解。
在相关领域中,存在利用数字电路执行模拟退火法计算出使能量最小化的各个位的值的组合的优化装置。在相关领域的优化装置中,状态的更新以如下的方式进行重复:在Ising模型的所有位中,每次更新将一个位当成目标。
由于Ising模型中的位的数量随优化问题的规模的增大而增加,因此权重因数的数量也增加。当考虑所有位之间的相互作用时,权重因数的数量是位的数量的平方。
相关技术已经在例如日本公开特许公报第2017-219948号和日本公开特许公报第09-319721号中公开。
为了应对位的数量的增加,存在通过在多个运算处理单元(比如,分别为单芯片半导体集成电路)中分配和保存权重因数并使得每个运算处理单元针对所有位的一部分执行运算操作以增加优化装置的规模的方法。然而,由于多个运算处理单元中的每一个运算处理单元并不独立地执行从所有位中选择一个更新目标位的过程,因此在使用多个运算处理单元时适当地选择一个更新目标位并不容易。因此,一般来说,使用多个运算处理单元很难实现大规模的优化装置。
因此,本实施方式的一方面的目的是提供大规模的优化装置和控制大规模优化装置的方法。
发明内容
根据实施方式的一方面,一种优化装置包括以环形连接的M(M是2或者大于2的整数)级运算处理电路,其中,M级运算处理电路的每级运算处理电路包括:确定电路,其基于Ising模型的信息针对第一位中每个第一位确定是否允许更新,第一位的数量是通过将与Ising模型的所有自旋相对应的第二位的数量除以M获得的,Ising模型是通过转换优化问题获得的;第一选择电路,其基于确定电路的确定结果从被允许更新的更新许可位中选择一个更新候选位,并输出该更新候选位的识别信息;计数电路,其计数更新许可位的数量;以及状态更新电路,其基于从M级运算处理电路的最后级运算处理电路提供给M级运算处理电路的最前级运算处理电路的识别信息来更新第二位中任何一个第二位的值,其中,M级运算处理电路中除最前级运算处理电路之外的每级运算处理电路包括第二选择电路,第二选择电路以第一概率选择从第一选择电路输出的第一识别信息——该第一概率是通过将更新许可位的数量除以更新许可位的数量与从前级运算处理电路提供的数量之和而获得的,并且以第二概率选择从前级运算处理电路提供的第二识别信息——该第二概率是通过从1中减去第一概率获得的,其中,最后级运算处理电路的第二选择电路向最前级运算处理电路提供所选择的识别信息,其中,除最后级运算处理电路的第二选择电路之外的每个第二选择电路向后级运算处理电路提供所选择的识别信息。
根据本实施方式,可以提供大规模的优化装置和控制该大规模优化装置的方法。
附图说明
图1是示出了根据第一实施方式的优化装置的示例的视图。
图2是示出了根据第一实施方式的优化装置的比较例的优化装置的视图。
图3是示出了根据第二实施方式的优化装置的示例的视图。
图4是示出了核的内部配置的示例的视图。
图5是示出了确定单元的电路的示例的视图。
图6是示出了在核中的选择更新候选位的选择单元的示例的视图。
图7是示出了选择自身核的更新候选位的索引和前级核的更新候选位的索引之一的选择单元的示例的视图;以及
图8是示出了由控制器控制优化装置的示例的流程的流程图。
具体实施方式
在下文中,将参考附图描述本公开内容的实施方式。
下面描述的优化装置在与通过转换要计算的优化问题而获得的Ising模型的所有自旋相对应的多个位的每个值的组合中搜索在能量函数具有最小值时每个位的值(Ising模型的基本状态)。
例如,Ising型能量函数E(x)由以下方程式(1)定义。
(方程式1)
Figure BDA0002221019620000031
右侧的第一项是针对Ising模型的所有位的所有组合的、两个位的值(0或1)和权重因数的乘积的积分,无遗漏和重复。符号xi是一变量(也称为状态变量),其表示具有“i”作为识别信息(在下文中,称为索引)的位的值,符号xj是一变量,其表示索引=j的位的值,并且符号Wij是表示索引=i和j的位之间的相互作用的大小的权重因数。此外,Wii=zero(0)。此外,在很多情况下,Wij=Wji(即,权重因数的因数矩阵经常是对称矩阵)。另外,权重因数Wij具有预定的位宽(比如,16位、32位、64位、128位等)。
右侧的第二项是针对所有位的、每个位的偏差因数(bias factor)和表示位值的变量的乘积的总和。符号bi表示具有索引“i”的位的偏差因数。
当变量xi变为1-xi时,变量xi的增量可以表示为Δxi=(1-xi)-xi=1-2xi。伴随自旋反转(位值的变化)的能量变化ΔEi由以下方程式(2)表示。(方程式2)
Figure BDA0002221019620000041
在方程式(2)中,Δxi在变量xi从1变为0时变成-1,而在变量xi从0变为1时变成1。符号hi被称为局域场(local field),并且能量变化ΔEi是通过根据Δxi将局域场hi乘以符号(+1或-1)获得的。
此外,在变量xj从0变为1时局域场hi的变化量Δhi可以表示为+Wij,在变量xj从1变为0时局域场hi的变化量Δhi可以表示为-Wij。因此,不需要每次都通过矩阵操作重新计算局域场hi,用随状态转换而变化的位所引起的变化量对Wij进行加或减就够了。
(第一实施方式)
图1示出了根据第一实施方式的优化装置的示例的视图。
根据第一实施方式的优化装置10包括四级运算处理单元11、12、13和14,它们以环形彼此连接并搜索Ising模型的基态(ground state)。运算处理单元的级数不限于四,而可以是M,即2或者大于2的整数。运算处理单元11至14中的每一个是例如单芯片半导体集成电路(比如,专用集成电路(ASIC)、现场可编程门阵列(FPGA)等)。此外,例如,运算处理单元11至14可以被设置在单芯片半导体集成电路中。
在优化装置10中,由于Ising模型的状态的更新过程要重复很多次,因此,期望运算处理单元11至14以高速交换信息。因此,期望运算处理单元11至14通过专用总线彼此连接,该专用总线能够比用于设置运算处理单元11至14中的Ising模型的信息等的总线进行更高速的通信。然而,在专用总线中存在物理限制。例如,当专用总线的通信速度为100Gbps时,500位/周期是在运算处理单元11至14以200MHz的时钟频率工作时专用总线的数据发送速率的上限。例如,因为1024位中的每一个位的索引(10位)和是否允许更新的确定结果(1位)的总信息量是11264位,所以可能无法经由上面描述的专用总线在一个时钟周期内发送和接收该信息。因此,运算处理单元11至14中的每一个选择一个更新候选位,并使用专用总线发送和接收更新候选位的信息。
第一级运算处理单元11包括状态更新单元11a、确定单元11b、选择单元11c和计数单元11d。第二级运算处理单元12包括状态更新单元12a、确定单元12b、选择单元12c、计数单元12d和选择单元12e。与第二级运算处理单元12类似,第三级运算处理单元13也包括状态更新单元13a、确定单元13b、选择单元13c、计数单元13d和选择单元13e。与第二级和第三级运算处理单元12和13类似,第四级运算处理单元14也包括状态更新单元14a、确定单元14b、选择单元14c、计数单元14d和选择单元14e。
状态更新单元11a至14a基于索引更新从第四级运算处理单元14提供给第一级运算处理单元11的多个位的值中的任何一个,如后所述。状态更新单元11a至14a中的每一个保存与Ising模型的所有自旋相对应的多个位。
基于Ising模型的信息,确定单元11b至14b中的每一个针对各个位中的每一个位确定是否允许更新,位的数量是通过将与Ising模型的所有自旋相对应的多个位的数量除以运算处理单元11至14的级数4获得的。Ising模型的信息包括上面描述的权重因数。
例如,当与所有自旋相对应的多个位的数量是4096时,确定单元11b针对索引为0至1023的位中的每一个确定是否允许更新。确定单元12b针对索引为1024至2047的位中的每一个确定是否允许更新,并且确定单元13b针对索引为2048至3071的位中的每一个确定是否允许更新。确定单元14b针对索引为3072至4095的位中的每一个确定是否允许更新。确定单元11b至14b中的每一个输出关于是否允许1024个位中的每一个的更新的确定结果(在下文中,称为标志)连同索引。在下文中,标志“1”指示相应的位的更新被允许,标志“0”指示相应的位的更新不被允许。
例如,确定单元11b至14b中的每一个确定是否允许每个位的更新,如下所述。确定单元11b至14b中的每一个包括存储器(比如,寄存器、静态随机存储器(SRAM)等),其保存与由其自身的运算处理单元处理的1024个位相关的权重因数组。例如,确定单元11b的存储器保存指示索引为0至1023的位中的每一个位和其他所有位之间的相互作用的大小的权重因数组。然后,确定单元11b至14b中的每一个基于权重因数组和其值被更新的位的信息(索引和更新的值)计算由于1024位中的每一个位的值的变化所引起的Ising模型的能量变化。然后,确定单元11b至14b中的每一个基于所计算的能量变化和热激发能量(热噪声)之间的大小关系确定是否允许1024个位中的每一个位的更新。热激发能量是由控制器(未示出)提供的温度参数和随机数确定的。在执行模拟退火法的情况下,例如,通过控制器控制温度参数,使得每当更新Ising模型的状态的过程重复预定次数时,温度参数的值变得更小。此外,稍后将描述执行上述确定过程的电路的示例。
选择单元11c至14c中的每一个基于上面描述的标志从被允许更新的位(在下文中,称为更新许可位)中选择一个更新候选位,并输出所选择的更新候选位的索引。例如,当在索引为0至1023的位中存在多个具有标志1的更新许可位时,选择单元11c使用随机数从相应的多个更新许可位中选择一个更新候选位并输出所选择的更新候选位的索引。此外,即使在索引为0至1023的位的所有标志为0时,也会选择一个更新候选位。
除了输出更新候选位的索引,选择单元11c至14c中的每一个还输出更新候选位的标志。
计数单元11d至14d中的每一个计数其自身的运算处理单元中的更新许可位的数量。例如,计数单元11d计数索引为0至1023的位中具有标志1的更新许可位的数量。
选择单元12e至14e中的每一个选择从自身的运算处理单元的选择单元(选择单元12c至14c中的一个)输出的更新候选位的索引和从前级运算处理单元提供的更新候选位的索引之一,如下所述。
选择单元12e至14e中的每一个接收在其自身运算处理单元中计数的更新许可位的数量的计数结果以及直到前级的运算处理单元中计数的更新许可位的数量的累计值。然后,选择单元12e至14e中的每一个以通过将计数结果除以累计值和计数结果的和获得的概率选择从其自身运算处理单元的选择单元输出的索引。选择单元12e至13e中的每一个向处于后级的运算处理单元提供所选择的索引。另外,选择单元12e至13e中的每一个通过将计数结果和从处于前级的运算处理单元提供的累计值相加来更新累计值,并向处于后级的运算处理单元提供更新的累计值。属于最后一级运算放大器14的选择单元14e向第一级运算处理单元11提供所选择的索引。此外,由所选择的索引识别的更新候选位的标志连同索引一起被提供给处于后级或处于第一级的运算处理单元。
如图1所示,例如,选择单元12e包括数据选择电路12e1。数据选择电路12e1在选择信号sel1为1时选择从运算处理单元12的选择单元12c输出的更新候选位的索引,而在选择信号sel1为0时选择从运算处理单元11提供的更新候选位的索引。选择信号sel1以上面描述的概率生成为1。选择单元12e包括生成选择信号sel1的选择信号生成电路,其未在图1中示出。选择单元13e也包括与数据选择电路12e1执行相同操作的数据选择电路13e1。选择单元14e也包括与数据选择电路12e1执行相同操作的数据选择电路14e1。
在下文中,将描述根据第一实施方式的优化装置10的操作的示例。
在通过控制器(未示出)在状态更新单元11a至14a中设置每个位的初值并在确定单元11b至14b中设置权重因数组之后,例如,确定单元11b至14b中的每一个根据上述过程针对每个位确定是否允许更新。然后,确定单元11b至14b中的每一个输出标志,即确定结果。选择单元11c至14c中的每一个基于该标志从更新许可位中选择一个更新候选位并输出所选择的更新候选位的索引。
在图1的示例中,运算处理单元11的选择单元11c输出索引=1020,运算处理单元12的选择单元12c输出索引=2046。运算处理单元13的选择单元13c输出索引=2054,并且运算处理单元14的选择单元14c输出索引=3078。另外,选择单元11c至14c中的每一个还输出作为所选择的更新候选位的标志的1。
计数单元11d至14d中的每一个计数其自身运算处理单元中的更新许可位的数量。在图1的示例中,计数单元11d输出790作为更新许可位的数量,计数单元12d输出30作为更新许可位的数量,计数单元13d输出200作为更新许可位的数量,并且计数单元14d输出1作为更新许可位的数量。
第一级运算处理单元11向第二级运算处理单元12提供所选择的更新候选位的索引和标志以及更新许可位的数量。
第二级运算处理单元12的选择单元12e选择从选择单元12c输出的索引和从运算处理单元11提供的索引之一,如下所述。选择单元12e接收在运算处理单元12中计数的更新许可位的数量的计数结果以及直到前级的运算处理单元中计数的更新许可位的数量的累计值(从运算处理单元11提供的更新许可位的数量)。然后,选择单元12e以通过将计数结果除以计数结果和从运算处理单元11提供的更新许可位的数量的和获得的概率选择由选择单元12c输出的索引。选择单元12e向运算处理单元13提供所选择的索引和标志以及通过将计数结果和从运算处理单元11提供的更新许可位的数量相加而获得的累计值。
在图1的示例中,选择单元12e被提供作为来自运算处理单元11的更新许可位的数量的790,并被提供作为由计数单元12d计数的更新许可位的数量的30。因此,选择单元12e以30/820的概率选择由选择单元12c输出的索引(图1的示例中的2046),其中选择信号sel1设置为1。在图1的示例中的选择单元12e中,从运算处理单元11提供的索引(图1的示例中的1020)的选择概率高于从选择单元12c输出的索引的选择概率。
第三级运算处理单元13的选择单元13e选择从选择单元13c输出的索引和从运算处理单元12提供的索引之一,如下所述。选择单元13e接收在运算处理单元13中计数的更新许可位的数量的计数结果以及直到前级的运算处理单元中计数的更新许可位的数量的累计值(运算处理单元11和12中的更新许可位的数量的和)。然后,选择单元13e以通过将计数结果除以计数结果和从运算处理单元12提供的累计值的和获得的概率选择由选择单元13c输出的索引。选择单元13e向运算处理单元14提供所选择的索引和标志以及由运算处理单元12提供并通过将计数结果和累计值相加而更新的累计值。
在图1的示例中,选择单元13e被提供作为来自运算处理单元12的更新许可位的数量的累计值的值820,并提供作为由计数单元13d计数的更新许可位的数量的值200。因此,选择单元13e以200/1020的概率选择由选择单元13c输出的索引(图1的示例中的2054),其中选择信号sel2设置为1。在图1的示例中的选择单元13e中,从运算处理单元12提供的索引的选择概率高于从选择单元13c输出的索引的选择概率。
第四级运算处理单元14的选择单元14e选择从选择单元14c输出的索引和从运算处理单元13提供的索引之一,如下所述。选择单元14e接收在运算处理单元14中计数的更新许可位的数量的计数结果以及直到前级的运算处理单元中计数的更新许可位的数量的累计值(运算处理单元11、12和13中的更新许可位的数量的累计值)。然后,选择单元14e以通过将计数结果除以计数结果和从运算处理单元13提供的累计值的和获得的概率选择由选择单元14c输出的索引。选择单元14e向第一级运算处理单元11提供所选择的索引和标志。
在图1的示例中,选择单元14e被提供作为来自运算处理单元13的更新许可位的数量的累计值的值1020,并被提供作为由计数单元14d计数的更新许可位的数量的数字1。因此,选择单元14e以1/1021的概率选择由选择单元14c输出的索引(图1的示例中的3078),其中选择信号sel3设置为1。在图1的示例中的选择单元14e中,从运算处理单元13提供的索引的选择概率高于从选择单元14c输出的索引的选择概率。另外,图1示出了示例,其中,作为在运算处理单元11中选择的更新候选位的索引的值1020在运算处理单元12的选择单元12e、运算处理单元13的选择单元13e以及运算处理单元14的选择单元14e中被选择,并被提供至运算处理单元11。在这种情况下,具有索引1020的更新候选位成为更新目标位。
当从运算处理单元14提供的标志为1时,运算处理单元11的状态更新单元11a在正在被保存的多个位值中更新(反转)与从运算处理单元14提供的索引对应的位的值。
从运算处理单元14提供给运算处理单元11的索引和标志被从状态更新单元11a提供给运算处理单元12,同样被从运算处理单元12提供给运算处理单元13,并被从运算处理单元13提供给运算处理单元14。然后,在状态更新单元12a、13a和14a中执行与状态更新单元11a中相同的过程。
上述过程在控制器(未示出)的控制下重复预定次数。例如,在该过程重复预定次数之后,状态更新单元11a至14a中所保存的每个位的值作为解被输出。运算处理单元11至14向处于后级的运算处理单元(对运算处理单元14而言就是第一级运算处理单元)不仅可以提供所选择的更新候选位的索引和标志,还可以提供与更新候选位对应的能量变化(确定单元11b至14b)。然后,状态更新单元11a至14a可以基于从运算处理单元14提供给运算处理单元11的能量变化更新Ising模型的能量。另外,状态更新单元11a至14a可以在更新的能量小于已获得的值时将更新的能量保存为最小能量,并可以保存此时每个位的值(Ising模型状态)。在这种情况下,通过Ising模型的状态的更新过程重复预定次数获得所保存的最小能量时的每个位的值被作为解进行输出。
在下文中,在描述第一实施方式的优化装置10的效果之前,将描述优化装置10的比较例。
图2是示出了第一实施方式的优化装置的比较例的优化装置的视图。在图2中,与图1中示出的优化装置10相同的部件将采用和图1中所使用的附图标记相同的附图标记表示。
在比较例的优化装置20中,在运算处理单元21、22、23、24中,运算处理单元22至24中所包括的选择单元22a、23a和24a中的每一个以1/2的概率选择由其自身的运算处理单元的选择单元(选择单元12c至14c中的一个)输出的索引。即,提供给选择单元22a的数据选择电路12e1的选择信号sel1、提供给选择单元23a的数据选择电路13e1的选择信号sel2以及提供给选择单元24a的数据选择电路14e1的选择信号sel3中的每一个以1/2的概率变成1。
因此,在相对较后级运算处理单元中选择的更新候选位的索引被优先考虑,在更新目标位的选择概率中出现偏差(bias),并且可能不能适当地选择更新目标位。例如,在图2的示例中,选择索引为3072至4095的位作为更新目标位的概率高于其他位的选择概率。选择概率中的偏差会降低解的计算精度。
同时,在第一实施方式的优化装置10中,由于运算处理单元22至24中的每一个使用从处于前级的运算处理单元发送的更新许可位的累计值来以上面描述的概率选择更新候选位,因此,可以消除更新目标位的选择概率中的偏差。
在下文中,将利用图1的示例描述选择概率的计算示例。此外,当在1024个位中存在多个标志为“1”的位时,假设选择单元11c至14c中的每一个以相等的概率选择多个具有标志“1”的位中的一个。
例如,在图1的示例中,第四级运算处理单元14的选择单元14e输出0至1023中的任何一个作为索引的概率是(1/790)×(790/820)×(820/1020)×(1020/1021)=1/1021。选择单元14e输出1024至2047中的任何一个作为索引的概率是(1/30)×(30/820)×(820/1020)×(1020/1021)=1/1021。选择单元14e输出2048至3071中的任何一个作为索引的概率是(1/200)×(200/1020)×(1020/1021)=1/1021。选择单元14e输出3072至4095中的任何一个作为索引的概率是1×(1/1021)=1/1021。
即,在上述示例中,由于每个更新许可位变成更新目标位的概率可以被设置为1/1021,因此,可以从所有的更新许可位中以相等的概率选择更新目标位。
如上所述,在第一实施方式的优化装置10中,可以使用以环形连接的多个运算处理单元实现大规模的装置,而不引起更新目标位的选择概率中的偏差。
另外,运算处理单元11至14以环形连接,运算处理单元11至14中的每一个选择一个更新候选位(或更新目标位),并且更新候选位的信息在运算处理单元之间交换。因此,可以在不增加运算处理单元11至14之间的接口数量和总线上的数据发送量的情况下,增加运算处理单元的数量。
(第二实施方式)
图3是示出了根据第二实施方式的优化装置的示例的视图。
根据第二实施方式的优化装置30包括:控制装置31;存储装置32;M级核33a1、33a2、…和33aM;共享总线34;以及专用总线35a1、35a2、…和35aM。
控制装置31控制核33a1至33aM。控制装置31是包括执行程序指令的运算电路的处理器,诸如中央处理单元(CPU)或者数字信号处理器(DSP)。控制装置31执行存储在存储装置32中的程序。控制装置31可以包括多个处理器或多个处理器核,并且可以使用多个处理器或处理器核并行执行对核33a1至33aM的控制。
存储装置32存储Ising模型的信息等。存储装置32可以存储要由控制装置31执行的程序。例如,存储装置32是诸如同步动态随机存储器(SDRAM)的易失性存储装置、诸如闪存存储器的非易失性存储装置、电可擦可编程只读存储器(EEPROM)或硬盘驱动器(HDD)、或者其组合。
核33a1至33aM中的每一个具有与第一实施方式的优化装置10的运算处理单元11至14中的任何一个相同的功能。例如,核33a1至33aM中的每一个是单芯片半导体集成电路。稍后将描述核33a1至33aM的内部配置的示例。
共享总线34将核33a1至33aM和控制装置31彼此连接。共享总线34用于使控制装置31控制核33a1至33aM的控制信号、Ising模型的信息和核33a1至33aM的搜索结果等的通信。例如,对于共享总线34,使用PCI(外围部件互联)-Express等。
专用总线35a1至35aM将核33a1至33aM以环形彼此连接。例如,专用总线35a1将核33a1的输出端子连接至核33a2的输入端子,并且专用总线35aM将核33aM的输出端子连接至核33a1的输入端子。专用总线35a1至35aM用于在核33a1至33aM中交换诸如更新候选位的索引和标志的信息。例如,专用总线35a1至35aM是金属线缆或光缆。例如,对于光缆,可以使用具有100Gbps通信速度的四通道小型可插拔(QSFP)线缆。由于核33a1至33aM通过专用总线35a1至35aM以点对点的方式彼此连接,因此可以确保高数据传输带宽。
图4是示出了核的内部配置的示例的视图。图4示出了核33a2的内部配置的示例,其他核具有与核33a2的内部配置相同的内部配置。
核33a2包括:控制器40;输入处理单元41;状态更新单元42;确定单元43;计数单元44;选择单元45和46;以及输出处理单元47。
控制器40在更新Ising模型的状态的过程开始之前从控制装置31接收各种类型的信息。例如,控制器40从控制装置31接收的信息包括:Ising模型的信息、每个位的初值、稍后将描述的偏移值(offset value)的增量值、用于执行模拟退火法的温度计划信息以及更新过程的重复次数。另外,控制器40从控制装置31接收的信息包括核的数量(=M)和值m,核的数量(=M)和值m是用于确定核类型的信息(用于确定核33a2的级数的信息)。例如,核33a1通过m=0来表示,而核33aM通过m=M-1来表示。信息m=1和M被从控制装置31发送至核33a2中所包括的控制器40。
然后,控制器40在确定单元43中设置Ising模型的信息、在确定单元43中基于温度计划信息设置温度参数,并使状态更新单元42保存每个位的初值。另外,控制器40在状态更新单元42中设置偏移值的初值(=0)和偏移值的增量值。
然后,例如,控制器40向核33a2的每个单元提供时钟信号,并开始更新Ising模型的状态的过程。另外,控制器40计数更新过程的次数,并在每次更新过程的次数达到预定数量时基于温度计划信息来减小确定单元43中所设置的温度参数的值。另外,当更新过程的次数达到从控制装置31接收到的重复次数时,控制器40向控制装置31发送更新过程完成的通知。
此外,当从控制装置31接收到输出搜索结果的请求时,控制器40从状态更新单元42获取在更新过程的次数达到重复数量时的最小能量以及那时每个位的值,并将所获取的信息发送至控制装置31。另外,控制器40可以从状态更新单元42获取在更新过程的次数达到重复数量时的能量以及那时每个位的值,并将所获取的信息发送至控制装置31。
另外,在更新Ising模型的状态的过程开始前,控制器40可以从控制装置31接收在重复时间的前一更新过程完成时获得的能量以及每个位值,并接收最小能量和在获得最小能量时的每个位值。然后,控制器40可以在状态接收单元42中设置所接收的能量、每个位的值、最小能量和获得最小能量时每个位的值,并且然后,可以开始当前的更新过程。
例如,控制器40可以通过诸如ASIC或FPGA的特定用途的电子电路实现。控制器40可以是诸如CPU或DSP的处理器。在这种情况下,处理器通过执行存储在存储器中的程序来执行控制器40的上述过程。
输入处理单元41接收来自处于前级的核33a1的更新目标位信息和更新候选位信息。然后,输入处理单元41向状态更新单元42提供所接收的更新目标位信息,并向选择单元46提供所接收的更新候选位信息。
更新目标位信息包括更新目标位的索引、标志以及更新目标位的值被反转时的能量变化。除了更新目标位的索引、标志以及更新目标位的值被反转时的能量变化,更新候选位信息还包括直到前级的核中的更新许可位的数量的累计值。输入处理单元41接收的更新候选位信息的累计值与核33a1中的更新许可位的数量相对应。
尽管未示出,但是第一级核33a1中所包括的输入处理单元被提供的不是更新候选位信息而是来自核33aM的更新目标位信息。
状态更新单元42保存每个位的当前值、当前能量、最小能量、获得最小能量时每个位的值、当前偏移值以及偏移值的增量值。然后,基于从输入处理单元41提供的更新目标位信息,状态更新单元42更新每个位的当前值和当前能量。此外,当所更新的当前能量小于最小能量时,状态更新单元42更新最小能量和获得最小能量时每个位的值。另外,当更新目标位信息中所包括的标志为0时,状态更新单元42将增量值与当前偏移值相加,并向确定单元43提供相加结果。另外,状态更新单元42向输出处理单元47提供更新目标位信息。
确定单元43基于Ising模型的信息针对通过将与Ising模型的所有自旋相对应的多个位的数量除以核33a1至33aM的级数M获得的数量的位中的每一个位确定是否允许更新,并输出指示确定结果的标志。例如,当M=4且位总数是4096时,第二级核33a2中所包括的确定单元43确定是否允许索引为1024至2047的位的更新。稍后将描述确定单元43的电路示例。
计数单元44计数由确定单元43所确定的更新许可位的数量。
选择单元45基于更新许可位的数量和标志,使用随机数从更新许可位中选择一个更新候选位,并输出所选择的更新候选位的索引和标志。稍后将描述选择单元45的电路示例。
选择单元46基于从输入处理单元41提供的更新候选位信息和在其自身的核33a2中计数的更新许可位的数量的计数结果来更新累计值。假设更新候选位信息中所包括的累计值是C[m-1]且计数单元44输出的计数结果是U[m],则更新的累计值C[m]可以表示为C[m]=C[m-1]+U[m]。然后,选择单元46以U[m]/C[m]的概率选择由选择单元45输出的索引。另外,选择单元46以1-U[m]/C[m]的概率选择更新候选位信息中所包括的更新候选位的索引。
选择单元46向输出处理单元47提供包括有所选择的索引、与所选择的索引对应的标志以及更新的累计值的更新候选位信息。稍后将描述选择单元46的电路示例。
尽管未示出,但是,第一级核33a1也可以具有与选择单元46对应的选择单元,而该选择单元以1/1的概率选择在核33a1中所选择的更新候选位的索引。
输出处理单元47将从状态更新单元42提供的更新目标位信息发送至处于后级的核(未示出),并且然后,将从选择单元46提供的更新候选位信息发送至处于后级的核。
尽管未示出,但是,第M级核33aM中所包括的输出处理单元将从核33aM中的与选择单元46对应的选择单元输出的更新候选位信息中除累计值之外的信息作为新的更新目标位信息发送至第一级核33a1。
(确定单元43的电路示例)
图5是示出了确定单元的电路示例的视图。图5示出了确定是否允许确定单元43中索引=i的位更新的电路单元。为其他位提供类似的电路单元。当M=4且总位数N是4096时,“i”是第二级核33a2中所包括的确定单元43中1024至2047中的一个值。
确定单元43包括:寄存器43a;选择电路43b;ΔE计算电路43c;以及更新确定电路43d。
寄存器43a保存表示索引=i的位和索引=0至N-1的位之间的相互作用的大小的权重因数Wi0,Wi1,…,和Wi(N-1)
选择电路43b从状态更新单元42接收更新目标位的索引=j(0至N-1中的任何一个值),选择并输出从权重因数Wi0至Wi(N-1)的、表示更新目标位和索引=i的位之间的相互作用的大小的权重因数Wij
ΔE计算电路43c包括:选择电路50;乘法器51;加法器52;寄存器53;乘法器54;以及选择电路55。
选择电路50实现更新候选位的值的变化量的计算。当索引=j的位的值(变量xj)从1变为0时,变化量Δxj是-1。当变量xj从0变为1时,Δxj是1。选择电路50在从状态更新单元42提供的变量xj的更新值是0时选择并输出-1,而在变量xj的更新值是1时选择并输出1。
乘法器51输出选择电路43b输出的权重因数和选择电路50输出的值的乘积。在图5的示例中,权重因数Wij被输入至乘法器51。乘法器51的输出表示由于变量xj的变化而引起的局域场hi的变化量Δhi
加法器52将乘法器51输出的值和存储在寄存器53中的值相加,并输出相加结果。
寄存器53与时钟信号(未示出)同步地接收加法器52输出的值(局域场hi)。寄存器53例如是触发器(flip flop)。当所有变量x的初值是0时,寄存器53中所存储的局域场hi的初值例如是偏差因数bi
乘法器54输出从寄存器53输出的局域场hi和从选择电路50输出的值的乘积。这个乘积是由于索引=i的位的值的变化引起的能量变化ΔEi,该能量变化ΔEi如方程式(2)所示。
选择电路55实现方程式(2)中-Δxi的计算。选择电路55在变量xi是0时输出-1,而在变量xi是1时输出1,该变量xi指示从状态更新单元42提供的索引=i的当前位的值。
更新确定电路43d包括:符号反转单元60;加法器61;随机数生成电路62;选择规则应用单元63;乘法器64;比较电路65;以及寄存器66。
符号反转单元60通过将从ΔE计算电路43c输出的能量变化ΔEi乘以-1来反转符号。
加法器61将从状态更新单元42提供的偏移值off和符号反转单元60的输出值相加。如上所述,当更新目标位信息中所包括的标志是0时(当位更新未发生时),状态更新单元42增加偏移值off,以使得位更新很容易地被允许。在当前状态处于局部解时,促进逃离局部解。
随机数生成电路62生成大于等于0且小于等于1的均匀随机数“r”。随机数生成电路62由LFSR(线性反馈移位寄存器)、Mersenne twister等实现。
选择规则应用单元63基于用于实现模拟退火法的选择规则(metropolis方法或者Gibbs方法)来输出值。
在执行模拟退火法时,假设引起能量变化ΔE的状态转换的允许概率A(ΔE,T)被定义为下面的方程式(3)和(4),已经证实状态在时间(迭代次数)无穷大的极限处达到最优解。
(方程式3)
A(ΔE,T)=f(-ΔE/T) (3)
(方程式4)
Figure BDA0002221019620000161
在方程式(3)和(4)中,T是上述温度参数。
当使用通过方程式(3)表示的允许概率A(ΔE,T)时,假设在足够的重复之后状态达到了稳态,则每个状态的占有概率遵循与热力学中的热平衡状态相关的Boltzmann分布。此外,由于低能量状态的占有概率在温度从高温度逐渐降低时增加,因此,可以在温度降到足够低时得到低能量状态。这种方法被称为模拟退火法,因为它与材料被退火时的状态变化非常类似。此时,其中能量上升的状态转换的随机发生与物理中的热激发相对应。
可以通过基于方程式(3)和(4)中f(-ΔE/T)和均匀随机数“r”之间的比较结果来输出值的比较器来实现输出标志(=1)的电路,该标志(=1)指示允许以允许概率A(ΔE,T)引起能量变化ΔE的状态转换。
然而,即使进行了以下修改,也可以实现相同的功能。即使对两个数应用相同的单调递增函数,大小关系也不会改变。因此,即使对比较器的两个输入应用相同的单调递增函数,比较器的输出也不会改变。例如,f(-ΔE/T)的逆函数f-1(-ΔE/T)可以用作作用于f(-ΔE/T)的单调递增函数,并且f-1(r)可以用作作用于均匀随机数“r”的单调递增函数,其中,“r”是f-1(-ΔE/T)中的-ΔE/T。在这种情况下,可以理解的是:具有与上述比较器相同功能的电路可以是在-ΔE/T大于f-1(r)时输出1的电路。再者,由于温度参数T是正数,因此,电路可以是在-ΔE大于T·f-1(r)时输出1的电路。
图5中的选择规则应用单元63使用转换表输出f-1(r)的值以将输入均匀随机数r转换成f-1(r)的值。当应用metropolis方法时,f-1(r)是log(r)。例如,转换表被存储在诸如随机存储器(RAM)或闪存存储器的存储器中。
乘法器64输出f-1(r)和从控制器40提供的温度参数T的乘积(T·f-1(r))。T·f-1(r)与热激发能量相对应。
比较电路65将加法器61的相加结果和T·f-1(r)进行比较。当相加结果大于T·f-1(r)时,比较电路65输出1(指示更新被允许的值)作为标志。另外,当相加结果等于或小于T·f-1(r)时,比较电路65输出0(指示更新不被允许的值)作为标志。
寄存器66保存索引=i。
能量变化ΔEi、索引=i和标志作为关于是否允许更新索引=i的位的信息被提供至图4的选择单元45。
(选择电路45的电路示例)
图6是示出了在核中的选择更新候选位的选择单元的示例的视图。
选择单元45包括随机数生成电路45a、选择信号生成电路45b和数据选择电路45c。
随机数生成电路45a生成例如16位的0至65535的均匀随机数rnd1。随机数生成电路45a由LFSR、Mersenne twister等实现。
选择信号生成电路45b基于均匀随机数rnd1和从计数单元44提供的更新许可位的数量U[m]生成选择信号SEL1。
当均匀随机数rnd1具有0至65535的值时,选择信号生成电路45b在U[m]≥2时输出值(U[m]×rnd1)>>16作为选择信号SEL1。此处“>>16”表示16位右移,并且(U[m]×rnd1)>>16与计算U[m]×rnd1/65536(小数位被截断)一样。当U[m]<2时,选择信号生成电路45b输出0作为选择信号SEL1。
从确定单元43向数据选择电路45c提供每个位的索引、标志和能量变化。然后,数据选择电路45c在从确定单元43输出的各个位的标志中选择具有1值的所有标志(比如,更新许可位的标志)。之后,数据选择电路45c从更新许可位的较小索引进行计数,并输出SEL1-th(选择信号SEL1的值)索引的更新许可位的信息(索引、标志、能量变化)。
此外,当从确定单元43输出的各个位的标志全是0时,数据选择电路45c输出核33a2中具有最小索引的位的索引、标志和能量变化。
选择电路45可以通过基于更新许可位的计数结果和随机数执行选择以相对统一的比率在核33a2的所有更新许可位中选择一个更新许可位。
(选择单元46的电路示例)
图7是示出了选择单元的示例的视图,该选择单元选择自身核的更新候选位和前级核的更新候选位之一的索引。
选择单元46包括随机数生成电路46a、加法器46b、选择信号生成电路46c、数据选择电路46d和附加电路46e。
随机数生成电路46a生成例如16位的0至65535的均匀随机数rnd2。随机数生成电路46a由LFSR(线性反馈移位寄存器)、Mersenne twister等实现。
加法器46b输出通过将更新许可位的数量U[m]与从输入处理单元41提供的更新候选位信息中所包括的累计值C[m-1]相加而更新的累计值C[m]。
选择信号生成电路46c基于更新许可位的数量U[m]、累计值C[m]和均匀随机数rnd2生成选择信号SEL2。
当均匀随机数rnd2是0至65535的值时,如果在C[m]大于0时rnd2<65536×U[m]/C[m],则选择信号生成电路46c输出值1作为选择信号SEL2。在不满足rnd2<65536×U[m]/C[m]时,选择信号生成电路46c输出0作为选择信号SEL2。
另外,当C[m]=0时,选择信号生成电路46c输出值1作为选择信号SEL2。
当选择信号SEL2是1时,数据选择电路46d选择并输出从选择单元45输出的信息。当选择信号SEL2是0时,数据选择电路46d选择并输出从输入处理单元41提供的更新候选位信息中除累计值C[m-1]之外的信息。
附加电路46e输出通过将累计值C[m]与从数据选择电路46d输出的信息相加而获得的更新候选位信息。
在下文中,将描述优化装置30的操作示例。
首先,图3中示出的控制装置31经由共享总线34激活核33a1至33aM,并将诸如关于Ising模型的信息的各种类型的信息发送至核33a1至33aM。
核33a1至33aM从控制装置31接收各种类型的信息,并基于所接收的各种类型的信息通过上述过程针对每个位确定是否允许更新。例如,当M=4且位的总数是4096时,第二级核33a2中所包括的确定单元43确定是否允许索引为1024至2047的位的更新。
之后,核33a1至33aM基于更新许可位的数量和指示是否允许更新的确定结果的标志,使用随机数从更新许可位中选择一个更新候选位。
第一级核33a1经由专用总线35a1向核33a2发送包括所选择的更新候选位的索引、标志和能量变化以及更新许可位的数量的更新候选位信息。处于第二级和后级的核33a2至33aM基于由前级核发送的更新候选位信息和在其自身核中计数的更新许可位的数量U[m]来更新更新许可位的数量的累计值C[m]。然后,核33a2至33aM以U[m]/C[m]的概率选择在其自身核中所选择的更新候选位的索引,并且然后,以1-U[m]/C[m]的概率选择更新候选位信息中所包括的更新候选位的索引。
然后,核33a2至33aM除核33aM之外向后级核发送包括所选择的更新候选位的索引、标志、能量变化和更新的累计值的更新候选位信息。核33aM向第一级核33a1发送包括所选择的更新候选位的索引、标志、能量变化的更新目标位信息。
核33a1基于更新目标位信息更新每个位的当前值和当前能量。当更新的当前能量小于最小能量时,核33a1更新最小能量和在获得最小能量时每个位的值。更新目标位信息还被从前级核提供给核33a2至33aM并且以相同的方式更新。
当更新目标位信息中所包括的标志是0时,核33a1至33aM将增量值加至当前偏移值。
核33a1至33aM重复如上所述的更新Ising模型状态的过程,并在每次更新过程的次数达到预定数时基于温度计划信息减小温度参数的值。再者,当更新过程的次数达到从控制装置31接收到的重复次数时,核33a1至33aM经由共享总线34向控制装置31发送更新过程完成的通知。
在从核33a1至33aM接收到完成通知时,控制装置31经由共享总线34向核33a1至33aM发送搜索结果的输出请求。在接收到搜索结果的输出请求时,核33a1至33aM向控制装置31发送Ising模型的基态的搜索结果(优化问题的计算结果)。例如,搜索结果是当在更新过程的次数达到从控制装置31接收到的重复次数时获得状态更新单元42中所包括的最小能量时每个位的值。或者,搜索结果可以是更新过程的次数达到重复次数时每个位的值。另外,搜索结果可以包括能量或最小能量。
核33a1至33aM中的一个可以更新能量、最小能量和在获得最小能量时每个位的值。在这种情况下,控制装置31从该核中获取搜索结果。
控制装置31向显示装置(未示出)输出(显示)已获得的搜索结果。控制装置31可以将搜索结果存储在存储装置32中。
图8是示出了通过控制器控制优化装置的示例的流程的流程图。
控制装置31经由共享总线34激活核33a1至33aM中的每一个(步骤S1),并向每个核发送各种类型的信息,诸如Ising模型的信息(步骤S2)。
然后,控制装置31确定是否已经从每个核接收到更新过程的完成通知(步骤S3)。重复步骤S3直至接收到完成通知。
在接收到来自每个核的完成通知时,控制装置31获取上述搜索结果(步骤S4),输出该搜索结果(步骤S5)并结束该过程。控制装置31可以在改变计算条件例如改变温度计划信息的同时重复步骤S2至S5。
根据如上所述的第二实施方式的优化装置30,核33a1至33aM中的每一个使用来自前级核的更新许可位的累计值来以上面提及的概率选择更新候选位。这使得能够利用以环形连接的核33a1至33aM实现大规模,而不会引起更新目标位的选择概率的偏差。
在上面的描述中,核33a1是第一级核并且核33aM是第M级核。然而,本公开内容不限于此。例如,基于从控制装置31提供给核33a1至33aM的用于确定核类型的信息,控制器40可以使得选择单元46用作第一级核的选择单元或者使得输出处理单元47用作第M级输出处理单元。

Claims (5)

1.一种优化装置,包括:
以环形连接的M级运算处理电路,其中M是2或者大于2的整数,
其中,所述M级运算处理电路的每级运算处理电路包括:
确定电路,其基于Ising模型的信息针对第一位中每个第一位确定是否允许更新,所述第一位的数量是通过将与所述Ising模型的所有自旋相对应的第二位的数量除以M获得的,所述Ising模型是通过转换优化问题获得的;
第一选择电路,其基于所述确定电路的确定结果从被允许更新的更新许可位中选择一个更新候选位,并输出所述一个更新候选位的识别信息;
计数电路,其计数所述更新许可位的数量;以及
状态更新电路,其基于从所述M级运算处理电路的最后级运算处理电路提供至所述M级运算处理电路的最前级运算处理电路的识别信息来更新所述第二位中任何一个第二位的值,
其中,所述M级运算处理电路中除所述最前级运算处理电路之外的每级运算处理电路包括:
第二选择电路,其以第一概率选择从所述第一选择电路输出的第一识别信息,所述第一概率是通过将所述更新许可位的数量除以所述更新许可位的数量与从前级运算处理电路提供的数量之和获得的;并且以第二概率选择从所述前级运算处理电路提供的第二识别信息,所述第二概率是通过从1中减去所述第一概率获得的,
其中,所述最后级运算处理电路的所述第二选择电路向所述最前级运算处理电路提供所选择的识别信息,
其中,除所述最后级运算处理电路的所述第二选择电路之外的每个第二选择电路向后级运算处理电路提供所选择的识别信息。
2.根据权利要求1所述的优化装置,其中,
所述M级运算处理电路经由第一总线连接至控制所述M级运算处理电路的控制装置,并且所述M级运算处理电路通过通信速度高于所述第一总线的通信速度的第二总线以环形连接,并且
所述M级运算处理电路使用所述第二总线发送和接收所选择的识别信息。
3.根据权利要求1或2所述的优化装置,其中,
所述第一选择电路包括:
随机数生成电路,其生成随机数值;
选择信号生成电路,其基于所述随机数值和所述更新许可位的数量生成用于选择所述更新许可位中之一的选择信号;以及
数据选择电路,其基于所述选择信号输出所述一个更新候选位的识别信息。
4.根据权利要求1至3中任一项所述的优化装置,其中,
所述第二选择电路包括:
选择信号生成电路,其生成用于以所述第一概率选择所述第一识别信息的选择信号;以及
数据选择电路,其基于所述选择信号输出所选择的识别信息。
5.一种控制优化装置的方法,所述方法包括:
由确定电路基于Ising模型的信息针对第一位中每个第一位确定是否允许更新,所述第一位的数量是通过将与所述Ising模型的所有自旋相对应的第二位的数量除以M获得的,所述Ising模型是通过转换优化问题获得的,所述确定电路被包括在以环形连接的M级运算处理电路的每级运算处理电路中,所述M级运算处理电路被包括在所述优化装置中;
由第一选择电路基于所述确定电路的确定结果从被允许更新的更新许可位中选择一个更新候选位,所述第一选择电路被包括在所述M级运算处理电路的每级运算处理电路中;
由所述第一选择电路输出所述一个更新候选位的识别信息;
由计数电路计数所述更新许可位的数量,所述计数电路被包括在所述M级运算处理电路的每级运算处理电路中;
由状态更新电路基于从所述M级运算处理电路的最后级运算处理电路提供至所述M级运算处理电路的最前级运算处理电路的识别信息来更新所述第二位中任何一个第二位的值,所述状态更新电路被包括在所述M级运算处理电路的每级运算处理电路中;
由第二选择电路以第一概率选择从所述第一选择电路输出的第一识别信息,所述第一概率是通过将所述更新许可位的数量除以所述更新许可位的数量与从前级运算处理电路提供的数量之和获得的,所述第二选择电路被包括在所述M级运算处理电路中除所述最前级运算处理电路之外的每级运算处理电路中;
由所述第二选择电路以第二概率选择从所述前级运算处理电路提供的第二识别信息,所述第二概率是通过从1中减去所述第一概率获得的;
由所述最后级运算处理电路的所述第二选择电路向所述最前级运算处理电路提供所选择的识别信息;以及
由除所述最后级运算处理电路的所述第二选择电路之外的每个第二选择电路向后级运算处理电路提供所选择的识别信息。
CN201910934026.6A 2018-10-04 2019-09-29 优化装置和控制优化装置的方法 Active CN111008696B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2018-189001 2018-10-04
JP2018189001A JP7100257B2 (ja) 2018-10-04 2018-10-04 最適化装置及び最適化装置の制御方法

Publications (2)

Publication Number Publication Date
CN111008696A true CN111008696A (zh) 2020-04-14
CN111008696B CN111008696B (zh) 2023-06-09

Family

ID=67953631

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910934026.6A Active CN111008696B (zh) 2018-10-04 2019-09-29 优化装置和控制优化装置的方法

Country Status (4)

Country Link
US (1) US11093578B2 (zh)
EP (1) EP3633560B1 (zh)
JP (1) JP7100257B2 (zh)
CN (1) CN111008696B (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7071638B2 (ja) * 2018-07-31 2022-05-19 富士通株式会社 最適化装置、最適化装置の制御方法及び最適化装置の制御プログラム
JP7137064B2 (ja) * 2018-10-19 2022-09-14 富士通株式会社 最適化装置及び最適化装置の制御方法
JP7174244B2 (ja) * 2018-12-26 2022-11-17 富士通株式会社 最適化装置及び最適化装置の制御方法
EP4131944A4 (en) 2020-03-27 2023-07-26 JVCKENWOOD Corporation DISPLAY CONTROL DEVICE, DISPLAY CONTROL METHOD AND PROGRAM
JP7528517B2 (ja) 2020-04-24 2024-08-06 富士通株式会社 最適化装置、最適化方法及び最適化プログラム
CN115735208A (zh) * 2020-07-17 2023-03-03 株式会社半导体能源研究所 半导体装置
KR20230084261A (ko) * 2020-11-05 2023-06-12 아메바 에너지 가부시키가이샤 해 탐색 시스템, 해 탐색 방법 및 해 탐색 프로그램
CN113093379B (zh) * 2021-03-25 2022-02-25 上海交通大学 面向光子伊辛机的正交空间相位调制方法

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1153946A (zh) * 1994-11-15 1997-07-09 松下电器产业株式会社 信号处理装置
CN105468335A (zh) * 2015-11-24 2016-04-06 中国科学院计算技术研究所 流水级运算装置、数据处理方法及片上网络芯片
CN106374933A (zh) * 2015-07-24 2017-02-01 富士通株式会社 数据压缩装置和方法
EP3223233A1 (en) * 2016-03-25 2017-09-27 Renesas Electronics Corporation Image processing apparatus; image processing method; and vehicle control apparatus
US20170364477A1 (en) * 2016-06-17 2017-12-21 Fujitsu Limited Information processing apparatus, ising device, and information processing apparatus control method
US20180075342A1 (en) * 2016-09-09 2018-03-15 Fujitsu Limited Information processing apparatus, ising unit, and information processing apparatus control method
JP2018063626A (ja) * 2016-10-14 2018-04-19 富士通株式会社 最適化装置及び最適化装置の制御方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07200517A (ja) * 1993-12-29 1995-08-04 Toshiba Corp 並列型確率的最適化法
JPH09319721A (ja) 1996-05-27 1997-12-12 Sony Corp 処理装置および方法
JP6445246B2 (ja) * 2014-03-27 2018-12-26 株式会社日立製作所 情報処理装置及び情報処理方法
JP6659957B2 (ja) 2016-06-06 2020-03-04 富士通株式会社 情報処理装置、イジング装置及び情報処理装置の制御方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1153946A (zh) * 1994-11-15 1997-07-09 松下电器产业株式会社 信号处理装置
CN106374933A (zh) * 2015-07-24 2017-02-01 富士通株式会社 数据压缩装置和方法
CN105468335A (zh) * 2015-11-24 2016-04-06 中国科学院计算技术研究所 流水级运算装置、数据处理方法及片上网络芯片
EP3223233A1 (en) * 2016-03-25 2017-09-27 Renesas Electronics Corporation Image processing apparatus; image processing method; and vehicle control apparatus
US20170364477A1 (en) * 2016-06-17 2017-12-21 Fujitsu Limited Information processing apparatus, ising device, and information processing apparatus control method
US20180075342A1 (en) * 2016-09-09 2018-03-15 Fujitsu Limited Information processing apparatus, ising unit, and information processing apparatus control method
JP2018063626A (ja) * 2016-10-14 2018-04-19 富士通株式会社 最適化装置及び最適化装置の制御方法

Also Published As

Publication number Publication date
US20200110790A1 (en) 2020-04-09
US11093578B2 (en) 2021-08-17
EP3633560B1 (en) 2022-03-30
JP7100257B2 (ja) 2022-07-13
JP2020057306A (ja) 2020-04-09
CN111008696B (zh) 2023-06-09
EP3633560A1 (en) 2020-04-08

Similar Documents

Publication Publication Date Title
CN111008696B (zh) 优化装置和控制优化装置的方法
US11551062B2 (en) Optimization apparatus and control method thereof
US10592629B2 (en) Optimization apparatus and method of controlling the same
US20190130295A1 (en) Information Processing Apparatus and Information Processing Method
JP7323777B2 (ja) 最適化装置および最適化方法
EP3640859A1 (en) Optimization device and control method of optimization device
CN105653689B (zh) 一种用户传播影响力的确定方法和装置
WO2018189279A1 (en) Black-box optimization using neural networks
JP6923790B2 (ja) 最適化装置及び最適化装置の制御方法
CN111381495B (zh) 优化装置及优化装置的控制方法
JP7197789B2 (ja) 最適化装置及び最適化装置の制御方法
JP2020086821A (ja) 最適化装置および最適化装置の制御方法
JP2021039640A (ja) 学習装置、学習システム、および学習方法
JP7273288B2 (ja) サンプリング装置及びサンプリング装置の制御方法
JP7007520B2 (ja) 情報処理装置、演算装置、及び情報処理方法
JPWO2019216277A1 (ja) 情報処理装置、演算装置、及び情報処理方法
WO2021036362A1 (zh) 用于处理数据的方法、装置以及相关产品
Zhao et al. Entropy rate of nonequilibrium growing networks
JP2020038435A (ja) 最適化装置及び最適化装置の制御方法
EP3745319A1 (en) Optimization apparatus and optimization method
CN116167446A (zh) 量子计算处理方法、装置及电子设备
CN116151383B (zh) 量子计算处理方法、装置及电子设备
WO2022249785A1 (ja) 求解装置、求解方法およびプログラム
CN116306393A (zh) 逻辑综合时序的尺寸调整方法、装置、存储介质及电子设备
CN118012218A (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
GR01 Patent grant
GR01 Patent grant