CN113919504A - 信息处理系统、信息处理方法及计算机可读存储介质 - Google Patents
信息处理系统、信息处理方法及计算机可读存储介质 Download PDFInfo
- Publication number
- CN113919504A CN113919504A CN202110381598.3A CN202110381598A CN113919504A CN 113919504 A CN113919504 A CN 113919504A CN 202110381598 A CN202110381598 A CN 202110381598A CN 113919504 A CN113919504 A CN 113919504A
- Authority
- CN
- China
- Prior art keywords
- search
- solution
- value
- neighborhood depth
- neighborhood
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/951—Indexing; Web crawling techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N7/00—Computing arrangements based on specific mathematical models
- G06N7/01—Probabilistic graphical models, e.g. probabilistic networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
- G06F16/9538—Presentation of query results
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/11—Complex mathematical operations for solving equations, e.g. nonlinear equations, general mathematical optimization problems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/22—Microcontrol or microprogram arrangements
- G06F9/28—Enhancement of operational speed, e.g. by using several microcontrol devices operating in parallel
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Computational Mathematics (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Analysis (AREA)
- Computing Systems (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Algebra (AREA)
- Operations Research (AREA)
- Probability & Statistics with Applications (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Medical Informatics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
提供了信息处理系统、信息处理方法及计算机可读存储介质。信息处理系统包括:搜索电路,其被配置成:对于由包含多个状态变量的能量函数表示的问题,获得邻域深度,所述邻域深度指示在针对所述问题的解的搜索中每一个状态转换要改变的状态变量的数目,以及通过使用所获得的邻域深度来执行针对问题的解的搜索;以及处理电路,其被配置成:计算指示通过第一邻域深度的解准确度的提高程度的第一指标,计算指示通过第二邻域深度的解准确度的提高程度的第二指标,以及基于第一指标和第二指标输出要在搜索电路中设置的邻域深度。
Description
技术领域
本文讨论的实施方式涉及信息处理系统、信息处理方法和存储程序的非暂态计算机可读存储介质。
背景技术
存在一种信息处理设备,其通过使用伊辛模型替代组合优化问题来计算冯·诺依曼计算机不擅长的多变量组合优化问题,所述伊辛模型是一种表示磁性材料中的自旋行为的模型。用于在实际时间中求解使用伊辛模型替代的问题的方法包括例如模拟退火(SA)方法和马尔可夫链蒙特卡罗(MCMC)方法诸如副本交换方法。通过包含多个状态变量的能量函数来将组合优化问题公式化。能量函数有时被称为目标函数或评估函数等。信息处理设备通过使用MCMC方法反复尝试通过改变状态变量的值而引起的状态转换来搜索使能量函数的值最小化的伊辛模型的基态。所述基态对应于组合优化问题的最优解。
例如,提出了一种组合优化设备,其中,多个处理器元件通过在优化期间交换由每个处理器元件保留的组合信息来执行协同优化。
此外,还提出了一种状态空间搜索技术,其能够实现作为“关注的状态”的转换的距离2、距离3等的转换。在此,在所提出的搜索技术中,距离n意指需要至少n个状态转换来从一个状态到达另一状态。
此外,提出了一种执行副本交换方法的优化设备。所提出的优化设备在每特定迭代处观察每个退火段中的能量,并且根据能量和温度基于交换概率来交换被供应至两个退火段的反转温度。
相关技术的示例包括日本特开专利公报第06-309408号、日本特开专利公报第2004-70662号和日本特开专利公报第2019-160293号。
如上所述,可以想到使从特定状态至下一状态的每个转换(即一个状态转换)要改变的状态变量的数目大于一。例如,虽然在搜索中通过使每一个状态转换要改变的状态变量的数目是可变的并且使该数目逐步增大,所获得的解的准确度可以提高,但是搜索所花费的时间增加。根据问题、搜索情况等适当地确定每一个状态转换要改变的状态变量的数目是不容易的。
在一个方面,本实施方式旨在提供实现高效搜索的信息处理系统、信息处理方法和程序。
发明内容
根据实施方式的一个方面,一种信息处理系统包括:搜索电路,其被配置成:对于由包含多个状态变量的能量函数表示的问题,获得邻域深度,所述邻域深度指示在针对所述问题的解的搜索中每一个状态转换要改变的状态变量的数目,以及通过使用所获得的邻域深度来执行针对所述问题的解的搜索;以及处理电路,其被配置成:获取针对在第一邻域深度处的搜索的初始解的能量函数的第一值,以及针对通过在第一邻域深度处的搜索获得的第一解的能量函数的第二值;基于第一值和第二值计算第一指标,所述第一指标指示通过第一邻域深度的解准确度的提高程度;获取针对在第二邻域深度处的搜索的初始解的能量函数的第三值,以及针对通过在第二邻域深度处的搜索获得的第二解的能量函数的第四值;基于第三值和第四值计算第二指标,所述第二指标指示通过第二邻域深度的解准确度的提高程度;以及基于第一指标和第二指标输出要在搜索电路中设置的邻域深度。
本发明的目的和优点将借助于如上所述特别指出的元素和组合来实现和获得。
应当理解,前面的总体描述和后面的详细描述两者均为示例性和说明性的,而不是对本发明进行限制。
在一个方面,可以实现高效的搜索。
附图说明
图1是说明根据第一实施方式的信息处理系统的图;
图2是示出根据第二实施方式的信息处理系统的图;
图3是示出控制设备的硬件示例的图;
图4是示出节点的硬件示例的图;
图5是示出信息处理系统的功能示例的图;
图6是示出其中通过多个元素的排列表示解的示例的图;
图7是示出2-opt邻域的示例的图;
图8是示出解准确度提高率数据的示例的图;
图9是示出解准确度提高评估值的计算示例的图;
图10是示出邻域深度表的示例的图;
图11是示出控制单元的处理示例的流程图;
图12是示出搜索单元的处理示例的流程图;以及
图13是示出节点的另一硬件示例的图。
具体实施方式
在下文中,将参照附图描述本实施方式。
[第一实施方式]
将描述第一实施方式。
图1是说明根据第一实施方式的信息处理系统的图。
信息处理系统1搜索针对组合优化问题的解并且输出所述解。信息处理系统1包括存储单元11、处理单元12和搜索单元13。
存储单元11可以是易失性存储设备例如随机存取存储器(RAM),或者可以是非易失性存储设备例如硬盘驱动器(HDD)或闪存。
处理单元12可以包括中央处理单元(CPU)、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)等。处理单元12可以是执行程序的处理器。“处理器”可以包括多个处理器的集合(多处理器)。
搜索单元13由诸如CPU、DSP、ASIC、图形处理单元(GPU)和FPGA的集成电路实现。此外,尽管未示出,搜索单元13可以包括诸如随机存取存储器(RAM)或寄存器的存储单元。例如,使用诸如FPGA的集成电路实现的搜索电路可以用作搜索单元13。如稍后将描述的,信息处理系统1可以包括多个搜索单元,所述多个搜索单元包括搜索单元13。
基于通过公式化组合优化问题获得的伊辛型能量函数,搜索单元13改变由包含在能量函数中的多个状态变量的值的集合表示的伊辛模型的状态,从而搜索使能量函数的值最小化的解。能量函数的值是对应于伊辛模型的状态的能量值。伊辛模型的状态有时称为状态。状态变量是取值为“0”或“1”的二进制变量。使能量函数的值最小化的解对应于伊辛模型的基态。此外,通过多个状态变量的集合表示由搜索单元13计算出的解。伊辛模型的基态对应于组合优化问题的最优解。例如,SA方法或MCMC方法例如副本交换方法用于搜索解。
在此,伊辛型能量函数E(x)通过例如表达式(1)表示。
状态向量x具有作为元素的多个状态变量,并且表示伊辛模型的状态。在使目标函数的值最大化的情况下,仅需要反转目标函数的符号。
表达式(1)右侧的第一项是在没有省略和重复的情况下针对可以从所有状态变量中选择的两个状态变量的所有组合对两个状态变量的值与加权系数的乘积进行积分。标识xi指示第i个状态变量。标识xj指示第j个状态变量。标识Wij指示第i个状态变量与第j个状态变量之间的权重,或者指示耦合强度的权重系数。
表达式(1)右侧的第二项是计算所有状态变量的每个偏差系数与状态变量值的乘积的和。标识bi指示针对第i个状态变量的偏差系数。
例如,伊辛模型中自旋的值“-1”对应于状态变量的值“0”。伊辛模型中自旋的值“+1”对应于状态变量的值“1”。出于这个原因,状态变量也可以被称为取值为0或1的位。
在此,当表达式(1)中状态变量xi的值变成1-xi时,状态变量xi的增量可以表示为δxi=(1-xi)-xi=1-2xi。因此,关于能量函数E(x),由于状态变量xi的变化引起的能量值变化量ΔEi由表达式(2)表示。
在此,例如,可以想到使用最速下降法用于搜索使能量值最小化的基态。然而,使用最速下降法,一旦处理陷入局部解,就难以从局部解脱离。
因此,在搜索单元13中,使用蒙特卡罗方法和吉布斯方法来确定是否允许其中能量值变化量与搜索基态时的ΔEi匹配的状态转换(状态变量xi的值的变化)。例如,在用于搜索从特定状态至其中能量值低于特定状态中的能量值的另一状态的转换的邻域搜索中,搜索单元13概率性地允许不仅转换至能量值减小的状态,而且还允许转换至能量值增大的状态。
搜索单元13基于当多个状态变量中的任何状态变量的值被改变时的能量值变化量与噪声值之间的比较结果来验证是否允许状态变量的值改变。当经验证允许改变时,搜索单元13通过改变相关状态变量的值来生成状态转换。基于温度值或随机数计算出噪声值。温度值越大,噪声值的幅度越大。噪声值的幅度越大,越容易允许能量值大量增加的状态转换。
搜索单元13可以将每一个状态转换要改变的状态变量的数目指定为等于或大于1的整数。此外,可以可变地控制搜索单元13中每一个状态转换要改变的状态变量的数目。在此,每一个状态转换要改变的状态变量的数目有时被称为邻域深度。另外,在特定状态与另一状态之间的距离称为汉明距离。汉明距离指示在特定状态与另一状态之间具有彼此不同的值的状态变量的数目,即,不同位的数目。注意,“一个状态转换”与“一次状态转换”具有相同的含义。
通过从特定初始解开始反复尝试状态转换直至满足预定结束条件来执行搜索单元13中的搜索。初始解指示作为搜索的起点的状态。预定结束条件是例如即使在达到具有特定能量值的解或者自搜索开始以来经过特定时间量之后通过预定次数的后续状态转换试验(trial)也不能获得增强能量值的其他解。信息处理系统1提供根据问题和搜索情况调整邻域深度的功能。
存储单元11存储用于处理单元12的处理的数据。例如,存储单元11存储表11a。表11a包括邻域深度和解准确度提高指标的项。邻域深度登记在邻域深度的项中。解准确度提高指标登记在解准确度提高指标的项中。解准确度提高指标是表示使用相关邻域深度获得的解的准确度提高程度的指标。解的准确度被称为解准确度,表示所获得的解是使能量值最小化的解即最优解的确定性。例如,解准确度越高,最优解的可能性越高,以及解准确度越低,最优解的可能性越低。此外,解准确度提高指标越大,通过在相关邻域深度处搜索来接近最优解的可能性越高,以及解准确度提高指标越小,通过在相关邻域深度处搜索来接近最优解的可能性越低。如稍后将描述的,基于在搜索的初始解的能量值与通过搜索获得的解的能量值之间的差来评估解准确度提高指标。
处理单元12获取针对在特定邻域深度处的搜索的初始解的能量函数的第一值和针对通过在特定邻域深度处搜索获得的解的能量函数的第二值。此外,当针对每次搜索所花费的时间不同时,处理单元12进一步获取时间。针对获得特定解的搜索所花费的时间有时被称为搜索时间。处理单元12可以从搜索单元13获取第一值和第二值,或者可以获取通过初始解和搜索获得的解以使用表达式(1)计算第一值和第二值。此外,处理单元12可以从搜索单元13获取搜索时间,或者可以通过测量处理单元12中的搜索时间来获取搜索时间。
基于第一值和第二值,处理单元12计算指示通过相关邻域深度的解准确度的提高程度的指标。以上提及的解准确度提高指标对应于指示解准确度提高程度的指标。例如,处理单元12计算通过从第一值中减去第二值并且然后将相减结果的值除以搜索时间而获得的值作为解准确度提高指标。在这种情况下,假设第一值由E1表示,第二值由E2表示,以及搜索时间由T表示,则解准确度提高指标表示为V=(E1-E2)/T。搜索时间T越短,并且从初始解开始的能量值的增强范围(E1-E2)越大,解准确度提高指标V越大。当搜索时间始终不变时,处理单元12可以指定T=1。
处理单元12可以在相同邻域深度执行搜索n次(n为等于或大于二的整数),以计算针对相关邻域深度的n个解准确度提高指标V1、V2、……、Vn,并且分配计算出的n个解准确度提高指标的平均值(V1+V2+……+Vn)/n作为针对邻域深度的解准确度提高指标V。这提高了解准确度提高指标V的评估准确度。此时,在n次搜索的每次搜索时可以采用相同的初始解。这使得能够评估针对相关初始解和邻域深度的解准确度提高指标V。
处理单元12基于针对在搜索单元中为多个搜索设置的多个邻域深度而计算的多个指标来输出要在搜索单元13中设置的邻域深度。例如,处理单元12通过以上评估方法计算针对邻域深度d1的解准确度提高指标“1”,并且将计算出的解准确度提高指标登记在表11a中。此外,处理单元12通过以上评估方法计算针对邻域深度d2的解准确度提高指标“2”,并且将计算出的解准确度提高指标登记在表11a中。例如,在其中针对邻域深度d1生成解准确度提高指标的搜索以及其中针对邻域深度d2生成解准确度提高指标的搜索中,可以采用相同的初始解。这使得能够使用共同的参考和不同的邻域深度来评估针对每个邻域深度的解准确度提高指标。
注意,表11a示出了下述示例,其中所使用的邻域深度的数目是两个,即d1和d2,但是要使用的邻域深度的数目可以是三个或更多个。
例如,根据表11a,邻域深度d1的解准确度提高指标为“1”,以及邻域深度d2的解准确度提高指标为“2”。在这种情况下,处理单元12优先选择邻域深度d2而不是邻域深度d1,并且输出所选择的邻域深度d2作为要在搜索单元13中设置的邻域深度。例如,作为优先选择的方法,可以想到使邻域深度d2被选择的概率高于邻域深度d1被选择的概率。例如,处理单元12基于邻域深度d1和d2的解准确度提高指标来将邻域深度d2被选择的概率指定为2/3以及将邻域深度d1被选择的概率指定为1/3。作为这种方法的示例,用于处理单元12的可想到的方法是下述方法:生成满足0≤a<1的均匀随机数a,并且当a<2/3成立时选择邻域深度d2,而当a≥2/3成立时选择邻域深度d1。例如,当信息处理系统1包括多个搜索单元时,处理单元12可以通过所述方法以邻域深度d1和d2中的任何一个来设置多个搜索单元中的每一个搜索单元。通过以这种方式设置,在表11a的示例中,期望其中设置邻域深度d1的搜索单元的数目的比例被给出为大约1/3,并且其中设置邻域深度d2的搜索单元的数目的比例被给出为大约2/3。
例如,处理单元12将所选择的邻域深度输出至搜索单元13,并且使搜索单元13使用输出的邻域深度执行下一次搜索。处理单元12可以基于例如在先前搜索中获得的解中的最佳解来生成用于下一次搜索的初始解,并且在搜索单元13中设置所生成的初始解。在此,在先前搜索中获得的解中的最佳解是在先前搜索中获得的解中具有最小能量值的解。例如,处理单元12可以通过改变最佳解的一些状态变量来生成下一个初始解。
处理单元12重复执行以上处理,并且将在处理期间从搜索单元13获得的解记录在存储单元11中。处理单元12向用户呈现在特定时间段期间记录在存储单元11中的解中的最佳解作为最终解。例如,处理单元12在连接至信息处理系统1的显示设备上显示通过将解转换成组合优化问题的解的格式而获得的最终解或信息,或者将最终解或信息发送至由用户通过网络使用的信息处理设备。
根据信息处理系统1,对于由包含多个状态变量的能量函数表示的问题,在搜索单元13中设置邻域深度,所述邻域深度指示在对问题的解的搜索中每一个状态转换要改变的状态变量的数目。搜索单元13基于所设置的邻域深度执行对问题的解的搜索。处理单元12获取针对在第一邻域深度处的搜索的初始解的能量函数的第一值和针对通过在第一邻域深度处的搜索获得的第一解的能量函数的第二值。处理单元12基于第一值和第二值计算第一指标,所述第一指标指示通过第一邻域深度的解准确度的提高程度。处理单元12获取针对在第二邻域深度处的搜索的初始解的能量函数的第三值和针对通过在第二邻域深度处的搜索获得的第二解的能量函数的第四值。处理单元12基于第三值和第四值计算第二指标,所述第二指标指示通过第二邻域深度的解准确度的提高程度。处理单元12基于第一指标和第二指标输出要在搜索单元13中设置的邻域深度。
这使得可以实现高效搜索。
在此,通过在搜索中使每一个状态转换要改变的状态变量的数目(即邻域深度)是可变的,并且使邻域深度逐步增大,所获得的解的准确度可以提高,但是搜索所花费的时间增加。根据问题、搜索情况等适当地确定邻域深度是不容易的。
与此相反,处理单元12基于作为在不同邻域深度处的搜索结果而获得的解来计算针对每个邻域深度的解准确度提高指标。然后,根据相关问题、当前搜索情况等,处理单元12验证每个邻域深度对解准确度提高的贡献,并且基于针对每个邻域深度的解准确度提高指标,优先选择被估计成显著地有助于提高解准确度的邻域深度。例如,处理单元12可以通过使搜索单元13使用所选择的邻域深度执行搜索来使搜索单元13高效地执行搜索。因此,提高了搜索单元13达到更好的解的可能性,并且改善了通过搜索单元13计算解的性能。例如,可以提高在预定时间内达到最佳解或能量值小于预先规定的目标值的解的可能性。
[第二实施方式]
接下来,将描述第二实施方式。
图2是示出根据第二实施方式的信息处理系统的图。
信息处理系统2包括控制设备100和节点200、300、400、500、600和700。控制设备100和节点200至700连接至网络30。网络30的示例可以包括局域网(LAN)、广域网(WAN)和因特网。
控制设备100是控制节点200至700的设备。控制设备100可以是例如诸如计算机的信息处理设备。控制设备100接受来自用户的关于组合优化问题的信息的输入,并且将关于组合优化问题的信息转换成伊辛形式的问题。伊辛形式的问题是使表达式(1)中的能量函数的值最小化的问题。控制设备100向节点200至700发送以伊辛形式的问题的数据,并且使节点200至700搜索对问题的解。控制设备100还为节点200至700中的每一个节点设置邻域深度。
节点200至700搜索对伊辛形式的问题的解。节点200至700例如可以是诸如计算机的信息处理设备。节点200至700搜索对从控制设备100接收到的共同问题的解。
例如,节点200至700包括搜索对伊辛形式的问题的解的加速器。加速器是一个硬件,所述硬件使用SA方法或MCMC方法例如副本交换方法来计算使由表达式(1)表示的伊辛型能量函数E(x)最小化的多个状态变量的值作为解。然而,通过节点200提供的解搜索功能可以通过软件实现。
图3是示出控制设备的硬件示例的图。
控制设备100包括CPU 101、RAM 102、HDD 103、图像信号处理单元104、输入信号处理单元105、介质读取器106、网络接口卡(NIC)107和总线108。注意,CPU 101是根据第一实施方式的处理单元12的示例。RAM 102或HDD 103是根据第一实施方式的存储单元11的示例。
CPU 101是执行程序命令的处理器。CPU 101将存储在HDD 103中的程序和数据的至少一部分加载至RAM 102中,并且执行该程序。注意,CPU 101可以包括多个处理器核。此外,控制设备100可以包括多个处理器。以下描述的处理可以使用多个处理器或处理器核并行执行。此外,多个处理器的集合有时被称为“多处理器”或简单地称为“处理器”。
RAM 102是易失性半导体存储器,其临时存储由CPU 101执行的程序和由CPU 101用于操作的数据。注意,控制设备100可以包括RAM 102以外的任何类型的存储器,或者可以包括多个存储器。
HDD 103是非易失性存储设备,其存储诸如操作系统(OS)、中间件和应用软件的软件程序以及数据。注意,控制设备100可以包括诸如闪存或固态驱动器(SSD)的另一类型的存储设备,并且可以包括多个非易失性存储设备。
图像信号处理单元104根据来自CPU 101的指令向连接至控制设备100的显示器31输出图像。作为显示器31,可以使用诸如阴极射线管(CRT)显示器、液晶显示器(LCD)、等离子体显示器或有机电致发光(OEL)显示器的任何类型的显示器。
输入信号处理单元105从连接至控制设备100的输入设备32获取输入信号,并且将所获取的输入信号输出至CPU 101。作为输入设备32,可以使用指针设备例如鼠标、触摸面板、触摸板或轨迹球、键盘、遥控器、按钮开关等。此外,可以将多种类型的输入设备连接至控制设备100。
介质读取器106是读取记录在记录介质33中的程序或数据的读取设备。作为记录介质33,例如,可以使用磁盘、光盘、磁光(MO)盘、半导体存储器等。磁盘包括软磁盘(FD)和HDD。光盘包括致密盘(CD)和数字通用盘(DVD)。
介质读取器106例如将从记录介质33读取的程序或数据复制至诸如RAM 102或HDD103的另一记录介质。例如,由CPU 101执行所读取的程序。注意,记录介质33可以是便携式记录介质,并且有时用于分配程序和数据。此外,记录介质33和HDD 103有时被称为计算机可读记录介质。
NIC 107是连接至网络30并且通过网络30与节点200至700以及另一计算机通信的接口。NIC 107例如通过电缆连接至诸如交换机或路由器的通信设备。
总线108是控制设备100的内部总线。CPU 101、RAM 102、HDD 103、图像信号处理单元104、输入信号处理单元105、介质读取器106和NIC 107连接至总线108。例如,外围部件互连高速(PCIe)总线用于总线108。
图4是示出节点的硬件示例的图。
节点200包括CPU 201、RAM 202、HDD 203、介质读取器204、加速器卡205、NIC 206和总线207。加速器卡205是第一实施方式的搜索单元13的示例。然而,节点200可以被视为第一实施方式的搜索单元13的示例。
CPU 201是执行程序命令的处理器。CPU 201将存储在HDD 203中的程序和数据的至少一部分加载至RAM 202中,并且执行该程序。注意,CPU 201可以包括多个处理器核。此外,节点200可以包括多个处理器。以下描述的处理可以使用多个处理器或处理器核并行执行。
RAM 202是易失性半导体存储器,其临时存储由CPU 201执行的程序和由CPU 201用于操作的数据。注意,节点200可以包括RAM以外的任何类型的存储器,或者可以包括多个存储器。
HDD 203是非易失性存储设备,其存储诸如OS、中间件和应用软件的软件程序以及数据。注意,节点200可以包括诸如闪存或SSD的另一类型的存储设备,并且可以包括多个非易失性存储设备。
介质读取器204是读取记录在记录介质34中的程序或数据的读取设备。例如,作为记录介质34,可以使用与记录介质33类似的记录介质。
介质读取器204例如将从记录介质34读取的程序或数据复制至诸如RAM 202或HDD203的另一记录介质。例如,由CPU 201执行所读取的程序。注意,记录介质34可以是便携式记录介质,并且有时用于分配程序和数据。此外,记录介质34和HDD 203有时被称为计算机可读记录介质。
加速器卡205是硬件加速器,其搜索对以伊辛形式表示的组合优化问题的解。加速器卡205包括GPU 211和RAM 212。GPU 211在加速器卡205中实现解搜索功能。加速器卡205可以包括多个GPU。此外,解搜索功能可以由诸如FPGA或ASIC的另一集成电路来实现。RAM212保存表达式(1)中的{Wij}和{bi}以及由GPU 211发现的解。如稍后将描述的,节点200可以包括多个加速器卡。
解决以伊辛形式的问题的硬件加速器例如加速器卡205有时被称为伊辛机器、玻尔兹曼机器、优化设备等。
NIC 206是连接至网络30并且通过网络30与控制设备100和另一计算机通信的接口。NIC 206例如通过电缆连接至诸如交换机或路由器的通信设备。
总线207是节点200的内部总线。CPU 201、RAM 202、HDD 203、介质读取器204、加速器卡205和NIC 206连接至总线207。例如,PCIe用于总线207。
图5是示出信息处理系统的功能示例的图。
控制设备100包括存储单元120、控制单元130、发送单元140、接收单元150和解输出单元160。RAM 102或HDD 103的存储区域用作存储单元120。控制单元130、发送单元140、接收单元150和解输出单元160通过CPU 101来实现,所述CPU 101执行存储在RAM 102中的程序。
节点200、300、400、500、600和700分别包括搜索单元220、320、420、520、620和720。搜索单元220至720分别由包括在节点200至700中的加速器卡实现。然而,搜索单元220、320、420、520、620和720中的至少一个可以通过相关节点的CPU实现,所述相关节点的CPU执行存储在相关节点的RAM中的程序。
存储单元120存储用于控制单元130的处理的数据。由存储单元120保存的数据包括解准确度提高率数据和邻域深度表。
解准确度提高率数据保持为针对邻域深度计算的解准确度提高率。解准确度提高率指示通过使用特定初始解为起点在相关邻域深度处搜索获得的解的能量值相对于特定初始解的增强程度。解准确度提高率越大,能量值相对于初始解的增强程度越大。
邻域深度表保存基于解准确度提高率数据的针对每个邻域深度的解准确度提高评估值。通过对解准确度提高率进行归一化并且将归一化结果进一步转化成整数来获得解准确度提高评估值。
注意,解准确度提高率可以被视为第一实施方式的“指示解准确度提高程度的指标”的示例。替选地,可以将解准确度提高评估值视为第一实施方式的“指示解准确度提高程度的指标”的示例。
控制单元130通过发送单元140将搜索的初始解和邻域深度发送至搜索单元220至720。在第一阶段中,控制单元130使用预先确定的初始邻域深度来设置搜索单元220至720中的每一个搜索单元。例如,控制单元130可以随机地确定搜索单元220至720中的每一个搜索单元的初始邻域深度。替选地,例如,当经验上已知在开始时在浅邻域(例如一个状态变量变化)中获得足够好的解时,根据问题,控制单元130可以使用预定的加权概率使相对浅的邻域更容易在第一阶段中被选择。
控制单元130从搜索单元220至720中的每一个搜索单元获取用于在所设置的邻域深度处的搜索的初始解、通过搜索获得的最佳解以及获得最佳解花费的搜索时间。最佳解是通过搜索获得的解中具有最小能量值的解。控制单元130计算针对在搜索单元220至720中设置的邻域深度的解准确度提高率,并且将计算出的解准确度提高率存储在存储单元120中。假设从相关搜索单元获得的初始解的能量值由E1表示,最佳解的能量值由E2表示,以及搜索时间由T表示,则解准确度提高率v表示为v=(E1-E2)/T。
此外,控制单元130基于针对搜索单元220至720中的每一个搜索单元的邻域深度计算的解准确度提高率v,计算针对每个邻域深度的解准确度提高指标,并且将计算出的解准确度提高指标登记在邻域深度表中。控制单元130基于邻域深度表确定要在搜索单元220至720中的每一个搜索单元中设置的邻域深度,并且通过发送单元140将所确定的邻域深度发送至搜索单元220至720中的每一个搜索单元。另外,控制单元130生成用于下一次搜索的初始解,以通过发送单元140将生成的初始解发送至搜索单元220至720,并且使搜索单元220至720在相关邻域深度处执行搜索。
控制单元130以预定次数或预定时间段重复执行以上处理,并且当预定次数或预定时间段结束时将从搜索单元220至720获取的解中的最佳解输出至解输出单元160作为最终解,所述最佳解是具有最小能量值的解。
发送单元140将已经从控制单元130获取的关于要在搜索单元220至720中设置的邻域深度和初始解的信息发送至搜索单元220至720。注意,可以说,由发送单元140向搜索单元220至720发送信息是分别向节点200至700发送信息。
当搜索单元220至720中的每一个搜索单元的搜索完成时,接收单元150从相关搜索单元接收搜索的初始解、通过搜索获得的最小解和搜索的搜索时间,并且将接收到的项提供至控制单元130。注意,可以说,通过接收单元150从搜索单元220至720接收信息分别是从节点200至700接收信息。
解输出单元160从控制单元130获取通过在搜索单元220至720中的搜索最终获得的解,并且输出所获取的解。解输出单元160例如在显示器31上显示通过将最终解转换成针对组合优化问题的解的格式而获得的内容,或者通过网络30向客户端计算机等发送指示该内容的信息。
搜索单元220至720从控制设备100接收初始解和邻域深度,并且使用接收到的初始解和邻域深度搜索解。当在相关邻域深度处进行的搜索完成时,搜索单元220至720中的每一个搜索单元将初始解、通过搜索获得的最佳解和搜索时间发送至控制设备100。
接下来,将描述通过搜索单元220至720进行的搜索中的“邻域”。
图6是示出其中通过多个元素的排列表示解的示例的图。
在此,例如,将考虑通过N个元素的排列表示解的情况,例如,旅行推销员问题。在这种情况下,可以在一对一的对应关系中考虑排列和N×N位,其为列的和为1以及行的和为1的状态变量的矩阵。将示出N=5的情况。
排列41通过由五个数字“1”至“5”表示元素来表示矩阵42。例如,对于从排列41的左侧进行计数的第i个元素的数字j,矩阵42的第i行和第j列的元素为1,并且矩阵42的其他元素为0。
诸如排列41的排列可用于说明邻域。存在多种类型的邻域。
第一示例是插入邻域。在插入邻域中,一个元素被插入另一位置处。
例如,通过在排列(1,2,3,4,5)中的2与3之间插入5来获得排列(1,2,5,3,4)。
第二示例是交换邻域。在交换邻域中,两个元素被交换。
例如,通过在排列(1,2,3,4,5)中交换2和4来获得排列(1,4,3,2,5)。
第三示例是λ-交换邻域。在λ-交换邻域中,λ(<N)元素被替换。注意,以上提及的交换邻域等价于2-交换邻域。
例如,排列(1,5,2,4,3)是通过在排列(1,2,3,4,5)中使用5,2,3替换2,3,5获得的。
第四示例是λ-插入邻域。在λ-插入邻域中,连续的λ(<N)元素被插入其他位置处。
例如,排列(4,1,2,3,5)是通过在排列(1,2,3,4,5)中的4与5之间插入1,2,3获得的。
第五示例是λ-opt邻域。
在此,排列(忽略顺序)中的一对相邻元素称为分支。由其中不同分支的数目不超过λ的分支组成的邻域称为λ-opt邻域。接下来,将示出在λ=2的情况下的2-opt邻域的示例。
图7是示出2-opt邻域的示例的图。
例如,图51表示排列(1,2,3,4,5,6,7,8)中的相邻元素如何通过分支链接。图52表示排列(1,2,6,5,4,3,7,8)中的相邻元素如何通过分支链接。
例如,在排列(1,2,6,5,4,3,7,8)中,仅链接(2,6)的分支和链接(3,7)的分支是与排列(1,2,3,4,5,6,7,8)的分支不同的分支。因此,排列(1,2,6,5,4,3,7,8)位于排列(1,2,3,4,5,6,7,8)的2-opt邻域内。
搜索单元220至720可以使用上述第一示例至第五示例的方法等动态地修改用于搜索的邻域深度。例如,其中作为一位的一个状态变量被反转的状态,或者通过将一些位与其他位交换获得的状态被定义为一个状态转换中的邻域。这使得搜索能够依据最优性在有希望的区域继续。在不考虑搜索所花费的时间的情况下,认为随着解的准确度变得更高而加深邻域是更好的。
例如,可以想到将上述第一示例至第五示例中的邻域中的至少两个邻域组合以形成一个邻域。随着组合邻域的数目扩大,邻域变得更深,这意味着邻域深度的值变得更大。
图8是示出解准确度提高率数据的示例的图。
解准确度提高率数据121存储在存储单元120中。解准确度提高率数据121是针对搜索单元220至720中的每一个搜索单元的邻域深度计算的解准确度提高率的计算结果的数据。
在图8的解准确度提高率数据121的示例中,在6个搜索单元220至720中,以邻域深度“1”设置的搜索单元的数目为2,以邻域深度“2”设置的搜索单元的数目为3,以及以邻域深度“3”设置的搜索单元的数目为1。
例如,解准确度提高率数据121保存以下针对每个邻域深度的解准确度提高率的数据。
第一个是针对邻域深度“1”的解准确度提高率“1200”。
第二个是针对邻域深度“1”的解准确度提高率“800”。
第三个是针对邻域深度“2”的解准确度提高率“500”。
第四个是针对邻域深度“2”的解准确度提高率“100”。
第五个是针对邻域深度“2”的解准确度提高率“1800”。
第六个是针对邻域深度“3”的解准确度提高率“3000”。
控制单元130基于解准确度提高率数据121计算解准确度提高评估值。
图9是示出解准确度提高评估值的计算示例的图。
控制单元130计算出平均提高率,所述平均提高率是针对每个邻域深度的解准确度提高率的平均值。在图8的解准确度提高率数据121中,邻域深度“1”的平均提高率为(1200+800)/2=1000。邻域深度“2”的平均提高率为(500+100+1800)/3=800。邻域深度“3”的平均提高率为3000。
控制单元130归一化针对每个邻域深度的平均提高率。例如,控制单元130将每个邻域深度的平均提高率除以邻域深度“2”的平均提高率“800”,从而以最小值作为参考来对每个邻域深度的平均提高率进行归一化,所述邻域深度“2”的平均提高率“800”是针对每个邻域深度的平均提高率中的最小值。然后,邻域深度“1”的平均提高率“1000”的归一化值是1.25。邻域深度“2”的平均提高率“800”的归一化值是1。邻域深度“3”的平均提高率“3000”的归一化值为3.75。
控制单元130通过对小数点后的值进行舍入,进一步将每个邻域深度的归一化值转换成整数,从而计算出解准确度提高评估值。例如,邻域深度“1”的解准确度提高评估值为1。邻域深度“2”的解准确度提高评估值为1。邻域深度“3”的解准确度提高评估值为4。
在以上计算中计算出的平均提高率、归一化值和解准确度提高评估值被保存在存储单元120中。
控制单元130在邻域深度表中登记解准确度提高评估值的计算结果。
图10是示出邻域深度表的示例的图。
邻域深度表122存储在存储单元120中。邻域深度表122包括邻域深度项和解准确度提高评估值的项。邻域深度登记在邻域深度的项中。解准确度提高评估值登记在解准确度提高评估值的项中。
例如,在邻域深度表122中,针对邻域深度“1”登记解准确度提高评估值“W[1]=1”。在此,变量W[d](d为等于或大于1的整数)表示邻域深度“d”的解准确度提高评估值。
此外,针对邻域深度“2”的解准确度提高评估值“W[2]=1”和针对邻域深度“3”的解准确度提高评估值“W[3]=4”也登记在邻域深度表122中。
接下来,将描述信息处理系统2的处理过程。首先,控制设备100将伊辛形式的问题的数据和用于搜索的各种信息(例如,由每个节点的搜索单元用于执行SA方法或副本交换方法的温度参数)发送至搜索单元220至720。然后,控制设备100执行以下过程。
图11是示出控制单元的处理示例的流程图。
(S10)控制单元130确定邻域深度的范围。邻域深度的范围由用于搜索的邻域深度的最小值和最大值规定。例如,邻域深度的范围基于从针对相同类型问题的过去实际搜索结果获得的知识数据或用户指定的邻域深度的范围来确定。控制单元130将搜索请求的数目初始化为零。
(S11)控制单元130将搜索请求的数目加1。
(S12)控制单元130验证搜索请求的数目是否等于或小于上限。当搜索请求的数目等于或小于上限时,控制单元130将处理前进至步骤S13。当搜索请求的数目大于上限时,控制单元130将处理前进至步骤S20。注意,搜索请求的数目的上限由用户预设。
(S13)控制单元130生成初始解。可以预先给定或者可以由控制单元130通过任何方法生成第一次的初始解,即当搜索请求的数目为1时的初始解。此外,例如,由控制单元130基于通过搜索单元220至720进行的先前搜索中获得的解来生成在搜索请求的数目为2或大于2时的初始解。例如,控制单元130可以基于先前获得的解中的最佳解来生成初始解。控制单元130可以通过基于预定规则修改最佳解的一些状态变量来生成初始解。控制单元130可以对搜索单元220至720中的每一个搜索单元采用相同的初始解,或者可以采用不同的初始解。
(S14)控制单元130选择每个搜索单元的邻域深度。如前所述,当搜索请求的数目为1时,控制单元130可以随机地确定搜索单元220至720中的每一个搜索单元的初始邻域深度,或者可以使用预定的加权概率使特定邻域更容易被选择。当搜索请求的数目为2或大于2时,控制单元130基于邻域深度表122选择搜索单元220至720中的每一个搜索单元的邻域深度。例如,控制单元130基于随机数概率性地选择搜索单元220至720中的每一个搜索单元的邻域深度,使得所选择的邻域深度的数目接近邻域深度表122中保存的解准确度提高评估值的每个比率。在图10的邻域深度表122的示例中,为特定搜索单元选择邻域深度“1”的概率或比例是1/6。此外,为特定搜索单元选择邻域深度“2”的概率是1/6。此外,为特定搜索单元选择邻域深度“3”的概率为4/6=2/3。
(S15)控制单元130通过发送单元140将要在搜索单元220至720中的每一个搜索单元中设置的邻域深度和初始解发送至每个搜索单元。
(S16)控制单元130通过接收单元150从搜索单元220至720接收在搜索单元220至720中的每一个搜索单元中的解和搜索时间的计算结果。解的计算结果包括初始解、此次的搜索中获得的最佳解和搜索时间。
(S17)当作为从搜索单元220至720接收的解的接收到的解包含到目前为止获得的解中的最佳解,该最佳解比保存在存储单元120中的最佳解更好时,控制单元130更新保存在存储单元120中的最佳解。
(S18)控制单元130设置解准确度提高评估值w[k]=0(k=1,……,n)。
(S19)控制单元130累积邻域深度k处的搜索单元的(初始解值E-最佳解值E)/搜索时间,并且将通过将累积的值除以邻域深度k处的搜索单元的数目而获得的平均值设置为w[k]。注意,“初始解值E”指示相关搜索的初始解的能量值。此外,“最佳解值E”指示在相关搜索中获得的最佳解的能量值。如上所述,控制单元130可以归一化w[k],或者当w[k]不是整数时,可以通过例如使小数点后的值向下舍入或向上舍入来将w[k]转换成整数。然后,控制单元130将处理前进至步骤S11。
(S20)控制单元130向解输出单元160提供保存在存储单元120中的最佳解。解输出单元160输出从控制单元130获得的最佳解。例如,解输出单元160可以在显示器31上显示通过将最终解转换成组合优化问题的解的格式而获得的内容,或者可以通过网络30将指示该内容的信息发送至客户端计算机等。然后,控制单元130的处理结束。
接下来,将描述搜索单元220至720的处理过程。下文中,主要示出搜索单元220,但是搜索单元320至720也执行与搜索单元220的过程类似的过程。
图12是示出搜索单元的处理示例的流程图。
(S30)搜索单元220从控制设备100接收邻域深度和初始解。
(S31)搜索单元220在指定的邻域深度处从接收到的初始解执行搜索,直至满足设置的结束条件为止。在步骤S31中,采用用于从搜索开始到满足结束条件的搜索所花费的时间作为搜索时间。
(S32)搜索单元220使用在步骤S31中通过搜索达到的解(即搜索中的最佳解)和搜索时间来响应控制设备100。然后,搜索单元220的处理结束。
在此,步骤S31中的搜索时间的特征取决于在搜索单元220至720中的每一个搜索单元中实现的算法。对于这个算法,可以想到下面的示例。
第一示例是相关搜索单元在执行特定数目的状态转换之后结束搜索的情况。在第一示例中,邻域越深,搜索所需的时间越长,但是解的准确度也会提高。邻域深度与搜索时间之间的相关性几乎没有变化。
第二示例是相关搜索单元执行搜索达特定时间以结束搜索的情况。在第二示例中,由于搜索时间是一致的,所以解的准确度取决于“哪个邻域深度是最佳的”。当搜索单元220至720的搜索时间有规律地具有一致的值时,控制单元130不必从搜索单元220至720获取搜索时间。在这种情况下,控制单元130可以在用于计算解准确度提高率的表达式中将T设置为一致值或T=1。
第三示例是相关搜索单元在特定时间段或特定次数内没有出现解的增强时结束搜索的情况。在第三示例中,邻域越深,搜索所花费的时间越长,但是解的准确度也可以提高。然而,不存在如第一示例中的固定的相关性。
在以上第一示例至第三示例中的任何一个示例中,例如,通过取解的搜索时间和能量值的增强量的比率,可以估计获得良好搜索性能的邻域深度。
注意,尽管指示了在一个节点中设置一个搜索单元的示例,但是可以在一个节点中设置多个搜索单元。接下来,将描述节点200的另一硬件示例。
图13是示出节点的另一硬件示例的图。
除了图4所示的硬件之外,节点200可以包括加速器卡205a。加速器卡205a连接至总线207。
加速器卡205a是硬件加速器,其搜索针对以伊辛形式表示的组合优化问题的解。加速器卡205a包括GPU 211a和RAM 212a。GPU 211a实现加速器卡205a中的解搜索功能。加速器卡205a可以包括多个GPU。此外,可以通过诸如FPGA或ASIC的另一集成电路来实现解搜索功能。RAM212a保存表达式(1)中的{Wij}和{bi}以及通过GPU 211a找到的解。
加速器卡205a在节点200中用作搜索单元。以这种方式,可以通过在节点200上安装多个加速器卡来在节点200中实现包括搜索单元220的多个搜索单元。节点200中的多个搜索单元中的至少一个搜索单元可以使用与节点200中的多个搜索单元中的其他搜索单元的邻域深度不同的邻域深度来执行搜索。此外,可以通过CPU 201来实现节点200中的多个搜索单元中的至少一个搜索单元,所述CPU 201执行存储在RAM 202中的程序。
节点300至700还可以通过使用与节点200的硬件类似的硬件来实现多个搜索单元。
另外,节点200可以具有控制设备100的功能。例如,CPU 201可以通过执行存储在RAM 202中的程序来呈现控制单元130、发送单元140、接收单元150和解输出单元160的功能。例如,通过在节点200中设置多个搜索单元,也可以仅通过节点200来实现第一实施方式的信息处理系统1的功能和第二实施方式的信息处理系统2的功能。这意指诸如安装有加速器卡205和205a的节点200的单个信息处理设备可以是第一实施方式的信息处理系统1的示例。在这种情况下,可以将CPU 201视为第一实施方式的处理单元12的示例。此外,RAM 202或HDD 203可以被视为第一实施方式的存储单元11的示例。
以这种方式,信息处理系统2通过节点200至700中的加速器并行地搜索最优解。在信息处理系统2中,可以通过基于节点200至700中的每一个节点中的解准确度的提高率来调整邻域的深度(即邻域深度)并且使节点200至700协同操作来改善计算解的性能。
顺便提及,可以想到通过仅在邻域深度1处重复尝试状态转换来搜索解,但是在某些情况下难以达到全局最优解。
作为示例,将考虑由表达式(3)表示的问题。
由表达式(3)表示的问题是计算出使y(x)最小化的状态x的问题。状态x由三个状态变量(x1,x2,x3)表示。假设初始解x=(x1,x2,x3)=(0,0,0),在邻域深度1处(即1位翻转)的状态转换中,给出了由表达式(4)表示的用于下一状态的三个候选和y(x)的三个值。
在表达式(4)中的三个候选中,x=(1,0,0)的y(x)值最小且最佳。因此,例如,初始解转换成状态x=(1,0,0)。除了在下一个1位翻转中返回至状态x=(0,0,0)之外,还给出了表达式(5)中的用于下一个状态的两个候选和y(x)的两个值。
将表达式(5)与y(1,0,0)=-100进行比较,y(1,0,0)最小。因此,状态x=(1,0,0)被采用为局部最优解。然而,在这个问题的情况下,通过相对于初始解同时翻转状态变量x2和x3获得的x=(0,1,1)被给定为全局最优解。值y(0,1,1)由表达式(6)表示。
y(0,1,1)=500+1000-2×10000=-18500 (6)
同时,如表达式(4)所指示的,x=(0,1,0)和x=(0,0,1)的y(x)大于x=(1,0,0)的情况,并且因此初始解难以转换成x=(0,1,0)或x=(0,0,1)。因此,在通过仅1位翻转的状态转换进行的搜索中,难以达到位于x=(0,1,0)和x=(0,0,1)前面的全局最优解x=(0,1,1)。
因此,可以想到在搜索中使每一个状态转换要改变的状态变量的数目(即邻域深度)是可变的,并且使邻域深度逐步变大。然而,在这种情况下,可以提高获得的解的准确度,但是用于搜索所花费的时间增加。例如,说明如下。
作为示例,将考虑背包问题。背包问题是下述的问题:计算出在要放入背包中的物品的组合中的使总值最大化的组合,所述背包具有相对于容量例如内容物的重量或体积的容量上限C。存在N个物品(N为等于或大于2的整数)。第i个物品i(i为等于或大于1的整数)的容量被假设为wi,以及物品i的值被假设为vi。表达式wi<C是针对任何i建立的。
背包问题的能量函数表示背包中物品的值的和,并且以使用wi、vi和C的状态变量xi的二次形式来公式化。例如,状态变量xi表示将物品i放入背包中的“1”,以及不将物品i放入背包中的“0”。
下面的方法可以被视为用于背包问题的搜索策略。
在第一阶段中,将具有高的值和容量的有效物品逐一地装入背包中。在这种情况下,状态转移试验的次数最多为N。第一阶段中的邻域深度为“1”。这意指由状态转换生成汉明距离“1”的状态变化。当背包内容物的容量的和接近容量上限C,并且不再允许添加未选择的物品时,第二阶段启动。
在第二阶段中,将已经装入背包中的一个物品移除,并且将另一物品添加至背包中。当在背包中装入K个物品时,状态转换试验的数目约为K*(N-K)。第二阶段中的邻域深度为“2”。这意指通过状态转换生成汉明距离“2”的状态变化。当值在第二阶段中不再增强时,第三阶段启动。
在第三阶段中,将已经装入背包中的两个物品移除,并且将另一物品添加至背包中。当在背包中装入K个物品时,状态转换试验的数目约为K(K-1)*(N-K)(N-K-1)。第三阶段中的邻域深度为“4”。这意指由状态转换生成汉明距离“4”的状态变化。当值在第三阶段中不再增强时,下一阶段将进一步启动。
以这种方式,当使得邻域深度可变并且使得邻域深度逐步增大时,获得的解的准确度可以提高,但是针对搜索采用的模式的数目被扩大并且搜索所花费的时间增加。同时,根据问题、搜索情况等适当地确定邻域深度是不容易的。
与此相反,控制单元130基于作为在不同邻域深度处的搜索结果而获得的解来计算针对每个邻域深度的解准确度提高指标。然后,控制单元130根据相关问题、当前搜索情况等验证每个邻域深度对解准确度的贡献,并且基于针对每个邻域深度的解准确度提高指标来优先选择被评估成显著地有助于提高解准确度的邻域深度。控制单元130可以通过使搜索单元220至720使用所选择的邻域深度执行搜索来使搜索单元220至720高效地执行搜索。因此,提高了搜索单元220至720达到更好的解的可能性,并且提高了通过搜索单元220至720计算出解的整体性能。例如,可以提高在预定时间内达到最优解或能量值小于预先规定的目标值的解的可能性。
上述信息处理系统2执行例如下面的处理。
搜索单元220至720中的每一个搜索单元搜索针对由包含多个状态变量的能量函数表示的问题的解。搜索单元220至720中的每一个搜索单元设置有邻域深度,所述邻域深度指示在搜索中每一个状态转换要改变的状态变量的数目。
控制单元130获取针对在第一邻域深度处的搜索的初始解的能量函数的第一值和针对通过在第一邻域深度处的搜索获得的第一解的能量函数的第二值。控制单元130基于第一值和第二值计算第一指标,所述第一指标指示通过第一邻域深度的解准确度的提高程度。
控制单元130获取针对在第二邻域深度处的搜索的初始解的能量函数的第三值和针对通过在第二邻域深度处的搜索获得的第二解的能量函数的第四值。控制单元130基于第三值和第四值计算第二指标,所述第二指标指示通过第二邻域深度的解准确度的提高程度。
控制单元130基于第一指标和第二指标输出要在搜索单元220至720中设置的邻域深度。
通过使用以这种方式输出的邻域深度用于由搜索单元220至720进行的搜索,可以高效地执行搜索。例如,可以实现根据问题设置适当的邻域深度。替选地,当例如使用由搜索单元220至720在此次的搜索时段中获得的最佳解来生成用于搜索单元220至720的下一搜索时段的初始解时,可以实现根据搜索情况动态调整适当的邻域深度。
在此,如第二实施方式所示,在基于上述第一指标和第二指标输出要在搜索单元220至720中设置的邻域深度的处理中,可以使用包括第一指标和第二指标的三个或更多个指标,所述三个或更多个指标是针对三个或更多个邻域深度计算出的。
控制单元130基于第一值与第二值之间的差来计算第一指标。因此,可以相对于初始解与第一解之间的能量差适当地评估指示相对于第一邻域深度的解准确度的提高程度的第一指标。例如,可以评估出,能量差越大——这意指能量值的增强范围越大,则解准确度的提高程度越高。
控制单元130可以进一步获取在第一邻域深度处进行的搜索所花费的时间,即搜索时间,并且基于第一值、第二值和搜索时间计算第一指标。因此,当搜索单元220至720中的搜索时间不同时,可以通过考虑搜索时间来适当地评估第一指标。
例如,控制单元130基于通过将第一值与第二值之间的差除以搜索时间而获得的第五值计算第一指标。因此,可以相对于初始解与第一解之间的能量差以及搜索时间来适当地评估指示相对于第一邻域深度的解准确度的提高程度的第一指标。这意指能量差越大并且搜索时间越短,解准确度的提高程度越高。注意,控制单元130可以采用第五值本身作为第一指标。
控制单元130基于分别指示解准确度提高程度的指标的平均值来计算第一指标,所述指标是针对通过第一邻域深度处的多个搜索获得的包括第一解的多个解中的每一个解计算的。因此,可以提高指示相对于第一邻域深度的解准确度的提高程度的第一指标的评估准确度。控制单元130可以采用平均值作为第一指标,或者如所示,可以采用通过将相对于多个邻域深度的平均值归一化获得的归一化值或通过进一步将归一化值转换成整数而获得的值作为第一指标。
此外,控制单元130可以根据在第一邻域深度处从共同初始解执行的多个搜索的结果计算第一指标。因此,可以提高第一指标的评估准确度。然而,针对多个搜索中的每个搜索的初始解中的至少两个初始解可以不同。
注意,控制单元130还可以通过与用于第一指标的方法类似的方法来计算第二指标。
控制单元130基于第一指标和第二指标优先选择具有大的解准确度提高程度的邻域深度,并且输出所选择的邻域深度。因此,可以适当输出被认为显著地有助于提高解准确度的邻域深度。例如,在搜索单元220至720中,可以使设置有被认为显著地有助于提高解准确度的邻域深度的搜索单元的比例更大。
搜索单元220至720之中的至少两个搜索单元并行地执行在第一邻域深度处的搜索和在第二邻域深度处的搜索。通过由两个或更多个搜索单元并行地执行搜索,可以更高效地执行搜索。
控制单元130基于分别指示解准确度的提高程度的指标的比率来选择要在多个搜索单元中的每个搜索单元中设置的邻域深度,所述指标是针对包括第一邻域深度和第二邻域深度的多个邻域深度中的每一个邻域深度计算出的。因此,可以适当地输出被认为显著地有助于提高解准确度的邻域深度。例如,在搜索单元220至720中,可以使设置有被认为显著地有助于提高解准确度的邻域深度的搜索单元的比例更大。
控制单元130相对于共同初始解计算第一指标和第二指标。因此,可以针对邻域深度和初始解的集合来计算指示解准确度的提高程度的指标,并且可以提高指标的评估准确度。因此,例如,可以根据问题、搜索情况等为搜索单元220至720设置更合适的邻域深度。因此,可以更高效地执行搜索。然而,可以相对于不同的初始解来计算第一指标和第二指标。
当将搜索单元220至720中的邻域深度的设置和由搜索单元220至720进行的搜索重复预定次数或达预定时间段时,控制单元130输出在从搜索单元220至720获得的解中具有能量函数的最小值的解。因此,可以适当地获取针对组合优化问题的解。
注意,可以通过使处理单元12执行程序来实现根据第一实施方式的信息处理。此外,可以通过使CPU 101或CPU 201执行程序来实现根据第二实施方式的信息处理。程序可以记录在计算机可读记录介质33和34中。
例如,可以通过分配其中记录了程序的记录介质33和34来分配程序。替选地,所述程序可以存储在另一计算机中并且经由网络分配。例如,计算机可以将记录在记录介质33或34中或者从另一计算机接收的程序存储(安装)在诸如RAM 102或HDD 103的存储设备中,从存储设备读取程序,并且执行程序。
本文中提供的所有示例和条件语言意在用于帮助读者理解本发明和由发明人为了促进本领域技术贡献的构思的教导目的,并且不应被解释为限于这样的具体叙述的示例和条件,说明书中这样的示例的组织也不涉及对本发明的优势和劣势的展示。尽管已经详细地描述了本发明的一个或更多个实施方式,但是应当理解的是,在不脱离本发明的精神和范围的情况下,可以对本发明做出各种改变、替换和变换。
Claims (13)
1.一种信息处理系统,包括:
搜索电路,其被配置成:
对于由包含多个状态变量的能量函数表示的问题,获得邻域深度,所述邻域深度指示在针对所述问题的解的搜索中每一个状态转换要改变的所述状态变量的数目,以及
通过使用所获得的邻域深度执行针对所述问题的所述解的搜索;以及
处理电路,其被配置成:
获取针对在第一邻域深度处的搜索的初始解的所述能量函数的第一值,以及针对通过在所述第一邻域深度处的搜索获得的第一解的所述能量函数的第二值,
基于所述第一值和所述第二值计算第一指标,所述第一指标指示通过所述第一邻域深度的解准确度的提高程度,
获取针对在第二邻域深度处的搜索的初始解的所述能量函数的第三值,以及针对通过在所述第二邻域深度处的搜索获得的第二解的所述能量函数的第四值,
基于所述第三值和所述第四值计算第二指标,所述第二指标指示通过所述第二邻域深度的所述解准确度的提高程度,以及
基于所述第一指标和所述第二指标输出要在所述搜索电路中设置的所述邻域深度。
2.根据权利要求1所述的信息处理系统,其中,所述处理电路基于所述第一值与所述第二值之间的差计算所述第一指标。
3.根据权利要求1所述的信息处理系统,其中,所述处理电路还获取在所述第一邻域深度处的搜索所花费的时间,并且基于所述第一值、所述第二值和所述时间计算所述第一指标。
4.根据权利要求3所述的信息处理系统,其中,所述处理电路基于通过将所述第一值与所述第二值之间的差除以所述时间而获得的第五值来计算所述第一指标。
5.根据权利要求1所述的信息处理系统,其中,所述处理电路基于分别指示所述解准确度的提高程度的指标的平均值计算所述第一指标,所述指标是针对通过在所述第一邻域深度处的多个搜索获得的包括所述第一解的多个解中的每个解计算的。
6.根据权利要求5所述的信息处理系统,其中,使用共同的所述初始解执行在所述第一邻域深度处的所述多个搜索。
7.根据权利要求1所述的信息处理系统,其中,所述处理电路基于所述第一指标和所述第二指标优先地选择具有大的所述解准确度的提高程度的邻域深度,并且输出所选择的邻域深度。
8.根据权利要求1所述的信息处理系统,包括:
包括所述搜索电路的多个搜索电路,其中,
所述多个搜索电路中的至少两个搜索电路并行地执行在所述第一邻域深度处的搜索和在所述第二邻域深度处的搜索。
9.根据权利要求8所述的信息处理系统,其中,所述处理电路基于分别指示所述解准确度的提高程度的指标的比率来选择要在所述多个搜索电路中的每个搜索电路中设置的所述邻域深度,所述指标是针对包括所述第一邻域深度和所述第二邻域深度的多个邻域深度中的每个邻域深度计算的。
10.根据权利要求1所述的信息处理系统,其中,所述处理电路相对于共同的所述初始解来计算所述第一指标和所述第二指标。
11.根据权利要求1所述的信息处理系统,其中,当将所述搜索电路中的所述邻域深度的设置和通过所述搜索电路的搜索重复预定次数时或重复达预定时间段时,所述处理电路输出在从所述搜索电路获得的解中具有所述能量函数的最小值的解。
12.一种信息处理方法,包括:
使搜索电路,对于由包含多个状态变量的能量函数表示的问题,获得邻域深度,所述邻域深度指示在针对所述问题的解的搜索中每一个状态转换要改变的所述状态变量的数目;
使所述搜索电路通过使用所获得的邻域深度来执行针对所述问题的所述解的搜索;
获取针对在第一邻域深度处的搜索的初始解的所述能量函数的第一值,以及针对通过在所述第一邻域深度处的搜索获得的第一解的所述能量函数的第二值;
基于所述第一值和所述第二值计算第一指标,所述第一指标指示通过所述第一邻域深度的解准确度的提高程度;
获取针对在第二邻域深度处的搜索的初始解的所述能量函数的第三值,以及针对通过在所述第二邻域深度处的搜索获得的第二解的所述能量函数的第四值;
基于所述第三值和所述第四值计算第二指标,所述第二指标指示通过所述第二邻域深度的所述解准确度的提高程度;以及
基于所述第一指标和所述第二指标输出要在所述搜索电路中设置的所述邻域深度。
13.一种非暂态计算机可读存储介质,其用于存储使处理器执行处理的程序,所述处理包括:
使搜索电路,对于由包含多个状态变量的能量函数表示的问题,获得邻域深度,所述邻域深度指示在针对所述问题的解的搜索中每一个状态转换要改变的所述状态变量的数目;
使所述搜索电路通过使用所获得的邻域深度来执行针对所述问题的所述解的搜索;
获取针对在第一邻域深度处的搜索的初始解的所述能量函数的第一值,以及针对通过在所述第一邻域深度处的搜索获得的第一解的所述能量函数的第二值;
基于所述第一值和所述第二值计算第一指标,所述第一指标指示通过所述第一邻域深度的解准确度的提高程度;
获取针对在第二邻域深度处的搜索的初始解的所述能量函数的第三值,以及针对通过在所述第二邻域深度处的搜索获得的第二解的所述能量函数的第四值;
基于所述第三值和所述第四值计算第二指标,所述第二指标指示通过所述第二邻域深度的所述解准确度的提高程度;以及
基于所述第一指标和所述第二指标输出要在所述搜索电路中设置的所述邻域深度。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020118382A JP2022015503A (ja) | 2020-07-09 | 2020-07-09 | 情報処理システム、情報処理方法及びプログラム |
JP2020-118382 | 2020-07-09 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113919504A true CN113919504A (zh) | 2022-01-11 |
Family
ID=75302213
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110381598.3A Pending CN113919504A (zh) | 2020-07-09 | 2021-04-09 | 信息处理系统、信息处理方法及计算机可读存储介质 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20220012291A1 (zh) |
EP (1) | EP3937090A1 (zh) |
JP (1) | JP2022015503A (zh) |
CN (1) | CN113919504A (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023248414A1 (ja) * | 2022-06-23 | 2023-12-28 | 日本電気株式会社 | 求解装置、求解方法および求解プログラム |
CN117407179B (zh) * | 2023-12-15 | 2024-04-02 | 成都凯迪飞研科技有限责任公司 | 一种基于协同处理的加速子卡处理方法及系统 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2526397B2 (ja) | 1993-04-19 | 1996-08-21 | 工業技術院長 | 組合せ最適化装置 |
JP2004070662A (ja) | 2002-08-06 | 2004-03-04 | Mitsubishi Electric Corp | 状態空間の探索方式 |
JP7206476B2 (ja) * | 2018-09-14 | 2023-01-18 | 富士通株式会社 | 最適化装置、最適化装置の制御方法及び最適化装置の制御プログラム |
JP7196489B2 (ja) * | 2018-09-19 | 2022-12-27 | 富士通株式会社 | 最適化問題演算プログラム、最適化問題演算方法および最適化問題演算装置 |
JP7155794B2 (ja) * | 2018-09-19 | 2022-10-19 | 富士通株式会社 | 最適化問題演算プログラム、最適化問題演算方法および最適化問題演算装置 |
JP7063211B2 (ja) * | 2018-09-19 | 2022-05-09 | 富士通株式会社 | 最適化問題演算プログラム、最適化問題演算方法および最適化問題演算装置 |
JP7108185B2 (ja) * | 2018-11-22 | 2022-07-28 | 富士通株式会社 | 最適化装置および最適化装置の制御方法 |
JP2019160293A (ja) | 2019-01-09 | 2019-09-19 | 富士通株式会社 | 最適化装置及び最適化装置の制御方法 |
JP7201911B2 (ja) * | 2019-05-13 | 2023-01-11 | 富士通株式会社 | 最適化装置および最適化装置の制御方法 |
JP7396024B2 (ja) * | 2019-12-20 | 2023-12-12 | 日本電気株式会社 | 情報処理装置、情報処理方法及びプログラム |
JP2021131611A (ja) * | 2020-02-18 | 2021-09-09 | 富士通株式会社 | 情報処理装置、プログラム、情報処理方法および情報処理システム |
-
2020
- 2020-07-09 JP JP2020118382A patent/JP2022015503A/ja not_active Withdrawn
-
2021
- 2021-03-25 US US17/211,902 patent/US20220012291A1/en active Pending
- 2021-03-29 EP EP21165516.2A patent/EP3937090A1/en not_active Withdrawn
- 2021-04-09 CN CN202110381598.3A patent/CN113919504A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
JP2022015503A (ja) | 2022-01-21 |
EP3937090A1 (en) | 2022-01-12 |
US20220012291A1 (en) | 2022-01-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11262717B2 (en) | Optimization device and control method of optimization device based on temperature statistical information | |
Koch et al. | Tuning and evolution of support vector kernels | |
US8010535B2 (en) | Optimization of discontinuous rank metrics | |
US20210256179A1 (en) | Information processing method and information processing system | |
US11631006B2 (en) | Optimization device and control method of optimization device | |
US20240020543A1 (en) | Glp-1/gip dual agonists | |
Gortazar et al. | Black box scatter search for general classes of binary optimization problems | |
CN113919504A (zh) | 信息处理系统、信息处理方法及计算机可读存储介质 | |
JP7319539B2 (ja) | 組合せ最適化装置、組合せ最適化方法および組合せ最適化プログラム | |
US7730000B2 (en) | Method of developing solutions for online convex optimization problems when a decision maker has knowledge of all past states and resulting cost functions for previous choices and attempts to make new choices resulting in minimal regret | |
US20210271274A1 (en) | Information processing apparatus, information processing method, and non-transitory computer-readable storage medium | |
CA3188066A1 (en) | Methods and systems for hyperparameter tuning and benchmarking | |
US20200363848A1 (en) | Optimization device and method of controlling optimization device | |
US20200134453A1 (en) | Learning curve prediction apparatus, learning curve prediction method, and non-transitory computer readable medium | |
JP7181454B2 (ja) | 最適化装置、最適化装置の制御方法および最適化装置の制御プログラム | |
CN112905809B (zh) | 知识图谱学习方法和系统 | |
US20210334332A1 (en) | Information processing apparatus, information processing method, and non-transitory computer-readable storage medium for storing program | |
EP4187448A1 (en) | Information processing apparatus, information processing method, and program | |
US20220366011A1 (en) | Non-transitory computer-readable storage medium and information processing apparatus | |
US20240111833A1 (en) | Data processing apparatus and data processing method | |
US20230169386A1 (en) | Information processing apparatus, information processing method, and computer-readable recording medium storing program of searching for parameter | |
EP4235518A1 (en) | Data processing program, data processing device, and data processing method | |
US20230041386A1 (en) | Non-transitory computer-readable storage medium, data processing method, and data processing apparatus | |
JP2022003484A (ja) | 情報処理装置、回帰モデル生成方法、及び回帰モデル生成プログラム | |
CN113656646A (zh) | 搜索图神经网络结构的方法和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |