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

文档序号:26626591发布日期:2021-09-14 21:43阅读:85来源:国知局
信息处理系统、信息处理方法、信息处理程序和装置与流程

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


背景技术:

2.存在一种通过用伊辛(ising)模型替换难以用诺依曼(neumann)计算机处理的多变量组合最优化问题来执行计算的信息处理装置,该伊辛模型是表示磁性物质的自旋行为的模型。作为在实际应用中用于解决用伊辛模型替换的问题的方法,存在各种搜索算法,例如模拟退火(sa)。
3.例如,已经提出了一种通过使用扩展集成方法来搜索组合最优化问题的解的信息处理装置。一种信息处理系统,其中通过多个空间扩展型计算器独立地重复基态搜索,在时间扩展型计算器中顺序地积累结果,并且最终选择出最优解。
4.[引用列表]
[0005]
[专利文献]
[0006]
[专利文献1]日本特开专利公布第2019

71119号
[0007]
[专利文献2]国际公布手册第wo 2017/033263号


技术实现要素:

[0008]
技术问题
[0009]
如上所述,在用于仅通过多个计算器独立地执行基态搜索并从所获得的解中选择最优解的方法中,由于获得最优解的可能性小或者需要些时间才能获得最优解,因此可能无法获得足够的解寻找性能。
[0010]
本公开内容的一个方面的目的是提供一种能够改善解寻找性能的信息处理系统、信息处理方法和程序。
[0011]
问题的解决方案
[0012]
在一方面中,提供了一种信息处理系统。信息处理系统包括多个搜索单元。多个搜索单元被配置成:搜索由包括在能量函数中的多个状态变量中的每个状态变量的值表示的解。多个搜索单元中的每一个还被配置成:在由多个搜索单元获得的多个解中获取第一解,所述第一解对应于多个能量函数的与多个解对应的值中的最佳值;基于第一解生成第一状态变量串;以及利用第一状态变量串作为开始状态来搜索解。
[0013]
本发明的效果
[0014]
在该方面,可以改善解寻找性能。
附图说明
[0015]
图1是示出根据第一实施方式的信息处理系统的示例的图。
[0016]
图2是示出根据第二实施方式的信息处理系统的示例的图。
[0017]
图3是示出节点的硬件的示例的图。
[0018]
图4是示出节点的功能的示例的图。
[0019]
图5是示出解池的示例的图。
[0020]
图6是示出用于生成新解的方法的示例的图。
[0021]
图7是示出搜索单元的处理示例的流程图。
[0022]
图8是示出解传播单元的解缓冲器的更新示例的流程图。
[0023]
图9是示出解传播单元的解输出示例的流程图。
[0024]
图10是示出根据第三实施方式的信息处理系统的示例的图。
[0025]
图11是示出节点的功能的示例的图。
[0026]
图12是示出通信单元的处理示例的流程图。
[0027]
图13是示出使用多种搜索方法的信息处理系统的示例的图。
[0028]
图14是示出针对每种搜索方法的状态转变的特性的示例的图。
具体实施方式
[0029]
在下文中,将参照附图描述实施方式。
[0030]
[第一实施方式]
[0031]
将描述第一实施方式。
[0032]
图1是示出根据第一实施方式的信息处理系统的示例的图。
[0033]
信息处理系统10寻找组合最优化问题的解,并且输出寻找到的解。信息处理系统10包括搜索单元11、12和13。搜索单元11、12和13中的每一个例如由半导体集成电路来实现,所述半导体集成电路例如为中央处理单元(cpu)、图形处理单元(gpu)、数字信号处理器(dsp)、专用集成电路(asic)或现场可编程门阵列(fpga)。搜索单元11、12和13中的每一个可以包括诸如随机存取存储器(ram)或寄存器的存储单元。例如,通过使用诸如fpga的半导体集成电路实现的多个搜索电路可以分别用作搜索单元11、12和13。包括在信息处理系统10中的搜索单元的数目可以是两个,或者可以是四个或更多个。
[0034]
搜索单元11、12和13中的每一个可以经由例如共享存储设备(未示出)与其他搜索单元共享由搜索单元11、12和13中的每一个保留的信息中的至少一部分。替选地,搜索单元11、12和13中的每一个可以具有与其他搜索单元通信的通信功能,并且可以向其他搜索单元发送信息以及从其他搜索单元接收信息。
[0035]
搜索单元11、12和13分别搜索由包括在能量函数中的多个状态变量的值表示的解。状态变量是具有值为“0”或“1”的二进制变量。搜索单元11、12和13基于用公式表示组合最优化问题的伊辛型能量函数来分别搜索由包括在能量函数中的多个状态变量的值表示的最优解。能量函数也被称为评估函数或目标函数。能量函数的值表示与由多个变量的值表示的伊辛模型的状态对应的能量值。能量值可以被称为评估值。例如,组合最优化问题被表示为用于寻找使能量值最小化的解的问题。在这种情况下,使能量值最小化的解表示伊辛模型的基态,并且对应于组合最优化问题的最优解。伊辛型能量函数e(x)例如由式(1)表示。
[0036]
[式1]
[0037]
[0038]
状态向量x具有作为元素的多个状态变量,并且状态向量x表示伊辛模型的状态。在使能量值最大化的问题的情况下,能量函数的符号可以颠倒。
[0039]
通过对两个状态变量的值和权重系数的乘积进行积分而获得式(1)右侧的第一项,而对能够从所有状态变量选择的两个状态变量的所有组合没有遗漏和重复。x
i
是第i个状态变量。x
j
是第j个状态变量。w
ij
是第i个状态变量与第j个状态变量之间的权重或者指示耦合强度的权重系数。
[0040]
式(1)右侧的第二项是各个状态变量的值与所有状态变量的相应的偏置系数的乘积之和。b
i
指示第i个状态变量的偏置系数。
[0041]
例如,伊辛模型中自旋的
“‑
1”对应于状态变量的值“0”。伊辛模型中自旋的“+1”对应于状态变量的值“1”。因此,状态变量也可以被称为具有值为0或1的位。
[0042]
指示相同问题的问题数据被输入至搜索单元11、12和13。例如,将彼此不同的状态向量从外部提供给搜索单元11、12和13作为相应搜索单元11、12和13中第一搜索开始时间点处的初始状态。
[0043]
搜索单元11、12和13中的每一个通过预定搜索方法搜索相同组合最优化问题的最优解。搜索方法的示例包括sa、遗传算法(ga)、模拟量子退火(sqa)、禁忌搜索等。分别由搜索单元11、12和13使用的搜索方法可以相同或不同。搜索方法不限于示例出的方法,并且可以使用另外的搜索方法。
[0044]
搜索单元11、12和13中的每一个从由搜索单元11、12和13获得的多个解中获取与对应于多个解的多个能量函数的值中(例如,多个能量值中)的最佳能量值对应的第一解。例如,搜索单元11、12和13中的每一个优先地保留由搜索单元在搜索中寻找到的解中具有良好能量值的预定数目的解。搜索单元11、12和13中的每一个将由搜索单元保留的与最佳能量值对应的解供应至其他搜索单元,并且从其他搜索单元获取由其他搜索单元保留的与最佳能量值对应的解。例如,在使能量值最小化的问题中,最佳能量值是与由搜索单元11、12和13保留的多个解对应的多个能量值中的最小能量值。在这种情况下,最优解是在由搜索单元11、12和13保留的解中与最小能量值对应的解。
[0045]
搜索单元11、12和13中每一个将从其他搜索单元获取的解的能量值与由该搜索单元保留的最优解的能量值进行比较。当从其他搜索单元获取的解的能量值比由该搜索单元保留的最优解的能量值好时,搜索单元11、12和13中的每一个获取从其他搜索单元获取的解作为第一解。当从其他搜索单元获取的解的能量值比由该搜索单元保留的最优解的能量值差,或者从其他搜索单元获取的解的能量值与由该搜索单元保留的最优解的能量值两者相同时,搜索单元11、12和13中的每一个获取由该搜索单元保留的最优解作为第一个解。
[0046]
例如,设置在搜索单元11、12和13外部的解传播单元(未示出)可以具有获取第一解的功能。在这种情况下,解传播单元从搜索单元11、12和13收集由相应搜索单元保留的最优解,从所收集的解中选择第一解,并将第一解供应至搜索单元11、12和13。
[0047]
搜索单元11、12和13中的每一个基于所获取的第一解生成作为新的状态变量串的第一状态变量串。例如,搜索单元11生成通过改变包括在第一解中的状态变量的一部分的值而获得的第一解的邻近解作为第一状态变量串。可以基于由搜索单元11获得的第一解和任意解来生成邻近解。第一状态变量串可以与第一解的状态变量串相同。搜索单元12和13中的每一个生成与搜索单元11类似的第一状态变量串。
[0048]
搜索单元11、12和13中的每一个利用所生成的第一状态变量串作为开始状态来搜索解。例如,搜索单元11、12和13中的每一个利用开始状态作为开始点来开始搜索。当在特定搜索单元中作为搜索结果获得的解更新在该特定搜索单元中获得的最佳能量值时,与其他搜索单元共享该解,并且重复上述处理。替选地,当使用解传播单元并且在特定搜索单元中获得的作为搜索结果的解更新在所有搜索单元中获得的最佳能量值时,与其他搜索单元共享该解,并且重复上述处理。
[0049]
当在搜索单元11、12和13的每一个中满足预定的结束条件时,由搜索单元11、12和13执行的解的搜索结束。结束条件例如是从第一搜索开始时间点起经过了固定时间。信息处理系统10输出在结束时间点处由搜索单元11、12和13保留的多个解或者所述多个解中的与最佳能量值对应的解作为最终解。
[0050]
由相应搜索单元11、12和13获取第一解、基于第一解生成第一状态变量串以及使用第一状态变量串搜索解作为开始状态可以分别由搜索单元11、12和13同步或异步执行。
[0051]
根据信息处理系统10,获取由相应搜索单元11、12和13获得的多个解中的与最佳能量值对应的第一解。搜索单元11、12和13中的每一个基于第一解生成第一状态变量串。搜索单元11、12和13中的每一个通过使用所生成的第一状态变量串作为开始状态来搜索解。
[0052]
因此,可以改善解寻找性能。
[0053]
考虑用于通过多个计算器独立地搜索基态并从所获得的解中选择最优解的方法作为比较例。然而,当仅通过多个计算器独立地搜索基态并从所获得的解中选择最优解时,由于在固定时间内获得最优解的可能性低或者获得最优解需要些时间,解寻找性能无法充分改善。因此,用于改善解寻找性能的方法是一个问题。
[0054]
因此,在信息处理系统10中,搜索单元11、12和13中的每一个基于由搜索单元11、12和13获得的多个解中的最优解来确定下一搜索的开始状态。这是因为估计在较佳的解附近存在最优解的可能性高。因此,可以提高由搜索单元11、12和13中的任何一个获得最优解的可能性。例如,提高了由搜索单元11、12和13中的任何一个在固定时间内获得最优解的可能性,并且因此,可以减少获得最优解所花费的时间。以这种方式,可以改善针对组合最优化问题的信息处理系统10的解寻找性能。
[0055]
搜索单元11、12和13可以设置在同一信息处理装置中。在这种情况下,相应搜索单元11、12和13耦接至信息处理装置的总线。例如,搜索单元11、12和13经由耦接至总线的共享存储器来共享解。从搜索单元11、12和13收集解并将所述解供应至相应搜索单元11、12和13的功能可以由耦接至总线的处理单元例如cpu提供。
[0056]
替选地,搜索单元11、12和13可以以分布方式设置在多个信息处理装置中。在这种情况下,多个信息处理装置耦接至网络。由设置在相应信息处理装置中的通信接口在相应信息处理装置的cpu的控制下执行设置在不同信息处理装置中的搜索单元之间的解的发送和接收。
[0057]
[第二实施方式]
[0058]
接下来,将描述第二实施方式。
[0059]
图2是示出根据第二实施方式的信息处理系统的示例的图。
[0060]
根据第二实施方式的信息处理系统包括节点100、外部存储设备200和终端装置300。节点100、外部存储设备200和终端装置300耦接至网络50。网络50例如是局域网(lan)。
网络50可以是广域网(wan)或因特网。
[0061]
节点100是具有多个加速器的服务器计算机,多个加速器各自搜索组合最优化问题的解。加速器是下述硬件,其寻找使由式(1)表示的伊辛型能量函数e(x)最小化的多个状态变量的值作为解。然而,可以通过软件来实现由节点100提供的解搜索功能。
[0062]
节点100中的多个相应加速器通过使用不同的搜索方法(例如,搜索算法)来搜索解。然而,多个加速器中的至少两个可以通过使用相同的搜索方法来搜索解。搜索方法的示例包括sa、ga、sqa、禁忌搜索等。搜索方法不限于示例出的方法,并且可以使用其他搜索方法。
[0063]
外部存储设备200是存储输入至节点100的组合最优化问题的问题数据以及由节点100输出的组合最优化问题的解的存储装置。问题数据包括例如式(1)的加权系数{w
ij
}和偏置系数{b
i
}。例如,外部存储设备200包括多个硬盘驱动器(hdd)、固态驱动器(ssd)等。
[0064]
终端装置300是由用户操作的客户计算机。终端装置300向节点100输入数据。由终端装置300输入至节点100的数据包括存储在外部存储设备200中的问题数据。终端装置300通过包括在终端装置300中的显示器上显示内容来向用户呈现存储在外部存储设备200中的组合最优化问题的解的内容。
[0065]
根据第二实施方式的信息处理系统是根据第一实施方式的信息处理系统10的示例。节点100可以被认为是根据第一实施方式的信息处理系统10的示例。
[0066]
图3是示出节点的硬件的示例的图。
[0067]
节点100包括cpu 101、ram 102、hdd 103、介质读取器104、加速器卡105、105a...、网络接口卡(nic)106和总线107。
[0068]
cpu 101是执行程序的命令的处理器。cpu 101将存储在hdd 103中的程序或数据的至少一部分加载到ram 102中,并且执行该程序。cpu101可以包括多个处理器核。节点100可以包括多个处理器。可以通过使用多个处理器或处理器核并行执行以下将描述的处理。在一些情况下,一组多个处理器可以被称为“多处理器”或者仅被称为“处理器”。
[0069]
ram 102是易失性半导体存储器,其临时地存储由cpu 101执行的程序和用于由cpu 101运行所使用的数据。节点100可以包括与ram不同的类型的存储器,或者包括多个存储器。
[0070]
hdd 103是非易失性存储设备,其存储数据以及诸如操作系统(os)、中间件和应用软件的软件程序。节点100可以包括诸如闪存和ssd的不同类型的存储设备,或者包括多个非易失性存储设备。
[0071]
介质读取器104是读取记录在记录介质51中的程序和数据的读取设备。作为记录介质51,例如,可以使用磁盘、光盘、磁光盘(mo)、半导体存储器等。磁盘包括软盘(fd)或hdd。光盘包括高密度磁盘(cd)或数字通用光盘(dvd)。
[0072]
介质读取器104例如将从记录介质51读取的程序和数据复制到诸如ram 102或hdd 103的另一记录介质。由例如cpu 101执行经读取的程序。记录介质51可以是便携式记录介质,并且可以用于分发程序和数据。记录介质51和hdd 103可以被称为计算机可读记录介质。
[0073]
加速器卡105、105a

