一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

信息处理系统、信息处理方法和程序与流程

2022-03-13 20:26:53 来源:中国专利 TAG:


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


背景技术:

2.存在通过使用作为表示磁性材料中的自旋行为的模型的伊辛(ising)模型替代组合优化问题来计算冯
·
诺依曼(von neumann)型计算机不擅长的多变量组合优化问题的信息处理装置。用于在实际时间中求解使用伊辛模型替代的问题的技术包括例如模拟退火(sa)方法和诸如副本交换方法的马尔可夫链蒙特卡罗(markov chain monte carlo,mcmc)方法。通过包含多个状态变量的能量函数将组合优化问题公式化。例如,信息处理装置通过使用mcmc方法反复尝试通过改变状态变量的值而引起的状态转变来搜索伊辛模型的使能量函数的值最小化的基态。基态对应于组合优化问题的最优解。
3.组合优化问题的实际问题示例包括二次分配问题(quadratic assignment problem,qap)。qap之一例如是设施布置问题。设施布置问题是用于在多个位置布置多个设施时获得使由设施之间的流转(flow)(诸如设施之间的物理分布)与位置之间的距离的乘积之和表示的成本值最小化的设施布置的问题。设施之间的流转和位置之间的距离均可以用矩阵表示。此外,对设施布置问题施加所有设施彼此布置在不同位置的约束条件。
4.注意,已经提出了在稀疏线性判别(sparse linear discriminant)分析中使具有基数约束(radix constraint)的组合优化问题的候选解最大化的方法。此外,已经提出了使用变分特征值边界(variational eigenvalue boundary)执行稀疏主成分分析(sparse principal component analysis)的离散谱公式化(discrete spectrum formulation)的方法。
5.[引文列表]
[0006]
[专利文献]
[0007]
[专利文献1]日本公开特许公报第2007-317185号。
[0008]
[专利文献2]美国专利申请公布第2007/0156471号被公开作为相关技术。


技术实现要素:

