CN115577824A - 数据处理设备、存储程序的计算机可读记录介质和方法 - Google Patents
数据处理设备、存储程序的计算机可读记录介质和方法 Download PDFInfo
- Publication number
- CN115577824A CN115577824A CN202210663223.0A CN202210663223A CN115577824A CN 115577824 A CN115577824 A CN 115577824A CN 202210663223 A CN202210663223 A CN 202210663223A CN 115577824 A CN115577824 A CN 115577824A
- Authority
- CN
- China
- Prior art keywords
- value
- variable
- state
- state variables
- coefficient
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/04—Forecasting or optimisation specially adapted for administrative or management purposes, e.g. linear programming or "cutting stock problem"
-
- 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
- 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
- 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/02—Comparing digital values
-
- 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
- G06F7/544—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 for evaluating functions by calculation
- G06F7/5443—Sum of products
-
- 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
- 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/08—Learning methods
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Physics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Business, Economics & Management (AREA)
- Algebra (AREA)
- Operations Research (AREA)
- Economics (AREA)
- Strategic Management (AREA)
- Human Resources & Organizations (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Databases & Information Systems (AREA)
- Game Theory and Decision Science (AREA)
- Development Economics (AREA)
- Probability & Statistics with Applications (AREA)
- Entrepreneurship & Innovation (AREA)
- Marketing (AREA)
- Quality & Reliability (AREA)
- Tourism & Hospitality (AREA)
- General Business, Economics & Management (AREA)
- Computational Linguistics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Complex Calculations (AREA)
Abstract
提供了数据处理设备、存储程序的计算机可读记录介质和方法。搜索使包括状态变量的评价函数变为局部最小值或局部最大值的状态变量的组合的计算机包括:存储第一系数的存储器,该第一系数指示评价函数的第k阶项中的k个状态变量之间的相互作用的大小;以及处理器,该处理器执行:通过第一系数和第一变量来计算指示当k个状态变量中的第一状态变量变化时第k阶项的变化量的第一局部字段,该第一变量通过k个状态变量和第二系数得到;以及基于预定值与第一局部字段和第二局部字段之和的乘积之间的比较结果来确定是否允许第一状态变量的变化,该第二局部字段指示评价函数的二次项和较低阶项的变化量。
Description
技术领域
本文讨论的实施方式涉及数据处理设备、存储程序的计算机可读记录介质以及处理数据的方法。
背景技术
作为计算诺依曼(Neumann)型计算机不易处理的大规模离散优化问题的设备,存在使用伊辛(Ising)型评价函数(也称为能量函数等)的伊辛机(也称为玻尔兹曼(Boltzmann)机)。
伊辛机将离散优化问题转换为表示磁性体的自旋行为的伊辛模型。基于马尔可夫链蒙特卡罗(Markov chain Monte Carlo)方法,例如模拟退火方法(simulated annealingmethod)或副本交换方法(replica exchange method)(也称为例如并行回火方法(parallel tempering method)等),伊辛机搜索将伊辛型评价函数的值(对应于能量)设置为局部最小值的伊辛模型的状态。具有评价函数的局部最小值中的最小值的状态是最优解。通过变化评价函数的符号,伊辛机还能够搜索将评价函数的值设置为局部最大值的状态。伊辛模型的状态可以通过多个状态变量的值的组合来表示。作为每个状态变量的值,可以使用0或1。
伊辛型评价函数例如由诸如以下表达式(1)的二次形式的函数来定义。
右侧的第一项是以下乘积的总和:所述乘积每个均是根据伊辛模型的N个状态变量的所有组合(没有遗漏和重复)中的一个组合中的两个状态变量的值以及权重值(指示两个状态变量之间的相互作用的强度)获得的。此处,xi是标识号为i的状态变量,xj是标识号为j的状态变量,并且Wij是指示标识号为i和j的状态变量之间的相互作用的强度的权重值。右侧的第二项是以下乘积的总和:所述乘积每个均是根据针对标识号之一的偏差系数和状态变量获得的。此处,bi指示针对标识号=i的偏差系数。
由于xi的值的变化而导致的能量变化量(ΔEi)由以下表达式(2)表示。
在表达式(2)中,例如,在值为0或1的xi从1变为0时Δxi为-1,而在xi从0变为1时Δxi为1。此处,hi被称为局部字段(local field),并且ΔEi是hi与取决于Δxi的符号(+1或-1)的乘积。因此,hi也可以称为表示能量变化量的变量或者确定能量变化量的变量。
例如,在ΔEi小于基于随机数和温度参数的值而获得的噪声值时,重复更新xi的值以生成状态转变以及更新局部字段的处理。
相关技术的伊辛机使用由以上表达式(1)表示的二次形式的函数定义的伊辛型评价函数。为了允许将伊辛机应用于更广泛的离散优化问题,可以想到使用包括三次或较高阶项的评价函数(在下文中称为较高阶评价函数)。
作为使用较高阶评价函数的离散优化问题的计算技术,已经提出了一种技术,在该技术中,通过添加类似于状态变量的新自变量,将较高阶评价函数转换为二次评价函数并且进行计算。
还提出了一种技术,在该技术中,使用由保持线性形式的线性形式函数定义的不等式约束的约束项,并且通过伊辛机获得解。
相关技术的示例包括如下:日本公开特许公报第2020-204928号。
相关技术的示例还包括如下:R.Xia等人的“Electronic StructureCalculations and the Ising Hamiltonian”,J.Phys.Chem.B 2018,122,13,3384-3395,2017。
发明内容
技术问题
对于添加自变量并将较高阶评价函数转换为二次评价函数的相关技术,自变量的数目随着较高阶项的次数增加而增加。当自变量数目增加时,可解问题的大小减小,解空间增大。因此,可能难以对问题求解。
在一个方面中,本公开内容的目的是提供数据处理设备、程序和处理数据的方法,利用该数据处理设备、程序和处理数据的方法可以计算由较高阶评价函数表示的离散优化问题而不增加自变量的数目。
问题的解决方案
根据实施方式的方面,提供了一种数据处理设备,用于搜索使包括多个状态变量的评价函数的值变为局部最小值或局部最大值的多个状态变量的值的组合。在示例中,数据处理设备包括:存储装置,其被配置成存储第一系数,第一系数指示评价函数的第k阶项中包括的多个状态变量中的k个状态变量(k是大于或等于3的整数)之间的相互作用的大小;以及处理器,其被配置成执行处理,处理包括:基于从存储装置读取的第一系数和第一变量的值,计算指示在k个状态变量中的第一状态变量的值变化的情况下第k阶项的变化量的第一局部字段,第一变量的值是基于k个状态变量的值以及分别表示k个状态变量对第一变量的影响的多个第二系数得到的值;以及基于比较结果来确定是否允许第一状态变量的值的变化,比较结果通过将第一局部字段和第二局部字段之和与第一状态变量的变化量的乘积与预定值进行比较而获得,第二局部字段指示在第一状态变量的值变化的情况下评价函数的二次项和较低阶项的变化量。
本发明的有益效果
在一个方面中,根据本公开内容,可以在不增加自变量的数目的情况下计算由较高阶评价函数表示的离散优化问题。
附图说明
图1示出了根据第一实施方式的数据处理设备和处理数据的方法的示例;
图2示出了与k个状态变量对应使用的k个辅助变量的示例;
图3示出了yjn与qjn之间的关系;
图4是示出根据第二实施方式的数据处理设备的硬件示例的框图;
图5是示出数据处理设备的功能示例的框图;
图6示出了存储在存储单元中的矩阵信息的示例;
图7是示出处理数据的方法的示例的流程的流程图;
图8是示出初始化处理的过程的示例的流程的流程图;
图9是示出更新处理的过程的示例的流程的流程图;
图10示出了根据第三实施方式的数据处理设备的示例;
图11示出了现场可编程门阵列(FPGA)的示例的配置;
图12示出了使用具有两位值的辅助变量的示例;
图13示出了其中自旋变量被用作状态变量的示例;
图14示出了在用于第k项中包括的作为k个自旋变量的状态变量的辅助变量的数目为1的示例的图;
图15示出了在多个层中使用多个辅助变量的示例;以及
图16示出了计算结果的示例。
具体实施方式
在下文中,将参照附图描述本公开内容的实施方式。
(第一实施方式)
图1示出了根据第一实施方式的数据处理设备和处理数据的方法的示例。
根据第一实施方式的数据处理设备10是搜索使如上所述的较高阶评价函数的值变为局部最小值或局部最大值的多个状态变量的值的组合的设备。
在问题要满足的约束条件由各种条件的复杂期望组合给出的情况下,可以在可满足性问题(satisfiability problem,SAT)中给出约束条件。在这种情况下,例如,希望SAT不能满足的逻辑子句的数目成为最小值。尽管所有的SAT都可以转换为字面量的数目为3的3-SAT,但仅能够处理二次形式的评价函数的相关技术伊辛机只能直接求解最多2-SAT。如下所述,根据本实施方式的数据处理设备10使用辅助变量来计算表示由于包括在较高阶项中的状态变量的值的变化而引起的较高阶项的变化量(能量变化量)的局部字段。通过该技术,数据处理设备10例如能够计算等于或高于3-SAT的问题。
例如,可以由以下表达式(3)来表示较高阶评价函数。
在右侧,第一项是第k(k≥3)项(较高阶项),第二项和随后的项是二次项和较低阶项。在N个状态变量中,xj1至xjk是在第k项中包括的状态变量,并且形成k字段组合。在表达式(3)中,Z<j1...jk>是表示xj1至xjk之间的相互作用的大小的系数(例如,也可以说是表示k字段组合的组合强度的系数)。
在处理SAT型离散优化问题的约束条件的情况下,在较高阶项中,表示xj1至xjk的乘积的部分可以是正字面量与负字面量的乘积。例如,在k=4并且xj1=x1,xj2=x2,xj3=x3,xj4=x4的情况下,也可以将诸如表达式(4)的积作为较高阶项处理。
在表达式(4)中,具有横线(bar)的状态变量(x1,x3)是负字面量。在这种较高阶项的情况下,当不满足以下表达式(5)的逻辑子句时,例如,在以下表达式(6)的情况下,Z<j1...jk>对E(能量)作出贡献(产生成本)。
假设在不满足表达式(5)的逻辑子句的情况下,生成Z1234作为Z<j1...jk>。生成这种Z1234的双二次项可以被表示为Z1234(1-x1)x2(1-x3)x4。在x1至x4中的每一个的值改变的情况下,指示上述双二次项的变化量的对应局部字段(h1 XY至h4 XY)可以通过使用对应的辅助变量(y1至y4)来表示如下。
例如,通过使用使y1=x2(1-x3)x4的y1,在由h1 XY指示的在x1的值改变的情况下的双二次项的变化量可以被表示为h1 XY=-Z1234y1。通过使用使y2=(1-x1)(1-x3)x4的y2,可以将由h2 XY指示的在x2的值变化的情况下的双二次项的变化量表示为h2 XY=+Z1234y2。通过使用使y3=(1-x1)x2x4的y3,可以将由h3 XY指示的在x3的值变化的情况下的双二次项的变化量表示为h3 XY=-Z1234y3。通过使用使y4=(1-x1)x2(1-x3)的y4,可以将由h4XY指示的在x4的值变化的情况下的双二次项的变化量表示为h4 XY=+Z1234y4。
通过将hi XY乘以-Δxi获得的值是在yi=1的情况下具有双二次项的能量的增加。
如上所述,当在第k项中包括的k个状态变量的字面量中除了生成hi XY的xi之外的所有字面量都为1时,hi XY是通过对Z<j1...jk>添加适当的符号而获得的值。相比之下,即使当除了xi之外的字面量之一为假(0)时,hi XY为0。
添加了适当符号的值意味着在生成hi XY的xi是第k阶项中的正字面量的情况下添加正号,并且在生成hi XY的xi是第k项中的负字面量的情况下添加负号。
使用如上所述的辅助变量实现指示在第k项中包括的状态变量的值变化的情况下的第k项的变化量的局部字段的hi XY的计算。
由于辅助变量是根据状态变量的值得到的,所以辅助变量不是自变量,并且不会增加解搜索空间。
图1所示的数据处理设备10通过使用包括上述hi XY和如上所述的辅助变量的三种类型的局部字段(hi XX、hi XY、hj YX)来计算在xi的值改变的情况下表达式(3)的评价函数的值的变化量(ΔE)并且确定是否允许xi的值改变。
根据第一实施方式的数据处理设备10包括存储单元11和处理单元12。
存储单元11是例如:包括诸如动态随机存取存储器(DRAM)的电子电路的易失性存储装置;或者包括诸如硬盘驱动器(HDD)的电子电路的非易失性存储装置;或者闪存。存储单元11可以包括诸如寄存器的电子电路。
存储单元11存储离散优化问题的问题信息、表达式(3)的评价函数中包括的多个(在下文中为N个)状态变量的值以及hi XX、hi XY、hj YX的值。
例如,除了表达式(3)中表示的Z<j1...jk>(在图1中被简单地表示为Z)、Wij和bi之外,问题信息包括系数(dj),稍后将对其进行描述。
局部字段hi XX是表示在xi的值改变的情况下表达式(3)的评价函数的二次项和较低阶项的变化量的局部字段,并且hi XX对应于表达式(2)的hi。例如,hi XX可以由下面的表达式(7)表示。
局部字段hj YX是第k项的第一局部字段,并且指示N个状态变量针对辅助变量生成的局部字段。局部字段hj YX可以由以下表达式(8)表示。
在表达式(8)中,Cjl是表示xl对第j个辅助变量的影响的系数。假设未在第k项中包括的状态变量不影响用于该第k项的辅助变量,则与这些状态变量相关的Cjl为0。
如上所述,在第k项由正字面量与负字面量的乘积表示的情况下,表示第k项中包括的xj1至xjk对yjn的影响的Cjn,j1至Cjn,jk可以由σj1至σjk表示,σj1至σjk是上述适当的符号。例如,在xjn作为正字面量被包括在上述乘积中的情况下,σjn=+1,并且在xjn作为负字面量(1-xjn)被包括在上述乘积中的情况下,σjn=-1。
在表达式(8)中,dj是例如预定常数,例如-(k-(3/2))(参见图3)。
由于xi的值的改变而更新的hj YX的值可以表示为hj YX=hj YX+CjiΔxi。
局部字段hi XY是第k项的第二局部字段,并且如上所述,指示在第k项中包括的状态变量的值改变的情况下第k项的变化量。根据第一实施方式,hi XY指示某个辅助变量针对xi生成的局部字段。下面的表达式(9)可以表示hi XY。
在表达式(9)中,yj是M个辅助变量中的第j个辅助变量,并且可以表示为yj=f(hj YX)。在这个表达式中,f是表示yj的输入和输出关系的函数。
在该表达式中,Fij指示第j个辅助变量对xi的影响强度。例如,将上述表达式(3)所示的Z<j1...jk>与表示xi对第j个辅助变量的影响的系数(Cjl)的乘积用作Fij。
根据第一实施方式,作为单个位的值0或1的k个辅助变量与在第k项中包括的数量k个状态变量(xj1至xjk)对应地使用。辅助变量可以是具有两位或更多位的值的变量。在这种情况下,辅助变量的数目可以是针对k个状态变量为一个(参见稍后描述的第四实施方式(图12))。
图2示出了与k个状态变量对应使用的k个辅助变量的示例。
k个辅助变量(yj1至yjk)中的每一个针对xj1至xjk中的一个生成局部字段(hj1 XY至hjk XY)。yj1至yjk中的每一个是基于xj1至xjk中除了针对其生成局部字段的状态变量之外的状态变量的值与除了针对其生成局部字段的状态变量之外的状态变量相关的上述σj1至σjk的子集的乘积的总和来确定的。
在图1中,为了说明的简单,示出了辅助变量之一(yjn)。对于xjn,yjn生成局部字段(hjn XY)。
yjn针对xjn生成的局部字段(hjn XY)可以通过使用上述σjn和Z表示为hjn XY=σjnZyjn。
确定yjn的函数f(hjn YX)是根据由以下表达式(10)表示的qjn的值来确定yjn的值的函数。
表达式(10)右侧的第一项是通过从基于表达式(8)获得的hjn YX中减去σjnxjn和dj而获得的值。表达式(10)右侧的第二项Nnegative是包括在上述乘积中作为xjl(l=1至k,l≠jn)中的负字面量的状态变量的数目。
图3示出了yjn与qjn之间的关系。横轴表示qjn,纵轴表示yjn。
在qjn为最大值的k-1的情况下,yjn为1,并且在小于k-1的情况下(在k-2或更小的情况下)yjn为0。作为对于这样的确定的阈值,使用表达式(8)中所示的dj。
这样,可以得到表示在xjn的值改变的情况下第k项的变化量的hjn XY。
例如,如上所述,在不满足表达式(5)的逻辑子句的情况下生成Z1234的双二次项可以表示为Z1234(1-x1)x2(1-x3)x4。在jn=1的情况下,根据q1=x2-x3+x4+1是否等于或大于(k-(3/2))=2.5,可以确定用于针对x1生成的h1 XY的计算所使用的y1是1还是0。因此,y1=f(h1 YX)是与上述y1=x2(1-x3)x4相同的表达式。例如,在x2=1,x3=0并且x4=1的情况下,q1=3并且q1是k-1。因此,y1=1。
图1所示的存储单元11可以存储在上述计算中使用的σj1至σjk。
存储单元11可以存储各种类型的数据,例如当处理单元12执行稍后将描述的处理数据的方法时所使用的计算条件(例如,副本(replica)的数目、针对每个副本设置的温度参数的值、副本交换周期、以及在执行副本交换方法的情况下的计算结束条件)。在处理单元12通过使用软件执行稍后将描述的处理数据的方法中的部分或全部处理的情况下,用于执行处理的程序被存储在存储单元11中。
例如,处理单元12可以通过使用处理器来实现,该处理器是诸如中央处理单元(CPU)、图形处理单元(GPU)或数字信号处理器(DSP)的硬件。替选地,处理单元12可以通过使用诸如专用集成电路(ASIC)或现场可编程门阵列(FPGA)的电子电路来实现。
例如,处理单元12搜索表达式(3)所表示的评价函数的值(能量)变为局部最小值的状态。最优解是具有评价函数的局部最小值之中的最小值的状态。通过改变表达式(3)表示的评价函数的符号,处理单元12可以搜索评价函数的值变为局部最大值的状态(在这种情况下,具有最大值的状态是最优解)
图1示出了由处理单元12执行的部分处理的示例的流程。
这里,假设基于x1至xN的初始值的值被存储在存储单元11中,作为hi XX、hi XY、hj YX、yj和E。
处理单元12从x1至xN中选择其值将被改变的候选状态变量(在下文中称为翻转候选)(步骤S1)。例如,处理单元12随机地或以预定顺序选择翻转候选状态变量。下面描述选择第k项中包括的xjn的情况。
在xjn的值改变的情况下,处理单元12通过使用上述方法基于更新的hj YX的值(=hjn YX)来计算(或更新)hjn XY(步骤S2)。
处理单元12通过使用-Δxjn和hjn XY与基于表达式(7)获得的hi XX(=hjn XX)之和的乘积来计算在xjn的值改变的情况下的评价函数的值的变化量(ΔE)(步骤S3)。
基于ΔE与预定值之间的比较结果,处理单元12确定是否允许xjn的值改变(是启用还是禁用翻转)(步骤S4)。在下文中,将该确定处理称为翻转确定处理。
例如,预定值是基于随机数和温度参数的值获得的噪声值。在例如ΔE小于log(rand)×T的情况下,处理单元12确定允许xjn的值的改变,其中log(rand)×T是基于大于等于0且小于等于1的均匀随机数(rand)和温度参数(T)而获得的噪声值的示例。
在确定翻转被启用的情况下,处理单元12通过改变xjn的值来更新存储在存储单元11中的状态,并且执行由于该改变而更新hi XX、hi XY、hj YX和y的更新处理(步骤S5)。
例如,可以通过使用以下表达式来执行由于xjn的值的改变的hi XX(i=1至N)的更新:hi XX=hi XX+Wi,jnΔxjn。例如,处理单元12读取N×N权重值矩阵W中的jn列中的权重值就足够了。
可以通过确定在步骤S2的处理中计算hjn XY时获得的更新值来执行hj YX和hi XY的更新。
在步骤S5的处理之后或者在步骤S4的处理中确定不启用翻转的情况下,处理单元12重复执行从步骤S1开始的处理,直到满足预定的结束条件。
上述处理的顺序仅仅是示例性的,并且可以适当地改变。
尽管在上面的描述中已经描述了通过从N个状态变量中逐一地选择翻转候选状态变量来执行步骤S2至S6的处理的示例,但是针对多个(例如,所有N个)状态变量,可以并行地执行步骤S2至S4的处理。在这种情况下,当存在其值被允许改变的多个状态变量时,处理单元12随机地或者根据预定规则选择其值要被改变的状态变量以执行步骤S5的更新处理。如上所述的并行处理提高了计算的速度。
在执行模拟退火方法的情况下,处理单元12每次根据预定的温度参数变化计划来减小上述温度参数(T)的值,例如,将翻转确定处理重复执行预定次数。处理单元12输出在翻转确定处理已经被重复执行预定次数的情况下所获得的状态,作为离散优化问题的计算结果(例如,显示在未示出的显示装置上)。处理单元12可以在每次产生状态变量的值的变化时更新由表达式(3)表示的评价函数的值(能量),并且在能量变为直到此时为止的最小能量的情况下使存储单元11保持该能量和该状态。在这种情况下,处理单元12可以输出与在翻转确定处理已被重复执行预定次数之后所存储的最小能量相对应的状态,作为计算结果。
在处理单元12执行副本交换方法的情况下,处理单元12在其中设置不同温度参数值的多个不同副本中执行上述步骤S1至S3的处理。每当翻转确定处理被重复执行预定次数时,处理单元12执行副本交换。例如,处理单元12从多个副本中随机选择两个副本,并且基于两个所选择的副本之间的能量差以及两个所选择的副本之间的温度参数的值的差异,以预定的交换概率在两个所选择的副本之间交换温度参数或状态的值。例如,每当在每个副本中产生状态变量的值的变化,处理单元12更新由表达式(3)表示的评价函数的值(能量),并且在能量变成直到此时为止的最小能量的情况下,处理单元12保持该能量和该状态。处理单元12输出以下状态作为计算结果:该状态对应于在每个副本中上述翻转确定处理已经被重复执行预定次数之后所存储的最小能量之中在所有副本中的最小能量。
利用如上所述的数据处理设备10和处理数据的方法,通过使用基于第k项中包括的状态变量的值获得的辅助变量的值,计算在第k项中包括的状态变量的值改变的情况下第k项的变化量。由于辅助变量不是自变量或者不增加解搜索空间。因此,可以在不增加自变量的数目的情况下计算由较高阶评价函数表示的离散优化问题。
由于状态变量与辅助变量之间的组合由如上所述的系数(表达式(8)的Cjl或表达式(9)的Fij)表示,因此不需要连线等,并且即使当辅助变量的数目增加,也不会出现连线阻塞等问题。
(第二实施方式)
图4是示出根据第二实施方式的数据处理设备的硬件示例的框图。
数据处理设备20例如是计算机,并且包括CPU 21、随机存取存储器(RAM)22、HDD23、GPU 24、输入接口25、介质读取器26和通信接口27。上述装置耦接至总线。
CPU 21是包括执行程序指令的运算电路的处理器。CPU 21将存储在HDD 23中的程序和数据的至少子集加载到RAM 22中,并执行该程序。CPU 21可以包括多个处理器核,或者数据处理设备20可以包括多个处理器。可以通过使用多个处理器或处理器核来并行执行下面要描述的处理。多个处理器(多处理器)的集合可以被称为“处理器”。
RAM 22是易失性半导体存储器,其临时存储由CPU 21执行的程序或者用于CPU 21进行的运算的数据。数据处理设备20可以包括除RAM22的类型之外的类型的存储器,并且可以包括多个存储器。
HDD 23是存储软件程序(诸如操作系统(OS)、中间件和应用软件)和数据的非易失性存储装置。程序的示例包括用于使数据处理设备20执行搜索离散优化问题的解的处理的程序。数据处理设备20可以包括其它类型的存储装置,例如闪存或固态驱动器(SSD),并且可以包括多个非易失性存储装置。
GPU 24根据来自CPU 21的指令将图像输出到耦接至数据处理设备20的显示器24a。作为显示器24a,可以使用阴极射线管(CRT)显示器、液晶显示器(LCD)、等离子显示面板(PDP)、有机电致发光(OEL)显示器等。
输入接口25从与数据处理设备20耦接的输入装置25a获得输入信号,并且将输入信号输出到CPU 21。作为输入装置25a,可以使用指示装置(诸如鼠标、触摸面板、触摸板和轨迹球)、以及键盘、遥控器、按钮开关等。多种类型的输入装置可以耦接至数据处理设备20。
介质读取器26是读取记录在记录介质26a中的程序和数据的读取装置。作为记录介质26a,例如,可以使用磁盘、光盘、磁光(MO)盘、半导体存储器等。磁盘的示例包括软盘(FD)和HDD。光盘的示例包括压缩盘(CD)和数字多功能盘(DVD)。
例如,介质读取器26将从记录介质26a读取的程序或数据复制到诸如RAM 22或HDD23的另一记录介质。例如,读取的程序由CPU 21执行。记录介质26a可以是便携式记录介质,并且在某些情况下,用于分发程序和数据。记录介质26a和HDD 23可以称为计算机可读记录介质。
通信接口27是耦接至网络27a并且经由网络27a与其它信息处理装置通信的接口。通信接口27可以是经由电缆耦接至诸如交换机的通信装置的有线通信接口,或者经由无线链路耦接至基站的无线通信接口。
接下来,描述数据处理设备20的功能和处理过程。
图5是示出数据处理设备的功能示例的框图。
数据处理设备20包括输入单元30、控制单元31、存储单元32、搜索单元33和输出单元34。
输入单元30、控制单元31、搜索单元33和输出单元34具有根据第一实施方式的数据处理设备10的处理单元12的功能。输入单元30、控制单元31、搜索单元33和输出单元34可以通过使用例如由CPU 21执行的程序模块或者CPU 21中的存储区域(寄存器或高速缓冲存储器)来实现。存储单元32具有根据第一实施方式的数据处理设备10的存储单元11的功能。存储单元32可以通过使用例如在RAM 22或HDD 23中保留的存储区域来实现。
例如,输入单元30接受状态变量(x1至xN)的初始值、问题信息和计算条件的输入。例如,除了表达式(3)中所示的Z<j1...jk>、权重值(Wij)、偏差系数(bi)以外,问题信息还包括表达式(8)中所示的系数(Cjl、dj)。问题信息可以包括Fij,Fij是通过将上述的Z<j1...jk>乘以σj1至σjk而获得的值。例如,计算条件的示例包括在执行副本交换方法的情况下的副本数目、副本交换周期、针对每个副本设置的温度参数的值,以及在执行模拟退火方法的情况下的温度参数改变计划、计算结束条件等。
这些信息可以由操作输入装置25a的用户输入,或者经由记录介质26a或网络27a输入。
基于计算条件等,控制单元31控制数据处理设备20中的单元,以使这些单元执行稍后描述的处理。
存储单元32存储xl至xN和问题信息的初始值。存储单元32可以存储各种类型的信息,例如计算条件。
搜索单元33包括初始值计算单元33a、h&y更新和保持单元33b、翻转候选变量选择单元33c、Δx计算单元33d、ΔE计算单元33e和E更新和保持单元33f。搜索单元33还包括翻转确定单元33g、状态保持单元33h、转换目标状态计算单元33i和状态更新单元33j。
初始值计算单元33a读取存储单元32中存储的xl至xN、bi、Cjk和dj的初始值,并且基于这些值,通过使用表达式(7)和(8)计算hi XX和hj YX的初始值。此外,初始值计算单元33a通过使用以下表达式根据hj YX的初始值来计算yj的初始值:yj=f(hj YX)。
此外,初始值计算单元33a读取例如存储在存储单元32中的Fij,并且基于计算的yj和Fij的初始值通过使用表达式(6)来计算hi XY的初始值。
h&y更新和保持单元33b更新hi XX、hj YX、hi XY和yj并且保持它们的值。
由于xjn的值的变化而更新的hi XX的值可以由以下表达式表示:hi XX=hi XX+Wi,jnΔxjn。由于xjn的值的变化而更新的hj YX的值可以用以下表达式表示:hj YX=hj YX+Cj,jnΔxjn。由于xjn的值的变化而更新的hj XY的值可以由以下表达式表示:hi XY=hi XY+FijΔyj。通过使用表达式Δyj=f(hj YX)-yj,使用hj YX的更新值来计算Δyj。
翻转候选变量选择单元33c选择翻转候选状态变量。例如,翻转候选变量选择单元33c随机地或以预定顺序选择翻转候选状态变量。翻转候选变量选择单元33c输出所选择的翻转候选状态变量的标识号(1至N)。
Δx计算单元33d计算所选择的翻转候选状态变量的值的变化量。例如,当翻转候选状态变量为xjn时,在xjn从1变为0的情况下,Δxjn变为-1,在状态变量xjn从0变为1的情况下,Δxjn变为1。
ΔE计算单元33e基于两种类型的局部字段的总和与翻转候选状态变量的值的变化量的乘积来计算在翻转候选状态变量的值改变的情况下的ΔE。例如,当翻转候选状态变量为xjn时,在xjn的值改变的情况下,通过使用-Δxjn与hjn XY和hjn XX之和的乘积来计算ΔE。
在翻转确定单元33g允许翻转候选状态变量的值的改变的情况下,E更新和保持单元33f基于由ΔE计算单元33e计算的ΔE来更新作为表达式(3)所示的评价函数的值的E并且保持E。E更新和保持单元33f可以保持到此时为止已经获得的E中最小的E。
基于ΔE与预定值之间的比较结果,翻转确定单元33g执行用于确定是否允许翻转候选状态变量的值的改变的翻转确定处理。预定值是例如基于随机数和温度参数的值获得的噪声值。在例如ΔE小于log(rand)×T的情况下,翻转确定单元33g确定允许翻转候选状态变量的值的变化,log(rand)×T是基于大于等于0且小于等于1的均匀随机数(rand)以及温度参数(T)而获得的噪声值的示例。
状态保持单元33h保持N个状态变量(x1至xN)的值。
转变目标状态计算单元33i计算转变目标状态,在该转变目标状态中,x1至xN中的由翻转候选变量选择单元33c输出的标识号的状态变量的值被改变。
在翻转确定单元33g确定允许状态变量的值的改变的情况下,状态更新单元33j使用由转变目标状态计算单元33i计算的转变目标状态来更新由状态保持单元33h保持的状态。
在控制单元31的控制下,搜索单元33通过重复执行如上所述的翻转确定处理和每个参数的更新处理,来搜索评价函数的值(能量)变为局部最小值的状态。
输出单元34输出搜索单元33的搜索结果(计算结果)。例如,在执行副本交换方法的情况下,输出单元34输出以下状态作为计算结果:该状态对应于在每个副本中上述翻转确定处理已经重复执行预定次数之后所存储的最小能量之中的在所有副本中的最小能量。
例如,输出单元34可以将计算结果输出并显示在显示器24a上,将计算结果经由网络27a发送到其它信息处理装置,或者将计算结果存储在外部存储装置中。
图6示出了存储在存储单元中的矩阵信息的示例。
在表达式(3)的评价函数中包括的状态变量的数目和辅助变量的数目分别为N和M的情况下,Wij是N×N矩阵,表达式(8)中的Cjl是M×N矩阵,表达式(9)中的Fij是N×M矩阵。这里,Wij=Wji。根据本实施方式,假设辅助变量之间的权重值为0。
在下文中,将描述数据处理设备20的处理过程(处理数据的方法)。下面描述通过使用副本交换方法执行搜索的示例。
图7是示出处理数据的方法的示例的流程的流程图。
步骤S10:输入单元30接受x1至xN的初始值、上述问题信息和计算条件的输入。例如,输入的x1至xN的初始值和问题信息被存储在存储单元32中,并且输入的计算条件被提供给控制单元31。
步骤S11:对每个副本执行初始化处理。稍后将描述初始化处理的过程的示例。
对于每个副本,控制单元31使搜索单元33执行以下步骤S12至S16的处理。
步骤S12:搜索单元33的翻转候选变量选择单元33c选择其值将被改变(更新)的候选状态变量。
步骤S13:ΔE计算单元33e计算ΔE。基于两种类型的局部字段之和与翻转候选状态变量值的变化量的乘积,计算在翻转候选状态变量值改变情况下的ΔE。例如,当翻转候选状态变量是xjn时,ΔE计算单元33e在xjn的值改变的情况下通过使用-Δxjn与hjn XY和hjn XX之和的乘积来计算ΔE。
步骤S14:翻转确定单元33g基于ΔE与预定值之间的比较结果执行翻转确定。在翻转确定单元33g确定允许状态变量的值的改变的情况下(在“翻转启用”的情况下),执行步骤S15的处理。在翻转确定单元33g确定不允许状态变量的值的改变的情况下(在“翻转禁用”的情况下),执行步骤S16的处理。
步骤S15:执行更新处理。在步骤S15的处理中,由状态更新单元33j更新状态,由h&y更新和保持单元33b更新hi XX、hj YX、hi XY、yj,由E更新和保持单元33f更新E。稍后将描述步骤S15的处理过程的示例。
步骤S16:控制单元31确定处理是否满足预定的结束条件。例如,在搜索单元33执行翻转确定处理的次数已经达到翻转确定的最大次数的情况下,控制单元31确定满足结束条件。在确定处理满足预定结束条件的情况下,执行步骤S19的处理。在确定处理不满足预定结束条件的情况下,执行步骤S17的处理。
步骤S17:控制单元31确定翻转确定的次数是否指示副本交换周期。例如,在翻转确定的次数除以表示副本交换周期的值的余数为0的情况下,控制单元31确定翻转确定的次数指示副本交换周期。
在确定翻转确定的次数指示副本交换周期的情况下,控制单元31执行步骤S18的处理。在确定翻转确定的次数不指示副本交换周期的情况下,控制单元31使搜索单元33重复从步骤S12开始的处理。
步骤S18:控制单元31执行副本交换处理。例如,控制单元31从多个副本中随机选择两个副本,并且基于所选择的两个副本之间的能量差以及所选择的两个副本之间温度参数的值的差,以预定的交换概率在所选择的两个副本之间交换设置的温度参数或状态的值。在步骤S18的处理之后,控制单元31使搜索单元33重复从步骤S12开始的处理。
步骤S19:输出单元34输出计算结果。例如,输出单元34将以下状态作为计算结果输出:该状态对应于存储在副本中的最小能量之中的在所有副本中的最小能量。例如,输出单元34可以将计算结果输出并显示在显示器24a上,将计算结果经由网络27a发送到其它信息处理装置,或者将计算结果存储在外部存储装置中。
接下来,描述上述步骤S11的初始化处理的过程的示例。
图8是示出初始化处理的过程的示例的流程的流程图。
假设E被初始化为表达式(3)的E0(例如,0)。
首先,初始值计算单元33a针对从1至N的每个i以及从1至M的每个j的hi XX、hi XY和hj YX,设置hi XX=bi、hi XY=0以及hj YX=dj(步骤S20)。作为dj,例如,在辅助变量yj是k字段组合状态变量(k≥3)的辅助变量的情况下,使用-(k-3/2)的值。值yj通过使用dj来确定(参见上述图3)。
初始值计算单元33a通过使用表达式yj=f(hj YX)计算从1至M的每个j的yj(步骤S21)。在步骤S21的处理之后,初始值计算单元33a通过使用从1至M的每个j的Fijyj和表达式hi XY=hi XY+Fijyj来更新从1至N的每个i的hi XY(步骤S22)。
然后,初始值计算单元33a将表示状态变量的标识号的变量k设置为k=1(步骤S23),并且通过使用以下表达式更新E:E=E-xk 0(hk XX+hk XY)(步骤S24)。此外,初始值计算单元33a通过使用以下表达式来更新从1至N的每个i的hi XX:hi XX=hi XX+Wikxk 0(步骤S25)。这里,xk 0表示在标识号=k的状态变量的初始值
在步骤S25的处理之后,初始值计算单元33a确定k=N是否成立(步骤S26)。在确定k=N不成立的情况下,设置k=k+1(步骤S27),并且重复从步骤S24开始的处理。
在确定k=N成立的情况下,初始值计算单元33a将指示辅助变量的标识号的变量j设置为j=1(步骤S28)。在下文中假设辅助变量的数目为M。
通过使用表达式hj YX=hj YX+Cjkxk 0,初始值计算单元33a通过使用从1至N的每个k的Cjkxk 0来更新hj YX(步骤S29)。例如,与第k项中未包括的状态变量相关的Cjk为0,与第k项中包括的状态变量相关的Cjk为+1或-1(图1中的σj1至σjk)。在第k项中包括的状态变量中,与作为正字面量的状态变量相关的Cjk为+1,与作为负字面量的状态变量相关的Cjk为-1。
初始值计算单元33a通过使用表达式Δyj=f(hj YX)-yj计算Δyj(步骤S30),并且通过使用表达式hi XY=hi XY+FijΔyj来更新从1至N的每个i的hi XY(步骤S31)。表达式(3)中的Cji和Z<j1...jk>的乘积表示Fij。由于与第k项中未包括的状态变量相关的Cji为0,因此Fij也为0。
在步骤S31的处理之后,初始值计算单元33a确定j=M是否成立(步骤S32)。在确定j=M不成立的情况下,设置j=j+1(步骤S33),并且重复从步骤S29开始的处理。
在确定j=M成立的情况下,初始值计算单元33a结束初始化处理。
接下来,描述图7所示的步骤S15的更新处理的过程的示例。
图9是示出更新处理的过程的示例的流程的流程图。在图9中,示出了允许xjn的值的改变的情况下的示例。
状态更新单元33j使用由转变目标状态计算单元33i计算的转变目标状态来更新由状态保持单元33h保持的状态。更新的状态是改变xjn的值以满足xjn=xjn+Δxjn的状态。E更新和保持单元33f通过使用以下表达式来更新E:E=E-Δxjn(hjn XX+hjn XY)(步骤S40)。这里,-Δxjn(hjn XX+hjn XY)=ΔE并且从ΔE计算单元33e提供。
h&y更新和保持单元33b通过使用以下表达式来更新从1到N的每个i的hi XX:hi XX=hi XX+Wi,jnΔxjn(步骤S41)。另外,h&y更新和保持单元33b设置j=1(步骤S42),并且用由表达式hj YX=hj YX+Cj,jnΔxjn表示的(在步骤S13中计算ΔE时计算的)hj YX的更新值来更新hj YX。另外,h&y更新和保持单元33b用由表达式Δyj=f(hj YX)-yj表示的(在步骤S13中计算ΔE时计算的)Δyj的更新值来更新Δyj(步骤S43)。通过在更新前使用hj YX,yj可以表示为yj=f(hj YX)。
然后,h&y更新和保持单元33b通过使用以下表达式来计算由于xjn的值的变化而导致的从1至N的每个i的hi XY的更新值:hi XY=hi XY+FijΔyj(步骤S44)。
在步骤S44的处理之后,h&y更新和保持单元33b确定j=M是否成立(步骤S45)。在确定j=M不成立的情况下,设置j=j+1(步骤S46),并且重复从步骤S43开始的处理。
在确定j=M的情况下,更新处理结束。
图7至图9中所示的过程的顺序仅仅是示例性的,并且可以适当地改变。
利用如上所述的数据处理设备20和处理数据的方法,可以获得与根据第一实施方式的数据处理设备10和处理数据的方法类似的效果。例如,可以在不增加自变量的数目的情况下计算由较较高阶评价函数表示的离散优化问题。
如已经描述的,可以通过使数据处理设备20执行程序来实现上述处理内容。
程序可以被记录在计算机可读记录介质(例如,记录介质26a)上。例如,可以使用磁盘、光盘、磁光盘、半导体存储器等作为记录介质。磁盘的示例包括FD和HDD。光盘的示例包括CD、可记录(R)/可重写(RW)CD、DVD和DVD-R/RW。程序可以被记录在便携式记录介质上以进行分发。在这种情况下,可以将程序从便携式记录介质复制到另外的记录介质(例如,HDD 23)以执行。
(第三实施方式)
图10示出了根据第三实施方式的数据处理设备的示例。在图10中,与图4所示的元件相同的元件由相同的附图标记表示。
根据第三实施方式的数据处理设备40包括耦接至总线的加速器卡41。
加速器卡41是搜索离散优化问题的解的硬件加速器。加速器卡41包括FPGA 41a和DRAM 41b。
在根据第三实施方式的数据处理设备40中,FPGA41a执行例如图5所示的控制单元31和搜索单元35的处理。
DRAM 41b用作图5所示的存储单元32。
可以设置多个加速器卡41。在这种情况下,例如,可以并行执行副本的处理(例如,图7所示的步骤S12至S16的处理)。
图11示出了FPGA的示例的配置。
FPGA 41a包括控制器50、状态更新和保持电路51、乘法器52和53、hXX更新和保持电路54、hYX更新和保持电路55、y计算和保持电路56、E更新和保持电路57、乘法器59、hXY更新和保持电路60和加法电路61。
控制器50控制FPGA 41a的部分。例如,如图11所示,控制器50生成并输出用于确定状态更新和保持电路51以及y计算和保持电路56的操作时序的时钟信号(clkx,clky)。
控制器50具有选择翻转候选状态变量的功能,以及基于由加法电路61输出的两种类型的局部字段的相加结果来确定是否允许翻转候选状态变量的值的改变的功能。例如,在选择xjn作为翻转候选状态变量的情况下,控制器50输出标识号=jn。基于加法电路61输出的相加结果hjn XX+hjn XY以及由状态更新和保持电路51输出的Δxjn,控制器50计算ΔE=-Δxjn(hjn XX+hjn XY)。控制器50基于ΔE与噪声值之间的比较结果来确定是否允许xjn的值的改变,该噪声值是基于随机数和温度参数的值获得的。
状态更新和保持电路51包括例如寄存器、静态随机存取存储器(SRAM)等,并且保持N个状态变量xi(i=1至N)的值。N个状态变量xi的初始值xi 0从DRAM 41b中被读取,并且被保持在状态更新和保持电路51中。
状态更新和保持电路51在控制器50指定的翻转候选状态变量的值改变的情况下输出变化量。例如,在将jn指定为状态变量的标识号的情况下,状态更新和保持电路51输出xjn的变化量的Δxjn。
在状态更新和保持电路51从控制器50接收到指示允许翻转候选状态变量的值的改变的信号的情况下,状态更新和保持电路51通过改变状态变量的值来更新状态。
乘法器52输出状态变量的变化量和以下权重值的乘积:存储在DRAM 41b中的N×N个权重值Wij的矩阵W中的与翻转候选状态变量相关的行或列中的权重值。例如,在翻转候选状态变量是xjn的情况下,从DRAM 41b中读取矩阵W中的jn列中的N个权重值(Wi,jn),并且输出Δxjn与Wi,jn的乘积。
乘法器53输出状态变量的变化量与以下系数的乘积:存储在DRAM41b中的M×N个系数Cjk的矩阵C中的与翻转候选状态变量相关的列中的系数。例如,在翻转候选状态变量是xjn的情况下,从DRAM 41b中读取矩阵C中的jn列中的M个系数(Cj,jn),并且输出Δxjn与Cj,jn的乘积。
hXX更新和保持电路54包括例如寄存器、SRAM等,保持N个局部字段hi XX,并且通过将由乘法器52输出的N个乘积中的每一个乘积与N个局部字段hi XX中的对应hi XX相加来计算N个局部字段hi XX的更新值。N个局部字段hi XX的初始值bi从DRAM 41b中被读取,并且被保持在hXX更新和保持电路54中。
例如,hYX更新和保持电路55包括寄存器、SRAM等,并且保持与辅助变量的数目对应的M个局部字段hj YX。hYX更新和保持电路55通过将乘法器53输出的M个乘积中的每一个乘积与M个局部字段hj YX中的对应hj YX相加来计算M个局部字段hj YX的更新值。M个局部字段hj YX的初始值dj从DRAM 41b被读取,并且被保持在hYX更新和保持电路55中。
y计算和保持电路56计算M个辅助变量yj以及与先前计算的yj的差(Δyj)。如上所述,yj通过使用表达式yj=f(hj YX)来确定。例如,y计算和保持电路56根据由表达式(10)表示的qjn的值与-dj(例如,如上所述的k-3/2)之间的比较结果,输出作为0或1的值的yjn。
例如,y计算和保持电路56包括寄存器、SRAM等,并且保持已经计算出的M个辅助变量yj。
例如,E更新和保持电路57包括寄存器、SRAM等,保持表达式(1)所示的评价函数的值E,并且计算E的更新值。例如,在允许xjn的值的改变的情况下,通过以下表达式获得E的更新值:E=E-(hjn XX+hjn XY)Δxjn。作为E的初始值,在E更新和保持电路57中设置表达式(3)的E0。
乘法器59输出从DRAM 41b读取的Δyj与Fij的乘积。
hXY更新和保持电路60例如包括寄存器、SRAM等,保持N个局部字段hi XY,并且通过将由乘法器59输出的针对每个j的FijΔyj与N个局部字段hi XY中的对应hi XY相加来计算N个局部字段hi XY的更新值。在hXY更新和保持电路60中设置0,作为N个局部字段hi XY的初始值。
加法电路61输出由hXX更新和保持电路54保持的局部字段与在hXX更新和保持电路60中保持的局部字段的相加结果。相加结果用于控制器50和E更新和保持电路57以计算ΔE。在xjn的值改变的情况下,加法电路61输出如图1所示的hjn XX+hjn XY。
同样通过如上所述的根据第三实施方式的数据处理设备40,通过使用具有如图11所示的电路配置的FPGA 41a,实现了与根据第一实施方式的数据处理设备10的处理单元12的功能类似的功能,并且获得了与根据第一实施方式的数据处理设备10的效果相似的效果。
(第四实施方式)
根据上述实施方式的示例,假设如图2所示,作为单个位的值0或1的k个辅助变量与在第k项中包括的数量k个状态变量(xj1至xjk)对应地使用。然而,如下所述,当辅助变量是具有两位或更多位值的变量时,将单个辅助变量用于在第k项中包括的k个状态变量就足够了。
图12示出了使用具有两位值的辅助变量的示例。在图12中,具有两位值的辅助变量由qm表示。
当xj1至xjk的k个字面量之和为k时,确定qm为2。当该和为k-1时,确定qm为1。当该和为k-2或更小时,确定qm为0。在图12所示的示例中,xj1至xjk的k个字面量都是正字面量。
例如,计算为σj1至σjk=1,dm=-(k-2)的hj YX可以被设置为qm。例如,在这种情况下,qm=f(hj YX)=hj YX。
由图12中所示的转换单元70j1,...,70jn,...,70jk根据qm的值对通过qm针对xj1至xjk生成的局部字段(hj1 XY至hjk XY)进行转换。
例如,在qm为2的情况下,不满足由第k项表示的约束条件,因此,转换单元70jn输出Z<j1...jk>作为hjn XY。在qm为1的情况下,当xjn的字面量为0时,在值改变的情况下不满足约束条件,因此,转换单元70jn输出Z<j1...jk>作为hjn XY。当xjn的字面量为1时,在值改变的情况下满足约束条件,因此,转换单元70jn输出0作为hjn XY。当xjn的值为任意值时,在qm为0的情况下,改变之后满足约束条件,因此,转换单元70jn输出0作为hjn XY。
例如,当转换单元70j1至70jk被并入到图5所示的h&y更新和保持单元33b中或者作为逻辑电路被并入图11所示的hXY更新和保持电路60时,如上所述的转换单元70j1至70jk可以应用于数据处理设备20和40。
当使用如上所述的技术时,可以减少辅助变量的数目。例如,当形成k字段组合的状态变量组的数目为mk时,辅助变量的数目可以为mk。
(第五实施方式)
尽管在上述实施方式的示例中已经描述了状态变量(x1至xN)是具有0或1的值的二进制变量,但是状态变量(x1至xN)可以是具有-1或1的值的自旋变量。
图13示出了其中自旋变量被用作状态变量的示例。
形成k字段组合的xj1至xjk与作为辅助变量的yj1至yjk之间的组合关系与图2中所示的相同。
在自旋变量被用作状态变量的情况下,当Δxi的改变被执行为Δxi=-xi-xi=-2xi时,可以执行与在使用二进制变量的情况下的计算类似的在更新能量和hi XX时的计算(参见图9所示的步骤S40和S41)。
然而,用于计算hi XY的f(hj YX)与使用二进制变量的情况不同。由于在自旋变量中包括符号,因此例如,当作为辅助变量的yjn为1时针对在第k项中包括的状态变量xjn生成的hjn XY可以由下面的表达式(11)表示,而不使用表示符号的系数(对应于σj1至σjk=1)。
在表达式(11)中,当xj1至xjk的状态变量中除了xjn之外的具有值-1的状态变量的数目是奇数时使用-Z<j1...jk>,并且在该数目为偶数时使用Z<j1...jk>。为了生成这样的hjn XY,将下面的表达式(12)用作yjn=f(hjn YX)中的hjn YX就足够了。
在k是奇数的情况下,使用表达式(12)的上侧的表达式,而在k是偶数的情况下,使用表达式(12)的下侧的表达式。关于f(hjn YX),因为当hjn YX为偶数时,xj1至xjk中除xjn之外的值为-1的状态变量的数目为奇数,所以f(hjn YX)成为输出-1的函数,并且当hjn YX为奇数时,f(hjn YX)成为输出+1的函数。
当使用这样的yjn=f(hjn YX)时,hjn XY可以表示为hjn XY=Z<j1...jk>yjn。
当如上所述改变计算hjn XY等的方法时,可以将自旋变量作为状态变量来处理。当能够处理自旋变量时,例如,可以获得以下效果。
在最初通过使用自旋变量来公式化的问题被转换为使用二进制变量的问题的情况下,系数的数目可能会增加。例如,在将基于自旋变量的三次评价函数转换为基于二进制变量的评价函数的情况下,由于通过该转换生成二次项和一次项,因此系数的数目可能会增加。
由于转换以及用于存储系数的存储器容量,直接处理自旋变量可以减少系数的增加。
通过使用自旋变量来公式化的问题的示例包括例如与量子化学计算有关的问题。在量子化学计算中,当电子系统的基态的哈密顿量用自旋变量展开时,获得包括较高阶自旋乘积的形式。
(第六实施方式)
与第四实施方式的情况一样,即使在使用自旋变量的情况下,用于第k项中包括的k个状态变量的辅助变量的数目也可以是1。
由于xjl是表达式(11)中的自旋变量并且xjl 2=1,因此表达式(11)可以被变换为如下表达式(13)所示。
例如,可以通过生成作为一个辅助变量的qm并将qm乘以Z<j1...jk>xjn来计算xjn的hjn XY。在设置了初始值(+1或-1)之后,每次xj1至xjk的任何值改变时,通过反转符号来更新qm。当xjn的值改变时,hjn XY不变,针对xjn以外的xj1至xjk的hj1 XY至hjk XY改变,并且改变的部分是Z<j1...jk>xj1Δqm至Z<j1...jk>xjkΔqm。
图14示出了如下示例:用于作为第k项中包括的k个自旋变量的状态变量的辅助变量的数目是1。
通过使用图14中所示的乘法单元80j1,...,80jn,...,80jk将Z<j1...jk>qm乘以xj1至xjk的值,获得通过qm针对xj1至xjk生成的局部字段(hj1 XY至hjk XY)。
例如,当将如上所述的乘法单元80j1至80jk并入图5所示的h&y更新和保持单元33b中或者作为逻辑电路(乘法器)并入图11所示的hXY更新和保持电路60时,乘法单元80j1至80jk可以应用于数据处理设备20和40。
当使用如上所述的技术时,辅助变量可以被生成为用于一个第k阶组合的多个输入和多个输出的神经元。当从存储器(例如,存储单元32或DRAM 41b)读取一次在第k项中包括的状态变量的标识号(j1至jk)和Z<j1...jk>的集合时,可以计算针对xj1至xjk的局部字段(hj1 XY至hjk XY)。
(第七实施方式)
尽管如图6所示在上述实施方式的示例中假设辅助变量(例如图2中所示的yj1至yjk)在单层中使用并且辅助变量之间的权重值为0,但是辅助变量可以如下所述用于多个层。
图15示出了在多个层中使用多个辅助变量的示例。在图15所示的示例中,y1至yM的辅助变量形成了多层网络。
通过设置初始值和权重值,y1至yM还可以用作使包括在上述第k项中的状态变量生成与第k项相关的局部字段的单层辅助变量组(或单个辅助变量)。
此外,如图15所示,当在多个层中形成y1至yM并且设置了y1至yM之间的权重值时,不仅可以处理较高阶项而且可以处理更通常的成本函数。
(计算示例)
图16示出了计算结果的示例。
图16示出了通过使用如第二实施方式中描述的数据处理设备20计算具有已知解的SAT型离散优化问题(图16中的七个实例)的示例。在每种情况下,包括在评价函数中的状态变量的数目与较高阶项的逻辑子句的数目不同。根据图16所示的计算结果的示例,满足所有七个实例中的所有逻辑子句,并且通过“求解时间(秒)”指示的时间量获得解。
尽管上面已经基于实施方式描述了根据本公开内容的数据处理设备、程序和处理数据的方法的方面,但是实施方式仅仅是示例性的,并且不限于以上描述。
Claims (9)
1.一种数据处理设备,用于搜索使包括多个状态变量的评价函数的值变为局部最小值或局部最大值的所述多个状态变量的值的组合,所述数据处理设备包括:
存储装置,其被配置成存储第一系数,所述第一系数指示所述评价函数的第k阶项中包括的所述多个状态变量中的k个状态变量之间的相互作用的大小,k是大于或等于3的整数;以及
处理器,其被配置成执行处理,所述处理包括:
基于从所述存储装置读取的所述第一系数和第一变量的值,计算指示在所述k个状态变量中的第一状态变量的值变化的情况下所述第k阶项的变化量的第一局部字段,所述第一变量的值是基于所述k个状态变量的值以及分别表示所述k个状态变量对所述第一变量的影响的多个第二系数得到的值;以及
基于比较结果来确定是否允许所述第一状态变量的值的变化,所述比较结果通过将所述第一局部字段和第二局部字段之和与所述第一状态变量的变化量的乘积与预定值进行比较而获得,所述第二局部字段指示在所述第一状态变量的值变化的情况下所述评价函数的二次项和较低阶项的变化量。
2.根据权利要求1所述的数据处理设备,其中,
所述多个第二系数为-1或1。
3.根据权利要求1或2所述的数据处理设备,其中,
针对所述k个状态变量中的每个状态变量确定所述第一变量的值,并且其中,
针对所述第一状态变量确定的所述第一变量的值基于所述k个状态变量中除所述第一状态变量之外的第二状态变量的值与所述多个第二系数中与所述第二状态变量相关的第二系数的乘积的总和来确定。
4.根据权利要求3所述的数据处理设备,其中,
所述第一局部字段是所述多个第二系数中与所述第一状态变量相关的第三系数、针对所述第一状态变量确定的所述第一变量的值与所述第一系数的乘积。
5.根据权利要求1或2所述的数据处理设备,其中,
确定所述k个状态变量共同的所述第一变量的值,其中,
当所述k个状态变量的k个字面量之和为k时,针对所述第一状态变量确定的所述第一变量的值被确定为2,
当所述k个状态变量的所述k个字面量之和为k-1时,针对所述第一状态变量确定的所述第一变量的值被确定为1,并且
当所述k个状态变量的所述k个字面量之和小于或等于k-2时,针对所述第一状态变量确定的所述第一变量的值被确定为0,并且其中,
当所述第一变量的值为2时,所述处理单元将所述第一局部字段设置为所述第一系数,
当所述第一变量的值为1并且所述第一状态变量的字面量为0时,所述处理单元将所述第一局部字段设置为所述第一系数,
当所述第一变量的值为1并且所述第一状态变量的字面量为1时,所述处理单元将所述第一局部字段设置为0,并且
当所述第一变量的值为0时,所述处理单元将所述第一局部字段设置为0。
6.根据权利要求1所述的数据处理设备,其中,
所述多个状态变量中的每个状态变量的值为-1或1,并且所述第一变量的值为-1或1,其中,
所述处理单元针对所述k个状态变量中的每个状态变量确定所述第一变量的值,并且其中,
针对所述第一状态变量的所述第一局部字段是所述k个状态变量中除所述第一状态变量以外的第二状态变量的值的无限乘积、所述第一系数和所述第一变量的乘积。
7.根据权利要求1所述的数据处理设备,其中,
所述多个状态变量中的每个状态变量的值为-1或1,并且所述第一变量的值为-1或1,并且其中,
所述处理单元:
使用所述k个状态变量的值的无限乘积来计算所述k个状态变量共同的所述第一变量的值,以及
使用所述第一变量的值、所述第一系数和所述第一状态变量的值的乘积来计算针对所述第一状态变量的所述第一局部字段。
8.一种存储程序的非暂态计算机可读记录介质,所述程序搜索使包括多个状态变量的评价函数的值变为局部最小值或局部最大值的所述多个状态变量的值的组合,所述程序包括指令,当由计算机执行所述程序时,所述指令使所述计算机执行处理,所述处理包括:
从存储第一系数的存储装置获得所述第一系数,所述第一系数表示在所述评价函数的第k阶项中包括的所述多个状态变量中的k个状态变量之间的交互作用的大小,k是大于或等于3的整数;
基于从所述存储装置读取的所述第一系数和第一变量的值,计算指示在所述k个状态变量中的第一状态变量的值变化的情况下所述第k阶项的变化量的第一局部字段,所述第一变量的值是基于所述k个状态变量的值以及分别表示所述k个状态变量对所述第一变量的影响的多个第二系数得到的值;以及
基于比较结果来确定是否允许所述第一状态变量的值的变化,所述比较结果通过将所述第一局部字段和第二局部字段之和与所述第一状态变量的变化量的乘积与预定值进行比较而获得,所述第二局部字段指示在所述第一状态变量的值变化的情况下所述评价函数的二次项和较低阶项的变化量。
9.一种计算机实现的方法,用于搜索使包括多个状态变量的评价函数的值变为局部最小值或局部最大值的所述多个状态变量的值的组合,所述方法包括:
从存储第一系数的存储装置获得所述第一系数,所述第一系数表示在所述评价函数的第k阶项中包括的所述多个状态变量中的k个状态变量之间的交互作用的大小,k是大于或等于3的整数;
基于从所述存储装置读取的所述第一系数和第一变量的值,计算指示在所述k个状态变量中的第一状态变量的值变化的情况下所述第k阶项的变化量的第一局部字段,所述第一变量的值是基于所述k个状态变量的值以及分别表示所述k个状态变量对所述第一变量的影响的多个第二系数得到的值;以及
基于比较结果来确定是否允许所述第一状态变量的值的变化,所述比较结果通过将所述第一局部字段和第二局部字段之和与所述第一状态变量的变化量的乘积与预定值进行比较而获得,所述第二局部字段指示在所述第一状态变量的值变化的情况下所述评价函数的二次项和较低阶项的变化量。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2021-102484 | 2021-06-21 | ||
JP2021102484A JP2023001644A (ja) | 2021-06-21 | 2021-06-21 | データ処理装置、プログラム及びデータ処理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115577824A true CN115577824A (zh) | 2023-01-06 |
Family
ID=81984653
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210663223.0A Pending CN115577824A (zh) | 2021-06-21 | 2022-06-13 | 数据处理设备、存储程序的计算机可读记录介质和方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20220405347A1 (zh) |
EP (1) | EP4116886A1 (zh) |
JP (1) | JP2023001644A (zh) |
CN (1) | CN115577824A (zh) |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7323777B2 (ja) | 2019-06-18 | 2023-08-09 | 富士通株式会社 | 最適化装置および最適化方法 |
JP7248907B2 (ja) * | 2019-08-14 | 2023-03-30 | 富士通株式会社 | 最適化装置および最適化装置の制御方法 |
-
2021
- 2021-06-21 JP JP2021102484A patent/JP2023001644A/ja active Pending
-
2022
- 2022-06-08 EP EP22177784.0A patent/EP4116886A1/en active Pending
- 2022-06-13 CN CN202210663223.0A patent/CN115577824A/zh active Pending
- 2022-06-14 US US17/839,529 patent/US20220405347A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
JP2023001644A (ja) | 2023-01-06 |
EP4116886A1 (en) | 2023-01-11 |
US20220405347A1 (en) | 2022-12-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Burgholzer et al. | Advanced equivalence checking for quantum circuits | |
US20180075342A1 (en) | Information processing apparatus, ising unit, and information processing apparatus control method | |
JP7071638B2 (ja) | 最適化装置、最適化装置の制御方法及び最適化装置の制御プログラム | |
JP7206476B2 (ja) | 最適化装置、最適化装置の制御方法及び最適化装置の制御プログラム | |
US11551062B2 (en) | Optimization apparatus and control method thereof | |
JP7093009B2 (ja) | 最適化装置、最適化装置の制御方法及び最適化装置の制御プログラム | |
US11372034B2 (en) | Information processing device | |
JP6923790B2 (ja) | 最適化装置及び最適化装置の制御方法 | |
Zou et al. | Teaching–learning-based optimization with differential and repulsion learning for global optimization and nonlinear modeling | |
CN112149269A (zh) | 优化设备、优化设备的控制方法和记录介质 | |
US20210174182A1 (en) | Mtj-based hardware synapse implementation for binary and ternary deep neural networks | |
Hardas et al. | Development of a genetic algorithm for component placement sequence optimization in printed circuit board assembly | |
CN115577824A (zh) | 数据处理设备、存储程序的计算机可读记录介质和方法 | |
US11886780B2 (en) | Optimization device, optimization device control method, and computer-readable recording medium recording optimization device control program | |
JP7242595B2 (ja) | 学習装置、推論装置、学習方法及び推論方法 | |
EP4105843A1 (en) | Data processing apparatus, computer-readable recording medium storing program, and method of procesing data | |
EP4254271A1 (en) | Data processing apparatus, program, and data processing method | |
EP4105837A1 (en) | Computer program, data processing apparatus, and data processing method | |
EP4131084A1 (en) | Program, data processing method, and data processing apparatus | |
EP4099227A1 (en) | Data processing apparatus, data processing method, and program | |
US20240111833A1 (en) | Data processing apparatus and data processing method | |
US20240012726A1 (en) | Methods and electronic device for repairing memory element in memory device | |
Genssler | Hyperdimensional Computing for Chip Testing–Towards Learning Fast from Little Data | |
Lee et al. | Hardware and Software Co-Simulation Methodology for Processing-in-Memory Bitcell application | |
TW202405687A (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 |