程序和信息处理设备的制作方法

文档序号:32154251发布日期:2022-11-11 21:58阅读:28来源:国知局
程序和信息处理设备的制作方法

1.本文讨论的实施方式涉及程序、信息处理方法和信息处理设备。


背景技术:

2.信息处理设备可以用于获得组合优化问题的解。信息处理设备将组合优化问题转换成作为表示磁体的自旋行为的模型的伊辛模型的能量函数,并且在能量函数中包括的状态变量的值的组合之中搜索使能量函数最小化或最大化的组合。使能量函数最小化或最大化的状态变量的值的组合对应于由状态变量的集合表示的基态或最优解。作为用于在实际时间中获取组合优化问题的近似解的方法,应用了其中基于马尔可夫链蒙特卡罗(mcmc)方法组合使用模拟退火(sa)方法、并行回火方法等的方法。
3.例如,作为执行mcmc方法的设备,存在根据索引顺序(顺序地)选择状态变量并确定是否允许其中状态变量的值将被改变的状态转变的设备,以及执行用于通过将多个状态转变同时设置为转变候选来选择单个状态转变的并行搜索的设备。
4.[引用列表]
[0005]
[专利文献]
[0006]
[专利文献1]日本公开特许公报第2020-135727号。
[0007]
[专利文献2]美国专利申请公开第2014/0279816号。


技术实现要素:

