CN113391841A - 信息处理系统、信息处理方法、信息处理程序和装置 - Google Patents

信息处理系统、信息处理方法、信息处理程序和装置 Download PDF

Info

Publication number
CN113391841A
CN113391841A CN202110175873.6A CN202110175873A CN113391841A CN 113391841 A CN113391841 A CN 113391841A CN 202110175873 A CN202110175873 A CN 202110175873A CN 113391841 A CN113391841 A CN 113391841A
Authority
CN
China
Prior art keywords
solution
search
solutions
unit
information processing
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
Application number
CN202110175873.6A
Other languages
English (en)
Inventor
米冈昇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of CN113391841A publication Critical patent/CN113391841A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/11Complex mathematical operations for solving equations, e.g. nonlinear equations, general mathematical optimization problems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/22Microcontrol or microprogram arrangements
    • G06F9/28Enhancement of operational speed, e.g. by using several microcontrol devices operating in parallel
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/29Graphical models, e.g. Bayesian networks
    • G06F18/295Markov models or related models, e.g. semi-Markov models; Markov random fields; Networks embedding Markov models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/044Recurrent networks, e.g. Hopfield networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/047Probabilistic or stochastic networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/01Dynamic search techniques; Heuristics; Dynamic trees; Branch-and-bound
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Computational Linguistics (AREA)
  • Computing Systems (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Operations Research (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Probability & Statistics with Applications (AREA)
  • Evolutionary Biology (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Medical Informatics (AREA)
  • Automation & Control Theory (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

提供了一种信息处理系统、信息处理方法、信息处理程序和装置。信息处理系统包括多个搜索单元。多个搜索单元被配置成搜索由包括在能量函数中的多个状态变量中的每个状态变量的值表示的解。多个搜索单元中的每个搜索单元还被配置成:在由多个搜索单元获得的多个解中获得第一解,所述第一解对应于多个能量函数的与多个解对应的值中的最佳值;基于第一解生成第一状态变量串;以及利用第一状态变量串作为开始状态来搜索解。

Description

信息处理系统、信息处理方法、信息处理程序和装置
技术领域
本文讨论的实施方式涉及信息处理系统、信息处理方法和信息处理程序。
背景技术
存在一种通过用伊辛(Ising)模型替换难以用诺依曼(Neumann)计算机处理的多变量组合最优化问题来执行计算的信息处理装置,该伊辛模型是表示磁性物质的自旋行为的模型。作为在实际应用中用于解决用伊辛模型替换的问题的方法,存在各种搜索算法,例如模拟退火(SA)。
例如,已经提出了一种通过使用扩展集成方法来搜索组合最优化问题的解的信息处理装置。一种信息处理系统,其中通过多个空间扩展型计算器独立地重复基态搜索,在时间扩展型计算器中顺序地积累结果,并且最终选择出最优解。
[引用列表]
[专利文献]
[专利文献1]日本特开专利公布第2019-71119号
[专利文献2]国际公布手册第WO 2017/033263号
发明内容
技术问题
如上所述,在用于仅通过多个计算器独立地执行基态搜索并从所获得的解中选择最优解的方法中,由于获得最优解的可能性小或者需要些时间才能获得最优解,因此可能无法获得足够的解寻找性能。
本公开内容的一个方面的目的是提供一种能够改善解寻找性能的信息处理系统、信息处理方法和程序。
问题的解决方案
在一方面中,提供了一种信息处理系统。信息处理系统包括多个搜索单元。多个搜索单元被配置成:搜索由包括在能量函数中的多个状态变量中的每个状态变量的值表示的解。多个搜索单元中的每一个还被配置成:在由多个搜索单元获得的多个解中获取第一解,所述第一解对应于多个能量函数的与多个解对应的值中的最佳值;基于第一解生成第一状态变量串;以及利用第一状态变量串作为开始状态来搜索解。
本发明的效果
在该方面,可以改善解寻找性能。
附图说明
图1是示出根据第一实施方式的信息处理系统的示例的图。
图2是示出根据第二实施方式的信息处理系统的示例的图。
图3是示出节点的硬件的示例的图。
图4是示出节点的功能的示例的图。
图5是示出解池的示例的图。
图6是示出用于生成新解的方法的示例的图。
图7是示出搜索单元的处理示例的流程图。
图8是示出解传播单元的解缓冲器的更新示例的流程图。
图9是示出解传播单元的解输出示例的流程图。
图10是示出根据第三实施方式的信息处理系统的示例的图。
图11是示出节点的功能的示例的图。
图12是示出通信单元的处理示例的流程图。
图13是示出使用多种搜索方法的信息处理系统的示例的图。
图14是示出针对每种搜索方法的状态转变的特性的示例的图。
具体实施方式
在下文中,将参照附图描述实施方式。
[第一实施方式]
将描述第一实施方式。
图1是示出根据第一实施方式的信息处理系统的示例的图。
信息处理系统10寻找组合最优化问题的解,并且输出寻找到的解。信息处理系统10包括搜索单元11、12和13。搜索单元11、12和13中的每一个例如由半导体集成电路来实现,所述半导体集成电路例如为中央处理单元(CPU)、图形处理单元(GPU)、数字信号处理器(DSP)、专用集成电路(ASIC)或现场可编程门阵列(FPGA)。搜索单元11、12和13中的每一个可以包括诸如随机存取存储器(RAM)或寄存器的存储单元。例如,通过使用诸如FPGA的半导体集成电路实现的多个搜索电路可以分别用作搜索单元11、12和13。包括在信息处理系统10中的搜索单元的数目可以是两个,或者可以是四个或更多个。
搜索单元11、12和13中的每一个可以经由例如共享存储设备(未示出)与其他搜索单元共享由搜索单元11、12和13中的每一个保留的信息中的至少一部分。替选地,搜索单元11、12和13中的每一个可以具有与其他搜索单元通信的通信功能,并且可以向其他搜索单元发送信息以及从其他搜索单元接收信息。
搜索单元11、12和13分别搜索由包括在能量函数中的多个状态变量的值表示的解。状态变量是具有值为“0”或“1”的二进制变量。搜索单元11、12和13基于用公式表示组合最优化问题的伊辛型能量函数来分别搜索由包括在能量函数中的多个状态变量的值表示的最优解。能量函数也被称为评估函数或目标函数。能量函数的值表示与由多个变量的值表示的伊辛模型的状态对应的能量值。能量值可以被称为评估值。例如,组合最优化问题被表示为用于寻找使能量值最小化的解的问题。在这种情况下,使能量值最小化的解表示伊辛模型的基态,并且对应于组合最优化问题的最优解。伊辛型能量函数E(x)例如由式(1)表示。
[式1]
Figure BDA0002940682910000031
状态向量x具有作为元素的多个状态变量,并且状态向量x表示伊辛模型的状态。在使能量值最大化的问题的情况下,能量函数的符号可以颠倒。
通过对两个状态变量的值和权重系数的乘积进行积分而获得式(1)右侧的第一项,而对能够从所有状态变量选择的两个状态变量的所有组合没有遗漏和重复。xi是第i个状态变量。xj是第j个状态变量。Wij是第i个状态变量与第j个状态变量之间的权重或者指示耦合强度的权重系数。
式(1)右侧的第二项是各个状态变量的值与所有状态变量的相应的偏置系数的乘积之和。bi指示第i个状态变量的偏置系数。
例如,伊辛模型中自旋的“-1”对应于状态变量的值“0”。伊辛模型中自旋的“+1”对应于状态变量的值“1”。因此,状态变量也可以被称为具有值为0或1的位。
指示相同问题的问题数据被输入至搜索单元11、12和13。例如,将彼此不同的状态向量从外部提供给搜索单元11、12和13作为相应搜索单元11、12和13中第一搜索开始时间点处的初始状态。
搜索单元11、12和13中的每一个通过预定搜索方法搜索相同组合最优化问题的最优解。搜索方法的示例包括SA、遗传算法(GA)、模拟量子退火(SQA)、禁忌搜索等。分别由搜索单元11、12和13使用的搜索方法可以相同或不同。搜索方法不限于示例出的方法,并且可以使用另外的搜索方法。
搜索单元11、12和13中的每一个从由搜索单元11、12和13获得的多个解中获取与对应于多个解的多个能量函数的值中(例如,多个能量值中)的最佳能量值对应的第一解。例如,搜索单元11、12和13中的每一个优先地保留由搜索单元在搜索中寻找到的解中具有良好能量值的预定数目的解。搜索单元11、12和13中的每一个将由搜索单元保留的与最佳能量值对应的解供应至其他搜索单元,并且从其他搜索单元获取由其他搜索单元保留的与最佳能量值对应的解。例如,在使能量值最小化的问题中,最佳能量值是与由搜索单元11、12和13保留的多个解对应的多个能量值中的最小能量值。在这种情况下,最优解是在由搜索单元11、12和13保留的解中与最小能量值对应的解。
搜索单元11、12和13中每一个将从其他搜索单元获取的解的能量值与由该搜索单元保留的最优解的能量值进行比较。当从其他搜索单元获取的解的能量值比由该搜索单元保留的最优解的能量值好时,搜索单元11、12和13中的每一个获取从其他搜索单元获取的解作为第一解。当从其他搜索单元获取的解的能量值比由该搜索单元保留的最优解的能量值差,或者从其他搜索单元获取的解的能量值与由该搜索单元保留的最优解的能量值两者相同时,搜索单元11、12和13中的每一个获取由该搜索单元保留的最优解作为第一个解。
例如,设置在搜索单元11、12和13外部的解传播单元(未示出)可以具有获取第一解的功能。在这种情况下,解传播单元从搜索单元11、12和13收集由相应搜索单元保留的最优解,从所收集的解中选择第一解,并将第一解供应至搜索单元11、12和13。
搜索单元11、12和13中的每一个基于所获取的第一解生成作为新的状态变量串的第一状态变量串。例如,搜索单元11生成通过改变包括在第一解中的状态变量的一部分的值而获得的第一解的邻近解作为第一状态变量串。可以基于由搜索单元11获得的第一解和任意解来生成邻近解。第一状态变量串可以与第一解的状态变量串相同。搜索单元12和13中的每一个生成与搜索单元11类似的第一状态变量串。
搜索单元11、12和13中的每一个利用所生成的第一状态变量串作为开始状态来搜索解。例如,搜索单元11、12和13中的每一个利用开始状态作为开始点来开始搜索。当在特定搜索单元中作为搜索结果获得的解更新在该特定搜索单元中获得的最佳能量值时,与其他搜索单元共享该解,并且重复上述处理。替选地,当使用解传播单元并且在特定搜索单元中获得的作为搜索结果的解更新在所有搜索单元中获得的最佳能量值时,与其他搜索单元共享该解,并且重复上述处理。
当在搜索单元11、12和13的每一个中满足预定的结束条件时,由搜索单元11、12和13执行的解的搜索结束。结束条件例如是从第一搜索开始时间点起经过了固定时间。信息处理系统10输出在结束时间点处由搜索单元11、12和13保留的多个解或者所述多个解中的与最佳能量值对应的解作为最终解。
由相应搜索单元11、12和13获取第一解、基于第一解生成第一状态变量串以及使用第一状态变量串搜索解作为开始状态可以分别由搜索单元11、12和13同步或异步执行。
根据信息处理系统10,获取由相应搜索单元11、12和13获得的多个解中的与最佳能量值对应的第一解。搜索单元11、12和13中的每一个基于第一解生成第一状态变量串。搜索单元11、12和13中的每一个通过使用所生成的第一状态变量串作为开始状态来搜索解。
因此,可以改善解寻找性能。
考虑用于通过多个计算器独立地搜索基态并从所获得的解中选择最优解的方法作为比较例。然而,当仅通过多个计算器独立地搜索基态并从所获得的解中选择最优解时,由于在固定时间内获得最优解的可能性低或者获得最优解需要些时间,解寻找性能无法充分改善。因此,用于改善解寻找性能的方法是一个问题。
因此,在信息处理系统10中,搜索单元11、12和13中的每一个基于由搜索单元11、12和13获得的多个解中的最优解来确定下一搜索的开始状态。这是因为估计在较佳的解附近存在最优解的可能性高。因此,可以提高由搜索单元11、12和13中的任何一个获得最优解的可能性。例如,提高了由搜索单元11、12和13中的任何一个在固定时间内获得最优解的可能性,并且因此,可以减少获得最优解所花费的时间。以这种方式,可以改善针对组合最优化问题的信息处理系统10的解寻找性能。
搜索单元11、12和13可以设置在同一信息处理装置中。在这种情况下,相应搜索单元11、12和13耦接至信息处理装置的总线。例如,搜索单元11、12和13经由耦接至总线的共享存储器来共享解。从搜索单元11、12和13收集解并将所述解供应至相应搜索单元11、12和13的功能可以由耦接至总线的处理单元例如CPU提供。
替选地,搜索单元11、12和13可以以分布方式设置在多个信息处理装置中。在这种情况下,多个信息处理装置耦接至网络。由设置在相应信息处理装置中的通信接口在相应信息处理装置的CPU的控制下执行设置在不同信息处理装置中的搜索单元之间的解的发送和接收。
[第二实施方式]
接下来,将描述第二实施方式。
图2是示出根据第二实施方式的信息处理系统的示例的图。
根据第二实施方式的信息处理系统包括节点100、外部存储设备200和终端装置300。节点100、外部存储设备200和终端装置300耦接至网络50。网络50例如是局域网(LAN)。网络50可以是广域网(WAN)或因特网。
节点100是具有多个加速器的服务器计算机,多个加速器各自搜索组合最优化问题的解。加速器是下述硬件,其寻找使由式(1)表示的伊辛型能量函数E(x)最小化的多个状态变量的值作为解。然而,可以通过软件来实现由节点100提供的解搜索功能。
节点100中的多个相应加速器通过使用不同的搜索方法(例如,搜索算法)来搜索解。然而,多个加速器中的至少两个可以通过使用相同的搜索方法来搜索解。搜索方法的示例包括SA、GA、SQA、禁忌搜索等。搜索方法不限于示例出的方法,并且可以使用其他搜索方法。
外部存储设备200是存储输入至节点100的组合最优化问题的问题数据以及由节点100输出的组合最优化问题的解的存储装置。问题数据包括例如式(1)的加权系数{Wij}和偏置系数{bi}。例如,外部存储设备200包括多个硬盘驱动器(HDD)、固态驱动器(SSD)等。
终端装置300是由用户操作的客户计算机。终端装置300向节点100输入数据。由终端装置300输入至节点100的数据包括存储在外部存储设备200中的问题数据。终端装置300通过包括在终端装置300中的显示器上显示内容来向用户呈现存储在外部存储设备200中的组合最优化问题的解的内容。
根据第二实施方式的信息处理系统是根据第一实施方式的信息处理系统10的示例。节点100可以被认为是根据第一实施方式的信息处理系统10的示例。
图3是示出节点的硬件的示例的图。
节点100包括CPU 101、RAM 102、HDD 103、介质读取器104、加速器卡105、105a...、网络接口卡(NIC)106和总线107。
CPU 101是执行程序的命令的处理器。CPU 101将存储在HDD 103中的程序或数据的至少一部分加载到RAM 102中,并且执行该程序。CPU101可以包括多个处理器核。节点100可以包括多个处理器。可以通过使用多个处理器或处理器核并行执行以下将描述的处理。在一些情况下,一组多个处理器可以被称为“多处理器”或者仅被称为“处理器”。
RAM 102是易失性半导体存储器,其临时地存储由CPU 101执行的程序和用于由CPU 101运行所使用的数据。节点100可以包括与RAM不同的类型的存储器,或者包括多个存储器。
HDD 103是非易失性存储设备,其存储数据以及诸如操作系统(OS)、中间件和应用软件的软件程序。节点100可以包括诸如闪存和SSD的不同类型的存储设备,或者包括多个非易失性存储设备。
介质读取器104是读取记录在记录介质51中的程序和数据的读取设备。作为记录介质51,例如,可以使用磁盘、光盘、磁光盘(MO)、半导体存储器等。磁盘包括软盘(FD)或HDD。光盘包括高密度磁盘(CD)或数字通用光盘(DVD)。
介质读取器104例如将从记录介质51读取的程序和数据复制到诸如RAM 102或HDD103的另一记录介质。由例如CPU 101执行经读取的程序。记录介质51可以是便携式记录介质,并且可以用于分发程序和数据。记录介质51和HDD 103可以被称为计算机可读记录介质。
加速器卡105、105a…是各自搜索组合最优化问题的解的硬件加速器。加速器卡105、105a…中的每一个的搜索功能由诸如FPGA、GPU或ASIC的半导体集成电路来实现。加速器卡105、105a…中的每一个包括保留搜索出的解的RAM。例如,加速器卡105包括FPGA 111和RAM 112。加速器卡105a包括GPU 121和RAM 122。如上所述,在节点100中可以混合有其上安装有诸如FPGA、GPU和ASIC的不同类型的半导体集成电路的加速器卡。
搜索组合最优化问题的解的硬件加速器(例如,加速器卡105、105a…)可以被称为伊辛机器、波尔兹曼机器等。例如,作为用于执行SA的加速器卡,存在日本专利第6465223号中公开的最优化装置。
NIC 106耦接至网络50并且NIC 106是经由网络50与另一计算机通信的通信接口。NIC 106经由网络50向外部存储设备200发送数据并从终端装置300接收数据。例如,NIC106利用电缆耦接至属于网络50的通信设备例如交换机或路由器。
总线107是节点100的内部总线。CPU101、RAM 102、HDD 103、介质读取器104、加速器卡105、105a…和NIC 106耦接至总线107。对于总线107,例如,使用周边组件互连高速(PCIe)。
图4是示出节点的功能的示例的图。
节点100包括控制单元130、搜索单元140、150、160和170以及解传播单元180。由CPU 101实现控制单元130和解传播单元180。一个搜索单元由一个加速器卡实现。尽管在图4的示例中示出节点100包括四个搜索单元,但是节点100可以包括不同于四个的多个搜索单元。如上所述,可以由执行预定软件的CPU 101来实现搜索单元的功能的至少一部分。
控制单元130从终端装置300获取组合最优化问题的问题数据。控制单元130将问题数据和初始状态变量串输入至搜索单元140、150、160和170,并且使搜索单元搜索解。将相同的问题数据输入至搜索单元140、150、160和170。初始状态变量串是在第一搜索开始时间点处在搜索单元140、150、160和170中的每一个中的初始状态。在搜索单元140、150、160和170中的每一个中,利用初始状态变量串作为开始点通过改变状态变量的值,来执行第一搜索。控制单元130可以将不同的初始状态变量串输入至搜索单元140、150、160和170。
控制单元130获取所获得的解作为搜索单元140、150、160和170中的相应搜索结果。控制单元130将获取的解输出至外部存储设备200。
搜索单元140、150、160和170中的每一个通过搜索使与组合最优化问题对应的伊辛型能量函数最小化的一组多个状态变量来搜索组合最优化问题的解,例如,伊辛模型的基态。
搜索单元140、150、160和170中的每一个使用彼此不同的搜索方法。例如,搜索单元140使用SQA。搜索单元150使用禁忌搜索。搜索单元160使用SA。搜索单元170使用GA。然而,搜索单元140、150、160和170中的至少两个搜索单元可以使用相同的搜索方法。所有搜索单元140、150、160和170都可以使用相同的搜索方法。
搜索单元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。
搜索单元140、150、160和170通过使用相应的加速器142、152、162和172来搜索解。搜索单元140、150、160和170优先地保留在相应的解池141、151、161和171中截至当前时间点获得的解中具有小能量值的预定数目的解。
搜索单元140、150、160和170将保留在相应的解池141、151、161和171中的具有最小能量值的解例如最佳解供应至解传播单元180。搜索单元140、150、160和170可以用从解传播单元180供应的解替换保留在相应的解池141、151、161和171中的最佳解。
搜索单元140、150、160和170基于保留在相应的解池141、151、161和171中的解分别生成新的解(例如,初始解),以将所述新的解设置为用于由加速器142、152、162和172执行的下次搜索的开始状态。搜索单元140、150、160和170中的每一个通过搜索单元的加速器通过使用所生成的初始解来执行下次搜索。
解传播单元180将解发送至搜索单元140、150、160和170。解传播单元180包括解缓冲器181。RAM 102的存储区域用于解缓冲器181。解缓冲器181存储由解传播单元180选择的一个或更多个解。
解传播单元180将从相应的搜索单元140、150、160和170供应的解中的具有小能量值的预定数目的解(例如,搜索单元140、150、160和170中的最佳解)优先记录在解缓冲器181中。
解传播单元180将保留在解缓冲器181中的解中具有最小能量值的解(例如,解缓冲器181中的最佳解)供应至搜索单元140、150、160和170。
图5是示出解池的示例的图。
图5示出了解池141,但是解池151、161和171也具有类似的数据结构。
解池141中的一个记录具有状态字段和能量值字段。图5示出了用于识别记录的编号(#)。解池141保留k个记录。状态是由加速器142获得的解并且由一组多个状态变量的值表示。该状态也被称为状态向量或状态位串。能量值是与状态x对应的能量函数E(x)的值。例如,解池141的第0条记录具有状态“X0”和能量值“E(X0)”。
解缓冲器181具有与解池141类似的数据结构。在一个示例中,在解池141、151、161和171中k=16,并且在解缓冲器181中k=4。
图6是示出用于生成新的解的方法的示例的图。
如上所述,搜索单元140随机获取保留在解池141中的解,并且生成要用作用于由加速器142执行的下次搜索的开始状态的新的解。
例如,搜索单元140从解池141获取状态A和B,例如解A和B。搜索单元140基于解A和B生成新的解C。
例如,搜索单元140将解C的与在解A和B中具有相同值的比特对应的比特设置为与解A和B中的比特相同的值。搜索单元140随机地选择“0”或“1”作为解C中与在解A和B中具有不同值的比特对应的比特的值。解C是根据第一实施方式的“第一状态变量串”的示例。
图6的生成方法是基于优化策略的处理,在该优化策略中,在具有相对良好的能量值的解之间可能存在一些相似性并且在这些解附近可能存在最优解。关于生成方法可以参考以下文献。
文献:Y.Wang等人,Path relinking for unconstrained binary quadraticprogramming,European Journal of Operational Research 223,2012,pp.595-604。
当在解池141中仅存储一个解时,搜索单元140可以根据一个解生成要被设置作为用于下次搜索的开始状态的新的解。例如,还考虑到搜索单元140通过改变包括在该一个解中的状态变量的一部分的值来生成新的解。
搜索单元150、160和170也通过与搜索单元140的方法类似的方法来生成新的解。
接下来,将描述节点100的处理过程。
首先,将描述搜索单元140、150、160和170的处理过程。
控制单元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。
尽管下面主要示出和描述搜索单元140,但是搜索单元150、160和170也执行类似的处理过程。
图7是示出搜索单元的处理示例的流程图。
(S10)搜索单元140从解池141中选择两个解A和B。
(S11)搜索单元140根据解A和B生成解C。可以使用图6所示的方法作为生成解C的方法。
(S12)搜索单元140将解C输入至加速器142,并且通过使用加速器142利用解C作为初始解(例如,开始状态)来搜索解。
(S13)当由加速器142执行了预定时段的搜索结束时,搜索单元140从加速器142获取改进的解D和解D的能量值。
(S14)搜索单元140从解池141中选择具有最大能量值的解,例如最差解E。
(S15)搜索单元140确定解D的能量值是否小于解E的能量值。当解D的能量值小于解E的能量值时,搜索单元140使处理进入步骤S16。当解D的能量值等于或大于解E的能量值时,搜索单元140使处理进入步骤S17。
(S16)搜索单元140将解池141中的解E改变为解D。
(S17)搜索单元140从解池141中选择具有最小能量值的解,例如最佳解F。
(S18)搜索单元140将解F和解F的能量值发送至解传播单元180。
(S19)搜索单元140从解传播单元180接收由解传播单元180保留的具有最小能量值的解,例如最佳解G。这时,搜索单元140接收来自解传播单元180的解G和解G的能量值。
(S20)搜索单元140确定解G的能量值是否小于解F的能量值。当解G的能量值小于解F的能量值时,搜索单元140使处理进入步骤S21。当解G的能量值等于或大于解F的能量值时,搜索单元140使处理进入步骤S22。
(S21)搜索单元140将解池141中的解F改变为解G。
(S22)搜索单元140确定是否满足结束条件。当满足结束条件时,搜索单元140结束处理。当不满足结束条件时,搜索单元140使处理进入步骤S10。
步骤S22的结束条件由控制单元130给出。例如,搜索单元140将结束标志保留在加速器卡的RAM中。结束标志的初始值为“假(false)”。当从控制单元130接收到结束信号时,搜索单元140将结束标志改变为“真(true)”。当结束标志为“假”时,不满足结束条件。当结束标志为“真”时,满足结束条件。例如,当在搜索单元140根据图7中的过程开始搜索之后经过了固定时段时,控制单元130向搜索单元140输出结束信号。控制单元130可以将相应搜索单元140、150、160和170的搜索时段设置为不同的长度。
搜索单元140、150、160和170中的每一个异步执行图7中所示的过程。
当满足结束条件并且搜索结束时,搜索单元140将最终获得的具有最小能量值的解输出至控制单元130。当在所有搜索单元140、150、160和170中结束搜索时,控制单元130将从相应搜索单元140、150、160和170输出的解或者这些解中具有最小能量值的解输出至外部存储装置200。
接下来,将描述解传播单元180的解缓冲器181的更新处理的过程。
当从搜索单元140、150、160和170中的任何一个接收到输入解A时,解传播单元180执行以下过程。
图8是示出解传播单元的解缓冲器的更新示例的流程图。
(S30)当从搜索单元140、150、160和170中的任何一个接收到输入解A和该输入解A的能量值时,解传播单元180确定在解缓冲器181中是否存在与输入解A相同的解A。当在解缓冲器181中存在解A时,解传播单元180结束处理。当在解缓冲器181中不存在解A时,解传播单元180使处理进入步骤S31。
(S31)解传播单元180从解缓冲器181中选择具有最大能量值的解,例如最差解B。
(S32)解传播单元180确定解A的能量值是否小于解B的能量值。当解A的能量值小于解B的能量值时,解传播单元180使处理进入步骤S33。当解A的能量值等于或大于解B的能量值时,解传播单元180结束解缓冲器181的更新处理。
(S33)解传播单元180将解缓冲器181中的解B改变为解A。解传播单元180结束解缓冲器181的更新处理。
为了确保解的通用性,解传播单元180可以保留两个或更多个解,所述两个或更多个解的对应于状态的状态比特串不同但是能量值是相同的值。
接下来,将描述解传播单元180的解输出处理的过程。
图9是示出解传播单元的解输出示例的流程图。
(S40)解传播单元180从解缓冲器181中选择具有最小能量值的解,例如,最佳解A。
(S41)解传播单元180将解A和该解A的能量值输出至搜索单元140、150、160和170中的每一个。解传播单元180结束解输出处理。
在步骤S40中,当在解缓冲器181中存在解的能量值最小且状态不同的多个解时,解传播单元180从多个解中随机选择一个解。
当从某个搜索单元供应图8中的输入解A时,解传播单元180可以在图8的过程结束之后针对作为输入解A的供应源的搜索单元执行图9的过程。搜索单元140、150、160和170中的每一个从解传播单元180异步地获取解缓冲器181中的最佳解。
根据第二实施方式的节点100,多个加速器并行地操作,并且在搜索时段期间在加速器之间相互更新加速器中的每一个中的最佳解。例如,在搜索操作期间,经由解传播单元180将所有搜索单元中的最佳解反映在搜索单元的每一个的解池中。因此,基于从搜索单元中的每一个的解池中选择的最佳解生成搜索单元的每一个的下次搜索的开始状态,并且因此,在某个定时处所有搜索单元中的最佳解被反映在搜索单元中的每一个的下次搜索的开始状态中。
如上所述,估计在具有相对良好的能量值的解之间可能存在一些相似性,并且在这些解附近可能存在最优解。因此,通过以上描述的节点100的处理过程,与独立地操作加速器中的每一个的情况相比,增加了在搜索单元中的任何一个中达到最优解的可能性,并且改善了解寻找性能。
即使对于一个问题,从某个局部解转换为另一解的难易程度也可能根据搜索方法而不同。例如,当落入某个局部解时,即使在第一搜索方法中从局部解转换为另一解相对困难,但是在第二搜索方法中从局部解转换为另一解可能相对容易。
在第二实施方式中,在每个加速器中使用不同的搜索方法。在节点100中,每个加速器基于传播至每个加速器的最佳解生成在最佳解附近的邻近解,并且利用该邻近解作为开始状态来执行局部解的搜索。因此,例如,可以通过使用多种搜索方法来实现与在某个点处根据局部解搜索下一局部解的操作类似的操作,并且增加了达到最优解的可能性。替选地,由于在固定时间内达到最优解的可能性高,因此可以缩短获得直到最优解所花费的时间。以这种方式,可以进一步改善解寻找性能。
搜索单元140、150、160和170可以通过经由解传播单元180交换解来使用加速器142、152、162和172异步地执行搜索。因此,即使加速器中的每一个的执行时间彼此有很大不同,但是由于不存在用于交换解的等待时间,因此可以有效地搜索解。
[第三实施方式]
接下来,将描述第三实施方式。下面将主要讨论与以上描述的第二实施方式不同的项目,同时省略对共同项目的说明。
在第二实施方式中,已经描述了其中信息处理系统包括一个节点100的示例。
在第三实施方式中,将描述其中信息处理系统包括多个节点的示例。在第三实施方式的描述中,与第二实施方式中的硬件和功能相同的硬件和功能由相同的附图标记表示,并且可以省略其的描述。
图10是示出根据第三实施方式的信息处理系统的示例的图。
根据第三实施方式的信息处理系统包括节点100a、100b…、外部存储设备200和终端装置300。节点100a、100b…、外部存储设备200和终端装置300耦接至网络50。节点100a、100b…由与根据第二实施方式的节点100类似的硬件实现。
根据第三实施方式的信息处理系统是根据第一实施方式的信息处理系统10的示例。包括节点100a、100b…、的系统可以被认为是根据第一实施方式的信息处理系统10的示例。
根据第三实施方式的节点100a、100b…中的每一个包括一个或更多个搜索单元。节点100a、100b…与根据第二实施方式的节点100的不同之处在于节点具有以下功能。尽管下面将主要描述节点100a,但是节点100b…也具有类似的功能。
图11是示出节点的功能的示例的图。
节点100a包括控制单元130、搜索单元140、150…、解传播单元180a和通信单元190。控制单元130和搜索单元140、150…对应于在第二实施方式中具有相同名称的功能。解传播单元180a和通信单元190由CPU 101实现。
解传播单元180a包括解缓冲器181,并且具有与根据第二实施方式的用于搜索单元140、150…的解传播单元180类似的功能。
解传播单元180a可以从通信单元190接收解,并且可以使用从通信单元190供应的解来更新解缓冲器181中的解。
例如,解传播单元180a通过使用不仅从搜索单元140、150…供应的解而且从通信单元190供应的解作为输入解来执行图8中更新解的过程。
例如,当在解缓冲器181中包括从搜索单元140、150…中的任何一个或通信单元190供应的输入解时,解传播单元180a丢弃该输入解,并且跳过解缓冲器181的更新。当在解缓冲器181中不包括输入解时,解传播单元180a将解缓冲器181中具有最大能量值的解的能量值与输入解的能量值进行比较。当输入解的能量值小于解缓冲器181中的最大能量值时,解传播单元180a用输入解替换解缓冲器181中具有最大能量值的解。当输入解的能量值等于或大于解缓冲器181中的最大能量值时,解传播单元180a丢弃该输入解而不更新解缓冲器181。
解传播单元180a将解缓冲器181中具有最小能量值的解(例如,最佳解)和该最佳解的能量值输出至搜索单元140、150…以及通信单元190。
通信单元190经由网络50将当前时间点处节点100a中的最佳解和该最佳解的能量值发送至节点100b…。通信单元190从节点100b…中的每一个接收当前时间点处在相应节点100b…中获得的最佳解以及所述最佳解的能量值。
通信单元190将从所有其他节点接收到的解的能量值与当前时间点处节点100a中的最佳解进行比较,并且选择具有最小能量值的解Mmin。当存在能量值最小且状态比特串不同的多个解时,通信单元190从多个解中随机选择一个。
通信单元190将所选择的解Mmin和该解Mmin的能量值输出至解传播单元180a。是否将解Mmin存储在解缓冲器181中取决于以上描述的解传播单元180a的操作。
当将解Mmin输出至解传播单元180a时,通信单元190停止固定时间,并且在经过固定时间之后重复执行以上描述的操作。
针对通信单元190可以使用诸如开放消息传递接口(MPI)的并行计算环境。例如,通信单元190通过与所有其他节点中的其他通信单元的多对多通信(all-to-allcommunication)收集在节点中的每一个中获得的最佳解。
接下来,将描述通信单元190的处理过程。
图12是示出通信单元的处理示例的流程图。
(S50)通信单元190从解传播单元180a获取解M[i]和该解M[i]的能量值。解M[i]是在保留在解缓冲器181的解中具有最小能量值的解。i是节点的标识号,并且具有从0到(节点的数目-1)的值。步骤S50中的i对应于节点100的标识号。
(S51)通信单元190对所有节点的解M[i]和解M[i]的能量值进行聚合。因此,通信单元190获得与节点的数目对应的解M[i]。
(S52)通信单元190从解M[i]中选择具有最小能量的解Mmin。当存在具有最小能量的多个解时,通信单元190从多个解中随机选择一个解并将所选择的解设置为解Mmin。
(S53)通信单元190将解Mmin和该解Mmin的能量值输入至解传播单元180a。
(S54)通信单元190等待固定时间。
(S55)通信单元190确定是否满足结束条件。当满足结束条件时,通信单元190结束处理。当不满足结束条件时,通信单元190使处理进入步骤S50。
步骤S55的结束条件由控制单元130给出。例如,通信单元190将结束标志保留在RAM 102中。结束标志的初始值为“假”。当从控制单元130接收到结束信号时,通信单元190将结束标志改变为“真”。当结束标志为“假”时,不满足结束条件。当结束标志为“真”时,满足结束条件。例如,当在搜索单元140根据图7中的过程开始搜索之后经过了固定时段时,控制单元130向搜索单元140和通信单元190输出结束信号。
根据根据第三实施方式的节点100a、100b…,安装在节点100a、100b…的每一个中的多个加速器并行地操作,并且在搜索期间在加速器之间相互更新相应加速器中的最佳解。例如,在搜索操作期间,经由解传播单元180a和通信单元190将所有搜索单元中的最佳解反映在相应搜索单元的解池中。因此,基于从相应搜索单元的解池中选择出的最佳解来生成相应搜索单元的下次搜索的开始状态,并且因此,在某个定时处所有搜索单元中的最佳解被反映在相应搜索单元的下次搜索的开始状态中。
因此,与独立地操作个体加速器的情况相比,增加了在搜索单元中的任何一个中达到最优解的可能性,并且改善了解寻找性能。
节点100a、100b…中的每一个中的搜索单元经由解传播单元180a和通信单元190交换解,并且因此,可以在搜索单元之间异步执行在相应节点上由搜索单元执行的搜索。因此,即使相应加速器的执行时间彼此有很大不同,但是由于不存在用于交换解的等待时间,因此可以有效地搜索解。
与根据第二实施方式的搜索单元中的每一个类似,在根据第三实施方式的搜索单元的每一个中可以使用不同的搜索方法。
图13是示出使用多种搜索方法的信息处理系统的示例的图。
例如,假定根据第三实施方式的信息处理系统包括节点100a、100b、100c和100d。节点100a、100b、100c和100d耦接至网络50。例如,节点100a的搜索单元使用SQA。节点100b的搜索单元使用禁忌搜索。节点100c的搜索单元使用SA。节点100d的搜索单元使用GA。
如图13所示,对于节点中的每一个,搜索方法可以不同,并且在一个节点中可以混合使用多种搜索方法的多个加速器。如上所述,由FPGA、GPU、ASIC等实现加速器。如第二实施方式所示,可以将FPGA、GPU、ASIC等中的至少两种类型的半导体集成电路混合在一个节点中。.
即使对于一个问题,从某个局部解转换为另一解的难易程度也可能根据搜索方法而不同。例如,当落入某个局部解时,即使在第一搜索方法中从局部解转换为另一解相对困难,但是在第二搜索中从局部解转换为另一解可能相对容易。
图14是示出针对每种搜索方法的状态转换的特性的示例的图。
曲线图71描绘了某个组合最优化问题中在搜索空间上针对每个状态(x)的能量值E(x)。曲线图71的水平轴指示搜索空间。曲线图71的纵轴指示能量值E(x)。给出能量值E(x)的最小值的状态xa、xb、xc、xd和xe中的每一个都是局部解。假设这些状态中的状态xe是最优解。
如上所述,在搜索某个组合最优化问题的解的过程中,用于达到最优解的有效搜索方法针对每个点(例如局部解)可能是不同的。
表72指示在搜索方法1至4中状态之间的转换的难易程度。作为用于从状态xa达到状态xe的状态的转换顺序的一个示例,考虑顺序地追踪xa、xb、xc、xd和xe。表72指示在针对搜索方法1至4中的每一种转换的字段中描述的状态之间的转换的难易程度。表72中带有核选标记的部分指示在搜索方法中相对可能发生状态转换。表72中带有连字符(“-”)的部分指示在搜索方法中相对不太可能发生状态之间的转换。
例如,在搜索方法1中,从状态xa经由状态xb和xc到达状态xd的可能性高,但是从状态xd到达状态xe的可能性低。
在搜索方法2中,从状态xa经由状态xb到达状态xc的可能性高,但是从状态xc经由状态xd到达状态xe的可能性低。
在搜索方法3中,从状态xa到达状态xb的可能性高,并且从状态xc经由状态xd到达状态xe的可能性高,但是从状态xb到达状态xc的可能性低。
在搜索方法4中,从状态xa到达状态xb的可能性高,并且从状态xc到达状态xd的可能性高,但是从状态xb到达状态xc的可能性低,并且从状态xd到达状态xe的可能性低。
如上所述,即使使用搜索方法1至4中的任何一种,也不太可能发生从状态xa到状态xe的中间的状态之间的转换。
在这种情况下,例如,搜索单元通过用于仅通过使用多种搜索方法独立地操作加速器而在相应加速器中获得的解中的最佳解的方法无法达到最优解。
因此,在根据第二实施方式的节点100和根据第三实施方式的节点100a、100b…中,每个搜索单元通过传播至每个搜索单元的最佳解生成在最佳解附近的邻近解,并且每个搜索单元利用邻近解作为开始状态来执行搜索。因此,例如,可以通过使用多种搜索方法来实现与在某个点处根据局部解搜索下一局部解的操作类似的操作,并且增加了达到最优解的可能性。替选地,由于在固定时间内达到最优解的可能性高,因此可以缩短直到获得最优解所花费的时间。以这种方式,可以改善解寻找性能。
总之,根据第二实施方式和第三实施方式的信息处理系统具有例如以下功能。
节点100或节点100a、100b…的多个搜索单元中的每一个,从由多个搜索单元获得的多个解中获取第一解,所述第一解对应于多个能量函数的与多个解对应的值中的最佳值;基于第一解生成第一状态变量串;以及利用所生成的第一状态变量串作为开始状态来搜索解。因此,与在仅通过独立地操作搜索单元而获得的解中获得最佳解的情况相比,可以提高达到最优解的可能性,并且可以改善解寻找性能。
例如,多个搜索单元中的至少两个搜索单元通过使用不同的搜索算法来搜索解。如上所述,对不同的搜索算法进行组合,并且因此,增加了逃离(escaping)难以通过单个搜索算法逃离的局部解的可能性。因此,可以增加达到最优解的可能性。
节点100包括解传播单元180,该解传播单元180从多个相应的搜索单元异步地获取第二解,从多个所获取的第二解中确定第一解,并且将所确定的第一解异步地输出至多个相应的搜索单元。
因此,多个搜索单元可以经由解传播单元180异步地交换解。因此,即使相应搜索单元的执行时间彼此不同,但是由于不存在用于交换解的等待时间,因此可以有效地搜索解。例如,在使用不同搜索算法的搜索单元之间搜索执行时间可能大不相同。因此,例如,当在至少两个搜索单元中使用不同的搜索算法时,解传播单元180的功能是有用的。
可以如上所述由CPU 101实现解传播单元180的功能。解传播单元180的功能可以由诸如FPGA和ASIC的半导体集成电路来实现。在这种情况下,通过使用半导体集成电路实现的解传播电路用作解传播单元180。
例如,多个搜索单元中的每个搜索单元将由搜索单元保留在解池中的与能量函数的最佳值对应的第二解输出至解传播单元180,并且从解传播单元180获取第一解。在第一解与第二解不同时,多个搜索单元中的每个搜索单元用从解传播单元180获取的第一解替换由搜索单元保留的第二解。因此,由多个搜索单元获得的最佳解(例如,第一解)被适当地反映在搜索单元中的每一个中。
例如,第一解和第一状态变量串具有以下关系。
在第一示例中,包括在第一解中的状态变量串是与第一状态变量串相同的状态变量串。因此,可以将第一解本身设置为用于下次搜索的开始状态。
在第二示例中,包括在第一解中的状态变量串是其中改变了包括在第一状态变量串中的多个状态变量中的一部分的状态变量串。因此,可以将第一解的邻近解设置为下次搜索的开始状态。
通过使用第一示例或第二示例可以改善解寻找性能。
例如,多个搜索单元中的每个搜索单元保留包括由搜索单元获得的多个解的解池或者包括通过用第一解替换第二解而获得的多个解的解池,以及基于从解池中选择的两个或更多个解来生成第一状态变量串。
因此,在信息处理系统中实现第二示例,并且可以改善解寻找性能。例如,存在以下可能性:第一解被包括在从解池中选择的两个或更多个解中,并且在这种情况下,可以将第一解的邻近解设置为下次搜索的开始状态。
根据第三实施方式的信息处理系统包括多个装置,多个装置均包括:在多个搜索单元中的一个或更多个搜索单元。节点100a、100b…是多个装置的示例。装置可以被称为例如信息处理装置。多个装置中的每个装置向多个装置中的其他装置发送第三解,所述第三解对应于由包括在装置中的一个或更多个搜索单元获得的能量函数的第一最佳候选值,并且从其他装置接收第四解,所述第四解对应于由其他装置获得的能量函数的第二最佳候选值。多个装置中的每个装置基于第一最佳候选值与第二最佳候选值之间的比较来确定第一解。第一最佳候选值和第二最佳候选值是用于与在装置的每个装置中获得的多个解对应的多个能量函数的值中的最佳值的候选的值。
因此,即使多个搜索单元以分布方式布置在多个装置中,也可以由多个相应的搜索单元适当地确定第一解,并且可以将该第一解供应至相应的搜索单元,并且可以改善整个信息处理系统的解寻找性能。
例如,多个装置中的每个装置包括通信单元(例如,通信单元190)和解传播单元(例如,解传播单元180a)。
多个装置中的每个装置的通信单元将第三解发送至其他装置,从其他装置接收第四解,并且通过能量值的第一最佳候选值与能量值的第二最佳候选值之间的比较,输出第三解和第四解中作为用于第一解的候选的候选解。
多个装置中的每个装置的解传播单元优先地保留由包括在装置中的一个或更多个搜索单元获得的第五解以及由装置的通信单元输出的候选解中具有良好能量值的预定数目的解。多个装置中的每个装置的解传播单元确定预定数目的保留解中具有最佳能量值的解作为第一解,并且将所确定的第一解输出至包括在装置中的一个或更多个搜索单元。
因此,将由装置中的每个装置异步获得的最佳解与其他装置共享,并且因此,在每个装置上的一个或更多个搜索单元可以适当地获取该装置中的第一解。因此,可以改善整个信息处理系统的解寻找性能。
如上所述,可以由CPU 101来实现在包括通信单元190的每个装置上的通信单元的功能。然而,通信单元的功能可以由诸如FPGA或ASIC的半导体集成电路来实现。如上所述,可以由CPU 101来实现包括解传播单元180a的每个装置上的解传播单元的功能。解传播单元的功能可以由诸如FPGA或ASIC的半导体集成电路来实现。例如,与节点100a、100b…对应的装置中的每个装置可以包括多个处理器或多个处理器核。在这种情况下,第一处理器或第一处理器核可以执行通信单元190的功能,并且第二处理器或第二处理器核可以执行解传播单元180a的功能。替选地,通过使用诸如FPGA的半导体集成电路实现的通信电路和解传播电路可以分别用作通信单元190和解传播单元180a。
当多个装置中的每个装置包括两个或更多个搜索单元时,多个装置中的每个装置的解传播单元从包括在装置中的两个以上的搜索单元异步地获取第五解,并且将所选择的第一解异步地输出至两个或更多个搜索单元。
因此,在多个装置上的多个搜索单元可以经由每个装置上的解传播单元(例如,解传播单元180a)异步地交换解。因此,即使每个搜索单元的执行时间彼此不同,但是由于不存在用于交换解的等待时间,因此可以有效地搜索解。例如,在使用不同搜索算法的搜索单元之间搜索执行时间可能大不相同。因此,例如,当在同一装置上的至少两个搜索单元中使用不同的搜索算法时,包括解传播单元180a的每个装置上的解传播单元的功能是有用的。
多个搜索单元中的每个搜索单元通过改变包括在第一解中的状态变量的一部分的值来生成第一状态变量串。作为生成方法,例如,可以使用图6中的方法。据估计,在当前获得的解中的较佳解附近存在最优解的可能性高。因此,通过将第一解的邻近解设置为下次搜索的开始状态可以增加达到最优解的可能性,并且可以改善解寻找性能。
可以通过使实现搜索单元11、12和13的功能的处理器例如CPU执行程序来实现根据第一实施方式的信息处理。可以通过使CPU 101执行程序来实现根据第二实施方式和第三实施方式的信息处理。程序可以被记录在计算机可读的记录介质51中。
例如,可以通过分发其中记录有程序的记录介质51来循环程序。该程序可以被存储在另外的计算机中,并且该程序可以经由网络被分发。例如,计算机可以将记录在介质51中的程序或从另外的计算机接收的程序存储(安装)在诸如RAM 102或HDD 103的存储设备中,并且可以从存储设备读取程序以执行该程序。

Claims (14)

1.一种信息处理系统,包括:
多个搜索单元,被配置成搜索由包括在能量函数中的多个状态变量中的每个状态变量的值表示的解,
其中,所述多个搜索单元中的每个搜索单元还被配置成:
在由所述多个搜索单元获得的多个解中获取第一解,所述第一解对应于多个所述能量函数的与所述多个解对应的值中的最佳值;
基于所述第一解生成第一状态变量串;以及
利用所述第一状态变量串作为开始状态来搜索所述解。
2.根据权利要求1所述的信息处理系统,其中,所述多个搜索单元中的至少两个搜索单元被配置成:通过使用不同的搜索算法来搜索所述解。
3.根据权利要求1或2所述的信息处理系统,还包括:
解传播单元,被配置成:
从所述多个搜索单元中的每个搜索单元异步地获取第二解;
从多个所获取的第二解中确定所述第一解;以及
将所确定的第一解异步地输出至所述多个搜索单元中的每个搜索单元。
4.根据权利要求3所述的信息处理系统,其中,所述多个搜索单元中的每个搜索单元还被配置成:
将由所述搜索单元保留的与所述能量函数的最佳值对应的所述第二解输出至所述解传播单元;
从所述解传播单元获取所述第一解;以及
在所述第一解与所述第二解不同时,将由所述搜索单元保留的所述第二解替换为从所述解传播单元获取的所述第一解。
5.根据权利要求1至3中任一项所述的信息处理系统,其中,包括在所述第一解中的状态变量串是与所述第一状态变量串相同的状态变量串。
6.根据权利要求1至3中任一项所述的信息处理系统,其中,包括在所述第一解中的状态变量串是其中改变了包括在所述第一状态变量串中的所述多个状态变量的一部分的状态变量串。
7.根据权利要求3所述的信息处理系统,其中,所述多个搜索单元中的每个搜索单元还被配置成:
保留包括由所述搜索单元获得的所述多个解的解池或者包括通过用所述第一解替换所述第二解而获得的多个解的解池;以及
基于从所述解池中选择的两个或更多个解来生成所述第一状态变量串。
8.根据权利要求1或2所述的信息处理系统,还包括:
多个装置,所述多个装置均包括:包括在所述多个搜索单元中的一个或更多个搜索单元,
其中,所述多个装置中的每个装置还被配置成:
向所述多个装置中的其他装置发送第三解,所述第三解对应于由包括在所述装置中的所述一个或更多个搜索单元获得的所述能量函数的第一最佳候选值;
从所述其他装置接收第四解,所述第四解对应于由所述其他装置获得的所述能量函数的第二最佳候选值;以及
基于所述第一最佳候选值与所述第二最佳候选值之间的比较,来确定所述第一解。
9.根据权利要求8所述的信息处理系统,
其中,所述多个装置中的每个装置包括通信单元和解传播单元,其中,
所述通信单元被配置成:
将所述第三解发送至所述其他装置,从所述其他装置接收所述第四解;以及
通过所述第一最佳候选值与所述第二最佳候选值之间的比较,输出所述第三解和所述第四解中作为用于所述第一解的候选的候选解,以及
所述解传播单元被配置成:
优先地保留由包括在所述装置中的所述一个或更多个搜索单元获得的第五解以及由所述通信单元输出的所述候选解中具有良好的能量函数的值的预定数目的解,确定在所述预定数目的解中与所述能量函数的所述最佳值对应的解作为所述第一解;以及
将所确定的第一解输出至包括在所述装置中的所述一个或更多个搜索单元。
10.根据权利要求9所述的信息处理系统,
其中,所述多个装置中的每个装置包括两个或更多个搜索单元,以及
所述多个装置中的每个装置的所述解传播单元还被配置成:从包括在所述装置中的所述两个或更多个搜索单元中的每个搜索单元异步地获取所述第五解,并且将所选择的第一解异步地输出至所述两个或更多个搜索单元中的每个搜索单元。
11.根据权利要求1所述的信息处理系统,其中,所述多个搜索单元中的每个搜索单元通过改变包括在所述第一解中的所述状态变量的一部分的值来生成所述第一状态变量串。
12.一种信息处理方法,包括:
搜索由包括在能量函数中的多个状态变量中的每个状态变量的值表示的解;
在通过搜索获得的多个解中获取第一解,所述第一解对应于多个所述能量函数的与所述多个解对应的值中的最佳值;
基于所述第一解生成第一状态变量串;以及
利用所述第一状态变量串作为开始状态来搜索所述解。
13.一种信息处理程序,所述信息处理程序由计算机执行,所述信息处理程序包括:
搜索由包括在能量函数中的多个状态变量中的每个状态变量的值表示的解;
在通过搜索获得的多个解中获取第一解,所述第一解对应于多个所述能量函数的与所述多个解对应的值中的最佳值;
基于所述第一解生成第一状态变量串;以及
利用所述第一状态变量串作为开始状态来搜索所述解。
14.一种信息处理装置,包括:
搜索单元,被配置成:
在多个解中获取第一解,所述第一解对应于多个能量函数的与所述多个解对应的值中的最佳值,所述多个解中的每一个由包括在能量函数中的多个状态变量中的每个状态变量的值表示;
基于所述第一解生成第一状态变量串;以及
利用所述第一状态变量串作为开始状态来搜索解。
CN202110175873.6A 2020-03-11 2021-02-09 信息处理系统、信息处理方法、信息处理程序和装置 Pending CN113391841A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2020-042328 2020-03-11
JP2020042328A JP2021144443A (ja) 2020-03-11 2020-03-11 情報処理システム、情報処理方法およびプログラム

Publications (1)

Publication Number Publication Date
CN113391841A true CN113391841A (zh) 2021-09-14

Family

ID=74505071

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110175873.6A Pending CN113391841A (zh) 2020-03-11 2021-02-09 信息处理系统、信息处理方法、信息处理程序和装置

Country Status (4)

Country Link
US (1) US20210286328A1 (zh)
EP (1) EP3879417A1 (zh)
JP (1) JP2021144443A (zh)
CN (1) CN113391841A (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2024005745A (ja) 2022-06-30 2024-01-17 富士通株式会社 情報処理方法、情報処理プログラム、および情報処理装置

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11109244B2 (en) * 2012-04-06 2021-08-31 Plume Design, Inc. Optimization of distributed Wi-Fi networks
CN107851024A (zh) * 2015-05-15 2018-03-27 考科斯汽车有限公司 用于解空间分割的并行处理
WO2017033263A1 (ja) 2015-08-24 2017-03-02 株式会社日立製作所 情報処理システム
JP6465223B1 (ja) 2018-02-01 2019-02-06 富士通株式会社 最適化装置及び最適化装置の制御方法
JP6465231B1 (ja) * 2018-03-12 2019-02-06 富士通株式会社 最適化装置及び最適化装置の制御方法
JP2019071119A (ja) 2019-01-11 2019-05-09 富士通株式会社 情報処理装置、イジング装置及び情報処理装置の制御方法

Also Published As

Publication number Publication date
JP2021144443A (ja) 2021-09-24
EP3879417A1 (en) 2021-09-15
US20210286328A1 (en) 2021-09-16

Similar Documents

Publication Publication Date Title
Chen et al. Warplda: a cache efficient o (1) algorithm for latent dirichlet allocation
Cai et al. Learning-enhanced differential evolution for numerical optimization
US20210256179A1 (en) Information processing method and information processing system
He et al. Learn to floorplan through acquisition of effective local search heuristics
US20110224916A1 (en) Fitness determination for DNA codeword searching
Hendricks et al. High-speed detection of emergent market clustering via an unsupervised parallel genetic algorithm
US20180285424A1 (en) Disjunctive rule mining with finite automaton hardware
Shu et al. Bootstrapping in-situ workflow auto-tuning via combining performance models of component applications
Phan et al. Enhancing multi-objective evolutionary neural architecture search with training-free Pareto local search
Song et al. Rethinking graph data placement for graph neural network training on multiple GPUs
CN113391841A (zh) 信息处理系统、信息处理方法、信息处理程序和装置
US20210334332A1 (en) Information processing apparatus, information processing method, and non-transitory computer-readable storage medium for storing program
CN113919504A (zh) 信息处理系统、信息处理方法及计算机可读存储介质
Zhu et al. A methodology for characterizing sparse datasets and its application to simd performance prediction
US20210406422A1 (en) Information processing system, information processing apparatus, and non-transitory computer-readable storage medium
US20210072959A1 (en) Information processing apparatus and information processing method
EP4148628A1 (en) Data processing apparatus, data processing method, and data processing program
US20220261669A1 (en) Information processing system, information processing method, and computer-readable recording medium storing program
US20220335321A1 (en) Information processing system, information processing method, and non-transitory computer-readable storage medium
Laboudi et al. New Solutions for the Density Classification Task in One Dimensional Cellular Automata
Wang et al. Efficient randomized feature selection algorithms
EP4235518A1 (en) Data processing program, data processing device, and data processing method
Sarkar et al. Scalable Adaptive Protein Ensemble Refinement Integrating Flexible Fitting
Sun et al. Architecture Design for Plain CNNs
CN117930940A (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