CN111812972B - 优化装置和用于控制优化装置的方法 - Google Patents
优化装置和用于控制优化装置的方法 Download PDFInfo
- Publication number
- CN111812972B CN111812972B CN202010269201.7A CN202010269201A CN111812972B CN 111812972 B CN111812972 B CN 111812972B CN 202010269201 A CN202010269201 A CN 202010269201A CN 111812972 B CN111812972 B CN 111812972B
- Authority
- CN
- China
- Prior art keywords
- bit
- value
- unit
- identification information
- 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.)
- Active
Links
- 238000005457 optimization Methods 0.000 title claims abstract description 104
- 238000000034 method Methods 0.000 title claims abstract description 60
- 238000004364 calculation method Methods 0.000 claims abstract description 148
- 238000003860 storage Methods 0.000 claims abstract description 81
- 230000008859 change Effects 0.000 claims abstract description 56
- 230000005284 excitation Effects 0.000 claims abstract description 12
- 230000003993 interaction Effects 0.000 claims description 19
- 239000011159 matrix material Substances 0.000 claims description 10
- XOFYZVNMUHMLCC-ZPOLXVRWSA-N prednisone Chemical compound O=C1C=C[C@]2(C)[C@H]3C(=O)C[C@](C)([C@@](CC4)(O)C(=O)CO)[C@@H]4[C@@H]3CCC2=C1 XOFYZVNMUHMLCC-ZPOLXVRWSA-N 0.000 description 135
- 230000006870 function Effects 0.000 description 37
- 238000010586 diagram Methods 0.000 description 36
- 230000014509 gene expression Effects 0.000 description 36
- 210000004027 cell Anatomy 0.000 description 34
- 230000007704 transition Effects 0.000 description 33
- 230000008569 process Effects 0.000 description 24
- 238000002922 simulated annealing Methods 0.000 description 16
- 230000007274 generation of a signal involved in cell-cell signaling Effects 0.000 description 12
- 238000001514 detection method Methods 0.000 description 9
- 230000007423 decrease Effects 0.000 description 6
- 230000000052 comparative effect Effects 0.000 description 5
- 238000000342 Monte Carlo simulation Methods 0.000 description 4
- 238000000137 annealing Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 230000005283 ground state Effects 0.000 description 4
- 238000009826 distribution Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000000644 propagated effect Effects 0.000 description 3
- 230000001174 ascending effect Effects 0.000 description 2
- 230000004888 barrier function Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 230000003247 decreasing effect Effects 0.000 description 2
- LRULVYSBRWUVGR-FCHUYYIVSA-N GSK2879552 Chemical compound C1=CC(C(=O)O)=CC=C1CN1CCC(CN[C@H]2[C@@H](C2)C=2C=CC=CC=2)CC1 LRULVYSBRWUVGR-FCHUYYIVSA-N 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 239000000696 magnetic material Substances 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 210000002569 neuron Anatomy 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 238000007725 thermal activation Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B13/00—Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion
- G05B13/02—Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric
- G05B13/04—Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric involving the use of models or simulators
- G05B13/042—Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric involving the use of models or simulators in which a parameter or coefficient is automatically adjusted to optimise the performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/11—Complex mathematical operations for solving equations, e.g. nonlinear equations, general mathematical optimization problems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/16—Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/18—Complex mathematical operations for evaluating statistical data, e.g. average values, frequency distributions, probability functions, regression analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/01—Dynamic search techniques; Heuristics; Dynamic trees; Branch-and-bound
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N10/00—Quantum computing, i.e. information processing based on quantum-mechanical phenomena
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N7/00—Computing arrangements based on specific mathematical models
- G06N7/01—Probabilistic graphical models, e.g. probabilistic networks
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02T—CLIMATE CHANGE MITIGATION TECHNOLOGIES RELATED TO TRANSPORTATION
- Y02T10/00—Road transport of goods or passengers
- Y02T10/10—Internal combustion engine [ICE] based vehicles
- Y02T10/40—Engine management systems
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Computational Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Computing Systems (AREA)
- Operations Research (AREA)
- Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Automation & Control Theory (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- Probability & Statistics with Applications (AREA)
- Computational Linguistics (AREA)
- Complex Calculations (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明提供了一种优化装置和用于控制优化装置的方法。优化装置包括:多个计算电路,多个计算电路中的每个计算电路针对与通过转换要计算的问题而获得的伊辛模型中包括的多个自旋相对应的多个位,在多个位被划分成多个组的情况下,基于多个组中的每个组中包括的多个位中的值为1的第一位的第一局部字段值和值为0的第二位的第二局部字段值,来计算由于第一位的值从1到0的变化以及第二位的值从0到1的变化引起的伊辛模型的第一能量变化;选择电路,其基于第一能量变化与基于输入温度参数和随机数确定的热激发能量之间的大小关系,输出第一位识别信息;识别信息计算单元;更新单元;第二存储单元;以及局部字段生成单元。
Description
技术领域
本实施方式涉及优化装置和用于控制优化装置的方法。
背景技术
作为解决冯·诺依曼计算机不擅长的多变量优化问题的方法,存在使用伊辛能量函数的优化装置(有时称为伊辛机或玻尔兹曼机)。优化装置通过用伊辛模型代替要计算的问题来进行计算,伊辛模型是表示磁性材料的自旋行为的模型。
还可以通过使用例如神经网络对优化装置进行建模。在这种情况下,与伊辛模型中包括的多个自旋相对应的多个位中的每个位充当神经元,该神经元根据指示该位自身与另一位之间的相互作用的大小的权重值(也称为耦合系数)以及其他位的值输出0或1。优化装置例如通过随机搜索方法诸如模拟退火来获得其中获得以上描述的能量函数(也称为成本函数或目标函数)的值(下文称为能量)的最小值的状态(各个位的值的组合)作为解。
常规地,存在一种优化装置,该优化装置通过使用数字电路执行模拟退火来计算使能量最小化的状态(例如,参见专利文献1)。常规优化装置假设一次仅一个位的值改变来计算能量变化,并且根据通过将与温度相对应的噪声值与能量变化相加而获得的值来确定是否允许位变化。还以预定的概率允许增加能量的位的值的变化,并且该概率随着温度降低而降低。
顺便提及,存在具有约束(独热约束)的优化问题,其中在每个均包括多个位的多个组中的每个组中,值均为1的位的数目仅是一(例如,参见专利文献2和3)。例如,许多调度问题(例如,旅行推销员问题和车辆路线问题)、背包问题、装箱问题等均具有独热约束。
公开了日本公开特许公报第2018-041351号、国际公布小册子第WO2017/017807号和国际公布小册子第WO 2017/056366号作为相关技术。
如以上所描述的,在常规的优化装置中,一次改变的位的数目是一。例如,常规优化装置在以汉明距离=1重复状态转换的同时搜索具有最小能量的基态。因此,在常规优化装置中,不满足独热约束的状态发生转换,并且可以发生转换的状态的数目(搜索空间)大于满足独热约束的状态的数目。此外,由于独热约束项生成的能量垒,状态转换需要时间。综上所述,常规优化装置具有以下问题:计算具有独热约束的优化问题(以搜索基态)需要花费时间。
在一个方面,本实施方式的目的是提供能够缩短具有独热约束的优化问题的计算时间优化装置和用于控制该优化装置的方法。
发明内容
根据实施方式的一个方面,一种优化装置包括:多个计算电路,多个计算电路中的每个计算电路针对与通过转换要计算的问题而获得的伊辛模型中包括的多个自旋相对应的多个位,在多个位被划分成多个组的情况下,基于多个组中的每个组中包括的多个位中的值为1的第一位的第一局部字段值和值为0的第二位的第二局部字段值,来计算由于第一位的值从1到0的变化以及第二位的值从0到1的变化引起的伊辛模型的第一能量变化;选择电路,其基于由多个计算电路中的每个计算电路输出的第一能量变化与基于输入温度参数和随机数确定的热激发能量之间的大小关系,输出第一位识别信息,第一位识别信息用于识别多个组中的每个组中包括的第二位中的允许值从0更新为1的多个第二位之一;识别信息计算单元,其基于由选择电路输出的第一位识别信息检测被允许更新的第二位所属的第一组,并输出用于识别属于第一组的第一位的第二位识别信息;更新单元,其基于由识别信息计算单元输出的第二位识别信息将属于第一组的第一位的值从1更新为0,并基于第一位识别信息将被允许更新的第二位的值从0更新为1;第二存储单元,其保持由第一存储单元保持的指示多个位中的每一位之间的相互作用的大小的权重值的矩阵中与用于识别多个组中的每个组中值为1的位的位识别信息相对应的所有行;以及局部字段生成单元,其分别基于根据由选择电路输出的第一位识别信息从第一存储单元读取的与第一位识别信息相对应的第一行和从第二存储单元读取的与第二位识别信息相对应的第二行,来生成第一局部字段值和第二局部字段值。
在一个方面,本实施方式可以缩短具有独热约束的优化问题的计算时间。
附图说明
图1是示出第一实施方式的优化装置的示例的图;
图2是示出比较例的优化装置的图;
图3是示出使用副本交换方法的情况下的第一实施方式的优化装置与比较例的优化装置之间的处理时间的差异的示意图;
图4是示出第二实施方式的优化装置的示例的图;
图5是示出计算单元的示例的图;
图6是示出每个存储电路中保持的权重值的示例的图;
图7是示出存储电路和解码单元的示例的图;
图8是示出存储单元的操作示例的图;
图9是示出存储单元的操作示例的时序图(部分1);
图10是示出存储单元的操作示例的时序图(部分2);
图11是示出组索引值的示例的图;
图12是示出h传播控制单元的示例的图;
图13是示出控制信号生成电路的示例的图;
图14是示出ΔE计算电路的处理示例的图;
图15是示出选择电路的示例的图;
图16是示出识别信息计算单元的示例的图;
图17是示出第二实施方式的优化装置的示例的处理流程的流程图;
图18是示出初始设置处理的示例的流程的流程图;
图19是示出具有禁用独热约束支持功能的配置的优化装置的一部分的图;
图20是示出具有禁用独热约束支持功能的配置的优化装置中的h传播控制单元的示例的图;
图21是示出具有禁用独热约束支持功能的配置的优化装置中的ΔE计算电路的示例的图;以及
图22是示出通过使用权重值来计算能量变化的优化装置中的计算单元的示例的图。
具体实施方式
在下文中,将参照附图描述实施方式。
以下描述的优化装置通过排除对满足独热约束的状态以外的状态的搜索来缩短具有独热约束的优化问题的计算时间。
在由状态变量x1到xN表示与伊辛模型中包括的多个自旋(自旋的数目=N)相对应的N位的值的情况下,例如,当下面的表达式(1)的每个{}中的组中只存在一个值为1的状态变量时,满足独热约束。
[数学式1]
例如,在组中存在三个状态变量x1、x2、x3的情况下,状态{x1,x2,x3}={1,0,0},{0,1,0},{0,0,1}满足独热约束。另一方面,状态{x1,x2,x3}={0,0,0},{1,1,0},{1,0,1},{0,1,1},{1,1,1}不满足独热约束。为了从满足独热约束的一种状态转换为满足独热约束的另一状态,优化装置在一次状态更新处理中改变两位的值。
例如,优化装置生成汉明距离=2的状态转换。
独热约束可以通过以下的表达式(2)来表示。
[数学式2]
在表达式(2)中,G是组的数目(大于或等于2的整数),并且mj是属于组j的状态变量的数目。
考虑到独热约束的优化问题的能量函数可以表示为下面的表达式(3)。
[数学式3]
E(x)=∑Cost(xi)+λ1(∑xi-1)2+λ2f2(xi)+…+λtNft(xi) (3)
在表达式(3)中,右侧的第一项是成本函数,第二项是考虑到独热约束的独热约束项,并且第三项和后续项是考虑到其他约束条件的约束项(其他独热约束项可以包括在这些约束项中)。在不满足独热约束的情况下,足够大的值被用作λ1(约束权重),使得能量不会降低。
另一方面,使用权重值的伊辛能量函数E(x)例如由下面的表达式(4)定义。
[数学式4]
右侧的第一项是针对可以从伊辛模型中包括的所有位中选择的两个位的所有组合的两个位的值(0或1)与权重值的乘积的积分,没有遗漏和重复。状态变量xi表示索引(位识别信息)=i的位的值,状态变量xj表示索引=j的位的值,并且Wij是指示索引=i、j的位之间的相互作用的大小的权重值。注意,Wii=0。此外,在许多情况下,Wij=Wji(例如,基于权重值的系数矩阵通常是对称矩阵)。
右侧的第二项是针对所有位的偏置值与位的值的乘积之和。索引=i的位的偏置值由bi表示。
在对除了满足独热约束的状态以外的状态执行搜索的情况下,随着表达式(3)中的λ1的值增加,表达式(4)中的用于表达Wij的位的数目也增加。例如,考虑到与以上描述的N(对应于问题的大小)和Wij的平衡,来确定λ1的值。例如,首先,通过使用约为Wij的最大值的10倍的λ1来计算Wij和bi,并且进行能量最小化。如果收敛解不满足独热约束,则λ1的值增加,直到该解满足独热约束。
另一方面,在仅针对满足独热约束的状态进行搜索的情况下,由于可以减少表达式(3)的右侧的第二项的独热约束项,因此可以减少表达Wij的位的数目。
顺便提及,在表达式(4)中,当xi的值改变并变为1-xi时,xi的增量可以表示为Δxi=(1-xi)-xi=1-2xi。伴随值的该变化的能量变化(ΔEi)由下面的表达式(5)表示。
[数学式5]
在表达式(5)中,当xi从1变为0时,Δxi变为-1,并当xi从0变为1时,Δxi变为1。注意,hi被称为局部字段值(局部字段),并且通过将hi乘以取决于Δxi的符号(+1或-1)来获得ΔEi。
当xj从0变为1时hi的变化为Δhi (j)=+Wij,并当xj从1变为0时hi的变化为Δhi (j)=-Wij。类似地,当xi改变时,对于索引=j的位,hj的变化可以表示为Δhj (i)=ΔxiWij。
因此,xi和xj二者都改变时的能量变化可以由下面的表达式(6)表示。
[数学式6]
ΔEij=-Δxihi-Δxj(hj+ΔxiWij)
=-Δxihi-Δxjhj-Δx4ΔxjΔWij (6)
如上所描述的,为了使从满足独热约束的一个状态转换到满足独热约束的另一状态,改变两个位的值。在索引=i的位的值从1变为0且索引=j的位的值从0变为1的情况下能量变化表示为ΔEj时,由于Δxi=-1且Δxj=1,根据表达式(6),ΔEj可以由下面的表达式(7)表示。
[数学式7]
ΔEj=hi-hj+Wij (7)
下面描述的优化装置包括计算由表达式(7)表示的能量变化的电路。
顺便提及,当优化装置通过重复在一次状态更新处理中改变两个位的值的处理来搜索基态时,在每次状态更新处理中,更新局部字段值以计算能量变化。例如,在组中索引=l的位的值从0改变为1且索引=k的位的值从1改变为0的情况下,基于下面的表达式(8)更新N位的h1至hN。
[数学式8]
在表达式(8)中,h1 (kl)至hN (kl)是更新后的局部字段值。
为了计算h1 (kl)至hN (kl),如表达式(8)所示,在权重值的矩阵中,使用针对索引=k的行(Wk,1至Wk,N)和针对索引=l的行(Wl,1至Wl,N)。
在多次执行重复处理的优化装置中,在每次状态更新处理中,在通过两次存储器访问从存储权重值的存储器中读取每行的权重值的情况下,吞吐量性能降低。
下面描述的优化装置不仅排除对除满足独热约束的状态之外的状态的搜索,而且抑制了以上描述的吞吐量性能的降低。
(第一实施方式)
图1是示出第一实施方式的优化装置的示例的图。
优化装置10包括存储单元11和12、h生成单元13、ΔE计算单元14、选择电路15、识别信息计算单元16和更新单元17。
注意,图1示出了如下电路部分,该电路部分在N位被划分成G组的情况下,计算由于在第p组p中包括的多个(n)位之间的汉明距离=2的状态转换的发生而引起的能量变化。在图1中,省略了计算其他组的能量变化的电路部分的图示。
存储单元11保持指示N位中的每个位之间的相互作用的大小的权重值的矩阵。在初始设置处理期间,权重值的矩阵通过控制单元(未示出)被存储在存储单元11中。在图1的示例中,示出了指示组p中包括的位中的每个位(索引=p1至pn)与N位之间的相互作用的大小的权重值。通过使用例如寄存器、静态随机存取存储器(SRAM)等来实现存储单元11。
存储单元12保持由存储单元11保持的权重值的矩阵中的与用于识别G组中的每个组中值为1的位的索引相对应的所有行。在图1的示例中,在组1至组G中的每一个中,将值均为1的位的索引表示为k1至kG。例如,索引=k1是组1中值为1的位的索引,并且索引=kG是组G中值为1的位的索引。
此外,图1的示例示出了保持组p中包括的n位中的每一位与相应组中的值均为1的位之间的权重值的保持单元12p1、12p2、...和12pn。例如,保持单元12p1保持指示索引=p1的位与相应的索引=k1至kG的位之间的相互作用的大小的权重值(Wk1,p1,Wk2,p1,……,WkG,p1)。保持单元12pn保持指示索引=pn的位与相应的索引=k1至kG的位之间的相互作用的大小的权重值(Wk1,pn,Wk2,pn,……,WkG,pn)。保持单元12p1至12pn每个通过使用例如寄存器、SRAM等来实现。
如稍后将描述的,选择电路15输出其值被允许从0改变为1的位的索引=l。这时,从存储单元12读取所有位与索引=l的位所属的组中包括的位中值为1的位(索引=k(k1至kG中的任何一个)的位))之间的权重值。例如,从存储单元12读取与索引=k相对应的权重值的行。例如,在索引=l是属于组2的任何位的索引的情况下,从存储单元12读取权重值为Wk2,1至Wk2,N的行。
通过从存储单元11读取的与索引=l相对应的权重值的行来更新保持在存储单元12中的权重值。这是因为在索引=l的位所属的组的另一位的值接下来从0变为1的情况下,可以将与索引=l相对应的权重值的行用作与索引=k相对应的权重值的行。
注意,由于对关于属于同一组的位的权重值执行向存储单元12的写入和从存储单元12的读取,因此应用了用于减少所谓的读写问题的发生的配置。稍后将描述该配置的示例。
此外,在优化装置10中执行后面描述的副本交换方法(也被称作交换蒙特卡洛方法)的情况下,保持在存储单元12中的权重值针对多个副本中的每一个被独立地保持。
h生成单元13基于从存储单元11读取的与索引=l相对应的权重值的行和从存储单元12读取的与索引=k相对应的权重值的行来生成局部字段值。在相同的定时(时钟定时)执行从存储单元11和12的读取。
在图1的示例中,h生成单元13包括h生成电路13p1、13p2、……和13pn,所述h生成电路生成作为针对组p中包括的相应n位的局部字段值的hp1、hp2、……和hpn。尽管未示出,但是h生成电路13p1至13pn中的每一个均包括保持单元(例如,寄存器),并且保持并更新hp1至hpn中的任何一个。例如,h生成电路13p1通过使用Wk,p1和Wl,p1来计算hp1-Wk,p1+Wl,p1来更新hp1。在索引=l的位属于组1的情况下,Wk,p1=Wk1,p1。h生成电路13pn通过使用Wk,pn,Wl,pn来计算hpn-Wk,pn+Wl,pn来更新hpn。在索引=l的位属于组1的情况下,Wk,pn=Wk1,pn。
hp1至hpn的初始值例如是偏置值(bp1至bpn),并且在初始设置处理期间由控制单元(未示出)进行设置。除了寄存器之外,还通过使用例如加法器或减法器来实现h生成电路13p1至13pn。在优化装置10中执行后面描述的副本交换方法的情况下,对于每个副本独立地保持hp1至hpn。
ΔE计算单元14基于由h生成单元13生成的局部字段值来计算能量变化。在图1的示例中,ΔE计算单元14包括在组p中包括的相应n位变化的情况下计算能量变化(ΔEp1、ΔEp2、...、ΔEpn)的ΔE计算电路14p1、14p2、...和14pn。
当组p满足独热约束时,在组p中包括的n位中,一位的值为1,并且其他位的值为0。下文中,在指示组p中n位的值的状态变量(xp1、...、xpn)中,假设xp1为1,并且xp2至xpn为0。
在这种情况下,ΔE计算电路14p2至14pn基于hp2至hpn计算由于xp1从1变为0并且xp2至xpn的值从0变为1而引起的ΔEp1至ΔEpn。在ΔEp1至ΔEpn中,基于表达式(7)计算ΔEp2至ΔEpn。注意,在表达式(4)的Wijxixj中,在xi和xj是属于期望满足同一独热约束的同一组的两个位的值的情况下,由于xi或xj为0(在图1的示例中,xp1=1,xp2至xpn=0),因此得到Wijxixj=0。例如,Wij不会对能量做出贡献。因此,在图1的示例中设置Wij=0。因此,例如,通过表达式ΔEp2=hp1-hp2来计算ΔEp2,并且通过表达式ΔEpn=hp1-hpn来计算ΔEpn。
注意,在汉明距离=2的状态转换中,还存在xi从1变为0并进一步从0变为1的转换。然而,由于状态没有变化,在减少计算时间方面不期望发生这样的状态转换。在图1的示例中,一个局部字段值(hp1)被提供给ΔE计算电路14p1,该ΔE计算电路14p1计算当值为1的xp1改变时的ΔEp1。在这样的ΔE计算电路14p1基于hp1计算当xp1如上所描述的改变两次时的ΔEp1的情况下,计算当i=j时的表达式(7),并且获得ΔEp1=0。在ΔEP1=0的情况下,由于后面描述的选择电路15的处理,存在允许以上描述的xp1改变两次的状态转换的可能性。在选择电路15中,随着能量变化变为较大的正值,引起能量变化的状态转换的容许概率降低。因此,由更新单元17控制ΔE计算电路14p1以输出预定的正值(在图1中表示为“ΔEmax”)。ΔEmax例如是可以由优化装置10生成的正的最大值。例如,在优化装置10可以生成26位值的情况下,正的最大值在由二的补码表示时为01...1(1的数目是25)。
例如,值为1的控制信号ENp1从更新单元17提供至ΔE计算电路14p1,并且ΔE计算电路14p1输出以上描述的ΔEmax。另一方面,例如,向ΔE计算电路14p2至14pn提供例如来自更新单元17的值均为0的控制信号ENp2至ENpn,并且ΔE计算电路14p2至14pn计算以上描述的能量变化。
注意,在图1的示例中,假设在组p中存在三位或更多位,但是位的数目可以是两个。
选择电路15基于热激发能量与由相应多个ΔE计算电路输出的能量变化之间的大小关系,输出用于从组1到组G中的每个组中包括的值均为0的位中识别允许值从0更新为1的一位的索引=l。基于随机数和从控制单元(未示出)输入的温度参数(T)来确定热激发能量。
在优化装置10中执行模拟退火的情况下,例如,由控制单元控制T,使得每当更新伊辛模型的状态的处理被重复预定次数时,该值减小。此外,在执行稍后描述的副本交换方法的情况下,将不同的T值应用于相应多个副本。注意,稍后将描述执行如上所描述的选择电路15的功能的电路示例。
识别信息计算单元16基于由选择电路15输出的索引来检测被允许更新的位所属的组,并且输出用于识别属于所检测的组的值为1的位的索引=k。识别信息计算单元16例如通过使用表数据或逻辑电路来检测组并生成索引。
在图1的示例中,识别信息计算单元16还输出索引=l,但是在由选择电路15输出的索引=l被直接提供给更新单元17的情况下,识别信息计算单元16不需要输出索引=l。
更新单元17包括保持N位的值(x1至xN)的存储单元17a。存储单元17a通过使用例如寄存器、SRAM等来实现。更新单元17将通过由识别信息计算单元16输出的索引=k识别的位的值从1更新为0,并且将通过索引=l识别的位的值从0更新为1。此外,更新单元17基于x1至xN输出以上描述的控制信号ENp1至ENpn。
注意,尽管在图1中未示出,但是索引=l用于从存储在存储单元11中的权重值中选择要提供给存储单元12或h生成单元13的权重值。此外,识别信息计算单元16可以输出用于识别检测到的组的组识别信息(组索引)。例如,当更新存储在存储单元12中的权重值时,使用组索引。稍后将描述这些类型的处理。
在下文中,将描述优化装置10的操作示例。优化装置10使用以上描述的模拟退火或副本交换方法。
副本交换方法是以下方法:其中,与多个温度并行地独立地(逻辑地)执行状态转换,每隔一定次数的迭代将各个状态(副本)的能量彼此进行比较,并且状态以预定概率(例如,根据蒙特卡洛方法的概率)在不同温度之间交换。因此,可以获得与模拟退火的效果相似的效果,并且与模拟退火相比,可以缩短在相应温度下状态的概率分布收敛为玻尔兹曼分布的弛豫时间。注意,通过在副本之间而不是状态之间交换温度可以获得类似的效果。在利用如图1所示的优化装置10实现副本交换方法的情况下,多个副本被流水线化并操作。然后,控制单元(未示出)每隔一定次数的迭代基于每个副本的能量以预定概率在设置有相邻温度的副本之间交换温度。与替换状态相比,在替换温度中可以更多地减少要发送和接收的数据量。
在下文中,将描述优化装置10的操作的示例的流程。
首先,执行初始设置。初始设置包括例如在控制单元(未示出)的控制下将x1到xN全部都设置为0,然后将每个组中的一位的值设置为1并且将其他位的值设置为0,并设置局部字段值的初始值。此外,作为初始设置,执行将权重值写入存储单元12的处理、基于相应设置的位的值和表达式(5)生成(更新)局部字段值的处理等。
在如上描述的初始化之后,ΔE计算电路14p1至14pn如上所描述的计算ΔEp1至ΔEpn,并且选择电路15输出用于识别允许值从0更新为1的一位的索引=l。
例如,在由选择电路15输出的索引=l与值为0的位的索引=pn匹配的情况下,识别信息计算单元16基于索引=l检测组p。然后,识别信息计算单元16将组p中的值为1的位的索引=p1输出为索引=k。
在这种情况下,更新单元17接收索引=k、l,并且将xp1从1更新为0,并且将xpn从0更新为1。因此,在组p中,在满足独热约束的状态之间的转换成为可能。
此外,在xp1从1更新为0并且xpn从0更新为1的情况下,在ΔE计算单元14中,将hpn提供给ΔE计算电路14p1,并且ΔE计算电路14p1计算ΔEp1=hpn-hp1。另一方面,ΔE计算电路14pn计算ΔEmax。如上所描述的,在ΔE计算电路14p1至14pn中,每当更新属于组p的位的值时,向其提供两个不同的局部字段值的ΔE计算电路发生改变。稍后将描述用于控制局部字段值的供应目的地的改变的这样的配置的示例。
此外,当选择电路15输出索引=l时,h生成单元13更新局部字段值。在局部字段值的更新期间,在同一定时将用于生成局部字段值的权重值从存储单元11和12提供给h生成单元13。例如,在h生成单元13中,从存储单元11向h生成电路13p1至13pn提供Wl,p1至Wl,pn,并且从存储单元12向h生成电路13p1至13pn提供Wk,p1至Wk,pn,h生成电路13p1至13pn生成属于组p的位的局部字段值。然后,如上所描述的,h生成电路13p1至13pn更新hp1至hpn。此外,此时,Wl,1到Wl,N被写入存储单元12。例如,在索引=l=pn的情况下,从存储单元11读取Wpn,1至Wpn,N,并将Wpn,1至Wpn,N写入存储单元12。
例如,在执行模拟退火的情况下,输出在重复以上描述的状态更新处理预定次数之后而获得的状态(x1至xN)作为优化问题的解。
注意,更新单元17可以基于与索引=k、l相对应的ΔEj来更新能量,并保持在每个更新时间处的最小能量和当获得最小能量时的状态(在最小能量时的状态)。在这种情况下,当状态更新处理重复预定次数时,更新单元17可以输出所保持的最小能量时的状态作为解。
此外,在执行副本交换方法而不是模拟退火的情况下,针对每个副本执行以上描述的状态更新处理。然后,每隔一定的重复次数基于每个副本的能量以预定的概率在设置有相邻温度的副本之间交换温度。然后,当达到预定的重复次数时,更新单元17输出到目前为止在所有副本中获得的能量中的最小能量时的状态作为解。
如上所描述的,根据第一实施方式的优化装置10,基于当每个组中值为1的一位和值为0的一位二者都变化时的能量变化,确定允许进行哪两位的转换。然后,所确定的两位的值被更新。结果是,抑制了不满足独热约束的状态转换,并且可以减小搜索空间。因此,可以加快对基态的搜索。
此外,根据优化装置10,由于可以减小表达式(3)的右侧第二项的独热约束项,因此可以减小由独热约束项引起的能量垒,并且可以缩短状态转换的时间。
此外,由于如上所描述的可以减少表达式(3)的右侧第二项的独热约束项,因此可以减少用于表达权重值的位数,并且可以减少用于存储权重值的硬件量。
此外,第一实施方式的优化装置10设置有存储单元12,使得获得以下效果。以下,将描述未设置存储单元12的优化装置作为比较例。
图2是示出比较例的优化装置的图。在图2中,与图1所示的元件相同的元件用相同的附图标记表示。
在图2所示的优化装置10a中,在不同的定时从存储单元11读取用于更新局部字段值的关于索引=l的权重值和关于索引=k的权重值,并且将其提供给h生成单元13。例如,在局部字段值的每次更新中,连续发生两次存储器访问。
图3是示出使用副本交换方法的情况下第一实施方式的优化装置与比较例的优化装置之间的处理时间的差异的示意图。
图3示出了在M个副本流水线化并且对每个副本执行一次状态更新处理的情况下的处理时间的示例。
时间tm1和tm2表示优化装置10和10a读取用于更新局部字段值的权重值的时间。优化装置10在同一定时从存储单元11和12读取关于索引=l的权重值和关于索引=k的权重值。因此,时间tm1比时间tm2短。由于针对每个副本执行用于读取权重值的存储器访问,所以当副本的数目增加时,时间tm1与tm2之间的差会在处理时间中更加明显地反映出来,并导致例如图3所示的处理时间t1与t2之间的差异。
注意,同样在使用模拟退火的情况下,可以在局部字段值的每次更新中缩短存储器访问时间,使得可以抑制处理时间的增加。
如上所描述的,在第一实施方式的优化装置10中,关于索引=k的权重值被预先保存在与存储单元11不同的存储单元12中,从而可以缩短存储器访问时间并且可以抑制吞吐量的降低。因此,可以进一步缩短具有独热约束的优化问题的计算时间。
(第二实施方式)
图4是示出第二实施方式的优化装置的示例的图。
优化装置20包括计算单元21、选择电路22、识别信息计算单元23、更新单元24和控制单元25。
计算单元21计算在以上描述的G组中的每个组中当通过汉明距离=2的状态转换来执行从满足独热约束的一种状态转换到满足独热约束的另一状态时的能量变化(ΔE1至ΔEN)。
选择电路22基于热激发能量与ΔE1至ΔEN之间的大小关系来输出用于从组1至组G中的每个组中包括的值均为0的位中识别允许值从0更新为1的一位的索引=l。热激发能量基于随机数和从控制单元25输入的T来确定。注意,根据热激发能量与ΔE1至ΔEN之间的大小关系,存在甚至值均为0的位中的一位都不允许更新的情况。在下文中,假设选择电路22输出指示是否允许更新的标志以及索引=l。
识别信息计算单元23基于通过选择电路22输出的索引=l和标志检测被允许更新的位所属的组。然后,识别信息计算单元23输出用于识别属于所检测的组的值为1的位的索引=k以及用于识别所检测的组的组索引=gl。在下文中,假设识别信息计算单元23还输出从选择电路22提供的索引=l和标志。索引=l被提供给计算单元21,并且当对用于计算能量变化的每一位的局部字段值进行更新时使用索引=l。此外,组索引=gl也被提供给计算单元21,并且当更新保持在计算单元21等中包括的存储单元中的权重值时使用组索引=gl。
注意,在标志具有指示不允许更新的值的情况下,识别信息计算单元23将例如索引=k、l和组索引=gl设置为无效值(例如,0)。
更新单元24包括保持N位的值(x1至xN)的存储单元24a。在应用副本交换方法的情况下,针对每个副本保持N位的值。存储单元24a通过使用例如寄存器、SRAM等来实现。在标志具有指示允许更新的值的情况下,更新单元24将通过由识别信息计算单元23输出的索引=k识别的位的值从1更新为0,并且将通过索引=l识别的位的值从0更新为1。注意,更新单元24可以基于与索引=k、l相对应的能量变化来更新能量,并保持在每个更新时间处的最小能量和当获得最小能量时的状态(在最小能量时的状态)。此外,更新单元24将控制信号EN提供给计算单元21,并且将x1至xN提供给计算单元21。稍后将描述使用控制信号EN和x1至xN的计算单元21的处理的示例。
控制单元25执行优化装置20的稍后描述的初始设置处理。此外,在执行模拟退火的情况下,例如每当更新伊辛模型的状态的处理重复预定次数时,控制单元25根据由控制装置26指定的温度计划表减小T的值。此外,在执行副本交换方法的情况下,每当更新伊辛模型的状态的处理重复预定次数时,控制单元25基于每个副本的能量以预定交换概率在设置有相邻温度的副本之间交换温度。
此外,在执行模拟退火的情况下,控制单元25获得在状态更新处理重复预定次数之后保持在存储单元24a中的状态(x1至xN),并例如将状态发送至控制装置26作为优化问题的解。注意,在更新单元24的存储单元24a保持最小能量或最小能量时的状态的情况下,控制单元25可以在状态更新处理重复预定次数之后获取关于能量和状态的信息并将该信息发送至控制装置26。在执行副本交换方法的情况下,控制单元25使更新单元24的存储单元24a保持每个副本中的最小能量和最小能量时的状态。然后,当达到预定的重复次数时,控制单元25可以从更新单元24获取到目前为止在所有副本中获得的能量中的最小能量和最小能量时的状态,并例如将能量和状态发送至控制装置26作为优化问题的解。
控制单元25可以由用于特定应用的电子电路例如专用集成电路(ASIC)、现场可编程门阵列(FPGA)等来实现。注意,控制单元25可以是诸如中央处理单元(CPU)或数字信号处理器(DSP)的处理器。在这种情况下,处理器通过执行存储在存储器(未示出)中的程序来执行以上描述的处理。
(计算单元21的示例)
图5是示出计算单元的示例的图。
计算单元21包括存储单元21a、选择单元21b、存储单元21c、保持单元21d1至21dN、h生成单元21e、h传播控制单元21f和ΔE计算单元21g。
存储单元21a保持权重值(W11至WNN)。W11至WNN在初始设置处理期间通过控制单元25存储在存储单元21a中。存储单元21a通过使用例如寄存器、SRAM等来实现。
选择单元21b包括选择电路21b1至21bN。选择电路21b1至210bN中的每一个基于由识别信息计算单元23输出的索引=l选择和输出保持在存储单元21a中的权重值。例如,选择电路21bi从W1i至WNi中选择并输出Wli,并且选择电路21bj从W1j至WNj中选择并输出Wlj。如上所描述的,选择单元21b具有选择要从存储单元21a读取的权重值的功能。
存储单元21c包括存储电路21c1至21cN,存储电路21c1至21cN用于保持由存储单元21a保持的W11至WNN的矩阵中的与用于识别每个组中值为1的位的索引相对应的所有行。此外,存储单元21c包括解码单元21ca,该解码单元21ca基于组索引=gl选择要从存储单元21c读取的权重值,并输出稍后描述的开关信号。
图6是示出每个存储电路中保持的权重值的示例的图。
存储电路21c1保持权重值(Wk1,1,Wk2,1,……,WkG,1),所述权重值指示索引=1的位与相应的G组中的值均为1的位之间的相互作用的大小。索引=k1至kG是在相应的组1至G中值均为1的位的索引。此外,存储电路21ci保持权重值(Wk1,i,Wk2,i,……,WkG,i),所述权重值指示索引=i的位与索引=k1至kG的位之间的相互作用的大小。存储电路21cj保持权重值(Wk1,j,Wk2,j,……,WkG,j),所述权重值指示索引=j的位与索引=k1至kG的位之间的相互作用的大小。存储电路21cN保持权重值(Wk1,N,Wk2,N,……,WkG,N),所述权重值指示索引=N的位与索引=k1至kG的位之间的相互作用的大小。
图7是示出存储电路和解码单元的示例的图。
尽管图7示出了存储电路21c1至21cN中的存储电路21ci和21cj的电路示例,但是其他存储电路可以通过类似的电路来实现。
存储电路21ci包括两个保持单元,每个保持单元保持Wk1,i,Wk2,i,……和WkG,i。例如,图7中的保持单元30a和30b每个保持Wkx,i,Wkx,i指示索引=i的位与组x中值为1的索引=kx的位之间的相互作用的大小。保持单元30c和30d每个保持Wky,i,Wky,i指示索引=i的位与组y中值为1的索引=ky的位之间的相互作用的大小。
保持单元30a至30d通过使用例如寄存器、SRAM等来实现。
此外,存储电路21ci的每个保持单元包括用于切换与选择单元21b连接/从选择单元21b断开连接的开关以及用于切换与h生成单元21e连接/从h生成单元21e断开连接的开关。例如,开关31a、31b、31c和31d是用于切换选择单元21b与保持单元30a至30d之间的连接/断开连接的开关。开关32a、32b、32c和32d是用于切换h生成单元21e与保持单元30a至30d之间的连接/断开连接的开关。
存储电路21cj也包括与存储电路21ci的元件类似的元件。例如,保持单元33a和33b保持Wkx,j,Wkx,j指示索引=j的位与组x中值为1的索引=kx的位之间的相互作用的大小。保持单元33c和33d保持Wky,j,Wky,j指示索引=j的位与组y中值为1的索引=ky的位之间的相互作用的大小。此外,存储电路21cj包括用于切换选择单元21b与保持单元33a至33d之间的连接/断开连接的开关34a、34b、34c和34d,以及用于切换h生成单元21e与保持单元33a至33d之间的连接/断开连接的开关35a、35b、35c和35d。
解码单元21ca包括解码器36,解码器36基于组索引=gl生成用于选择要从存储单元21c读取的权重值的解码信号。解码器36将具有与组索引=gl匹配的组索引的组的解码信号设置为1,并且将其他组的解码信号设置为0。例如,在组索引=gl与组x的组索引(下文中被称为gx)匹配的情况下,解码信号dx变为1,并且解码信号dy变为0。在组索引=gl与组y的组索引(下文中称为gy)匹配的情况下,解码信号dy变为1,并且解码信号dx变为0。
解码单元21ca还包括逻辑积(AND)电路和访问计数器,其基于由解码器36输出的解码信号生成用于接通和断开以上描述的包括在存储电路21cl至21N中的开关的开关信号。例如,针对每个组设置一个访问计数器和两个AND电路。图7的示例示出了针对组x设置的访问计数器37a和AND电路38a和38b,以及针对组y设置的访问计数器37b和AND电路38c和38d。
访问计数器37a对解码信号dx变为1的次数进行计数,并且在计数值为奇数的情况下,输出1作为信号okx并输出0作为信号ekx,并且在计数值为偶数的情况下,输出0作为信号okx并输出1作为信号ekx。访问计数器37b对解码信号dy变为1的次数进行计数,并且在计数值为奇数的情况下,输出1作为信号oky并输出0作为信号eky,并且在计数值为偶数的情况下,输出0作为信号oky并输出1作为信号eky。
注意,访问计数器37a和37b可以由1位计数器实现。
AND电路38a输出解码信号dx和信号ekx的逻辑积。在AND电路38a的输出信号为1的情况下,开关31b、34b、32a和35a接通,并且在AND电路38a的输出信号为0的情况下,开关31b、34b、32a和35a断开。AND电路38b输出解码信号dx和信号okx的逻辑积。在AND电路38b的输出信号为1的情况下,开关31a、34a、32b和35b接通,并且在AND电路38b的输出信号为0的情况下,开关31a、34a、32b和35b断开。AND电路38c输出解码信号dy和信号eky的逻辑积。在AND电路38c的输出信号为1的情况下,开关31d、34d、32c和35c接通,并且在AND电路38c的输出信号为0的情况下,开关31d、34d、32c和35c断开。AND电路38d输出解码信号dy和信号oky的逻辑积。在AND电路38d的输出信号为1的情况下,开关31c、34c、32d和35d接通,并且在AND电路38d的输出信号为0的情况下,开关31c、34c、32d和35d断开。
图8是示出存储单元的操作示例的图。
图8示出了存储单元21c的存储电路21ci中的保持单元30a和30b的操作示例。在组索引=gl与组x的组索引=gx匹配的情况下,解码信号dx变成1。
在访问计数器37a的计数值为奇数的情况下(在信号okx为1的情况下),开关31a和32b接通,并且开关31b和32a断开。因此,保持单元30a连接至选择单元21b,保持单元30a与h生成单元21e断开连接,并且执行将Wkx,i写入保持单元30a。另一方面,保持单元30b与选择单元21b断开连接,保持单元30b连接至h生成单元21e,并且执行从保持单元30b读取Wkx,i。
在访问计数器37a的计数值为偶数的情况下(在信号ekx为1的情况下),开关31a和32b断开,并且开关31b和32a接通。因此,保持单元30a与选择单元21b断开连接,保持单元30a连接至h生成单元21e,并且执行从保持单元30a读取Wkx,i。另一方面,保持单元30b连接至选择单元21b,保持单元30b与h生成单元21e断开连接,并且执行将Wkx,i写入保持单元30b。
在组索引=gl与组x的组索引=gx不匹配的情况下,解码信号dx变为0,开关31a、31b、32a和32b断开,并且保持单元30a和30b不工作。
如上所描述的,解码单元21ca基于组索引=gl将针对多个组中的每个组设置的第一保持单元(保持单元30a、33a等)或第二保持单元(保持单元30b、33b等)中的一个保持单元设置为写入目标。然后,解码单元21ca将另一保持单元设置为读取目标。
图9和图10是每个均示出存储单元的操作示例的时序图。
图9和图10每个均示出了当使用副本交换方法并且对多个副本执行流水线处理时存储单元21c的操作示例。
图9示出了在连续两次(两个周期)状态更新处理中组索引=gl是同一组索引=gx的情况下存储单元21c的存储电路21ci的操作示例。
在周期C1中,在由识别信息计算单元23输出的k为1且l为2并且信号okx=1且信号ekx=0的情况下,将W2,i写入保持单元30a,作为接下来当组索引=gx提供给存储单元21c时要读取的Wkx,i。此外,从保持单元30b读取W1,i作为Wkx,i。
在下一周期C2中,在属于组索引=gx的组的位中,值为1的位是其值在周期C1中改变的索引=2的位,使得由识别信息计算单元23输出的索引=k变成2。此外,由于同一组索引=gx被连续地提供给存储单元21c,所以访问计数器37a计数,并且信号变为okx=0且ekx=1。因此,从保持单元30a读取W2,i作为Wkx,i。此外,在由识别信息计算单元23输出的l为3的情况下,将W3,i写入保持单元30b,作为接下来当提供组索引=gx时要读取的Wkx,i。
图10示出了在连续两次(两个周期)状态更新处理中组索引=gl变为不用的组索引=gx、gy的情况下存储单元21c的存储电路21ci的操作示例。
周期C1中的操作与图9中的操作相同。在周期C2中,组索引=gy被提供给存储单元21c,使得对存储电路21ci中的保持单元30c和30d执行写入或读取。在由识别信息计算单元23输出的k为5且l为6并且信号oky=1且信号eky=0的情况下,将W6,i写入保持单元30c,作为接下来当提供组索引=gy时要读取的Wky,i。此外,从保持单元30d读取W5,i作为Wkx,i。
如上所描述的,存储单元21c包括针对多个组中的每个组的第一保持单元(保持单元30a、33a等)和第二保持单元(保持单元30b、33b等)。然后,执行将与索引=l相对应的权重值的行写入第一保持单元,并且执行从第二保持单元读取与索引=k相对应的权重值的行。然后,当接下来从存储单元21a中读取与同一组的索引=l相对应的行时,将所读取的与索引=l相对应的行写入第二保持单元。此外,此时,读取在第一保持单元中保持的权重值的行作为与索引=k相对应的权重值的行。
切换并使用执行向其写入的保持单元和执行从其读取的保持单元,从而可以在相同的定时执行关于属于同一组的位的权重值的写入和读取。因此,可以减少读写问题的发生。
注意,在优化装置20中执行副本交换方法的情况下,针对每个副本独立地保持存储单元21c中保持的权重值。
描述返回到图5的描述。
保持单元21d1至21dN中的每一个均保持组索引(g1至gN)之一。例如,保持单元21di保持gi,gi用于识别索引=i的位所属的组。保持单元21dj保持gj,gj用于识别索引=j的位所属的组。
图11是示出组索引值的示例的图。
在图11的示例中,索引为1、2、……和s1的位所属的组1的组索引是1,并且索引为s1+1、s1+2、……和s2的位所属的组2的组索引是2。此外,索引为sG-1+1、sG-1+2、……和N的位所属的组G的组索引是G。
如以上所描述的,较小的值被分配给例如具有较小索引的位所属的组索引。
保持单元21d1至21dN的总存储容量由N确定。保持单元21d1至21dN中的每一个通过使用例如寄存器或SRAM来实现。
在图5中,h生成单元21e包括h生成电路21e1至21eN。尽管未示出,但是h生成电路21e1至21eN中的每一个均包括保持单元(例如,寄存器)并且保持并更新h1至hn中的任何一个。例如,h生成电路21ei通过使用由选择电路21bi选择的Wli和从存储电路21ci读取的Wki来计算hi-Wki+Wli来更新hi。h生成电路21ej通过使用由选择电路21bj选择的Wlj和从存储电路21cj读取的Wkj来计算hj-Wkj+Wlj来更新hj。h1至hN的初始值例如是偏置值(b1至bN),并且在初始设置处理期间由控制单元25设置。除了保持单元之外,还通过使用例如加法器或减法器来实现每个h生成电路21e1至21eN。
注意,在优化装置20中执行副本交换方法的情况下,针对每个副本独立地保持h1至hN。
h传播控制单元21f基于x1至xN和g1至gN来控制值均为1的位的局部字段值的传播目的地(供应目的地)。例如,在值为1的索引=i的位和值为0的索引=j的位属于同一组的情况下,h传播控制单元21f将由h生成电路21ei输出的hi传播至ΔE计算电路21gi,并且还将hi传播至向其提供hj的ΔE计算电路21gj。
图12是示出h传播控制单元的示例的图。
h传播控制单元21f包括开关40a1、40a2、40a3、……、40a(N-1)和40aN,控制信号生成电路40b1、40b2、40b3、……和40b(N-1)以及开关40c1、40c2、40c3、……和40c(N-1)。
x1至xN中的任何一个被输入至开关40a1到40aN中的每一个,并且每个开关在输入状态变量为1的情况下接通,并且在输入状态变量为0的情况下断开。将h1、h2、h3、……、hN-1和hN中的任何一个输入至开关40a1到40aN中的每一个的一个端子,并且另一端子连接至ΔE计算电路21g1、21g2、21g3、……、21g(N-1)和21gN中的任何一个。例如,h1被输入至开关40a1的一个输入端子,并且在x1为1的情况下,开关40a1接通并且h1被提供给ΔE计算电路21g1。
控制信号生成电路40b1至40b(N-1)中的每一个包括输入端子IN1和IN2以及输出端子OUT。具有相邻索引的两个位分别所属的组的组索引被输入至输入端子IN1和IN2,并且在两个组索引彼此匹配的情况下,输出端子OUT输出1。
图13是示出控制信号生成电路的示例的图。
图13示出了图12中的控制信号生成电路40b1至40b(N-1)中的第i个控制信号生成电路40bi的示例。
控制信号生成电路40bi包括异或非(ExNOR)电路41a1至41at和AND电路41b。用于表达组索引的位的数目的最大值由t表示。如果N=1024,则t至多为10。ExNOR电路41a1至41at中的每一个输入所输入的两个组索引的对应位中的每一位的值,并且在两位彼此匹配的情况下输出1。例如,ExNOR电路41a1输入gi和gi+1的最低有效位gi<1>和gi+1<1>,并且在两位彼此匹配的情况下输出1。ExNOR电路41at输入gi和gi+1的最高有效位gi<t>和gi+1<t>,并且在两位彼此匹配的情况下输出1。
AND电路41b在ExNOR电路41a1至41at的输出全部都是1的情况下输出1,并且在ExNOR电路41a1至41at的输出中的至少一个是0的情况下输出0。
图12中的开关40c1至40c(N-1)中的每一个连接在开关40a1至40aN中的任何两个相邻开关的另一端子(连接至ΔE计算电路的一侧)之间。此外,在由控制信号生成电路40b1至40b(N-1)中的任何一个输出的值为1的情况下,开关40c1至40c(N-1)中的每一个接通。
例如,开关40c1连接在开关40a1的另一端子与开关40a2的另一端子之间,并且在控制信号生成电路40b1输出1的情况下接通。
开关40a1至40aN和40c1至40c(N-1)中的每一个例如是传输门。
在如图12所示的h传播控制单元21f中,例如,在索引=1至3的位属于同一组并且x2=1且x1=0且x3=0的情况下,开关40a1和40a3断开,并且开关40a2接通。此外,由于g1=g2=g3,因此控制信号生成电路40b1和40b2输出1,并且开关40c1和40c2接通。因此,h2经由开关40a2被提供给ΔE计算电路21g2,并且还经由开关40c1被提供给ΔE计算电路21g1,并且经由开关40c2被提供给ΔE计算电路21g3。
注意,在索引=4的位与索引=1至3的位属于不同的组的情况下,满足g3≠g4,使得控制信号生成电路40b3输出0,并且开关40c3断开。
描述返回到图5的描述。
ΔE计算单元21g包括ΔE计算电路21g1至21gN。ΔE计算电路21g1至21gN通过使用h1至hN来计算当通过汉明距离=2的状态转换执行从满足独热约束的一个状态到满足独热约束的另一状态的转换时的ΔE1至ΔEN。
h1至hN中的任何一个从h生成电路21e1至21eN中的任何一个直接提供给ΔE计算电路21g1至21gN中的每一个。此外,由h传播控制单元21f向ΔE计算电路传播与值为0的位属于同一组的值为1的位的局部字段值,从h生成电路21e1至21eN中的任何一个向该ΔE计算电路提供该值为0的位的局部字段值。
图14是示出ΔE计算电路的处理示例的图。
在某个组中,由h传播控制单元21f向ΔE计算电路21gj传播与值为0的位属于同一组的值为1的位的hi,从h生成电路21ej直接向ΔE计算电路21gj提供该值为0的位的hj。
ΔE计算电路21gj通过计算hi-hj来计算由于xi从1到0的变化和xj从0到1的变化而引起的ΔEj。
向ΔE计算电路21gi提供hi。如第一实施方式的优化装置10的描述中所描述的,为了避免通过同一位进行的汉明距离=2的状态转换,ΔE计算电路21gi由控制信号ENi=1控制,以输出作为预定正值的ΔEmax。ΔEmax例如是可以由优化装置20生成的正的最大值。注意,控制信号ENj=0被提供给ΔE计算电路21gj,并禁用输出ΔEmax的功能。例如,控制信号ENi=1被提供给ΔE计算电路21gi,ΔE计算电路21gi直接接收值为1的位的hi,并且控制信号ENj=0被提供给ΔE计算电路21gj,ΔE计算电路21gj直接接收值为0的位的hj。控制信号ENi和ENj由更新单元24基于x1至xN而生成。
(选择电路22的示例)
图15是示出选择电路的示例的图。
选择电路22包括符号反转单元22a、偏移加法单元22b、随机数生成电路22c、选择规则应用单元22d、乘法器22e、比较单元22f和选择器22g。
符号反转单元22a通过将ΔE1、ΔE2、……和ΔEN中的每一个乘以-1来使符号反转。
偏移加法单元22b将偏移值与符号反转单元22a的输出值(-ΔE1至-ΔEN)中的每一个相加。当由后面描述的选择器22g输出的标志指示不允许更新时(例如,当不发生状态转换时),偏移加法单元22b增加偏移值。另一方面,当标志指示允许更新时(例如,当发生状态转变时),偏移加法单元22b将偏移值设置为0。当偏移值增加时,很可能允许状态转换,并且在当前状态处于局部解的情况下,促进从局部解的逃逸。
随机数生成电路22c生成大于或等于0且小于或等于1的均匀的随机数(r)。
选择规则应用单元22d基于用于执行模拟退火或副本交换方法的选择规则(蒙特卡洛方法或吉布斯方法)来输出值。
例如,在执行模拟退火的情况下,如果将引起一定能量变化的状态转换的容许概率A(ΔE,T)确定为下面的表达式(9)和(10),则已经证明,状态在时间(迭代次数)无穷大的限制下达到了最优解。
[数学式9]
A(ΔE,T)=f(-ΔE/T) (9)
[数学式10]
在表达式(9)和(10)中,T是以上描述的温度参数。
在使用由表达式(9)表示的容许概率A(ΔE,T)的情况下,如果在充分重复之后达到稳定状态,则对于热力学中的热平衡状态,每个状态的占有概率遵循玻尔兹曼分布。然后,当温度从高温逐渐降低时,低能量状态的占有概率增加,使得当温度充分降低时期望获得低能量状态。由于该状态与材料退火时的状态变化非常相似,因此该方法称为模拟退火。此时,增加能量的状态转换的随机发生对应于物理学中的热激发。
可以通过基于表达式(9)和(10)中f(-ΔE/T)与均匀随机数r之间的比较结果来输出值的比较器来实现输出标志(=1)的电路,该标志(=1)指示允许以容许概率A(ΔE,T)引起ΔE的状态转换。
然而,也可以通过执行以下修改来实现相同的功能。即使将相同的单调递增函数应用于两个数字,大小关系也不会改变。因此,即使将相同的单调递增函数应用于比较器的两个输入,比较器的输出也不会改变。例如,可以使用f(-ΔE/T)的逆函数f-1(-ΔE/T)作为要应用于f(-ΔE/T)的单调递增函数,以及使用f-1(r)作为要应用于均匀随机数的单调递增函数,在f-1(r)中,f-1(-ΔE/T)的-ΔE/T是r。在这种情况下,可以看出,具有与以上描述的比较器的功能相似的功能的电路可以是当-ΔE/T大于f-1(r)时输出1的电路。此外,由于T为正,因此该电路可以是当-ΔE大于T·f-1(r)时输出1的电路。
选择规则应用单元22d通过使用转换表来输出f-1(r)的值,该转换表用于将输入的均匀随机数转换成以上描述的f-1(r)的值。在应用蒙特卡洛方法的情况下,f-1(r)是log(r)。转换表被存储在例如随机存取存储器(RAM)、闪存等的存储器中。
乘法器22e输出T与f-1(r)的乘积(T·f-1(r))。T·f-1(r)对应于热激发能量。
比较单元22f将偏移加法单元22b针对ΔE1至ΔEN中的每一个的相加结果与T·f-1(r)进行比较,并且针对比T·f-1(r)大的相加结果输出1作为标志。此外,比较单元22针对小于或等于T·f-1(r)的相加结果输出0作为标志。
基于针对ΔE1至ΔEN中的每一个的标志,选择器22g输出被允许更新的位的索引=l和该标志。在存在被允许更新的多个位的情况下,基于随机数输出这些位中的一个位的索引作为索引=l。即使在不存在被允许更新的位的情况下,也输出任何位的索引。在这种情况下,由选择器22g输出的标志为0。
例如,选择器22g输出如下N位值作为索引=l,在所述N位值中,第1位的值为1,并且其他位的值为0。
注意,也可以通过使用如图15所示的电路来实现图1所示的第一实施方式的优化装置10的选择电路15。
(识别信息计算单元23的示例)
图16是示出识别信息计算单元的示例的图。
在图16的示例中,识别信息计算单元23通过使用表23a和23b来输出作为组索引的gl和作为值为1的位的索引的k。表23a和23b被存储在例如RAM、闪存等的存储器中。
在表23a中,相应N位所属的组的组索引以升序排列。
识别信息计算单元23使用如下的N位值作为用于访问表23a的组索引的地址,所述N位值由选择电路22输出作为索引=l,并且在所述N位值中,第l位的值为1并且其他位的值为0。在第l位的值为1的情况下,输出表23a中的第l个组索引=gl。
在表23b中,以升序排列在G组中的每个组中的值均为1的位的索引。在图16的示例中,属于组索引=1的组的值为1的位的索引为s1,并且属于组索引=G的组的值为1的位的索引为N。此外,属于组索引=gl的组的值为1的位的索引为k。
识别信息计算单元23使用通过使用表23a输出的组索引=gl作为用于访问表23b的索引的地址。识别信息计算单元23输出排列在表23a中的索引中的第gl个索引=k。
每当执行状态更新处理时,更新表23b。
注意,图1所示的第一实施方式的优化装置10的识别信息计算单元16也可以通过使用图16所示的表23a和23b来输出索引=k和组索引=gl。
(优化装置20的总体操作示例)
图17是示出第二实施方式的优化装置的示例的处理流程的流程图。
此外,图18是示出初始设置处理的示例的流程的流程图。
图17中的步骤S1中的初始设置处理例如包括如图18中所示的处理。
控制单元25将从控制装置26接收到的W11至WNN存储在计算单元21的存储单元21a中(步骤S20)。
此外,控制单元25在计算单元21的h生成电路21e1至21eN中设置从控制装置26接收的h1至hN的初始值(例如,偏置值)(步骤S21)。
此外,在执行模拟退火的情况下,控制单元25基于从控制装置26接收的退火条件在选择电路22中设置温度参数T(初始值)。在执行副本交换方法的情况下,控制单元25针对相应的副本设置从控制装置26接收的不同值T(步骤S22)。
此外,控制单元25将x1至xN(全为零)存储在存储单元24a中(步骤S23),并且将g1至gN设置在保持单元21d1至21dN中(步骤S24)。在执行副本交换方法的情况下,针对每个副本独立存储x1至xN。
此后,控制单元25将变量g设置为g=1(步骤S25)。然后,控制单元25选择属于gi=g的组的一位的索引=lg,将x1至xN中的xlg更新为1,并且将xlg存储在存储单元24a中(步骤S26)。索引=lg可以是从属于gi=g的组的位中随机选择的位的索引,或者可以是特定位置处的位(例如,头组的所选择的位)的索引。
然后,控制单元25将指示索引=lg的位与索引=1至N的位之间的相互作用的大小的权重值(Wlg,i(i=1至N))存储在存储单元21c中,并且使得访问计数器的计数值被更新(步骤S27)。例如,在组索引=gl是组x的组索引=gx的情况下,控制单元25使在图7中示出的访问计数器37a对计数值递增。
此外,控制单元25更新h1至hN以及更新xlg(步骤S28)。由于当xlg从0变为1时的hi(i=1至N)的变化是+Wlg,i,因此hi被更新为hi=hi+Wlg,i。更新后的h1至hN被保持在h生成电路21e1至21eN中的保持单元(未示出)中。在优化装置20中执行副本交换方法的情况下,针对每个副本独立地保持h1至hN。
接下来,控制单元25确定是否满足g=G(步骤S29),并且在满足g=G的情况下,结束初始设置处理,并且在不满足g=G的情况下,设置g=g+1(步骤S30),并重复从步骤S26开始的处理。
注意,在识别信息计算单元23使用如图16中示出的表23b的情况下,控制单元25可以通过排列每当执行步骤S26的处理时获得的索引=lg来创建表23b。
注意,初始设置处理中的处理的顺序不限于以上示例,并且可以适当地改变顺序。
在结束以上描述的初始设置处理之后,h传播控制单元21f基于x1至xN和g1至gN将h1至hN提供给ΔE计算电路21g1至21gN(步骤S2)。例如,在值为1的索引=i的位与值为0的索引=j的位属于同一组的情况下,h传播控制单元21f将由h生成电路21ei输出的hi提供给ΔE计算电路21gi,并且还将hi提供给ΔE计算电路21gj。
此后,由ΔE计算电路21g1至21gN执行如上所描述的ΔE1至ΔEN的计算(步骤S3)。然后,在如图15所示的选择电路22中,执行偏移值的相加(步骤S4),然后执行索引=l的选择(步骤S5)。识别信息计算单元23通过以上描述的处理来输出索引=k和组索引=gl(步骤S6)。注意,在识别信息计算单元23使用如图16中示出的表23b的情况下,识别信息计算单元23从表23b读取索引=k,然后用索引=l重写相同的存储区域。
此后,执行以下更新处理(步骤S7)。更新单元24将存储在存储单元24a中的索引=k的位的值(xk)从1更新为0,并且将索引=l的位的值(xl)从0更新为1。此外,h生成单元21e在相同定时读取由选择单元21b基于索引=l选择的权重值的行和保持在存储单元21a中的权重值的行,并更新h1至hN。此外,存储单元21c基于组索引=gl更新所保持的权重值。
然后,控制单元25确定状态更新处理的次数是否达到预定次数N1(步骤S8)。在更新处理的次数尚未达到预定次数N1的情况下,重复步骤S2至S7的处理。
在更新处理的次数已经达到预定次数N1的情况下,当执行模拟退火时,控制单元25确定T的改变次数(温度改变的次数)是否已达到预定次数N2。当执行副本交换方法时,控制单元25确定副本中的每一个之间的T值的交换次数是否已经达到预定次数N2(步骤S9)。
在执行模拟退火时温度改变的次数尚未达到预定次数N2的情况下,控制单元25改变T(降低温度)。在执行副本交换方法时交换次数尚未达到预定次数N2的情况下,控制单元25基于每个副本的能量以预定的概率在设置有相邻温度的副本之间交换T(步骤S10)。基于退火条件等来确定改变预定次数N1和N2以及T的值的方式(值一次减小多少等)。在步骤S10中的处理之后,重复从步骤S2开始的处理。
在温度改变次数或交换次数达到预定次数N2的情况下,执行以下计算结果输出处理(步骤S11),并且优化装置20的操作结束。
在执行模拟退火时温度改变的次数达到预定次数N2的情况下,控制单元25从存储单元24a获取此时每一位的值(变量xi(i=1至N)),并将该值发送(输出)至控制装置26作为解(计算结果)。注意,更新单元24可以基于与索引=k,l相对应的能量变化来更新能量,并保持在每个更新时间处的最小能量和当获得最小能量时的状态(在最小能量时的状态)。在这种情况下,当温度改变的次数达到预定次数N2时,控制单元25可以获取由更新单元24保持的最小能量时的状态,并且输出该状态作为解。
另一方面,在执行副本交换方法时,控制单元25使更新单元24的存储单元24a保持在每个副本中的最小能量和在最小能量时的状态。然后,在步骤S11的处理期间,控制单元25从更新单元24获取到目前为止在所有副本中获得的能量中的最小能量时的状态,并使控制装置26输出该状态作为解。
注意,显示装置可以连接至控制单元25。在这种情况下,控制单元25可以在显示装置上显示计算结果。
同样,在如上所描述的第二实施方式的优化装置20中,可以获得与第一实施方式的优化装置10的效果相似的效果。
(修改例)
第二实施方式的优化装置20在满足独热约束的状态之间执行状态转换,但是可以具有如在常规优化装置中执行汉明距离=1的状态转换的功能。在这种情况下,在优化装置20中,禁用了在满足独热约束的状态之间执行状态转换的功能(在下文中称为独热约束支持功能),并且添加了用于执行以下功能的配置:该功能执行汉明距离=1的状态转换。
图19是示出具有禁用独热约束支持功能的配置的优化装置的一部分的图。在图19中,与图5所示的元件相同的元件用相同的附图标记表示。在图19中,存储单元21c的存储电路21ci经由开关50连接至选择单元21b的选择电路21bi,并且还经由开关51连接至h生成单元21ex的h生成电路21eix。开关50和51通过使能信号(示出为1hotEN)接通或断开。
尽管未示出,但是类似的开关连接至存储单元21c的其他存储电路。
在禁用独热约束支持功能的情况下,断开以上描述的开关中的每一个,从而使存储单元21c与选择单元21b(和存储单元21a)以及h生成单元21ex断开连接。在启用独热约束支持功能的情况下,接通以上描述的开关中的每一个,从而使存储单元21c连接至选择单元21b(和存储单元21a)以及h生成单元21ex。在下文中,假设当1hotEN=1时,以上描述的功能被启用,并且当1hotEN=0时,以上描述的功能被禁用,并且执行汉明距离=1的状态转换。使能信号1hotEN例如由图4所示的控制单元25输出。
使能信号1hotEN还被输入至h生成单元21ex的h生成电路21eix,并且当1hotEN=1时,类似于图5中所示的h生成电路21ei,h生成电路21eix通过计算hi-Wki+Wli来更新hi。另一方面,当1hotEN=0时,通过xl确定hi的变化。在更新之后的xl为1(更新之前的xl为0)的情况下,变化是+Wli,并且在更新之后的xl为0(更新之前的xl为1)的情况下,变化是-Wli。因此,h生成电路21eix例如从更新单元24接收更新后的xl,并且在1hotEN=0时,在更新后的xl为1的情况下,通过计算hi+Wli来更新hi,并且在更新后的xl为0的情况下,通过计算hi-Wli来更新hi。
图20是示出具有禁用独热约束支持功能的配置的优化装置中的h传播控制单元的示例的图。在图20中,与图12所示的元件相同的元件用相同的附图标记表示。
图20示出了针对开关40a2和40a3生成控制信号的OR电路60和61。1hotEN的值(1或0)被反转(从1变为0或从0变为1)并且被输入至OR电路60的一个输入端子。向OR电路60的另一输入端子输入x2。1hotEN的值被反转并被输入至OR电路61的一个输入端子,并且x3被输入至OR电路61的另一输入端子。
OR电路60在1hotEN=1的情况下输出x2作为控制信号,并且在1hotEN=0的情况下无论x2如何均输出1,并且接通开关40a2。OR电路61在1hotEN=1的情况下输出x3作为控制信号,并且在1hotEN=0的情况下无论x3如何均输出1,并且接通开关40a3。
还通过与图20中所示的OR电路60和61类似的OR电路将控制信号提供给图12所示的开关40a1至40aN中的除了开关40a2和40a3之外的其他开关。
此外,图20示出了代替图12中示出的控制信号生成电路40b2的控制信号生成电路40b2x。g2和g3被输入至控制信号生成电路40b2x并且1hotEN也被输入至控制信号生成电路40b2x。控制信号生成电路40b2x在1hotEN为1且g2=g3的情况下输出1以接通开关40c2,并且在1hotEN为1且g2≠g3的情况下输出0以断开开关40c2,并且控制信号生成电路40b2x在1hotEN为0的情况下无论g2与g3之间的关系如何均输出0以断开开关40c2。
控制信号生成电路40b2x可以通过将用于接收1hotEN的输入端子添加至图13中所示的控制信号生成电路40bi的AND电路41b来实现。
如上所描述的元件被添加至h传播控制单元21f,从而在1hotEN=0的情况下,向ΔE计算电路21g1至21gN中的每一个提供一个对应的局部字段值。例如,hj被提供给ΔE计算电路21gj,并且不提供hi。
图21是示出具有禁用独热约束支持功能的配置的优化装置中的ΔE计算电路的示例的图。
ΔE计算电路21gjx对应于图14中示出的ΔE计算电路21gj。与ΔE计算电路21gj不同,1hotEN和xj被提供给ΔE计算电路21gjx。注意,在1hotEN=0的情况下,不提供hj和hi中的hi。
在1hotEN=1的情况下,与图14中所示的ΔE计算电路21gj类似,如上所描述的ΔE计算电路21gjx计算ΔEj=hi-hj。另一方面,在1hotEN=0的情况下,ΔEj由xj的变化确定。在xj从0变为1的情况下,获得ΔEj=-hj,并且在xj从1变为0的情况下,获得ΔEj=+hj。因此,ΔE计算电路21gjx从更新单元24接收当前xj,并且在1hotEN=0的情况下,在xj=0的情况下输出-hj作为ΔEj,并且在xj=1的情况下输出+hj作为ΔEj。
图5中示出的ΔE计算电路21g1至21gN中的每一个如图21中所示进行配置。
具有禁用独热约束支持功能的配置的优化装置中的识别信息计算单元可以通过根据1hotEN的值启用或禁用图4中所示的识别信息计算单元23的功能来实现。在这种情况下,将选择电路22输出的索引=l原样提供给计算单元21和更新单元24。
如上所描述的,对第二实施方式的优化装置20执行以上描述的修改,从而可以根据要计算的问题禁用独热约束支持功能,并执行以下功能:该功能执行汉明距离=1的状态转换。
在禁用独热约束支持功能的情况下,提供给选择电路22的ΔE1至ΔEN中的每一个表示由于N位中的任何一位的改变而引起的能量变化。然后,选择电路22基于以上描述的热激发能量与ΔE1至ΔEN之间的大小关系输出用于识别N位中允许被更新的一位的索引。更新单元24更新通过该索引识别的位的值。
顺便提及,在以上描述中,假设表达式(7)中的Wij=0,ΔE计算电路21g1至21gN均在不使用Wij的情况下计算能量变化,但是可以通过使用Wij来计算能量变化。
图22是示出通过使用权重值来计算能量变化的优化装置中的计算单元的示例的图。在图22的计算单元70中,与图5中所示的计算单元21的元件相同的元件由相同的附图标记表示。注意,在图22中,除了与图5中的选择电路21b1至21bN、存储电路21c1至21cN、保持单元21d1至21dN、h生成电路21e1至21eN以及ΔE计算电路21g1至21gN中的第i个、第j个元件相对应的元件之外,省略了说明。
计算单元70包括匹配检测单元71i和71j以及开关72i和72j。此外,在计算单元70中,ΔE计算单元73的ΔE计算电路73i和73j包括存储单元73ia和73ja。
包括匹配检测单元71i和71j以及开关72i和72j的电路单元具有以下功能。
匹配检测单元71i在从识别信息计算单元23提供的组索引=gl与保持单元21di中保持的gi匹配的情况下输出1,并且在彼此不匹配的情况下输出0。匹配检测单元71j在组索引=gl与保持在保持单元21dj中的gj匹配的情况下输出1,并且在它们彼此不匹配的情况下输出0。
匹配检测单元71i和71j中的每一个通过使用例如多个ExNOR电路和一个AND电路来实现。例如,多个ExNOR电路中的每一个输入所输入的两个组索引的对应位中的每一位的值,并且在这两个位彼此匹配的情况下输出1。然后,在多个ExNOR电路的输出全部均为1的情况下,AND电路输出1。
在匹配检测单元71i输出1的情况下,开关72i接通,并将由选择电路21bi输出的权重值提供给ΔE计算电路73i的存储单元73ia。在匹配检测单元71i输出0的情况下,开关72i断开。在匹配检测单元71j输出1的情况下,开关72j接通,并将由选择电路21bj输出的权重值提供给ΔE计算电路73j的存储单元73ja。在匹配检测单元71j输出0的情况下,开关72j断开。开关72i和72j中的每一个例如是三态缓冲器。
例如,当开关72i接通时,从存储单元21a读取的Wli在同一定时被写入到存储单元73ia和存储电路21ci。当开关72j接通时,从存储单元21a读取的Wlj在同一定时被写入到存储单元73ja和存储电路21cj。
ΔE计算电路73i和73j通过使用局部字段值和权重值来计算当通过汉明距离=2的状态转换执行从满足独热约束的一个状态到满足独热约束的另一状态的转换时的ΔEi和ΔEj。
从h生成电路21ei直接向ΔE计算电路73i提供hi。从h生成电路21ej直接向ΔE计算电路73j提供hj。
此外,通过h传播控制单元21f向ΔE计算电路传播与值为0的位属于同一组的值为1的位的局部字段值,从h生成单元21e向该ΔE计算电路提供该值为0的位的局部字段值。
例如,假设索引为=i,j的位属于同一组,索引=i的位的值为1,并且索引=j的位的值为0。在这种情况下,hi通过h传播控制单元21f传播至ΔE计算电路73j。此外,在这种情况下,Wij被保持在ΔE计算电路73j的存储单元73ja中。索引=i的位的值为1的原因在于,在写入存储单元73ja时,提供给选择单元21b的索引=l等于索引=i,并且从存储单元21a读取的权重值是Wlj=Wij。
ΔE计算电路73j利用表达式(7)基于hi、hj和Wij计算由于xi从1到0的变化以及xj从0到1的变化引起的ΔEj。如上所描述的,在从存储单元21a读取的用于更新hj的权重值中,用于计算ΔEj的Wij被保持在存储单元73ja中,使得当计算ΔEj时,不必再次从存储单元21a读取Wij。
此外,如上所描述的,将用于执行表达式(7)的计算的Wij存储在存储单元73ja中,从而应对改变权重值以改变计算条件等的情况变得可能。
以上,基于实施方式说明了本实施方式的优化装置以及用于控制优化装置的方法的一方面;然而,这些仅是示例,并且不限于以上描述。
Claims (6)
1.一种优化装置,包括:
多个计算电路,所述多个计算电路中的每个计算电路针对与通过转换要计算的问题而获得的伊辛模型中包括的多个自旋相对应的多个位,在所述多个位被划分成多个组的情况下,基于所述多个组中的每个组中包括的多个位中的值为1的第一位的第一局部字段值和值为0的第二位的第二局部字段值,来计算由于所述第一位的值从1到0的变化以及所述第二位的值从0到1的变化引起的所述伊辛模型的第一能量变化;
选择电路,其基于由所述多个计算电路中的每个计算电路输出的所述第一能量变化与基于输入温度参数和随机数确定的热激发能量之间的大小关系,输出第一位识别信息,所述第一位识别信息用于识别所述多个组中的每个组中包括的所述第二位中的允许值从0更新为1的多个所述第二位之一;
识别信息计算单元,其基于由所述选择电路输出的所述第一位识别信息检测被允许更新的所述第二位所属的第一组,并输出用于识别属于所述第一组的所述第一位的第二位识别信息;
更新单元,其基于由所述识别信息计算单元输出的所述第二位识别信息将属于所述第一组的所述第一位的值从1更新为0,并基于所述第一位识别信息将被允许更新的所述第二位的值从0更新为1;
第二存储单元,其保持由第一存储单元保持的指示所述多个位中的每一位之间的相互作用的大小的权重值的矩阵中与用于识别所述多个组中的每个组中值为1的位的位识别信息相对应的所有行;以及
局部字段生成单元,其分别基于根据由所述选择电路输出的所述第一位识别信息从所述第一存储单元读取的与所述第一位识别信息相对应的第一行和从所述第二存储单元读取的与所述第二位识别信息相对应的第二行,来生成所述第一局部字段值和所述第二局部字段值。
2.根据权利要求1所述的优化装置,其中,
所述第二存储单元针对所述多个组中的每个组包括第一保持单元和第二保持单元,以及
当从所述第一存储单元读取所述第一组的所述第一行时,将所述第一行写入所述第一保持单元,并且从所述第二保持单元读取所述第二行,以及当接下来从所述第一存储单元读取所述第一组的所述第一行时,将读取的所述第一行写入所述第二保持单元,并且将保持在所述第一保持单元中的所述第一行读取为所述第二行。
3.根据权利要求2所述的优化装置,其中,
所述识别信息计算单元输出用于识别所述第一组的组识别信息,并且
所述第二存储单元包括解码单元,所述解码单元基于所述组识别信息将所述第一保持单元或所述第二保持单元中的一个设置为写入目标并且将另一个设置为读取目标。
4.根据权利要求1至3中任一项所述的优化装置,还包括:
开关,其在使能信号具有第一值的情况下将所述第二存储单元连接至所述第一存储单元和所述局部字段生成单元,并且在所述使能信号具有第二值的情况下将所述第二存储单元与所述第一存储单元和所述局部字段生成单元断开连接,其中,
在所述使能信号具有所述第二值的情况下,
所述局部字段生成单元生成当所述多个位中的一位变化时所述多个位中的每一位的第三局部字段值,
所述多个计算电路中的每个计算电路基于所述第三局部字段值,计算当所述多个位中的一位变化时所述伊辛模型的第二能量变化,
所述选择电路基于由所述多个计算电路中的每个计算电路输出的所述第二能量变化与所述热激发能量之间的大小关系,输出用于从所述多个位中识别允许更新的一个第三位的第三位识别信息,并且
所述更新单元基于所述第三位识别信息更新所述第三位的值。
5.根据权利要求1至3中任一项所述的优化装置,其中,
所述多个计算电路中的每个计算电路包括第三存储单元,所述第三存储单元保持指示所述第一位与所述第二位之间的相互作用的大小的权重值。
6.一种用于控制优化装置的方法,
所述方法包括:
通过所述优化装置中包括的多个计算电路中的每个计算电路,针对与通过转换要计算的问题而获得的伊辛模型中包括的多个自旋相对应的多个位,在所述多个位被划分成多个组的情况下,基于所述多个组中的每个组中包括的多个位中的值为1的第一位的第一局部字段值和值为0的第二位的第二局部字段值,来计算由于所述第一位的值从1到0的变化以及所述第二位的值从0到1的变化引起的所述伊辛模型的第一能量变化;
通过所述优化装置中包括的选择电路,基于由所述多个计算电路中的每个计算电路输出的所述第一能量变化与基于输入温度参数和随机数确定的热激发能量之间的大小关系,输出第一位识别信息,所述第一位识别信息用于识别所述多个组中的每个组中包括的所述第二位中的允许值从0更新为1的多个所述第二位之一;
通过所述优化装置中包括的识别信息计算单元,基于由所述选择电路输出的所述第一位识别信息检测被允许更新的所述第二位所属的第一组,并输出用于识别属于所述第一组的所述第一位的第二位识别信息;
通过所述优化装置中包括的更新单元,基于由所述识别信息计算单元输出的所述第二位识别信息将属于所述第一组的所述第一位的值从1更新为0,并基于所述第一位识别信息将被允许更新的所述第二位的值从0更新为1;
通过所述优化装置中包括的第一存储单元,保持由第二存储单元保持的指示所述多个位中的每一位之间的相互作用的大小的权重值的矩阵中与用于识别所述多个组中的每个组中值为1的位的位识别信息相对应的所有行;以及
通过所述优化装置中包括的局部字段生成单元,分别基于根据由所述选择电路输出的所述第一位识别信息从所述第二存储单元读取的与所述第一位识别信息相对应的第一行和从所述第一存储单元读取的与所述第二位识别信息相对应的第二行,来生成所述第一局部字段值和所述第二局部字段值。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019-075703 | 2019-04-11 | ||
JP2019075703A JP7185140B2 (ja) | 2019-04-11 | 2019-04-11 | 最適化装置及び最適化装置の制御方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111812972A CN111812972A (zh) | 2020-10-23 |
CN111812972B true CN111812972B (zh) | 2022-12-09 |
Family
ID=69941194
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010269201.7A Active CN111812972B (zh) | 2019-04-11 | 2020-04-08 | 优化装置和用于控制优化装置的方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11422515B2 (zh) |
EP (1) | EP3722941B1 (zh) |
JP (1) | JP7185140B2 (zh) |
CN (1) | CN111812972B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7174244B2 (ja) * | 2018-12-26 | 2022-11-17 | 富士通株式会社 | 最適化装置及び最適化装置の制御方法 |
JP2021149796A (ja) * | 2020-03-23 | 2021-09-27 | 富士通株式会社 | 情報処理装置、特定方法および特定プログラム |
JP2021168096A (ja) * | 2020-04-13 | 2021-10-21 | 富士通株式会社 | サンプリング装置、サンプリング方法及びサンプリングプログラム |
JP7491032B2 (ja) * | 2020-04-13 | 2024-05-28 | 富士通株式会社 | 最適化装置、最適化方法及び最適化プログラム |
JP2022184426A (ja) * | 2021-06-01 | 2022-12-13 | 富士通株式会社 | データ処理装置、データ処理方法及びプログラム |
US20240104160A1 (en) * | 2022-09-25 | 2024-03-28 | Fujitsu Limited | Sequential group processing of optimization problems |
CN116151171B (zh) * | 2023-04-17 | 2023-07-18 | 华南理工大学 | 一种基于并行回火的全连接伊辛模型退火处理电路 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04237388A (ja) * | 1991-01-22 | 1992-08-25 | Matsushita Electric Ind Co Ltd | ニューロプロセッサ |
EP2324444B1 (en) * | 2008-05-20 | 2021-04-07 | D-Wave Systems Inc. | Systems, methods, and apparatus for calibrating, controlling, and operating a quantum processor |
JP2010054938A (ja) * | 2008-08-29 | 2010-03-11 | Toshiba Corp | 量子シミュレータ、量子計算機および方法 |
CN106170802A (zh) * | 2014-03-12 | 2016-11-30 | 时空防御系统有限责任公司 | 通过绝热量子计算解决数字逻辑约束问题 |
EP3113084B1 (en) * | 2015-06-29 | 2020-12-09 | Parity Quantum Computing GmbH | Quantum processing device and method |
WO2017017807A1 (ja) | 2015-07-29 | 2017-02-02 | 株式会社日立製作所 | 情報処理装置及び方法 |
WO2017056366A1 (ja) | 2015-09-30 | 2017-04-06 | 日本電気株式会社 | 最適化システム、最適化方法および最適化プログラム |
US20170161612A1 (en) * | 2015-12-07 | 2017-06-08 | Microsoft Technology Licensing, Llc | Partial Reinitialization for Optimizers |
CA3022167C (en) * | 2016-05-09 | 2021-07-20 | 1Qb Information Technologies Inc. | Method and system for improving a policy for a stochastic control problem |
JP6468247B2 (ja) * | 2016-06-06 | 2019-02-13 | 富士通株式会社 | イジング装置及びイジング装置の制御方法 |
JP6773970B2 (ja) | 2016-09-09 | 2020-10-21 | 富士通株式会社 | 情報処理装置、イジング装置及び情報処理装置の制御方法 |
JP6465092B2 (ja) | 2016-10-14 | 2019-02-06 | 富士通株式会社 | 最適化装置及び最適化装置の制御方法 |
JP6979331B2 (ja) * | 2017-10-30 | 2021-12-15 | 株式会社日立製作所 | 情報処理装置および情報処理方法 |
CN109240644B (zh) * | 2018-08-17 | 2023-08-15 | 中国人民解放军国防科技大学 | 一种用于伊辛芯片的局部搜索方法及电路 |
-
2019
- 2019-04-11 JP JP2019075703A patent/JP7185140B2/ja active Active
-
2020
- 2020-03-20 EP EP20164455.6A patent/EP3722941B1/en active Active
- 2020-04-02 US US16/838,057 patent/US11422515B2/en active Active
- 2020-04-08 CN CN202010269201.7A patent/CN111812972B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN111812972A (zh) | 2020-10-23 |
JP2020173661A (ja) | 2020-10-22 |
US11422515B2 (en) | 2022-08-23 |
EP3722941A1 (en) | 2020-10-14 |
US20200326673A1 (en) | 2020-10-15 |
JP7185140B2 (ja) | 2022-12-07 |
EP3722941B1 (en) | 2021-09-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111812972B (zh) | 优化装置和用于控制优化装置的方法 | |
US20190130295A1 (en) | Information Processing Apparatus and Information Processing Method | |
US5532938A (en) | Numerical arithmetic processing unit | |
CN111078621B (zh) | 优化装置及优化装置的控制方法 | |
JP7410395B2 (ja) | 最適化装置及び最適化方法 | |
CN111077768A (zh) | 优化装置及优化装置的控制方法 | |
JP2020204928A (ja) | 最適化装置および最適化方法 | |
CN112381209A (zh) | 一种模型压缩方法、系统、终端及存储介质 | |
JP2020204929A (ja) | サンプリング装置およびサンプリング方法 | |
US11443090B2 (en) | Optimization device and method of controlling optimization device | |
CN113283046A (zh) | 优化装置、优化方法和记录介质 | |
JP2020046997A (ja) | 最適化問題演算プログラム、最適化問題演算方法および最適化問題演算装置 | |
JP2020187453A (ja) | 最適化装置および最適化装置の制御方法 | |
WO2020054024A1 (ja) | 最適化装置及び最適化装置の制御方法 | |
CA3108047A1 (en) | Optimization device and method for executing annealing processes and replica exchange | |
JP7256378B2 (ja) | 最適化システムおよび最適化システムの制御方法 | |
JP2020046995A (ja) | 最適化問題演算プログラム、最適化問題演算方法および最適化問題演算装置 | |
EP3852028A1 (en) | Optimization device, control method for optimization device, and control program for optimization device | |
JP2021135683A (ja) | 学習装置、推論装置、学習方法及び推論方法 | |
US20200250536A1 (en) | Gpu-based artificial intelligence system using channel-level architecture search for deep neural network | |
EP4148628A1 (en) | Data processing apparatus, data processing method, and data processing program | |
Chen et al. | Multinomial regression with elastic net penalty and its grouping effect in gene selection | |
EP4390784A1 (en) | Data processing apparatus, data processing method, and program | |
Yu et al. | OP‐KNN: Method and Applications | |
Wilson | Parallel hopfield networks |
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 |