是各自搜索组合最优化问题的解的硬件加速器。加速器卡105、105a

中的每一个的搜索功能由诸如fpga、gpu或asic的半导体集成电路来实现。加速
器卡105、105a

中的每一个包括保留搜索出的解的ram。例如,加速器卡105包括fpga111和ram 112。加速器卡105a包括gpu 121和ram 122。如上所述,在节点100中可以混合有其上安装有诸如fpga、gpu和asic的不同类型的半导体集成电路的加速器卡。
[0074]
搜索组合最优化问题的解的硬件加速器(例如,加速器卡105、105a

)可以被称为伊辛机器、波尔兹曼机器等。例如,作为用于执行sa的加速器卡,存在日本专利第6465223号中公开的最优化装置。
[0075]
nic 106耦接至网络50并且nic 106是经由网络50与另一计算机通信的通信接口。nic 106经由网络50向外部存储设备200发送数据并从终端装置300接收数据。例如,nic 106利用电缆耦接至属于网络50的通信设备例如交换机或路由器。
[0076]
总线107是节点100的内部总线。cpu101、ram 102、hdd 103、介质读取器104、加速器卡105、105a

和nic 106耦接至总线107。对于总线107,例如,使用周边组件互连高速(pcie)。
[0077]
图4是示出节点的功能的示例的图。
[0078]
节点100包括控制单元130、搜索单元140、150、160和170以及解传播单元180。由cpu 101实现控制单元130和解传播单元180。一个搜索单元由一个加速器卡实现。尽管在图4的示例中示出节点100包括四个搜索单元,但是节点100可以包括不同于四个的多个搜索单元。如上所述,可以由执行预定软件的cpu 101来实现搜索单元的功能的至少一部分。
[0079]
控制单元130从终端装置300获取组合最优化问题的问题数据。控制单元130将问题数据和初始状态变量串输入至搜索单元140、150、160和170,并且使搜索单元搜索解。将相同的问题数据输入至搜索单元140、150、160和170。初始状态变量串是在第一搜索开始时间点处在搜索单元140、150、160和170中的每一个中的初始状态。在搜索单元140、150、160和170中的每一个中,利用初始状态变量串作为开始点通过改变状态变量的值,来执行第一搜索。控制单元130可以将不同的初始状态变量串输入至搜索单元140、150、160和170。
[0080]
控制单元130获取所获得的解作为搜索单元140、150、160和170中的相应搜索结果。控制单元130将获取的解输出至外部存储设备200。
[0081]
搜索单元140、150、160和170中的每一个通过搜索使与组合最优化问题对应的伊辛型能量函数最小化的一组多个状态变量来搜索组合最优化问题的解,例如,伊辛模型的基态。
[0082]
搜索单元140、150、160和170中的每一个使用彼此不同的搜索方法。例如,搜索单元140使用sqa。搜索单元150使用禁忌搜索。搜索单元160使用sa。搜索单元170使用ga。然而,搜索单元140、150、160和170中的至少两个搜索单元可以使用相同的搜索方法。所有搜索单元140、150、160和170都可以使用相同的搜索方法。
[0083]
搜索单元140、150、160和170分别包括解池141、151、161和171。与相应的搜索单元140、150、160和170对应的加速器卡上的ram的存储区域用于解池141、151、161和171。搜索单元140、150、160和170分别包括加速器142、152、162和172。由在与相应的搜索单元140、150、160和170对应的加速器卡上的fpga 111、gpu 121等实现加速器142、152、162和172。
[0084]
搜索单元140、150、160和170通过使用相应的加速器142、152、162和172来搜索解。搜索单元140、150、160和170优先地保留在相应的解池141、151、161和171中截至当前时间点获得的解中具有小能量值的预定数目的解。
[0085]
搜索单元140、150、160和170将保留在相应的解池141、151、161和171中的具有最小能量值的解例如最佳解供应至解传播单元180。搜索单元140、150、160和170可以用从解传播单元180供应的解替换保留在相应的解池141、151、161和171中的最佳解。
[0086]
搜索单元140、150、160和170基于保留在相应的解池141、151、161和171中的解分别生成新的解(例如,初始解),以将所述新的解设置为用于由加速器142、152、162和172执行的下次搜索的开始状态。搜索单元140、150、160和170中的每一个通过搜索单元的加速器通过使用所生成的初始解来执行下次搜索。
[0087]
解传播单元180将解发送至搜索单元140、150、160和170。解传播单元180包括解缓冲器181。ram 102的存储区域用于解缓冲器181。解缓冲器181存储由解传播单元180选择的一个或更多个解。
[0088]
解传播单元180将从相应的搜索单元140、150、160和170供应的解中的具有小能量值的预定数目的解(例如,搜索单元140、150、160和170中的最佳解)优先记录在解缓冲器181中。
[0089]
解传播单元180将保留在解缓冲器181中的解中具有最小能量值的解(例如,解缓冲器181中的最佳解)供应至搜索单元140、150、160和170。
[0090]
图5是示出解池的示例的图。
[0091]
图5示出了解池141,但是解池151、161和171也具有类似的数据结构。
[0092]
解池141中的一个记录具有状态字段和能量值字段。图5示出了用于识别记录的编号(#)。解池141保留k个记录。状态是由加速器142获得的解并且由一组多个状态变量的值表示。该状态也被称为状态向量或状态位串。能量值是与状态x对应的能量函数e(x)的值。例如,解池141的第0条记录具有状态“x0”和能量值“e(x0)”。
[0093]
解缓冲器181具有与解池141类似的数据结构。在一个示例中,在解池141、151、161和171中k=16,并且在解缓冲器181中k=4。
[0094]
图6是示出用于生成新的解的方法的示例的图。
[0095]
如上所述,搜索单元140随机获取保留在解池141中的解,并且生成要用作用于由加速器142执行的下次搜索的开始状态的新的解。
[0096]
例如,搜索单元140从解池141获取状态a和b,例如解a和b。搜索单元140基于解a和b生成新的解c。
[0097]
例如,搜索单元140将解c的与在解a和b中具有相同值的比特对应的比特设置为与解a和b中的比特相同的值。搜索单元140随机地选择“0”或“1”作为解c中与在解a和b中具有不同值的比特对应的比特的值。解c是根据第一实施方式的“第一状态变量串”的示例。
[0098]
图6的生成方法是基于优化策略的处理,在该优化策略中,在具有相对良好的能量值的解之间可能存在一些相似性并且在这些解附近可能存在最优解。关于生成方法可以参考以下文献。
[0099]
文献:y.wang等人,path relinking for unconstrained binary quadratic programming,european journal of operational research 223,2012,pp.595

604。
[0100]
当在解池141中仅存储一个解时,搜索单元140可以根据一个解生成要被设置作为用于下次搜索的开始状态的新的解。例如,还考虑到搜索单元140通过改变包括在该一个解中的状态变量的一部分的值来生成新的解。
[0101]
搜索单元150、160和170也通过与搜索单元140的方法类似的方法来生成新的解。
[0102]
接下来,将描述节点100的处理过程。
[0103]
首先,将描述搜索单元140、150、160和170的处理过程。
[0104]
控制单元130将初始状态变量串和相同的问题数据输入至搜索单元140、150、160和170,并且使搜索单元开始搜索解。在第一阶段,在解池141、151、161和171中不存储解。因此,搜索单元140、150、160和170执行用初始状态变量串的解填充相应解池141、151、161和171的处理。替选地,搜索单元140、150、160和170可以用通过随机选择0或1的比特而生成的解来填充相应解池141、151、161和171。
[0105]
尽管下面主要示出和描述搜索单元140,但是搜索单元150、160和170也执行类似的处理过程。
[0106]
图7是示出搜索单元的处理示例的流程图。
[0107]
(s10)搜索单元140从解池141中选择两个解a和b。
[0108]
(s11)搜索单元140根据解a和b生成解c。可以使用图6所示的方法作为生成解c的方法。
[0109]
(s12)搜索单元140将解c输入至加速器142,并且通过使用加速器142利用解c作为初始解(例如,开始状态)来搜索解。
[0110]
(s13)当由加速器142执行了预定时段的搜索结束时,搜索单元140从加速器142获取改进的解d和解d的能量值。
[0111]
(s14)搜索单元140从解池141中选择具有最大能量值的解,例如最差解e。
[0112]
(s15)搜索单元140确定解d的能量值是否小于解e的能量值。当解d的能量值小于解e的能量值时,搜索单元140使处理进入步骤s16。当解d的能量值等于或大于解e的能量值时,搜索单元140使处理进入步骤s17。
[0113]
(s16)搜索单元140将解池141中的解e改变为解d。
[0114]
(s17)搜索单元140从解池141中选择具有最小能量值的解,例如最佳解f。
[0115]
(s18)搜索单元140将解f和解f的能量值发送至解传播单元180。
[0116]
(s19)搜索单元140从解传播单元180接收由解传播单元180保留的具有最小能量值的解,例如最佳解g。这时,搜索单元140接收来自解传播单元180的解g和解g的能量值。
[0117]
(s20)搜索单元140确定解g的能量值是否小于解f的能量值。当解g的能量值小于解f的能量值时,搜索单元140使处理进入步骤s21。当解g的能量值等于或大于解f的能量值时,搜索单元140使处理进入步骤s22。
[0118]
(s21)搜索单元140将解池141中的解f改变为解g。
[0119]
(s22)搜索单元140确定是否满足结束条件。当满足结束条件时,搜索单元140结束处理。当不满足结束条件时,搜索单元140使处理进入步骤s10。
[0120]
步骤s22的结束条件由控制单元130给出。例如,搜索单元140将结束标志保留在加速器卡的ram中。结束标志的初始值为“假(false)”。当从控制单元130接收到结束信号时,搜索单元140将结束标志改变为“真(true)”。当结束标志为“假”时,不满足结束条件。当结束标志为“真”时,满足结束条件。例如,当在搜索单元140根据图7中的过程开始搜索之后经过了固定时段时,控制单元130向搜索单元140输出结束信号。控制单元130可以将相应搜索单元140、150、160和170的搜索时段设置为不同的长度。
[0121]
搜索单元140、150、160和170中的每一个异步执行图7中所示的过程。
[0122]
当满足结束条件并且搜索结束时,搜索单元140将最终获得的具有最小能量值的解输出至控制单元130。当在所有搜索单元140、150、160和170中结束搜索时,控制单元130将从相应搜索单元140、150、160和170输出的解或者这些解中具有最小能量值的解输出至外部存储装置200。
[0123]
接下来,将描述解传播单元180的解缓冲器181的更新处理的过程。
[0124]
当从搜索单元140、150、160和170中的任何一个接收到输入解a时,解传播单元180执行以下过程。
[0125]
图8是示出解传播单元的解缓冲器的更新示例的流程图。
[0126]
(s30)当从搜索单元140、150、160和170中的任何一个接收到输入解a和该输入解a的能量值时,解传播单元180确定在解缓冲器181中是否存在与输入解a相同的解a。当在解缓冲器181中存在解a时,解传播单元180结束处理。当在解缓冲器181中不存在解a时,解传播单元180使处理进入步骤s31。
[0127]
(s31)解传播单元180从解缓冲器181中选择具有最大能量值的解,例如最差解b。
[0128]
(s32)解传播单元180确定解a的能量值是否小于解b的能量值。当解a的能量值小于解b的能量值时,解传播单元180使处理进入步骤s33。当解a的能量值等于或大于解b的能量值时,解传播单元180结束解缓冲器181的更新处理。
[0129]
(s33)解传播单元180将解缓冲器181中的解b改变为解a。解传播单元180结束解缓冲器181的更新处理。
[0130]
为了确保解的通用性,解传播单元180可以保留两个或更多个解,所述两个或更多个解的对应于状态的状态比特串不同但是能量值是相同的值。
[0131]
接下来,将描述解传播单元180的解输出处理的过程。
[0132]
图9是示出解传播单元的解输出示例的流程图。
[0133]
(s40)解传播单元180从解缓冲器181中选择具有最小能量值的解,例如,最佳解a。
[0134]
(s41)解传播单元180将解a和该解a的能量值输出至搜索单元140、150、160和170中的每一个。解传播单元180结束解输出处理。
[0135]
在步骤s40中,当在解缓冲器181中存在解的能量值最小且状态不同的多个解时,解传播单元180从多个解中随机选择一个解。
[0136]
当从某个搜索单元供应图8中的输入解a时,解传播单元180可以在图8的过程结束之后针对作为输入解a的供应源的搜索单元执行图9的过程。搜索单元140、150、160和170中的每一个从解传播单元180异步地获取解缓冲器181中的最佳解。
[0137]
根据第二实施方式的节点100,多个加速器并行地操作,并且在搜索时段期间在加速器之间相互更新加速器中的每一个中的最佳解。例如,在搜索操作期间,经由解传播单元180将所有搜索单元中的最佳解反映在搜索单元的每一个的解池中。因此,基于从搜索单元中的每一个的解池中选择的最佳解生成搜索单元的每一个的下次搜索的开始状态,并且因此,在某个定时处所有搜索单元中的最佳解被反映在搜索单元中的每一个的下次搜索的开始状态中。
[0138]
如上所述,估计在具有相对良好的能量值的解之间可能存在一些相似性,并且在这些解附近可能存在最优解。因此,通过以上描述的节点100的处理过程,与独立地操作加
速器中的每一个的情况相比,增加了在搜索单元中的任何一个中达到最优解的可能性,并且改善了解寻找性能。
[0139]
即使对于一个问题,从某个局部解转换为另一解的难易程度也可能根据搜索方法而不同。例如,当落入某个局部解时,即使在第一搜索方法中从局部解转换为另一解相对困难,但是在第二搜索方法中从局部解转换为另一解可能相对容易。
[0140]
在第二实施方式中,在每个加速器中使用不同的搜索方法。在节点100中,每个加速器基于传播至每个加速器的最佳解生成在最佳解附近的邻近解,并且利用该邻近解作为开始状态来执行局部解的搜索。因此,例如,可以通过使用多种搜索方法来实现与在某个点处根据局部解搜索下一局部解的操作类似的操作,并且增加了达到最优解的可能性。替选地,由于在固定时间内达到最优解的可能性高,因此可以缩短获得直到最优解所花费的时间。以这种方式,可以进一步改善解寻找性能。
[0141]
搜索单元140、150、160和170可以通过经由解传播单元180交换解来使用加速器142、152、162和172异步地执行搜索。因此,即使加速器中的每一个的执行时间彼此有很大不同,但是由于不存在用于交换解的等待时间,因此可以有效地搜索解。
[0142]
[第三实施方式]
[0143]
接下来,将描述第三实施方式。下面将主要讨论与以上描述的第二实施方式不同的项目,同时省略对共同项目的说明。
[0144]
在第二实施方式中,已经描述了其中信息处理系统包括一个节点100的示例。
[0145]
在第三实施方式中,将描述其中信息处理系统包括多个节点的示例。在第三实施方式的描述中,与第二实施方式中的硬件和功能相同的硬件和功能由相同的附图标记表示,并且可以省略其的描述。
[0146]
图10是示出根据第三实施方式的信息处理系统的示例的图。
[0147]
根据第三实施方式的信息处理系统包括节点100a、100b

、外部存储设备200和终端装置300。节点100a、100b

、外部存储设备200和终端装置300耦接至网络50。节点100a、100b

由与根据第二实施方式的节点100类似的硬件实现。
[0148]
根据第三实施方式的信息处理系统是根据第一实施方式的信息处理系统10的示例。包括节点100a、100b

、的系统可以被认为是根据第一实施方式的信息处理系统10的示例。
[0149]
根据第三实施方式的节点100a、100b

中的每一个包括一个或更多个搜索单元。节点100a、100b

与根据第二实施方式的节点100的不同之处在于节点具有以下功能。尽管下面将主要描述节点100a,但是节点100b

也具有类似的功能。
[0150]
图11是示出节点的功能的示例的图。
[0151]
节点100a包括控制单元130、搜索单元140、150

、解传播单元180a和通信单元190。控制单元130和搜索单元140、150

对应于在第二实施方式中具有相同名称的功能。解传播单元180a和通信单元190由cpu 101实现。
[0152]
解传播单元180a包括解缓冲器181,并且具有与根据第二实施方式的用于搜索单元140、150

的解传播单元180类似的功能。
[0153]
解传播单元180a可以从通信单元190接收解,并且可以使用从通信单元190供应的解来更新解缓冲器181中的解。
[0154]
例如,解传播单元180a通过使用不仅从搜索单元140、150

供应的解而且从通信单元190供应的解作为输入解来执行图8中更新解的过程。
[0155]
例如,当在解缓冲器181中包括从搜索单元140、150

中的任何一个或通信单元190供应的输入解时,解传播单元180a丢弃该输入解,并且跳过解缓冲器181的更新。当在解缓冲器181中不包括输入解时,解传播单元180a将解缓冲器181中具有最大能量值的解的能量值与输入解的能量值进行比较。当输入解的能量值小于解缓冲器181中的最大能量值时,解传播单元180a用输入解替换解缓冲器181中具有最大能量值的解。当输入解的能量值等于或大于解缓冲器181中的最大能量值时,解传播单元180a丢弃该输入解而不更新解缓冲器181。
[0156]
解传播单元180a将解缓冲器181中具有最小能量值的解(例如,最佳解)和该最佳解的能量值输出至搜索单元140、150

以及通信单元190。
[0157]
通信单元190经由网络50将当前时间点处节点100a中的最佳解和该最佳解的能量值发送至节点100b

。通信单元190从节点100b

中的每一个接收当前时间点处在相应节点100b

中获得的最佳解以及所述最佳解的能量值。
[0158]
通信单元190将从所有其他节点接收到的解的能量值与当前时间点处节点100a中的最佳解进行比较,并且选择具有最小能量值的解mmin。当存在能量值最小且状态比特串不同的多个解时,通信单元190从多个解中随机选择一个。
[0159]
通信单元190将所选择的解mmin和该解mmin的能量值输出至解传播单元180a。是否将解mmin存储在解缓冲器181中取决于以上描述的解传播单元180a的操作。
[0160]
当将解mmin输出至解传播单元180a时,通信单元190停止固定时间,并且在经过固定时间之后重复执行以上描述的操作。
[0161]
针对通信单元190可以使用诸如开放消息传递接口(mpi)的并行计算环境。例如,通信单元190通过与所有其他节点中的其他通信单元的多对多通信(all

to

all communication)收集在节点中的每一个中获得的最佳解。
[0162]
接下来,将描述通信单元190的处理过程。
[0163]
图12是示出通信单元的处理示例的流程图。
[0164]
(s50)通信单元190从解传播单元180a获取解m[i]和该解m[i]的能量值。解m[i]是在保留在解缓冲器181的解中具有最小能量值的解。i是节点的标识号,并且具有从0到(节点的数目-1)的值。步骤s50中的i对应于节点100的标识号。
[0165]
(s51)通信单元190对所有节点的解m[i]和解m[i]的能量值进行聚合。因此,通信单元190获得与节点的数目对应的解m[i]。
[0166]
(s52)通信单元190从解m[i]中选择具有最小能量的解mmin。当存在具有最小能量的多个解时,通信单元190从多个解中随机选择一个解并将所选择的解设置为解mmin。
[0167]
(s53)通信单元190将解mmin和该解mmin的能量值输入至解传播单元180a。
[0168]
(s54)通信单元190等待固定时间。
[0169]
(s55)通信单元190确定是否满足结束条件。当满足结束条件时,通信单元190结束处理。当不满足结束条件时,通信单元190使处理进入步骤s50。
[0170]
步骤s55的结束条件由控制单元130给出。例如,通信单元190将结束标志保留在ram 102中。结束标志的初始值为“假”。当从控制单元130接收到结束信号时,通信单元190
将结束标志改变为“真”。当结束标志为“假”时,不满足结束条件。当结束标志为“真”时,满足结束条件。例如,当在搜索单元140根据图7中的过程开始搜索之后经过了固定时段时,控制单元130向搜索单元140和通信单元190输出结束信号。
[0171]
根据根据第三实施方式的节点100a、100b

,安装在节点100a、100b

的每一个中的多个加速器并行地操作,并且在搜索期间在加速器之间相互更新相应加速器中的最佳解。例如,在搜索操作期间,经由解传播单元180a和通信单元190将所有搜索单元中的最佳解反映在相应搜索单元的解池中。因此,基于从相应搜索单元的解池中选择出的最佳解来生成相应搜索单元的下次搜索的开始状态,并且因此,在某个定时处所有搜索单元中的最佳解被反映在相应搜索单元的下次搜索的开始状态中。
[0172]
因此,与独立地操作个体加速器的情况相比,增加了在搜索单元中的任何一个中达到最优解的可能性,并且改善了解寻找性能。
[0173]
节点100a、100b

中的每一个中的搜索单元经由解传播单元180a和通信单元190交换解,并且因此,可以在搜索单元之间异步执行在相应节点上由搜索单元执行的搜索。因此,即使相应加速器的执行时间彼此有很大不同,但是由于不存在用于交换解的等待时间,因此可以有效地搜索解。
[0174]
与根据第二实施方式的搜索单元中的每一个类似,在根据第三实施方式的搜索单元的每一个中可以使用不同的搜索方法。
[0175]
图13是示出使用多种搜索方法的信息处理系统的示例的图。
[0176]
例如,假定根据第三实施方式的信息处理系统包括节点100a、100b、100c和100d。节点100a、100b、100c和100d耦接至网络50。例如,节点100a的搜索单元使用sqa。节点100b的搜索单元使用禁忌搜索。节点100c的搜索单元使用sa。节点100d的搜索单元使用ga。
[0177]
如图13所示,对于节点中的每一个,搜索方法可以不同,并且在一个节点中可以混合使用多种搜索方法的多个加速器。如上所述,由fpga、gpu、asic等实现加速器。如第二实施方式所示,可以将fpga、gpu、asic等中的至少两种类型的半导体集成电路混合在一个节点中。.
[0178]
即使对于一个问题,从某个局部解转换为另一解的难易程度也可能根据搜索方法而不同。例如,当落入某个局部解时,即使在第一搜索方法中从局部解转换为另一解相对困难,但是在第二搜索中从局部解转换为另一解可能相对容易。
[0179]
图14是示出针对每种搜索方法的状态转换的特性的示例的图。
[0180]
曲线图71描绘了某个组合最优化问题中在搜索空间上针对每个状态(x)的能量值e(x)。曲线图71的水平轴指示搜索空间。曲线图71的纵轴指示能量值e(x)。给出能量值e(x)的最小值的状态xa、xb、xc、xd和xe中的每一个都是局部解。假设这些状态中的状态xe是最优解。
[0181]
如上所述,在搜索某个组合最优化问题的解的过程中,用于达到最优解的有效搜索方法针对每个点(例如局部解)可能是不同的。
[0182]
表72指示在搜索方法1至4中状态之间的转换的难易程度。作为用于从状态xa达到状态xe的状态的转换顺序的一个示例,考虑顺序地追踪xa、xb、xc、xd和xe。表72指示在针对搜索方法1至4中的每一种转换的字段中描述的状态之间的转换的难易程度。表72中带有核选标记的部分指示在搜索方法中相对可能发生状态转换。表72中带有连字符(
“‑”
)的部分
指示在搜索方法中相对不太可能发生状态之间的转换。
[0183]
例如,在搜索方法1中,从状态xa经由状态xb和xc到达状态xd的可能性高,但是从状态xd到达状态xe的可能性低。
[0184]
在搜索方法2中,从状态xa经由状态xb到达状态xc的可能性高,但是从状态xc经由状态xd到达状态xe的可能性低。
[0185]
在搜索方法3中,从状态xa到达状态xb的可能性高,并且从状态xc经由状态xd到达状态xe的可能性高,但是从状态xb到达状态xc的可能性低。
[0186]
在搜索方法4中,从状态xa到达状态xb的可能性高,并且从状态xc到达状态xd的可能性高,但是从状态xb到达状态xc的可能性低,并且从状态xd到达状态xe的可能性低。
[0187]
如上所述,即使使用搜索方法1至4中的任何一种,也不太可能发生从状态xa到状态xe的中间的状态之间的转换。
[0188]
在这种情况下,例如,搜索单元通过用于仅通过使用多种搜索方法独立地操作加速器而在相应加速器中获得的解中的最佳解的方法无法达到最优解。
[0189]
因此,在根据第二实施方式的节点100和根据第三实施方式的节点100a、100b

中,每个搜索单元通过传播至每个搜索单元的最佳解生成在最佳解附近的邻近解,并且每个搜索单元利用邻近解作为开始状态来执行搜索。因此,例如,可以通过使用多种搜索方法来实现与在某个点处根据局部解搜索下一局部解的操作类似的操作,并且增加了达到最优解的可能性。替选地,由于在固定时间内达到最优解的可能性高,因此可以缩短直到获得最优解所花费的时间。以这种方式,可以改善解寻找性能。
[0190]
总之,根据第二实施方式和第三实施方式的信息处理系统具有例如以下功能。
[0191]
节点100或节点100a、100b

的多个搜索单元中的每一个,从由多个搜索单元获得的多个解中获取第一解,所述第一解对应于多个能量函数的与多个解对应的值中的最佳值;基于第一解生成第一状态变量串;以及利用所生成的第一状态变量串作为开始状态来搜索解。因此,与在仅通过独立地操作搜索单元而获得的解中获得最佳解的情况相比,可以提高达到最优解的可能性,并且可以改善解寻找性能。
[0192]
例如,多个搜索单元中的至少两个搜索单元通过使用不同的搜索算法来搜索解。如上所述,对不同的搜索算法进行组合,并且因此,增加了逃离(escaping)难以通过单个搜索算法逃离的局部解的可能性。因此,可以增加达到最优解的可能性。
[0193]
节点100包括解传播单元180,该解传播单元180从多个相应的搜索单元异步地获取第二解,从多个所获取的第二解中确定第一解,并且将所确定的第一解异步地输出至多个相应的搜索单元。
[0194]
因此,多个搜索单元可以经由解传播单元180异步地交换解。因此,即使相应搜索单元的执行时间彼此不同,但是由于不存在用于交换解的等待时间,因此可以有效地搜索解。例如,在使用不同搜索算法的搜索单元之间搜索执行时间可能大不相同。因此,例如,当在至少两个搜索单元中使用不同的搜索算法时,解传播单元180的功能是有用的。
[0195]
可以如上所述由cpu 101实现解传播单元180的功能。解传播单元180的功能可以由诸如fpga和asic的半导体集成电路来实现。在这种情况下,通过使用半导体集成电路实现的解传播电路用作解传播单元180。
[0196]
例如,多个搜索单元中的每个搜索单元将由搜索单元保留在解池中的与能量函数
的最佳值对应的第二解输出至解传播单元180,并且从解传播单元180获取第一解。在第一解与第二解不同时,多个搜索单元中的每个搜索单元用从解传播单元180获取的第一解替换由搜索单元保留的第二解。因此,由多个搜索单元获得的最佳解(例如,第一解)被适当地反映在搜索单元中的每一个中。
[0197]
例如,第一解和第一状态变量串具有以下关系。
[0198]
在第一示例中,包括在第一解中的状态变量串是与第一状态变量串相同的状态变量串。因此,可以将第一解本身设置为用于下次搜索的开始状态。
[0199]
在第二示例中,包括在第一解中的状态变量串是其中改变了包括在第一状态变量串中的多个状态变量中的一部分的状态变量串。因此,可以将第一解的邻近解设置为下次搜索的开始状态。
[0200]
通过使用第一示例或第二示例可以改善解寻找性能。
[0201]
例如,多个搜索单元中的每个搜索单元保留包括由搜索单元获得的多个解的解池或者包括通过用第一解替换第二解而获得的多个解的解池,以及基于从解池中选择的两个或更多个解来生成第一状态变量串。
[0202]
因此,在信息处理系统中实现第二示例,并且可以改善解寻找性能。例如,存在以下可能性:第一解被包括在从解池中选择的两个或更多个解中,并且在这种情况下,可以将第一解的邻近解设置为下次搜索的开始状态。
[0203]
根据第三实施方式的信息处理系统包括多个装置,多个装置均包括:在多个搜索单元中的一个或更多个搜索单元。节点100a、100b

是多个装置的示例。装置可以被称为例如信息处理装置。多个装置中的每个装置向多个装置中的其他装置发送第三解,所述第三解对应于由包括在装置中的一个或更多个搜索单元获得的能量函数的第一最佳候选值,并且从其他装置接收第四解,所述第四解对应于由其他装置获得的能量函数的第二最佳候选值。多个装置中的每个装置基于第一最佳候选值与第二最佳候选值之间的比较来确定第一解。第一最佳候选值和第二最佳候选值是用于与在装置的每个装置中获得的多个解对应的多个能量函数的值中的最佳值的候选的值。
[0204]
因此,即使多个搜索单元以分布方式布置在多个装置中,也可以由多个相应的搜索单元适当地确定第一解,并且可以将该第一解供应至相应的搜索单元,并且可以改善整个信息处理系统的解寻找性能。
[0205]
例如,多个装置中的每个装置包括通信单元(例如,通信单元190)和解传播单元(例如,解传播单元180a)。
[0206]
多个装置中的每个装置的通信单元将第三解发送至其他装置,从其他装置接收第四解,并且通过能量值的第一最佳候选值与能量值的第二最佳候选值之间的比较,输出第三解和第四解中作为用于第一解的候选的候选解。
[0207]
多个装置中的每个装置的解传播单元优先地保留由包括在装置中的一个或更多个搜索单元获得的第五解以及由装置的通信单元输出的候选解中具有良好能量值的预定数目的解。多个装置中的每个装置的解传播单元确定预定数目的保留解中具有最佳能量值的解作为第一解,并且将所确定的第一解输出至包括在装置中的一个或更多个搜索单元。
[0208]
因此,将由装置中的每个装置异步获得的最佳解与其他装置共享,并且因此,在每个装置上的一个或更多个搜索单元可以适当地获取该装置中的第一解。因此,可以改善整
个信息处理系统的解寻找性能。
[0209]
如上所述,可以由cpu 101来实现在包括通信单元190的每个装置上的通信单元的功能。然而,通信单元的功能可以由诸如fpga或asic的半导体集成电路来实现。如上所述,可以由cpu 101来实现包括解传播单元180a的每个装置上的解传播单元的功能。解传播单元的功能可以由诸如fpga或asic的半导体集成电路来实现。例如,与节点100a、100b

对应的装置中的每个装置可以包括多个处理器或多个处理器核。在这种情况下,第一处理器或第一处理器核可以执行通信单元190的功能,并且第二处理器或第二处理器核可以执行解传播单元180a的功能。替选地,通过使用诸如fpga的半导体集成电路实现的通信电路和解传播电路可以分别用作通信单元190和解传播单元180a。
[0210]
当多个装置中的每个装置包括两个或更多个搜索单元时,多个装置中的每个装置的解传播单元从包括在装置中的两个以上的搜索单元异步地获取第五解,并且将所选择的第一解异步地输出至两个或更多个搜索单元。
[0211]
因此,在多个装置上的多个搜索单元可以经由每个装置上的解传播单元(例如,解传播单元180a)异步地交换解。因此,即使每个搜索单元的执行时间彼此不同,但是由于不存在用于交换解的等待时间,因此可以有效地搜索解。例如,在使用不同搜索算法的搜索单元之间搜索执行时间可能大不相同。因此,例如,当在同一装置上的至少两个搜索单元中使用不同的搜索算法时,包括解传播单元180a的每个装置上的解传播单元的功能是有用的。
[0212]
多个搜索单元中的每个搜索单元通过改变包括在第一解中的状态变量的一部分的值来生成第一状态变量串。作为生成方法,例如,可以使用图6中的方法。据估计,在当前获得的解中的较佳解附近存在最优解的可能性高。因此,通过将第一解的邻近解设置为下次搜索的开始状态可以增加达到最优解的可能性,并且可以改善解寻找性能。
[0213]
可以通过使实现搜索单元11、12和13的功能的处理器例如cpu执行程序来实现根据第一实施方式的信息处理。可以通过使cpu 101执行程序来实现根据第二实施方式和第三实施方式的信息处理。程序可以被记录在计算机可读的记录介质51中。
[0214]
例如,可以通过分发其中记录有程序的记录介质51来循环程序。该程序可以被存储在另外的计算机中,并且该程序可以经由网络被分发。例如,计算机可以将记录在介质51中的程序或从另外的计算机接收的程序存储(安装)在诸如ram 102或hdd 103的存储设备中,并且可以从存储设备读取程序以执行该程序。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1