[0009]
[问题]
[0010]
如上所述,在qap中,使用两个矩阵来计算成本值,并且在约束条件下找到使成本值最小化的解。在能量函数中,施加在问题上的约束条件被表示为用于添加约束违反的惩罚值的约束项。预先设置比成本值可以取的值稍大的值作为惩罚值。
[0011]
此处,取决于存在还是不存在成本值和惩罚值的相加,能量函数的值取相对大的值或相对小的值。如果存在能量函数取它可以取的值之中相对大的值的状态,则跨状态的状态转变在解搜索中停滞,并且实际搜索的状态可能受到限制。因此,最优解的可达性可能低。
[0012]
因此,可以想到:在将问题公式化时调整成本值的范围,使得能够根据成本值控制
惩罚值或者能量函数的值。例如,通过减小能量函数可以取的值的范围,可以预期到有助于状态转变。然而,如果随机地改变成本值的范围,则存在通过公式化的能量函数获得的最优解变得与关于原始问题应该获得的最优解不同的可能性。
[0013]
在一方面,本实施方式旨在提供一种使得能够适当地调整成本值的信息处理系统、信息处理方法和程序。
[0014]
[问题的解决方案]
[0015]
根据实施方式的一方面,一种求解二次分配问题的信息处理系统,在二次分配问题中,使用第一矩阵和第二矩阵基于伊辛模型的能量函数来计算成本值,该信息处理系统包括处理单元和搜索单元,处理单元被配置成:获取多个矩阵,所述多个矩阵每个均是通过第一矩阵的多个元素值中的每个元素值与第二矩阵的乘积获得的;针对所述多个矩阵执行在与第一矩阵的第一元素值相对应的第一组元素值和与第二矩阵的第二元素值相对应的第二组元素值中的至少一者上加上或减去第一值的校正;以及输出通过基于校正之后的所述多个矩阵将该二次分配问题公式化而获得的能量函数的信息。搜索单元被配置成基于所输出的能量函数的信息来搜索伊辛模型的基态。
[0016]
[发明效果]
[0017]
一方面,可以适当地调整成本值。
附图说明
[0018]
图1是用于描述根据第一实施方式的信息处理系统的图;
[0019]
图2是示出第一校正示例的图;
[0020]
图3是示出第二校正示例的图;
[0021]
图4是示出第三校正示例的图;
[0022]
图5是示出根据第二实施方式的信息处理系统的硬件示例的图;
[0023]
图6是示出二次分配问题的成本的计算示例的图;
[0024]
图7是示出由伊辛模型进行的分配的表达示例的图;
[0025]
图8是示出信息处理系统的功能示例的图;
[0026]
图9是示出在能量函数包括约束项的情况下的状态转变的示例的图;
[0027]
图10是示出搜索中的能量垒的示例的图;
[0028]
图11是示出流转矩阵(flow matrix)与距离矩阵(distance matrix)的乘积的展开示例的图;
[0029]
图12是示出将最优解展开为列向量的示例的图;
[0030]
图13是示出在最优解中选择的元素值的示例的图;
[0031]
图14是示出元素值的校正示例的图(第一);
[0032]
图15是示出元素值的校正示例的图(第二);
[0033]
图16是示出转换后的子矩阵组的示例的图;
[0034]
图17是示出平滑搜索空间的示例的图;
[0035]
图18是示出信息处理系统的处理示例的流程图;以及
[0036]
图19是示出组运算类型和调制模式的组合的示例的图。
具体实施方式
[0037]
在下文中,将参照附图描述本实施方式。
[0038]
[第一实施方式]
[0039]
将描述第一实施方式。
[0040]
图1是说明根据第一实施方式的信息处理系统的图。
[0041]
信息处理系统10通过用伊辛模型的能量函数进行代替来计算组合优化问题。能量函数表示与伊辛模型的状态相对应的能量值,并且也被称为目标函数、评价函数等。存在作为组合优化问题的实际问题的qap。在qap中,获得在约束条件下使由两个矩阵的乘积表示的成本值最小化的解。信息处理系统10基于伊辛模型的能量函数求解qap。
[0042]
信息处理系统10包括存储单元11、处理单元12和搜索单元13。
[0043]
存储单元11可以是易失性存储装置例如动态随机存取存储器(dram),或者可以是非易失性存储装置例如硬盘驱动器(hdd)或闪存存储器。存储单元11存储处理单元12进行处理所使用的各种数据。
[0044]
处理单元12可以包括中央处理单元(cpu)、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)等。处理单元12可以是执行程序的处理器。此处,“处理器”可以包括多个处理器的集合(多处理器)。处理单元12基于组合优化问题的输入数据利用能量函数将组合优化问题公式化,并且将能量函数的信息输出至搜索单元13。处理单元12获取通过搜索单元13获得的解并将所获取的解输出至外部。例如,处理单元12可以在与信息处理系统10连接的显示装置上显示解的内容,或者可以经由网络将解传输至另外的信息处理装置。
[0045]
搜索单元13从处理单元12接收能量函数的信息,并且基于能量函数搜索伊辛模型的基态,即使能量函数的值最小化的解。搜索单元13将通过搜索获得的解输出至处理单元12。搜索单元13由专用硬件实现。例如,通过使用集成电路例如fpga、asic或图形处理单元(gpu)实现的搜索电路可以用作搜索单元13。然而,搜索单元13也可以由执行预定程序的处理器实现。搜索单元13使用的搜索方法的示例包括sa方法、副本交换方法、模拟量子退火(sqa)方法等。
[0046]
此处,考虑作为qap的示例之一的设施布置问题。在设施布置问题中,通过表示设施之间的流转(flow)的流转矩阵与表示设施的布置候选的位置之间的距离的距离矩阵的乘积来计算成本值。此外,对设施布置问题施加所有设施彼此布置在不同位置的约束条件。
[0047]
因此,通过将组合优化问题公式化而获得的能量函数可以包括表示成本值的成本项和表示约束条件的约束项。使能量函数最小化的状态是与适当问题的最优解相对应的基态。例如,由式(1)表示qap的能量函数h。
[0048]
[式1]
[0049]
[0050]
式(1)右侧的第一项是成本项。成本项有时被称为目标项。式(1)右侧的第二项和第三项分别是约束项。约束项有时被称为惩罚项。注意,在使能量函数最大化的问题的情况下,简单地使能量函数的符号相反。
[0051]
在式(1)的成本项中,a
ij
表示要布置的对象(例如,设施)之间的流转。i和j分别是指示要布置的对象的索引。a
ii
=0。此外,a
ij
=a
ji
。b
kl
表示位置之间的距离。k和l分别是指示位置的索引。b
kk
=0。此外,b
kl
=b
lk
。x
ik
是指示存在还是不存在要布置的对象i布置在位置k处的状态变量。该状态变量是取值为0或1的二进制变量,并且也被称为位。伊辛模型的状态由状态变量的值的集合表示。在要布置的对象i被布置在位置k处的情况下,x
ik
=1。在要布置的对象i没有被布置在位置k处的情况下,x
ik
=0。n是要布置的对象的数量并且是位置的数量(n是为3或大于3的整数)。
[0052]
作为示例,考虑给出三个要布置的对象a、b和c以及三个位置i、ii和iii的情况。要布置的对象a的索引为1,要布置的对象b的索引为2,并且要布置的对象c的索引为3。位置i的索引为1,位置ii的索引为2,并且位置iii的索引为3。在这种情况下,矩阵a={a
ij
}由矩阵21表示。a
ij
对应于矩阵21第i行第j列的元素值。矩阵b={b
kl
}由矩阵22表示。b
kl
对应于矩阵22第k行第l列的元素值。此外,x={x
ik
}由矩阵23表示。
[0053]
式(1)右侧的第二项和第三项的约束项表示所有要布置的对象被布置在彼此不同的位置处的约束条件。右侧第二项的约束项表示在每个位置布置一个要布置的对象的约束。右侧第三项的约束项表示一个要布置的对象被布置在一个位置处的约束。α和β是惩罚系数。惩罚系数表示针对约束违反添加的正值,即惩罚值。α和β被设置成在某种程度上大于成本项的值的值。
[0054]
在搜索单元13中,例如,使用以二次无约束二进制优化(quadratic unconstrained binary optimization,qubo)格式表示式(1)的能量函数h的能量函数。处理单元12向搜索单元13输入的信息可以是以qubo格式表示的能量函数的信息。
[0055]
如下执行由搜索单元13进行的搜索。作为示例,考虑使用sa方法或副本交换方法的情况。
[0056]
搜索单元13针对多个状态变量中的每个状态变量计算由于多个状态变量中的一个状态变量的值的变化引起的能量函数的值的变化量,并且以能量函数的值变小的变化为优先的方式来概率地接受该变化量。然而,利用最速下降方法,在过程落入局部解的情况下,难以逃离局部解。因此,搜索单元13使用metropolis方法或gibbs方法通过改变某个状态变量来确定伊辛模型从一个状态向下一状态的转变概率。也就是说,搜索单元13根据能量函数的值的变化量与噪声值之间的比较,随机地允许能量函数的值变大的改变。噪声值是基于温度值或随机数获得的。温度值越大,噪声值的幅度越大。噪声值的幅度越大,能量函数的值大量增加的状态转变越容易被允许。
[0057]
搜索单元13从搜索开始直至满足搜索结束条件反复尝试基于这样的处理的状态转变,并且获得在搜索结束条件满足时多个状态变量的值的集合作为解。例如,根据是否已经经过了预定的单位时间,或者针对状态变量的改变的尝试次数是否已经达到了预定的单位次数等,来确定搜索结束条件。
[0058]
信息处理系统10使得可以在qap的公式化中调整成本项的取值范围。例如,具体描述如下。
[0059]
处理单元12获取多个矩阵,所述多个矩阵每个均是通过第一矩阵的多个元素值中的每个元素值与第二矩阵的乘积获得的。矩阵21是第一矩阵的示例。矩阵22是第二矩阵的示例。例如,处理单元12接收第一矩阵和第二矩阵的输入,并且计算第一矩阵的多个元素值中的每个元素值与第二矩阵的乘积以获取多个矩阵。可替选地,处理单元12可以通过从外部接收作为第一矩阵的多个元素值中的每个元素值与第二矩阵的乘积的计算结果的输入来获取多个矩阵。
[0060]
处理单元12执行在所获取的多个矩阵的与第一矩阵的第一元素值相对应的第一组元素值和与第二矩阵的第二元素值相对应的第二组元素值中的至少一者上加上或减去第一值的校正。
[0061]
处理单元12将通过基于校正后的多个矩阵将qap公式化而获得的能量函数的信息输出至搜索单元13。
[0062]
搜索单元13基于能量函数的输出信息搜索伊辛模型的基态。
[0063]
接下来,将描述处理单元12针对矩阵21和22进行上述校正的示例。
[0064]
图2是示出第一校正示例的图。
[0065]
处理单元12获取针对矩阵21和22的矩阵组30。矩阵组30包括矩阵31、32、33、34、35、36、37、38和39。
[0066]
矩阵31是矩阵21的元素值a
11
与矩阵22的乘积。
[0067]
矩阵32是矩阵21的元素值a
21
与矩阵22的乘积。
[0068]
矩阵33是矩阵21的元素值a
31
与矩阵22的乘积。
[0069]
矩阵34是矩阵21的元素值a
12
与矩阵22的乘积。
[0070]
矩阵35是矩阵21的元素值a
22
与矩阵22的乘积。
[0071]
矩阵36是矩阵21的元素值a
32
与矩阵22的乘积。
[0072]
矩阵37是矩阵21的元素值a
13
与矩阵22的乘积。
[0073]
矩阵38是矩阵21的元素值a
23
与矩阵22的乘积。
[0074]
矩阵39是矩阵21的元素值a
33
与矩阵22的乘积。
[0075]
矩阵31至39或者矩阵组30是所述多个矩阵的示例,所述多个矩阵每个均是通过第一矩阵的多个元素值中的每个元素值与第二矩阵的乘积获得的。
[0076]
第一校正示例是在所述多个矩阵的与第一矩阵的第一元素值相对应的第一组元素值上加上或减去第一值的示例,所述多个矩阵每个均是通过第一矩阵的多个元素值中的每个元素值与第二矩阵的乘积获得的。第一值例如是正值。
[0077]
第一矩阵和第二矩阵是关于对角线元素对称的对称矩阵。因此,例如,矩阵32和34中相同位置处的元素值相同。矩阵33和37中相同位置处的元素值相同。矩阵36和38中相同位置处的元素值相同。因此,考虑对矩阵组30中的矩阵32、33和36的校正,可以将与对应矩阵32、33和36的校正后的值相同的值用于矩阵34、38和39。因此,下面的描述将主要针对矩阵32、33和36。注意,由于a
ii
=0且b
kk
=0,因此将a
ii
或b
kk
包括为因子的元素值为0。在附图中,对于明显为0的元素值,可以写入0。
[0078]
例如,处理单元12执行从矩阵组30中的与矩阵21的元素值a
32
相对应的元素值的组即矩阵36减去值c1的校正。处理单元12通过从矩阵36的每个元素值减去值c1来生成矩阵36a。注意,不必从与约束违反的状态相对应的对角线元素的元素值(例如,a
32b11
、a
32b22
和a32b33
)减去值c1。
[0079]
通过将矩阵组30中的矩阵36校正为矩阵36a获得矩阵组30a。在这种情况下,元素值a
32
是第一元素值的示例。此外,矩阵36是第一组的示例。此外,值c1是第一值的示例。
[0080]
存在确定第一元素值和值c1的大小以及是减去还是加上值c1的若干可能方法。例如,处理单元12确定第一元素值和值c1的大小以及是减去还是加上值c1,使得成本项的取值范围变小。注意,在确定值c1的大小时不必考虑第一组的对角线元素。也就是说,可以认为对角线元素被排除在第一组之外或者对角线元素不包括在第一组中。
[0081]
具体地,处理单元12可以将矩阵21的元素值中的大值优先设置为第一元素值,并且从矩阵组30的与第一元素值相对应的第一组减去值c1。此时,处理单元12可以基于第一元素值与矩阵21中的另一元素值的差确定值c1的大小,或者可以确定值c1的大小使得矩阵36a的元素值中的最小值变成预定值(例如,0)。
[0082]
可替选地,处理单元12可以将矩阵21的元素值中的小值优先设置为第一元素值,并且将值c1和矩阵组30的与第一元素值相对应的第一组相加。此时,处理单元12可以基于第一元素值与矩阵21中的另一元素值的差确定值c1的大小。
[0083]
此外,处理单元12可以从矩阵21确定多个第一元素值。也就是说,可以采用多个第一组。在图2的示例中,除了矩阵36之外,处理单元12还可以校正矩阵32或33中的至少一个。在这种情况下,处理单元12可以确定要应用于矩阵32、33和36的校正值的大小以及加上还是减去校正值,使得包括在矩阵32、33和36中的元素值中的参考值之间的差变小。参考值的类型的示例包括适当矩阵中的元素值中的最小值、平均值、百分位值(percentile value)等。可以在不包括适当矩阵的对角线元素的情况下确定参考值。例如,作为使包括在矩阵32、33、36中的元素值中的参考值之间的差小的校正方法,可以想到执行校正使得每个矩阵的最小值变成预定值(例如,0)的方法或者执行校正使得每个矩阵的元素值的平均值的差变小的方法。
[0084]
图3是示出第二校正示例的图。
[0085]
第二校正示例是在多个矩阵的与第二矩阵的第二元素值相对应的第二组元素值上加上或减去第一值的示例,所述多个矩阵每个均是通过第一矩阵的多个元素值中的每个元素值与第二矩阵的乘积获得的。
[0086]
例如,处理单元12执行从与矩阵组30中的矩阵22的元素值b
12
相对应的元素值的组即包括元素值321、331和361的组减去值c2的校正。处理单元12通过从矩阵组30的元素值321、331和361减去值c2生成矩阵组30b。
[0087]
矩阵组30b包括元素值321b、331b和361b。元素值321b是通过从元素值321减去值c2获得的值。元素值331b是通过从元素值331减去值c2获得的值。元素值361b是通过从元素值361减去值c2获得的值。
[0088]
在这种情况下,元素值b
12
是第二元素值的示例。此外,包括元素值321、331和361的组是第二组的示例。此外,值c2是第一值的示例。
[0089]
存在确定第二元素值和值c2的大小以及是减去还是加上值c2的若干可能方法。例如,处理单元12确定第二元素值和值c2的大小以及是减去还是加上值c2,使得成本项的取值范围变小。
[0090]
具体地,处理单元12可以将矩阵22的元素值中的大值优先设置为第二元素值,并
且从矩阵组30的与第二元素值相对应的第二组减去值c2。此时,处理单元12可以基于第二元素值与矩阵22中的另一元素值的差确定值c2的大小,或者可以确定值c2的大小使得元素值321、331和361中的最小值变成预定值(例如,0)。
[0091]
可替选地,处理单元12可以将矩阵22的元素值中的小值优先设置为第二元素值,并且将值c2和矩阵组30中与第二元素值相对应的第二组相加。此时,处理单元12可以基于第二元素值与矩阵22中的另一元素值的差值确定值c2的大小。
[0092]
此外,处理单元12可以从矩阵22确定多个第二元素值。也就是说,可以采用多个第二组。在图3的示例中,除了与元素值b
12
相对应的组之外,处理单元12还可以校正与矩阵22中的另一元素值相对应的组。在这种情况下,处理单元12可以确定要应用于每个组的校正值的大小以及是加上还是减去校正值,使得包括在每个组中的元素值中的参考值的差变小。参考值的类型的示例包括适当组中的元素值的最小值、平均值、百分位值等。例如,作为使包括在每个组中的元素值的参考值的差小的校正方法,可以想到执行校正使得属于每个组的最小值变成预定值(例如,0)的方法,或者执行校正使得属于每个组的元素值的平均值的差小的方法。
[0093]
图4是示出第三校正示例的图。
[0094]
第三校正示例是在多个矩阵中的与第一矩阵的第一元素值相对应的第一组元素值和与第二矩阵的第二元素值相对应的第二组元素值两者上均加上或减去第一值的示例,所述多个矩阵每个均是通过第一矩阵的多个元素值中的每个元素值与第二矩阵的乘积获得的。
[0095]
例如,处理单元12执行从矩阵组30的与矩阵21的元素值a
32
相对应的第一组元素值和与矩阵22的元素值b
12
相对应的第二组元素值两者均减去值c3的校正。在这种情况下,第一组对应于矩阵36。此外,第二组对应于包括元素值321、331和361的组。也就是说,处理单元12通过从矩阵36的每个元素值减去值c3生成矩阵36c。此外,处理单元12通过从元素值321和331减去值c3生成元素值321c和331c。注意,不必从与约束违反的状态相对应的元素值(例如,a
32b11
、a
32b22
和a
32b33
)减去值c3。
[0096]
通过将矩阵组30的矩阵36校正为矩阵36c并且将元素值321和331校正为元素值321c和331c获得矩阵组30c。矩阵36c包括通过从元素值361减去值c3获得的元素值361c。
[0097]
存在确定第一元素值、第二元素值和值c3的大小以及是减去还是加上值c3的若干可能方法。例如,处理单元12确定第一元素值、第二元素值和值c3的大小以及是减去还是加上值c3使得成本项的取值范围变小。注意,在确定值c3的大小时不必考虑第一组的对角线元素。也就是说,可以认为对角线元素被排除在第一组之外或者对角线元素不包括在第一组中。
[0098]
具体地,处理单元12可以将矩阵21的元素值中较大的值优先设置为第一元素值以及将矩阵22的元素值中较大的值优先设置为第二元素值,并且从矩阵组30的与第一元素值相对应的第一组以及与第二元素值相对应的第二组减去值c3。此时,处理单元12可以基于第一元素值与矩阵21中的另一元素值之间的差或者第二元素值与矩阵22中的另一元素值之间的差确定值c3的大小。可替选地,处理单元12可以确定值c3的大小,使得属于第一组的元素值中的最小值和属于第二组的元素值中的最小值为预定值(例如,0)。
[0099]
可替选地,处理单元12可以将矩阵21的元素值中较小的值优先设置为第一元素值
以及将矩阵22的元素值中小的值优先设置为第二元素值,并且将矩阵组30的与第一元素值相对应的第一组以及与第二元素值相对应的第二组加上值c3。此时,处理单元12可以基于第一元素值与矩阵21的另一元素值之间的量值上的差或者第二元素值与矩阵22的另一元素值之间的差确定值c3的大小。
[0100]
此外,处理单元12可以从矩阵21确定多个第一元素值并且从矩阵22确定多个第二元素值。也就是说,可以分别采用多个第一组和多个第二组。例如,除了矩阵36之外,处理单元12还可以执行从矩阵32和33中的至少一者减去值c3的校正。在这种情况下,处理单元12可以确定要应用的校正值的大小以及是加上还是减去校正值,使得包括在每个组中的元素值中的参考值的差变小。例如,作为使包括在每个组中的元素值的参考值的差小的校正方法,可以想到执行校正使得每个组的最小值变成预定值(例如,0)的方法,或者执行校正使得每个组的元素值的平均值的差小的方法。
[0101]
处理单元12基于通过图2至图4中示出的校正获得的矩阵组30a、30b和30c中的任何矩阵组生成能量函数的信息并且将该信息输出至搜索单元13。
[0102]
根据信息处理系统10,获取通过第一矩阵的多个元素值中的每个元素值与第二矩阵的乘积获得的多个矩阵。针对多个矩阵,执行在与第一矩阵的第一元素值相对应的第一组元素值和与第二矩阵的第二元素值相对应的第二组元素值中的至少一者上加上或减去第一值的校正。输出通过基于校正后的多个矩阵对qap进行公式化获得的能量函数的信息。基于所输出的能量函数的信息来搜索伊辛模型的基态。
[0103]
因此,可以适当地调整成本值。
[0104]
此处,在校正包括在能量函数中的参数时,对最优解的影响成为问题。这是因为存在最优解改变的可能性。
[0105]
同时,在计算关于最优解的成本值时,不重复使用来自上述第一组和第二组的元素值。因此,即使执行了在第一组和第二组中的至少一者上加上或减去第一值的校正,在不执行校正的情况下的能量函数的最优解也变成在执行校正的情况下给予能量函数最小值的最优解。因此,在不执行校正的情况下以及在通过执行图2至图4中示出的校正来进行校正的情况下,处理单元12均可以在不改变最优解的情况下调整能量函数中的成本项的取值范围。
[0106]
例如,处理单元12可以通过校正使成本项的取值范围小,并且可以使惩罚系数α和β与式(1)中的每个成本值之间的相对差小。然后,基于惩罚系数跨越能量垒向另一状态的转变变得容易——甚至从能量函数的值相对小的状态基于惩罚系数跨越能量垒向另一状态的转变也变得容易——并且可以增强最优解的可达性。
[0107]
例如,处理单元12可以使搜索单元13以具有小值的惩罚系数α和β开始搜索解,并且在从搜索单元13输出的解不满足约束条件的情况下使搜索单元13以具有大值的α和β再次搜索解。在从搜索单元13输出的解满足约束条件时,处理单元12采用该解作为最终解。通过以这种方式控制惩罚系数α和β从相对小的值开始逐级增加,有利于基于α和β跨越能量垒从一个状态向另一状态转变并且可以有效地搜索到满足约束条件的解。
[0108]
此处,可以根据包括在矩阵31至39中的每个矩阵中的元素值的趋势选择图2至图4中示出的校正方法。
[0109]
例如,在矩阵32、33和36的矩阵中包括相对大的值并且表示矩阵中的元素值的分
102不同类型的存储器或者多个存储器。
[0123]
hdd 103是存储诸如操作系统(os)、中间件和应用软件的软件程序和数据的非易失性存储装置。注意,信息处理装置100可以包括其他类型的存储装置例如闪存和固态驱动器(ssd),并且可以包括多个非易失性存储装置。
[0124]
io接口104与优化装置200连接,并且根据来自cpu 101的指令向优化装置200输入数据或者从优化装置200输出数据。例如,io接口104响应于cpu 101的指令,将ram 102中的数据写入优化装置200的寄存器或存储器或者从优化装置200读取数据并将数据写入ram 102。快速外围组件互连(peripheral component interconnect-express,pci-e)用于例如io接口104。
[0125]
图像信号处理单元105根据来自cpu 101的指令将图像输出至与信息处理装置100连接的显示器111。可以使用任何类型的显示器例如阴极射线管(crt)显示器、液晶显示器(lcd)、等离子体显示器或有机电致发光(oel)显示器作为显示器111。
[0126]
输入信号处理单元106从连接至信息处理装置100的输入装置112获取输入信号并将该输入信号输出至cpu 101。可以使用定点装置(例如鼠标、触摸面板、触摸板或轨迹球)、键盘、遥控器、按钮开关等作为输入装置112。此外,可以将多种类型的输入装置连接至信息处理装置100。
[0127]
介质读取器107是读取记录在记录介质113上的程序和数据的读取装置。例如,可以使用磁盘、光盘、磁光(mo)盘、半导体存储器等作为记录介质113。磁盘的示例包括软盘(fd)和hdd。光盘包括致密盘(cd)和数字多功能光盘(dvd)。
[0128]
介质读取器107将例如从记录介质113读取的程序和数据复制到诸如ram 102或hdd 103的另一记录介质。所读取的程序由例如cpu 101执行。注意,记录介质113可以是便携式记录介质,并且可以用于程序和数据的分发。此外,记录介质113和hdd 103有时可以被称为计算机可读记录介质。
[0129]
nic 108是与网络60连接并且经由网络60与其他计算机通信的接口。例如,nic 108通过线缆连接至通信装置例如交换机或路由器。
[0130]
优化装置200是基于能量函数的信息通过硬件以例如sa方法、副本交换方法或mcmc方法执行基态搜索的加速器。优化装置200可以被称为伊辛机、玻尔兹曼机等。优化装置200包括fpga 201和ram 202。fpga 201实现针对由伊辛模型表示的问题的解搜索功能。由优化装置200进行的解搜索功能可以通过其他类型的集成电路例如asic和gpu实现。ram 202是存储用于fpga 201的解搜索的各种数据的存储器。例如,ram 202是静态ram(sram)。
[0131]
注意,优化装置200可以是通过量子退火方法执行基态搜索的硬件。此外,代替优化装置200,包括在信息处理装置100中的cpu 101或另外的处理器可以通过执行预定软件来实现使用例如sa方法、副本交换方法或sqa方法的搜索单元的功能。
[0132]
图6是示出二次分配问题的成本的计算示例的图。
[0133]
此处,考虑在四个位置(i到iv)布置四个设施(a至d)的设施布置问题。
[0134]
矩阵401是表示设施之间的流转的流转矩阵a={a
ij
}。矩阵402和403是表示位置之间的距离的距离矩阵b={b
kl
}。矩阵403是通过对矩阵402执行矩阵置换运算而获得的。矩阵401、402和403的对角线元素分别为0。省略了0的图示,而是示出了对角线。
[0135]
例如,矩阵401和402的组合可以表示设施a被布置在位置i处,设施b被布置在位置
ii处,设施c被布置在位置iii处并且设施d被布置在位置iv处。在这种情况下,成本为7
×
4 1
×
5 2
×
3 3
×
1 4
×
2 5
×
2=60。
[0136]
此外,矩阵401和403的组合可以表示设施a被布置在位置ii处,设施b被布置在位置iii处,设施c被布置在位置iv处并且设施d被布置在位置i处。在这种情况下,成本为7
×
1 1
×
2 2
×
4 3
×
2 4
×
5 5
×
3=58。
[0137]
以这种方式,可以想到:在通过矩阵的置换运算改变设施与布置目的地位置之间的对应关系的同时计算成本,并且指定使成本最小化的分配方法。然而,随着设施和位置的数量增加,组合的数量变得巨大,并且通过这样的方法求解在实际时间内获得解变得不可能。因此,使用优化装置200。
[0138]
优化装置200对通过将qap转换成伊辛模型而获得的问题进行求解。
[0139]
图7是示出由伊辛模型进行的分配的表达示例的图。
[0140]
矩阵404是表示伊辛模型的状态的矩阵x={x
ik
}。x
ik
是式(1)中的状态变量。在设施i被布置在位置k处的情况下,x
ik
=1。在设施i没有被布置在位置k处的情况下,x
ik
=0。x
ik
的值可以如式(2)所示。
[0141]
(式2)
[0142][0143]
是指示在通过设施的索引i的排列(permutation)表示要布置每个设施的位置的情况下设施i在排列中的位置的函数。表示设施i被布置在位置k处。
[0144]
例如,矩阵404表示设施a被布置在位置iv处,设施b被布置在位置i处,设施c被布置在位置iii处并且设施d被布置在位置ii处。
[0145]
在qap中,约束条件是“在一个位置布置一个设施”和“一个设施被布置在一个位置处”。这些约束条件分别对应于在矩阵404中“一列仅存在一个位”和“一行仅存在一个位”。
[0146]
图8是示出信息处理系统的功能示例的图。
[0147]
信息处理装置100包括存储单元120、控制单元130和解输出单元140。ram 102或hdd 103的存储区域用作存储单元120。控制单元130和解输出单元140由cpu 101执行存储在ram 102中的程序来实现。
[0148]
此外,优化装置200具有搜索单元210。搜索单元210由fpga 201实现。
[0149]
存储单元120存储控制单元130将qap公式化所使用的各种数据。例如,存储单元120存储qap中的流转矩阵和距离矩阵的信息以及通过流转矩阵的每个元素值与距离矩阵的乘积获得的矩阵组。
[0150]
控制单元130接收qap数据的输入并且基于所述数据将qap公式化。在公式化中,确定式(1)中a
ijbkl
的值以及α和β的值。控制单元130生成以qubo格式表示式(1)的能量函数的信息。控制单元130将所生成的能量函数的信息输出至优化装置200,并且使优化装置200基于该能量函数搜索解。
[0151]
控制单元130获取通过优化装置200的搜索获得的解,并且在所获取的解满足约束的情况下将所获取的解输出至解输出单元140并输出最终解。在所获取的解不满足约束条
件的情况下,控制单元130重新确定α和β的值、重新生成能量函数并且使优化装置200通过能量函数再次执行搜索。
[0152]
解输出单元140获取通过优化装置200的搜索获得的解并且将所获取的解输出。例如,解输出单元140可以将从优化装置200获得的解转换成针对qap的解格式并在显示器111上显示该解,或者可以经由网络60将解的信息传输至另一计算机。
[0153]
搜索单元210获取由控制单元130输出的能量函数的信息,并且基于能量函数搜索伊辛模型的基态即最优解。搜索单元210将通过搜索获得的解输出至信息处理装置100。
[0154]
此处,qap的能量函数包括表示如上所述的约束条件的约束项。例如,在上述设施布置问题中,约束条件是“在一个位置布置一个设施”和“一个设施被布置在一个位置处”。因此,搜索单元210中的搜索受约束项的影响。
[0155]
图9是示出在能量函数包括约束项的情况下状态转变的示例的图。
[0156]
约束项410是式(1)的约束项。图9示出了四个状态变量,并且以“状态:约束违反能量值”的形式示出了与每个状态相对应的约束违反能量值(constraint violation eg)以及搜索中的状态转变过程。约束违反能量值是与被添加至成本项的约束违反相关联的惩罚值并且是基于约束项410计算的。此外,在图9中,假设由指示某个状态的数字来表示状态。
[0157]
例如,状态“1”为{x
ik
}=(x
11
,x
12
,x
21
,x
22
)=(1,0,0,1)。状态“1”没有违反约束条件,即约束的状态正常(ok)。因此,对应于状态“1”的约束违反能量值为“0”。
[0158]
状态“2”是已经从状态“1”进行了一次状态转变的状态。例如,状态“2”为{x
ik
}=(x
11
,x
12
,x
21
,x
22
)=(1,0,0,0)。状态“2”违反了约束条件。对应于状态“2”的约束违反能量值为“α β”。
[0159]
状态“3”是已经从状态“2”进行了一次状态转变的状态。例如,状态“3”为{x
ik
}=(x
11
,x
12
,x
21
,x
22
)=(0,0,0,0)。状态“3”违反了约束条件。对应于状态“3”的约束违反能量值为“2(α β)”。
[0160]
状态“4”是已经从状态“3”进行了一次状态转变的状态。例如,状态“4”为{x
ik
}=(x
11
,x
12
,x
21
,x
22
)=(0,0,1,0)。状态“4”违反了约束条件。对应于状态“4”的约束违反能量值为“α β”。
[0161]
状态“5”是已经从状态“4”进行了一次状态转变的状态。例如,状态“5”为{x
ik
}=(x
11
,x
12
,x
21
,x
22
)=(0,1,1,0)。状态“5”没有违反约束条件,即约束的状态正常。因此,对应于状态“5”的约束违反能量值为“0”。
[0162]
以这种方式,在不经历违反约束的状态的情况下,从满足约束的一个状态到达满足约束的另一状态可能是不可能的。在违反约束的状态下,能量值因惩罚值而变大。具有大能量值的状态可以是所谓的使状态转变停滞的能量垒。
[0163]
图10是示出搜索中的能量垒的示例的图。
[0164]
曲线图gl示出了伊辛模型的状态的能量值。在曲线图g1中,为方便起见,以一个维度表示伊辛模型的状态。曲线图g1的横轴表示伊辛模型的状态。曲线表g1的纵轴表示能量值。曲线图g1中的序列g1a是示出在包括针对特定问题的约束项的情况下状态与能量值之间的关系的序列。序列g1b是示出在不包括针对某一问题的约束项的情况下状态与能量值的关系的序列。
[0165]
此外,在曲线图gl中,示出了序列gla的局部解xl和最优解x2。局部解x1是能量值
具有最小值的局部最优解。最优解x2是全局最优解。
[0166]
在序列gla中,箭头指示克服相对大的能量值的状态。这样的相对大的能量值是违反约束的状态下的能量值。例如,根据序列g1a,要从局部解x1到达最优解x2,需要克服由于约束项引起的许多能量垒。
[0167]
此时,在由于问题的数值数据而导致能量垒变高的情况下,用于克服能量垒的状态转变变得困难并且达到最优解变得困难。
[0168]
因此,信息处理装置100放宽了对由于能量垒引起的状态转变的限制并且提供了使得能够进行高效搜索的功能。信息处理装置100调整通过流转矩阵和距离矩阵计算的成本值。
[0169]
图11是示出流转矩阵与距离矩阵的乘积的展开示例的图。
[0170]
由f表示的矩阵501是流转矩阵。由d表示的矩阵502是距离矩阵。子矩阵组600是通过f
×
d表示的子矩阵的集合。此处,f
×
d中的运算
“×”
指示计算流转矩阵的每个元素值与距离矩阵的乘积。子矩阵组600可以被视为一个矩阵。在图11的示例中,矩阵501具有四行四列。在这种情况下,f
×
d是n
×
n=4
×
4=16个子矩阵的集合。例如,子矩阵601是矩阵501的第一行第四列的元素值“1”与矩阵502的乘积。矩阵502具有四行四列。因此,子矩阵也具有四行四列。因此,子矩阵组600包含n2×
n2=42×
42=256个元素值。
[0171]
子矩阵组600中的子矩阵的位置由矩阵501的(行,列)=(i,j)表示。此外,子矩阵中的元素值的位置由矩阵502的(行,列)=(k,l)表示。
[0172]
矩阵501和502是具有零对角线元素的对称矩阵。因此,在子矩阵组600中,位于对角线上的子矩阵的元素值全部为0,并且相应的子矩阵关于对角线对称。此外,子矩阵是具有零对角线元素的对称矩阵。
[0173]
此处,考虑流转矩阵和距离矩阵分别由矩阵501和502表示的qap的最优解。
[0174]
图12是示出将最优解展开为列向量的示例的图。
[0175]
解700是流转矩阵和距离矩阵分别由矩阵501和502表示的qap的最优解。解700的一个元素值对应于状态变量x
ik
(即,位)的值。列向量701是通过将解700展开成列而获得的向量。列向量701中的元素从上向下依次为x
11
,x
21
,x
31
,x
41
,x
21
,x
22
等。类似地,可以获得通过将解700展开成行而获得的行向量(x
11
,x
21
,x
31
,x
41
,x
21
,x
22
,
……
),并且在根据子矩阵组600的元素值在列方向和行方向上排列向量701和行向量的情况下,可以如下处理qap。
[0176]
图13是示出在最优解中选择的元素值的示例的图。
[0177]
通过在子矩阵组600的行方向和列方向上排列通过展开解700获得的列向量701和行向量来形成子矩阵组600a。如上所述,子矩阵组600相对于对角线对称,并且位于对角线上的子矩阵的元素值全部为0。因此,对于成本值的计算,仅考虑子矩阵组600a的一部分610。
[0178]
在计算最优解的成本值的情况下,选择部分610中位为1的行和列相交处的元素。注意,由于子矩阵组600a中元素值映射的性质,每个子矩阵中的对角线元素对应于违反约束的状态,并且因此在最优解中未被选择。
[0179]
根据子矩阵组600a,与最优解相对应的能量值为2
×
(6 6 4 5 6 8)=70。
[0180]
针对所获得的作为可执行解的解(即满足约束的解),存在两个条件。
[0181]
第一条件是从每个子矩阵中选择一个元素值。
[0182]
第二条件是从每个不同的子矩阵中选择一个位于相同位置的元素值。
[0183]
在不改变最优解即不改变最优解的能量值的排序的基础上,基于上述第一条件和第二条件处理子矩阵组600的数值数据。例如,具体描述如下。
[0184]
图14是示出元素值的校正示例的图(第一)。
[0185]
例如,控制单元130从子矩阵组600的子矩阵611的每个元素值减去8。子矩阵611a表示经过减法校正后的值。即使以这种方式校正了元素值,最优解也不会根据上述第一条件而改变。注意,要校正的元素值可以仅是子矩阵611的非对角线元素。这是因为对角线元素对应于违反约束的状态,并且在最优解中可能不会被选择。
[0186]
此处,可以说子矩阵611是子矩阵组600中与矩阵501的第4行第3列的元素值相对应的一组元素值。存在一些如下情况:与矩阵501的一个元素值相对应的一组元素值,即由子矩阵组600的一个子矩阵包围的元素值的组,被称为“子矩阵内组(in-submatrix group)”。
[0187]
对子矩阵内组的元素值的校正是“子矩阵内运算”。子矩阵内运算是在适当子矩阵中的除对角线元素外的元素值(即非对角线元素的元素值)上加上或减去同一值的校正。
[0188]
图15是示出元素值的校正示例的图(第二)。
[0189]
例如,控制单元130从子矩阵组600的部分610中的每个子矩阵的第1行第3列的元素值减去2。在这种情况下,要校正的元素值如下:在要校正的元素值中,矩阵501的元素值为f
ij
,并且矩阵502的元素值为d
kl
。即,{f
ijdkl
}={f
21d13
,f
31d13
,f
41d13
,f
32d13
,f
42d13
,f
43d13
}。即使以这种方式校正元素值,最优解也不会根据上述第二条件而改变。
[0190]
此处,可以说,上述要校正的元素值{f
ijdkl
}={f
ijd13
}是子矩阵组600中与矩阵502的第1行第3列的元素值d
13
相对应的一组元素值。存在一些如下情况:子矩阵组600中与矩阵502的一个元素值相对应的一组元素值被称为“子矩阵交叉组(submatrix crossing operation)”。子矩阵交叉组是位于除了每个子矩阵的对角线元素的位置外的位置处的元素值的组。
[0191]
对子矩阵交叉组的元素值的校正是“子矩阵交叉运算”。子矩阵交叉运算是在不同子矩阵的相同位置处的元素值上加上或减去同一值的校正。
[0192]
控制单元130可以使用子矩阵内运算和子矩阵交叉运算中的一者或两者。
[0193]
通过以子矩阵内运算或子矩阵交叉运算中的至少一种运算对子矩阵组600进行校正,可以平滑解空间中的能量值和成本值。以这种方式平滑解空间中的能量值和成本值的校正被称为“调制”。调制的方法被称为“调制模式”。可以想到以下示例作为调制模式。注意,在以下调制模式下要校正的元素值是除对角线元素外的元素值。即使在计算组中各元素值的平均值或统计值的情况下,也不必考虑对角线元素。也就是说,可以认为对角线元素被排除在该组之外。
[0194]
第一调制模式是将每个组的元素值中的最小值调整为预定值的校正。例如,可以想到将0作为预定值。可替选地,预定值可以是其他值,例如每个组的元素值中的最小值之中的最小值。
[0195]
第二调制模式是使得每个组的元素值的平均值的差小的校正。第二调制模式可以是将每个组的元素值的平均值调整为同一值的校正。
[0196]
第三调制模式是基于各个组中元素值的分布或范围加上或减去某一值的校正。例
如,在第三调制模式下,可以基于统计值例如每个组的元素值的方差来确定针对要校正的组的元素值加上或减去的值,并且可以执行校正使得每个组的元素值可以取的值之间的差减小。在这种情况下,例如,可以想到如下校正:将预定百分位值例如每个组的元素值的中间值(第50百分位值)或第30百分位值调整成同一值。
[0197]
图16是示出转换后的子矩阵组的示例的图。
[0198]
例如,控制单元130通过校正子矩阵组600生成子矩阵组800。子矩阵组800是通过针对子矩阵组600的部分610利用第一调制模式执行子矩阵内运算并且将包括在610部分中的每个子矩阵的元素值中的最小值调整为0而获得的结果。
[0199]
图17是示出平滑搜索空间的示例的图。
[0200]
组gl、g2、g3和g4是某个子矩阵组中的子矩阵内组或子矩阵交叉组。在图17中,组g1、g2、g3和g4的元素值可以取的值的范围被示为条形图。
[0201]
组gl包括元素e1_1、e1_2、e1_3和e1_4。元素e1_1、e1_2、e1_3、e1_4的值之间的大小关系,即元素值为0《e1_1《e1_2《e1_3《e1_4。值mean1是组g1的元素值的平均值。
[0202]
组g2包括元素e2_1、e2_2、e2_3和e2_4。元素e2_1、e2_2、e2_3、e2_4的值之间的大小关系,即元素值为0《e2_1《e2_2《e2_3《e2_4。值mean2是组g2的元素值的平均值。
[0203]
组g3包括元素e3_1、e3_2、e3_3和e3_4。元素e3_1、e3_2、e3_3、e3_4的值之间的大小关系,即元素值为0《e3_1《e3_2《e3_3《e3_4。值mean3是组g3的元素值的平均值。
[0204]
组g4包括元素e4_1、e4_2、e4_3和e4_4。元素e4_1、e4_2、e4_3、e4_4的值之间的大小关系,即元素值为0《e4_1《e4_2《e4_3《e4_4。值mean4是组g4的元素值的平均值。
[0205]
图17中的(a)示出了曲线图80。曲线图80示出了在非调制的情况下组g1、g2、g3和g4的元素值与惩罚值之间的关系。图17中的(b)示出了曲线图81。曲线图81示出了在使用第一调制模式执行校正的情况下组g1、g2、g3和g4的元素值与惩罚值之间的关系。图17中的(c)示出了曲线图82。曲线图82示出了在使用第二调制模式执行校正的情况下组g1、g2、g3和g4的元素值与惩罚值之间的关系。曲线图80、81和82的横轴表示组,并且纵轴表示能量值。
[0206]
此外,在曲线图80、81和82的两个组之间插入示出了惩罚项和惩罚项的惩罚值的条形图。与惩罚项相对应的条形图表示为了从满足约束的一个状态经由约束违反的状态向满足约束的另一状态转变必须克服的能量垒。在曲线图80、81和82的示例中,状态转变被示出为在选择用于计算跨组的能量值的元素值时的变化。
[0207]
在曲线图80的示例中,组gl、g2、g3和g4的元素值的范围的差异大。例如,参照元素值可以取的值大的组g4来确定惩罚值。因此,例如,对于元素值可以取的值小的组g3的元素值,惩罚值相对大。因此,例如,对于某个位,为了从选择组g3中的一个元素值被选择的状态向组g4中的另一元素值被选择的状态转变,必须克服相对高的能量垒,并且该状态转变不太可能发生。
[0208]
相比之下,通过用第一调制模式校正组gl、g2、g3和g4的元素值,可以如曲线图81所示平滑解空间。在第一调制模式下,例如,执行从除对角线元素外的元素值减去某个值以将每个组的元素值中的最小值调整为0的校正。从而,组g1、g2、g3和g4之间在取值范围方面的差异变得比非调制情况下的差异小。因此,例如,针对元素值可以取的值小的组g3中的元素值的惩罚值变得比非调制情况下的惩罚值相对小。因此,例如,对于某个位,可以使从组
g3中的一个元素值被选择的状态到组g4中的另一元素值被选择的状态的转变的能量垒的相对高度比非调制情况下的相对高度低。因此,促进了状态之间跨越能量垒的转变。
[0209]
此外,通过用第二调制模式校正组gl、g2、g3和g4的元素值,可以如曲线图82所示平滑解空间。在第二调制模式下,例如,执行在除对角线元素外的元素值上加上或减去某个值以使每个组在元素值的平均值方面的差异小的校正。从而,组g1、g2、g3和g4之间在取值范围方面的差异变得比非调制情况下的差异小。因此,例如,针对元素值可以取的值小的组g3中的元素值的惩罚值变得比非调制情况下的惩罚值相对小。因此,例如,对于某个位,可以使从组g3中的一个元素值被选择的状态到组g4中的另一元素值被选择的状态的转变的能量垒的相对高度比非调制情况下的相对高度低。因此,促进了状态之间跨越能量垒的转变。
[0210]
接下来,将描述信息处理系统50的处理过程。
[0211]
图18是示出信息处理系统的处理示例的流程图。
[0212]
(s1)控制单元130从用户输入的qap数据中获取流转矩阵和距离矩阵。
[0213]
(s2)控制单元130执行矩阵展开。即,控制单元130将流转矩阵和距离矩阵展开为子矩阵组。
[0214]
(s3)控制单元130确定要使用的调制模式。例如,控制单元130可以将用户预先指定的调制模式确定为要使用的调制模式。可替选地,控制单元130可以基于对在步骤s2中获得的子矩阵组的分析来确定要使用的调制模式。例如,可以考虑以下方法来确定调制模式。
[0215]
首先,控制单元130确定组运算的类型。
[0216]
例如,在校正候选子矩阵的子矩阵中包括相对大的值并且表示该子矩阵中的元素值的分布范围的指标(例如,分布的大小、取值范围等)小于第一阈值的情况下,控制单元130将包括在适当子矩阵中的元素值组设置为子矩阵内组。在这种情况下,组运算的类型是子矩阵内运算。
[0217]
同时,在校正候选子矩阵的子矩阵中包括相对大的值并且表示该子矩阵中的元素值的分布范围的指标等于或大于第一阈值的情况下,存在仅利用子矩阵内组对成本项的取值范围的平滑变得不充分的可能性。在这样的情况下,控制单元130应用子矩阵交叉组代替子矩阵内组或者除了子矩阵内组之外还应用子矩阵交叉组。例如,在校正候选子矩阵交叉组的子矩阵交叉组中包括相对大的值并且表示该子矩阵交叉组中的元素值的分布范围的指标小于第一阈值的情况下,控制单元130可以确定针对该子矩阵交叉组执行子矩阵交叉运算。可替选地,在表示子矩阵交叉组中的元素值的分布范围的指标等于或大于第一阈值的情况下,控制单元130可以确定执行子矩阵内运算和子矩阵交叉运算两者。
[0218]
接下来,控制单元130确定调制模式。
[0219]
例如,针对各个组的所有组合,在各组之间指示元素值的分布范围的指标的差小于第二阈值的情况下,控制单元130确定使用第一调制模式。此外,针对各个组的任何组合,在各组之间指示元素值的分布范围的指标的差等于或大于第二阈值的情况下,控制单元130确定使用第二调制模式。
[0220]
(s4)控制单元130对成本值进行调制。也就是说,控制单元130通过使用在步骤s3中确定的调制模式来校正在步骤s2中获得的子矩阵组中的元素值。作为结果,确定式(1)中的a
ijbkl

