[0055] 在取值为0的状态变量xj是更新目标候选的情况下,包括在与xj同一行和同一列中的状态变量中的取值为1的状态变量xi和xl是更新目标候选。在与xi同一列中以及与xl同一
行中的取值为0的xk是更新目标候选。这四个状态变量(xi、xj、xk、xl)的值的变化可以由式
(7)表示。
[0056] xi:1→0,xj:0→1,xk:0→1,xl:1→0 (7)
[0057] 假设在四个状态变量(xi、xj、xk、xl)的值被改变的情况下伊辛模型的能量变化为ΔEj,ΔEj可以由下面的式(8)表示。
[0058] ΔEj=(hi+hl)‑(hj+hk)‑(Wil+Wjk) (8)
[0059] 根据xi、xj、xk和xl的变化,局部域的变化量Δhm(m=1、2、…和n)由下面的式(9)表示。
[0060] Δhm=Wmj‑Wmk‑(Wmi‑Wml) (9)
[0061] 以这种方式,在排列优化问题中,式(8)的ΔEj被用于式(5)或式(6)的ΔE。使用式(j) 2
(9)中的Δhm替代式(4)中的δhi 。存储单元11保持N 个状态变量的值。存储单元11保持对
2
应于N 个状态变量中的每个状态变量的局部域hm。处理单元12基于存储单元11中保持的hm
计算ΔEj。基于ΔEj以及式(5)或式(6),处理单元12确定其值允许被改变的四个状态变量。
2
在保持在存储单元11中的N个状态变量中,处理单元12通过改变其值允许被改变的四个状
态变量的值来转换伊辛模型的状态。当四个状态变量的值被改变时,处理单元12将存储单
元11中保持的hm更新为hm=hm+Δhm。
[0062] 例如,处理单元12可以重复执行以下过程:依次选择四个状态变量作为改变候选,执行ΔEj的计算或者式(5)或式(6)的确定,并且改变其值允许被改变的四个状态变量的
值。可替选地,针对改变候选的多组四个状态变量,处理单元12可以并行地执行ΔEj的计算
和式(5)或式(6)的确定。在这种情况下,处理单元12重复执行从允许值改变的集合中随机
选择一个并且改变属于该集合的四个状态变量的值的过程。
[0063] 以这种方式,处理单元12具有在排列优化问题的解的搜索中在一次状态转换试验中改变最多四个状态变量的值的机制。N行和N列中的每个状态变量的值可以由排列(a
permutation)来表示。例如,排列的元素的位置指示行,并且排列的元素的值指示为1的状
态变量的列。图1示出了N=4的情况,例如,排列(1,2,3,4)对应于由4行和4列的总共16个状
态变量表示的状态20。例如,从排列的左边起的第p个值q指示由状态20指示的矩阵的从顶
部起的第p行且从左边起的第q列的元素是1。从排列的左边起第p个值q可以指示由状态20
指示的矩阵的从左边起的第p列且从顶部起的第q行中的元素是1。
[0064] 由处理单元12改变四个状态变量的值的操作对应于交换排列中任意两个元素的位置的操作。同时,通过处理单元12的一次操作,针对初始排列(1,2,3,4),仅可以交换两个
元素,例如(1,2,4,3)、(1,4,3,2)和(4,2,3,1)。
[0065] 当通过这样的操作确定下一转换目的地的状态时,例如,在达到局部解的情况下,可能无法逃脱局部解,并且可能无法获得更合适的解。因此,处理单元12可以通过以下处理
搜索更多不同的解。
[0066] 例如,处理单元12通过重复进行改变四个状态变量的值的状态转换来执行从第一状态通过多个状态返回到第一状态的旅行转换处理(traveling transition process)。在
通过旅行转换处理依次获得的状态中,处理单元12指定第二状态,在第二状态中,从第一状
态开始的每个状态转换的能量函数的值的变化量的累积满足预定确定标准。
[0067] 例如,处理单元12通过重复执行包括以下第一步骤至第四步骤的处理来获取相对于第一状态的第二状态。第一状态是在以下旅行转换处理的起点处的状态。
[0068] 第一步骤是基于式(8)计算在N2个状态变量中的四个状态变量的值被改变的情况下能量变化量的步骤。预先确定接下来其值要被改变的四个状态变量的集合的选择顺序。
[0069] 第二步骤是改变四个状态变量的值的步骤。在第二步骤处,处理单元12还基于式(9)更新局部域hm。
[0070] 第三步骤是确定四个状态变量的值的每次变化的能量变化量的累积是否满足预定确定标准的步骤。从作为起点的第一状态到上一次所获得的能量的变化量的累积保持在
存储单元11中。通过将当前第一步骤中所获得的能量变化量与直至前一次所获得的能量变
化量的累积相加,处理单元12获得直至本次的能量变化量的累积ΔE'。累积ΔE'是作为起
点处状态的第一状态下的能量与当前状态下的能量之间的差。例如,使用上面描述的
Metropolis方法或Gibbs方法的确定标准作为预定确定标准。例如,处理单元12将式(5)或
式(6)中的ΔE设置为变化量的累积ΔE',并且确定是否满足式(5)或式(6)的确定标准。第
二步骤和第三步骤的执行顺序可以颠倒。
[0071] 第四步骤是在变化量的累积不满足预定确定标准的情况下,选择接下来其值要被改变的四个状态变量的集合的步骤。在第四步骤之后,处理单元12进行至第一步骤,并且执
行从第一步骤开始重复的处理。
[0072] 在第三步骤的确定中能量变化量的累积满足预定确定标准的情况下,处理单元12将当前状态指定为相对于第一状态的第二状态,并且结束上述过程的重复。另一方面,处理
单元12将在未指定第二状态的情况下通过多次重复上述包括第一步骤至第四步骤的过程
而达到的状态与第一状态进行匹配。
[0073] 表30和表40指示旅行转换处理的示例,其中状态20被设置为第一状态。表30表示获得了第二状态的情况。表40指示未获得第二状态的情况。表30和表40中的“次数”指示上
述包括第一步骤至第四步骤的过程的重复次数。表30和表40的“状态”指示重复状态转换的
次数等于重复次数时达到的状态。表30和表40中次数为“0”的记录指示第一状态。
[0074] 例如,处理单元12使用转换模式,在该转换模式中,通过聚焦在排列(α,β,γ,δ)的最后一个元素δ上,通过依次选择交换目标(γ,δ)、(β,δ)和(α,δ)来执行切换。在这种情况下,每次交换后的排列是(α,β,δ,γ),(α,δ,β,γ)和(δ,α,β、γ)。当δ达到排列的头部时,处理单元12将该状态设置为新的排列(α,β,γ,δ),并且以相同的方式依次选择交换目标。因此,通过重复改变由4行和4列的状态变量表示的状态12次,状态返回至初始状态。
[0075] 表30示出了在旅行转换处理期间满足确定标准的情况的示例。例如,假设处理单元12确定在上述转换模式以状态20为起点重复四次时的时间点处能量变化量的累积ΔE'
满足确定标准。在这种情况下,处理单元12将对应于排列(4、1、3、2)的状态21指定为状态20
的第二状态。
[0076] 表40示出了在旅行转换处理期间不满足确定标准的情况的示例。例如,处理单元12在上述转换模式以状态20为起点重复12次时的时间点处达到状态20。例如,处理单元12
将直到达到状态20为止由转换模式生成的所有状态设置为不同的状态。如上所述,通过重
复进行利用特定转换模式进行替换来从第一状态开始并再次返回至第一状态的过程被称
为旅行场景(traveling scenario)。
[0077] 以这种方式,利用信息处理设备10,通过重复进行改变四个状态变量的值以满足2
当N个状态变量被布置在N行和N列中时包括在每行中的状态变量的值之和为1并且包括在
每列中的状态变量的值之和为1的约束的状态转换来执行从第一状态通过多个状态返回至
第一状态的旅行转换处理。在通过旅行转换处理而依次获得的多个状态中指定第二状态,
在该第二状态中,从第一状态开始的每个状态转换的能量函数的值的变化量的累积满足预
定确定标准。同时,由于旅行转换处理可以在当第二状态被指定的时间点处结束,因此在这
种情况下,信息处理设备10未获得旅行转换处理中第一状态返回至第一状态的所有状态。
[0078] 例如,信息处理设备10可以通过多次执行处理单元12的一次改变四个状态变量的值的操作来搜索相对于第一状态的第二状态。因此,例如,信息处理设备10可以相对于由排
列(1,2,3,4)表示的第一状态有效地搜索由排列(1,4,2,3)、(4,1,3,2)等表示的更多各种状态,并且获得第二状态。由排列(1,4,2,3)或(4,1,3,2)表示的状态是这样的状态,在该状态中,相对于由排列(1、2、3、4)表示的状态,数量大于4个的状态变量的值被改变。例如,可
以说,信息处理设备10通过旅行转换处理来实现相对于第一状态改变数量大于4个的状态
变量的值的多位转换。
[0079] 还考虑到信息处理设备10重复状态转换以使得不返回到第一状态,并且实现相对于第一状态的多位转换。同时,在这种情况下,由于无法保证可以获得第二状态,所以当从
第一状态开始状态转换时,信息处理设备10在存储单元11中保持第一状态中每个状态变量
的值的副本和每个状态变量的局部域hm的副本。这是因为在未获得第二状态的情况下,可
以恢复第一状态。同时,在第一状态中的每个状态变量的值的副本和局部域hm的副本保持
在存储单元11中的情况下,存储单元11需要较大的存储容量。例如,在保持了第一状态中的
每个状态变量的局部域hm的副本的情况下,为存储单元11请求的存储容量可能变得过大。
[0080] 因此,通过用旅行转换处理将起点和终点与第一状态匹配,例如,信息处理设备10不必将对应于第一状态的局部域hm的副本保持在存储单元11中。通过旅行转换处理达到第
一状态,每个状态变量的局部域hm也变为对应于第一状态的值。因此,例如,信息处理设备
10可以搜索更多各种状态,同时例如通过有效地使用存储容量来抑制为存储单元11请求的
存储容量的增加。因此,信息处理设备10可以有效地搜索各种状态。
[0081] 信息处理设备10可以结合正常搜索处理来执行旅行转换处理。正常搜索处理是这样的处理:通过根据在四个状态变量的值相对于当前状态被改变以满足双向独热约束的情
况下的能量变化量是否满足上述确定标准确定相对于当前状态的转换目的地的状态来搜
索解。
[0082] 例如,处理单元12首先执行正常搜索处理。在正常搜索处理中达到局部解的情况下,处理单元12可以以局部解作为第一状态来执行旅行转换处理。达到局部解的情况是在
正常搜索处理中当前时间点的下一转换目的地候选的所有状态都不满足式(5)或式(6)的
确定标准的情况。在这种情况下,当处理单元12通过旅行转换处理获得第二状态时,处理单
元12可以从第二状态返回至正常搜索处理。因此,信息处理设备10可以从正常搜索处理中
的局部解中逃脱,搜索更合适的解,并且提高解搜索性能。
[0083] 作为又一示例,信息处理设备10可以通过包括多个旅行场景的旅行转换处理来搜索解。例如,在处理单元12通过第一旅行场景返回至旅行转换处理中的第一状态的情况下,
处理单元12可以通过第二旅行场景继续旅行转换处理。在通过第一旅行场景在旅行转换处
理中指定了第二状态的情况下,处理单元12可以通过将指定的第二状态设置为新的第一状
态来通过第二旅行场景继续旅行转换处理。
[0084] 例如,在正常搜索处理中达到局部解的情况下,处理单元12进行至通过第一旅行场景进行的旅行转换处理,并且通过第一旅行场景获取第二状态。处理单元12可以通过将
第二状态设置为新的第一状态来进行至通过第二旅行场景进行的旅行转换处理,通过第二
旅行场景获取第二状态,并且从第二状态返回到正常搜索处理。处理单元12可以仅通过使
用多个旅行场景的旅行转换处理而不使用正常搜索处理来搜索解。
[0085] 以这种方式,通过组合使用多个旅行场景,信息处理设备10可以搜索通过仅一个旅行场景可能无法达到的各种解,并且可以提高解搜索性能。
[0086] 在周期性降低式(5)或式(6)中使用的温度值T的同时,处理单元12执行上述包括旅行转换处理的对解的搜索。在达到最终温度值后,例如,处理单元12输出到目前为止所获
得的解中具有最低能量的解作为排列优化问题的最终解。因此,信息处理设备10可以有效
地获得排列优化问题的解。
[0087] [第二实施方式]
[0088] 接下来,将描述第二实施方式。
[0089] 图2是示出根据第二实施方式的信息处理设备的硬件示例的图。
[0090] 信息处理设备100通过使用MCMC方法来搜索组合优化问题的解,并且输出搜索到的解。信息处理设备100包括CPU 101、RAM 102、硬盘驱动器(HDD)103、GPU 104、输入接口
105、介质读取器106、网络接口卡(NIC)107和加速器卡108。
[0091] CPU 101是执行程序的命令的处理器。CPU 101将存储在HDD 103中的程序或数据的至少一部分加载到RAM 102中并且执行该程序。CPU 101可以包括多个处理器核。信息处
理设备100可以具有多个处理器。可以通过使用多个处理器或处理器核并行执行下面所描
述的处理。多个处理器的集合可以被称为“多处理器”或仅被称为“处理器”。
[0092] RAM 102是易失性半导体存储器,其临时存储由CPU 101执行的程序或被CPU 101用于进行操作的数据。信息处理设备100可以包括除了RAM以外的类型的存储器,并且可以
包括多个存储器。
[0093] HDD 103是非易失性存储装置,其存储数据以及软件的程序,例如操作系统(OS)、中间件或应用软件。信息处理设备100可以包括其他类型的存储装置,例如,闪速存储器和
固态驱动器(SSD),并且可以包括多个非易失性存储装置。
[0094] GPU 104根据来自CPU 101的命令将图像输出到耦接至信息处理设备100的显示器51。任意类型的显示器例如阴极射线管(CRT)显示器、液晶显示器(LCD)、等离子显示器或有
机电致发光(OEL)显示器可以用作显示器51。
[0095] 输入接口105从耦接至信息处理设备100的输入装置52获取输入信号,并且将输入信号输出至CPU 101。可以使用定点装置例如鼠标、触摸面板、触摸板或轨迹球、键盘、远程
控制器、按钮开关等作为输入装置52。多种类型的输入装置可以耦接至信息处理设备100。
[0096] 介质读取器106是读取记录在记录介质53中的程序或数据的读取装置。例如,可以使用磁盘、光盘、磁光(MO)盘、半导体存储器等作为记录介质53。磁盘包括软盘(FD)或HDD。
光盘包括致密盘(CD)或数字多功能光盘(DVD)。
[0097] 例如,介质读取器106将从记录介质53读取的程序或数据复制到另一记录介质例如RAM 102或HDD 103中。例如,所读取的程序由CPU 101执行。记录介质53可以是便携式记
录介质,并且可以用于分发程序和数据。记录介质53和HDD 103在某些情况下可以被称为计
算机可读记录介质。
[0098] NIC 107是耦接至网络54的接口,并且经由网络54与另一计算机通信。例如,NIC 107通过线缆耦接至通信装置例如交换机或路由器。NIC 107可以是无线通信接口。
[0099] 加速器卡108是通过使用MCMC方法来搜索由式(1)的伊辛型能量函数表示的问题的解的硬件加速器。加速器卡108从CPU 101接收指示关于包括权重系数或偏差的能量函数
的信息的问题数据,搜索解并输出搜索到的解。
[0100] 通过在特定温度下执行MCMC方法或者在多个温度之间交换伊辛模型的状态的副本交换方法,可以使用加速器卡108作为在对应温度下对遵循玻尔兹曼分布的状态进行采
样的采样器。为了搜索组合优化问题的解,加速器卡108执行退火处理,例如其中温度值逐
渐降低的SA方法或副本交换方法。
[0101] SA方法是通过在每个温度值处根据玻尔兹曼分布对状态进行采样并且将用于采样的温度值从高温降低到低温(例如,增加逆温度β)来高效地找到最优解的方法。由于即使
在低温侧(例如β较大)的情况下,状态也有一定程度的改变,因此即使温度值迅速降低,也
存在可以找到合适的解的较高可能性。例如,在使用SA方法的情况下,加速器卡108在特定
温度值下重复状态转换试验特定次数之后,重复进行降低温度值的操作。
[0102] 副本交换方法是使用多个温度值独立地执行MCMC方法并且针对在各个温度值下获得的状态适当地交换温度值的方法。通过在低温下用MCMC方法搜索窄范围的状态空间,
并且在高温下用MCMC方法搜索宽范围的状态空间,可以有效地找到合适的解。例如,在使用
副本交换方法的情况下,加速器卡108在多个温度值中的每个温度值处并行地执行状态转
换试验,重复进行在每次执行特定数目的试验时针对在每个温度值处获得的状态以预定交
换概率交换温度值的操作。
[0103] 加速器卡108具有FPGA109。FPGA109在加速器卡108中实现解搜索功能。解搜索功能可以通过另一类型的电子电路例如GPU或ASIC来实现。FPGA109包括存储器109a。存储器
109a保持用于在FPGA109中搜索的问题数据或在FPGA109中搜索到的解。例如,存储器109a
是静态随机存取存储器(SRAM)。FPGA109可以包括包含存储器109a在内的多个存储器。
FPGA109是根据第一实施方式的处理单元12的示例。存储器109a是根据第一实施方式的存
储单元11的示例。加速器卡108可以具有FPGA109外部的RAM,并且可以根据FPGA 109的处理
将存储在存储器109a中的数据临时保存到RAM中。
[0104] 可以将搜索具有伊辛形式的问题的解的硬件加速器(例如,加速器卡108)称为伊辛机器、玻尔兹曼机器等。
[0105] 图3是示出具有双向独热的位翻转控制示例的图。
[0106] 在组合优化问题中可以施加被称为双向独热约束的约束条件。具有双向独热约束的组合优化问题被称为排列优化问题。双向独热简称为2W1H。
[0107] 独热约束是“在特定的状态变量集合中仅存在一个值为“1”的变量”的约束。例如,2
图3示出了N行和N列中的N (其中,N是等于或大于3的整数)个状态变量x1、x2、…。组g11和组
g12指示对应于行的状态变量组的示例。组g21和组g22指示对应于列的状态变量组的示例。
在将独热约束应用于对应于行的状态变量组的情况下,每行的状态变量之和等于1。例如,
属于组g11的状态变量之和等于1。属于组g12的状态变量之和等于1。可替选地,在将独热约
束应用于对应于列的状态变量组的情况下,每列的状态变量之和等于1。例如,属于组g21的
状态变量之和等于1。属于组g22的状态变量之和等于1。
[0108] 根据2W1H,通过一次操作改变4个状态变量的值以使得满足两个独热约束。例如,获取了如式(7)中所表示的4位翻转。i、j、k和l是指示要翻转的状态变量集合的一组索引。
得到i2
数是N ,并且每个状态变量被分组为在N行中的每行和N列中的每列中施加独热约束的组。
这种情况下的能量变化ΔEj由式(8)表示。对应于状态变量xm的局部域的变化量Δhm由式
2
(9)表示。m=1,2,…和N。
[0109] 图4A和图4B是示出伊辛模型的状态与排列之间的对应关系的示例的图。
[0110] 图4A示出了在N=5的情况下的伊辛模型的状态61的示例。图4B示出了在N=5的情况下的伊辛模型的状态62。状态61和状态62中的每个状态由25个状态变量x1至x25表示。由
状态61和状态62中的每个状态指示的矩阵的第一行是状态变量x1至x5的组。第二行是状态
变量x6至x10的组。第三行是状态变量x11至x15的组。第四行是状态变量x16至x20的组。第五行
是状态变量x21至x25的组。也在列方向上对每个状态变量进行分组。
[0111] 在状态61的示例中,在行方向上的每组的状态变量的值如下。{x1,x2,x3,x4,x5}={1,0,0,0,0}。{x6,x7,x8,x9,x10}={0,1,0,0,0}。{x11,x12,x13,x14,x15}={0,0,1,0,0}。{x16,x17,x18,x19,x20}={0,0,0,1,0}。{x21,x22,x23,x24,x25}={0,0,0,0,1}。在这种情况下,状态
61被表示为排列(1,2,3,4,5)。如上所述,例如,从排列的左侧起的第p个值q指示由状态61、状态62等指示的矩阵从顶部起的第p行且从左侧起的第q列的元素为1。
[0112] 在状态62的示例中,在行方向上的每组的状态变量的值如下。{x1,x2,x3,x4,x5}={0,0,0,1,0}。{x6,x7,x8,x9,x10}={0,1,0,0,0}。{x11,x12,x13,x14,x15}={0,0,1,0,0}。{x16,x17,x18,x19,x20}={0,0,0,0,1}。{x21,x22,x23,x24,x25}={1,0,0,0,0}。在这种情况下,状态
62由排列(4,2,3,5,1)来表示。
[0113] 图5是示出信息处理设备的功能示例的图。
[0114] 信息处理设备100搜索排列优化问题的解。信息处理设备100包括权重系数保持单元110、局部域保持单元120、ΔE计算单元130、确定单元140、状态保持单元150、控制单元
160和旅行场景存储单元170。FPGA 109实现权重系数保持单元110、局部域保持单元120、Δ
E计算单元130、确定单元140、状态保持单元150、控制单元160和旅行场景存储单元170。存
储器109a被用作权重系数保持单元110、局部域保持单元120和旅行场景存储单元170中的
数据存储区域。
[0115] 权重系数保持单元110保持式(1)中的权重系数矩阵W。基于从确定单元140提供的索引j,权重系数保持单元110将权重系数Wmi、Wmj、Wmk和Wml提供给局部域保持单元120。
[0116] 局部域保持单元120保持局部域h1、h2、…和hn,并且根据通过2W1H的四个状态变量xi、xj、xk和xl的值的变化,基于权重系数保持单元110中保持的权重系数矩阵W,通过式(9)
2
更新局部域h1、h2、……和hn。n是所有状态变量的数量,并且n=N。
[0117] ΔE计算单元130通过式(8)计算在状态变量xi、xj、xk和xl的值被改变的情况下的能量变化ΔEj。对于被设置为改变候选的多个状态变量,ΔE计算单元130可以并行计算多
个ΔE。
[0118] 基于式(6),确定单元140确定是否允许四个状态变量xi、xj、xk和xl的值的改变。在允许的情况下,确定单元140改变状态保持单元150中保持的四个状态变量xi、xj、xk和xl的
值,并且将索引i、j、k和l提供给权重系数保持单元110。在ΔE计算单元130并行计算多个Δ
E的情况下,确定单元140基于式(6)选择其值允许被改变的多个四个状态变量集合中的任
意一个,并且改变属于所选择的集合的四个状态变量的值。
[0119] 状态保持单元150保持状态变量(x1、x2、…和xn)。通过相对于初始状态中的能量根据状态转换对ΔE进行积分,状态保持单元150可以保持对应于当前状态的能量。
[0120] 根据保持在旅行场景存储单元170中的旅行场景,控制单元160控制局部域保持单元120和ΔE计算单元130中的旅行转换模式下的操作。旅行转换模式是执行第一实施方式
的旅行转换处理的模式。在旅行转换模式下,控制单元160指定状态变量(x1、x2、…和xn)中
的哪四个比特例如哪四个状态变量的值要被改变,并且读取局部域,并且执行ΔE的计算。
控制单元160控制局部域保持单元120和ΔE计算单元130在正常2W1H模式下的操作与旅行
转换模式下的操作之间进行切换。
[0121] 例如,正常2W1H模式是这样的模式:其中状态变量(x1、x2、…和xn)之一被顺序地选择为xj,并且执行是否要改变四个状态变量xi、xj、xk和xl的值的试验。正常2W1H模式是执行
第一实施方式中的正常搜索处理的模式。在正常2W1H模式下,可以针对多个xj并行执行是
否要改变四个状态变量xi、xj、xk和xl的值的试验。在正常2W1H模式下要改变的状态变量的
数量在每次试验中最多为四个。例如,日本公开特许公报第2021‑157361号用作正常2W1H模
式下的参考。
[0122] 旅行场景存储单元170存储关于旅行场景的信息。存储在旅行场景存储单元170中的关于旅行场景的信息从外部可重写。
[0123] 图6是示出正常2W1H模式和旅行转换模式的操作示例的图。
[0124] 表200示出了信息处理设备100的正常2W1H模式和旅行转换模式的操作示例。作为示例,设置N=5。例如,初始状态由排列(1,2,3,4,5)来指示。表200中的“替换候选”指示在排列中用作替换候选的两个元素中的每个元素的位置。
[0125] 在这种情况下,在正常2W1H模式中,排列(1,2,3,4,5)的下一状态转换目的地候选的状态是其中排列的所述两个元素被替换的状态。对于排列(1,2,3,4,5),下一状态转换目
的地候选的数目是10。例如,在正常2W1H模式中,在步骤“1”至步骤“10”中式(6)不允许10个
状态转换目的地候选中的任何一个的情况下,控制单元160确定达到了局部解,并且使得局
部域保持单元120和ΔE计算单元130转换到旅行转换模式。此时,旅行转换模式的起点的状
态是对应于局部解的排列(1,2,3,4,5)的状态。
[0126] 例如,在旅行转换模式下使用以下旅行场景。例如,首先,控制单元160用另一元素替换排列(1,2,3,4,5)的最后一个元素“5”以使得将最后一个元素“5”一个接一个地朝着排列的头部移动。在这种情况下,在四个步骤中,元素“5”到达头部并变为排列(5,1,2,3,4)。
控制单元160用另一元素替换排列(5,1,2,3,4)的最后一个元素“4”以使得将最后一个元素
“4”一个接一个地朝着排列(5,1,2,3,4)的头部移动。通过重复上述操作,排列以总共20个
步骤返回至旅行转换模式的起点的排列(1、2、3、4、5)。可以说,在旅行转换模式下由旅行场
景顺序执行的转换是临时转换。
[0127] 在旅行转换模式下的上述操作期间,ΔE计算单元130计算式(8)的ΔE,并且在每个步骤中累积计算的ΔE。局部域保持单元120根据每个步骤中四个状态变量的值的变化来
更新局部域h1至hn。确定单元140在每个步骤中更新状态保持单元150中的对应四个状态变
量的值,并且确定累积的ΔE是否满足式(6)的确定标准。
[0128] 例如,ΔE计算单元130计算开始状态下的下一临时转换目的地#1的ΔE1。即使不接受该转换,也对状态和局部域进行更新。通过使用局部域,ΔE计算单元130获得下一临时
转换目的地#2的ΔE12,并且通过设置ΔE1+ΔE12=ΔE2来计算累积ΔE=ΔE2。ΔE2是从
开始状态到临时转换目的地#2的状态转换的情况下的能量差。以同样的方式,通过设置Δ
E1+ΔE12+ΔE23=ΔE3,获得临时转换目的地#3的累积ΔE=ΔE3。针对这些ΔEi,确定单
元140确定是否满足由式(6)表示的Metropolis确定标准。
[0129] 在满足式(6)的确定标准的阶段,控制单元160以该时间点的状态作为起点从旅行转换模式切换到正常2W1H模式。可替选地,控制单元160在不同的旅行场景中继续旅行转换
模式。在继续旅行转换模式的情况下,重置能量差的累积相加,并且从该点重新开始处理。
即使在切换到正常2W1H模式或继续旅行转换模式的情况下,也对局部域进行更新,使得局
部域不会被新更新。
[0130] 另一方面,在旅行转换模式下总共20个步骤中的所有步骤都不满足式(6)的确定标准的情况下,状态保持单元150中保持的状态变量x1至xn返回到排列(1,2,3,4,5)的状态。
保持在局部域保持单元120中的局部域h1至hn也返回到对应于排列(1,2,3,4,5)的状态的
值。例如,在当前旅行场景中状态返回到由排列(1、2、3、4、5)指示的初始状态的情况下,控
制单元160可以通过另一旅行场景继续旅行转换模式。
[0131] 接下来,将对信息处理设备100通过使用SA方法来执行排列优化问题的解的搜索的处理过程进行描述。
[0132] 图7是示出信息处理设备的处理示例的流程图。
[0133] (S10)控制单元160设置在确定单元140中要在式(6)中使用的温度值T。在第一次执行步骤S10的情况下,控制单元160将初始温度值设置为温度值T。在第二次或之后执行步
骤S10的情况下,控制单元160将温度值T设置为低于前一值的值。
[0134] (S11)控制单元160使局部域保持单元120和ΔE计算单元130在正常2W1H模式下操作以执行解搜索。在2W1H模式下的操作期间,控制单元160执行步骤S12和S17。
[0135] (S12)在正常2W1H模式下的解搜索中,控制单元160确定是否达到局部解。在达到局部解的情况下,处理进行至步骤S13。在未达到局部解的情况下,处理进行至步骤S11。例
如,在确定单元140拒绝下一转换目的地候选的所有状态的情况下,控制单元160确定达到
了局部解。下一转换目的地候选的所有状态都被拒绝的情况是对应于下一转换目的地候选
的所有能量变化量都为正且不满足式(5)或式(6)的确定标准的情况。
[0136] (S13)控制单元160使局部域保持单元120和ΔE计算单元130转换为旅行转换模式。
[0137] (S14)控制单元160使局部域保持单元120和ΔE计算单元130根据旅行场景执行操作。只要在旅行转换模式下不接受转换,下一临时转换中的ΔE就被计算为通过将上一临时
转换中的ΔE与累积相加量相加而获得的值。
[0138] (S15)控制单元160确定旅行转换模式下的累积ΔE是否减小。在累积ΔE减小的情况下,处理进行至步骤S16。在累积ΔE没有减小的情况下,处理进行至步骤S14。累积ΔE减
小的情况可以是累积ΔE变为负的情况。在ΔE<0的情况下,满足式(6)的确定标准。同时,取
决于温度值或随机数值,式(6)的确定标准可能允许累积ΔE>0的状态转换。
[0139] (S16)控制单元160结束旅行转换模式,并且使局部域保持单元120和ΔE计算单元130转换到正常2W1H模式。处理进行至步骤S11。
[0140] (S17)控制单元160确定在正常2W1H模式下的解搜索中是否对改变候选的变量xj进行了定义次数的选择。在对改变候选的变量xj进行了定义次数的选择的情况下,处理进
行至步骤S18。在对改变候选的变量xj没有进行定义次数的选择的情况下,处理进行至步骤
S11。如上所述,根据对改变候选xj的选择,指定了改变候选的四个状态变量xi、xj、xk和xl。
[0141] (S18)控制单元160确定温度值T是否降低了定义的次数。在温度值T降低了定义的次数的情况下,控制单元160输出具有到目前为止所获得的最低能量的解并结束该处理。在
温度值T没有降低达定义的次数的情况下,处理进行至步骤S10。
[0142] 步骤S17和S18可以被认为是在步骤S11中执行的处理。在步骤S11的执行期间,执行步骤S12的确定。
[0143] 以这种方式,信息处理设备100可以执行正常2W1H模式,并且在正常2W1H模式下达到局部解的情况下,执行以局部解作为起点处的状态的旅行转换模式。在这种情况下,在通
过旅行转换模式指定具有比起点状态低的能量的状态的情况下,信息处理设备100可以从
指定状态返回到正常2W1H模式。因此,信息处理设备100可以在正常2W1H模式下逃脱本地
解,搜索更合适的解,并且提高解搜索性能。
[0144] 在不是执行旅行转换模式而是执行不返回初始状态的转换模式的情况下,期望存储初始状态的局部域。在这种情况下,期望局部域的存储区域为两倍。
[0145] 相比之下,在旅行转换模式下,即使在所有转换目的地候选都未被接受的情况下,局部域也返回到旅行转换模式的开始时间点处的值。因此,可以不存储初始状态下的局部
域。因此,信息处理设备100可以有效地使用存储区域并提高解搜索性能。
[0146] 尽管对图7所示的过程中执行SA方法的示例进行了描述,但是信息处理设备100可以执行副本交换方法。在这种情况下,可以通过在副本之间交换温度值来执行步骤S10中的
温度值的设置。例如,步骤S18中的确定可以基于温度值的交换是否被执行了定义的次数来
进行。
[0147] 旅行转换模式下的旅行场景可以不同于图6所示的示例。接下来,将对旅行转换模式下所使用的另一旅行场景的示例进行描述。
[0148] 图8是示出旅行转换模式的另一示例(部分1)的图。
[0149] 旅行场景71示出了其中排列(1,2,3,4,5)中的元素(4,5)被固定的示例。在旅行场景71中,用另一元素顺序地替换元素“3”以使得从初始状态下的步骤“1”一个接一个地向前
移动,以相同的方式用另一元素顺序地替换元素“2”,并且以相同的方式用另一元素顺序地
替换元素“1”。通过这样做,步骤“7”中达到的排列与初始排列(1、2、3、4、5)一致。
[0150] 图9是示出旅行转换模式的另一示例(部分2)的图。
[0151] 旅行场景72示出了其中排列(1,2,3,4,5)中的元素(3,5)被固定的示例。在旅行场景72中,用另一元素顺序地替换元素“4”以使得通过跳过元素“3”从步骤“1”一个接一个地
向前移动。接下来,也以相同的方式通过跳过元素“3”用另一元素顺序地替换元素“2”,并且
然后也以相同的方式通过跳过元素“3”用另一元素顺序地替换元素“1”。通过这样做,在步
骤“7”中达到的排列与初始排列(1、2、3、4、5)一致。
[0152] 图10是示出旅行转换模式的另一示例(部分3)的图。
[0153] 旅行场景73示出了示例,在该示例中,在排列(1,2,3,4,5)中,元素(1,5)在步骤“1”至步骤“4”中固定,元素(1,5)在步骤“5”中被替换,并且元素(1,5)在步骤“6”至步骤“9”中再次固定。在旅行场景73中,用另一元素顺序地替换元素“2”以使得从步骤“1”一个接一
个地向后移动。在步骤“4”中,元素(3,4)被替换。用另一元素顺序地替换元素“4”以使得从
步骤“6”一个接一个地向后移动。在步骤“9”处,元素(1,5)被替换。通过这样做,步骤“9”中达到的排列与初始排列(1、2、3、4、5)一致。
[0154] 以这种方式,信息处理设备100可以使用各种旅行场景。如上所述,在旅行转换模式下以特定旅行场景执行搜索之后,信息处理设备100可以在旅行转换模式下以另一旅行
场景继续搜索。例如,控制单元160可以在通过使用旅行场景71到达步骤“7”之后使用旅行
场景72。在旅行场景71至旅行场景73中例示的排列中的每个值可以表示从步骤“1”中的排
列的左侧起计数的每个元素的位置。在这种情况下,例如,在旅行场景71指定了从步骤“1”
开始的能量变化的累积满足Metropolis标准的状态的情况下,控制单元160可以通过使用
以指定状态作为起点的旅行场景72来继续旅行转换模式。通过组合多个旅行场景,信息处
理设备100可以有效地搜索更多各种状态。
[0155] 如上所述,例如,信息处理设备100执行以下处理。
[0156] 信息处理设备100存储指示包括在能量函数中的伊辛模型的状态的N2个状态变2
量。信息处理设备100通过重复进行改变四个状态变量的值以使得满足当N个状态变量被
布置在N行和N列中时包括在每行中的状态变量的值之和为1并且包括在每列中的状态变量
的值之和为1的约束的状态转换,来执行从第一状态通过多个状态返回至第一状态的旅行
转换处理。在通过旅行转换处理而顺序地获得的状态中,信息处理设备100指定第二状态,
在该第二状态中,从第一状态开始的每个状态转换的能量函数的值的变化量的累积满足预
定确定标准。
[0157] 因此,信息处理设备100可以有效地搜索各种状态。例如,通过FPGA109、GPU等来实现信息处理设备100的上述功能。例如,可以通过执行存储在CPU 101中的程序的RAM 102来
实现信息处理设备100的上述功能。包括用于FPGA 109、GPU、CPU 101等的算术电路的协处
理器或处理器是根据第一实施方式的处理单元12的示例。例如,使用温度值和随机数值的
基于Metropolis方法的确定标准或基于Gibbs方法的确定标准是预定确定标准的示例。
[0158] 例如,在旅行转换处理中,信息处理设备100针对每个状态转换计算从第一状态开始根据该状态转换的能量函数的值的变化量,并且确定每个状态转换的变化量的累积是否
满足预定确定标准。在变化量的累积不满足预定确定标准的情况下,信息处理设备100选择
接下来其值要被改变的四个状态变量的集合,并且在变化量的累积满足预定确定标准的情
况下,信息处理设备100获取当前状态转换之后的状态作为第二状态。
[0159] 因此,信息处理设备100可以通过使用确定标准例如Metropolis标准来适当地获取第二状态。
[0160] 信息处理设备100存储对应于N2个状态变量的N2个局部域,所述N2个局部域用于根据状态转换计算能量函数的值的变化量。信息处理设备100将在旅行转换处理的开始点处
2 2
对应于第一状态的N个局部域与在旅行转换处理的结束点处对应于第一状态的N 个局部域
相匹配。
[0161] 因此,在执行旅行转换处理时,信息处理设备100可以不保持对应于用作起点的第一状态的每个局部域的副本,并且可以有效地使用存储容量来提高解搜索的效率。
[0162] 信息处理设备100将旅行转换处理中要经过的多个状态设置为彼此不同的状态。因此,信息处理设备100可以有效地搜索各种状态。
[0163] 信息处理设备100可以执行正常搜索处理,在正常搜索处理中,根据在四个状态变量的值被改变以满足约束的情况下能量函数的值的变化量是否满足预定确定标准来重复
四个状态变量的值的更新。在正常搜索处理中达到局部解的情况下,信息处理设备100可以
以局部解作为第一状态来执行旅行转换处理。
[0164] 因此,在正常搜索处理中的解搜索被延误的情况下,通过切换到旅行转换处理,信息处理设备100可以逃脱在正常搜索处理中达到的局部解,继续进行解搜索,并且提高解搜
索性能。
[0165] 此时,在通过旅行转换处理指定第二状态的情况下,信息处理设备100可以从第二状态重新开始正常搜索处理。因此,信息处理设备100可以在通过使用旅行转换过程逃脱正
常搜索处理中达到的局部解之后继续正常搜索处理,并且可以提高解搜索性能。
[0166] 信息处理设备100可以通过使用第一旅行场景来执行旅行转换处理,该第一旅行场景指示其值要被改变的四个状态变量的集合的第一选择顺序。在没有通过使用第一旅行
场景的旅行转换处理指定第二状态的情况下返回第一状态时,信息处理设备100可以通过
切换到第二旅行场景来执行旅行转换处理,该第二旅行场景指示不同于第一选择顺序的第
二选择顺序。因此,信息处理设备100可以有效地搜索更多各种状态。
[0167] 当通过使用第一旅行场景的旅行转换处理指定第二状态时,信息处理设备100可以切换到指示不同于第一选择顺序的第二选择顺序的第二旅行场景,并且通过将指定的第
二状态设置为新的第一状态来执行旅行转换处理。因此,信息处理设备100可以有效地搜索
更多各种状态。
[0168] 信息处理设备100的上述功能可以应用于排列优化问题,例如QAP、TSP、VRP和LOP。
[0169] 可以通过使处理单元12执行程序来实现根据第一实施方式的信息处理。可以通过使CPU 101执行程序来实现根据第二实施方式的信息处理。程序可以记录在计算机可读记
录介质53中。
[0170] 例如,可以通过分发其中记录有程序的记录介质53来分发程序。该程序可以存储在另一计算机中,并且该程序可以经由网络分发。例如,计算机可以将记录在记录介质53中
或者从另一计算机接收到的程序存储(安装)在存储装置例如RAM 102或HDD 103中,从存储
装置读取该程序,并且执行该程序。