信息处理装置、信息处理方法和程序
文献发布时间:2023-06-19 12:22:51
技术领域
本文讨论的实施方式涉及信息处理装置、信息处理方法和程序。
背景技术
存在如下信息处理装置,其通过用伊辛(Ising)模型替代诺依曼型计算机不善于的多变量优化问题来多变量优化问题,伊辛模型是表示磁体的自旋行为的模型。信息处理装置例如通过诸如模拟退火方法或副本交换方法的马尔可夫链蒙特卡罗方法来搜索其中与问题对应的能量函数的值为最小或最大的基态。基态对应于优化问题的最优解。
例如,提出了设计表面声波滤波器的方法,其中将模拟退火应用于以等效电路作为设计参数的优化问题。在提出的设计方法中,基于通过初步实验对表面声波滤波器设计问题的误差函数的分布形状的调查结果,确定模拟退火的温度曲线中的最大温度和最小温度。
还提出了用于温度平行模拟退火的恒温室设备,其中将在第一温度下通过模拟退火处理获得的状态与在第二温度下通过模拟退火处理获得的状态随机交换。
引用列表
专利文献
[专利文献1]日本特许专利公布第2008-140210号
[专利文献2]日本特许专利公布第9-231197号
发明内容
技术问题
在如副本交换方法那样通过设置了温度值的多个搜索单元执行随机搜索的情况下,不容易根据问题来适当地确定温度值。
在一个方面,本实施方式的目的是提供能够适当地确定温度值的信息处理装置、信息处理方法和程序。
发明效果
在一个方面,可以适当地确定温度值。
附图说明
图1是用于描述根据第一实施方式的信息处理装置的图;
图2是示出迭代次数与每个搜索单元的温度值之间的关系的示例的图;
图3是示出温度值与平均能量值之间的关系的示例的图;
图4是示出根据第二实施方式的信息处理装置的示例的图;
图5是示出温度调整单元的示例的图;
图6是示出温度值调整的示例的图;
图7是示出温度调整单元的处理的第一示例的图;
图8是示出温度调整单元的处理的第二示例的图;
图9是示出副本交换的整体控制处理的示例的流程图;
图10是示出搜索处理的示例的流程图;
图11是示出数据收集处理的示例的流程图;
图12是示出交换控制处理的示例的流程图;
图13是示出根据第三实施方式的信息处理系统的示例的图;以及
图14是示出信息处理装置的硬件的示例的图。
具体实施方式
在下文中,将参照附图描述实施方式。
[第一实施方式]
将描述第一实施方式。
图1是用于描述根据第一实施方式的信息处理装置的图。
信息处理装置1基于用公式表示组合优化问题的伊辛型能量函数、通过副本交换方法来执行对伊辛模型的最低能量状态例如基态的搜索。基态对应于组合优化问题的最优解。能量函数表示与由多个状态变量的值表示的状态对应的能量值,并且也被称为评估函数或目标函数。状态变量是具有值“0”或“1”的二进制变量。
伊辛型能量函数E(x)例如由式(1)表达。
[式1]
状态矢量x包括多个状态变量作为元素,并且表示伊辛模型的状态。在使能量最大化的问题的情况下,能量函数的符号可以颠倒。
式(1)的右侧的第一项将两个状态变量的值与耦合系数的乘积相加,其中对于可选自所有状态变量的两个状态变量的所有组合没有省略和重复。x
式(1)的右侧的第二项是所有状态变量的相应偏置系数与状态变量的值的乘积之和。b
例如,伊辛模型中的自旋“-1”对应于状态变量的值“0”。伊辛模型中的自旋“+1”对应于状态变量的值“1”。因此,状态变量也可以被称为值为0或1的位。
信息处理装置1包括搜索单元1a1、1a2、……、1aN、控制单元1b和温度调整单元1c。信息处理装置1例如通过使用诸如现场可编程门阵列(FPGA)的半导体集成电路来实现。在该情况下,通过使用半导体集成电路实现的搜索电路、控制电路和温度调整电路分别用作搜索单元1a1、1a2、……、1aN、控制单元1b和温度调整单元1c。
搜索单元1a1至1aN中的每一个通过使用彼此不同的温度值来搜索由多个状态变量表示的能量值的基态。N是搜索单元的数目。搜索单元1a1至1aN中的每一个均可以被称为副本。温度值是温度的值。
当某个状态变量例如位改变时,使用梅特罗波利斯方法(Metropolis method)或吉布斯方法(Gibbs method)确定从某个状态转换到下一状态的概率。例如,搜索单元1a1至1aN中的每一个基于当多个位中的任何位改变时的能量改变与噪声值之间的比较结果来确定是否允许位的改变。在搜索单元1a1至1aN中的每一个确定允许改变的情况下,通过改变位的值来发生状态转换。基于温度值或随机数来获得噪声值。随着温度值增加,噪声值的幅度增加。
控制单元1b在搜索单元1a1至1aN中分别设置彼此不同的温度值。控制单元1b将相对高的温度值设置为第一最大温度值。控制单元1b将相对低的温度值设置为第一最小温度值。例如,控制单元1b基于式(2)和式(3)来确定要在搜索单元1a1至1aN中设置的温度值tmp[i]。
[式2]
[式3]
i是满足0≤i≤N-1的整数,并且是搜索单元1a1至1aN中的每一个的标识号。tmp_max是最大温度值。tmp_min是最xx小温度值。控制单元1b使用初始最大温度值和初始最小温度值,通过式(2)和式(3)计算要为搜索单元1a1至1aN中的每一个设置的初始温度值。
控制单元1b使搜索单元1a1至1aN开始对基态的搜索。控制单元1b获得在预定时间段内的搜索中由搜索单元1a1至1aN中的每一个所达到的能量值。
控制单元1b基于从由搜索单元的对获得的一对能量值计算出的交换概率,在该对搜索单元之间交换多个状态变量的值或温度值。在该对搜索单元之间交换多个状态变量的值或温度值可以被称为“副本交换”。交换概率p由式(4)表达。
[式4]
E
温度调整单元1c基于交换概率p来确定温度值。例如,温度调整单元1c确定由控制单元1b设置的温度值之中的最大温度值和最小温度值两者或最大温度值和最小温度值中的任何一个。
例如,温度调整单元1c按照从当前最大温度值开始的温度值降序获取每对两个相邻温度值的交换概率p,并且基于其中交换概率p首先变得低于第一阈值的一对温度值来确定新的最大温度值。在一个示例中,温度调整单元1c将其中交换概率p首先变得低于第一阈值的一对温度值中的较大的温度值设置为新的最大温度值。注意,温度调整单元1c可以将其中交换概率p首先变得低于第一阈值的一对温度值中的较小的温度值设置为新的最大温度值。根据问题在温度调整单元1c中预先设置第一阈值。
例如,温度调整单元1c按照从当前最小温度值开始的温度值升序获取每对两个相邻温度值的交换概率p,并且基于其中交换概率p首先变得高于第二阈值的一对温度值来确定新的最小温度值。在一个示例中,温度调整单元1c将其中交换概率p首先变得高于第二阈值的一对温度值中的较小的温度值设置为新的最小温度值。注意,温度调整单元1c可以将其中交换概率p首先变得高于第二阈值的一对温度值中的较大的温度值设置为新的最小温度值。根据问题在温度调整单元1c中预先设置第二阈值。
为了确定上述温度值,温度调整单元1c可以从控制单元1b获取每对温度值的交换概率p,或者温度调整单元1c可以获取由搜索单元1a1至1aN获得的能量值并且计算交换概率p。例如,温度调整单元1c可以使用由搜索单元1a1至1aN针对特定温度值获得的能量值的平均值例如平均能量值,来计算交换概率p。作为用于阈值确定的交换概率p,温度调整单元1c可以使用在特定时间段内多次获取的交换概率p的平均值,或者使用仅最新的交换概率p。
将描述通过比较示例的方法确定的温度值的示例。
图2是示出迭代次数与每个搜索单元的温度值之间的关系的示例的图。
曲线图50示出了在副本交换方法中迭代次数与每个搜索单元的温度值之间的关系的示例。一次迭代对应于每个搜索单元中的一个状态转换。曲线图50的横轴是迭代次数/1000。曲线图50的纵轴是在搜索单元中设置的温度值。搜索单元的数目例如副本的数目为40。曲线图50中的一个序列对应于一个搜索单元(副本)。
温度值Tw
曲线图50中搜索单元的温度值改变的部分对应于副本交换被执行的定时。在曲线图50中,当关注相对于低温侧的副本交换的频率时,由于搜索单元中的温度值过低,接近于最小温度区域,因此几乎不发生交换。当温度从最小温度区域接近中间温度区域时,发生副本交换。然而,在平均能量值相对大地改变的中间区域R的温度区域中几乎不发生副本交换。在曲线图50中,在温度值约为10000至100000的中间区域R中,几乎不发生副本交换。在超过中间区域R的最大温度区域中,副本交换基本上随机发生。
温度值T
如上所述,在相对高于中间区域R的温度区域中,在设置了属于相同温度区域的温度值的搜索单元之间频繁地执行副本交换,并且在搜索单元中设置的温度值不容易减小。在该情况下,在相对高的温度区域中的交换处理仅是随机游走并且无助于对基态的搜索。因此,在根据用户的手动调查的设置中,温度值T
另一方面,温度值T
在比较示例的方法中,信息处理装置1观察在搜索单元中设置的温度值和搜索单元所达到的最小能量值,并且记录当每个搜索单元更新最小能量值时获得的温度值。信息处理装置1生成当任意搜索单元在特定时间段中更新最小能量值时设置的温度值的直方图,并且将直方图中具有最高频率的温度值设置为新的最大温度值。
然而,如曲线图50所示,在中间区域R中存在不发生副本交换的温度范围。因此,在比较示例的方法中,由于等于或高于中间区域R的温度此后不设置,因此初始设置了低于中间区域R的温度的相对大量的搜索单元没有达到温度值T
曲线图50中示出的趋势可能显著出现在诸如自旋玻璃的问题中,其中必须使用相对大量的色调来表达位之间的权重系数。在中间区域R中,由玻尔兹曼分布给出的平均能量值随着温度值的增大而迅速增大,并且因此在中间区域R中副本交换的交换概率降低。例如,在诸如自旋玻璃的平均能量随着温度的增大而迅速增大的问题中,如比较示例的方法那样,难以根据搜索单元的温度转换来估计适当的最大温度值。
图3是示出温度值与平均能量值之间的关系的示例的图。
曲线图60示出了由其中设置了温度值的搜索单元达到的平均能量值与温度值之间的关系的示例。曲线图60的横轴是温度值。曲线图60的横轴是对数标度。曲线图60的纵轴是平均能量值。
范围61是最小温度值附近的温度区域,在该温度区域中交换概率低并且不发生副本交换。范围62是在比范围61高的温度侧的温度区域,并且是具有适度地发生副本交换的概率的温度区域。范围63是在比范围62高的温度侧的温度区域,其对应于曲线图50的中间区域R,具有低交换概率,并且是其中不发生副本交换的温度区域。范围64是在比范围63高的温度侧的温度区域,并且是最大温度值附近的温度区域,在该温度区域中交换概率p非常高并且非常频繁地发生副本交换。
因此,如上所述,温度调整单元1c基于副本交换的交换概率p来确定最大温度值,使得最大温度值在范围63的上限附近。预先确定第一阈值,使得最大温度值在范围63的上限附近。例如,当第一阈值是0.01时,温度调整单元1c将按照从作为最大温度值的温度值Tw
因此,可以将在图2中的温度值T
根据曲线图60,在比范围63低的温度侧的温度区域中,每个搜索单元基本上达到最小能量值。如上所述,在低于范围62的最小温度值附近的温度区域中,搜索单元之间的副本交换的发生频率趋向于相对低。
因此,温度调整单元1c例如基于交换概率p来确定最小温度值,使得最小温度值在范围62的下限附近。预先确定第二阈值,使得最小温度值在范围62的下限附近。例如,当第二阈值是0.01时,温度调整单元1c将按照从最小温度值0.1开始的温度升序交换概率首次变得高于0.01的温度值设置为新的最小温度值。
因此,可以适当地确定新的最小温度值。控制单元1b可以基于式(2)和式(3)适当地设置搜索单元1a1至1aN的温度值。因此,去除其中几乎不发生副本交换的低温侧温度区域,并且搜索单元可以通过采用各种温度值来搜索解。例如,可以将大量搜索单元分配给范围63的温度区域,例如,为每个搜索单元设置的中间区域R,并且搜索单元之间的平均能量值的差减小,使得温度区域中的交换概率增大。以该方式,促进了状态转换,并且可以提高搜索单元1a1至1aN的解性能。
要与交换概率p进行比较的第一阈值和第二阈值是经验确定的值,并且可以从信息处理装置1的外部在温度调整单元1c中设置。第一阈值和第二阈值可以是相同的值,或者也可以是不同的值。
温度调整单元1c可以通过上述方法确定最大温度值和最小温度值中的仅一个,并且也可以确定最大温度值和最小温度值两者。在任何情况下,可以适当地确定要为搜索单元1a1至1aN设置的温度值。
[第二实施方式]
接下来,将描述第二实施方式。
图4是示出根据第二实施方式的信息处理装置的示例的图。
使用副本交换方式,信息处理装置2从通过对计算目标的优化问题执行变换而获得的、与伊辛模型中包括的多个自旋对应的多个位的相应的值的组合中,搜索当能量函数为最小值时每个位的值。多个位的值的组合对应于伊辛模型的状态,并且其中能量函数为最小值的组合对应于伊辛模型的基态。在下面的描述中,伊辛模型的状态可以被简称为状态。伊辛型能量函数E(x)由上述式(1)定义。信息处理装置2也可以被称为伊辛机、优化装置等。
信息处理装置2例如通过使用诸如FPGA的半导体集成电路来实现。信息处理装置2包括搜索单元2a1至2aN、温度控制单元2b、温度调整单元2c和整体控制单元2d。
搜索单元2a1至2aN对应于第一实施方式中的搜索单元1a1至1aN。N为2或更大的整数,并且指示搜索单元的数目。温度控制单元2b是第一实施方式的控制单元1b的示例。温度调整单元2c是第一实施方式的温度调整单元1c的示例。
在搜索单元2a1至2aN中设置彼此不同的温度值T1至TN。例如,使用预先给出的最小温度值tmp_min和最大温度值tmp_max,基于式(2)和式(3)来确定温度值T1至TN。搜索单元2a1至2aN中的每一个通过如下所述的电路基于由式(1)表示的伊辛型评估函数来实现基态搜索。下面将着眼于搜索单元2a1进行描述,并且搜索单元2a2至2aN具有相似的电路配置。
搜索单元2a1包括ΔE计算单元20a1、20a2、……、20an、选择器21、状态更新单元22和能量计算单元23。n为2或更大的整数,并且指示搜索单元2a1中的位的总数。
ΔE计算单元20a1至20an中的每一个对应于一个位,并且响应于任何位的改变,基于改变后的位和自身位的权重系数来计算自身的位接下来改变的情况的能量改变值。ΔE计算单元20a1至20an中的每一个根据计算的能量变化值与噪声值之间的比较,向选择器21输出指示是否允许接下来改变自身的位的标记。基于温度值或随机数来获得噪声值。随着温度值增大,噪声值的幅度增大。
基于从ΔE计算单元20a1至20an中的每一个接收的标记,选择器21从允许接下来改变的位中选择接下来要改变的位。例如,选择器21使用随机数来从允许接下来改变的位中选择接下来要改变的位。选择器21将选择的位的索引j输出至状态更新单元22。
状态更新单元22保持多个位例如状态。状态更新单元22通过使与从选择器21接收的索引j对应的位反转来更新状态。
状态更新单元22将索引j输出至ΔE计算单元20a1至20an。状态更新单元22将当前状态例如位串x
能量计算单元23基于从状态更新单元22接收的当前状态和能量函数来计算与当前状态对应的能量值。能量计算单元23将计算的能量值输出至温度控制单元2b和温度调整单元2c。
温度控制单元2b在搜索单元2a1至2aN中分别设置彼此不同的温度值T1至TN。例如,温度控制单元2b通过在温度控制单元2b中的寄存器中保持第一对应信息和第二对应信息来管理每个搜索单元的温度值,在第一对应信息中,搜索单元的索引与温度值的索引相关联,在第二对应信息中,温度值的索引与温度值相关联。当更新温度值时,温度控制单元2b更新第二对应信息中的温度值。
在整个搜索时间段的初始预定时间段中,温度控制单元2b使用预先给出的最小温度值tmp_min和最大温度值tmp_max,基于式(2)和式(3)来计算初始温度值T1至TN,并且使用初始温度值T1至TN。搜索的初始预定时间段是用于温度调整的时间段,例如,温度调整时间段。
温度控制单元2b根据从整体控制单元2d接收的开始信号,使搜索单元2a1至2aN开始搜索。温度控制单元2b获取从搜索开始在每个搜索单元2a1至2aN中进行预定次数的迭代之后或从搜索开始经过预定时间之后由每个搜索单元2a1至2aN获得的能量值。基于与获取的能量值对应的交换概率p,温度控制单元2b在设置有相邻温度值的一对两个搜索单元之间交换温度值。通过式(4)计算交换概率p。温度控制单元2b可以交换状态而不是温度值。
温度控制单元2b将温度值T1至TN输出至温度调整单元2c。当温度调整时间段结束时,温度控制单元2b从温度调整单元2c获取新的最大温度值tmp_max和新的最小温度值tmp_min。温度控制单元2b通过使用新的最大温度值tmp_max和新的最小温度值tmp_min,基于式(2)和式(3)来计算新的温度值T1至TN。温度控制单元2b在搜索单元2a1至2aN中设置新的温度值T1至TN,并且在温度调整时间段之后开始搜索。
在温度调整时间段中,温度调整单元2c在每个副本交换的定时或多次副本交换的每一次,针对相邻的温度值的每个对计算副本交换的交换概率,并且保持计算的交换概率。当温度调整时间段结束时,温度调整单元2c基于针对每对相邻温度值计算的交换概率来更新最大温度值tmp_max和最小温度值tmp_min。温度调整单元2c将新的最大温度值tmp_max和新的最小温度值tmp_min输出至温度控制单元2b。
当从外部接收到用于指令搜索的开始的开始信号时,整体控制单元2d将开始信号输出至温度控制单元2b。
当在由搜索单元2a1至2aN进行的搜索的整个时长时,整体控制单元2d获取由搜索单元2a1至2aN中的每一个保持的状态。整体控制单元2d将结束信号输出至外部。例如,结束信号包括分别由搜索单元2a1至2aN最终获得的状态或状态中的与最小能量值对应的状态。整体控制单元2d可以使耦接至信息处理装置2的显示设备显示关于状态的信息,或者可以经由网络将关于状态的信息发送至与信息处理装置2耦接的另一计算机。
图5是示出温度调整单元的示例的图。
温度调整单元2c包括交换概率计算单元31、寄存器32、交换概率阈值确认单元33和温度确定单元34。
交换概率计算单元31基于从搜索单元2a1至2aN中的每一个获取的能量值以及从温度控制单元2b获取的温度值T1至TN来计算交换概率p。通过式(4)计算交换概率p。交换概率计算单元31可以针对相邻温度值的对计算交换概率p。交换概率计算单元31将针对每对温度值计算的交换概率p存储在寄存器32中。
交换概率计算单元31获得温度调整时间段中的成对的温度值的交换概率p的平均值。为此,例如,在第二次以后计算交换概率p的情况下,交换概率计算单元31可以通过使用直到前一次的平均值来计算直到当前次的平均值,并且将平均值存储在寄存器32中。
寄存器32存储由交换概率计算单元31计算的每对温度值的交换概率p或交换概率p的平均值。
交换概率阈值确认单元33将由交换概率计算单元31计算的、温度调整时间段中的成对的温度值的交换概率p的平均值与阈值进行比较。在交换概率阈值确认单元33中,预先设置用于确定最大温度值的阈值(第一阈值)和用于确定最小温度值的阈值(第二阈值)。
交换概率阈值确认单元33按照从当前最大温度值开始的温度值降序将温度调整时间段中的成对的温度值的交换概率p的平均值与第一阈值进行比较。交换概率阈值确认单元33将当交换概率p的平均值首次低于第一阈值时获得的一对温度值中的较大温度值的索引输出至温度确定单元34。该索引是新的最大温度值的索引。注意,交换概率阈值确认单元33可以将当交换概率p的平均值首次低于第一阈值时获得的一对温度值中的较小温度值的索引输出至温度确定单元34。
交换概率阈值确认单元33按照从当前最小温度值开始的温度值升序将温度调整时间段中的成对的温度值的交换概率p的平均值与第二阈值进行比较。交换概率阈值确认单元33将当交换概率p的平均值首次超过第二阈值时获得的一对温度值中的较小温度值的索引输出至温度确定单元34。该索引是新的最小温度值的索引。注意,交换概率阈值确认单元33可以将当交换概率p的平均值首次超过第二阈值时获得的一对温度值中的较大温度值的索引输出至温度确定单元34。
温度确定单元34从温度控制单元2b获取当前温度值T1至TN以及与温度值对应的索引。当从交换概率阈值确认单元33获取到新的最大温度值的索引时,温度确定单元34将与当前温度值T1至TN中的新的最大温度值的索引对应的温度值确定为新的最大温度值。当从交换概率阈值确认单元33获取到新的最小温度值的索引时,温度确定单元34将与当前温度值T1至TN中的新的最小温度值的索引对应的温度值确定为新的最小温度值。温度确定单元34将新的最大温度值和新的最小温度值输出至温度控制单元2b。
图6是示出温度值调整的示例的图。
图6中的横轴指示迭代次数。单位时间段ST1、ST2、ST3、ST4、ST5、……中的每一个是其中由搜索单元2a1至2aN在特定温度下执行搜索的搜索时间段的一个单位。单位时间段被定义为预定的迭代次数或预定的时间间隔。副本交换是在某个单位时间段的结束时间与下一单位时间段的开始时间之间的时间区域中执行的。此时,在先前单位时间段中达到的状态被保持在对应的搜索单元中,并且被下一单位时间段中的搜索接管。在图6的示例中,整个搜索时间段中的包括单位时间段ST1至ST4的时间段是温度调整时间段。从单位时间段ST5开始的时间段是执行温度调整之后的随机搜索例如优化处理的时间段。在图6中,能量值可以缩写为“eg值”。
在该情况下,交换概率计算单元31基于在紧接在单位时间段ST1、ST2、ST3、ST4中的每一个结束之后的时间从搜索单元2a1至2aN获取的能量值,计算一对相邻温度值的交换概率。在紧接在单位时间段ST4结束之后的时间,交换概率计算单元31针对每对相邻温度值,计算在单位时间段ST1、ST2、ST3、ST4中各自计算的交换概率的平均值(步骤S1)。在紧接在单位时间段ST1、ST2、ST3、ST4中的每一个结束之后的时间,交换概率计算单元31可以计算直到该时间的总单位时间段中的交换概率的平均。交换概率计算单元31可以从搜索单元2a1至2aN获取搜索单元2a1至2aN在对应的温度值下转换到的状态的能量值的平均——例如平均能量值——作为能量值。
在单位时间段ST5之前,交换概率阈值确认单元33和温度确定单元34基于阈值与在步骤S1中计算的每对相邻温度值的交换概率的平均之间的比较,确定新的最大温度值和新的最小温度值(步骤S2)。温度确定单元34将新的最大温度值和新的最小温度值输出至温度控制单元2b。
温度控制单元2b通过使用新的最大温度值和新的最小温度值,根据式(2)和式(3)计算温度值T1至TN,并且在搜索单元2a1至2aN中分别设置计算的温度值T1至TN。温度控制单元2b启动由搜索单元2a1至2aN进行的单位时间段ST5中及之后的优化处理。
温度调整时间段中包括的单位时间段的数目是四个,但是可以是不同的数目。由温度调整单元2c进行的交换概率的计算在副本交换的每个定时处执行,但是也可以每2次或更多次副本交换执行一次计算。
在图6中,温度调整时间段仅是优化处理的整个时间段的初始时间段,但是可以在整个时间段的中间多次设置温度调整时间段。可以定期地设置温度调整时间段。
接下来,将详细描述由温度调整单元2c进行的交换概率计算处理的示例。
图7是示出温度调整单元的处理的第一示例的图。
交换概率计算单元31从搜索单元2a1至2aN中的每一个接收能量值eg_i_t。能量值eg_i_t是与第i搜索单元在时间t处的状态对应的能量值。能量值eg_i_t可以是对应的搜索单元中在时间t紧之前的单位时间段中的平均能量值。
交换概率计算单元31从温度控制单元2b接收搜索单元2a1至2aN的温度值T_i_t。温度值T_i_t是第i搜索单元在时间t处的温度值。
交换概率计算单元31基于式(4)来计算副本交换的交换概率p_i_t。例如,p_i_t=exp{(eg_i_t-eg_j_t)(1/(kT_i_t)-1/(kT_j_t))}。右侧的i和j是与一对相邻温度值对应的一对索引。
交换概率计算单元31通过以下式(5)计算平均交换概率p_ave_i_t。
[式5]
p_ave_i_t=α×p_i_t+(1-α)×p_ave_i_{t-1} (5)
α是预先给出的满足0<α<1的实数,并且是例如α=0.3。
交换概率计算单元31将时间t处的平均交换概率p_ave_i_t存储在寄存器32中。
由于针对相邻温度值的对计算交换概率,因此总共计算了N-1个交换概率。因此,如果p_i_t和p_ave_i_t中的索引i从0开始,则索引i取从0至N-2的值。
例如,交换概率计算单元31在紧接在单位时间段STl至ST4中的每一个结束之后的时间处计算p_i_t和p_ave_i_t,并且将p_ave_i_t存储在寄存器32中。交换概率计算单元31将在紧接在图6中的单位时间段ST4结束之后的时间处计算的p_ave_i_t输出至交换概率阈值确认单元33。
图8是示出温度调整单元的处理的第二示例的图。
寄存器32可以存储在某个时间段M(例如,t-M+1至t的时间段)期间计算的交换概率p_i_t。在该情况下,交换概率计算单元31执行以下处理。
交换概率计算单元31从搜索单元2a1至2aN中的每一个接收能量值eg_i_t。能量值eg_i_t可以是对应的搜索单元中在时间t紧之前的单位时间段中的平均能量值。交换概率计算单元31从温度控制单元2b接收搜索单元2a1至2aN的温度值T_i_t。
交换概率计算单元31基于式(4)来计算副本交换的交换概率p_i_t。例如,p_i_t=exp{(eg_i_t-eg_j_t)(1/(kT_i_t)-1/(kT_j_t))}。右侧的i和j是与一对相邻温度值对应的一对索引。交换概率计算单元31将计算的交换概率p_i_t存储在寄存器32中。
交换概率计算单元31通过以下式(6)计算平均交换概率p_ave_i_t。
[式6]
寄存器32存储在从时间t-M+1至时间t的时间段期间计算的交换概率p_i_t。
由于针对相邻温度值的对计算交换概率,因此总共计算了N-1个交换概率。因此,如果p_i_t中的索引i从0开始,则索引i取从0至N-2的值。
例如,交换概率计算单元31在紧接在单位时间段STl至ST4中的每一个结束之后的时间处计算p_i_t,并且将p_i_t存储在寄存器32中。交换概率计算单元31在紧接在图6中的单位时间段ST4结束之后的时间处计算p_ave_i_t,并且将p_ave_i_t输出至交换概率阈值确认单元33。
接下来,将描述信息处理装置2的处理过程的示例。
图9是示出副本交换的整体控制处理的示例的流程图。
(S1)整体控制单元2d从外部获取指示初始温度值的温度信息作为输入数据,并且将温度信息和开始信号输出至温度控制单元2b。
(S2)温度控制单元2b从整体控制单元2d接收开始信号,在搜索单元2a1至2aN中分别设置彼此不同的初始温度值Tl至TN,并且使搜索单元执行随机搜索。后面将描述由搜索单元2a1至2aN中的每一个进行的搜索处理的细节。
(S3)当由搜索单元2a1至2aN中的每一个执行单位时间段中的搜索时,温度调整单元2c执行数据收集处理,包括获取由搜索单元2a1至2aN中的每一个计算的能量值。后面将描述数据收集处理的细节。
(S4)搜索单元2a1至2aN将每对相邻搜索单元的能量值发送至温度控制单元2b。例如,温度控制单元2b针对具有相邻温度值的每对搜索单元获取由搜索单元2a1至2aN计算的能量值。
(S5)温度控制单元2b基于式(4)来计算交换概率,并且基于交换概率来对温度值执行交换控制处理。温度控制单元2b对具有相邻温度的每对搜索单元的温度值执行交换控制处理。后面将描述交换控制处理的细节。
(S6)温度调整单元2c确定下一单位时间段是否在温度调整时间段内。在下一单位时间段在温度调整时间段内的情况下,温度调整单元2c使处理行进至步骤S2。在下一单位时间段不在温度调整时间段内的情况下,温度调整单元2c使处理行进至步骤S7。
(S7)温度调整单元2c基于交换概率的阈值来执行温度计算。例如,交换概率阈值确认单元33从交换概率计算单元31获取每对相邻温度值的平均交换概率。交换概率阈值确认单元33通过按照温度降序将每对相邻温度值的平均交换概率与第一阈值进行比较,获取新的最大温度值的索引,并且将索引输出至温度确定单元34。交换概率阈值确认单元33通过按照温度升序将每对相邻温度值的平均交换概率与第二阈值进行比较,获取新的最小温度值的索引,并且将索引输出至温度确定单元34。温度确定单元34将与新的最大温度值的索引对应的温度值确定为新的最大温度值,并且将新的最大温度值输出至温度控制单元2b。温度确定单元34将与新的最小温度值的索引对应的温度值确定为新的最小温度值,并且将新的最小温度值输出至温度控制单元2b。
(S8)温度控制单元2b通过使用更新的最大温度值和更新的最小温度值,根据式(2)和式(3)计算更新的温度值T1至TN。温度控制单元2b在搜索单元2a1至2aN中设置更新的温度值T1至TN,并且使搜索单元2a1至2aN中的每一个执行随机搜索。
(S9)搜索单元2a1至2aN将每对相邻搜索单元的能量值发送至温度控制单元2b。例如,温度控制单元2b针对具有相邻温度值的每对搜索单元获取由搜索单元2a1至2aN计算的能量值。
(S10)温度控制单元2b基于式(4)来计算交换概率,并且基于交换概率来对温度值执行交换控制处理。温度控制单元2b针对具有相邻温度的每对搜索单元执行温度值的交换控制处理。
(S11)搜索单元2a1至2aN确定具有最小温度值的搜索单元中的状态是否在预定次数下不再改变。当具有最小温度值的搜索单元中的状态没有改变时,搜索单元2a1至2aN将状态输出至整体控制单元2d,并且结束副本交换的整体控制处理。在具有最小温度值的搜索单元中的位状态发生改变的情况下,搜索单元2a1至2aN使处理行进至步骤S8并且继续随机搜索的处理。
当获取从搜索单元2al至2aN最终获得的状态时,整体控制单元2d将结束信号输出至外部。例如,结束信号包括分别由搜索单元2a1至2aN最终获得的状态或状态中的与最小能量值对应的状态。整体控制单元2d可以使耦接至信息处理装置2的显示设备显示关于状态的信息,或者可以经由网络将关于状态的信息发送至与信息处理装置2耦接的另一计算机。
图10是示出搜索处理的示例的流程图。
搜索处理对应于图9中的步骤S2和/或步骤S8。
(S20)温度控制单元2b在搜索单元2a1至2aN中设置彼此不同的温度值。根据问题等预先确定分别为搜索单元2a1至2aN设置的初始温度值。在步骤S7中更新温度值之后,在搜索单元2a1至2aN中设置更新的温度值。
(S21)搜索单元2a1至2aN中的每一个针对每个位计算能量改变值ΔE。
(S22)搜索单元2a1至2aN中的每一个基于每个位的能量改变值ΔE来选择要反转的位。
(S23)搜索单元2a1至2aN中的每一个通过使在步骤S22中选择的位反转来更新状态。
(S24)搜索单元2a1至2aN中的每一个确定单位时间段是否已经结束。在单位时间段已经结束的情况下,搜索单元2a1至2aN中的每一个使处理行进至步骤S25。在单位时间段没有结束的情况下,搜索单元2a1至2aN中的每一个使处理行进至步骤S21。如上所述,基于是否已经达到与单位时间段对应的预定迭代次数或者是否已经经过与单位时间段对应的预定时间来确定单位时间段是否已经结束。
(S25)搜索单元2a1至2aN中的每一个计算与当前状态对应的能量值。搜索单元2a1至2aN中的每一个将计算的能量值输出至温度控制单元2b和温度调整单元2c,并且结束搜索处理。
在将平均能量值提供给温度调整单元2c的情况下,搜索单元2a1至2aN中的每一个可以在单位时间段内多次计算能量值,计算单位时间段内的平均能量值,并且将平均能量值输出至温度调整单元2c。
图11是示出数据收集处理的示例的流程图。
数据收集处理对应于图9中的步骤S3。
(S30)交换概率计算单元31确定是否是数据收集定时。当是数据收集定时时,交换概率计算单元31使处理行进至步骤S31。当不是数据收集定时时,交换概率计算单元31结束数据收集处理。数据收集定时可以是由搜索单元2a1至2aN每次完成单位时间段中的搜索处理的定时,或者可以是每次完成两个或更多个单位时间段中的搜索处理的定时。数据收集定时被预先设置在温度调整单元2c中。
(S31)交换概率计算单元31针对温度值的所有对重复执行步骤S32。温度值的对是两个相邻温度值的对。
(S32)交换概率计算单元31针对一对两个相邻温度值,基于从搜索单元2al至2aN获取的能量值和式(4),来计算交换概率。交换概率计算单元31将计算的交换概率存储在寄存器32中。如上所述,交换概率计算单元31可以在步骤S32中计算平均交换概率。在该情况下,交换概率计算单元31将计算的平均交换概率存储在寄存器32中。
(S33)当交换概率计算单元31完成针对温度值的所有对执行步骤S32时,交换概率计算单元31结束数据收集处理。
图12是示出交换控制处理的示例的流程图。
交换控制处理对应于图9中的步骤S5和/或步骤S10。
(S40)对于按照温度值升序(或降序)的偶数编号的搜索单元,温度控制单元2b基于式(4)的交换概率来确定是否与具有相邻的更高(或更低)温度的搜索单元交换温度值。针对每对搜索单元执行温度值交换的确定。在存在被确定为要交换温度值的一对搜索单元的情况下,温度控制单元2b使处理行进至步骤S41。在不存在被确定为要交换温度值的一对搜索单元的情况下,温度控制单元2b使处理行进至步骤S42。
(S41)温度控制单元2b针对在步骤S40中确定为要交换温度的搜索单元的对交换温度。
(S42)对于按照温度值升序(或降序)的奇数编号的搜索单元,温度控制单元2b基于式(4)的交换概率来确定是否与具有相邻的更高(或更低)温度的搜索单元交换温度值。针对每对搜索单元执行温度值交换的确定。在温度控制单元2b在步骤S40中针对偶数编号的搜索单元确定是否与具有较高温度的搜索单元交换温度值的情况下,温度控制单元2b在步骤S42中针对奇数编号的搜索单元确定是否与具有较高温度的搜索单元交换温度值。在温度控制单元2b在步骤S40中针对偶数编号的搜索单元确定是否与具有较低温度的搜索单元交换温度值的情况下,温度控制单元2b在步骤S42中针对奇数编号的搜索单元确定是否与具有较低温度的搜索单元交换温度值。在存在被确定为要交换温度值的搜索单元的对的情况下,温度控制单元2b使处理行进至步骤S43。在不存在被确定为要交换温度值的搜索单元的对的情况下,温度控制单元2b结束交换控制处理。
(S43)温度控制单元2b对在步骤S42中确定要交换温度值的搜索单元的对交换温度值。温度控制单元2b结束交换控制处理。
在以上示例中,通过在着眼于偶数编号的搜索单元之后着眼于奇数编号的搜索单元来执行温度值的交换控制,但是可以通过在着眼于奇数编号的搜索单元之后着眼于偶数编号的搜索单元来执行温度值的交换控制。例如,可以在步骤S42和S43之后执行步骤S40和S41。如上所述,温度控制单元2b可以交换状态而不是温度值。
如图3所示,在曲线图60中存在范围63的温度区域,在该温度区域中副本交换的交换概率减小。另一方面,在曲线图60中的范围64的温度区域中,存在属于相同温度区域的仅搜索单元频繁执行彼此交换的趋势。
因此,如上所述,温度调整单元2c基于副本交换的交换概率p来确定最大温度值,使得最大温度值在范围63的上限附近。例如,当用于确定最大温度值的第一阈值为0.01时,温度调整单元2c按照从作为初始最大温度值的温度值Tw
在曲线图60中在比范围62低的温度侧的温度区域中,搜索单元之间出现副本交换的频率趋向于相对低。
因此,温度调整单元2c基于交换概率p来确定新的最小温度值,使得最小温度值在范围62的下限附近。例如,当用于确定最小温度值的第二阈值为0.01时,温度调整单元2c按照从初始最小温度值开始的温度升序将交换概率p首次变得高于0.01的温度值设置为新的最小温度值。
例如,温度调整单元2c着眼于最小温度值附近的区域和最大温度值附近的区域中的每一个中的副本交换概率。由于交换概率从最小温度值朝向较高温度值增加,因此通过将交换概率变得高于特定阈值的点设置为新的最小温度值,可以省去属于其中交换概率等于或低于阈值的、最小温度值附近的区域的搜索单元。由于交换概率从最大温度值朝向较低温度值减小,因此通过将交换概率变得低于特定阈值的点设置为新的最大温度值,可以省去属于其中交换概率等于或高于阈值的、最大温度值附近的区域的搜索单元。
以该方式,可以适当地设置新的最大温度值和新的最小温度值。温度控制单元2b可以基于式(2)和式(3)适当地设置搜索单元2a1至2aN的温度值。例如,即使在自旋玻璃的问题或系数被放大和缩放的问题中,也可以设置适当的温度。
因此,分配给初始温度值的最大温度附近的温度区域和最小温度附近的温度区域的搜索单元的数目减少,并且可以将许多搜索单元分配给中间温度区域。设置有属于中间温度区域的温度值的搜索单元之间的平均能量值的差变得相对小,并且副本交换的交换概率增大。这可以促进搜索单元的温度转换并且提高解性能。
由于信息处理装置2可以自适应且自动地确定与自旋玻璃的问题等对应的温度值,因此可以省去用户调整温度值的麻烦。例如,可以促进温度值的调整。
总之,信息处理装置2具有例如以下功能。
温度调整单元2c将副本交换的交换概率与阈值进行比较,并且根据比较来确定新的最大温度值和新的最小温度值两者或新的最大温度值和新的最小温度值中的任何一个。因此,例如,可以减少未使用的温度区域——例如概率低的低温度区域和概率低的高温度区域,并且可以适当地确定温度值。可以增加由于自旋玻璃的问题等而引起的交换概率减小的中间温度区域中的交换概率,以促进温度转换以及伴随温度转换的状态转换,并且提高解性能。
温度调整单元2c按照温度值的降序将与为搜索单元的对设置的一对温度值对应的交换概率与第一阈值进行比较,并且基于交换概率首次变得低于第一阈值的搜索单元的对的交换概率来确定最大温度值。例如,温度调整单元2c按照从当前最大温度值开始的温度降序将搜索单元的对的交换概率首先变得低于第一阈值的温度值设置为最大温度值。例如,温度调整单元2c基于与交换概率首先变得低于第一阈值的搜索单元的对对应的一对温度值来确定最大温度值。在一个示例中,温度调整单元2c将属于一对温度值的任何一个温度值设置为最大温度值。替选地,还考虑到温度调整单元2c将根据属于一对温度值的每个温度值计算的温度值例如中间温度值设置为最大温度值。
因此,可以省去交换概率等于或高于第一阈值的初始最大温度附近的温度区域,并且提高交换概率低的中间温度区域中的交换概率。因此,促进了每个搜索单元的温度转换,并且提高了解性能。
温度调整单元2c按照温度值的升序将与为搜索单元的对设置的温度值的对所对应的交换概率与第二阈值进行比较,并且基于交换概率首先变得高于第二阈值的搜索单元的对的交换概率来确定最小温度值。例如,温度调整单元2c按照从当前最小温度值开始的温度升序将搜索单元的对的交换概率首先变得高于第二阈值的温度值设置为最小温度值。例如,温度调整单元2c基于与交换概率首先变得高于第二阈值的搜索单元的对对应的一对温度值来确定最小温度值。在一个示例中,温度调整单元2c将属于一对温度值的任何一个温度值设置为最小温度值。替选地,还考虑到温度调整单元2c将根据属于一对温度值的每个温度值计算的温度值例如中间温度值设置为最小温度值。
因此,可以省去交换概率等于或低于第二阈值的初始最小温度值附近的温度区域,并且提高交换概率低的中间温度区域中的交换概率。因此,促进了每个搜索单元的温度转换,并且提高了解性能。
通过温度调整单元2c确定最大温度值和最小温度值两者更有效。
温度调整单元2c基于在预定时间段内获得的多个交换概率的平均值来确定温度值。通过对交换概率求平均,可以适当地评估相应的一对温度值的交换概率,并且可以适当地确定温度值。
温度调整单元2c基于与搜索单元的对对应的一对温度值以及由该对搜索单元获得的一对平均能量值来计算交换概率。因此,可以适当地评估由设置有一对对应的温度值的一对搜索单元获得的能量值的趋势,并且适当地确定温度值。
温度控制单元2b基于由温度调整单元2c确定的最大温度值和最小温度值两者或最大温度值和最小温度值中的任何一个,更新在搜索单元2a1至2aN中设置的温度值T1至TN。因此,可以适当地确定分别在搜索单元2a1至2aN中设置的所有温度值T1至TN。温度控制单元2b可以使用例如式(2)和式(3)来更新温度值T1至TN。温度调整单元2c可以基于最大温度值和最小温度值来计算温度值T1至TN,并且将计算的温度值输出至温度控制单元2b。
[第三实施方式]
接下来,将描述第三实施方式。将主要描述与以上描述的第一实施方式和第二实施方式不同的项,并且将省去共同项的描述。
图13是示出根据第三实施方式的信息处理系统的示例的图。
信息处理系统3包括信息处理装置4和信息处理装置5。信息处理装置4和信息处理装置5经由预定的输入/输出(IO)接口耦接。
信息处理装置4例如通过诸如FPGA的半导体集成电路来实现。信息处理装置4包括搜索单元4a1、4a2、……、4aN和控制单元4b。搜索单元4a1至4aN对应于第一实施方式的搜索单元1a1至1aN,并且具有与搜索单元1a1至1aN相同的功能。控制单元4b对应于第一实施方式的控制单元1b,并且具有与控制单元1b相同的功能。
信息处理装置5例如由计算机来实现。信息处理装置5包括温度调整单元5a。温度调整单元5a对应于第一实施方式的温度调整单元1c,并且具有与温度调整单元1c相同的功能。
温度调整单元5a从信息处理装置5获取通过控制单元4b设置在搜索单元4a1至4aN中的温度值T1至TN。温度调整单元5a从信息处理装置5获取由搜索单元4a1至4aN获得的多个能量值。温度调整单元5a基于与搜索单元的对对应的一对能量值来计算副本交换的交换概率,并且基于计算的交换概率来确定控制单元4b要在搜索单元4a1至4aN中设置的温度值。作为确定温度值的具体方法,可以使用在图3中例示的方法。
如图13所示,第三实施方式与第一实施方式和第二实施方式的不同之处在于,在信息处理装置4中设置有搜索单元4a1、4a2、…、4aN和控制单元4b,以及在不同于信息处理装置4的信息处理装置5中设置有温度调整单元5a。
接下来,将例示信息处理装置5的硬件。
图14是示出信息处理装置的硬件的示例的图。
信息处理装置5包括中央处理单元(CPU)101、随机存取存储器(RAM)102、硬盘驱动器(HDD)103、IO接口104、图像信号处理单元105、输入信号处理单元106、介质读取器107和网络接口卡(NIC)108。
CPU 101是执行程序命令的处理器。CPU 101将存储在HDD 103中的程序或数据的至少一部分加载到RAM 102中并且执行该程序。CPU 101可以包括多个处理器核。信息处理装置5可以包括多个处理器。多个处理器的集可以被称为“多处理器”或简称为“处理器”。温度调整单元5a由CPU 101实现。
RAM 102是暂时存储由CPU 101执行的程序和用于由CPU 101进行的操作的数据的易失性半导体存储器。信息处理装置5可以包括除了RAM之外的存储器类型并且可以包括多个存储器。RAM 102用作存储在第二实施方式的寄存器32中存储的数据的存储单元。
HDD 103是存储诸如操作系统(OS)、中间件和应用软件的软件程序以及数据的非易失性存储设备。信息处理装置5可以包括诸如闪速存储器和固态驱动器(SSD)的其他类型的存储设备,并且可以包括多个非易失性存储设备。
IO接口104耦接至信息处理装置4,并且根据来自CPU 101的指令,将数据输出至信息处理装置4以及从信息处理装置4输入数据。例如,IO接口104根据来自CPU 101的指令,将RAM 102中的数据写入信息处理装置4的寄存器或存储器,或者从信息处理装置4读取数据并将数据写入RAM 102。作为IO接口104,例如,使用高速外围部件互连(PCI-e)等。
图像信号处理单元105根据来自CPU 101的指令将图像输出至与信息处理装置5耦接的显示器111。可以使用任意类型的显示器(例如,阴极射线管(CRT)显示器、液晶显示器(LCD)、等离子显示器或有机电致发光(OEL)显示器)作为显示器111。
输入信号处理单元106从耦接至信息处理装置5的输入设备112获取输入信号,并且将输入信号输出至CPU 101。可以使用指向设备(例如,鼠标、触摸面板、触摸板或轨迹球)、键盘、遥控器、按钮开关等作为输入设备112。多种类型的输入设备可以耦接至信息处理装置5。
介质读取器107是读取存储在记录介质113上的程序或数据的读取设备。可以使用例如磁盘、光盘、磁光盘(MO)、半导体存储器等作为记录介质113。磁盘包括软盘(FD)、HDD等。光盘包括致密盘(CD)和数字通用盘(DVD)。
例如,介质读取器107将从记录介质113读取的程序或数据复制到诸如RAM 302或HDD 103的另一记录介质中。读取的程序由例如CPU 101执行。记录介质113可以是便携式记录介质,并且在一些情况下用于分发程序和数据。在一些情况下,记录介质113和HDD 103被称为计算机可读记录介质。
NIC 108是耦接至网络6的接口并且经由网络6与另一计算机通信。NIC 108例如通过线缆耦接至网络6中包括的通信设备,例如,交换机或路由器。
信息处理装置4是加速器,其基于能量函数的信息通过由硬件进行的副本交换方法来执行基态搜索。信息处理装置4也可以被称为伊辛机、优化装置等。替代信息处理装置4,CPU 101可以执行预定的软件以实现执行副本交换方法的多个搜索单元和温度控制单元的功能。
在根据第三实施方式的信息处理系统3中,温度调整单元5a以与温度调整单元1c和2c相同的方式调整由控制单元4b在搜索单元4a1至4aN中设置的温度值。因此,如在第一实施方式和第二实施方式中那样,可以适当地确定要在搜索单元4a1至4aN中设置的温度值。
可以通过使CPU 101执行程序来实现根据第二实施方式的搜索单元2a1至2aN、温度控制单元2b、温度调整单元2c和整体控制单元2d的功能。可以通过使CPU 101执行程序来实现根据第三实施方式的温度调整单元5a的功能。程序可以存储在计算机可读记录介质113中。
例如,可以通过分发用于记录程序的记录介质113来分发程序。程序可以存储在另一计算机中,并且程序可以经由网络分发。例如,计算机可以将记录在记录介质113中的程序或从另一计算机接收的程序存储(安装)在诸如RAM 102或HDD 103的存储设备中,并且可以从存储设备读取程序并且执行程序。
- 位置确定处理装置、位置确定处理方法、位置确定处理程序、移动信息处理装置、移动信息处理方法、移动信息处理程序和存储介质
- 信息处理装置、信息生成装置、信息处理方法、信息生成方法、信息处理程序、信息生成程序及记录介质