CN116894496A - 信息处理设备和信息处理方法 - Google Patents

信息处理设备和信息处理方法 Download PDF

Info

Publication number
CN116894496A
CN116894496A CN202310310972.XA CN202310310972A CN116894496A CN 116894496 A CN116894496 A CN 116894496A CN 202310310972 A CN202310310972 A CN 202310310972A CN 116894496 A CN116894496 A CN 116894496A
Authority
CN
China
Prior art keywords
state variables
local
value
variable
state
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202310310972.XA
Other languages
English (en)
Inventor
陈思庚
杰弗里·塞特·罗森塔尔
阿里·谢赫勒斯拉米
田村泰孝
松原聪
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of CN116894496A publication Critical patent/CN116894496A/zh
Pending legal-status Critical Current

Links

Classifications

    • 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
    • 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
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/18Complex mathematical operations for evaluating statistical data, e.g. average values, frequency distributions, probability functions, regression analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N7/00Computing arrangements based on specific mathematical models
    • G06N7/01Probabilistic graphical models, e.g. probabilistic networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Algebra (AREA)
  • Operations Research (AREA)
  • Databases & Information Systems (AREA)
  • Probability & Statistics with Applications (AREA)
  • Computing Systems (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Computational Linguistics (AREA)
  • Complex Calculations (AREA)
  • Feedback Control In General (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本申请公开了信息处理设备和信息处理方法。存储单元存储存储设备中存储的多个耦合系数中的一些耦合系数。处理单元将多个状态变量中的多个第一状态变量作为试验目标集。处理单元执行以下处理:从存储设备读取与属于试验目标集的第一状态变量的多个第一对对应的多个第一耦合系数;将多个第一耦合系数存储在存储单元中;以及使用多个第一耦合系数多次进行关于是否更新属于试验目标集的任何第一状态变量的值的试验。处理单元重复试验目标集的改变和所述处理,以便在试验中以所有多个状态变量为目标。

Description

信息处理设备和信息处理方法
技术领域
本文中讨论的实施方式涉及信息处理设备和信息处理方法。
背景技术
信息处理设备可以用于解决组合优化问题。组合优化问题被转化为表达磁自旋行为的伊辛模型的能量函数。该能量函数可以被称为评估函数或目标函数。例如,信息处理设备搜索包括在能量函数中的状态变量值的组合,以找到使能量函数的值最小化的组合。在这种情况下,使能量函数的值最小化的状态变量值的组合对应于基态或由一组状态变量表示的最优解。用于在实际时间中获得组合优化问题的近似解的技术包括基于马尔可夫链蒙特卡洛(MCMC)方法的模拟退火(SA)和副本交换。
例如,已经提出了一种信息处理系统,该信息处理系统具有执行伊辛模型的基态搜索的一个或多个半导体芯片。该信息处理系统通过使用半导体芯片搜索伊辛模型的基态来找到问题的解。
此外,已经提出了一种优化系统,该优化系统包括具有多个神经元组的优化设备。在该提案中,优化设备从由属于所选神经元组的第一神经元的值的变化引起的能量变化中计算由属于该神经元组的其他神经元的影响引起的第一变化部分。另一方面,不同于优化设备的计算设备计算由不属于该神经元组的第二神经元的影响引起的第二变化部分。优化设备基于第一变化部分和第二变化部分的总和利用随机搜索来确定是否更新第一神经元值,并且根据更新确定结果来更新或维持第一神经元值。重复上面的更新处理。
此外,已经提出了一种采样设备,该采样设备包括多个更新电路,每个更新电路基于对应于按预定顺序被选择为变化候选的状态变量的局部场来计算能量函数的值的变化,并且根据计算出的变化来改变被选择为变化候选的状态变量的值。每当一个状态变量被选择为变化候选时,该提出的采样设备从存储两个状态变量的所有集合的耦合系数的存储器读取被选择为变化候选的一个状态变量和另一状态变量的每个集合的耦合系数,并且将读取的耦合系数存储在多个更新电路中的每个更新电路的存储单元中。当改变被选择为变化候选的一个状态变量的值时,更新电路使用耦合系数更新其他状态变量的局部场。
例如,参见日本特开专利公布第2016-51350号、第2019-139323号和第2020-204929号。
如上面所描述的,信息处理设备使用相应状态变量对的耦合系数来找到组合优化问题的解。通过将耦合系数存储在用作高速缓存的存储单元中,这提供从更新状态变量的值的计算单元的相对快速访问,从而可以加速问题解决。
然而,如果存储单元具有相对小的容量,它可能无法存储所有的耦合系数。在这种情况下,所有的耦合系数可以存储在存储设备中,该存储设备提供比存储单元更慢的从计算单元的访问,但是具有相对大的容量。在这一点上,例如,如在上面的提案中,考虑以下方法:每当一个状态变量被选择为下一变化候选时,计算单元从存储设备读取与该状态变量相关联的耦合系数,并且将读取的耦合系数存储在存储单元中,以用于更新该状态变量的值。然而,这种方法增加了对保存所有耦合系数的存储设备的访问频率,并且因此限制了用于问题解决的处理速度。
发明内容
根据一个方面,本公开内容旨在加速解决大规模问题。
根据一个方面,提供了一种用于使用伊辛模型的能量函数找到组合优化问题的解的信息处理设备。该信息处理设备包括第一存储装置和处理装置。第一存储装置用于存储多个耦合系数中的一些耦合系数,所述多个耦合系数对应于能量函数中包括的多个状态变量的多个对,所述多个耦合系数存储在存储设备中。处理装置用于执行以下处理:针对包括多个状态变量中的多个第一状态变量作为是否执行值更新的试验目标的试验目标集,从存储设备读取与属于试验目标集的多个第一状态变量的多个第一对对应的多个第一耦合系数,并且将多个第一耦合系数存储在第一存储装置中;以及使用存储在第一存储装置中的多个第一耦合系数,多次进行关于是否更新属于试验目标集的多个第一状态变量中的任一个的值的试验。处理装置还重复试验目标集的改变和上述处理,以便在试验中以所有多个状态变量为目标。
附图说明
图1是用于描述根据第一实施方式的信息处理设备的视图;
图2示出了根据第二实施方式的数据处理设备的硬件的示例;
图3示出了加速器卡的硬件的示例;
图4示出了计算设备的功能的示例;
图5示出了耦合系数矩阵的示例;
图6示出了读取耦合系数的示例;
图7是示出计算设备的处理的示例的流程图;
图8示出了并行试验执行单元的示例;
图9示出了执行部分邻域搜索(PNS)无拒绝(RF)方法的选择单元的示例;
图10示出了根据第三实施方式的读取耦合系数的示例;
图11示出了搜索单元的示例;
图12示出了局部变量与全局变量之间的关系的示例;
图13示出了计算设备的功能的示例;
图14示出了生成系数数据流的示例;
图15示出了系数数据流的第一示例;
图16示出了系数数据流的第二示例;
图17示出了计算能量的示例;
图18示出了局部变量更新的第一示例;
图19示出了局部变量更新的第二示例;
图20示出了局部变量更新的第三示例;
图21是示出更新多个行的示例的流程图;
图22示出了时序图的示例;以及
图23示出了计算设备的修改示例。
具体实施方式
在下文中,将参照附图描述实施方式。
(第一实施方式)
将描述第一实施方式。
图1是用于描述根据第一实施方式的信息处理设备的视图。
信息处理设备10使用马尔可夫链蒙特卡洛(MCMC)方法找到组合优化问题的解并输出找到的解。例如,信息处理设备10使用基于MCMC方法的模拟退火(SA)或副本交换来找到解。信息处理设备10包括存储单元11和处理单元12。
存储单元11例如是静态随机存取存储器(SRAM)。处理单元12可以是电子电路,例如中央处理单元(CPU)、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或图形处理单元(GPU)。处理单元12可以是执行程序的处理器。“处理器”可以包括一组多个处理器(多处理器)。
信息处理设备10连接至存储设备20。存储设备20具有比存储单元11大的存储器容量。例如,存储设备20是动态随机存取存储器(DRAM)。处理单元12能够比访问存储设备20更快地访问存储单元11。就此而言,存储单元11可以设置在处理单元12中。另外,存储设备20可以设置在信息处理设备10中。
在此,组合优化问题使用伊辛型能量函数来公式化,并且例如可转化为使能量函数的值最小化的问题。能量函数可以被称为目标函数或评估函数。能量函数包括多个状态变量。状态变量是二进制变量,每个变量的值为0或1。状态变量可以称为位。多个状态变量的值表示伊辛模型的状态。组合优化问题的解由多个状态变量的值表示。使能量函数最小化的解表示伊辛模型的基态,并且对应于组合优化问题的最优解。能量函数的值称为能量。
伊辛型能量函数由式(1)定义。
状态向量x表示具有多个状态变量作为元素的伊辛模型的状态。式(1)是以二次无约束二元优化(QUBO)形式公式化的能量函数。就此而言,为了解决使能量最大化的问题,可以改变能量函数的符号;加号变为减号或者减号变为加号。
式(1)右侧的第一项是两个状态变量的值与在没有遗漏或重复的情况下可从所有状态变量中选择的所有可能的状态变量对上的耦合系数的乘积之和。下标i和j为状态变量的索引。在此,xi表示第i个状态变量,xj表示第j个状态变量。另外,Wij表示第i个状态变量和第j个状态变量之间的权重,或者表示指示耦合强度的强度的耦合系数。注意Wij=Wji且Wii=0。
式(1)右侧的第二项是所有状态变量中的每一个状态变量的偏差和值的乘积之和。在此,bi表示第i个状态变量的偏差。在式(1)中,当状态变量xi的值变为1-xi时,xi的增加由Δxi=(1-xi)-xi=1-2xi给出。由于xi的变化引起的能量的变化(在下文中,称为“能量变化”)ΔEi由式(2)给出。
在此,hi称为局部场,并且由式(3)给出。
由于状态变量xj的变化引起的局部场hi的变化Δhi (j)由式(4)给出。
就此而言,通过将基于xj值的变化的变化Δhi (j)加到hi,获得对应于状态变量xj的值的变化之后的状态变量xi的hi。多个状态变量的值和对应于多个状态变量的多个局部场被保存在信息处理设备10中设置的变量存储单元中。变量存储单元未在图1中示出。变量存储单元可以是处理单元12中设置的寄存器。
在搜索基态时,Metropolis算法和Gibbs算法用于确定是否接受引起能量变化ΔEi的状态转变,即是否接受状态变量xi的值的变化。更具体地,在邻域搜索从某一状态至具有较低能量的另一状态的转变中,不仅使能量降低的转变,而且使能量增加的转变都被随机地接受。例如,接受引起能量变化ΔEi的状态变量的值的变化的概率Ai由式(5)给出。
在式(5)中,β是温度值T(T>0)的倒数(β=1/T),并且称为逆温度。min运算符取参数中的最小值。式(5)右侧处的上部对应于Metropolis算法,而式(5)右侧处的下部对应于Gibbs算法。处理单元12将均匀随机数u(0<u<1)与Ai进行比较,并且如果u<Ai,则接受状态变量xi的值的变化,并且改变状态变量xi的值。如果没有获得u<Ai,则处理单元12不接受状态变量xi的值的变化或者不改变状态变量xi的值。式(5)指示Ai随着ΔEi的增加而减小。另外,随着β减小,即随着T增大,引起高ΔEi的状态转变更有可能被接受。处理单元12以这种方式基于式(5)重复关于是否改变任何状态变量的值的试验,从而进行伊辛模型的状态转变并找到解。
例如,处理单元12可以通过以下来搜索解:按顺序或随机地逐一将状态变量选择为值变化的候选;基于式(5)进行确定;以及当确定接受被选择为候选的状态变量的值的变化时,更新状态变量的值。替选地,处理单元12可以通过跨多个状态变量并行地基于式(5)进行确定并且基于并行确定的结果更新任何状态变量的值来搜索解。
在此,能量函数中包括的所有耦合系数,即,对应于多个状态变量的所有对的多个耦合系数,被存储在存储设备20中。存储单元11具有相对小的容量,因此不能够存储所有的耦合系数。因此,处理单元12从存储设备20读取耦合系数中的一些耦合系数,并且将读取的耦合系数存储在存储单元11中,以用于解决由能量函数表示的问题。
更具体地,处理单元12从存储设备20读取与多个状态变量中的属于试验目标集的第一状态变量的多个第一对对应的多个第一耦合系数,并且将它们存储在存储单元11中。在此,试验目标集中包括的第一状态变量是针对值更新试验的目标。使用存储在存储单元11中的多个第一耦合系数,处理单元12多次进行关于是否更新属于试验目标集的任何第一状态变量的值的试验。在此,以下处理被视为单个处理单位:从存储设备20读取用于试验目标集的多个第一耦合系数,将它们存储在存储单元11中,并且多次进行关于是否使用第一耦合系数更新属于试验目标集的任何状态变量的值的试验。处理单元12在改变试验目标集的同时重复该处理,以便在试验中以所有多个状态变量为目标。
例如,存储在存储设备20中的所有耦合系数由耦合系数矩阵21共同表示。作为示例,属于试验目标集的状态变量的数目被取为m,它是2或更大的整数。状态变量的总数目为N,它是大于m的整数。状态变量的索引在1至N的范围内。在这种情况下,耦合系数矩阵21为N乘N矩阵。
例如,现在假设在某个时间点处的试验目标集是一组状态变量xk至xk+m-1。在这种情况下,要存储在存储单元11中的多个第一耦合系数对应于耦合系数矩阵21的块21a。属于块21a的第一耦合系数的行索引和列索引都在k至k+m-1的范围内。处理单元12多次进行关于是否使用属于块21a的多个第一耦合系数更新状态变量xk至xk+m-1中的任一个的值的试验。
之后,处理单元12改变试验目标集。作为示例,处理单元12将试验目标集改变为一组状态变量xk+1至xk+m。在该改变之后,要存储在存储单元11中的多个第一耦合系数对应于耦合系数矩阵21的块21b。属于块21b的第一耦合系数的行索引和列索引都在k+1至k+m的范围内。此时,在块21b的耦合系数中,处理单元12不需要从存储设备20读取已经存储在存储单元11中的块21a中包括的耦合系数。另外,如前所述,满足Wij=Wji。因此,处理单元12通过从存储设备20读取行索引k+m和列索引k+1至k+m中的耦合系数来获得属于块21b的多个第一耦合系数。然后,处理单元12多次进行关于是否使用属于块21b的多个第一耦合系数更新状态变量xk+1至xk+m中的任一个的值的试验。
就此而言,尽管在上面的示例中假设试验目标集中的状态变量的索引是连续的,但是索引可以是不连续的。另外,尽管上面的示例描述了在试验目标集的单次改变中向试验目标集添加一个状态变量,但是可以向试验目标集添加多个状态变量。
顺便提及,如上面所描述的,状态变量的值的更新包括更新对应于其他状态变量的局部场。处理单元12可以采用下面的第一方法或第二方法来更新状态变量的值和对应于其他状态变量的局部场。
(第一方法)
利用第一方法,处理单元12从存储设备20读取对应于多个对的多个第二耦合系数以及多个第一耦合系数,每个对包括属于试验目标集的多个第一状态变量之一和不属于试验目标集的多个第二状态变量之一。处理单元12将多个第一耦合系数和多个第二耦合系数存储在存储单元11中。例如,在试验目标集包括状态变量xk+1至xk+m的情况下,多个第二耦合系数对应于耦合系数矩阵21的块21c和21d。属于块21c的第二耦合系数的行索引在k+1至k+m的范围内,并且其列索引在1至k的范围内。属于块21d的第二耦合系数的行索引在k+1至k+m的范围内,并且其列索引在k+m+1至N的范围内。在该示例中,属于试验目标集的状态变量的索引与耦合系数矩阵21的行索引相关联,但是可以与耦合系数矩阵21的列索引相关联。
然后,处理单元12以下面的方式进行关于是否更新属于试验目标集的任何状态变量的值的试验。更具体地,处理单元12基于对应于第一状态变量的局部场来计算由于属于试验目标集的第一状态变量的变化而引起的能量变化,并且根据计算出的变化基于式(5)来更新第一状态变量的值。在更新第一状态变量的值之后,处理单元12基于与更新后的第一状态变量相关联的第一耦合系数,更新分别对应于属于试验目标集的多个第一状态变量的局部场。另外,处理单元12基于与更新后的第一状态变量相关联的第二耦合系数,更新分别对应于不属于试验目标集的多个第二状态变量的局部场。
例如,处理单元12更新状态变量xk+1至xk+m中具有索引j的第一状态变量xj的值。然后,处理单元12基于包括在块21b的具有行索引j的行中的第一耦合系数,更新分别对应于状态变量xk+1至xk+m的局部场。另外,处理单元12基于包括在块21c和21d的具有行索引j的行中的第二耦合系数,更新分别对应于状态变量x1至xk和xk+m+1至xN的局部场。
如上面所描述的,例如,处理单元12可以被设计成从存储设备20读取耦合系数矩阵21的块21c和21d以及块21b,并且将它们存储在存储单元11中,并且当更新属于试验目标集的状态变量的值时,相应地更新对应于其他状态变量的局部场。就此而言,存储单元11可以被称为第一存储单元。另外,在第一方法中,存储多个状态变量的值和对应于多个状态变量的多个局部场的变量存储单元可以被称为第二存储单元。第一方法的描述现在已经完成。
(第二方法)
利用第二方法,信息处理设备10包括局部变量存储单元和全局变量存储单元作为上面所描述的变量存储单元。局部变量存储单元存储多个状态变量x1至xN中属于试验目标集的多个第一状态变量的值和对应于多个第一状态变量的多个第一局部场。全局变量存储单元存储多个状态变量x1至xN的值和对应于多个状态变量的多个第二局部场。
处理单元12以下面的方式将试验目标集从先前的一个试验目标集改变为当前的一个试验目标集。处理单元12从存储设备20读取对应于多个对的多个第三耦合系数、以及多个第一耦合系数,并且将它们存储在存储单元11中,每个对包括包含在先前试验目标集中但不包含在当前试验目标集中的第一不同状态变量和其他状态变量之一。例如,现在假设先前试验目标集包括状态变量xk至xk+m-1并且当前试验目标集包括xk+1至xk+m。在这种情况下,状态变量xk是第一不同状态变量。在该示例中,处理单元12从存储设备20读取的多个第三耦合系数对应于耦合系数矩阵21的块21e和21f。属于块21e的第三耦合系数的行索引是k,并且其列索引在1至k-1的范围内。属于块21f的第三耦合系数的行索引是k,并且其列索引在k+m至N的范围内。注意,处理单元12能够再次使用针对存储单元11中的先前试验目标集保存的块21a中的行索引k和列索引k至k+m-1中的耦合系数作为第三耦合系数。
处理单元12用存储在局部变量存储单元中的第一不同状态变量的第一值来更新存储在全局变量存储单元中的第一不同状态变量的第二值。然后,处理单元12基于更新前后的第二值之差和多个第三耦合系数,更新存储在全局变量存储单元中的多个第二局部场。
例如,在第一不同状态变量是xk的情况下,处理单元12用存储在局部变量存储单元中的状态变量xk的第一值来更新存储在全局变量存储单元中的状态变量xk的第二值。然后,处理单元12基于全局变量存储单元中的更新前后的状态变量xk的值之间的差以及具有行索引k的行中的第三耦合系数,更新存储在全局变量存储单元中的所有状态变量的第二局部场。通过这样做,对保存在局部变量存储单元中的状态变量xk的值做出的改变反映在存储在全局变量存储单元中的所有第二局部场上。
此后,处理单元12从全局变量存储单元获得多个状态变量中的不包括在先前试验目标集中但包括在当前试验目标集中的第二不同状态变量的第三值,并且将其存储在局部变量存储单元中。例如,在先前试验目标集包括状态变量xk至xk+m-1并且当前试验目标集包括状态变量xk+1至xk+m的情况下,状态变量xk+m是第二不同状态变量。
然后,处理单元12计算对应于新添加至局部变量存储单元的第二不同状态变量的第一局部场,并且将该第一局部场存储在局部变量存储单元中。更具体地,处理单元12获得分别存储在局部变量存储单元和全局变量存储单元中的多个第一状态变量中的每一个的第四值与第五值之间的差。处理单元12基于所获得的每个第一状态变量的值的差、存储在全局变量存储单元中的第二不同状态变量的第二局部场以及存储在存储单元11中的多个第一耦合系数来计算对应于第二不同状态变量的第一局部场。由此,处理单元12能够将新添加至局部变量存储单元的第二不同状态变量的局部场与保存在局部变量存储单元中的状态变量的值匹配。
在处理单元12以上面所描述的方式在多个状态变量中改变试验目标集之后,处理单元12以下面的方式进行关于是否更新属于改变后的试验目标集的任何第一状态变量的值的试验。更具体地,处理单元12基于对应于第一状态变量的第一局部场,计算由于属于试验目标集的第一状态变量的变化而引起的能量变化,并且根据计算出的变化,基于式(5)更新第一状态变量的值。当更新第一状态变量的值时,处理单元12基于存储在存储单元11中的与更新后的第一状态变量相关联的第一耦合系数,更新存储在局部变量存储单元中的对应于多个第一状态变量的多个第一局部场。
如上面所描述的,处理单元12可以从存储设备20读取耦合系数矩阵21的块21e和21f、以及块21b,并且将它们存储在存储单元11中。然后,基于块21e和21f,处理单元12可以更新对应于全局变量存储单元中不属于当前试验目标集的状态变量的第二局部场。处理单元12可以并行地执行全局变量存储单元中的第二局部场的更新和基于存储在局部变量存储单元中的信息的试验。
就此而言,如上面所描述的,当从存储设备20读取第三耦合系数时,处理单元12可以省略读取对应于状态变量对的耦合系数,每个状态变量对包括属于先前试验目标集的第一不同状态变量和其他状态变量之一。例如,与从存储设备20读取具有与第一不同状态变量相关联的行索引k的整行的情况相比,这引起用于从存储设备20读取的存储器带宽的减少。替选地,处理单元12可以从存储设备20读取具有行索引k的整行作为第三耦合系数。在这种情况下,处理单元12可以简单地读取耦合系数矩阵21的具有行索引k的行,并且将该行存储在存储单元11中。尽管这增加了用于从存储设备20读取的存储器带宽,但是当读取数据时,处理单元12不需要处理该行的数据,这因此加速了读取第三耦合系数。
另外,全局变量存储单元可以设置在信息处理设备10的外部。例如,全局变量存储单元可以设置在存储设备20中。在这种情况下,信息处理设备10不需要具有用作全局变量存储单元的存储空间。
另外,第二方法中的术语“第三耦合系数”仅用于方便与第一方法的第二耦合系数相区分。如果不需要这样的区分,第二方法中的第三耦合系数可以由“第二耦合系数”来表示。存储单元11可以被称为第一存储单元。另外,局部变量存储单元可以被称为第三存储单元。全局变量存储单元可以被称为第四存储单元。第二方法的描述现在已经完成。
如上面所描述的,信息处理设备10执行以下处理:从存储所有耦合系数的存储设备20读取与多个状态变量中的属于试验目标集的第一状态变量的多个对对应的多个第一耦合系数;将多个第一耦合系数存储在存储单元11中;以及多次进行关于是否使用存储在存储单元11中的多个第一耦合系数来更新属于试验目标集的任何第一状态变量的值的试验。通过重复试验目标集的改变和该处理,所有多个状态变量在试验中成为目标。
信息处理设备10在如上面所描述的多个试验中使用存储在存储单元11中的第一耦合系数,这降低了对存储设备20的访问频率,并且因此防止由于对存储设备20的访问而引起的处理速度的降低。因此,实现了加速解决耦合系数的总大小相对大的大规模问题。
另外,如在第一方法中所例示的,信息处理设备10可以从存储设备20读取对应于状态变量对的第二耦合系数、以及第一耦合系数,并且将它们存储在存储单元11中,每个状态变量对包括属于试验目标集的状态变量之一和不属于试验目标集的其他状态变量之一。在这种情况下,信息处理设备10能够基于第二耦合系数适当地更新不属于试验目标集的其他状态变量的局部场。
另外,如在第二方法中所例示的,信息处理设备10可以使用局部变量存储单元和全局变量存储单元来保存状态变量和局部场。信息处理设备10可以从存储设备20读取对应于状态变量对的第三耦合系数、以及第一耦合系数,并且将它们存储在存储单元11中,每个状态变量对包括第一不同状态变量和其他状态变量之一。在这种情况下,信息处理设备10能够基于第三耦合系数,在存储在全局变量存储单元中的局部场上正确地反映保存在局部变量存储单元中的第一不同状态变量的值的变化。因此,当存储在全局变量存储单元中的状态变量此后被添加至局部变量存储单元作为试验目标时,信息处理设备10能够基于保存在全局变量存储单元中的信息和保存在局部变量存储单元中的信息正确地计算状态变量的局部场。也就是说,信息处理设备10能够将新添加至局部变量存储单元的状态变量的局部场与保存在局部变量存储单元中的其他状态变量的值正确地匹配。
另外,与第一方法相比,第二方法能够减少用于不属于试验目标集的状态变量的局部场的更新的次数,并且因此减少用于更新的开销。另外,与第一方法相比,第二方法能够减小要在存储单元11读取的耦合系数的大小。
处理单元12重复上面的处理,同时改变多个状态变量中的试验目标集,以便在试验中以所有多个状态变量为目标。例如,在使用SA方法的情况下,在处理单元12多次重复在试验中以所有多个状态变量为目标的一轮搜索之后,处理单元12用式(5)中使用的增加的逆温度β,即降低的温度值T,继续搜索。然后,当逆温度β或温度值T已经达到最终值时,处理单元12输出对应于迄今获得的最小能量的状态作为解。
在使用副本交换方法的情况下,例如,在信息处理设备10中设置了以与由处理单元12进行的方式相同的方式用不同的温度值进行搜索的多个处理单元。在这种情况下,在处理单元12多次重复在试验中以所有多个状态变量为目标的一轮搜索之后,该处理单元12以预定的交换概率与另一处理单元交换温度值或多个状态变量的值,然后继续搜索。然后,在预定时间过去之后,信息处理设备10输出由多个处理单元获得的状态中的提供最小能量的状态作为解。
(第二实施方式)
现在将描述第二实施方式。
图2示出了根据第二实施方式的数据处理设备的硬件的示例。
数据处理设备100用MCMC方法找到组合优化问题的解,并且输出找到的解。组合优化问题由式(1)的伊辛型能量函数表示。数据处理设备100包括CPU 101、RAM 102、HDD 103、图形处理单元(GPU)104、输入接口105、介质读取器106、网络接口卡(NIC)107和加速器卡200。
CPU 101是执行程序指令的处理器。CPU 101将程序和数据的至少一部分从HDD103加载到RAM 102中,并且执行该程序。就此而言,CPU 101可以包括多个处理器核。另外,数据处理设备100可以包括多个处理器。另外,一组多个处理器可以称为“多处理器”或简单地称为“处理器”。
RAM 102是临时存储要由CPU 101执行的程序以及要由CPU 101在处理中使用的数据的易失性半导体存储器。数据处理设备100可以包括除了RAM以外的另一类型的存储器,或者可以包括多个存储器。
HDD 103是存储诸如操作系统(OS)、中间件和应用软件的软件程序以及数据的非易失性存储设备。就此而言,数据处理设备100可以包括诸如闪速存储器或固态驱动器(SSD)的另一类型的存储设备,或者可以包括多个非易失性存储设备。
GPU 104根据来自CPU 101的命令向连接至数据处理设备100的显示器111输出图像。阴极射线管(CRT)显示器、液晶显示器(LCD)、等离子体显示面板、有机电致发光(OEL)显示器或其他期望的显示器可以用作显示器111。
输入接口105从连接至数据处理设备100的输入设备112接收输入信号,并且将接收到的输入信号输出至CPU 101。定点设备例如鼠标、触摸面板、触摸板或轨迹球、键盘、遥控器、按钮开关等可以用作输入设备112。另外,多种类型的输入设备可以连接至数据处理设备100。
介质读取器106是从存储介质113读取程序和数据的读取设备。磁盘、光盘、磁光(MO)盘、半导体存储器等可以用作存储介质113。磁盘包括软盘(FD)和硬盘(HDD)。光盘包括压缩光盘(CD)和数字多功能光盘(DVD)。
例如,介质读取器106将从存储介质113读取的程序和数据拷贝至诸如RAM 102或HDD 103的另一存储介质。例如,由CPU 101执行所读取的程序。存储介质113可以是便携式存储介质,并且用于分发程序和数据。存储介质113和HDD 103可以被称为计算机可读存储介质。
NIC 107是连接至网络114并通过网络114与其他计算机通信的接口。例如,NIC107通过线缆连接至诸如交换机或路由器的通信设备。NIC 107可以是无线通信接口。
加速器卡200是搜索由式(1)的伊辛型能量函数表示的问题(即,利用MCMC方法的伊辛问题)的解的硬件加速器。加速器卡200执行具有固定温度的MCMC方法或者在多个温度之间交换伊辛模型的状态的副本交换方法。通过这样做,加速器卡200可以用作用温度对遵循波尔兹曼分布的状态进行采样的采样器。为了解决伊辛问题,加速器卡200执行副本交换方法或诸如逐渐降低温度值的SA方法的退火处理。例如,加速器卡200根据来自CPU 101的命令搜索解,并且输出找到的解。
SA方法是这样的一种技术:用温度值对遵循玻尔兹曼分布的状态进行采样并且将用于采样的温度值从最高温度值逐渐降低至最低温度值,以便有效地找到最优解。例如,利用SA方法,加速器卡200重复以下操作:用固定的温度值重复状态转变的试验达固定次数并然后降低温度值。对于状态转变的试验,例如可以使用串行选择MCMC方法,该串行选择MCMC方法按预定顺序例如按索引顺序逐一选择包括在能量函数中的多个状态变量并且进行关于是否改变所选状态变量的值的试验。替选地,对于状态转变的试验,可以进行并行试验,该并行试验跨多个状态变量并行地进行试验。
例如,在并行试验中,跨多个状态变量并行地执行基于式(5)的确定,并且基于并行确定的结果来更新任何状态变量的值,从而找到解。在这种情况下,加速器卡200可以使用无拒绝MCMC方法,该无拒绝MCMC方法以由式(6)给出的概率排他地且总是选择与某个状态的汉明距离为1的所有邻近状态之一并且进行转变。
用由式(6)给出的概率进行的选择等同于生成[0,1]的均匀随机数ri并得到基于ri生成的随机数key的最小值:max(0,ΔEi)+Tlog(-log(ri))。在此,对数的底是欧拉数。也就是说,在无拒绝MCMC方法中,由式(7)中的k指定的索引可以被选择为转变目标。
k=argmin[max(0,ΔEi)+T log(-log(ri))] (7)
另外,为了防止在并行试验中找到解的效率降低,可以使用部分邻域搜索(PNS)方法,该PNS方法将在一行中试验相同状态变量的概率调整为预定值。
副本交换方法是这样的一种技术:利用多个温度值独立地执行MCMC方法,并且在适当时在利用温度值获得的状态之间交换温度值。利用低温度的MCMC方法搜索窄的状态空间,而利用高温度的MCMC方法搜索宽的状态空间,这使得能够有效地找到好的解。例如,利用副本交换方法,加速器卡200重复以下操作:并行地单独进行利用多个温度值的状态转变试验,并且每当进行每个试验达固定次数,以预定的交换概率在各个温度值处获得的状态之间交换温度值。
更具体地,具有逆温度βk和βk+1的副本被取为xk和xk+1,并且在副本执行MCMC更新操作达预定次数之后的能量H被取为Hk和Hk+1。在这种情况下,接受副本xk与xk+1之间的温度交换的概率,即交换概率A由式(8)给出。
/>
加速器卡200包括DRAM 210和计算设备220。DRAM 210保存包括由计算设备220用于搜索的问题信息的数据。DRAM 210还保存能量函数中包括的多个状态变量的所有对的耦合系数(即所有耦合系数)。状态变量的数目取为N。所有的耦合系数都由N乘N矩阵(即耦合系数矩阵)共同表示。计算设备220是在加速器卡200中利用MCMC方法执行解搜索功能的计算单元。例如,计算设备220由FPGA、GPU、ASIC等实现。
搜索伊辛问题的解的硬件设备例如加速器卡200和计算设备220可以被称为伊辛机器或玻尔兹曼机器。
图3示出了加速器卡的硬件的示例。
除了上面所描述的DRAM 210和计算设备220以外,加速器卡200包括高带宽存储器(HBM2)接口(IF)210a。HBM2 IF 210a是将DRAM 210与计算设备220连接的接口。
计算设备220包括本地存储单元221、搜索单元222和控制单元223。本地存储单元221是片上存储空间,该片上存储空间用于存储从DRAM 210读取的一些耦合系数。本地存储单元221用作高速缓存,该高速缓存用于存储由搜索单元222在处理中使用的数据。例如,使用计算设备220中设置的SRAM的存储空间作为本地存储单元221。本地存储单元221具有比DRAM 210小的存储器容量。计算设备220能够比访问DRAM 210中保存的数据更快地访问本地存储单元221中保存的数据。例如,从计算设备220到DRAM 210的访问时间比到作为片上RAM的本地存储单元221的访问时间约长两个数量级。另外,本地存储单元221限制问题的规模,以便存储该问题的所有耦合系数。因此,针对具有相对大数目的状态变量(即,位)的问题规模,本地存储单元221将不能够将其耦合系数全部存储在一起。
搜索单元222是基于MCMC方法进行解搜索的执行引擎。搜索单元222使用存储在本地存储单元221中的耦合系数找到解。
控制单元223在多个状态变量中确定由搜索单元222用作试验目标的两个或更多个状态变量的集合,即试验目标集的状态变量的索引,并且将索引通知给搜索单元222。属于试验目标集的状态变量的数目为m。在此,m为等于或大于2且小于n的整数。然后,控制单元223基于状态变量的索引来确定要在本地存储单元221读取的耦合系数的行索引和列索引,并且控制耦合系数从DRAM 210至本地存储单元221中的读取。
就此而言,与本地存储单元221相比,DRAM 210可以被称为外部存储器或外部存储设备。
在此,DRAM 210是第一实施方式的存储设备20的示例。计算设备220是第一实施方式的处理单元12的示例。本地存储单元221是第一实施方式的存储单元11的示例。加速器卡200是第一实施方式的信息处理设备10的示例。
就此而言,包括计算设备220中的搜索单元222和控制单元223的电子电路例如FPGA或GPU可以是第一实施方式的处理单元12的示例。另外,计算设备220可以是第一实施方式的信息处理设备10的示例。此外,数据处理设备100可以是第一实施方式的信息处理设备10的示例。
图4示出了计算设备的功能的示例。
DRAM 210存储被布置成N行和N列的所有耦合系数W={Wij}。注意,Wij=Wji,并且Wii=0。
本地存储单元221存储所有耦合系数W中与当前试验目标集的状态变量的索引相关联的一些耦合系数。例如,假设当前试验目标集的状态变量的索引在k+1至k+m的范围内,本地存储单元221存储所有耦合系数w中具有行索引k+1至k+m和列索引1至N的系数行。系数行指示具有包括在耦合系数矩阵中的行索引的行。
搜索单元222存储N个状态变量x1至xN的值以及状态变量x1至xN的局部场h1至hN的值。例如,指示状态变量x1至xN和局部场h1至hN的值的信息被保存在搜索单元222的变量存储单元222r中。例如,变量存储单元222r是寄存器。作为示例,对应于一对状态变量xi和xj的耦合系数Wij可以被设置为16位。例如,式(1)中的偏置bi可以被设置为28位。例如,局部场hi可以被设置为29位。
搜索单元222使用存储在本地存储单元221中的耦合系数,进行关于是否更新属于当前试验目标集的任何状态变量的值的试验。更具体地,搜索单元222根据式(2)计算由于状态变量的值的更新而引起的能量变化。搜索单元222然后基于式(5)确定是否接受状态变量的值的变化,并且当确定接受该变化时,更新状态变量的值。当更新状态变量的值时,搜索单元222使用存储在本地存储单元221中的与状态变量相关联的耦合系数,根据式(4)更新其他状态变量的局部场。
对于关于是否更新任何状态变量的值的试验,搜索单元222可以使用上面所描述的串行选择MCMC方法或对属于试验目标集的m个状态变量进行的并行试验。
在搜索单元222通过重复使用存储在本地存储单元221中的耦合系数进行试验达r次之后,控制单元223改变试验目标集。在此,r为2或更大的整数。例如,在串行选择MCMC方法的情况下,r可以被设置为m或更大。为了改变试验目标集,控制单元223改变试验目标集中包括的状态变量的索引。
另外,计算设备220还包括能量计算单元224。能量计算单元224通过以累加的方式将针对其值已经被更新的状态变量计算出的能量变化添加至初始状态的能量,来计算与N个状态变量的当前值对应的能量。
用于试验目标集的一组索引可以被称为窗口。属于该窗口的索引可以是连续的或不连续的。
图5示出了耦合系数矩阵的示例。
耦合系数矩阵30表示所有耦合系数W。在该示例中,本地存储单元221存储具有与属于窗口的索引对应的行索引的系数行。例如,在属于窗口的索引在k至k+m-1的范围内的情况下,本地存储单元221存储具有行索引k至k+m-1的m行,即耦合系数矩阵30中的m个系数行。搜索单元222使用在m行中具有行索引k至k+m-1和列索引k至k+m-1的块31来更新属于试验目标集的状态变量的局部场。搜索单元222使用除了块31以外的其余m行来更新不属于试验目标集的状态变量的局部场。
图6示出了读取耦合系数的示例。
控制单元223使搜索单元222重复搜索,同时改变属于试验目标集的状态变量的索引,使得搜索单元222在试验中以所有N个状态变量为目标。例如,利用索引1至m作为属于试验目标集的状态变量的初始值,控制单元223通过将每个索引增加1来更新索引。在这种情况下,控制单元223从本地存储单元221移除具有最小行索引的系数行,并且将从DRAM 210读取的具有新行索引的系数行存储在本地存储单元221中。
根据属于试验目标集的状态变量的索引的更新,耦合系数矩阵30中要用于更新属于试验目标集的状态变量的局部场的块按块32、33、34、……、35的顺序改变。在完成改变块的同时在试验中以所有状态变量为目标的一轮搜索之后,控制单元223从开始再次执行一轮搜索。
就此而言,在上面的示例中,从DRAM 210新读取的系数行被逐行地选择,使得行索引是连续的。替选地,控制单元223可以一次新读取两个或更多个系数行或者可以选择系数行,使得行索引是不连续的。
例如,在执行SA方法的情况下,在控制单元223利用温度值多次进行一轮搜索之后,控制单元223更新温度值并利用下一温度值进行搜索。下面描述执行SA方法的计算设备220的处理的示例。
图7是示出计算设备的处理的示例的流程图。
(S10)控制单元223对本地存储单元221和搜索单元222进行初始化。例如,控制单元223设置初始逆温度β开始、最终逆温度β停止、温度系数s、试验目标集中的状态变量的数目m、迭代次数r、初始状态、初始状态的能量E和温度变化间隔k。温度系数s大于1。另外,控制单元223从DRAM 210读取具有前m行的系数行,并且将读取的系数行存储在本地存储单元221中。
(S11)搜索单元222基于存储在本地存储单元221中的耦合系数进行r次(即多次)更新局部变量的试验。在此,局部变量是试验目标集中的状态变量和对应于状态变量的局部场。
(S12)在执行步骤S11期间,控制单元223从DRAM 210预读取与下一试验目标集的状态变量相关联的耦合系数的系数行。
在步骤S11和S12两者都完成之后,处理进行至步骤S13。例如,如果首先完成步骤S11和S12中的一个,则在另一步骤完成之后,处理进行至步骤S13。
(S13)控制单元223使用在步骤S12处预读取的系数行更新本地存储单元221中保存的系数行。另外,控制单元223更新搜索单元222中的试验目标集的索引,即局部变量的索引。
(S14)控制单元223确定每个都以局部变量的所有索引为目标的轮数是否大于或等于k。如果每个都以局部变量的索引为目标的轮数大于或等于k,则处理进行至步骤S15。如果每个都以局部变量的索引为目标的轮数小于k,则处理进行至步骤S11和S12。
(S15)控制单元223将由搜索单元222使用的逆温度β更新为sβ。
(S16)控制单元223确定是否β>β停止。如果β>β停止,则处理进行至步骤S17。如果β≤β停止,则处理进行至步骤S11和S12。
(S17)控制单元223输出提供在由搜索单元222进行的搜索中获得的最小能量的状态。
就此而言,计算设备220可以被设置有包括搜索单元222的多个搜索单元,并且可以与多个搜索单元执行副本交换方法。在这种情况下,在步骤S15的温度更新中,搜索单元222可以以预定的交换概率与另一搜索单元交换逆温度。另外,在副本交换方法的情况下,例如,可以基于从步骤S10的初始化起是否过去了预定时间来执行步骤S16的确定。
另外,在步骤S11处,搜索单元222可以利用随机地或按索引顺序选择试验目标集中的状态变量的串行选择MCMC方法进行试验。替选地,搜索单元222可以利用无拒绝MCMC方法进行以试验目标集中的m个状态变量为目标的并行试验。在无拒绝MCMC方法中,m个状态变量中的任一个的值在并行试验的一次执行中被更新。另外,搜索单元222可以在并行试验中使用PNS方法。在并行试验的情况下,控制单元223基于对m个状态变量的并行试验是否已经进行了k次来执行步骤S14的确定。下面描述用于并行试验的搜索单元222的功能的示例。
图8示出了并行试验执行单元的示例。
搜索单元222可以包括并行试验执行单元300。并行试验执行单元300对试验目标集的m个状态变量进行并行试验。并行试验执行单元300包括局部场保存单元310、ΔE计算单元320、选择单元330和状态变量保存单元340。局部场保存单元310保存对应于m个状态变量的m个局部场。就此而言,局部场保存单元310可以保存对应于N个状态变量的N个局部场。ΔE计算单元320使用保存在局部场保存单元310中的m个局部场,并行地计算分别由于当前状态中m个状态变量的值的变化而引起的能量变化。ΔE计算单元320将分别针对m个状态变量计算出的m个能量变化输出至选择单元330。选择单元330在m个状态变量的索引中选择其值将被更新的索引,并且将所选索引通知给状态变量保存单元340和本地存储单元221。
状态变量保存单元340保存对应于所有索引的状态变量。状态变量保存单元340更新与从选择单元330接收到的索引对应的状态变量的值。
另外,本地存储单元221向局部场保存单元310输出对应于以下索引对的耦合系数,每个索引对包括从选择单元330接收到的索引和试验目标集中的其他索引中的一个索引。例如,基于索引将耦合系数从本地存储单元221读入局部场保存单元310中可以由地址解码器来执行。局部场保存单元310使用耦合系数根据式(4)更新对应于试验目标集的其他状态变量的局部场。
就此而言,在局部场保存单元310保存对应于N个状态变量的N个局部场的情况下,本地存储单元221可以向局部场保存单元310输出对应于以下索引对的耦合系数,每个索引对包括从选择单元330接收到的索引和所有其他索引之一。在这种情况下,局部场保存单元310可以使用耦合系数根据式(4)更新所有其他状态变量的局部场。在局部场保存单元310仅更新属于试验目标集的状态变量的局部场的情况下,其他状态变量的局部场的更新由搜索单元222中设置的预定计算单元来执行。
另外,搜索单元222可以基于式(7)在无拒绝MCMC方法中使用PNS方法。PNS方法与无拒绝MCMC方法结合的技术被称为PNS无拒绝(RF)方法。
图9示出了执行PNS RF方法的选择单元的示例。
在此,假设m个能量变化ΔE1至ΔEm被输入至选择单元330作为示例。选择单元330包括索引生成单元331、m-p选择器332和缩减树333。索引生成单元331生成p个索引i1、i2、……、ip,并且将它们输出至m-p选择器332。在此,p是满足2≤p<m的整数。例如,索引生成单元331可以针对m个索引中的每一个生成均匀随机数[0,1],并且通过从m个随机数中按降序选择p个随机数来生成p个索引。
m-p选择器332从接收到的m个能量变化ΔE1至ΔEm中选择对应于从索引生成单元331接收到的p个索引的能量变化,并且将所选能量变化输出至缩减树333。
缩减树333将从m-p选择器332接收到的p个能量变化应用于式(7)并输出索引k。例如,缩减树333由选择器树实现,该选择器树由具有以树的形式在多个阶段处组合的两个输入端和一个输出端的选择器形成。
如上面所描述的,在每个试验中,搜索单元222可以从与当前状态的汉明距离为1的所有邻域中选择比率为q=p/m的转变目的地,并且利用无拒绝方法从所选择的那些转变目的地中选择转变目的地。比率q预设在搜索单元222中。例如,q被设置为0.5。就此而言,搜索单元222可以使用选择固定数目的转变目的地而不重复的方法或者可以使用允许重复的选择方法作为利用PNS方法选择转变目的地的方法。搜索单元222以这种方式执行PNS RF方法,以控制在一行中试验相同状态变量的概率,并且因此提高找到解的效率。
如上面所描述的,计算设备220在多个试验中使用从DRAM 210读取并存储在本地存储单元221中的耦合系数。这使得计算设备220能够减少对DRAM 210的访问频率。因此,防止了由于对DRAM 210的访问而引起的处理速度的降低。因此,实现了加速解决耦合系数的总大小相对大的大规模问题。另外,在第二实施方式的示例中,与耦合系数的总大小为N2相比,可以将本地存储单元221所需的存储器容量减少至N*m。存储器容量的减少比率为m/N。
(第三实施方式)
现在将描述第三实施方式。将主要描述与上面所描述的第二实施方式不同的特征,并且将省略相同特征的描述。第三实施方式的数据处理设备100用与第二实施方式中相同的硬件实现。
第二实施方式已经描述了每当更新属于试验目标集的状态变量的值时更新所有状态变量的局部场的示例。
相比之下,在第三实施方式中,每当更新试验目标集中的状态变量xj的值时,更新属于试验目标集的状态变量的局部场。当状态变量xj被从试验目标集排除时,由于状态变量xj的值的更新而对其他状态变量的局部场进行改变。
第三实施方式具有与第二实施方式相同的特征,在于:属于当前试验目标集的相应状态变量对的耦合系数例如属于图5所示出的耦合系数矩阵30中的块31的耦合系数被保存在本地存储单元221中。然而,第三实施方式具有与第二实施方式不同的特征,在于:不将相应状态变量对的耦合系数从DRAM 210读入本地存储单元221中,每个状态变量对包括属于当前试验目标集的状态变量之一和不属于当前试验目标集的其他状态变量之一。
图10示出了根据第三实施方式的读取耦合系数的示例。
例如,当试验目标集的状态变量从一组xk至xk+m-1改变为一组xk+1至xk+m时,从DRAM210读取耦合系数矩阵30的具有行索引k+m的行中具有列索引k+1至k+m的块36。另外,例如,从DRAM 210读取耦合系数矩阵30的具有行索引k的行中具有列索引1至k-1的块37和具有列索引k+m至N的块38。在这种情况下,具有行索引k的行中具有列索引k至k+m-1的块由控制单元223使用例如先前存储在本地存储单元221中的信息来补充。
图11示出了搜索单元的示例。
搜索单元222包括局部变量处理单元222a和全局变量处理单元222b。局部变量处理单元222a更新局部变量。局部变量是试验目标集的状态变量和对应于状态变量的局部场。属于局部变量的状态变量是试验目标集的状态变量。例如,局部变量保存在局部变量处理单元222a中设置的局部变量存储单元222a1中。例如,局部变量存储单元222a1是寄存器。局部变量的索引数为m。
在此,属于时间步长t处的局部变量的状态变量的一组索引被取为R(t)。时间步长t指的是从紧接着试验目标集的改变之后直至试验目标集的下一次改变为止的时间段。另外,在属于局部变量的状态变量和局部场中的每一者的右上部处附加了星号“*”。时间步长t处的局部变量由(xi∈R(t)*,hi∈R(t)*)表示。
全局变量处理单元222b更新全局变量。全局变量与局部变量单独地保存,并且都是N个可变的状态变量(x1至xN)和对应于N个状态变量的局部场(h1至hN)。换言之,全局变量是所有的状态变量和它们的局部场,包括局部变量。例如,全局变量保存在全局变量处理单元222b中设置的全局变量存储单元222b1中。例如,全局变量存储单元222b1是寄存器。
针对某个状态变量xi,当状态变量xi及其局部场hi被添加至局部变量时,全局变量保存状态变量xi (0)的值。然后,当从局部变量排除状态变量xi时,基于此时的xi *与xi (0)之间的差来更新全局变量中的状态变量xi和局部场h1至hN
图12示出了局部变量与全局变量之间的关系的示例。
局部变量集Y1是局部变量的整个集合。全局变量集Y2是全局变量的整个集合。通过改变试验目标集的索引,即,局部变量的索引,从局部变量集Y1排除包括在局部变量集Y1中的局部变量。此时,全局变量处理单元222b基于局部变量的值更新全局变量的值。
例如,当从局部变量排除状态变量x2 *时,全局变量处理单元222b将x2设置为x2 *的值。另外,全局变量处理单元222b使用x2 *与x2之间的差根据式(4)更新全局变量中的其他局部场h1至hN。此时,全局变量处理单元222b使用从DRAM 210读取的具有行索引2的行中的耦合系数。
另外,当局部变量的索引改变时,新的局部变量被添加至局部变量集Y1。此时,局部变量处理单元222a基于对应于要添加的局部变量的全局变量的值、其他局部变量中的状态变量的值以及与要添加的局部变量相关联的耦合系数,生成要添加的局部变量的值。
例如,假设局部变量的索引是连续的并且要添加的局部变量的索引为k+m,则局部变量处理单元222a设置xk+m *=xk+m。另外,局部变量处理单元222a根据式(9)计算局部场hk+m *
在此,Δxj *表示在添加xk+m *时xj与xj *之间的差。
另一方面,假设局部变量的索引是不连续的并且要添加的局部变量的索引为i,则局部变量处理单元222a设置xi *=xi。另外,局部变量处理单元222a根据式(10)计算局部场hi *
在此,Δxj *表示在添加xi *时xj与xj *之间的差。
图13示出了计算设备的功能的示例。
计算设备220包括本地存储单元221和226、局部变量处理单元222a、全局变量处理单元222b、控制单元223、能量计算单元224和系数数据流生成单元225。对于本地存储单元221和226,使用计算设备220中设置的SRAM的存储空间。如图11所例示的,局部变量处理单元222a和全局变量处理单元222b是搜索单元222的功能的细分。
系数数据流生成单元225从DRAM 210读取耦合系数,并且将读取的耦合系数供应至本地存储单元221和226。从系数数据流生成单元225供应至本地存储单元221和226的耦合系数的数据流被称为系数数据流。系数数据流生成单元225将局部变量处理单元222a要使用的耦合系数供应至本地存储单元221。系数数据流生成单元225将全局变量处理单元222b要使用的耦合系数供应至本地存储单元226。
局部变量处理单元222a使用存储在本地存储单元221中的耦合系数来进行关于是否更新属于局部变量的任何状态变量的值的试验。更具体地,局部变量处理单元222a根据式(2)计算由于某一状态变量的值的更新而引起的能量变化。然后,局部变量处理单元222a基于式(5)确定是否接受状态变量的值的变化,并且当确定接受该变化时,更新状态变量的值。当更新状态变量的值时,局部变量处理单元222a使用存储在本地存储单元221中的与状态变量相关联的耦合系数,根据式(4)更新其他局部变量的局部场。
全局变量处理单元222b使用存储在本地存储单元226中的耦合系数利用图12的方法更新全局变量。由全局变量处理单元222b对全局变量进行的更新可以与由局部变量处理单元222a进行的试验并行地执行。
在此,作为示例,图13示出了在时间步长t+m处保存在本地存储单元221和226以及局部变量处理单元222a中的信息。索引i(t)指示添加至时间步长t处的局部变量的状态变量的索引。
控制单元223控制作为局部变量处理单元222a、全局变量处理单元222b和系数数据流生成单元225的处理目标的索引。
能量计算单元224通过以累加的方式将针对其值已经在局部变量中被更新的状态变量计算出的能量变化添加至初始状态的能量,来计算与N个状态变量的当前值对应的能量。
图14示出了生成系数数据流的示例。
系数数据流生成单元225从DRAM 210读取耦合系数,并且生成系数数据流D10。系数数据流D10包括系数数据D11和系数数据D12。系数数据D11是与本次添加至局部变量的索引相关联的耦合系数的数据。系数数据D11存储在本地存储单元221中。系数数据D12是与本次从局部变量排除的索引相关联的耦合系数的数据。系数数据D12存储在本地存储单元226中。
例如,在时间步长t+m处,系数数据D11由Wi∈R(t+m),j∈R(t+m)表示。另外,在时间步长t+m处,系数数据D12由Wi∈R(t),)表示。在此,/>是R(t)的补集。系数数据D12的这个符号示例等同于图14的系数数据D12的符号示例。另外,W的下标中的左索引指示添加至该时间步长处的局部变量的状态变量的索引。
图15示出了系数数据流的第一示例。
例如,在局部变量的索引逐一连续增加的情况下,系数数据流生成单元225如下面所描述的那样生成系数数据流D10。
在某个时间步长处,系数数据流生成单元225向本地存储单元221供应m个耦合系数Wk+m,k+1、……、Wk+m,k+m。同时,系数数据流生成单元225还向本地存储单元226供应N-m个耦合系数Wk,1、……、Wk,k-1和Wk,k+m、……、Wk,N。计算设备220可以省略读取对应于多个对的耦合系数Wk,k至Wk,k+m-1,每个对包括从当前时间步长处的局部变量(当前试验目标集)排除的状态变量xk和属于先前时间步长处的局部变量(先前试验目标集)的xk至xk+m-1之一。这减少了用于从DRAM 210读取的存储器带宽。
在下一时间步长处,系数数据流生成单元225向本地存储单元221供应m个耦合系数Wk+m+1,k+2、……、Wk+m+1,k+m+1。此时,系数数据流生成单元225还向本地存储单元226供应N-m个耦合系数Wk+1,1、……、Wk+1,k和Wk+1,k+m+1、……、Wk+1,N
图16示出了系数数据流的第二示例。
在局部变量的索引逐一连续增加的情况下,系数数据流生成单元225可以如下面所描述的那样生成系数数据流D10a,而不是生成系数数据流D10。
在某个时间步长处,系数数据流生成单元225向本地存储单元221供应m个耦合系数Wk+m,k+1、……、Wk+m,k+m。同时,系数数据流生成单元225还向本地存储单元226供应N个耦合系数Wk,1、……、Wk,N
在下一时间步长处,系数数据流生成单元225向本地存储单元221供应m个耦合系数Wk+m+1,k+2、……、Wk+m+1,k+m+1。此时,系数数据流生成单元225还向本地存储单元226供应N个耦合系数Wk+1,1、……、Wk+1,N
与使用系数数据流D10a相比,使用系数数据流D10能够减少用于从DRAM 210读取的存储器带宽。另一方面,与使用系数数据流D10相比,使用系数数据流D10a能够消除在从DRAM 210读取耦合系数时执行的数据处理以及在将耦合系数存储在本地存储单元226中时执行的数据处理,并且因此能够加速耦合系数的读取。
下面描述根据第三实施方式的由能量计算单元224计算能量的示例。
图17示出了计算能量的示例。
每当局部变量处理单元222a更新试验中的局部变量中的状态变量xk *的值时,能量计算单元224通过以累加的方式使用状态变量xk *的值的变化Δxk *添加ΔE=-Δxk *hk *来计算系统的能量E。在此,系统指示伊辛模型的其中局部变量已经反映在全局变量上的状态。能量E由式(11)给出。
就此而言,第三实施方式的计算设备220以与参照图7中例示的流程图描述的方式相同的方式执行SA方法。然而,注意,在本地存储单元221中读取的耦合系数的大小是不同的。另外,搜索单元222的局部变量处理单元222a使用保存在本地存储单元221中的信息来进行关于是否更新局部变量中的任何状态变量的值的试验。另外,如前所述,计算设备220可以执行副本交换方法,而不是执行SA方法。
下面描述局部变量更新的示例。
图18示出了局部变量更新的第一示例。
局部变量处理单元222a使用存储在本地存储单元221中的耦合系数更新局部变量中的状态变量和对应于状态变量的局部场。对于这种更新,可以使用串行选择MCMC方法,该串行选择MCMC方法随机地或者按索引顺序选择局部变量的状态变量。图表G10表示在本地存储单元221中读取的系数行的行索引相对于时间的变化的示例。在图表G10中,水平轴表示时间,而竖直轴表示行索引。一系列G11表示利用串行选择MCMC方法按顺序选择局部变量的索引并进行试验的示例。例如,在局部变量处理单元222a完成以局部变量的所有索引为目标的一轮之后,控制单元223更新局部变量的索引,然后读取本地存储单元221中的接下来的系数行。局部变量处理单元222a然后利用串行选择MCMC方法按从第一索引开始的顺序,对局部变量的更新后的索引进行试验。
一系列G12是对所有索引1至N执行普通的串行选择MCMC方法的比较示例。一系列G12指示索引1至N随着时间的推移简单地按顺序成为目标。
另外,局部变量处理单元222a可以利用无拒绝MCMC方法对局部变量的m个状态变量进行并行试验。在无拒绝MCMC方法中,m个状态变量中的任一个的值在并行试验的一次执行中被更新。替选地,局部变量处理单元222a可以在并行试验中使用PNS RF方法。例如,局部变量处理单元222a可以包括图8中例示的并行试验执行单元300。
图19示出了局部变量更新的第二示例。
图表G20表示在本地存储单元221中读取的系数行的行索引相对于时间的变化的示例。在图表G20中,水平轴表示时间,而竖直轴表示行索引。首先,控制单元223使用前m个系数行对本地存储单元221进行初始化,然后使局部变量处理单元222a进行搜索,然后周期性地更新局部变量的索引,一次更新o个索引,其中o为2或更大的整数。在这种情况下,本地存储单元221和本地存储单元226中的系数行被一次更新o行。在此,取除以N的余数,这使得行索引能够回绕。
另外,控制单元223在要添加的接下来的o行的耦合系数的读取完成之后更新局部变量的索引。控制单元223能够预读取接下来的o行的耦合系数。例如,控制单元223进行控制,使得局部变量处理单元222a对属于局部变量的状态变量多次进行试验所花费的时间长于从DRAM 210读取接下来的o行的耦合系数并将耦合系数存储在本地存储单元221中的时间。
一系列G21表示利用串行选择MCMC方法按顺序选择局部变量的索引并进行试验的示例。例如,控制单元223可以在局部变量处理单元222a完成每轮都以局部变量的所有索引为目标的多轮搜索之后更新局部变量的索引。
图20示出了局部变量更新的第三示例。
图表G30表示在本地存储单元221中读取的系数行的行索引相对于时间的变化的示例。在图表G30中,水平轴表示时间,而竖直轴表示行索引。
局部变量处理单元222a可以通过初始化清空本地存储单元221,并且根据本地存储单元221中系数行的读取,可以使用本地存储单元221中读取的系数行开始试验。在这种情况下,首先清空本地存储单元221,然后将状态变量添加至局部变量,一次添加o个状态变量,并且开始对状态变量进行试验。在m个状态变量被存储之后,本地存储单元221中的局部变量的大小和耦合系数的大小被保持。就此而言,直至局部变量中的状态变量的数目达到m,才移除局部变量。
与图19的示例相比,上面的方法消除了直至前m行的系数行被存储在本地存储单元221中为止的等待时间,这进一步加速了问题解决。就此而言,图18至图20中的局部变量更新的示例不仅适用于第三实施方式,而且也适用于第二实施方式。
另外,如上面所描述的,控制单元223可以更新局部变量的索引,一次更新o个索引,即一次更新多个索引。在这种情况下,同样,本地存储单元221中的系数行被更新,一次更新o个系数行,即一次更新多个行。下面描述更新多个行的处理。
图21是示出更新多个行的示例的流程图。
(S20)控制单元223对行计数器进行初始化。行计数器对从DRAM 210读入本地存储单元221中的系数行的数目进行计数。另外,控制单元223设置行计数器的最大值p。
(S21)控制单元223开始多行目标处理,以便更新局部变量的索引。作为示例,在本次局部变量的索引被更新为1+o至m+o的集合的情况下,控制单元223控制系数数据流生成单元225从DRAM 210预读取具有接下来的行索引m+o+1至m+2o的o行的系数行。预读取等同于图7的流程图的步骤S12。另外,针对要从局部变量排除的o个状态变量,全局变量处理单元222b更新o个状态变量的值和局部场以及全局变量中的其他状态变量的局部场。另外,针对添加至局部变量的状态变量,局部变量处理单元222a更新状态变量的局部场。步骤S21处的全局变量和局部变量的更新包括在图7的流程图的步骤S13的系数行更新中。
(S22)控制单元223确定行计数器的值是否大于p。如果行计数器的值大于p,则控制单元223完成所有行索引的当前轮并前进至下一轮。如果行计数器值小于或等于p,则处理进行至步骤S23。
(S23)控制单元223使行计数器递增。然后,处理进行至步骤S21。
就此而言,行的数目o是问题相关的,这是因为它基于与问题对应的状态变量的数目N与本地存储单元221的容量之间的关系来确定。因此,在步骤S20处,控制单元223可以基于必要的存储器容量来计算最大值p,或者可以将最大值p设置为外部指定的适当值。
图22示出了时序图的示例。
时序图40是根据第三实施方式的计算设备220的时序图的示例。在时序图40中,水平轴表示时间。时序图40具有以下项:时钟CLK、存储在本地存储器中的系数行、从本地存储器移除的系数行、局部变量局部场调整、PNS和全局变量局部场更新。
“CLK”项表示计算设备220的时钟信号。“存储在本地存储器中的系数行”项指示新存储在本地存储单元221中的系数行。“从本地存储器移除的系数行”项指示从本地存储单元221移除的系数行。“局部变量局部场调整”项表示基于式(9)或式(10)的局部场hi *的调整。“PNS”项指示由局部变量处理单元222a进行的PNS RF方法的执行。就此而言,如前所述,局部变量处理单元222a可以执行串行选择MCMC方法。“全局变量局部场更新”项指示根据从局部变量排除的状态变量xi对局部场h1至hN的更新。
在时序图40中,从时间t1到时间t10的方向是时间的正方向。例如,在时间t1处,计算设备220从DRAM 210读取新的系数行,并且将其存储在本地存储单元221中。在读取新的系数行之后,计算设备220在时间t2处开始局部变量局部场调整。
然后,在时间t3处,计算设备220从本地存储单元221移除系数行。在移除系数行之后,计算设备220在时间t4处开始全局变量局部场更新。
当此后完成局部变量局部场调整时,计算设备220在时间t5处开始PNS。计算设备220并行地执行PNS和全局变量局部场更新。例如,计算设备220在时间t6处完成PNS和全局变量局部场更新。注意,PNS和全局变量局部场更新可以在不同的时序处完成。
当完成PN和全局变量局部场更新时,计算设备220在时间t7处从DRAM 210读取新的系数行,并且将其存储在本地存储单元221中。在读取新的系数行之后,计算设备220在时间t8处开始局部变量局部场调整。
然后,计算设备220在时间t9处从本地存储单元221移除系数行。在移除系数行之后,尽管未示出,计算设备220开始全局变量局部场更新。当此后完成局部变量局部场调整时,计算设备220在时间t10处开始PNS。此后,计算设备220重复如上面所描述的相同处理。
就此而言,当正在执行PNS时,可以从DRAM 210预读取在下一PNS中使用的耦合系数,并且将其存储在本地存储单元221中,如前所述。
图23示出了计算设备的修改示例。
在DRAM 210中可以设置图11的全局变量存储单元222b1。在这种情况下,替代全局变量处理单元222b,计算设备220包括全局变量更新单元222c和读取单元225a。
读取单元225a具有系数数据流生成单元225的功能。另外,读取单元225a向局部变量处理单元222a供应要添加至局部变量的状态变量的值和局部场。此时,读取单元225a还从DRAM 210读取与要从局部变量排除的状态变量xi *对应的状态变量xi的值,并且将其供应至全局变量更新单元222c。
全局变量更新单元222c根据从局部变量排除的状态变量xi *与从DRAM 210读取的状态变量xi之间的差Δxi,基于保存在本地存储单元226中的耦合系数,来更新在DRAM 210中保存的局部场h1至hN。另外,全局变量更新单元222c基于Δxi来更新在DRAM 210中保存的xi
如刚刚所描述的,计算设备220可以使DRAM 210保存全局变量。这消除了对用于保存全局变量的存储空间的需要,即,对计算设备220中的全局变量存储单元222b1的需要。
如上面所描述的,计算设备220在改变试验目标集的同时在多个试验中以所有多个状态变量为目标,并且在试验中,使用从DRAM 210读取并存储在本地存储单元221中的耦合系数。这降低了从计算设备220到DRAM 210的访问频率。因此,可以防止由于对DRAM 210的访问而引起的处理速度的降低。因此,实现了加速解决耦合系数的总大小相对大的大规模问题。另外,在第三实施方式的示例中,与耦合系数的总大小为N2相比,可以将本地存储单元221所需的存储器容量减少至m2。存储器容量的减少比率为m2/N2。与第二实施方式相比,第三实施方式能够减少本地存储单元221的存储器容量。另外,与第二实施方式相比,第三实施方式能够将用于更新除了局部变量中的那些场以外的局部场的开销减少至1/r。
例如,如第二实施方式和第三实施方式中所例示的,计算设备220具有以下功能。计算设备220使用包括多个状态变量和与多个状态变量中的多个对对应的多个耦合系数的伊辛模型的能量函数来找到组合优化问题的解。为此,计算设备220包括本地存储单元221、搜索单元222和控制单元223。本地存储单元221存储DRAM 210中保存的所有耦合系数中的一些。针对包括多个第一状态变量作为试验目标的试验目标集,控制单元223从DRAM 210读取与属于试验目标集的第一状态变量的多个第一对对应的多个第一耦合系数,并且将它们存储在本地存储单元221中。搜索单元222使用存储在本地存储单元221中的多个第一耦合系数,多次进行关于是否更新属于试验目标集的任何第一状态变量的值的试验。控制单元223重复试验目标集的改变和从DRAM 210读取第一耦合系数、将它们存储在本地存储单元221中以及通过搜索单元222使用第一耦合系数多次进行试验的处理,使得所有多个状态变量在试验中成为目标。
利用上面的方法,计算设备220能够减少对DRAM 210的访问频率,并且因此加速解决大规模问题。也就是说,计算设备220在多次试验中使用存储在本地存储单元221中的多个第一耦合系数。因此,试验的数目高于读取本地存储单元221中的耦合系数的次数,这引起加速解决大规模问题。包括搜索单元222和控制单元223的计算电路例如FPGA或GPU是第一实施方式的处理单元12的示例。本地存储单元221是第一实施方式的存储单元11的示例。
另外,例如,处理单元12可以由诸如CPU 101的计算电路来实现。例如,存储单元11可以由CPU 101的高速缓冲存储器来实现。在这种情况下,RAM 102可以是存储设备20的示例。如上面所描述的,处理单元12和计算设备220中的每一个可以由诸如FPGA或GPU的协处理器或者由诸如CPU 101的处理器来实现。
另外,属于试验目标集的多个第一状态变量的索引可以是连续的或不连续的。此外,先前试验目标集与当前试验目标集之间的不同状态变量的数目可以是一个或多个。例如,先前试验目标集与当前试验目标集之间的不同状态变量的数目可以被设置为四个或更多个。例如,不包括在先前试验目标集中但是包括在当前试验目标集中的状态变量的数目可以被设置为两个或更多个。
如第二实施方式中所例示的,计算设备220还可以包括变量存储单元222r。变量存储单元222r存储多个状态变量的值和对应于多个状态变量的多个局部场,以用于计算由于状态变量的值的变化而引起的能量函数的值的变化。控制单元223从DRAM 210读取对应于多个第二对的多个第二耦合系数、以及多个第一耦合系数,并且将它们存储在本地存储单元221中,每个第二对包括属于试验目标集的多个第一状态变量之一和不属于试验目标集的多个第二状态变量之一。另外,在上面所描述的试验中,搜索单元222基于对应于第一状态变量的局部场,计算由于属于试验目标集的第一状态变量的值的变化而引起的能量函数的值的变化,并且根据计算出的变化来更新第一状态变量的值。当更新第一状态变量的值时,搜索单元222基于与更新后的第一状态变量相关联的第一耦合系数,更新存储在变量存储单元222r中的多个局部场中的与属于试验目标集的多个第一状态变量对应的多个第一局部场。此时,搜索单元222还基于与更新后的第一状态变量相关联的第二耦合系数,更新存储在变量存储单元222r中的多个局部场中的与不属于试验目标集的多个第二状态变量对应的多个第二局部场。
利用上面的方法,与耦合系数的总大小为N2相比,计算设备220能够将本地存储单元221所需的存储器容量减少至N*m。
另外,如第三实施方式中所例示的,计算设备220还可以包括局部变量存储单元222a1。局部变量存储单元222a1存储属于试验目标集的多个第一状态变量的值以及对应于多个第一状态变量的多个第一局部场,以用于计算由于第一状态变量的值的变化而引起的能量函数的值的变化。另外,计算设备220能够访问全局变量存储单元222b1。全局变量存储单元222b1存储多个状态变量的值和对应于多个状态变量的多个第二局部场。全局变量存储单元222b1可以设置在计算设备220中或计算设备220的外部,例如,设置在DRAM 210中。
在这种情况下,在将试验目标集从先前的一个试验目标集改变为当前的一个试验目标集时,控制单元223从多个状态变量中提取包括在先前试验目标集中但不包括在当前试验目标集中的第一不同状态变量。控制单元223然后从DRAM 210读取对应于多个第二对的多个第二耦合系数、以及多个第一耦合系数,并且将多个第二耦合系数存储在本地存储单元226中,每个第二对包括第一不同状态变量和其他状态变量之一。搜索单元222利用存储在局部变量存储单元222a1中的第一不同状态变量的第一值来更新存储在全局变量存储单元222b1中的第一不同状态变量的第二值。此时,搜索单元222还基于更新前后的第二值之差和存储在本地存储单元226中的多个第二耦合系数,更新存储在全局变量存储单元222b1中的多个第二局部场。
另外,搜索单元222从全局变量存储单元222b1获得多个状态变量中的不包括在先前试验目标集中但包括在当前试验目标集中的第二不同状态变量的第三值,并将其存储在局部变量存储单元222a1中。搜索单元222获得分别存储在局部变量存储单元222a1和全局变量存储单元222b1中的多个第一状态变量中的每一个的第四值与第五值之间的差。搜索单元222然后基于所获得的差、存储在全局变量存储单元222b1中的第二不同状态变量的第二局部场以及存储在本地存储单元221中的第一耦合系数来计算第二不同状态变量的局部场,并且将该局部场存储在局部变量存储单元222a1中。根据式(9)或式(10)计算第二不同状态变量的局部场。
然后,在上面所描述的试验中,搜索单元222基于存储在局部变量存储单元222a1中的对应于第一状态变量的第一局部场,计算由于属于当前试验目标集的第一状态变量的值的变化而引起的能量函数的值的变化。搜索单元222根据计算出的变化来更新存储在局部变量存储单元222a1中的第一状态变量的值。当更新第一状态变量的值时,搜索单元222基于与更新后的第一状态变量相关联的第一耦合系数,更新存储在局部变量存储单元222a1中的多个第一局部场。
由此,与耦合系数的总大小为N2相比,计算设备220能够将本地存储单元221所需的存储器容量减少至m2。另外,计算设备220能够减少用于更新除了局部变量中的那些场以外的局部场的开销。例如,搜索单元222可以包括局部变量处理单元222a和全局变量处理单元222b,或者可以包括局部变量处理单元222a和全局变量更新单元222c。就此而言,本地存储单元221和226是第一实施方式的存储单元11的示例。
搜索单元222可以更新存储在全局变量存储单元222b1中的多个第二局部场,并且并行地对当前试验目标集进行试验。例如,搜索单元222使用第一不同状态变量的值的差来更新存储在全局变量存储单元222b1中的对应于第二不同状态变量的第二局部场。然后,使用第二不同状态变量的更新后的第二局部场和保存在局部变量存储单元222a1中的信息,搜索单元222根据式(9)或式(10)针对第二不同状态变量生成新的局部场,将该新的局部场存储在局部变量存储单元222a1中,并且开始上面所描述的试验。与试验并行地,搜索单元222能够更新在全局变量存储单元222b1中保存的其他第二局部场。这加速了问题解决。
当从DRAM 210读取多个第二耦合系数时,控制单元223可以省略读取对应于状态变量对的耦合系数,每个状态变量对包括第一不同状态变量和属于先前试验目标集的其他状态变量之一。这减少了用于从DRAM 210读取的存储器带宽。
控制单元223可以从DRAM 210读取与先前试验目标集和当前试验目标集之间的不同状态变量相关联的耦合系数。另外,控制单元223可以省略从DRAM 210读取与在先前目标集和当前目标集之间重叠的状态变量相关联的耦合系数,即先前从DRAM 210读取的耦合系数。这简化了从DRAM 210的读取并加速了问题解决。先前试验目标集与当前试验目标集之间的不同状态变量是不包括在先前试验目标集中但包括在当前试验目标集中的状态变量。
在对当前试验目标集进行试验时,控制单元223可以从DRAM 210预读取与下一试验目标集的状态变量相关联的耦合系数。这简化了从DRAM 210的读取,并且因此加速了问题解决。
搜索单元222可以在上面所描述的试验中执行串行选择MCMC方法。也就是说,搜索单元222随机地或按预定顺序逐一选择属于试验目标集的多个第一状态变量,基于能量函数来确定是否更新所选第一状态变量的值,并且当确定更新该值时,更新第一状态变量的值。替选地,搜索单元222可以执行无拒绝MCMC方法。更具体地,搜索单元222可以基于能量函数来并行地确定是否接受属于试验目标集的多个第一状态变量中的每一个的值的更新,以及更新接受了值更新的任何第一状态变量的值。又替选地,搜索单元222可以执行PNS RF方法。更具体地,搜索单元222可以基于能量函数跨从多个第一状态变量选择的预定数目的第一状态变量并行地确定是否接受值更新,以及更新接受值更新的任何第一状态变量的值。这简化了问题解决。尤其地,PNS RF方法的使用使得能够将在一行中试验相同状态变量的概率调整至预定值。
就此而言,第一实施方式的信息处理可以通过处理单元12执行程序来实现。另外,第二实施方式和第三实施方式的信息处理通过CPU 101执行程序来实现。这样的程序可以记录在计算机可读存储介质113上。
例如,其上记录有程序的存储介质113被分发,使得程序被分发。另外,程序可以存储在另一计算机中,该另一计算机然后通过网络来分发程序。例如,计算机将记录在存储介质113上的程序或从其他计算机接收到的程序存储(安装)在诸如RAM 102或HDD 103的本地存储设备中,并且从存储设备读取程序并运行程序。
根据一个方面,实现了加速解决大规模问题。

Claims (12)

1.一种用于使用伊辛模型的能量函数找到组合优化问题的解的信息处理设备,所述信息处理设备包括:
第一存储装置;以及
处理装置,其中:
所述第一存储装置用于存储多个耦合系数中的一些耦合系数,所述多个耦合系数对应于所述能量函数中包括的多个状态变量的多个对,所述多个耦合系数存储在存储设备中;
所述处理装置用于执行以下处理:
针对包括所述多个状态变量中的多个第一状态变量作为是否执行值更新的试验目标的试验目标集,从所述存储设备读取与属于所述试验目标集的所述多个第一状态变量的多个第一对对应的多个第一耦合系数,并且将所述多个第一耦合系数存储在所述第一存储装置中,以及
使用存储在所述第一存储装置中的所述多个第一耦合系数,多次进行关于是否更新属于所述试验目标集的所述多个第一状态变量中的任一个的值的试验;以及
所述处理装置还重复所述试验目标集的改变和所述处理,以便在试验中以所有多个状态变量为目标。
2.根据权利要求1所述的信息处理设备,还包括:
第二存储装置,其存储所述多个状态变量的值和对应于所述多个状态变量的多个局部场,所述多个局部场用于计算由于所述多个状态变量之一的值的变化而引起的所述能量函数的值的变化,其中:
所述处理装置还用于:
从所述存储设备读取对应于多个第二对的多个第二耦合系数以及所述多个第一耦合系数,并且将所述多个第二耦合系数以及所述多个第一耦合系数存储在所述第一存储装置中,每个第二对包括所述多个第一状态变量之一和不属于所述试验目标集的多个第二状态变量之一;以及
所述试验包括:
基于所述多个局部场中的对应于第一状态变量的局部场,计算由于所述第一状态变量的值的变化而引起的所述能量函数的值的变化,
根据计算出的变化来更新所述第一状态变量的值,以及
在更新所述第一状态变量的值时,基于与更新后的第一状态变量相关联的第一耦合系数,更新所述多个局部场中的对应于所述多个第一状态变量的多个第一局部场,并且基于与更新后的第一状态变量相关联的第二耦合系数,更新所述多个局部场中的对应于所述多个第二状态变量的多个第二局部场。
3.根据权利要求1所述的信息处理设备,还包括:
第三存储装置,其存储所述多个第一状态变量的值和对应于所述多个第一状态变量的多个第一局部场,所述多个第一局部场用于计算由于所述多个第一状态变量之一的值的变化而引起的所述能量函数的值的变化,其中:
所述处理装置能够访问第四存储装置,所述第四存储装置存储所述多个状态变量的值和对应于所述多个状态变量的多个第二局部场;
所述试验目标集的改变包括:
从所述存储设备读取对应于多个第二对的多个第二耦合系数以及所述多个第一耦合系数,并且将所述多个第二耦合系数以及所述多个第一耦合系数存储在所述第一存储装置中,每个第二对包括所述多个状态变量中的包括在先前试验目标集中但不包括在当前试验目标集中的第一不同状态变量以及多个其他状态变量之一,
用存储在所述第三存储装置中的所述第一不同状态变量的第一值更新存储在所述第四存储装置中的所述第一不同状态变量的第二值,并且基于更新所述第二值前后之间的所述第二值的差以及所述多个第二耦合系数,更新存储在所述第四存储装置中的所述多个第二局部场,以及
从所述第四存储装置获得所述多个状态变量中的不包括在所述先前试验目标集中但包括在所述当前试验目标集中的第二不同状态变量的第三值,将所述第三值存储在所述第三存储装置中,基于分别存储在所述第三存储装置和所述第四存储装置中的所述多个第一状态变量中的每一个的第四值与第五值之间的差、存储在所述第四存储装置中的所述第二不同状态变量的第二局部场以及存储在所述第一存储装置中的所述多个第一耦合系数,计算对应于所述第二不同状态变量的局部场,并且将计算出的局部场存储在所述第三存储装置中;以及
所述试验包括:
基于存储在所述第三存储装置中的所述多个第一局部场中的对应于第一状态变量的第一局部场,计算由于属于所述当前试验目标集的所述第一状态变量的值的变化而引起的所述能量函数的值的变化,根据计算出的变化,更新存储在所述第三存储装置中的所述第一状态变量的值,以及
在更新所述第一状态变量的值时,基于与更新后的第一状态变量相关联的所述第一耦合系数,更新存储在所述第三存储装置中的所述多个第一局部场。
4.根据权利要求3所述的信息处理设备,其中,所述处理装置并行地执行存储在所述第四存储装置中的所述多个第二局部场的更新和对所述当前试验目标集的试验。
5.根据权利要求3或4所述的信息处理设备,其中,在从所述存储设备读取所述多个第二耦合系数时,所述处理装置省略读取对应于状态变量对的耦合系数,每个状态变量对包括所述第一不同状态变量和属于所述先前试验目标集的其他状态变量之一。
6.根据权利要求1所述的信息处理设备,其中,所述处理装置还从所述存储设备读取与所述先前试验目标集和所述当前试验目标集之间的不同状态变量相关联的耦合系数,并且省略从所述存储设备读取与在所述先前试验目标集和所述当前试验目标集之间重叠的状态变量相关联的耦合系数。
7.根据权利要求1所述的信息处理设备,其中,所述处理装置还用于在对当前试验目标集进行所述试验时,从所述存储设备预读取与属于下一试验目标集的状态变量相关联的耦合系数。
8.根据权利要求1所述的信息处理设备,其中,属于所述试验目标集的所述多个第一状态变量的索引是连续的或不连续的。
9.根据权利要求1所述的信息处理设备,其中,在先前试验目标集与当前试验目标集之间存在多个不同状态变量。
10.根据权利要求1所述的信息处理设备,其中,所述处理装置以第一方式或第二方式进行所述试验,其中:
所述第一方式包括:随机地或按预定顺序逐一选择所述多个第一状态变量,基于所述能量函数来确定是否更新所选第一状态变量的值,并且在确定更新所选第一状态变量的值时,更新所选第一状态变量的值,以及
所述第二方式包括:跨所有多个第一状态变量或从所述多个第一状态变量中选择的预定数目的第一状态变量并行地确定是否接受值更新,并且更新接受所述值更新的第一状态变量之一的值。
11.一种由用于使用伊辛模型的能量函数找到组合优化问题的解的信息处理设备执行的信息处理方法,所述信息处理方法包括:
执行以下处理:
针对包括所述能量函数中包括的多个状态变量中的多个第一状态变量作为是否执行值更新的试验目标的试验目标集,从存储设备读取与属于所述试验目标集的所述多个第一状态变量的多个第一对对应的多个第一耦合系数,并且将所述多个第一耦合系数存储在第一存储装置中,所述存储设备存储对应于所述多个状态变量的多个对的多个耦合系数,所述第一存储装置用于存储所述多个耦合系数中的一些耦合系数,以及
使用存储在所述第一存储装置中的所述多个第一耦合系数,多次进行关于是否更新属于所述试验目标集的所述多个第一状态变量中的任一个的值的试验;以及
重复所述试验目标集的改变和所述处理,以便在试验中以所有多个状态变量为目标。
12.一种存储有计算机程序的非暂态计算机可读记录介质,所述计算机程序使计算机执行用于使用伊辛模型的能量函数找到组合优化问题的解的过程,所述过程包括:
执行以下处理:
针对包括所述能量函数中包括的多个状态变量中的多个第一状态变量作为是否执行值更新的试验目标的试验目标集,从存储设备读取与属于所述试验目标集的所述多个第一状态变量的多个第一对对应的多个第一耦合系数,并且将所述多个第一耦合系数存储在第一存储装置中,所述存储设备存储对应于所述多个状态变量的多个对的多个耦合系数,所述第一存储装置用于存储所述多个耦合系数中的一些耦合系数,以及
使用存储在所述第一存储装置中的所述多个第一耦合系数,多次进行关于是否更新属于所述试验目标集的所述多个第一状态变量中的任一个的值的试验;以及
重复所述试验目标集的改变和所述处理,以便在试验中以所有多个状态变量为目标。
CN202310310972.XA 2022-03-31 2023-03-28 信息处理设备和信息处理方法 Pending CN116894496A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2022058570A JP2023149806A (ja) 2022-03-31 2022-03-31 情報処理装置、情報処理方法およびプログラム
JP2022-058570 2022-03-31

Publications (1)

Publication Number Publication Date
CN116894496A true CN116894496A (zh) 2023-10-17

Family

ID=85778679

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310310972.XA Pending CN116894496A (zh) 2022-03-31 2023-03-28 信息处理设备和信息处理方法

Country Status (4)

Country Link
US (1) US20230350972A1 (zh)
EP (1) EP4254274A1 (zh)
JP (1) JP2023149806A (zh)
CN (1) CN116894496A (zh)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5865457B1 (ja) 2014-08-29 2016-02-17 株式会社日立製作所 情報処理システム及び管理装置
JP7068575B2 (ja) 2018-02-06 2022-05-17 富士通株式会社 最適化システム、最適化装置及び最適化システムの制御方法
JP7111966B2 (ja) * 2018-09-03 2022-08-03 富士通株式会社 最適化装置及び最適化装置の制御方法
JP7239826B2 (ja) * 2019-06-18 2023-03-15 富士通株式会社 サンプリング装置およびサンプリング方法

Also Published As

Publication number Publication date
JP2023149806A (ja) 2023-10-16
EP4254274A1 (en) 2023-10-04
US20230350972A1 (en) 2023-11-02

Similar Documents

Publication Publication Date Title
US11262717B2 (en) Optimization device and control method of optimization device based on temperature statistical information
JP7239826B2 (ja) サンプリング装置およびサンプリング方法
US11631006B2 (en) Optimization device and control method of optimization device
JP7319539B2 (ja) 組合せ最適化装置、組合せ最適化方法および組合せ最適化プログラム
US20210158212A1 (en) Learning method and learning apparatus
US11562210B2 (en) Stochastically determining to accept a state transition for an optimization device
CN113536229A (zh) 采样装置、采样方法以及用于存储采样程序的存储介质
US11199884B2 (en) Optimization device and method of controlling optimization device utilizing a spin bit
CN113128663A (zh) 优化装置、温度设置方法和温度设置程序
EP4187448A1 (en) Information processing apparatus, information processing method, and program
CN116894496A (zh) 信息处理设备和信息处理方法
US20230081944A1 (en) Data processing apparatus, data processing method, and storage medium
US20240111833A1 (en) Data processing apparatus and data processing method
US20220366011A1 (en) Non-transitory computer-readable storage medium and information processing apparatus
EP4290417A1 (en) Information processing apparatus, information processing method, and information processing program
US20240135151A1 (en) Data processing device, data processing method, and computer-readable recording medium storing data processing program
US20230267165A1 (en) Computer-readable recording medium storing data processing program, data processing device, and data processing method
US20240176581A1 (en) Data processing apparatus, storage medium, and data processing method
US20230401278A1 (en) Information processing apparatus, information processing method, and storage medium
US20230409669A1 (en) Information processing apparatus, information processing method, and computer-readable recording medium storing program
CN113283609A (zh) 信息处理方法、信息处理设备和信息处理程序
CN115705391A (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