[0008]
[问题]
[0009]
如上所述,为了获得由能量函数表示的问题的解,考虑以预定顺序例如状态变量的索引来选择状态变量,并且确定是否允许与状态变量相关的状态转变。根据该方法,重复执行针对多个状态变量中的每一个状态变量的确定,直到例如以在完成一轮的状态变量并且任何状态转变不被允许的情况下开始下一轮确定的方式执行状态转变。然而,因为在不执行状态转变的同时迭代次数增加,因此获得解所花费的时间增加。
[0010]
一方面,本实施方式的目的是提供一种用于提高解搜索效率的程序、信息处理方法和信息处理设备。
[0011]
[问题的解决方案]
[0012]
在一个实施方式中,一种程序,在该程序中计算机执行以下处理:执行搜索处理,该搜索处理根据预定顺序重复地执行选择处理、确定处理和状态改变处理,以搜索由包括多个状态变量的能量函数表示的问题的解。选择处理包括以预定顺序选择作为多个状态变量的一部分的变化候选的状态变量。确定处理包括基于与在选择处理中所选择的变化候选的状态变量的值的变化对应的能量函数的值的变化量来确定是否改变变化候选的状态变量的值。状态改变处理包括当在确定处理中确定变化候选的状态变量的值将被改变时,改变变化候选的状态变量的值。该搜索处理还包括:计数处理,其包括对在重复执行的搜索处理中确定变化候选的状态变量的值将连续不被改变的次数进行计数;以及校正处理,其包
括当在计数处理中计数的次数达到预定次数时,利用偏移值来校正与新选择的变化候选的状态变量的值的变化对应的能量函数的变化量。确定处理包括在通过校正处理校正变化量之后,执行基于校正后的变化量来确定是否要改变新选择的变化候选的状态变量的值。
[0013]
此外,在一个实施方式中,一种程序,在该程序中计算机执行以下处理:执行搜索处理,该搜索处理根据预定顺序重复地执行选择处理、确定处理和状态改变处理,以搜索由包括多个状态变量的能量函数表示的问题的解。选择处理包括以预定顺序选择作为多个状态变量的一部分的变化候选的状态变量。确定处理包括基于与在选择处理中选择的变化候选的状态变量的值的变化对应的能量函数的值的变化量来确定是否改变变化候选的状态变量的值。状态改变处理包括当在确定处理中确定变化候选的状态变量的值将被改变时,改变变化候选的状态变量的值。该搜索处理还包括:计数处理,其包括对在重复执行的搜索处理中确定变化候选的状态变量的值将连续不被改变的次数进行计数;当在计数处理中计数的次数达到预定次数时,基于根据变化量和随机数值计算的概率密钥从多个状态变量中选择第一状态变量;以及改变所选择的第一值的值。
[0014]
此外,在一个实施方式中,提供了一种信息处理方法。
[0015]
此外,在一个实施方式中,提供了一种信息处理设备。
[0016]
[发明效果]
[0017]
根据一个方面,可以提高解搜索的效率。
附图说明
[0018]
图1是示出根据第一实施方式的信息处理设备的图;
[0019]
图2是示出根据第二实施方式的信息处理设备的图;
[0020]
图3是示出根据第三实施方式的信息处理设备的硬件示例的图;
[0021]
图4是示出信息处理设备的功能示例的图;
[0022]
图5是示出副本更新单元的功能示例的图;
[0023]
图6是示出信息处理设备的处理示例的流程图;
[0024]
图7是示出示例性解结果(部分1)的图;
[0025]
图8是示出示例性解结果(部分2)的图;
[0026]
图9是示出根据第四实施方式的副本更新单元的功能示例的图;
[0027]
图10是示出信息处理设备的处理示例的流程图;
[0028]
图11是示出比较示例的流程图;以及
[0029]
图12是示出根据第五实施方式的信息处理设备的功能示例的图。
具体实施方式
[0030]
在下文中,将参照附图描述本实施方式。
[0031]
[第一实施方式]
[0032]
将描述第一实施方式。
[0033]
图1是示出根据第一实施方式的信息处理设备的图。
[0034]
信息处理设备10通过使用mcmc方法搜索组合优化问题的解,并且输出搜索到的解。信息处理设备10包括存储单元11和处理单元12。存储单元11可以是易失性存储装置例
如随机存取存储器(ram),并且可以是非易失性存储装置例如硬盘驱动器(hdd)或闪存。处理单元12可以包括中央处理单元(cpu)、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)、图形处理单元(gpu)等。处理单元12可以是执行程序的处理器。“处理器”可以包括多个处理器的集合(多处理器)。
[0035]
组合优化问题由伊辛型能量函数进行公式化,并且被替换为例如使能量函数的值最小化的问题。能量函数也可以称为目标函数、评价函数等。能量函数包括多个状态变量。状态变量中的每一个是值为0或1的二进制变量,并且可以被称为“位”。组合优化问题的解由多个状态变量的值表示。使能量函数的值最小化的解表示伊辛模型的基态,并且对应于组合优化问题的最优解。能量函数的值可以被称为能量。
[0036]
伊辛型能量函数由等式(1)表示。
[0037]
[等式1]
[0038][0039]
状态向量x具有多个状态变量作为元素,并且表示伊辛模型的状态。等式(1)是以二次无约束二进制优化(qubo)形式进行公式化的能量函数。在使能量最大化的问题的情况下,能量函数的符号可以反转。属于状态向量x的多个状态变量的值被存储在存储单元11中。
[0040]
等式(1)右侧的第一项通过以下操作获得:对于可从所有状态变量中选择的两个状态变量的所有组合,在没有遗漏和重复的情况下对两个状态变量的值与权重系数的乘积进行整合。下标i和j是状态变量的索引。xi是第i个状态变量。xj是第j个状态变量。w
ij
是第i个状态变量与第j个状态变量之间的权重或指示耦合强度的权重系数。w
ij
=w
ji
,并且w
ii
为0。
[0041]
等式(1)右侧的第二项是状态变量的值中的每一个与所有状态变量的偏置的乘积之和。bi指示第i个状态变量的偏置。
[0042]
当状态变量xi的值变为1-xi时,状态变量xi的增加量表示为δxi=(1-xi)-xi=1-2xi。因此,伴随能量函数e(x)的状态变量xi的变化的能量的变化量δei由等式(2)表示。
[0043]
[等式2]
[0044][0045]
在搜索解时,处理单元12使用metropolis(梅特罗波利斯)标准或gibbs(吉布斯)标准,以便确定是否允许其中能量的变化量为δei的状态转变,例如状态变量xi的值的变化。处理单元12在相邻搜索中随机地不仅允许到能量降低的状态的转变还允许到能量增加的状态的转变,以用于搜索从某一状态到能量低于该某一状态的另一状态的转变。例如,接受能量的变化量δei的状态转变的概率——例如转变接受概率ai由等式(3)表示。
[0046]
[等式3]
[0047][0048]
β是温度值t(t》0)的倒数(β=1/t),并且被称为逆温度。min运算符指示自变量的最小值。等式(3)的右上侧对应于metropolis标准,以及等式(3)的右下侧对应于gibbs标准。处理单元12将满足0《u《1的均匀随机数u与ai进行比较,并且当u《ai时,处理单元12接受状态变量xi的值的变化并且改变状态变量xi的值。除非u《ai,否则处理单元12不接受状态变量xi的值的变化并且不改变状态变量xi的值。根据等式(3),随着δei为更大的值,ai越小。随着β越小,例如t越大,更可能允许其中δei较大的状态转变。例如,处理单元12可以使用作为mcmc方法类型的sa方法、并行回火(pt)、群体退火(pa)等来搜索解。pt方法也被称为交换蒙特卡罗或副本交换方法。
[0049]
处理单元12以预定的顺序(例如顺序地)选择作为多个状态变量的一部分的变化候选的状态变量。作为示例,处理单元12选择变化候选的一个状态变量。所选择的变化候选的状态变量xi是经受转变确定的下一状态变量。将指示预定顺序的信息预先设置在存储单元11中。例如,预定顺序可以是索引i的顺序。假设所有状态变量的数量为n,则每个索引i的顺序为i=1、2、
……
、n-1、n、1、2、
……
、n、1、2和
……
。可替选地,预定顺序可以是随机排列π1、π2、π3、πn、π1、π2和
……
。此处,{πi}是{1、
……
、n}的排列。如稍后将描述的,处理单元12可以一次选择变化候选的两个或更多个状态变量。
[0050]
如上所述,处理单元12基于在所选择的状态变量xi的值改变的情况下的能量的变化量δei来确定是否改变状态变量xi的值。当确定该值将被改变时,处理单元12改变状态变量xi的值,并且根据上述预定顺序选择要确定的下一状态变量。
[0051]
相比之下,当确定状态变量xi的值将不被改变时,处理单元12在不改变状态变量xi的值的情况下选择要确定的下一状态变量。处理单元12在存储单元11中记录状态变量的值将连续不被改变的次数。
[0052]
当连续确定状态变量的值将不被改变的次数达到预定次数时,处理单元12利用偏移值校正能量的变化量,并且基于校正后的能量的变化量来确定是否改变所选择的状态变量的值。
[0053]
例如,处理单元12利用偏移值e
off
(e
off
》0)校正包括在转变接受概率ai中的δei,以获得校正后的转变接受概率a'i。例如,a'i是ai(δe
i-e
off
)。当使用metropolis标准时,转变接受概率a'i由等式(4)表示。
[0054]
[等式4]
[0055]a′i=min[1,exp(-β(δe
i-e
off
))]
ꢀꢀꢀ
(4)
[0056]
由于逆温度β和偏移值e
off
是正的,因此转变接受概率a'i=ai(δe
i-e
off
)是通过将原始转变接受概率ai=a(δei)乘以等于或大于1的系数exp(β
·eoff
)而获得的概率。因此,在使用转变接受概率a'i=a(δe
i-e
off
)的情况下,与使用原始转变接受概率ai=a(δei)的情况相比,各个状态转变的转变接受概率之间的比率没有改变。
[0057]
代替ai,处理单元12将a'i与均匀随机数u进行比较,并且确定是否接受状态变量xi的值的变化。例如,当u《a'i时,处理单元12接受状态变量xi的值的变化并改变状态变量xi的值。除非u《a'i,否则处理单元12不接受状态变量xi的值的变化并且不改变状态变量xi的值。
由于提高了针对每个状态变量的转变接受概率,因此很可能发生状态转变。
[0058]
在根据基于转变接受概率a'i的确定改变任何状态变量的值之后,处理单元12将e
off
重置为0以将校正量设置为0,例如,取消利用偏移值的校正。此后,ai被用作针对将新选择的转变候选的状态变量的转变接受概率。然后,处理单元12选择要确定的下一状态变量,并且从0新开始对确定状态变量的值将连续不被改变的次数进行计数。在接受基于转变接受概率a'i的与状态变量xi相关的状态转变之后,要确定的下一状态变量可以是根据上述预定顺序选择的状态变量xi旁边的状态变量,或者可以是该顺序中的第一状态变量。
[0059]
例如,当连续确定状态变量的值将不被改变的次数达到一轮确定次数z时,处理单元12可以利用偏移值来校正能量的变化量。当一次选择的变化候选的状态变量的数量为1时,一轮确定次数z可以是z=n。
[0060]
图1示出了信息处理设备10的处理示例。例如,状态向量30包括状态变量x1、x2、
……
和xn。一轮确定次数z被设置为n。处理单元12逐个顺序地选择x1、x2、
……
和xn,并且确定是否接受状态转变。当连续确定状态变量的值将不被改变的次数达到z=n时,处理单元12通过使用转变接受概率a'i来确定是否接受与状态变量xi相关的状态转变,转变接受概率a'i通过利用偏移值e
off
校正δei而获得。图形40是如下示例:针对每个状态变量绘制了在针对某个状态改变任何状态变量的值的情况下的转变接受概率ai和a'i。如图形40所示,通过利用偏移值e
off
校正δei,与不校正δei的情况相比,可以增加转变接受概率。
[0061]
处理单元12可以设置e
off
=e
off
*。e
off
*由等式(5)表示。
[0062]
[等式5]
[0063][0064]
max运算符指示自变量的最大值。通过设置e
off
=e
off
*,可以将转变接受概率a'm设置为a'm=1,其中,在不发生状态转变的情况下,转变接受概率a'm对应于针对所有索引i的δei的最小值δem。例如,处理单元12可以可靠地接受至少针对xm的状态转变。例如,处理单元12可以通过在存储单元11中存储在连续确定状态变量的值将不被改变时获得的能量的变化量的最小值来获得e
off
*。
[0065]
处理单元12可以将一次选择的变化候选的状态变量的数量设置为两个或更多个,并且可以同时改变两个或更多个变化候选的状态变量的值以用于一个转变确定。处理单元12可以针对两个或更多个状态变量中的每一个基于等式(2)根据能量的变化量计算在两个或更多个状态变量的值改变的情况下的δe。
[0066]
例如,通过使用索引的集合,用于选择两个状态变量的序列可以是由(1,2)、(1,3)、
……
、(1,n)、(2,3)、(2,4)、
……
、(2,n)、
……
和(n-1,n)表示的顺序。在这种情况下,一轮确定次数z为z=(n-1)+(n-2)+
···
+1={n(n-1)}/2。
[0067]
可替选地,用于选择两个状态变量的序列可以是由(π1,π2)、(π1,π3)、
……
、(π
n-1
,πn)表示的顺序。此处,{πi}是{1、
……
、n}的置换。在任何情况下,相同的状态变量的集合在一轮中不会被选择两次或更多次,例如,在一轮中选择的状态变量的集合之间没有重复。
[0068]
处理单元12可以执行其中一次选择的变化候选的状态变量的数量为1的搜索,并且然后执行其中一次选择的变化候选的状态变量的数量为2的搜索。考虑到属于预定组的
状态变量中的仅一个状态变量被设置为1的约束,处理单元12可以按顺序选择要确定的状态变量。
[0069]
根据信息处理设备10,执行用于搜索由包括多个状态变量的能量函数表示的问题的解的搜索处理。搜索处理包括选择处理、确定处理和状态改变处理。在选择处理中,处理单元12以预定顺序选择作为多个状态变量的一部分的变化候选的状态变量。在确定处理中,处理单元12基于与在选择处理中选择的变化候选的状态变量的值的变化对应的能量函数的值的变化量来确定是否改变变化候选的状态变量的值。在状态改变处理中,当在确定处理中确定变化候选的状态变量的值将被改变时,处理单元12改变变化候选的状态变量的值。在搜索处理中,处理单元12根据预定顺序重复地执行选择处理、确定处理和状态改变处理。在搜索处理中,处理单元12还执行计数处理和校正处理。在计数处理中,处理单元12对在重复执行的搜索处理期间确定变化候选的状态变量的值将连续不被改变的次数进行计数。在校正处理中,当在计数处理中计数的次数达到预定次数时,处理单元12利用偏移值来校正与新选择的变化候选的状态变量的值的变化对应的能量函数的变化量。在通过校正处理校正了变化量之后的确定处理中,处理单元12基于校正后的变化量来确定是否改变新选择的变化候选的状态变量的值。
[0070]
因此,信息处理设备10可以提高解搜索的效率。
[0071]
为了获得由能量函数表示的问题的解,考虑如上所述顺序地选择状态变量,并且基于能量的变化量来确定是否允许与状态变量相关的状态转变。根据该方法,重复地执行针对多个状态变量中的每一个状态变量的确定,直到例如以在完成一轮的状态变量并且任何状态转变不被允许的情况下开始确定下一轮确定的方式执行状态转变。然而,因为在不执行状态转变的同时迭代次数增加,因此获得解所花费的时间增加。例如,在针对所有索引i而言δei》0的情况下,例如,在落入局部解的情况下或在低温(β》》1)的情况下,即使重复针对所有状态变量的一轮确定,状态转变也不会发生,采样效率降低,并且可能花费时间来获得解。
[0072]
因此,当连续确定状态变量的值将不被改变的次数达到预定次数时,信息处理设备10利用偏移值e
off
校正能量的变化量,以便容易地接受与每个状态变量相关的状态转变,并且促进状态转变。例如,通过设置e
off
=e
off
*,信息处理设备10可靠地使状态转变在至少一个状态变量中发生,并且促进状态转变。由于以这种方式抑制了状态转变的停滞,因此信息处理设备10可以提高解搜索的效率。作为结果,信息处理设备10可以在短时间内到达良好的解。例如,即使对于具有少量反转候选的问题,例如其中能量取局部最小值的具有大量状态的组合优化问题,也可以有效地搜索良好的解。
[0073]
[第二实施方式]
[0074]
接下来,将描述第二实施方式。
[0075]
图2是示出根据第二实施方式的信息处理设备的图。
[0076]
与信息处理设备10的情况一样,信息处理设备20通过使用作为mcmc方法类型的sa、pt、pa等来搜索组合优化问题的解,并且输出搜索到的解。信息处理设备20包括存储单元21和处理单元22。存储单元21可以是易失性存储装置例如ram,或者可以是非易失性存储装置例如hdd或闪存。处理单元22可以包括cpu、dsp、asic、fpga、gpu等。处理单元22可以是执行程序的处理器。“处理器”可以包括多个处理器的集合(多处理器)。
[0077]
如第一实施方式中描述的,组合优化问题被替换为获得使等式(1)的能量函数最小化的多个状态变量的值的集合的问题。属于等式(1)的状态向量x的多个状态变量的值被存储在存储单元21中。
[0078]
处理单元22以预定的顺序(例如顺序地)选择作为多个状态变量的一部分的变化候选的状态变量。作为示例,处理单元22选择变化候选的一个状态变量。将指示预定顺序的信息预先设置在存储单元21中。例如,预定顺序可以是索引i的顺序。假设所有状态变量的数量为n,则每个索引i的顺序为i=1、2、
……
、n-1、n、1、2、
……
、n、1、2和
……
。可替选地,预定顺序可以是随机序列π1、π2、
……
、πn、π1、π2和
……
。此处,{πi}是{1、
……
、n}的重排。如稍后将描述的,处理单元22可以一次选择变化候选的两个或更多个状态变量。
[0079]
基于由等式(2)表示的能量的变化量δei,处理单元22确定是否改变所选择的状态变量xi的值。例如,处理单元22通过将由等式(3)表示的转变接受概率ai(δei)与随机数u(0《u《1)进行比较来执行确定。用于确定的方法与通过处理单元12进行的确定中的方法相同。当确定该值将被改变时,处理单元22改变状态变量xi的值,并且根据上述预定顺序选择要确定的下一状态变量。
[0080]
相比之下,当确定状态变量xi的值将不被改变时,处理单元22在不改变状态变量xi的值的情况下选择要确定的下一状态变量。处理单元22在存储单元21中记录连续确定状态变量的值将不被改变的次数。
[0081]
当连续确定状态变量的值将不被改变的次数达到预定次数时,处理单元22基于根据能量的变化量和随机数计算的随机密钥值来确定多个状态变量之中的其值将被改变的状态变量,并且改变所确定的状态变量的值。
[0082]
例如,考虑处理单元22基于等式(6)的加权概率pi选择其值将被改变的状态变量。
[0083]
[等式6]
[0084][0085]
加权概率pi指示在若干试验之后状态变量xi的值最后发生改变的概率。在这种情况下,处理单元22计算等式(7)中的随机数r,并且确定改变满足等式(8)的索引k的状态变量xk的值。等式(7)的r可以被认为是一种随机密钥值。
[0086]
[等式7]
[0087][0088]
[等式8]
[0089][0090]
可替选地,处理单元22可以针对每个状态变量计算由等式(9)、(10)和(11)中的任何一个表示的随机密钥值ki=ki(δei,ui),并且确定改变以下状态变量的值:对于该状态
变量,ki为最大值或最小值。ui是相互独立的均匀随机数,0《ui《1。
[0091]
[等式9]
[0092][0093]
[等式10]
[0094]ki
=log ui/aiꢀꢀꢀ
(10)
[0095]
[等式11]
[0096]ki
=max(0,βδei)+log(-log ui)
ꢀꢀꢀ
(11)
[0097]
在使用等式(9)和(10)的情况下,处理单元22选择针对其ki为最大值的状态变量。在使用等式(11)的情况下,处理单元22选择针对其ki为最小值的状态变量。等式(11)对应于metropolis标准。每个等式中的“log”是自然对数。等式(10)的分母是ai,以及分子是log(ui)。
[0098]
因此,当状态转变被延迟时,可以适当地改变任何状态变量的值并促进解搜索。在通过使用随机密钥值来改变任何状态变量的值的情况下,处理单元22选择要确定的下一状态变量,并且从0新开始对确定状态变量的值将连续不被改变的次数进行计数。在基于随机密钥值改变状态变量xi的值之后,要确定的下一状态变量可以是根据上述预定顺序选择的状态变量xi旁边的状态变量,或者可以是该顺序中的第一状态变量。
[0099]
例如,当连续确定状态变量的值将不被改变的次数达到一轮确定次数z时,处理单元22可以基于随机密钥值选择其值将被改变的状态变量。当一次选择的变化候选的状态变量的数量为1时,一轮确定次数z可以是z=n。
[0100]
图2示出了信息处理设备20的处理示例。例如,状态向量30包括状态变量x1、x2、
……
和xn。一轮确定次数z被设置为n。处理单元22逐个顺序地选择x1、x2、
……
和xn,并且确定是否接受状态转变。当连续确定状态变量的值将不被改变的次数达到z=n时,处理单元22例如使用随机密钥值ki(δei,ui)来确定改变与随机密钥值km(δem,um)对应的状态变量xm的值,并且改变状态变量xm的值。例如,根据使用等式(9)至(11)中的哪一个,处理单元22可以在存储单元21中存储在连续地确定状态变量的值将不被改变的同时获得的随机密钥值ki(δei,ui)的最大值或最小值以获得随机密钥值km(δem,um)。
[0101]
处理单元22可以将一次选择的变化候选的状态变量的数量设置为两个或更多个,并且可以同时改变两个或更多个变化候选的状态变量的值以用于一个转变确定。处理单元22可以针对两个或更多个状态变量中的每一个基于等式(2)根据能量的变化量计算在两个或更多个状态变量的值改变的情况下的δe。
[0102]
例如,通过使用索引的集合,用于选择两个状态变量的序列可以是由(1,2)、(1,3)、
……
、(1,n)、(2,3)、(2,4)、
……
、(2,n)、
……
和(n-1,n)表示的顺序。在这种情况下,一轮确定次数z为z=(n-1)+(n-2)+
···
+1={n(n-1)}/2。
[0103]
可替选地,用于选择两个状态变量的序列可以是由(π1,π2)、(π1,π3)、
……
、(πn–1,πn)表示的顺序。此处,{πi}是{1、
……
、n}的重排。在任何情况下,相同的状态变量的集合在一轮中不会被选择两次或更多次,例如,在一轮中选择的状态变量的集合之间没有重复。在一次选择的变化候选的状态变量的数量为a(a是1或更大的整数)的情况下,由处理单元22基于随机密钥值选择的状态变量的数量也是a。
[0104]
处理单元22可以执行其中一次选择的变化候选的状态变量的数量为1的搜索,并且然后执行其中一次选择的变化候选的状态变量的数量为2的搜索。考虑到属于预定组的状态变量中的仅一个状态变量被设置为1的约束,处理单元22可以按照顺序选择要确定的状态变量。
[0105]
根据信息处理设备20,执行用于搜索由包括多个状态变量的能量函数表示的问题的解的搜索处理。搜索处理包括选择处理、确定处理和状态改变处理。在选择处理中,处理单元22以预定顺序选择作为多个状态变量的一部分的变化候选的状态变量。在确定处理中,处理单元22基于与在选择处理中选择的变化候选的状态变量的值的变化对应的能量函数的值的变化量来确定是否改变变化候选的状态变量的值。在状态改变处理中,当在确定处理中确定变化候选的状态变量的值将被改变时,处理单元22改变变化候选的状态变量的值。在搜索处理中,处理单元22根据预定顺序重复地执行选择处理、确定处理和状态改变处理。处理单元22执行计数处理,该计数处理对在重复执行的搜索处理期间确定变化候选的状态变量的值将连续不被改变的次数进行计数。当在计数处理中计数的次数达到预定次数时,处理单元22基于根据变化量和随机数值计算的随机密钥值从多个状态变量中选择第一状态变量,并且改变第一状态变量的值。
[0106]
因此,信息处理设备20可以提高解搜索的效率。
[0107]
为了获得由能量函数表示的问题的解,考虑如上所述顺序地选择状态变量,并且基于能量的变化量来确定是否允许与状态变量相关的状态转变。根据该方法,重复执行针对多个状态变量中的每一个状态变量的确定,直到例如以在完成一轮的状态变量并且任何状态转变不被允许的情况下开始下一轮确定的方式执行状态转变。然而,因为在不执行状态转变的同时迭代次数增加时,因此获得解所花费的时间增加。例如,在针对所有索引i而言δei》0的情况下,例如,在落入局部解的情况下或在低温(β》》1)的情况下,即使重复针对所有状态变量的一轮确定,状态转变也不会发生,采样效率降低,并且可能花费时间来获得解。
[0108]
因此,当连续确定状态变量的值将不被改变的次数达到预定次数时,信息处理设备20通过使用根据能量的变化量和随机数值的随机密钥值来确定经受转变的状态变量,并且改变状态变量的值以促进状态转变。由于以这种方式抑制了状态转变的停滞,因此信息处理设备20可以提高解搜索的效率。作为结果,信息处理设备20可以在短时间内达到良好的解。例如,即使对于具有少量反转候选的问题,例如其中能量取局部最小值的具有大量状态的组合优化问题,也可以有效地搜索良好的解。
[0109]
在下文中,将更具体地描述信息处理设备10和20。
[0110]
[第三实施方式]
[0111]
接下来,将描述第三实施方式。
[0112]
图3是示出根据第三实施方式的信息处理设备的硬件示例的图。
[0113]
信息处理设备100通过使用mcmc方法搜索组合优化问题的解,并且输出搜索到的解。信息处理设备100包括cpu 101、ram 102、加速器卡103、hdd 104、gpu 105、输入接口(if)106、介质读取器107和网络接口卡(nic)108。
[0114]
cpu 101是执行程序的命令的处理器。cpu 101将存储在hdd 104中的程序或数据的至少一部分加载到ram 102中,并执行程序。cpu 101可以包括多个处理器核。信息处理设
备100可以包括多个处理器。下面描述的处理可以通过使用多个处理器或处理器核来并行执行。多个处理器的集合可以称为“多处理器”,或者在某些情况下仅称为“处理器”。
[0115]
ram 102是临时存储由cpu 101执行的程序或用于由cpu 101进行的操作的数据的易失性半导体存储器。信息处理设备100可以包括除了ram之外的类型的存储器,并且可以包括多个存储器。
[0116]
加速器卡103是通过使用mcmc方法来搜索由等式(1)表示的伊辛型能量函数表示的问题的解的硬件加速器。通过在固定温度下执行mcmc方法或者通过执行在多个温度之间交换伊辛模型的状态的pt方法,加速器卡103可以用作在对应温度下根据玻尔兹曼分布对状态进行采样的采样器。为了获得组合优化问题的解,加速器卡103执行其中温度值逐渐降低的退火处理,例如pt方法或sa方法。
[0117]
sa方法是通过将采样期间使用的温度值从高温降低到低温(例如增加逆温度β)来有效地找到最优解的方法。由于即使在低温侧(例如β较大)的情况下,状态也有一定程度的变化,因此即使温度值迅速降低,也存在可以找到良好的解的可能性。例如,当使用sa方法时,在以特定温度值重复一定次数的状态转变的试验之后,加速器卡103重复降低温度值的操作。
[0118]
pt方法是如下方法:其中,使用多个温度值独立地执行mcmc方法,并且针对在每一个温度值处获得的状态适当地交换温度值。通过在低温下用mcmc方法搜索窄范围的状态空间,并且在高温下用mcmc方法搜索宽范围的状态空间,可以有效地找到良好的解。例如,当使用pt方法时,加速器卡103重复如下操作:其中,执行在多个温度值中的每个温度值处状态转变的并行试验,并且每次执行一定数量的试验时,针对在每个温度值处获得的状态以预定的交换概率交换每个温度值。
[0119]
加速器卡103包括fpga 111和ram 112。fpga 111在加速器卡103中实现搜索功能。搜索功能可以由另一类型的集成电路(例如gpu或asic)来实现。ram 112保存用于fpga 111中的搜索的数据或由fpga 111搜索的解。
[0120]
搜索伊辛形式问题的解的硬件加速器(例如加速器卡103)可以称为伊辛机、玻尔兹曼机等。可替选地,信息处理设备100可以包括多个加速器卡。
[0121]
hdd 104是非易失性存储装置,其存储数据以及诸如操作系统(os)、中间件和应用软件的软件的程序。信息处理设备100可以包括其他另一类型的存储装置例如闪存或固态驱动器(ssd),并且可以包括多个非易失性存储装置。
[0122]
gpu 105根据来自cpu 101的命令将图像输出到耦接至信息处理设备100的显示器51。任意类型的显示器例如阴极射线管(crt)显示器、液晶显示器(lcd)、等离子显示器或有机电致发光(oel)显示器可以用作显示器51。
[0123]
输入if 106从耦接至信息处理设备100的输入装置52获取输入信号,并且将输入信号输出到cpu 101。作为输入装置52,可以使用定点装置例如鼠标、触摸面板、触摸板或跟踪球、键盘、遥控器、按钮开关等。多种类型的输入装置可以耦接至信息处理设备100。
[0124]
介质读取器107是读取记录在记录介质53中的程序或数据的读取装置。例如,磁盘、光盘、磁光(mo)盘、半导体存储器等可以用作记录介质53。磁盘包括软盘(fd)或hdd。光盘包括压缩光盘(cd)或数字通用光盘(dvd)。
[0125]
介质读取器107将例如从记录介质53读取的程序和数据复制到另一记录介质例如
ram 102或hdd 104。所读取的程序由例如cpu 101执行。记录介质53可以是便携式记录介质,并且可以用于分发程序和数据。记录介质53和hdd 104在某些情况下可以被称为计算机可读记录介质。
[0126]
nic 108是连接至网络54并经由网络54与另一计算机通信的接口。nic 108例如经由线缆连接至通信装置例如交换机或路由器。
[0127]
fpga 111是根据第一实施方式的处理单元12和根据第二实施方式的处理单元22的示例。ram 112是根据第一实施方式的存储单元11和根据第二实施方式的存储单元21的示例。
[0128]
加速器卡103的功能可以通过使cpu 101执行存储在ram 102中的程序来实现。在这种情况下,cpu 101是根据第一实施方式的处理单元12和根据第二实施方式的处理单元22的示例。ram 102是根据第一实施方式的存储单元11和根据第二实施方式的存储单元21的示例。
[0129]
图4是示出信息处理设备的功能示例的图。
[0130]
信息处理设备100包括系数保存单元120、搜索处理单元130和控制单元190。ram 102或hdd 104的存储区域用于系数保存单元120。搜索处理单元130由加速器卡103实现。通过使cpu 101执行存储在ram 102中的程序来实现控制单元190。
[0131]
系数保存单元120保存与能量函数中包括的两个状态变量的所有组合对应的权重系数{w
ij
}。
[0132]
基于能量函数和存储在系数保存单元120中的权重系数,搜索处理单元130搜索与伊辛模型的基态对应的解。能量函数中包括的所有状态变量的一个集合被称为副本。搜索处理单元130包括副本更新单元140、索引生成单元150和随机数生成单元160。
[0133]
副本更新单元140通过使用sa方法、pt方法等来更新单个副本。基于从索引生成单元150输入的索引,副本更新单元140顺序地选择状态变量作为状态转变候选。稍后将描述副本更新单元140的细节。
[0134]
索引生成单元150生成指示变化候选的下一状态变量的索引,并且将该索引输入到副本更新单元140。索引生成单元150以由控制单元190预先指定的预定顺序生成索引,并且将索引输入到副本更新单元140。作为示例,一个试验中的变化候选的状态变量的数量为1。在这种情况下,索引生成单元150将指示下一变化候选的状态变量的一个索引输入到副本更新单元140。
[0135]
例如,预定顺序可以是索引i的顺序。假设所有状态变量的数量为n,则每个索引i的顺序为i=1、2、
……
、n-1、n、1、2、
……
、n、1、2和
……
。可以使用通过从索引i的顺序中随机跳过索引而获得的顺序。作为这样的方法,例如,参考下面的文献1。
[0136]
文献1:ren等人,“acceleration of markov chain monte carlo simulations through sequential updating”,j.chem.phys.第124卷,第6期,064109,2006年。
[0137]
可替选地,预定顺序可以是随机序列π1、π2、
……
、πn、π1、π2和
……
。此处,{πi}是{1、
……
、n}的重排。针对每一轮或一些轮,关于{πi}的{1、
……
、n}的排列顺序可以在预定定时处改变。如稍后将描述的,一个试验中的变化候选的状态变量的数量可以是两个或更多个。在这种情况下,索引生成单元150将指示下一变化候选的状态变量的两个或更多个索引输入到副本更新单元140。
[0138]
随机数生成单元160基于等式(3)的转变接受概率ai和等式(4)的转变接受概率a'i生成用于状态转变的接受确定的均匀随机数u(0《u《1),并且将均匀随机数u输入到副本更新单元140。
[0139]
控制单元190获取从用户输入的关于组合优化问题的信息,并且生成关于对应于组合优化问题的能量函数的信息。控制单元190将对应于组合优化问题的权重系数存储在系数保存单元120中。控制单元190将诸如用于搜索的温度值、由索引生成单元150生成的索引的顺序等的参数输入到搜索处理单元130,并且使搜索处理单元130开始解搜索。
[0140]
控制单元190获取由搜索处理单元130搜索的解。控制单元190将获取的解转换成组合优化问题的解的形式,并且使显示器51显示该解或经由网络54将该解发送至用户使用的终端装置,以向用户提供该解。
[0141]
例如,下面的文献2被称为顺序地执行如上所述的转变确定的方法。
[0142]
文献2:manousiouthakis等人,“strict detailed balance is unnecessary in monte carlo simulation”,j.chem.phys.第110卷,第6期,2753页-2756页,1999年。
[0143]
图5是示出副本更新单元的功能示例的图。
[0144]
副本更新单元140包括高速缓存141、状态保存单元142、δe计算单元143、接受确定单元144和偏移设置单元145。
[0145]
高速缓存141保存与从索引生成单元150输入的下一转变候选的索引i相关的权重系数{w
1i
、w
2i

……
、w
ni
}。副本更新单元140将权重系数{w
1i
、w
2i

……
、w
ni
}预载到高速缓存141。
[0146]
状态保存单元142保存多个状态变量的当前值{x1、x2、
……
、xn}、与多个状态变量的当前值对应的能量e以及当前温度值的倒数β。状态保存单元142保存与状态变量x1、x2、
……
和xn对应的局部字段h1、h2、
……
和hn。局部字段hi由等式(12)表示。
[0147]
[等式12]
[0148][0149]
状态保存单元142将与从索引生成单元150输入的下一转变候选的索引i相关的局部字段hi输出到δe计算单元143。
[0150]
基于保存在状态保存单元142中的局部字段hi,δe计算单元143通过等式(13)计算能量的变化量δei。
[0151]
[等式13]
[0152][0153]
δe计算单元143将计算出的δei输出到接受确定单元144。
[0154]
接受确定单元144执行从δe计算单元143输入的δei减去从偏移设置单元145输入的偏移值e
off
的校正。基于校正后的变化量(δe
i-e
off
),接受确定单元144计算等式(4)的转变接受概率a'i。通常,由偏移设置单元145设置e
off
=0。在e
off
=0的情况下,转变接受概
率a'i=ai。
[0155]
通过将从随机数生成单元160输入的均匀随机数u与转变接受概率a'i进行比较,接受确定单元144确定是否接受索引i的状态转变。当u《a'i时,接受确定单元144接受索引i的状态转变。除非u《a'i,否则处理单元12不接受索引i的状态转变,例如拒绝索引i的状态转变。
[0156]
接受确定单元144可以取u、a'i的自然对数,并且可以在满足log(u)《-β(δe
i-e
off
)的情况下接受索引i的状态转变,并且可以在不满足log(u)《-β(δe
i-e
off
)的情况下不接受索引i的状态转变。以这种方式,由于接受确定单元144可以通过保存log(u)的信息并计算确定等式的左侧来执行确定,并且可以不计算转变接受概率a'i,因此例如可以以高速执行接受确定。
[0157]
当接受索引i的状态转变时,状态保存单元142向状态保存单元142通知接受索引i的状态转变。基于该通知,状态保存单元142反转状态变量xi的值。状态保存单元142基于δei对e=e+δei执行更新。状态保存单元142基于保存在高速缓存141中的权重系数来更新局部字段h1、h2、
……
和hn。
[0158]
在状态变量xj的值被反转的情况下的局部字段hi的变化量δh
i(j)
由等式(14)表示。
[0159]
[等式14]
[0160][0161]
当索引i的状态转变被拒绝时,接受确定单元144向偏移设置单元145通知对索引i的状态转变的拒绝。
[0162]
偏移设置单元145设置偏移值e
off
。偏移设置单元145包括偏移保存单元145a和偏移控制单元145b。
[0163]
偏移保存单元145a保存偏移值e
off
,并且将偏移值e
off
输出到接受确定单元144。由偏移保存单元145a保存的偏移值e
off
由偏移控制单元145b设置。偏移值e
off
的默认值是0。当接受确定单元144接受状态转变时,接受确定单元144将由偏移保存单元145a保存的偏移值e
off
重置为0。
[0164]
偏移控制单元145b对接受确定单元144连续拒绝状态转变的次数进行计数,并且当次数达到转变确定的一轮确定次数z时,将保存在偏移保存单元145a中的偏移值e
off
从0改变为e
off
*。e
off
*由等式(5)表示。例如,当一次选择的变化候选的状态变量的数量为1时,一轮确定次数z可以是n。通过保存在状态转变被连续拒绝时获得的能量变化量的最小值δe
min
,当状态转变被连续拒绝的次数达到z时,偏移控制单元145b可以根据e
off
*=δe
min
获得e
off
*。
[0165]
副本更新单元140中的算术功能、索引生成单元150和随机数生成单元160由fpga 111实现。ram 112用于在副本更新单元140中保存数据。
[0166]
通过使cpu 101执行存储在ram 102中的程序来实现搜索处理单元130。在这种情况下,保存在搜索处理单元130中的信息可以保存在ram 102或cpu 101的高速缓存中。
[0167]
图6是示出信息处理设备的处理示例的流程图。
[0168]
(s10)控制单元190将权重系数存储在系数保存单元120中,并且初始化副本更新
单元140。在初始化中,控制单元190将在sa方法或pt方法中使用的初始温度值和搜索中试验的迭代次数(指定的迭代次数)设置在副本更新单元140中,并且将扫描状态变量的顺序设置在索引生成单元150中。控制单元190可以将初始解(状态变量x1、x2、
……
和xn中的每一个状态变量的第一值)、局部字段的初始值和能量的初始值设置在副本更新单元140中。控制单元190将保存在偏移保存单元145a中的偏移值e
off
重置为e
off
=0。控制单元190将保存在偏移控制单元145b中的未更新的计数器n重置为n=0,并且将δe
min
重置为相对大的初始值。未更新的计数器n是用于对状态转变被连续拒绝的次数进行计数的计数器。控制单元190使搜索处理单元130开始解搜索。
[0169]
(s11)副本更新单元140读取由索引生成单元150生成的下一索引i。副本更新单元140将对应于索引i的权重系数{w
1i
、w
2i

……
、w
ni
}预载到高速缓存141。
[0170]
(s12)副本更新单元140计算δei,从δei中减去e
off
,并更新δe
min
。如上所述,由δe计算单元143计算δei。由接受确定单元144执行从δei减去e
off
。由偏移控制单元145b执行δe
min
的更新。δe
min
的更新被表示为δe
min
=min(δe
min
,max(0,δei))。
[0171]
(s13)基于从随机数生成单元160输入的均匀随机数u,副本更新单元140确定是否接受状态变量xi的值的反转,例如,是否接受索引i的状态转变。当接受状态变量xi的值的确定时,例如,接受索引i的状态转变时,处理进行到步骤s14。当不接受状态变量xi的值的反转时,例如,拒绝索引i的状态转变时,处理进行到步骤s15。步骤s13的确定由接受确定单元144执行。如上所述,在步骤s13的确定中,接受确定单元144可以确定确定式u《a'i的是否为真或者确定式log(u)《-β(δei–eoff
)是否为真。
[0172]
(s14)副本更新单元140更新状态变量xi和局部字段hi。副本更新单元140将n重置为0并且将e
off
重置为0,并且重置δe
min
。例如,副本更新单元140将保存在状态保存单元142中的状态变量xi的值反转以将能量更新为e=e+δei,并且根据反转来更新局部字段{h1、h2、
……
、hn}。处理进行到步骤s18。
[0173]
(s15)副本更新单元140确定未更新的计数器n是否等于或大于一轮确定次数n,例如,计数器n是否为n≥n。在n≥n的情况下,处理进行到步骤s16。在n《n的情况下,处理进行到步骤s17。步骤s15的确定由偏移控制单元145b执行。
[0174]
步骤s15的确定还可以是确定未更新的计数器n是否已经达到一轮确定次数n,例如,是否n=n。在n=n的情况下,处理进行到步骤s16,并且在n≠n的情况下,处理进行到步骤s17。
[0175]
(s16)副本更新单元140设置e
off
=δe
min
。例如,偏移控制单元145b将保存在偏移保存单元145a中的偏移值设置为e
off
=δe
min
。处理进行到步骤s18。
[0176]
(s17)副本更新单元140使未更新的计数器n递增。例如,偏移控制单元145b设置n=n+1。处理进行到步骤s18。
[0177]
(s18)副本更新单元140确定状态变量的值是否已经被更新指定次数。当状态变量已经被更新指定次数时,处理结束。当状态变量未被更新指定次数时,处理进行到步骤s11。
[0178]
根据上述过程,当在没有反转的情况下完成一轮扫描时,由于在下一扫描中至少在δei取最小值的索引处a'i=1,因此可以在下一扫描中反转至少一个状态变量的值。
[0179]
如上所述,搜索处理单元130可以将sa方法、pt方法等用于解搜索。根据sa方法或pt方法,在预定定时处改变用于副本的温度值t。因此,上述步骤s11至s18可以被认为是针
对一个温度值t的一系列过程。例如,在步骤s18中为是的情况下,搜索处理单元130重复地执行改变到下一温度值t并重复步骤s11到s18的过程,并且将由状态保存单元142最终获得的多个状态变量的值的集合作为解输出到控制单元190。搜索处理单元130可以将对应于解的能量与上述解一起输出到控制单元190。
[0180]
在步骤s15中,基于未更新的计数器n确定一轮状态变量的值是否在没有被反转的情况下完成。作为确定状态变量的一轮扫描被执行的方法,可以想到以下两种方法。根据第一种方法,当消耗了预先生成的索引的所有排列时,确定已经完成了一轮。根据第二种方法,当从紧之前一轮的中间计数的状态变量的数量n已经过去时,确定已经完成了一轮。虽然图6中的流程图示出了第二种方法,但是可以使用第一种方法。
[0181]
搜索处理单元130可以将一次选择的变化候选的状态变量的数量设置为两个或更多个,并且可以同时改变两个或更多个变化候选的状态变量的值以用于一个转变确定。搜索处理单元130可以针对两个或更多个状态变量中的每一个基于等式(2)根据能量的变化量来计算在两个或更多个状态变量的值改变的情况下的δe。
[0182]
例如,通过使用索引的集合,用于选择两个状态变量的序列可以是由(1,2)、(1,3)、
……
、(1,n)、(2,3)、(2,4)、
……
、(2,n)、
……
和(n-1,n)表示的顺序。可替选地,用于选择两个状态变量的序列可以是由(π1,π2)、(π1,π3)、
……
和(π
n-1
,πn)表示的顺序。此处,{πi}是{1、
……
、n}的重排。搜索处理单元130可以针对每一轮或一些轮在预定定时处改变关于{πi}的{1、
……
、n}的排列顺序。
[0183]
搜索处理单元130可以执行其中一次选择的变化候选的状态变量的数量为1的搜索,并且然后执行其中一次选择的变化候选的状态变量的数量为2的搜索。考虑到属于预定组的状态变量中的仅一个状态变量被设置为1的约束,搜索处理单元130可以按顺序选择要确定的状态变量。这样的约束的示例包括被称为1w1h(单向独热(1-way 1-hot))和2w1h(双向独热(2-way 1-hot))的约束。
[0184]
例如,当在其中多个状态转变被同时设置为转变候选并且从多个状态转变中选择一个状态转变的并行搜索中同时改变两个状态变量时,转变候选的组合的数量增加到n(n-1)。因此,在并行搜索中,执行其中两个或更多个状态变量同时改变的搜索是不现实的。相比之下,在顺序选择状态变量的方法中,可以容易地执行其中两个或更多个状态变量同时改变的搜索,并且可以提高搜索的自由度。作为并行搜索的示例,可以使用日本公开特许公报第2019-125155号作为参考。
[0185]
为了获得由能量函数表示的问题的解,考虑如上所述顺序地选择状态变量,并且基于能量的变化量来确定是否允许与状态变量相关的状态转变。根据该方法,重复执行针对多个状态变量中的每一个状态变量的确定,直到例如以在完成一轮的状态变量并且任何状态转变不被允许的情况下开始下一轮确定的方式执行状态转变。然而,因为在不执行状态转变的同时迭代次数增加,因此获得解所花费的时间增加。
[0186]
因此,当连续确定状态变量的值将不被改变的次数达到预定次数时,信息处理设备100利用偏移值e
off
来校正能量的变化量,以便容易地接受与每个状态变量相关的状态转变,并且促进状态转变。例如,通过设置e
off
=e
off
*,信息处理设备100可靠地使状态转变在至少一个状态变量中发生,并且促进状态转变。
[0187]
由于以这种方式抑制了状态转变的停滞,因此信息处理设备100可以提高解搜索
的效率。作为结果,信息处理设备100可以在短时间内达到良好的解。例如,即使对于具有少量反转候选的问题,例如其中能量取局部最小值的具有大量状态的组合优化问题,也可以有效地搜索良好的解。
[0188]
图7是示出示例性解结果(部分1)的图。
[0189]
图形g10示出了铁磁伊辛模型在低温(t=0.01)下的示例性解结果。通过在改变随机数种子的同时执行200次仿真并且绘制已经达到解的试验次数及其累积频率来获得图形g10。图形g10的横轴指示已经达到解的试验次数。图形g10的纵轴以百分比指示已经达到解的运行的累积频率。术语“运行”对应于200次仿真之一。
[0190]
该问题中设置的铁磁伊辛模型集的状态变量的数量为32
×
32=1024,并且应用了周期边界条件。搜索的初始状态是随机的,并且所有状态变量在基态(最低能量状态)中是0或1。在这种情况下,理论上估计约2/3的运行被限制于局部解。
[0191]
图形g10示出了系列g11、g12和g13。
[0192]
系列g11是在使用其中多个状态转变被同时设置为转变候选并且从多个状态转变中选择一个状态转变的并行搜索的情况下的结果。
[0193]
系列g12是在顺序地选择状态变量并且在不应用偏移值e
off
的情况下执行搜索的情况下的结果。
[0194]
系列g13是在顺序地选择状态变量并且在通过信息处理设备100的功能应用偏移值e
off
的情况下执行搜索的情况下的结果。
[0195]
当将系列g11与g12相互比较时,可以看出,顺序方法比其中将多个状态转变同时设置为转变候选的并行搜索快大约三倍。
[0196]
当将系列g12与g13相互比较时,可以看出通过在顺序方法中应用偏移值,达到解的运行的百分比进一步增加。如上所述,通过使用偏移值,大量的运行可以在相对短的时间内达到解,并且可以改善解查找性能。
[0197]
图8是示出示例性解结果(部分2)的图。
[0198]
图形g20示出了用于二次分配问题(qap)的pt方法的示例性解结果。通过在改变随机数种子的同时执行200次仿真并且绘制已经达到解的试验的次数及其累积频率来获得图形g20。图形g20的横轴指示已经达到解的试验的次数。图形g20的纵轴以百分比指示已经达到解的运行的累积频率。
[0199]
目标qap是qaplib的esc16a。状态变量的数量为16
×
16=256。所有状态变量在初始状态下被设置为0。温度值t的范围为0.5至5.0。副本的数量为26。温度值或状态被交换之前的试验次数(例如交换间隔)为256。
[0200]
图形g20示出了系列g21、g22和g23。
[0201]
系列g21是在使用其中多个状态转变被同时设置为转变候选并且从多个状态转变中选择一个状态转变的并行搜索的情况下的结果。
[0202]
系列g22是在顺序地选择状态变量并且在不应用偏移值e
off
的情况下执行搜索的情况下的结果。
[0203]
系列g23是在顺序地选择状态变量并且在通过信息处理设备100的功能应用偏移值e
off
的情况下执行搜索的情况下的结果。
[0204]
当将系列g23与系列g21和g22进行比较时,可以看出通过偏移值e
off
,到达解之前
112用于在副本更新单元140a中保存数据。
[0217]
搜索处理单元130和包括在搜索处理单元130中的副本更新单元140a、索引生成单元150和随机数生成单元160可以通过使cpu 101执行存储在信息处理设备100a中包括的ram 102中的程序来实现。在这种情况下,保存在搜索处理单元130中的信息可以保存在ram 102或cpu 101的高速缓存中。
[0218]
图10是示出信息处理设备的处理示例的流程图。
[0219]
(s20)控制单元190将权重系数存储在系数保存单元120中,并且初始化副本更新单元140a。在初始化中,控制单元190将在sa方法或pt方法中使用的初始温度值和搜索中的试验的迭代次数(指定次数)设置在副本更新单元140a中,并且将扫描状态变量的顺序设置在索引生成单元150中。控制单元190可以将初始解、局部字段的初始值和能量的初始值设置在副本更新单元140a中。控制单元190将随机密钥设置单元146中保存的k
min
重置为相对大的初始值。控制单元190将随机密钥设置单元146中保存的未更新的计数器n重置为n=0。控制单元190使搜索处理单元130开始解搜索。
[0220]
(s21)副本更新单元140a读取由索引生成单元150生成的下一索引i。副本更新单元140a将对应于索引i的权重系数{w
1i
、w
2i

……
、w
ni
}预载到高速缓存141。
[0221]
(s22)副本更新单元140a计算δei并更新k
min
。如上所述,由δe计算单元143计算δei。k
min
的更新由随机密钥设置单元146执行。k
min
的更新被表示为k
min
=min(k
min
,ki)。ki由等式(11)表示。随机密钥设置单元146还保存对应于k
min
的δei和索引i。
[0222]
(s23)基于从随机数生成单元160输入的均匀随机数u,副本更新单元140a确定是否接受状态变量xi的值的反转,例如,是否接受索引i的状态转变。当接受状态变量xi的值的确定时,例如,接受索引i的状态转变时,处理进行到步骤s24。当不接受状态变量xi的值的反转时,例如,拒绝索引i的状态转变时,处理进行到步骤s25。步骤s23的确定由接受确定单元144执行。如上所述,在步骤s23的确定中,接受确定单元144可以确定确定式u《a'i是否为真,或者确定式log(u)《-β(δe
i-e
off
)是否为真。
[0223]
(s24)副本更新单元140a更新状态变量xi和局部字段hi。副本更新单元140a将n重置为0并且将e
off
重置为0,并且重置δe
min
。例如,副本更新单元140a将保存在状态保存单元142中的状态变量xi的值反转以将能量更新为e=e+δei,并且根据反转来更新局部字段{h1、h2、
……
、hn}。处理进行到步骤s28。
[0224]
(s25)副本更新单元140a确定未更新的计数器n是否等于或大于一轮确定次数n,例如计数器n是否为n≥n。在n≥n的情况下,处理进行到步骤s26。在n《n的情况下,处理进行到步骤s27。步骤s25的确定由随机密钥设置单元146执行。
[0225]
步骤s25的确定也可以是确定未更新的计数器n是否已经达到一轮确定次数n,例如,是否n=n。当n=n时,处理进行到步骤s26,并且当n与n不相同时,处理进行到步骤s27。
[0226]
(s26)副本更新单元140a更新对应于随机密钥k
min
的状态变量xm和局部字段hi。副本更新单元140a将n重置为0并重置k
min
。例如,副本更新单元140a将保存在状态保存单元142中的状态变量xi的值反转以将能量更新为e=e+δem,并且根据反转来更新局部字段{h1、h2、
……
、hn}。处理进行到步骤s28。
[0227]
(s27)副本更新单元140a使未更新的计数器n递增。例如,随机密钥设置单元146设置n=n+1。处理进行到步骤s28。
[0228]
(s28)副本更新单元140a确定状态变量的值是否已被更新指定次数。当状态变量已经被更新指定次数时,处理结束。当状态变量未被更新指定次数时,处理进行到步骤s21。
[0229]
根据上述过程,当在完成一轮扫描之后不发生反转时,可以反转与针对其随机密钥具有最小值的索引对应的状态变量的值。
[0230]
如上所述,搜索处理单元130可以将sa方法、pt方法等用于解搜索。根据sa方法或pt方法,在预定定时处改变针对副本的温度值t。因此,上述步骤s21至s28可以被认为是针对一个温度值t的一系列过程。例如,在步骤s28中为是的情况下,搜索处理单元130重复地执行改变到下一温度值t并重复步骤s21至s28的过程,并且将由状态保存单元142最终获得的多个状态变量的值的集合作为解输出到控制单元190。搜索处理单元130可以将对应于解的能量与上述解一起输出到控制单元190。
[0231]
在步骤s25中,基于未更新的计数器n确定一轮状态变量的值是否在没有被反转的情况下完成。作为确定状态变量的一轮扫描被执行的方法,可以想到以下两种方法。根据第一种方法,当消耗了预先生成的索引的所有排列时,确定已经完成了一轮。根据第二种方法,当从紧之前一轮的中间计数的状态变量的数量n已经过去时,确定已经完成了一轮。虽然图10中的流程图示出了第二种方法,但是可以使用第一种方法。
[0232]
搜索处理单元130可以将一次选择的变化候选的状态变量的数量设置为两个或更多个,并且可以同时改变两个或更多个变化候选的状态变量的值以用于一个转变确定。搜索处理单元130可以针对两个或更多个状态变量中的每一个基于等式(2)根据能量的变化量计算在两个或更多个状态变量的值改变的情况下的δe。
[0233]
例如,通过使用索引的集合,用于选择两个状态变量的序列可以是由(1,2)、(1,3)、
……
、(1,n)、(2,3)、(2,4)、
……
、(2,n)、
……
和(n-1,n)表示的顺序。可替选地,用于选择两个状态变量的序列可以是由(π1,π2)、(π1,π3)、
……
和(π
n-1
,πn)表示的顺序。此处,{πi}是{1、
……
、n}的重排。搜索处理单元130可以针对每一轮或一些轮在预定定时处改变关于{πi}的{1、
……
、n}的排列顺序。在一次选择的变化候选的状态变量的数量为a(a是1或更大的整数)的情况下,由副本更新单元140a基于随机密钥选择的状态变量的数量也是a。
[0234]
搜索处理单元130可以执行其中一次选择的变化候选的状态变量的数量为1的搜索,并且然后执行其中一次选择的变化候选的状态变量的数量为2的搜索。考虑到属于预定组的状态变量中的仅一个状态变量被设置为1的约束,搜索处理单元130可以按顺序选择要确定的状态变量。这样的约束的示例包括被称为1w1h和2w1h的约束。
[0235]
例如,当在其中多个状态转变被同时设置为转变候选并且从多个状态转变中选择一个状态转变的并行搜索中同时改变两个状态变量时,转变候选的组合的数量增加到n(n

1)。因此,在并行搜索中,执行其中两个或多个状态变量同时改变的搜索是不现实的。相比之下,在顺序地选择状态变量的方法中,可以容易地执行其中两个或更多个状态变量同时改变的搜索,并且可以提高搜索的自由度。
[0236]
为了获得由能量函数表示的问题的解,考虑如上所述顺序地选择状态变量,并且基于能量的变化量来确定是否允许与状态变量相关的状态转变。根据该方法,重复执行针对多个状态变量中的每一个状态变量的确定,直到例如以在完成一轮的状态变量并且任何状态转变不被允许的情况下开始确定下一轮确定的方式执行状态转变。然而,因为在不执
行状态转变的同时迭代次数增加,因此获得解所花费的时间增加。
[0237]
因此,当连续确定状态变量的值将不被改变的次数达到预定次数时,信息处理设备100a通过使用根据能量的变化量的随机密钥来确定经受转变的状态变量,并且改变状态变量的值以促进状态转变。由于以这种方式抑制了状态转变的停滞,因此信息处理设备100a可以提高解搜索的效率。作为结果,信息处理设备100a可以在短时间内达到良好的解。例如,即使对于具有少量反转候选的问题,例如其中能量取局部最小值的具有大量状态的组合优化问题,也可以有效地搜索良好的解。
[0238]
接下来,将描述使用随机密钥的搜索的比较示例。在比较示例中,例示了通过无拒绝(rf,rejection free)方法的采样。作为rf方法的示例,可以使用日本公开特许公报第2020-135727号作为参考。根据比较示例,并行地计算对应于n个状态变量的n个随机密钥,并且基于n个随机密钥来选择其值将被反转的状态变量。cpu 101被例示为比较示例的处理实体。
[0239]
图11是示出比较示例的流程图。
[0240]
(s30)cpu 101初始化搜索处理。在初始化时,如步骤s20中那样设置初始温度值和指定的迭代次数。
[0241]
(s31)cpu 101执行索引的读取。
[0242]
(s32)cpu 101并行地执行对随机密钥k1、k2、
……
和kn的计算。例如,通过等式(11)计算ki。例如,cpu 101使多个搜索处理单元并行操作,并且使每个搜索处理单元计算随机密钥k1、k2、
……
和kn中的每一个。
[0243]
(s33)cpu 101获取随机密钥k1、k2、
……
和kn的计算结果,并且搜索最小值ki。
[0244]
(s34)cpu 101更新状态变量xi和局部字段hi(例如,h1、h2、
……
和hn)。
[0245]
(s35)cpu 101确定状态变量的值是否已被更新指定次数。当状态变量已经被更新指定次数时,处理结束。当状态变量未被更新指定次数时,处理进行到步骤s31。
[0246]
如图10所示,步骤s31至s35可以被认为是针对sa方法等中的一个温度值的过程,并且步骤s31至s35可以被认为在pt方法、退火等中使用的每个温度值处被重复执行。
[0247]
根据比较示例,当要求解的问题等于或小于一个设备中的并行性时,可以高速执行步骤s31至s35的循环。然而,当问题规模大于设备的并行性时,使用以下方法。根据第一种方法,一个设备将所有索引划分为多个部分,以时分方式对每个部分执行步骤s31至s33,并且在所有索引中搜索ki的最小值。根据第二种方法,某个设备将索引的一部分分发给多个设备,每个设备执行步骤s31至s33,并且一个设备对由每个设备获得的ki的获取结果进行整合,并且在所有索引中搜索ki的最小值。
[0248]
然而,在第一种方法中,步骤s31至s35的循环的迭代次数变得非常大,使得计算时间增加。在第二种方法中,计算时间由于多个设备之间的通信开销而增加。
[0249]
相比之下,根据信息处理设备100a,可以抑制在上述第一种方法和第二种方法期间所花费的计算时间的增加,并且即使对于相对大规模的问题,也可以在短时间内达到良好的解。
[0250]
[第五实施方式]
[0251]
接下来,将描述第五实施方式。下面将主要讨论与上述第三实施方式和第四实施方式不同的项目,同时省略对共同项目的说明。
[0252]
图12是示出根据第五实施方式的信息处理设备的功能示例的图。
[0253]
信息处理设备100b由与信息处理设备100的硬件相同的硬件实现。与在信息处理设备100中一样,除了图4所示的系数保存单元120、搜索处理单元130和控制单元190之外,信息处理设备100b还包括副本控制单元170。图12示出了包括在搜索处理单元130中的副本更新单元140b1、140b2、
……
和140bn以及索引生成单元150,并且没有示出搜索处理单元130和控制单元190。
[0254]
信息处理设备100b与第三实施方式和第四实施方式的信息处理设备的不同之处在于,在搜索处理单元130中包括副本更新单元140b1、140b2、
……
和140bn来代替副本更新单元140和140a。n是副本更新单元的数量,并且是2或更大的整数。副本更新单元140b1、140b2、
……
和140bn中的每一个与副本更新单元140或副本更新单元140a相同。图12没有示出向副本更新单元140b1、140b2、
……
和140bn中的每一个提供均匀随机数u(0《u《1)的随机数生成单元160。
[0255]
信息处理设备100b可以包括多个加速器卡,多个加速器卡包括加速器卡103。在这种情况下,副本更新单元140b1、140b2、
……
和140bn以及对应于每个副本更新单元140的索引生成单元和随机数生成单元可以由多个加速器卡实现。副本控制单元170可以通过使cpu 101执行存储在ram 102中的程序来实现,或者可以通过加速器卡103来实现。
[0256]
副本更新单元140b1、140b2、
……
和140bn中的每一个从系数保存单元120读取与从索引生成单元150提供的索引对应的权重系数,并且根据该索引执行转变确定。副本更新单元140b1、140b2、
……
和140bn中的每一个通过改变状态变量的值来更新能量,并且根据转变确定的结果来更新局部字段。索引生成单元150可以向所有副本更新单元140b1、140b2、
……
和140bn输入相同的索引,或者可以向所有或一些副本更新单元输入不同的索引。
[0257]
副本控制单元170使用副本更新单元140b1、140b2、
……
和140bn来控制通过sa方法、pt方法等获得解。副本控制单元170在副本更新单元140b1、140b2、
……
和140bn中的每一个中控制sa方法中的温度值的变化、pt方法中的副本之间的温度值的交换等。副本控制单元170还可以通过使用副本更新单元140b1、140b2、
……
和140bn执行pa方法来获得解。
[0258]
例如,副本控制单元170或控制单元190可以获取由副本更新单元140b1、140b2、
……
和140bn中的每一个最终获得的解,选择最佳解(例如,具有最小能量的解),并且将所选择的解提供给用户。
[0259]
如上所述,在信息处理设备100b中,多个副本更新单元中的每一个以预定顺序选择变化候选的状态变量,对变化候选的状态变量执行转变确定,并且搜索解。当状态转变被连续拒绝的次数达到预定数量时,多个副本更新单元中的每一个利用偏移值来校正用于转变确定的能量的变化量,或者基于与能量的变化量对应的随机密钥来确定经受转变的状态变量。
[0260]
因此,与第三实施方式和第四实施方式一样,信息处理设备100b可以提高解搜索的效率并改善解查找性能。例如,由于多个副本更新单元中的每一个分发和分配负责转变确定的状态变量的索引的范围,因此信息处理设备100b可以应对具有大量状态变量的相对大规模的问题。
[0261]
在其中将多个状态转变同时设置为转变候选并且从多个状态转变中选择一个状
态转变的并行搜索中,针对当前状态附近的所有n个状态变量计算δei。因此,在并行性等于或高于硬件中可能的并行性的问题的情况下,计算速度降低。例如,在通过使用1k位并行设备求解100k位问题的情况下,执行100次并行确定,并且然后确定哪一个位将被反转,这花费时间。
[0262]
如日本公开特许公报第2020-140631号中所例示的,还考虑了通过并行搜索来顺序反转状态变量的值的方法。然而,即使使用上述方法,在具有少量接受候选的问题或具有大量局部最小值(其中,对于所有i而言δei》0)的问题中,在不对状态变量的值进行反转的情况下也难以在短时间内找到良好的解。
[0263]
当在顺序地选择转变候选的方法中观察到状态转变的停滞时,信息处理设备100、100a和100b中的每一个使用偏移值或随机密钥来促进状态转变。因此,即使对于具有少量反转候选的相对大规模的问题,例如其中能量取局部最小值的具有大量状态的组合优化问题,也可以有效地搜索良好的解。
[0264]
例如,根据第三实施方式的信息处理设备100执行以下处理。根据第五实施方式的信息处理设备100b还可以执行与信息处理设备100的处理类似的处理。根据第一实施方式的处理单元12还可以执行副本更新单元140的以下处理。信息处理设备100搜索由包括多个状态变量的能量函数表示的问题的解。
[0265]
副本更新单元140以预定顺序选择作为多个状态变量的一部分的变化候选的状态变量。副本更新单元140基于与所选择的变化候选的状态变量对应的能量函数的值的变化量来确定是否改变变化候选的状态变量的值。当确定变化候选的状态变量的值将被改变时,副本更新单元140改变变化候选的状态变量的值。当连续确定变化候选的状态变量的值将不被改变的次数达到预定次数时,副本更新单元140利用偏移值来校正与新选择的变化候选的状态变量对应的变化量。基于校正后的变化量,副本更新单元140确定是否改变变化候选的状态变量的值。
[0266]
因此,信息处理设备100可以提高解搜索的效率。例如,即使在通过顺序方法(顺序mcmc方法)进行的搜索中落入局部解的情况下,信息处理设备100也可以促进状态转变,并且可以提高解搜索的效率。
[0267]
例如,信息处理设备100执行用于搜索由包括多个状态变量的能量函数表示的问题的解的搜索处理。搜索处理包括选择处理、确定处理和状态改变处理。在选择处理中,副本更新单元140以预定顺序选择作为多个状态变量的一部分的变化候选的状态变量。在确定处理中,副本更新单元140基于与在选择处理中选择的变化候选的状态变量的值的变化对应的能量函数的值的变化量来确定是否改变变化候选的状态变量的值。在状态改变处理中,当在确定处理中确定变化候选的状态变量的值将被改变时,副本更新单元140改变变化候选的状态变量的值。在搜索处理中,副本更新单元140根据预定顺序重复地执行选择处理、确定处理和状态改变处理。在搜索处理中,副本更新单元140还执行计数处理和校正处理。在计数处理中,副本更新单元140对在重复执行的搜索处理期间确定变化候选的状态变量的值将连续不被改变的次数进行计数。在校正处理中,当在计数处理中计数的次数达到预定次数时,副本更新单元140利用偏移值来校正与新选择的变化候选的状态变量的值的变化对应的能量函数的变化量。在通过校正处理校正了变化量之后的确定处理中,副本更新单元140基于校正后的变化量来确定是否改变新选择的变化候选的状态变量的值。
[0268]
因此,信息处理设备100可以提高解搜索的效率。例如,即使在通过顺序方法(顺序mcmc方法)进行的搜索中落入局部解的情况下,信息处理设备100也可以促进状态转变,并且可以提高解搜索的效率。
[0269]
例如,在能量函数的值的变化量的校正中,副本更新单元140执行从变化量中减去偏移值的校正。
[0270]
因此,在搜索使能量最小化的问题的解中,与不执行利用偏移值的校正的情况相比,可以增加确定新选择的变化候选的状态变量的值将被改变的概率。在搜索使能量最大化的问题的解的情况下,可以想到,副本更新单元140以使得具有大能量变化量的状态转变被优先考虑的方式来执行随机选择。在这种情况下,在能量的变化量的校正中,还可以想到,副本更新单元140通过将正偏移值添加到变化量来促进状态转变。
[0271]
在基于校正后的变化量改变变化候选的状态变量的值后,副本更新单元140取消利用偏移值的校正。
[0272]
因此,信息处理设备100可以基于能量的正常变化量来重新开始适当的搜索。例如,对利用偏移值的校正的消除对应于将上述偏移值e
off
重置为0。
[0273]
副本更新单元140将根据预定顺序对变化候选的状态变量的一轮选择所需的选择次数设置为预定次数。
[0274]
因此,例如,即使在通过顺序方法进行的搜索中落入局部解的情况下,信息处理设备100也可以促进状态转变,并且可以提高解搜索的效率。一轮选择所需的选择次数是按照预定顺序从多个状态变量中选择所有变化候选的状态变量所需的对变化候选的状态变量的选择次数。一轮选择所需的选择次数对应于上述一轮确定次数z。
[0275]
通过将能量的变化量与随机数值进行比较,副本更新单元140随机地确定是否改变变化候选的状态变量的值。通过利用偏移值校正能量的变化量,与不执行利用偏移值的校正的情况相比,副本更新单元140增加了确定改变变化候选的状态变量的值的概率。
[0276]
因此,即使在通过顺序方法进行的搜索中落入局部解的情况下,信息处理设备100也可以促进状态转变,并且可以提高解搜索的效率。
[0277]
例如,当确定变化候选的状态变量的值连续不被改变的次数达到预定次数时,副本更新单元140将针对变化候选的每个状态变量获得的变化量的最小值设置为偏移值。
[0278]
因此,信息处理设备100可以获得最优偏移值。
[0279]
例如,副本更新单元140通过执行从能量的变化量中减去偏移值的校正来将确定改变与上述最小值对应的变化候选的状态变量的值的概率设置为1。
[0280]
因此,信息处理设备100可以确定改变与至少上述最小值对应的变化候选的状态变量的值,并且可以可靠地引起状态转变。
[0281]
副本更新单元140将针对是否改变变化候选的状态变量的值的一个确定而选择的变化候选的状态变量的数量设置为一个或更多个。
[0282]
因此,信息处理设备100可以提高搜索的自由度,并且可以增加根据问题进一步提高解搜索的效率的可能性。
[0283]
例如,根据第四实施方式的信息处理设备100a执行以下处理。根据第五实施方式的信息处理设备100b还可以执行与信息处理设备100a的处理类似的处理。根据第二实施方式的处理单元22还可以执行副本更新单元140a的以下处理。信息处理设备100a搜索由包括
多个状态变量的能量函数表示的问题的解。
[0284]
副本更新单元140a以预定顺序选择作为多个状态变量的一部分的变化候选的状态变量。副本更新单元140a基于与所选择的变化候选的状态变量对应的能量函数的值的变化量来确定是否改变变化候选的状态变量的值。当确定变化候选的状态变量的值将被改变时,副本更新单元140a改变变化候选的状态变量的值。当连续确定变化候选的状态变量的值将不被改变的次数达到预定次数时,副本更新单元140a基于根据变化量和随机数值计算的随机密钥值从多个状态变量中选择第一状态变量,并且改变第一状态变量的值。
[0285]
因此,信息处理设备100a可以提高解搜索的效率。例如,即使在通过顺序方法进行的搜索中落入局部解的情况下,信息处理设备100a也可以促进状态转变,并且可以提高解搜索的效率。
[0286]
例如,信息处理设备100a执行用于搜索由包括多个状态变量的能量函数表示的问题的解的搜索处理。搜索处理包括选择处理、确定处理和状态改变处理。在选择处理中,副本更新单元140a以预定顺序选择作为多个状态变量的一部分的变化候选的状态变量。在确定处理中,副本更新单元140a基于与在选择处理中选择的变化候选的状态变量的值的变化对应的能量函数的值的变化量来确定是否要改变变化候选的状态变量的值。在状态改变处理中,当在确定处理中确定变化候选的状态变量的值将被改变时,副本更新单元140a改变变化候选的状态变量的值。在搜索处理中,副本更新单元140a根据预定顺序重复地执行选择处理、确定处理和状态改变处理。副本更新单元140a执行用于对在重复执行的搜索处理期间确定变化候选的状态变量的值将连续不被改变的次数进行计数的计数处理。当在计数处理中计数的次数达到预定次数时,副本更新单元140a基于根据变化量和随机数值计算的随机密钥值从多个状态变量中选择第一状态变量,并且改变第一状态变量的值。
[0287]
因此,信息处理设备100a可以提高解搜索的效率。例如,即使在通过顺序方法进行的搜索中落入局部解的情况下,信息处理设备100a也可以促进状态转变,并且可以提高解搜索的效率。
[0288]
当确定变化候选的状态变量的值将连续不被改变的次数达到预定次数时,副本更新单元140a计算与针对变化候选的每个状态变量获得的变化量和随机数值对应的随机密钥值。副本更新单元140a将与所计算的随机密钥值之中的最小值或最大值对应的变化候选的状态变量设置为第一状态变量。
[0289]
因此,信息处理设备100a可以适当地获得第一状态变量。作为用于计算特定随机密钥值的随机数值,副本更新单元140a可以使用在计算对应随机密钥值时的定时处生成的随机数值。
[0290]
副本更新单元140a基于能量变化量、随机数值和用于搜索解的温度值来计算随机密钥值。
[0291]
因此,信息处理设备100a可以根据适当的标准(例如,metropolis标准等)来选择第一状态变量。
[0292]
副本更新单元140a将根据预定顺序对变化候选的状态变量的一轮选择所需的选择次数设置为预定次数。
[0293]
因此,即使在通过顺序方法进行的搜索中落入局部解的情况下,信息处理设备100a也可以促进状态转变,并且可以提高解搜索的效率。一轮选择所需的选择次数是按照
预定顺序从多个状态变量中选择所有变化候选的状态变量所需的对变化候选的状态变量的选择次数。一轮选择所需的选择次数对应于上述一轮确定次数z。
[0294]
副本更新单元140a将针对是否改变变化候选的状态变量的值的一个确定而选择的变化候选的状态变量的数量设置为一个或更多个。
[0295]
因此,信息处理设备100a可以提高搜索的自由度,并且可以增加根据问题进一步提高解搜索的效率的可能性。
[0296]
根据第一实施方式的信息处理可以通过使处理单元12执行程序来实现。根据第二实施方式的信息处理可以通过使处理单元22执行程序来实现。第三实施方式至第五实施方式的信息处理可以通过使cpu 101执行程序来实现。信息处理设备10、20、100、100a和100b中的每一个可以由计算机来实现。程序可以记录在计算机可读记录介质53中。
[0297]
例如,通过分发记录有程序的记录介质53来循环程序。该程序可以存储在另一计算机中,并且该程序可以经由网络分发。例如,计算机可以在存储装置(例如ram 102或hdd 104)中存储(安装)记录在记录介质53中的程序或从另一计算机接收的程序,并且可以从存储装置读取程序以执行程序。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1