[0221]
(s5)控制单元130设置惩罚系数(α,β)。在某种程度上,控制单元130将惩罚系数α和β设置成比a
ijbkl
可以取的值大的值。然而,通过对成本值进行调制,可以将相对于成本值的惩罚系数α和β的值(惩罚值)设置成比在非调制的情况下相对小。控制单元130将相对小的值设置为惩罚系数α和β的初始值。例如,可以想到:控制单元130将与成本值范围内的最大值类似的值或者比该最大值大其预定比例的值设置为惩罚系数α和β的初始值。
[0222]
(s6)控制单元130生成以qubo格式表示式(1)的能量函数的信息。
[0223]
(s7)控制单元130将在步骤s6中生成的能量函数的信息设置在搜索单元210中。
[0224]
(s8)搜索单元210基于所设置的能量函数的信息执行组合优化操作。搜索单元210通过所述操作搜索qap的解。
[0225]
(s9)搜索单元210将通过搜索获得的解输出至控制单元130。
[0226]
(s10)控制单元130从搜索单元210获取解,并且确定所获取的解是否满足约束条件。在所获取的解满足约束条件的情况下,控制单元130该解作为qap的最终解经由解输出单元140输出到外部并且终止处理。在所获取的解不满足约束条件的情况下,控制单元130进行至步骤s11。
[0227]
(s11)控制单元130更新惩罚系数(α,β)。也就是说,控制单元130将惩罚系数(α,β)增加预定值。注意,控制单元130可以同时更新α和β,或者可以每次仅更新α或者β。例如,作为更新α或β的方法,可以想到控制单元130在每次执行步骤s11时交替更新α和β。然后,控制单元130将处理进行至步骤s6。
[0228]
此处,在步骤s3中,已经描述了从调制模式候选中确定要使用的调制模式的示例,但是控制单元130可以组合使用多个调制模式。例如,控制单元130可以针对要校正的组利用第一调制模式执行校正并且然后利用第二调制模式执行校正。此外,控制单元130可以针对要校正的组利用第二调制模式执行校正并且然后利用第一调制模式执行校正。
[0229]
图19是示出组运算的类型与调制模式的组合的示例的图。
[0230]
存在控制单元130用于校正成本值的组运算的类型与调制模式的六种组合。表90示出了这六种组合。
[0231]
示例1是子矩阵内运算与第一调制模式的组合。
[0232]
示例2是子矩阵交叉运算与第一调制模式的组合。
[0233]
示例3是(子矩阵内运算 子矩阵交叉运算)与第一调制模式的组合。此处,(子矩阵内运算 子矩阵交叉运算)指示子矩阵内运算和子矩阵交叉运算两者均被使用。
[0234]
示例4是子矩阵内运算与第二调制模式的组合。
[0235]
示例5是子矩阵交叉运算与第二调制模式的组合。
[0236]
示例6是(子矩阵内运算 子矩阵交叉运算)与第二调制模式的组合。
[0237]
子矩阵内运算的目标子矩阵内组可以是能够作为子矩阵组的校正候选的所有子矩阵或者可以是这些子矩阵的一部分。此外,子矩阵交叉运算的目标子矩阵交叉组可以是与距离矩阵的所有元素值相对应的子矩阵组的元素值的所有组或者可以是这些组的一部分。
[0238]
表91示出了在针对最优解已知的qap使用表90中示出的组合示例的情况下,通过搜索单元210进行解搜索的实验结果。作为mcmc方法之一的副本交换方法被用作搜索单元210中的搜索方法。搜索单元210中副本的数量为100。此外,每个副本中状态转变的尝试次
数即迭代次数为109。
[0239]
表91中的列示出了用于校正的组运算的类型与调制模式的组合的示例,包括非调制的情况。在表91的行方向中,示出了如下项:数值数据范围、最优解到达副本数、可执行解副本数以及约束违反副本数。数值数据范围是子矩阵组中包括的元素值的范围。最优解到达副本数是最终达到最优解的副本的数量。可执行解副本数是最终达到不是最优解但满足约束的解的副本的数量。约束违反副本数是最终达到违反约束的解的副本的数量。
[0240]
根据表91,任意组合下的数值数据范围的范围比非调制情况下的范围窄。特别地,通过使用示例3或示例6,可以缩小数值数据范围并且可以进一步平滑解空间中的能量值。此外,根据表91发现存在如下趋势:与仅执行子矩阵内运算或子矩阵交叉运算中的一者相比,通过执行子矩阵内运算和子矩阵交叉运算两者可以获得更有利的结果。
[0241]
如上所述,根据信息处理系统50,可以适当地调整成本值。
[0242]
此处,在对能量函数中包括的参数进行校正时,对最优解的影响成为问题。这是因为存在最优解改变的可能性。
[0243]
相比之下,在计算最优解的成本值时,不重复使用来自上述子矩阵内组和子矩阵交叉组的元素值。因此,即使执行了在子矩阵内组和子矩阵交叉组中的至少一者上加上或减去第一值的校正,在不执行校正的情况下的能量函数的最优解也能成为在执行校正的情况下对能量函数给出最小值的最优解。因此,在不执行校正的情况下以及通过子矩阵内运算或子矩阵交叉运算进行校正来执行校正的情况下,控制单元130均可以在不改变最优解的情况下调整能量函数中的成本项的取值范围。
[0244]
例如,控制单元130可以通过第一调制模式或第二调制模式使成本项的取值范围小,并且可以使惩罚系数α和β与式(1)中每个成本值之间的相对差小。然后,基于惩罚系数跨越能量垒向另一状态的转变也变得容易——甚至从能量函数的值相对小的状态基于惩罚系数跨越能量垒向另一状态的转变也变得容易——并且可以增强最优解的可达性。
[0245]
如所示出的,控制单元130可以使搜索单元210从具有小值的惩罚系数α和β开始搜索解,并且在从搜索单元210输出的解不满足约束条件的情况下使搜索单元210以具有大值的α和β来搜索解。在从搜索单元210输出的解满足约束条件的情况下,控制单元130采用该解作为最终解。通过以这种方式控制惩罚系数α和β从相对小的值开始逐级增加,有利于从一个状态基于α和β跨越能量垒向另一状态的转变并且可以高效地搜索满足约束条件的解。以这种方式,可以提高信息处理系统50的求解性能。
[0246]
综上所述,第二实施方式的信息处理系统50执行例如以下处理。
[0247]
信息处理系统50通过用伊辛模型的能量函数代替qap来求解qap,即二次分配问题。
[0248]
控制单元130获取多个矩阵,所述多个矩阵每个均是通过第一矩阵的多个元素值中的每个元素值与第二矩阵的乘积获得的。子矩阵组600是多个矩阵的示例。控制单元130针对多个矩阵执行在与第一矩阵的第一元素值相对应的第一组元素值和与第二矩阵的第二元素值相对应的第二组元素值中的至少一者上加上或减去第一值的校正。子矩阵内组是第一组的示例。子矩阵交叉组是第二组的示例。控制单元130输出通过基于校正后的多个矩阵对qap进行公式化而获得的能量函数的信息。搜索单元210基于所输出的能量函数的信息来搜索伊辛模型的基态。
[0249]
因此,可以适当地调整成本值以不改变最优解。
[0250]
例如,多个矩阵包括与第一矩阵的第三元素值相对应的第三组元素值。控制单元130通过上述校正使包括在第一组中的元素值中的参考值与包括在第三组中的元素值中的另外的参考值之间的差小。作为结果,可以平滑解空间的能量值。
[0251]
可替选地,多个矩阵包括与第二矩阵的第四元素值相对应的第四组元素值。控制单元130通过上述校正使包括在第二组中的元素值中的参考值与包括在第四组中的元素值中的另外的参考值之间的差小。作为结果,可以平滑解空间的能量值。
[0252]
所述参考值和所述另外的参考值可以是包括在要校正的组中的除上述多个矩阵的对角线元素外的元素值中的最小值。例如,控制单元130可以通过校正将最小值调整为预定值。从而,可以以相对少的计算量执行使解空间的能量值平滑的校正。
[0253]
例如,预定值可以被设置为零。作为结果,可以将解空间的能量值设置成相对小的值。
[0254]
此外,上述参考值和另外的参考值可以是包括在要校正的组中的元素值的平均值。例如,在仅通过将包括在要校正的组中的元素值中的最小值调整成预定值不能充分平滑解空间的能量值的情况下,可以想到使用平均值作为参考值来执行平滑。注意,此处所指的平均值可以是适当矩阵的除对角线元素外的元素值的平均值。此外,可以从校正目标中排除对角线元素。也就是说,可以认为对角线元素被排除在适当的组之外。
[0255]
例如,控制单元130可以基于表示包括在第一组中的元素值的分布范围的指标与表示包括在第三组中的元素值的分布范围的指标之间的差来确定参考值和另外的参考值的类型。由此,可以基于包括在第一组和第三组中的元素值来适当地确定调制模式。
[0256]
参考值和另外的参考值的类型的示例包括上述最小值、平均值、百分位值等。例如,控制单元130可以基于表示包括在第一组中的元素值的分布范围的指标与表示包括在第三组中的元素值的分布范围的指标之间的差确定将以下中的哪个作为参考值和另外的参考值的类型:包括在第一组中的元素值中的最小值和包括在第三组中的元素值中的最小值,或者包括在第一组中的元素值的平均值和包括在第三组中的元素值的平均值。
[0257]
更具体地,可以想到,控制单元130在所述差小于阈值的情况下通过使用最小值作为参考值来减少用于校正的计算量,并且在所述差等于或大于阈值的情况下通过优先使用平均值而不是使用最小值作为参考值来实现平滑。
[0258]
此外,控制单元130可以基于表示包括在第二组中的元素值的分布范围的指标与表示包括在第四组中的元素值的分布范围的指标之间的差确定参考值和另外的参考值的类型。从而,可以基于包括在第二组和第四组中的元素值适当地确定调制模式。
[0259]
参考值和另外的参考值的类型的示例包括上述最小值、平均值、百分位值等。例如,控制单元130可以基于表示包括在第二组中的元素值的分布范围的指标与表示包括在第四组中的元素值的分布范围的指标之间的差确定将以下中的哪个作为参考值和另外的参考值的类型:包括在第二组中的元素值中的最小值和包括在第四组中的元素值中的最小值,或者包括在第二组中的元素值的平均值和包括在第四组中的元素值的平均值。
[0260]
更具体地,可以想到,控制单元130在所述差小于阈值的情况下通过使用最小值作为参考值来减少用于校正的计算量,并且在所述差等于或大于阈值的情况下通过优先使用平均值而不是使用最小值作为参考值来实现平滑。
[0261]
此外,处理单元130可以基于包括在多个矩阵中的每个矩阵中的元素值来确定校正的目标是第一组、第二组还是第一组和第二组两者。在第一组和第二组两者均被用于校正的情况下,而不是在使用第一组或第二组中的任何一者的情况下,求解性能趋于提高。然而,对原始问题进行校正的计算量小也会是有利的。
[0262]
因此,可以想到,在校正候选矩阵的矩阵中包括相对大的值并且表示该矩阵中的元素值的分布范围的指标小于阈值的情况下,控制单元130执行校正,从而将各个组缩小到(narrow to)与该矩阵相对应的第一组。可替选地,存在如下可能性:在多个矩阵的矩阵中包括相对大的值并且表示该矩阵中的元素值的分布范围的指标等于或大于阈值的情况下,通过仅对第一组进行校正而使得对成本值的平滑不充分。在这样的情况下,可以想到:代替针对第一组执行校正或者除了针对第一组执行校正之外,控制单元130还针对第二组执行校正。作为结果,可以有效地平滑解空间中的能量值。
[0263]
此外,控制单元130可以通过第一级校正来减小第一组的元素值中具有第一类型的参考值与第三组的元素值中具有第一类型的另外的参考值之间的差,并且通过在第一级校正之后在第一组上加上或减去第二值的另外的校正(第二级校正)来减小第一组的元素值中具有第二类型的参考值与第三组的元素值中具有第二类型的另外的参考值之间的差。在这种情况下,在第一级和第二级的校正中,也可以执行在第三组上加上或减去所述值的校正。
[0264]
更具体地,控制单元130可以通过校正使包括在第一组中的元素值中的最小值与预定值匹配,并且通过在校正之后在第一组上加上或减去第二值的另外的校正来减小包括在第一组中的元素值的平均值与包括在第三组中的元素值的平均值之间的差。可替选地,控制单元130可以通过校正减小包括在第一组中的元素值的平均值与包括在第三组中的元素值的平均值之间的差,并且通过在校正之后在第一组上加上或减去第二值的另外的校正使包括在第一组中的元素值中的最小值与预定值匹配。在后一种情况下,可以基于在第一级校正之后包括在第一组中的元素值或包括在第三组中的元素值来确定预定值。以这种方式,例如,通过针对第一组执行两级校正,可以使能量值平滑在预定值附近。
[0265]
此外,控制单元130可以通过第一级校正减小第二组的元素值中具有第一类型的参考值与第四组的元素值中具有第一类型的另外的参考值之间的差,并且通过在第一级校正之后在第二组上加上或减去第三值的另外的校正(第二级校正)来减小第二组的元素值中具有第二类型的参考值与第四组的元素值中具有第二类型的另外的参考值之间的差。在这种情况下,在第一级和第二级的校正中,也可以执行在第四组上加上或减去所述值的校正。
[0266]
更具体地,控制单元130可以通过校正使包括在第二组中的元素值中的最小值与预定值匹配,并且通过在校正之后在第二组上加上或减去第三值的另外的校正来减小包括在第二组中的元素值的平均值与包括在第四组中的元素值的平均值之间的差。可替选地,控制单元130可以通过校正来减小包括在第二组中的元素值的平均值与包括在第四组中的元素值的平均值之间的差,并且通过在校正之后在第二组或第四组上加上或减去第三值的另外的校正使包括在第二组中的元素值中的最小值与预定值匹配。在后一种情况下,可以基于在第一级校正之后包括在第二组中的元素值或包括在第四组中的元素值确定预定值。以这种方式,例如,通过针对第二组执行两级校正,可以使能量值平滑在预定值附近。
[0267]
此外,能量函数包括表示要针对约束违反添加的惩罚值的项,即惩罚项。控制单元130基于能量函数获取通过搜索单元210获得的解,并且确定所获取的解是否违反约束。在所获取的解违反约束的情况下,控制单元130向搜索单元210输出具有增加的惩罚值的另外的能量函数的信息。此外,在从搜索单元210获取的解没有违反约束的情况下,控制单元130输出所获取的解作为二次分配问题的解。
[0268]
通过以这种方式分级地增加惩罚值,控制单元130可以有效地搜索满足约束的解,同时通过惩罚值抑制由于能量垒导致的状态转变的停滞。另外,通过促进状态转变,增加了在一定时间内获得基态即最优解的可能性。以这种方式,可以提高求解性能。
[0269]
此外,控制单元130计算包括在第一矩阵的多个元素中的每个元素与第二矩阵的乘积,并且输出通过基于该乘积对qap进行公式化而获得的能量函数的信息。对于包括在第一矩阵中的多个元素的第一元素值与第二矩阵的乘积,控制单元130可以在执行在第二矩阵的多个第二元素值中的每个第二元素值上加上或减去第一值的校正之后计算第一元素值与第二矩阵的乘积。即使通过这样的方法,也可以在不改变最优解的情况下调整成本值。
[0270]
注意,可以通过使处理单元12执行程序来实现根据第一实施方式的信息处理。此外,可以通过使cpu 101执行程序来实现第二实施方式的信息处理。程序可以记录在计算机可读记录介质113中。
[0271]
例如,可以通过分发其中记录有程序的记录介质113来分发程序。可替选地,所述程序可以存储在另一计算机中并且经由网络分配。例如,计算机可以将记录在记录介质113中或者从另一计算机接收的程序存储(安装)在诸如ram 102或hdd 103的存储装置中、从存储装置读取程序并且执行程序。
[0272]
本发明还可以通过以下实施方案来实现。
[0273]
实施方案1.一种求解二次分配问题的信息处理系统,在所述二次分配问题中,使用第一矩阵和第二矩阵基于伊辛模型的能量函数来计算成本值,所述信息处理系统包括:
[0274]
处理单元,其被配置成:获取多个矩阵,所述多个矩阵每个均是通过所述第一矩阵的多个元素值中的每个元素值与所述第二矩阵的乘积获得的;针对所述多个矩阵执行在与所述第一矩阵的第一元素值相对应的第一组元素值或与所述第二矩阵的第二元素值相对应的第二组元素值中的至少一者上加上或减去第一值的校正;以及输出通过基于所述校正后的所述多个矩阵将所述二次分配问题公式化而获得的能量函数的信息;以及
[0275]
搜索单元,其被配置成基于所输出的能量函数的信息来搜索所述伊辛模型的基态。
[0276]
实施方案2.根据实施方案1所述的信息处理系统,其中,
[0277]
所述多个矩阵包括与所述第一矩阵的第三元素值相对应的第三组元素值,并且
[0278]
所述处理单元通过所述校正使得包括在所述第一组中的元素值中的参考值与包括在所述第三组中的元素值中的另外的参考值之间的差是小的。
[0279]
实施方案3.根据实施方案1所述的信息处理系统,其中,
[0280]
所述多个矩阵包括与所述第二矩阵的第四元素值相对应的第四组元素值,并且
[0281]
所述处理单元通过所述校正使得包括在所述第二组中的元素值中的参考值与包括在所述第四组中的元素值中的另外的参考值之间的差是小的。
[0282]
实施方案4.根据实施方案2或3所述的信息处理系统,其中,所述参考值和所述另
外的参考值是包括在所述校正的目标组中的除所述多个矩阵的对角线元素外的元素值中的最小值。
[0283]
实施方案5.根据实施方案4所述的信息处理系统,其中,所述处理单元通过所述校正使所述最小值与预定值匹配。
[0284]
实施方案6.根据实施方案5所述的信息处理系统,其中,所述预定值为零。
[0285]
实施方案7.根据实施方案2或3所述的信息处理系统,其中,所述参考值和所述另外的参考值是包括在所述校正的目标组中的元素值的平均值。
[0286]
实施方案8.根据实施方案2所述的信息处理系统,其中,
[0287]
所述处理单元基于表示包括在所述第一组中的元素值的分布范围的指标与表示包括在所述第三组中的元素值的分布范围的指标之间的差来确定所述参考值和所述另外的参考值的类型。
[0288]
实施方案9.根据实施方案3所述的信息处理系统,其中,
[0289]
所述处理单元基于表示包括在所述第二组中的元素值的分布范围的指标与表示包括在所述第四组中的元素值的分布范围的指标之间的差来确定所述参考值和所述另外的参考值的类型。
[0290]
实施方案10.根据实施方案1所述的信息处理系统,其中,
[0291]
所述处理单元基于包括在所述多个矩阵的每个矩阵中的元素值来确定所述校正的目标是所述第一组、所述第二组还是所述第一组和所述第二组两者。
[0292]
实施方案11.根据实施方案2所述的信息处理系统,其中,
[0293]
所述处理单元通过所述校正来减小所述第一组的元素值中具有第一类型的参考值与所述第三组的元素值中具有所述第一类型的另外的参考值之间的差,并且通过在所述校正之后在所述第一组上加上或减去第二值的另外的校正来减小所述第一组的元素值中具有第二类型的参考值与所述第三组的元素值中具有所述第二类型的另外的参考值之间的差。
[0294]
实施方案12.根据实施方案3所述的信息处理系统,其中,
[0295]
所述处理单元通过所述校正来减小所述第二组的元素值中具有第一类型的参考值与所述第四组的元素值中具有所述第一类型的另外的参考值之间的差,并且通过在所述校正之后在所述第二组上加上或减去第三值的另外的校正来减小所述第二组的元素值中具有第二类型的参考值与所述第四组的元素值中具有所述第二类型的另外的参考值之间的差。
[0296]
实施方案13.根据实施方案1所述的信息处理系统,其中,
[0297]
所述能量函数包括表示针对约束违反要添加的惩罚值的项,并且
[0298]
所述处理单元获取所述搜索单元已经基于所述能量函数获得的解,在所获取的解违反约束的情况下将具有增加的惩罚值的另外的能量函数的信息输出至所述搜索单元,并且在所获取的解没有违反所述约束的情况下输出所述解作为所述二次分配问题的解。
[0299]
实施方案14.一种求解二次分配问题的信息处理方法,在所述二次分配问题中,使用第一矩阵和第二矩阵基于伊辛模型的能量函数来计算成本值,所述信息处理系统包括:
[0300]
获取多个矩阵,所述多个矩阵每个均是通过所述第一矩阵的多个元素值中的每个元素值与所述第二矩阵的乘积获得的;
[0301]
针对所述多个矩阵执行在与所述第一矩阵的第一元素值相对应的第一组元素值或与所述第二矩阵的第二元素值相对应的第二组元素值中的至少一者上加上或减去第一值的校正;以及
[0302]
根据通过基于所述校正后的所述多个矩阵将所述二次分配问题公式化而获得的能量函数的信息来搜索所述伊辛模型的基态。
[0303]
实施方案15.一种程序,在所述程序中,包括在对使用第一矩阵和第二矩阵基于伊辛模型的能量函数来计算成本值的二次分配问题进行求解的信息处理系统中的计算机执行以下处理:
[0304]
获取多个矩阵,所述多个矩阵每个均是通过所述第一矩阵的多个元素值中的每个元素值与所述第二矩阵的乘积获得的;
[0305]
针对所述多个矩阵执行在与所述第一矩阵的第一元素值相对应的第一组元素值或与所述第二矩阵的第二元素值相对应的第二组元素值中的至少一者上加上或减去第一值的校正;以及
[0306]
输出通过基于所述校正后的所述多个矩阵对所述二次分配问题进行公式化而获得的能量函数的信息。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献