CN113283046A - 优化装置、优化方法和记录介质 - Google Patents
优化装置、优化方法和记录介质 Download PDFInfo
- Publication number
- CN113283046A CN113283046A CN202110056655.0A CN202110056655A CN113283046A CN 113283046 A CN113283046 A CN 113283046A CN 202110056655 A CN202110056655 A CN 202110056655A CN 113283046 A CN113283046 A CN 113283046A
- Authority
- CN
- China
- Prior art keywords
- sub
- group
- search
- processing
- unit period
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 59
- 238000005457 optimization Methods 0.000 title claims abstract description 51
- 238000012545 processing Methods 0.000 claims abstract description 160
- 238000004891 communication Methods 0.000 claims abstract description 34
- 241000408495 Iton Species 0.000 claims abstract description 13
- 238000000638 solvent extraction Methods 0.000 claims abstract description 3
- 230000008569 process Effects 0.000 claims description 35
- 230000008859 change Effects 0.000 claims description 19
- 238000004364 calculation method Methods 0.000 description 22
- 238000010586 diagram Methods 0.000 description 20
- NHTMVDHEPJAVLT-UHFFFAOYSA-N Isooctane Chemical compound CC(C)CC(C)(C)C NHTMVDHEPJAVLT-UHFFFAOYSA-N 0.000 description 16
- 230000015654 memory Effects 0.000 description 13
- 230000007704 transition Effects 0.000 description 12
- 238000000342 Monte Carlo simulation Methods 0.000 description 11
- 230000006870 function Effects 0.000 description 9
- 238000012805 post-processing Methods 0.000 description 9
- JVSWJIKNEAIKJW-UHFFFAOYSA-N dimethyl-hexane Natural products CCCCCC(C)C JVSWJIKNEAIKJW-UHFFFAOYSA-N 0.000 description 8
- 210000000554 iris Anatomy 0.000 description 6
- 210000004027 cell Anatomy 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 239000004065 semiconductor Substances 0.000 description 4
- 238000002922 simulated annealing Methods 0.000 description 4
- 230000010365 information processing Effects 0.000 description 3
- 230000003993 interaction Effects 0.000 description 2
- 210000000352 storage cell Anatomy 0.000 description 2
- HTIQEAQVCYTUBX-UHFFFAOYSA-N amlodipine Chemical compound CCOC(=O)C1=C(COCCN)NC(C)=C(C(=O)OC)C1C1=CC=CC=C1Cl HTIQEAQVCYTUBX-UHFFFAOYSA-N 0.000 description 1
- 230000006399 behavior 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
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000005401 electroluminescence Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- 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
- G06F30/00—Computer-aided design [CAD]
- G06F30/20—Design optimisation, verification or simulation
-
- 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
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/044—Recurrent networks, e.g. Hopfield networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/047—Probabilistic or stochastic networks
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2111/00—Details relating to CAD techniques
- G06F2111/06—Multi-objective optimisation, e.g. Pareto optimisation using simulated annealing [SA], ant colony algorithms or genetic algorithms [GA]
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Computing Systems (AREA)
- Computational Linguistics (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Molecular Biology (AREA)
- Biophysics (AREA)
- General Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Algebra (AREA)
- Probability & Statistics with Applications (AREA)
- Condensed Matter Physics & Semiconductors (AREA)
- Operations Research (AREA)
- Databases & Information Systems (AREA)
- Computer Hardware Design (AREA)
- Geometry (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Supply And Distribution Of Alternating Current (AREA)
Abstract
公开了优化装置、优化方法和记录介质。一种优化装置包括:多个伊辛机,每个伊辛机搜索通过划分由伊辛模型表示的问题而获得的多个子问题之中的子问题的解,多个伊辛机中的每一个包括:存储单元,其存储针对多个组的与要计算的子问题对应的状态变量集的值;搜索单元,其通过改变每个单位时段要处理的组、基于由其他伊辛机计算的子问题的第一解候选,对多个组中的每一个执行计算第二解候选的处理,使得在相同单位时段内针对与由其他伊辛机处理的组不同的组的状态变量集计算第二解候选;以及通信单元,其每当单位时段结束时,将第二解候选发送到其他伊辛机。
Description
技术领域
本文中讨论的实施方式涉及优化装置、优化方法和记录介质。
背景技术
作为用于计算诺伊曼型计算机不易处理的大型离散优化问题的装置,存在使用伊辛型能量函数(也被称为成本函数或目标函数)的伊辛机(也被称为玻尔兹曼机)。
在通过伊辛机的计算中,要计算的问题被伊辛模型代替,伊辛模型是表示磁性体的自旋行为的模型。基于马尔科夫链蒙特卡洛方法诸如模拟退火方法或副本交换方法(也被称为交换蒙特卡洛方法),搜索使伊辛模型型能量函数的值(对应于伊辛模型的能量)最小化的状态。
在通过伊辛机的计算中,使用表示各个状态变量之间的相互作用的大小的权重系数。当状态变量的数量由于问题规模的增加而增加时,权重系数的数量也增加。在完全耦合伊辛机——其用伊辛模型代替该问题时灵活性优异并可以考虑所有状态变量之间的相互作用中,要存储的权重系数与状态变量数量的平方成比例。因此,在伊辛机由单个装置(例如,一个芯片)实现的情况下,存在所有权重系数不能存储在内部存储器中的可能性。存在如下方法,其中权重系数存储在大容量存储装置中,将通过划分问题获得的子问题转移到伊辛计算单元,并且通过适当地调换要转移的子问题来执行计算,但是需要花费时间来调换用于计算每个子问题的权重系数。
在相关技术中,为了加速通过马尔科夫链蒙特卡洛方法进行的处理,存在一种方法,其中将相同的伊辛模型分配给多个伊辛芯片中的每一个,并且并行地执行处理。还有一种方法,其中问题被划分成多个子问题,并且将多个子问题分配给多个伊辛芯片,并且并行地执行针对各个子问题的计算。
例如在日本特开专利公布第2018-206127号和日本特开专利公布第2016-51350号中公开了相关技术。
通过马尔科夫链蒙特卡洛方法对伊辛模型进行能量最小化的原理是顺序地更新状态变量的值(1位的值被反转)。
在应用将问题划分成子问题并由多个伊辛机执行解搜索的方法的情况下,为了满足该原理,在多个伊辛机中的任一个更新状态变量的值时,其他伊辛机不执行更新而是处于暂停状态。因此,每个伊辛机中的运算单元可能无法被有效使用,并且计算效率降低。
在一个方面中,实施方式的目的是提供一种可以提高优化装置的计算效率的优化方法。
发明内容
根据实施方式的一个方面,一种优化装置包括:多个伊辛机,每个伊辛机搜索通过划分由伊辛模型表示的问题而获得的多个子问题之中的子问题的解,多个伊辛机中的每一个包括:存储单元,其存储针对多个组的与要计算的子问题对应的状态变量集的值;搜索单元,其通过改变每个单位时段要处理的组、基于由其他伊辛机计算的子问题的第一解候选,对多个组中的每一个执行计算第二解候选的处理,使得在相同单位时段内针对与由其他伊辛机处理的组不同的组的状态变量集计算第二解候选;以及通信单元,每当单位时段结束时,其将第二解候选发送到其他伊辛机。
在一个方面中,该实施方式可以提高优化装置中的计算效率。
附图说明
图1是示出根据第一实施方式的优化装置的示例的图;
图2是示出控制装置对优化装置的控制的示例的流程的流程图;
图3是示出优化装置的操作的示例的流程的流程图;
图4是示出根据第二实施方式的优化装置的示例的图;
图5是示出在每个伊辛机中要计算的子问题、用于计算的局部字段和权重系数的示例的图;
图6是示出伊辛机的示例的图;
图7是示出状态固定的示例的图;
图8是示出控制器的硬件示例的框图;
图9是示出在每个副本组中的状态的处理顺序被固定的情况下每个伊辛机的操作的示例的图;
图10是示出单位时段T4内的搜索处理之后的状态的转移示例的图;
图11是示出在MCMC处理单元中改变每个副本组中的状态的处理顺序的情况下每个伊辛机的操作的示例的图;以及
图12是示出单位时段T10内的搜索处理之后的状态的转移示例的图。
具体实施方式
下面参照附图描述本公开内容的实施方式。
(第一实施方式)
图1是示出根据第一实施方式的优化装置的示例的图。
根据第一实施方式的优化装置10包括多个伊辛机11a1、11a2、……、和11an。
伊辛机11a1至11an中的每一个搜索通过划分由伊辛模型表示的问题而获得的多个子问题之中的任何子问题的解(使伊辛模型的能量最小化的状态变量的值的组合)。由伊辛模型表示的问题包括各种离散优化问题。
整个问题的伊辛模型的能量例如由能量函数E(x)定义,该能量函数由以下等式(1)表示。
在从伊辛模型中包括的N个状态变量中选择的两个状态变量的所有组合之中没有丢失和重叠的情况下,右侧第一项将两个状态变量值和权重系数的乘积累加。xi是第i个状态变量。xj是第j个状态变量。Wij是表示第i个状态变量与第j个状态变量之间的权重(例如,耦合的强度)的权重系数。Wii=0。Wij=Wji。
右侧第二项是针对所有状态变量的状态变量的偏置系数和状态变量的值的乘积之和。bi表示第i个状态变量的偏置系数。c是常数。
例如,伊辛模型中自旋为“-1”对应于状态变量的值为“0”。伊辛模型中自旋为“+1”对应于状态变量的值为“1”。因此,状态变量可以被称为值为0或1的“位”。
使等式(1)的值最小化的状态变量的值的组合是问题的解。
用于处理状态变量i=1至K(K<N)的子问题的伊辛模型的能量由能量函数E'(x)定义,所述状态变量i=1至K是N个(N位)状态变量中的一些,该能量函数例如由以下等式(2)表示。
在等式(2)中,b'i和c'可以表示为等式(3)和(4)。
当处理状态变量i=1至K(K<N)的子问题的解被搜索时,状态变量i=K+1至N的值是固定的。等式(3)右侧的第二项表示被设置为固定值的状态变量对偏置系数的贡献,并且等式(4)右侧的第三项和第四项表示被设置为固定值的状态变量对常数的贡献。
下面描述N个状态变量被K划分成n个并从而获得n个子问题的情况。在这种情况下,与由伊辛机11a1要计算的子问题对应的一组状态变量(状态变量集)为x1至xK,并且与由伊辛机11a2要计算的子问题对应的状态变量集为xK+1至x2K。与由伊辛机11an要计算的子问题对应的状态变量集为x(n-1)K+1至xN。
伊辛机11a1至11an中的每一个包括:存储单元11b1、11b2、……、或11bn,搜索单元11c1、11c2、……、或11cn,以及通信单元11d1、11d2、……、或11dn。
存储单元11b1至11bn存储针对多个组(在以下示例中为n个组)的与要计算的子问题对应的状态变量集的值。例如,存储单元11b1存储针对n个组的与伊辛机11a1负责下的子问题对应的状态变量集(x1至xK)。
存储单元11b1至11bn还存储在搜索单元11c1至11cn中的处理中使用的权重系数等。例如,伊辛机11a1的存储单元11b1存储用于计算等式(2)和(3)的权重系数。等式(2)右侧的第一项中包括的Wij是x1至xK之间的权重系数。等式(3)右侧的第二项中包括的Wij是x1至xK中的每一个与xK+1至xN中的每一个之间的权重系数。
等式(4)右侧的第三项中包括的Wij是xK+1至xN之间的权重系数,并且不能存储在存储单元11b1中。伊辛机11a1至11an外部的控制装置15可以基于作为固定值的xK+1至xN的值、其偏置值、xK+1至xN之间的权重系数以及c来计算等式(4)的c'。在这种情况下,由控制装置15计算出的c'被发送到伊辛机11a1,被存储在存储单元11b1中,并且被用于计算E'(x)。因此,在Wij=Wji的情况下,存储在存储单元11b1中的权重系数的数量可以是N×N之中的K×N。
这同样适用于其他存储单元11b2至11bn,并且K×N个权重系数可以存储在其他存储单元11b2至11bn中的每一个中。
存储单元11b1至11bn例如通过诸如静态随机存取存储器(SRAM)和高带宽存储器(HBM)的电子电路来实现。在伊辛机11a1中,x1至xK之间的权重系数被频繁使用,因为当x1至xK的任何值被更新时它被用于计算能量变化,并因此被存储在例如SRAM中。
搜索单元11c1至11cn中的每一个基于由其他伊辛机计算的子问题的解候选来针对n个组中的每一个的状态变量集计算子问题的解候选,所述n个组分配有组号(g0,g1,……,和gn-1)。例如,伊辛机11a1的搜索单元11c1针对n个组(在下文中,被称为组g0,g1,……,和gn-1)的状态变量集(x1至xK)计算解候选。
通过使用诸如模拟退火方法或副本交换方法的马尔科夫链蒙特卡洛方法计算解候选。例如,搜索单元11c1针对x1至xK中的每一个计算由于x1至xK之一的变化(更新)而引起的E'(x)的变化(能量变化),并且随机地接受如下形式的变化:优选E'(x)减小的变化。在x1至xK之中,由于xi的变化引起的能量变化(ΔE'i)可以表示为以下等式(5)。
在等式(5)中,当xi从1变为0时,Δxi等于-1,并且当状态变量xi从0变为1时,Δxi等于1。hi被称为局部字段,并且hi与根据Δxi的符号(+1或-1)的乘积为ΔE'i。
伴随xj值的变化的hi的变化在Δxj为1的情况下可以表示为+Wij,而在Δxj为-1的情况下表示为-Wij。例如,可以根据Δxj通过向原始hi增加Wij或从原始hi减去Wij来更新hi。
然而,搜索单元11c1固定由其他伊辛机计算的子问题的解候选的值(xK+1至xN的值)。搜索单元11c1还随机地允许E'(x)增大的变化。搜索单元11c1重复这样的处理,直到满足搜索结束条件(例如,预定的重复次数是否结束),并且当满足搜索结束条件时,将x1至xK的值设置为单位时段内的解候选。
当获得每个组的子问题的解候选时,搜索单元11c1根据等式(2)计算E'(x)。
在多个伊辛机11a1至11an中的每一个包括多个副本的情况下,多个副本中的每一个在搜索单元11c1中针对n个组中的每一个计算解候选,并且计算E'(x)。
搜索单元11c2至11cn中的每一个也执行与上述操作类似的操作。
然而,搜索单元11c1至11cn中的每一个通过改变每个单位时段处理的组来执行计算解候选的处理。在相同单位时段内,搜索单元11c1至11cn中的每一个针对与由其他伊辛机处理的组不同的组的状态变量集计算解候选。例如,在相同单位时段内,搜索单元11c1至11cn中的每一个针对分配有与由其他伊辛机处理的其他组的组号不同的组号的组的状态变量集计算解候选。例如,在搜索单元11c1针对组g0的x1至xK计算解候选的单位时段内,搜索单元11c2至11cn针对与组g0不同的组的状态变量集计算解候选。
搜索单元11c1至11cn可以例如通过诸如专用集成电路(ASIC)或现场可编程门阵列(FPGA)的电子电路来实现。该配置不限于此,并且搜索单元11c1至11cn的部分或全部可以通过由诸如中央处理单元(CPU)或图形处理单元(GPU)的处理器执行程序而产生的软件处理来实现。
每当单位时段结束时,通信单元11d1至11dn将计算出的解候选发送到其他伊辛机。例如,通信单元11d1将针对组g0的x1至xK计算出的解候选发送到伊辛机11a2至11an。
通信单元11d1至11dn通过各种电子电路实现。例如,按照诸如外围部件互连(PCI)Express的接口标准执行通信的电子电路被用作通信单元11d1至11dn。
控制装置15控制优化装置10。例如,控制装置15将问题划分成子问题,将子问题设置给伊辛机11a1至11an中的每一个,设置操作,设置每个单位时段内要处理的组,指示转移计算出的解候选等。控制装置15可以接收由伊辛机11a1至11an发送的状态变量集的值,并通过等式(4)计算c'。控制装置15可以接收由伊辛机11a1至11an发送的与每个子问题的解候选对应的伊辛模型的能量,并通过所接收到的能量之和计算等式(1)的能量E(x)。
控制装置15可以是诸如CPU或GPU的处理器或者是诸如个人计算机(PC)的计算机。控制装置15通过执行存储在存储器(未示出)中的对优化装置10的控制程序来执行如上所述的处理。
下面描述根据第一实施方式的优化装置10的操作以及控制装置15对优化装置10的控制的示例。
图2是示出控制装置对优化装置的控制的示例的流程的流程图。
控制装置15确定操作参数,例如根据要计算的问题的规模、伊辛机11a1至11an的数量等确定子问题的大小(步骤S1)。在N位问题被划分成n个子问题的情况下,控制装置15将子问题的大小设置为N/n位。
在当在伊辛机11a1至11an中的每一个中计算解候选时使用副本交换方法的情况下,当副本数为R时,控制装置15将每组副本数=R/n确定为操作参数之一。操作参数的其他示例包括在模拟退火方法和副本交换方法中使用的温度参数的最大值和最小值、温度参数的变化时间表等。
控制装置15基于所确定的操作参数来划分问题(步骤S2),并且在伊辛机11a1至11an中的每一个中设置子问题(步骤S3)。例如通过将与每个子问题对应的状态变量集中的每个状态变量的索引以及用于计算每个子问题的权重系数和偏置系数发送到伊辛机11a1至11an来设置子问题。控制装置15可以将x1至xN的初始值发送到伊辛机11a1至11an。例如,将索引(i)=1至K、x1至xN的初始值、xl至xK之间的权重系数、以及xl至xK中的每一个与xK+1至xN中的每一个之间的权重系数、以及bl至bk发送到伊辛机11a1。
控制装置15设置伊辛机11a1至11an的操作(步骤S4)。在步骤S4的处理中,为伊辛机11a1至11an指定由搜索单元11c1至11cn在单位时段内执行的解候选计算处理(在下文中,在一些情况下被称为搜索处理)的重复次数和各种操作参数。
控制装置15设置要处理的组(步骤S5)。例如,控制装置15设置伊辛机11a1至11an中的每一个中要处理的组,使得相同组中的状态变量集的处理顺序为x1至xK、xK+1至x2K、……、和x(n-1)K+1至xN。控制装置15可以在预定的处理时间改变与相同组中的每个子问题对应的状态变量集的处理顺序。例如,控制装置15可以通过使用随机数值来随机地确定处理顺序。
然而,控制装置15针对搜索处理的每个单位时段改变由相同伊辛机处理的组,并且设置处理顺序,使得在相同单位时段内在伊辛机11a1至11an之中处理不同的组。
控制装置15指示伊辛机11a1至11an中的每一个执行搜索处理(步骤S6)。在所有伊辛机11a1至11an没有完成单位时段内的搜索处理(步骤S7:否)的情况下,控制装置15待机,直到搜索处理完成为止,并且在搜索处理完成(步骤S7:是)的情况下,控制装置15继续进行步骤S8的处理。
在步骤S8的处理中,控制装置15指示伊辛机11a1至11an转移成为解候选的状态并执行后处理。后处理例如包括等式(2)的E'(x)的计算和等式(3)的计算,以用于下一个单位时段内的搜索处理。
控制装置15接收由伊辛机11a1至11an中的每一个计算的每个组的E'(x)和解候选,并通过每个组的E'(x)之和来计算每个组的总能量(等式(1)的E(x))(步骤S9)。
在满足预定的搜索结束条件(例如,预定的重复次数是否已结束、目标能量是否已达到等)的情况下,控制装置15确定整个搜索完成(步骤S10:是),并指示优化装置10结束搜索(步骤S11)。控制装置15结束对优化装置10的控制。在没有满足预定的搜索结束条件的情况下,控制装置15确定整个搜索没有完成(步骤S10:否),并从步骤S5开始重复处理。
例如,直到确定整个搜索完成,控制装置15输出当在所有组中获得最小能量时的x1至xN的值作为问题的解。控制装置15将所获得的解输出至例如显示装置(未示出)进行显示。可替选地,控制装置15可以将所获得的解输出至存储器(未示出)进行存储,或者经由网络将所获得的解发送到另外的信息处理装置。
下面描述优化装置10的操作(优化装置10的优化方法)的示例的流程。
图3是示出优化装置的操作的示例的流程的流程图。
优化装置10的伊辛机11a1至11an接受控制装置15对子问题的设置(步骤S20)。在步骤S20的处理中,伊辛机11a1至11an的通信单元11d1至11dn从控制装置15接收例如与每个子问题对应的状态变量集中的每个状态变量的索引以及用于计算每个子问题的权重系数和偏置系数。存储单元11b1至11bn存储由通信单元11d1至11dn接收到的索引、x1至xN的初始值、权重系数和偏置系数。例如,伊辛机11a1的存储单元11b1存储索引(i)=1至K、x1至xN的初始值、x1至xK之间的权重系数、以及xl至xK中的每一个与xK+1至xN中的每一个之间的权重系数、以及偏置系数bl至bk。
伊辛机11a1至11an接受控制装置15的操作设置(步骤S21)。在步骤S21的处理中,伊辛机11a1至11an的通信单元11d1至11dn接收搜索单元11c1至11cn在单位时段内的搜索处理的重复次数和各种操作参数。存储单元11b1至11bn存储由通信单元11d1至11dn接收到的重复次数和各种操作参数。
伊辛机11a1至11an接受控制装置15要处理的组的设置(步骤S22)。在步骤S22的处理中,通信单元11d1至11dn接收指示要处理的组的信息,并且存储单元11b1至11bn存储所接收到的信息。
当伊辛机11a1至11an从控制装置15接收用于执行搜索处理的指令(步骤S23)时,伊辛机11a1至11an基于存储在存储单元11b1至11bn中的操作参数、指示要处理的组的信息等执行搜索处理(步骤S24)。
在第一单位时段的搜索处理中,搜索单元11c1至11cn通过将由其他伊辛机计算的状态变量集的初始值用作固定值来计算用于搜索处理的能量变化。例如,搜索单元11c1计算局部字段(hi),以计算等式(5)的ΔE'i。可以通过等式(3)计算用于计算hi的b'i。等式(3)中的xj是上述固定值。
通过由控制装置15设置处理顺序,搜索处理通过改变每个单位时段处理的状态变量集的组来执行。在相同单位时段内,对与由其他伊辛机处理的组不同的组的状态变量集执行搜索处理。
在图1的示例中,在伊辛机11a1的搜索单元11c1对组g0的x1至xK执行搜索处理的单位时段内,伊辛机11a2的搜索单元11c2对组g1的xK+1至x2K执行搜索处理。在该单位时段内,搜索单元11cn对组gn-1的x(n-1)K+1至xN执行搜索处理。
搜索单元11c1至11cn例如基于搜索处理是否执行存储在存储单元11b1至11bn中的重复次数来确定单位时段内的搜索处理是否完成(步骤S25)。在确定单位时段内的搜索处理没有完成的情况下,重复步骤S24的处理。在确定单位时段内的搜索处理完成的情况下,执行步骤S26的处理。
在步骤S26的处理中,通信单元11d1至11dn通知控制装置15单位时段内的搜索处理已经完成(步骤S26)。
当伊辛机11a1至11an中的每一个从控制装置15接收用于状态转移和后处理的指令(步骤S27)时,伊辛机11a1至11an中的每一个将成为解候选的状态转移到其他伊辛机并执行后处理(步骤S28)。成为解候选的状态也可以被转移到控制装置15。
例如,如图1所示,伊辛机11a1的通信单元11d1将组g0的x1至xK转移到伊辛机11a2至11an,所述组g0的x1至xK是在该单位时段内的搜索处理中成为解候选并被获得的状态。伊辛机11a2的通信单元11d2将组g1的xK+1至x2K转移到除伊辛机11a2之外的伊辛机,所述g1的xK+1至x2K是在该单位时段内的搜索处理中成为解候选并被获得的状态。伊辛机11an的通信单元11dn将组gn-1的x(n-1)K+1至xN转移到除伊辛机11an之外的伊辛机,所述组gn-1的x(n-1)K+1至xN是在该单位时段内的搜索处理中成为解候选并被获得的状态。伊辛机11a1至11an的已接收到所转移的状态的存储单元11b1至11bn存储所接收到的状态。
作为后处理,搜索单元11c1至11cn基于存储在存储单元11b1至11bn中的状态、与搜索单元本身负责计算的子问题对应的状态变量集的值、权重系数等对每个组计算局部字段,以用于下一个搜索处理。对每个组执行局部字段的计算。
例如,搜索单元11c1计算用于计算等式(5)的ΔE'i的hi。可以通过等式(3)来计算用于计算hi的b'i。作为等式(3)中的xj,将xK+1至xN(从伊辛机11a2至11an转移的状态)用作固定值。
搜索单元11c2至11cn也使用类似的等式来计算局部字段。例如,当搜索单元11c2计算局部字段时,在等式(3)和(5)中,i可以设置为K+1至2K,并且等式(3)右侧的第二项可以设置为通过将j=1至K的Wijxj之和与j=2K+1至N的Wijxj之和相加而获得的值。在等式(5)中,可以使用2K代替K,并且j可以设置为K+1至2K。
在后处理中,搜索单元11c1至11cn计算针对每个组的E'(x)。搜索单元11c1根据等式(2)计算E'(x)。在E'(x)的计算中,使用由控制装置15基于等式(4)计算的c'。搜索单元11c2至11cn也使用类似的等式计算E'(x)。例如,当搜索单元11c2计算E'(x)时,等式(2)右侧的第二项可以是i,j=K+1至2K范围内的Wijxixj之和。
伊辛机11a1至11an的通信单元11d1至11dn将每个子问题的E'(x)发送到控制装置15(步骤S29)。在伊辛机11a1至11an的通信单元11d1至11dn从控制装置15接收到结束搜索的指令的情况下(在接收到结束搜索的指令的情况下)(步骤S30:是),搜索单元11c1至11cn结束搜索处理。在没有从控制装置15接收到结束搜索的指令(步骤S30:否)的情况下,从步骤S22开始重复处理。
图2和图3中的处理顺序是示例,并且可以适当地调换处理顺序。
根据如上所述的第一实施方式的优化装置10,伊辛机11a1至11an中的每一个对n个组使用与伊辛机本身负责计算的子问题对应的状态变量集。伊辛机11a1至11an中的每一个通过改变每个单位时段处理的组来执行搜索处理,并且在相同单位时段内对与由其他伊辛机处理的组不同的组的状态变量集执行搜索处理。相应地,由于在每个组中顺序地执行状态变量的值的更新,因此满足了通过马尔科夫链蒙特卡洛方法对伊辛模型进行能量最小化的原理。当某个伊辛机对某个组的状态变量集执行搜索处理时,另外的伊辛机可以对另外的组的状态变量集执行搜索处理,并因此每个伊辛机都可以有效地工作,并且可以提高计算效率。因此,提高了优化装置10对大规模问题的解搜索性能。
(第二实施方式)
图4是示出根据第二实施方式的优化装置的示例的图。
根据第二实施方式的优化装置20包括四个伊辛机21、22、23和24。例如,根据第二实施方式的优化装置20是根据第一实施方式的优化装置10中n=4的示例。优化装置20由控制器30控制。控制器30是上述控制装置15的示例,并且具有与控制装置15的功能类似的功能。
伊辛机21至24中的每一个具有与根据第一实施方式的优化装置10的伊辛机11a1至11an中的每一个的功能类似的功能。
在以下示例中,假设由x1至xN的N位伊辛模型表示的问题被划分成四个子问题,并且K(=N/4)位被分配给伊辛机21至24中的每一个。
图5是示出在每个伊辛机中要计算的子问题、用于计算的局部字段和权重系数的示例的图。
x1至xN之中的表示x1至xK的X0是与由伊辛机21计算的子问题对应的状态。x1至xN之中的表示xK+1至x2K的X1是与由伊辛机22计算的子问题对应的状态。x1至xN之中的表示x2K+1至x3K的X2是与由伊辛机23计算的子问题对应的状态。x1至xN之中的表示x3K+1至xN的X3是与由伊辛机24计算的子问题对应的状态。
在伊辛机21至24中,状态均用于四个组。在下文中,这四个组被称为副本组0、1、2和3。在下文中,副本组0至3中的每一个中的X0被表示为X0-g0、X0-g1、X0-g2或X0-g3。副本组0至3中的每一个中的X1、X2和X3也以相同的方式表示。
在伊辛机21至24中计算的局部字段还针对四个组中的每一个进行计算。在下文中,由伊辛机21针对副本组0至3中的每一个计算的局部字段被表示为LF0-g0、LF0-g1、LF0-g2或LF0-g3。由伊辛机22至24针对副本组0至3中的每一个计算的局部字段也以相同的方式表示。
图5示出了将具有N×N个权重系数的权重系数矩阵划分成4×4个权重系数组(W00至W33)的示例。
由伊辛机21使用的权重系数组为W00、W10、W20和W30。W00由x1至xK之间的权重系数组成。W10由x1至xK中的每一个与xK+1至x2K中的每一个之间的权重系数组成,W20由x1至xK中的每一个与x2K+1至x3K中的每一个之间的权重系数组成,并且W30由x1至xK中的每一个与x3K+1至xN中的每一个之间的权重系数组成。
由伊辛机22使用的权重系数组为W01、W11、W21和W31。W11由xK+1至x2K之间的权重系数组成。W01由xK+1至x2K中的每一个与x1至xK中的每一个之间的权重系数组成,W21由xK+1至x2K中的每一个与x2K+1至x3K中的每一个之间的权重系数组成,并且W31由xK+1至x2K中的每一个与x3K+1至xN中的每一个之间的权重系数组成。
由伊辛机23使用的权重系数组为W02、W12、W22和W32。W22由x2K+1至x3K之间的权重系数组成。W02由x2K+1至x3K中的每一个与x1至xK中的每一个之间的权重系数组成,W12由x2K+1至x3K中的每一个与xK+1至x2K中的每一个之间的权重系数组成,并且W32由x2K+1至x3K中的每一个与x3K+1至xN中的每一个之间的权重系数组成。
由伊辛机24使用的权重系数组为W03、W13、W23和W33。W33由x3K+1至xN之间的权重系数组成,W03由x3K+1至xN中的每一个与x1至xK中的每一个之间的权重系数组成,W13由x3K+1至xN中的每一个与xK+1至x2K中的每一个之间的权重系数组成,并且W23由x3K+1至xN中的每一个与x2K+1至x3K中的每一个之间的权重系数组成。
图6是示出伊辛机的示例的图。图6示出了伊辛机21的示例。伊辛机22至24也通过与伊辛机21的配置类似的配置来实现。
伊辛机21包括搜索单元21a、通信单元21b、本地存储器21c1和HBM21c2。例如,搜索单元21a、通信单元21b和本地存储器21c1通过一个芯片的半导体集成电路来实现。
搜索单元21a是根据第一实施方式的优化装置10的搜索单元11c1的示例,并且包括解搜索单元21a1和LF(局部字段)计算单元21a2。
解搜索单元21a1基于由作为其他伊辛机的伊辛机22至24计算的状态来搜索使如等式(2)所示的E'(x)最小化的X0-g0至X0-g3。
通过诸如模拟退火方法或副本交换方法的马尔科夫链蒙特卡洛方法来执行搜索处理。例如,解搜索单元21a1针对x1至xK中的每一个通过等式(5)计算由于x1至xK之一的变化而引起的ΔE'i,优先接受E'(x)减小的变化,并更新状态。解搜索单元21a1随机地允许E'(x)也增大的变化。等式(5)中用于计算ΔE'i的hi随着状态被更新而更新。
在xj更新的情况下hi的变化可以在Δxj为1时表示为+Wij,而在Δxj为-1时表示为-Wij。因此,解搜索单元21a1将hi保持在寄存器(未示出)中,并且可以根据按照Δxj是向hi增加Wij还是从hi减去Wij来更新hi。
解搜索单元21al对副本组0至3中的每一个重复这样的处理,直到满足单位时段内的搜索结束条件(例如,预定的重复次数是否结束)。解搜索单元21a1基于控制器30的控制通过改变每个单位时段处理的副本组来执行搜索处理。在相同单位时段内,解搜索单元21a1对与由其他伊辛机处理的副本组不同的副本组的状态执行搜索处理。
LF计算单元21a2通过固定由伊辛机22至24计算的状态来计算局部字段。
图7是示出状态固定的示例的图。
图7示出了由伊辛机22计算的状态中包括的xK+1和由伊辛机24计算的状态中包括的xN是固定位(在图7的示例中xK+1=1和xN=0)的示例。
LF计算单元21a2可以使用固定位的值以及由解搜索单元21a1计算的状态中包括的状态变量与固定位之间的权重系数通过等式(3)确定用于计算hi(i=1至K)的b'i。例如,在图7中xK与xK+1之间的权重系数(WK,K+1)用来计算b'K,并且x3与xK+1之间的权重系数(W3,K+1)用来计算b'3。
搜索单元21a可以例如通过诸如ASIC或FPGA的专用电子电路来实现。该配置不限于此,并且搜索单元21a的部分或全部可以通过由诸如CPU或GPU的处理器执行程序而产生的软件处理来实现。
通信单元21b具有与根据第一实施方式的优化装置10的通信单元11d1的功能类似的功能,并且每当单位时段内的搜索处理结束时,将通过搜索处理获得的状态发送到伊辛机22至24。通信单元21b例如是按照诸如PCI Express的接口标准执行通信的收发器电路。
本地存储器21c1存储用于由搜索单元21a当前正在处理的副本组的搜索处理的数据。本地存储器21c1例如存储用于由解搜索单元21a1当前正在处理的副本组的搜索处理的图5中的W00、局部字段(图5中LF0-g0至LF0-g3中的任一个)和状态(图5中X0-g0至X0-g3中的任一个)等。当LF计算单元21a2计算等式(3)的b'i时,本地存储器21c1还存储图5中的W10、W20和W30。作为本地存储器21c1,例如,使用SRAM。
HBM 21c2存储用于由伊辛机21要计算的子问题的计算的全部数据。HBM 21c2例如存储图5中的X0-g0至X0-g3、LF0-g0至LF0-g3、W00、W10、W20和W30。根据由解搜索单元21a1和LF计算单元21a2执行的处理,用于该处理的数据从HBM 21c2读取到本地存储器21c1。
图8是示出控制器的硬件示例的框图。
控制器30例如是计算机,并且包括CPU 31、随机存取存储器(RAM)32、硬盘驱动器(HDD)33、图像信号处理单元34、输入信号处理单元35、介质读取器36、通信接口37和接口38。上述单元耦接至总线。
CPU 31是包括执行程序指令的运算电路的处理器。CPU 31将存储在HDD 33中的程序和数据的至少一部分加载到RAM 32中并执行该程序。CPU 31可以包括多个处理器核,控制器30可以包括多个处理器,并且可以使用多个处理器或处理器核并行执行下面要描述的处理。一组多个处理器(多处理器)可以被称为“处理器”。
RAM 32是临时存储由CPU 31执行的程序和由CPU 31用于计算的数据的易失性半导体存储器。控制器30可以包括除RAM之外的存储器类型或多个存储器。
HDD 33是存储操作系统(OS)和诸如中间件和应用软件的软件的程序以及数据的非易失性存储装置。该程序例如包括使控制器30执行对优化装置20的控制的控制程序。控制器30可以包括诸如闪存和固态驱动器(SSD)的其他类型的存储装置或多个非易失性存储装置。
图像信号处理单元34根据来自CPU 31的指令将图像输出至耦接至控制器30的显示器34a。作为显示器34a,可以使用阴极射线管(CRT)显示器、液晶显示器(LCD)、等离子显示面板(PDP)、有机电致发光(OEL)显示器等。
输入信号处理单元35从耦接至控制器30的输入设备35a获取输入信号,并将输入信号输出至CPU 31。作为输入设备35a,可以使用诸如鼠标、触摸面板、触摸板或轨迹球、键盘、遥控器、按钮开关等的点击设备。多种类型的输入设备可以耦接至控制器30。
介质读取器36是读取记录在记录介质36a中的程序和数据的读取装置。作为记录介质36a,例如,可以使用磁盘、光盘、磁光盘(MO)、半导体存储器等。磁盘包括软盘(FD)和HDD。光盘包括压缩光盘(CD)和数字多功能光盘(DVD)。
例如,介质读取器36将从记录介质36a读取的程序和数据复制到诸如RAM 32或HDD33的另外的记录介质。读取程序例如由CPU 31执行。记录介质36a可以是便携式记录介质,或者可以用来分发程序和数据。记录介质36a和HDD 33可以被称为计算机可读记录介质。
通信接口37是耦接至网络37a并经由网络37a与另外的信息处理装置通信的接口。通信接口37可以是经由线缆耦接至诸如交换机的通信装置的有线通信接口,或者是经由无线链路耦接至基站的无线通信接口。
接口38耦接至优化装置20并且在CPU 31与优化装置20之间交换数据。接口38可以例如是诸如PCI Express的有线通信接口或无线通信接口。
图1所示的控制装置15也可以通过使用例如如上所述的硬件来实现。
下面描述根据第二实施方式的优化装置20的操作以及控制器30对优化装置20的控制示例。
图2所示的控制装置15对优化装置10的控制的示例的流程也可以应用于控制器30对优化装置20的控制。下面参照图2简要描述控制器30对优化装置20的控制的示例的流程。
在步骤S1的操作参数确定处理中,控制器30将N位问题的子问题的大小设置为N/4位。在伊辛机21至24中的每一个的搜索处理中使用副本交换方法的情况下,当副本数为R时,控制器30将每组副本数=R/4确定为操作参数之一。例如,当R=8时,每组副本数为2。
在步骤S2和S3的处理中,控制器30基于所确定的操作参数划分问题,并且在伊辛机21至24中的每一个中设置子问题。
在步骤S4和S5的处理中,控制器30设置伊辛机21至24的操作并设置要处理的副本组。
在步骤S6的处理中,控制器30指示伊辛机21至24中的每一个执行搜索处理。在所有伊辛机21至24没有完成单位时段内的搜索处理(步骤S7:否)的情况下,控制器30待机,直到搜索处理完成为止,并且在搜索处理完成(步骤S7:是)的情况下,控制器30继续进行步骤S8的处理。
在步骤S8的处理中,控制器30指示伊辛机21至24转移成为解候选的状态并执行后处理。
在步骤S9的处理中,控制器30接收由伊辛机21至24中的每一个计算的副本组0至3的E'(x)和作为解候选的状态,并且计算副本组0至3中的每一个的总能量。
在满足预定的搜索结束条件的情况下,控制器30确定整个搜索完成(步骤S10:是),指示优化装置20结束搜索(步骤S11),并结束对优化装置20的控制。在不满足预定的搜索结束条件的情况下,控制器30确定整个搜索没有完成(步骤S10:否),并从步骤S5开始重复处理。
例如,直到确定整个搜索完成,控制器30输出当在所有组中获得最小能量时的x1至xN的值作为问题的解。控制器30将获得的解例如输出至显示器34a进行显示。可替选地,控制器30可以使获得的解存储在HDD33中,或者经由网络37a将获得的解发送到另外的信息处理装置。
图3所示的优化装置10的操作的示例的流程也可以应用于优化装置20的操作。下面参照图3简要描述优化装置20的操作的示例的流程。
在步骤S20的处理中,伊辛机21至24从控制器30接收例如与每个子问题对应的状态变量集中的每个状态变量的索引、x1至xN的初始值以及用于计算每个子问题的权重系数和偏置系数。接收到的数据存储在伊辛机21至24中包括的HBM(例如,图6中的HBM 21c2)。
在步骤S21和S22的处理中,伊辛机21至24从控制器30接收单位时段内的搜索处理的重复次数、各种操作参数和指示要处理的副本组的信息。伊辛机21至24将这些存储在本地存储器中(例如,图6中的本地存储器21c1)。
在步骤S23的处理中,伊辛机21至24从控制器30接受执行搜索处理的指令,并执行步骤S24的搜索处理。
伊辛机21至24基于搜索处理是否执行重复次数来确定单位时段内的搜索处理是否完成(步骤S25)。在确定单位时段内的搜索处理没有完成的情况下,重复步骤S24的处理。在确定单位时段内的搜索处理完成的情况下,执行步骤S26的处理。
在步骤S26的处理中,伊辛机21至24通知控制器30搜索处理完成。在步骤S27和S28的处理中,当伊辛机21至24从控制器30接受用于状态转移和后处理的指令时,伊辛机21至24将成为解候选的状态转移到其他伊辛机和控制器30,并执行后处理。
此后,在步骤S29的处理中,伊辛机21至24将在后处理中针对每个子问题计算的E'(x)发送到控制器30。在存在来自控制器30的用于结束搜索的指令(步骤S30:是)的情况下,伊辛机21至24结束搜索处理。在没有从控制器30接收到结束搜索的指令(步骤S30:否)的情况下,从步骤S22开始重复处理。
接下来,描述在上述步骤S5的处理中在副本组0至3中的每一个中的状态的处理顺序被固定的情况下伊辛机21至24的操作示例。
图9是示出在每个副本组中的状态的处理顺序被固定的情况下每个伊辛机的操作的示例的图。在图9的示例中,在副本组0至3的每一个中按X0、X1、X2和X3(省略“-g0”、“-g1”、“-g2”和“-g3”的符号)顺序执行通过马尔科夫链蒙特卡洛方法进行的搜索处理。
在第一单位时段T1中,伊辛机21对作为副本组0的状态的X0-g0执行搜索处理。当单位时段T1内的搜索处理结束时,伊辛机21将X0-g0转移到伊辛机22至24。伊辛机22至24基于接收到的X0-g0更新(在图9中表示为LF更新)副本组0的局部字段(LF1-g0、LF2-g0和LF3-g0)。
在下一个单位时段T2中,伊辛机21对作为副本组1的状态的X0-g1执行搜索处理。在单位时段T2中,伊辛机22对作为副本组0的状态的X1-g0执行搜索处理。当单位时段T2内的搜索处理结束时,伊辛机21将X0-g1转移到伊辛机22至24,并且伊辛机22将X1-g0转移到伊辛机21、23和24。伊辛机21至24基于接收到的X0-g1或X1-g0更新副本组0和1的局部字段。
在单位时段T3中,伊辛机21对作为副本组2的状态的X0-g2执行搜索处理,并且伊辛机22对作为副本组1的状态的X1-g1执行搜索处理。在单位时段T3中,伊辛机23对作为副本组0的状态的X2-g0执行搜索处理。当单位时段T3内的搜索处理结束时,伊辛机21将X0-g2转移到伊辛机22至24,并且伊辛机22将X1-g1转移到伊辛机21、23和24。伊辛机23将X2-g0转移到伊辛机21、22和24。伊辛机21至24基于接收到的X0-g2、X1-g1或X2-g0来更新副本组0至2的局部字段。
在单位时段T4中,伊辛机21对作为副本组3的状态的X0-g3执行搜索处理,并且伊辛机22对作为副本组2的状态的X1-g2执行搜索处理。在单位时段T4中,伊辛机23对作为副本组1的状态的X2-g1执行搜索处理,并且伊辛机24对作为副本组0的状态的X3-g0执行搜索处理。
图10是示出单位时段T4内的搜索处理之后的状态的转移示例的图。
伊辛机21将X0-g3转移到伊辛机22至24,并且伊辛机22将X1-g2转移到伊辛机21、23和24。伊辛机23将X2-g1转移到伊辛机21、22和24,并且伊辛机24将X3-g0转移到伊辛机21至23。
伊辛机21至24基于接收到的X0-g3、X1-g2、X2-g1或X3-g0更新副本组0至3的局部字段。
通过上述处理,针对副本组0通过马尔科夫链蒙特卡洛方法进行的第一搜索处理单元(在图9中表示为MCMC处理单元)结束。此后,在副本组0至3的每一个中,伊辛机21至24中的每一个在单位时段T5、T6、T7、T8、T9、T10和T11中按X0、X1、X2和X3顺序对每个状态类似地执行搜索处理。针对副本组1的第一MCMC处理单元以单位时段T5内的搜索处理之后的状态转移和局部字段更新结束。尽管未示出,针对副本组2的第一MCMC处理单元以单位时段T6内的搜索处理之后的状态转移和局部字段更新结束。针对副本组3的第一MCMC处理单元以单位时段T7内的搜索处理之后的状态转移和局部字段更新结束。在图9的示例中,副本组0至3中的每一个被处理两次,并且整个搜索通过使单位时段T11内的搜索处理结束而结束。
如图9所示,伊辛机21至24以副本组为单位以流水线方式对与每个子问题对应的状态执行搜索处理。在单位时段T4至T8中,通过使用所有伊辛机21至24并行地执行对副本组0至3的状态的搜索处理。
因此,伊辛机21至24中的每一个都有效地工作,并且可以提高计算效率。因此,提高了优化装置20对大型问题的解搜索性能。由于在副本组0至3中的每一个中顺序地执行状态变量的值的更新,因此满足了通过马尔科夫链蒙特卡洛方法对伊辛模型进行能量最小化的原理。
接下来,描述在上述步骤S5的处理中在MCMC处理单元中改变副本组0至3的每一个中的状态的处理顺序的情况下伊辛机21至24的操作示例。
图11是示出在MCMC处理单元中改变每个副本组中的状态的处理顺序的情况下每个伊辛机的操作的示例的图。
在第一单位时段T10中,伊辛机21对作为副本组0的状态的X0-g0执行搜索处理,并且伊辛机22对作为副本组1的状态的X1-g1执行搜索处理。在单位时段T10中,伊辛机23对作为副本组2的状态的X2-g2执行搜索处理,并且伊辛机24对作为副本组3的状态的X3-g3执行搜索处理。
图12是示出单位时段T10内的搜索处理之后的状态的转移示例的图。
伊辛机21将X0-g0转移到伊辛机22至24,并且伊辛机22将X1-g1转移到伊辛机21、23和24。伊辛机23将X2-g2转移到伊辛机21、22和24,并且伊辛机24将X3-g3转移到伊辛机21至23。
伊辛机21至24基于接收到的X0-g0、X1-g1、X2-g2或X3-g3更新副本组0至3的局部字段。
在单位时段T11中,伊辛机21对作为副本组1的状态的X0-g1执行搜索处理,并且伊辛机22对作为副本组0的状态的X1-g0执行搜索处理。在单位时段T11中,伊辛机23对作为副本组3的状态的X2-g3执行搜索处理,并且伊辛机24对作为副本组2的状态的X3-g2执行搜索处理。
当单位时段T11内的处理结束时,伊辛机21将X0-g1转移到伊辛机22至24,并且伊辛机22将X1-g0转移到伊辛机21、23和24。伊辛机23将X2-g3转移到伊辛机21、22和24,并且伊辛机24将X3-g2转移到伊辛机21至23。
伊辛机21至24基于接收到的X0-g1、X1-g0、X2-g3或X3-g2更新副本组0至3的局部字段。
在单位时段T12中,伊辛机21对作为副本组2的状态的X0-g2执行搜索处理,并且伊辛机22对作为副本组3的状态的X1-g3执行搜索处理。在单位时段T12中,伊辛机23对作为副本组0的状态的X2-g0执行搜索处理,并且伊辛机24对作为副本组1的状态的X3-g1执行搜索处理。
当单位时段T12内的处理结束时,伊辛机21将X0-g2转移到伊辛机22至24,并且伊辛机22将X1-g3转移到伊辛机21、23和24。伊辛机23将X2-g0转移到伊辛机21、22和24,并且伊辛机24将X3-g1转移到伊辛机21至23。
伊辛机21至24基于接收到的X0-g2、X1-g3、X2-g0或X3-g1更新副本组0至3的局部字段。
在单位时段T13中,伊辛机21对作为副本组3的状态的X0-g3执行搜索处理,并且伊辛机22对作为副本组2的状态的X1-g2执行搜索处理。在单位时段T13中,伊辛机23对作为副本组1的状态的X2-g1执行搜索处理,并且伊辛机24对作为副本组0的状态的X3-g0执行搜索处理。
当单位时段T13内的处理结束时,伊辛机21将X0-g3转移到伊辛机22至24,并且伊辛机22将X1-g2转移到伊辛机21、23和24。伊辛机23将X2-g1转移到伊辛机21、22和24,并且伊辛机24将X3-g0转移到伊辛机21至23。
伊辛机21至24基于接收到的X0-g3、X1-g2、X2-g1或X3-g0更新副本组0至3的局部字段。
通过上述处理,针对副本组0至3中的每一个的第一MCMC处理单元结束。在第一MCMC处理单元中,副本组0中状态的处理顺序是X0、X1、X2和X3,并且副本组1中状态的处理顺序是X1、X0、X3和X2。副本组2中状态的处理顺序是X2、X3、X0和X1,并且副本组3中状态的处理顺序是X3、X2、X1和X0。
当第一MCMC处理单元结束时,控制器30例如随机地改变副本组0至3的每一个中的状态的处理顺序。在图11中在单位时段T14、T15、T16和T17内的处理中,表明状态的处理顺序如下改变。例如,副本组0中改变之后的状态的处理顺序是X3、X1、X0和X2,并且副本组1中改变之后的状态的处理顺序是X1、X0、X2和X3。副本组2中改变之后的状态的处理顺序是X0、X2、X3和X1,并且副本组3中改变之后的状态的处理顺序是X2、X3、X1和X0。
即使在改变之后,在相同单位时段中,伊辛机21至24对不同副本组的状态各自执行搜索处理。因此,由于在副本组0至3中的每一个中顺序地执行状态变量的值的更新,因此满足了通过马尔科夫链蒙特卡洛方法对伊辛模型进行能量最小化的原理。
通过改变X0至X3的处理顺序(对应于四个子问题的处理顺序)而不是固定处理顺序,例如使具有随机性,可以减少搜索的偏差。因此,可以期望优化装置20的解搜索性能的进一步改善。
如上所述,可以通过使控制器30执行程序来实现处理细节。
程序可以被记录在计算机可读记录介质(例如记录介质36a)上。作为记录介质,例如,可以使用磁盘、光盘、磁光盘、半导体存储器等。磁盘包括FD和HDD。光盘包括CD、CD可记录(R)/可重写(RW)、DVD和DVD-R/RW。可以在便携式记录介质上记录并分布程序。在这种情况下,程序可以从便携式记录介质复制到另外的记录介质(例如HDD 33)并执行。
Claims (7)
1.一种优化装置,包括:
多个伊辛机,每个伊辛机搜索通过划分由伊辛模型表示的问题而获得的多个子问题之中的子问题的解,
所述多个伊辛机中的每一个包括:
存储单元,其存储针对多个组的与要计算的子问题对应的状态变量集的值;
搜索单元,其通过改变每个单位时段要处理的组、基于由其他伊辛机计算的子问题的第一解候选,对所述多个组中的每一个执行计算第二解候选的处理,使得在相同单位时段内针对与由所述其他伊辛机处理的组不同的组的所述状态变量集计算所述第二解候选;以及
通信单元,其每当所述单位时段结束时,将所述第二解候选发送到所述其他伊辛机。
2.根据权利要求1所述的优化装置,其中
所述搜索单元计算由于所述状态变量集中包括的状态变量中的任一个的值的变化而引起的所述伊辛模型的能量的变化,而固定由所述其他伊辛机计算的所述第一解候选的值。
3.根据权利要求1或2所述的优化装置,其中
与由所述多个伊辛机处理的相同组中的每个子问题对应的所述状态变量集的处理顺序在预定的处理时间被改变。
4.根据权利要求1或2所述的优化装置,其中
所述多个伊辛机中的每一个包括多个副本,所述多个副本分别针对所述多个组计算所述第二解候选。
5.根据权利要求1或2所述的优化装置,其中
所述搜索单元在所述相同单位时段内针对如下组的所述状态变量集计算所述第二解候选,所述组分配有与分配给由所述其他伊辛机处理的组的组号不同的组号。
6.一种由多个伊辛机执行的优化方法,每个伊辛机搜索通过划分由伊辛模型表示的问题而获得的多个子问题之中的子问题的解,所述优化方法包括:
由所述多个伊辛机中的每一个通过改变每个单位时段要处理的组、基于由其他伊辛机计算的子问题的第一解候选,对多个组中的每一个执行计算所述子问题的第二解候选的处理,使得在相同单位时段内针对与由所述其他伊辛机处理的组不同的组的所述状态变量集计算所述第二解候选;以及
每当所述单位时段结束时,将所述第二解候选发送到所述其他伊辛机。
7.一种存储有程序的非暂态计算机可读记录介质,所述程序使计算机中的每台计算机执行过程,所述每台计算机搜索通过划分由伊辛模型表示的问题而获得的多个子问题之中的子问题的解,所述过程包括:
通过改变每个单位时段要处理的组、基于由其他计算机计算的子问题的第一解候选,对多个组中的每一个执行计算所述子问题的第二解候选的处理,使得在相同单位时段内针对与由所述其他计算机处理的组不同的组的所述状态变量集计算所述第二解候选;以及
每当所述单位时段结束时,将所述第二解候选发送到所述其他计算机。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020026340A JP7417074B2 (ja) | 2020-02-19 | 2020-02-19 | 最適化装置、最適化方法及び最適化装置の制御プログラム |
JP2020-026340 | 2020-02-19 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113283046A true CN113283046A (zh) | 2021-08-20 |
CN113283046B CN113283046B (zh) | 2024-09-06 |
Family
ID=
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012068776A (ja) * | 2010-09-22 | 2012-04-05 | Nec Corp | 最適化装置、最適化方法、及び最適化プログラム |
CN107273508A (zh) * | 2017-06-20 | 2017-10-20 | 北京百度网讯科技有限公司 | 基于人工智能的信息处理方法和装置 |
CN109240644A (zh) * | 2018-08-17 | 2019-01-18 | 湖南毂梁微电子有限公司 | 一种用于伊辛芯片的局部搜索方法及电路 |
US20190340532A1 (en) * | 2018-05-02 | 2019-11-07 | IonQ, Inc. | Quantum computer simulator characterization |
US20200042570A1 (en) * | 2018-07-31 | 2020-02-06 | Fujitsu Limited | Optimization apparatus and method for controlling thereof |
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012068776A (ja) * | 2010-09-22 | 2012-04-05 | Nec Corp | 最適化装置、最適化方法、及び最適化プログラム |
CN107273508A (zh) * | 2017-06-20 | 2017-10-20 | 北京百度网讯科技有限公司 | 基于人工智能的信息处理方法和装置 |
US20190340532A1 (en) * | 2018-05-02 | 2019-11-07 | IonQ, Inc. | Quantum computer simulator characterization |
US20200042570A1 (en) * | 2018-07-31 | 2020-02-06 | Fujitsu Limited | Optimization apparatus and method for controlling thereof |
CN109240644A (zh) * | 2018-08-17 | 2019-01-18 | 湖南毂梁微电子有限公司 | 一种用于伊辛芯片的局部搜索方法及电路 |
Non-Patent Citations (1)
Title |
---|
MAREK M. RAMS: ""Heuristic optimization and sampling with tensor networks"", HTTP://ARXIV.ORG/PDF/1811.06518V3,ARXIV:1811.06518V3[COND-MAT.STAT-MECH], 21 June 2019 (2019-06-21), pages 1 * |
Also Published As
Publication number | Publication date |
---|---|
EP3885999A1 (en) | 2021-09-29 |
JP2021131695A (ja) | 2021-09-09 |
US20210256090A1 (en) | 2021-08-19 |
JP7417074B2 (ja) | 2024-01-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3885999A1 (en) | Optimization apparatus, optimization method, and program | |
JP7206476B2 (ja) | 最適化装置、最適化装置の制御方法及び最適化装置の制御プログラム | |
JP7071638B2 (ja) | 最適化装置、最適化装置の制御方法及び最適化装置の制御プログラム | |
US11599073B2 (en) | Optimization apparatus and control method for optimization apparatus using ising models | |
JP7185140B2 (ja) | 最適化装置及び最適化装置の制御方法 | |
JP7093009B2 (ja) | 最適化装置、最適化装置の制御方法及び最適化装置の制御プログラム | |
JP7252449B2 (ja) | 最適化装置、最適化システム、最適化方法および最適化プログラム | |
JP7137064B2 (ja) | 最適化装置及び最適化装置の制御方法 | |
US11244026B2 (en) | Optimization problem arithmetic method and optimization problem arithmetic device | |
CN113536229A (zh) | 采样装置、采样方法以及用于存储采样程序的存储介质 | |
CA3188066A1 (en) | Methods and systems for hyperparameter tuning and benchmarking | |
JP2020027426A (ja) | 最適化システム、最適化システムの制御方法及び最適化システムの制御プログラム | |
CN112149269A (zh) | 优化设备、优化设备的控制方法和记录介质 | |
US11514135B2 (en) | Optimization apparatus, temperature setting method, and non-transitory computer-readable storage medium | |
JPWO2020054062A1 (ja) | 最適化装置および最適化装置の制御方法 | |
CN113283046B (zh) | 优化装置、优化方法和记录介质 | |
CN116738128B (zh) | 一种利用量子线路求解含时偏微分方程的方法及装置 | |
US20220382932A1 (en) | Data processing apparatus, data processing method, and non-transitory computer-readable storage medium | |
US20220335487A1 (en) | Non-transitory computer-readable recording medium, data processing method, and data processing apparatus | |
CN113283609A (zh) | 信息处理方法、信息处理设备和信息处理程序 | |
US20240111833A1 (en) | Data processing apparatus and data processing method | |
US20220335286A1 (en) | Methods, systems, articles of manufacture, and apparatus for designing hardware | |
US20230081944A1 (en) | Data processing apparatus, data processing method, and storage medium | |
US20220405347A1 (en) | Data processing apparatus, computer-readable recording medium storing program of processing data, and method of processing data | |
US20220318663A1 (en) | Non-transitory computer-readable recording medium, optimization method, and optimization apparatus |
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 |