CN113646782A - 信息处理设备、信息处理系统、信息处理方法、存储介质及程序 - Google Patents

信息处理设备、信息处理系统、信息处理方法、存储介质及程序 Download PDF

Info

Publication number
CN113646782A
CN113646782A CN202080025393.5A CN202080025393A CN113646782A CN 113646782 A CN113646782 A CN 113646782A CN 202080025393 A CN202080025393 A CN 202080025393A CN 113646782 A CN113646782 A CN 113646782A
Authority
CN
China
Prior art keywords
vector
variable
information processing
searched
value
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
CN202080025393.5A
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.)
Toshiba Corp
Toshiba Digital Solutions Corp
Original Assignee
Toshiba Corp
Toshiba Digital Solutions Corp
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 Toshiba Corp, Toshiba Digital Solutions Corp filed Critical Toshiba Corp
Publication of CN113646782A publication Critical patent/CN113646782A/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/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • 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
    • G06F17/13Differential equations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • 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
    • G06N7/00Computing arrangements based on specific mathematical models
    • G06N7/01Probabilistic graphical models, e.g. probabilistic networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2111/00Details relating to CAD techniques
    • G06F2111/20Configuration CAD, e.g. designing by assembling or positioning modules selected from libraries of predesigned modules
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N10/00Quantum computing, i.e. information processing based on quantum-mechanical phenomena
    • G06N10/40Physical realisations or architectures of quantum processors or components for manipulating qubits, e.g. qubit coupling or qubit control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N10/00Quantum computing, i.e. information processing based on quantum-mechanical phenomena
    • G06N10/60Quantum algorithms, e.g. based on quantum optimisation, quantum Fourier or Hadamard transforms

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Evolutionary Computation (AREA)
  • Algebra (AREA)
  • Artificial Intelligence (AREA)
  • Databases & Information Systems (AREA)
  • Geometry (AREA)
  • Computer Hardware Design (AREA)
  • Computational Linguistics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)
  • Operations Research (AREA)
  • Probability & Statistics with Applications (AREA)
  • Complex Calculations (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明提供在实用的时间内计算组合最优化问题的解的信息处理装置、信息处理系统、信息处理方法、存储介质及程序。作为本发明的实施方式的信息处理装置具备存储部和处理电路,重复更新以第一变量为要素的第一向量及以第二变量为要素的第二向量。所述处理电路通过将对应的所述第二变量加权并与所述第一变量相加来更新所述第一向量,将更新后的所述第一向量作为已搜索向量保存于所述存储部,用根据更新次数而单调增加的第一系数对所述第一变量进行加权并与对应的所述第二变量相加,使用多个所述第一变量来计算问题项,将所述问题项与所述第二变量相加,计算包含更新对象的所述第一向量与所述已搜索向量之间的距离的倒数在内的修正项,将所述修正项与所述第二变量相加,由此更新所述第二向量。

Description

信息处理设备、信息处理系统、信息处理方法、存储介质及 程序
技术领域
本发明的实施方式涉及信息处理装置、信息处理系统、信息处理方法、存储介质及程序。
背景技术
组合最优化问题是从多个组合之中选择最适合于目的的组合的问题。组合最优化问题在数学上被归结为使被称作“目标函数”的具有多个离散变量的函数最大化的问题或者使该函数最小化的问题。组合最优化问题在金融、物流、交通、设计、制造、生命科学等各种领域中是普遍性的问题,但由于组合数以问题体量的指数函数的量级增加的所谓“组合爆炸”,未必能够求出最优解。另外,就连得到与最优解接近的近似解都困难的情况较多。
为了解决各领域中的问题,促进社会的创新及科学技术的进步,要求开发在实用的时间内计算出组合最优化问题的解的技术。
现有技术文献
专利文献
专利文献1:日本特开2017-73106号公报
非专利文献
非专利文献1:H.Goto,K.Tatsumura,A.R.Dixon,Sci.Adv.5,eaav2372(2019).
非专利文献2:H.Goto,Sci.Rep.6,21686(2016).
非专利文献3:土屋、西山、辻田:使用分支特性的组合最优化问题的近似解法URL:http://www.ynl.t.u-tokyo.ac.jp/project/RobotBrainCREST/publications/pdf/tsuchiya/4_01.pdf
非专利文献4:土屋、西山、辻田:决定性的退火算法的解析URL:http://www.ynl.t.u-tokyo.ac.jp/project/RobotBrainCREST/publications/pdf/tsuchiya/4_02.pdf
发明内容
发明所要解决的技术问题
本发明的实施方式提供在实用的时间内计算组合最优化问题的解的信息处理装置、信息处理系统、信息处理方法、存储介质及程序。
用于解决技术问题的手段
作为本发明的实施方式的信息处理装置构成为,重复更新以第一变量为要素的第一向量及以与所述第一变量对应的第二变量为要素的第二向量。信息处理装置具备存储部和处理电路。所述处理电路构成为,通过将对应的所述第二变量加权并与所述第一变量相加来更新所述第一向量,将更新后的所述第一向量作为已搜索向量而保存于所述存储部,用根据更新次数而单调增加或单调减少的第一系数对所述第一变量进行加权并与对应的所述第二变量相加,计算所述第一变量间的问题项,将所述问题项与所述第二变量相加,从所述存储部读出所述已搜索向量,计算包含更新对象的所述第一向量与所述已搜索向量之间的距离的倒数在内的修正项,将所述修正项与所述第二变量相加,由此更新所述第二向量。
附图说明
图1是表示信息处理系统的结构例的图。
图2是表示管理服务器的结构例的框图。
图3是表示保存于管理服务器的存储部中的数据的例子的图。
图4是表示计算服务器的结构例的框图。
图5是表示保存于计算服务器的存储器中的数据的例子的图。
图6是表示通过时间推进来计算模拟分支算法的解的情况下的处理的例子的流程图。
图7是表示使用包含修正项的算法进行求解的情况下的处理的例子的流程图。
图8是表示使用由其他计算节点计算出的第一向量来高效地进行求解的情况下的处理的例子的流程图。
图9是表示在多个计算节点中高效地通过模拟分支算法进行求解的情况下的处理的例子的流程图。
图10是表示在多个计算节点中高效地通过模拟分支算法进行求解的情况下的处理的例子的流程图。
图11是概念性地表示包含多个计算节点的信息处理系统的例子的图。
图12是概念性地表示各计算节点中的扩展哈密顿量的值的变化的例子的图。
图13是概念性地表示各计算节点中的扩展哈密顿量的值的变化的例子的图。
图14是概念性地表示各计算节点中的扩展哈密顿量的值的变化的例子的图。
图15是表示在多个计算方法中得到最优解为止所需的计算次数的直方图。
图16是概略地表示多处理器结构的例子的图。
图17是概略地表示使用GPU的结构的例子的图。
图18是表示为了求解组合最优化问题而执行的整体处理的例子的流程图。
具体实施方式
以下,参照附图对本发明的实施方式进行说明。另外,在附图中,对相同的构成要素标注相同的附图标记,并适当省略说明。
图1是表示信息处理系统100的结构例的框图。图1的信息处理系统100具备管理服务器1、网络2、计算服务器(信息处理装置)3a~3c、线缆4a~4c、开关5及存储装置7。另外,在图1中示出了能够与信息处理系统100进行通信的客户终端6。管理服务器1、计算服务器3a~3c、客户终端6及存储装置7能够经由网络2相互进行数据通信。例如,计算服务器3a~3c能够在存储装置7中保存数据,或者从存储装置7读出数据。网络2例如是多个计算机网络被相互连接的因特网。网络2能够使用有线、无线或者它们的组合作为通信介质。另外,作为在网络2中使用的通信协议的例子,有TCP/IP,但通信协议的种类没有特别限定。
另外,计算服务器3a~3c分别经由线缆4a~4c与开关5连接。线缆4a~4c和开关5形成计算服务器之间的互连。计算服务器3a~3c也能够经由该互连而相互进行数据通信。开关5例如是Infiniband(无限带宽)的开关。线缆4a~4c例如是Infiniband的线缆。但是,也可以使用有线LAN的开关/线缆来代替Infiniband的开关/线缆。关于在线缆4a~4c及开关5中使用的通信标准及通信协议,没有特别限定。作为客户终端6的例子,列举出笔记本PC、台式PC、智能手机、平板电脑、车载终端等。
在组合最优化问题的求解中,可以进行处理的并行化及/或处理的分散化。因此,计算服务器3a~3c及/或计算服务器3a~3c的处理器既可以分担执行计算处理的一部分的步骤,也可以对于不同的变量并行地执行同样的计算处理。管理服务器1例如将由用户输入的组合最优化问题变换为各计算服务器能够处理的形式,对计算服务器进行控制。并且,管理服务器1从各计算服务器取得计算结果,将汇总的计算结果变换为组合最优化问题的解。这样,用户能够得到组合最优化问题的解。设为组合最优化问题的解包含最优解和与最优解接近的近似解。
在图1中示出了3台计算服务器。但是,并不限定信息处理系统中包含的计算服务器的台数。另外,关于在组合最优化问题的求解中使用的计算服务器的台数,也没有特别限定。例如,信息处理系统中包含的计算服务器也可以是1台。另外,可以使用信息处理系统中包含的多个计算服务器中的任一计算服务器来进行组合最优化问题的求解。另外,在信息处理系统中可以包含数百台以上的计算服务器。计算服务器既可以是设置在数据中心中的服务器,也可以是设置在办公室中的台式PC。另外,计算服务器也可以是设置在不同的地点的多个种类的计算机。关于被作为计算服务器使用的信息处理装置的种类,没有特别限定。例如,计算服务器既可以是通用的计算机,也可以是专用的电子电路或它们的组合。
图2是表示管理服务器1的结构例的框图。图2的管理服务器1例如是包括中央运算处理装置(CPU)和存储器的计算机。管理服务器1具备处理器10、存储部14、通信电路15、输入电路16和输出电路17。设为处理器10、存储部14、通信电路15、输入电路16及输出电路17相互经由总线20连接。处理器10包括管理部11、变换部12和控制部13作为内部的构成要素。
处理器10是执行运算、进行管理服务器1的控制的电子电路。处理器10是处理电路的一例。作为处理器10,例如可以使用CPU、微处理器、ASIC、FPGA、PLD或它们的组合。管理部11提供用来经由用户的客户终端6进行管理服务器1的操作的接口。作为管理部11提供的接口的例子,可以举出API、CLI、网页等。例如,用户可以经由管理部11进行组合最优化问题的信息的输入,或进行计算出的组合最优化问题的解的阅览及/或下载。变换部12将组合最优化问题变换为各计算服务器能够处理的形式。控制部13向各计算服务器发送控制指令。控制部13在从各计算服务器得到计算结果后,变换部12将多个计算结果汇总,变换为组合最优化问题的解。另外,控制部13也可以指定各计算服务器或各服务器内的处理器执行的处理内容。
存储部14存储包括管理服务器1的程序、程序的执行所需要的数据及由程序生成的数据在内的各种数据。在此,设为程序包括OS和应用这两者。存储部14也可以是易失性存储器、非易失性存储器或它们的组合。作为易失性存储器的例子,有DRAM、SRAM等。作为非易失性存储器的例,可以举出NAND闪存、NOR闪存、ReR AM或MRAM。另外,作为存储部14也可以使用硬盘、光盘、磁带或外部的存储装置。
通信电路15在与连接在网络2上的各装置之间进行数据的收发。通信电路15例如是有线LAN的NIC(Network Interface Card,网络接口卡)。但是,通信电路15也可以是无线LAN等其他种类的通信电路。输入电路16实现向管理服务器1的数据输入。设为输入电路16具备例如USB、PCI-Express等作为外部端口。在图2的例子中,操作装置18与输入电路16连接。操作装置18是用来向管理服务器1输入信息的装置。操作装置18例如是键盘、鼠标、触控板、声音识别装置等,但并不限于此。输出电路17实现来自管理服务器1的数据输出。设为输出电路17具备HDMI、DisplayPort等作为外部端口。在图2的例子中,显示装置19与输出电路17连接。作为显示装置19的例子,有LCD(液晶显示器)、有机EL(有机电致发光)显示器或投影机,但并不限于此。
管理服务器1的管理者能够使用操作装置18及显示装置19进行管理服务器1的维护。另外,操作装置18及显示装置19也可以被合入到管理服务器1中。另外,在管理服务器1上也可以并不一定连接操作装置18及显示装置19。例如,管理者也可以使用能够与网络2通信的信息终端进行管理服务器1的维护。
图3示出了保存于管理服务器1的存储部14中的数据的例子。在图3的存储部14中,保存有问题数据14A、计算数据14B、管理程序14C、变换程序14D和控制程序14E。例如,问题数据14A包含组合最优化问题的数据。例如,计算数据14B包含从各计算服务器收集到的计算结果。例如,管理程序14C是实现上述的管理部11的功能的程序。例如,变换程序14D是实现上述的变换部12的功能的程序。例如,控制程序14E是实现上述的控制部13的功能的程序。
图4是表示计算服务器的结构例的模块。图4的计算服务器例如是单独地或与其他计算服务器分担地执行第一向量及第二向量的计算的信息处理装置。
图4例示性地表示计算服务器3a的结构。其他计算服务器既可以是与计算服务器3a相同的结构,也可以是与计算服务器3a不同的结构。
计算服务器3a例如具备通信电路31、共享存储器32、处理器33A~33D、存储器34、主机总线适配器35。通信电路31、共享存储器32、处理器33A至33D、存储器34和主机总线适配器35经由总线36彼此连接。
通信电路31在与连接在网络2上的各装置之间进行数据的收发。通信电路31例如是有线LAN的NIC(Network Interface Card:网络接口卡)。但是,通信电路31也可以是无线LAN等其他种类的通信电路。共享存储器32是能够从处理器33A~33D访问的存储器。作为共享存储器32的例子,可以举出DRAM、SRAM等的易失性存储器。但是,作为共享存储器32,也可以使用非易失性存储器等其他种类的存储器。共享存储器32例如也可以构成为,存储第一向量的要素及第二向量的要素。处理器33A~33D能够经由共享存储器32进行数据的共享。另外,也可以并不一定将计算服务器3a的全部的存储器构成为共享存储器。例如,也可以将计算服务器3a的一部分的存储器构成为仅能够从某个处理器访问的本地存储器。另外,共享存储器32及后述的存储器34是信息处理装置的存储部的一例。
处理器33A~33D是执行计算处理的电子电路。处理器例如可以是CPU(CentralProcessing Unit:中央处理单元)、GPU(Graphics Processing Unit:图形处理单元)、FPGA(Field-Programmable Gate Array:现场可编程门阵列)或ASIC(Application SpecificIntegrated Circuit:专用集成电路)中的任一种,也可以是它们的组合。另外,处理器也可以是CPU内核或CPU线程。在处理器是CPU的情况下,关于计算服务器3a所具备的插槽数,没有特别限制。另外,处理器也可以经由PCI express等的总线而与计算服务器3a的其他构成要素连接。
在图4的例子中,计算服务器具备4个处理器。但是,1台计算服务器所具备的处理器的数量也可以与此不同。例如,由计算服务器安装的处理器的数量和/或种类也可以不同。在此,处理器是信息处理装置的处理电路的一例。信息处理装置也可以具备多个处理电路。
信息处理装置例如构成为重复更新以第一变量xi(i=1,2,…,N)为要素的第一向量和以与第一变量对应的第二变量yi(i=1,2,…,N)为要素的第二向量。
例如,信息处理装置的处理电路也可以构成为,通过对第二变量加权并与第一变量相加来更新第一向量,将更新后的第一向量作为已搜索向量保存于存储部,用根据更新次数而单调增加或单调减少的第一系数对第一变量进行加权并与对应的第二变量相加,使用多个第一变量来计算问题项,并将问题项与第二变量相加,从存储部读出已搜索向量,计算包含更新对象的第一向量与已搜索向量之间的距离的倒数在内的修正项,将修正项与第二变量相加,来更新第二向量。问题项也可以基于伊辛模型来计算。在此,第一变量也可以不必单调增加或单调减少。例如,也可以是,(1)在第一系数的值大于阈值T1(例如,T1=1)时,求出组合最优化问题的解(解向量),(2)之后,在将第一系数的值设定为小于阈值T2(例如,T2=2)之后,将第一系数的值再次设定为比阈值T1大,求出组合最优化问题的解(解向量)。另外,问题项也可以包含多体相互作用。关于第一系数、问题项、已搜索向量、修正项、伊辛模型、多体相互作用的详细,在后面叙述。
在信息处理装置中,例如,能够以处理器为单位进行处理内容(任务)的分配。但是,并不限定进行处理内容的分配的计算资源的单位。例如,既可以以计算机为单位进行处理内容的分配,也可以以在处理器上动作的进程单位或CPU线程单位进行处理内容的分配。
以下,再次参照图4,对计算服务器的构成要素进行说明。
存储器34存储包括计算服务器3a的程序、程序的执行所需要的数据以及由程序所生成的数据在内的各种数据。在此,设为程序包括OS和应用这两者。存储器34例如也可以构成为存储第一向量及第二向量。存储器34也可以是易失性存储器、非易失性存储器或它们的组合。作为易失性存储器的例子,有DRAM或SRAM等。作为非易失性存储器的例子,可以举出NAND闪存、NOR闪存、ReRAM或MRAM。另外,作为存储器34也可以使用硬盘、光盘、磁带或外部的存储装置。
主机总线适配器35实现计算服务器间的数据通信。主机总线适配器35经由线缆4a与开关5连接。主机总线适配器35例如是HCA(Host Channel Adaptor)。通过使用主机总线适配器35、线缆4a、开关5来形成能够实现高吞吐量的互连,能够使并行的计算处理的速度提高。
图5表示保存于计算服务器的存储器中的数据的例子。在图5的存储器34中,保存有计算数据34A、计算程序34B和控制程序34C。计算数据34A包含计算服务器3a的计算途中的数据或计算结果。另外,计算数据34A的至少一部分也可以保存于共享存储器32、处理器的高速缓存或处理器的寄存器等不同的存储层级中。计算程序34B是基于规定的算法来实现各处理器中的计算处理以及向共享存储器32及存储器34的数据的保存处理的程序。控制程序34C是基于从管理服务器1的控制部13发送来的指令对计算服务器3a进行控制、将计算服务器3a的计算结果向管理服务器1发送的程序。
接着,对与组合最优化问题的求解关联的技术进行说明。作为为了解出组合最优化问题而使用的信息处理装置的一例,可以举出伊辛机(ising machine)。伊辛机是指计算伊辛模型的基础状态的能量的信息处理装置。此前,伊辛模型主要被作为强磁性体及相转移现象的模型使用的情况较多。但是,近年来,伊辛模型作为用来解出组合最优化问题的模型的利用增加。下述的式(1)表示伊辛模型的能量。
[数式1]
Figure BDA0003283476560000091
在此,si、sj是自旋,自旋是取+1或-1的任一个值的2值变量。N为自旋的数。hi是作用于各自旋的局部磁场。J是自旋间的耦合系数的矩阵。矩阵J是对角成分为0的实际对称矩阵。因此,Jij表示矩阵J的i行j列的要素。另外,式(1)的伊辛模型成为关于自旋的2次式,但如后所述,也可以使用包含自旋的3次以上的项的扩展后的伊辛模型(具有多体相互作用的伊辛模型)。
如果使用式(1)的伊辛模型,则能够以能量EIsing为目标函数,计算使能量EIsing尽可能小的解。伊辛模型的解以自旋的向量(s1,s2,…,sN)的形式表示。设为将该向量称为解向量。特别是,将能量EIsing为最小值的向量(s1,s2,…,sN)称作最优解。但是,计算的伊辛模型的解也可以并不必是严格的最优解。以后,将使用伊辛模型求能量EIsing尽可能小的近似解(即,目标函数的值尽可能接近于最优值的近似解)的问题称作伊辛问题。
由于式(1)的自旋si是2值变量,所以通过使用式(1+si)/2,能够容易地进行与在组合最优化问题中使用的离散变量(比特)的变换。因此,通过将组合最优化问题变换为伊辛问题,使伊辛机进行计算,能够求出组合最优化问题的解。将求解使以取0或1的某个值的离散变量(比特)为变量的2次的目标函数最小化的解的问题称作QUBO(QuadraticUnconstrained Binary Optimization,无约束2值变量2次最优化)问题。在式(1)中表示的伊辛问题可以说与QUBO问题是等价的。
例如,作为伊辛机的硬件安装而提出了量子退火机、相干伊辛机或量子分支机等。量子退火机使用超导电路实现量子退火。相干伊辛机利用由光参量振荡器形成的网络的振荡现象。量子分支机利用具有克尔效应(Kerr effect)的参量振荡器的网络中的量子力学的分支现象。这些硬件安装有可能实现计算时间的大幅的缩短,另一方面,也有难以实现大规模化及稳定的运用的技术问题。
因此,还能够使用广泛普及的数字计算机进行伊辛问题的求解。数字计算机与使用上述的物理现象的硬件安装相比,容易实现大规模化和稳定运用。作为用来以数字计算机进行伊辛问题的求解的算法的一例,可以举出模拟退火(SA)。进行更高速地执行模拟退火的技术的开发。但是,由于通常的模拟退火是各个变量被依次更新的依次更新算法,所以难以实现由并行化带来的计算处理的高速化。
鉴于上述技术问题,提出了能够通过数字计算机中的并行的计算来高速地进行规模较大的组合最优化问题的求解的模拟分支算法。以后,对使用模拟分支算法来求解组合最优化问题的信息处理装置、信息处理系统、信息处理方法、存储介质及程序进行说明。
首先,对模拟分支算法的概要进行叙述。
在模拟分支算法中,对于分别有N个的2个变量xi、yi(i=1,2,…,N),在数值上求解下述的(2)的联立常微分方程式。N个变量xi分别对应于伊辛模型的自旋si。另一方面,N个变量yi分别相当于运动量。设变量xi、yi都是连续变量。以下,分别将以变量xi(i=1,2,…,N)为要素的向量称作第一向量,将以变量yi(i=1,2,…,N)为要素的向量称作第二向量。
[数式2]
Figure BDA0003283476560000111
在此,H为下述的式(3)的哈密顿量。
[数式3]
Figure BDA0003283476560000112
另外,在(2)中,也可以代替式(3)的哈密顿量H,而使用包含下述的式(4)所示的项G(x1,x2,…xN)的哈密顿量H′。将不仅包含哈密顿量H而且还包含项G(x1,x2,…xN)的函数称为扩展哈密顿量,并与原来的哈密顿量H进行区别。
[数式4]
Figure BDA0003283476560000113
以下,以项G(x1,x2,…xN)为修正项的情况为例对处理进行说明。其中,项G(x1,x2,…xN)可以由组合最优化问题的约束条件导出。其中,项G(x1,x2,…xN)的导出方法和种类并不限定。另外,在式(4)中,对原来的哈密顿量H加上了项G(x1,x2,…xN)。但是,项G(x1,x2,…xN)也可以以与此不同的方法编入于扩展哈密顿量。
若参照式(3)的哈密顿量及式(4)的扩展哈密顿量,则各自的项成为第一向量的要素xi或第二向量的要素yi的任一项。也可以使用如下述的式(5)所示那样、能够分为第一向量的要素xi的项U和第二向量的要素yi的项V的扩展哈密顿量。
[数式5]
H′=U(x1,…,xN)+V(y1,…,yN) (5)
在模拟分支算法的时间推进的计算中,变量xi、yi(i=1,2,…,N)的值被重复更新。然后,通过在满足规定的条件时对变量xi进行变换,能够求出伊辛模型的自旋si(i=1,2,…,N)。以下,假设进行时间推进的计算的情况来进行处理的说明。其中,模拟分支算法的计算也可以通过时间推进以外的方式进行。
在(2)及(3)中,系数D相当于失调(detuning)。系数p(t)相当于上述的第一系数,也称为泵送振幅(pumping amplitude)。在时间推进的计算中,能够根据更新次数使系数p(t)的值单调增加。系数p(t)的初始值可以被设定为0。
另外,以下,以第一系数p(t)为正值、第一系数p(t)的值根据更新次数而变大的情况为例进行说明。但是,以下提示的算法的符号也可以反转,使用负值的第一系数p(t)。在该情况下,第一系数p(t)的值根据更新次数而单调减少。但是,在任何情况下,第一系数p(t)的绝对值都根据更新次数而单调增加。
系数K相当于正的克尔系数(Kerr coefficient)。作为系数c,可以使用常数系数。例如,也可以在执行基于模拟分支算法的计算之前决定系数c的值。例如,能够将系数c设定为接近J(2)矩阵的最大特征值的倒数的值。例如,可以使用c=0.5D√(N/2n)的值。在此,n是组合最优化问题所涉及的曲线图的边沿数。另外,a(t)是在时间推进的计算时与p(t)一起增加的系数。例如,作为a(t),可以使用√(p(t)/K)。另外,(3)及(4)中的局部磁场的向量hi能够省略。
例如,在系数p(t)的值超过规定值时,在第一向量中,若分别将作为正值的变量xi变换为+1、将作为负值的变量xi变换为-1,则能够得到以自旋si为要素的解向量。该解向量相当于伊辛问题的解。另外,信息处理装置也可以基于第一向量及第二向量的更新次数,执行上述的变换处理,判定是否求出解向量。
在进行模拟分支算法的计算的情况下,使用辛欧拉法(Symplect ic Eulermethod),将上述的(2)变换为离散性的递推式而进行求解。下述的(6)表示变换为递推式后的模拟分支算法的例子。
[数式6]
Figure BDA0003283476560000131
在此,t是时刻,Δt是时间步长(时间刻度宽度)。另外,在(6)中,为了表示与微分方程式的对应关系,使用了时刻t及时间步长Δt。但是,在实际将算法安装于软件或硬件时,也可以并不一定包含时刻t及时间步长Δt作为明示性的参数。例如,如果将时间步长Δt设为1,则能够从安装时的算法中将时间步长Δt去除。在安装算法时不包含时间t作为明示性的参数的情况下,只要在(4)中将xi(t+Δt)解释为xi(t)的更新后的值即可。即,上述的(4)中的“t”表示更新前的变量的值,“t+Δt”表示更新后的变量的值。
在计算模拟分支算法的时间推进的情况下,基于使p(t)的值从初始值(例如0)增加到规定的值后的变量xi的符号,能够求出自旋si的值。例如,若使用在xi>0时为sgn(xi)=+1、在xi<0时为sgn(xi)=-1的符号函数,则当p(t)的值增加到规定的值时,通过将变量xi用符号函数进行变换,由此能够求出自旋si的值。作为符号函数,例如可以使用当xi≠0时为sgn(xi)=xi/|xi|、当xi=0时为sgn(xi)=+1或-1的函数。关于求出组合最优化问题的解(例如,伊辛模型的自旋si)的定时,没有特别限定。例如,也可以在第一向量及第二向量的更新次数、第一系数p的值或目标函数的值大于阈值时求出组合最优化问题的解(解向量)。
图6的流程图表示通过时间推进来计算模拟分支算法的解的情况下的处理的例子。以下,参照图6对处理进行说明。
首先,计算服务器从管理服务器1取得与问题对应的矩阵Jij及向量hi(步骤S101)。接着,计算服务器将系数p(t)及a(t)初始化(步骤S102)。例如,在步骤S102中能够将系数p及a的值设为0,但并不限定系数p及a的初始值。接着,计算服务器将第一变量xi及第二变量yi初始化(步骤S103)。在此,第一变量xi是第一向量的要素。另外,第二变量yi是第二向量的要素。在步骤S103中计算服务器例如也可以通过伪随机数将xi及yi初始化。但是,并不限定xi及yi的初始化的方法。此外,也可以在与此不同的定时进行变量的初始化,还可以至少将某个变量多次初始化。
接着,计算服务器通过将对应的第二向量的要素yi加权并与第一向量的要素xi相加来更新第一向量(步骤S104)。例如,在步骤S104中,能够对变量xi加上Δt×D×yi。然后,计算服务器更新第二向量的元素yi(步骤S105及S106)。例如,在步骤S105中,能够对变量yi加上Δt×[(p-D-K×xi×xi)×xi]。在步骤S106中,能够进一步对变量yi加上-Δt×c×hi×a-Δt×c×ΣJij×xj
接着,计算服务器将系数p及a的值更新(步骤S107)。例如,能够对系数p加上一定的值(Δp),并将系数a设定为更新后的系数p的正的平方根。但是,如后述那样,这只不过是系数p及a的值的更新方法的一例。接着,计算服务器判定第一向量及第二向量的更新次数是否小于阈值(步骤S108)。在更新次数小于阈值的情况下(步骤S108的是),计算服务器再次执行步骤S104~S107的处理。在更新次数为阈值以上的情况下(步骤S108的否),基于第一向量的要素xi求出作为解向量的要素的自旋si(步骤S109)。在步骤S109中,例如在第一向量中,可以分别将作为正值的变量xi变换为+1,将作为负值的变量xi变换为-1,得到解向量。
另外,在步骤S108的判定中,在更新次数小于阈值的情况下(步骤S108的是),也可以基于第一向量来计算哈密顿量的值,并存储第一向量及哈密顿量的值。由此,用户能够通过多个第一向量选择最接近于最优解的近似解。
另外,也可以将图6的流程图中表示的至少某个处理并行地执行。例如,也可以并行地执行步骤S104~S106的处理,以将第一向量及第二向量分别具有的N个要素的至少一部分并行地更新。例如,也可以使用多台计算服务器使处理并行化。也可以通过多个处理器使处理并行化。但是,并不限定用来实现处理的并行化的安装及处理的并行化的方式。
上述的步骤S105~S106中表示的变量xi及yi的更新处理的执行顺序只不过为一例。因此,也可以以与此不同的顺序执行变量xi及yi的更新处理。例如,也可以将执行变量xi的更新处理和变量yi的更新处理的顺序进行调换。另外,各变量的更新处理中包含的子处理的顺序也没有限定。例如,变量yi的更新处理中包含的加法处理的执行顺序也可以与图6的例子不同。作为用来执行各变量的更新处理的前提的处理的执行顺序及定时,也没有特别限定。例如,也可以将问题项的计算处理与包括变量xi的更新处理在内的其他处理并行地执行。变量xi及yi的更新处理、各变量的更新处理中包含的子处理及问题项的计算处理被执行的顺序及定时没有被限定这一点,对于以后所示的各流程图的处理也是同样的。
[高效解的搜索]
在包含模拟分支算法的最优化问题的计算中,优选得到最优解或接近于最优解的近似解(称为实用的解)。但是,计算处理(例如,图6的处理)的各试行未必能够得到实用的解。例如,在计算处理的试行后得到的解也有可能不是实用的解而是局部解。另外,也有可能在问题中存在多个局部解。为了提高找到实用的解的概率,考虑使多个计算节点分别执行计算处理。另外,计算节点也可以重复执行计算处理,多次搜索解。进而,也可以将前者与后者的方法组合。
这里,计算节点例如是计算服务器(信息处理装置)、处理器(CPU)、GPU、半导体电路、虚拟计算机(VM)、虚拟处理器、CPU线程、进程。计算节点只要是能够成为计算处理的执行主体的任何计算资源即可,并不限定其粒度、硬件/软件的区别。
但是,在各个计算节点独立地执行了计算处理的情况下,多个计算节点有可能会对解空间的重复的区域进行搜索。另外,在重复进行计算处理的情况下,也可能存在计算节点在多个尝试中对解空间的相同区域进行搜索的情况。因此,在多个计算节点间计算出相同的局部解,或者重复计算出相同的局部解。理想的是,在计算处理中搜索解空间的全部的局部解,对各局部解进行评价而找到最优解。另一方面,若考虑到在解空间中可能存在多个局部解,则期望信息处理装置/信息处理系统执行高效的求解处理,在现实的计算时间及计算量的范围内得到实用的解。
例如,计算节点能够在计算处理的中途将计算出的第一向量保存于存储部。在以后的计算处理中,计算节点从存储部读出以前计算出的第一向量x(m)。在此,m是对得到第一向量的要素的定时进行表示的编号。例如,初次得到的第一向量为m=1,第二次得到的第一向量为m=2。然后,计算节点执行基于以前计算出的第一向量x(m)的修正处理。由此,能够避免对解空间的重复的区域进行搜索,能够以相同的计算时间及计算量对解空间的更广的区域进行搜索。以下,将以前计算出的第一向量称为已搜索向量,与更新对象的第一向量进行区别。
以下,对用于进行高效的解的搜索的处理的详细进行说明。
例如,能够使用上述的修正项G(x1,x2,…xN)进行修正处理。下述的式(7)是第一向量与已搜索向量之间的距离的一例。
[数式7]
Figure BDA0003283476560000161
式(7)被称为Q次方范数。在式(7)中,Q可以取任意的正值。
下述的式(8)将式(7)的Q设为无限大,称为无限次方范数。
[数式8]
||x-x(m)||=max{|x1|,…,|xN|} (8)
以下,以使用平方范数作为距离的情况为例进行说明。但是,并不限定在计算中使用的距离的种类。
例如,如下述的式(9)所示,也可以在修正项G(x1,x2,…xN)中包含第一向量与已搜索向量之间的距离的倒数。
[数式9]
Figure BDA0003283476560000171
在该情况下,若计算中途的第一向量接近已搜索向量,则修正项G(x1,x2,…xN)的值变大,由此,能够以避开已搜索向量附近的区域的方式执行第一向量的更新处理。(9)只不过是计算中能够使用的修正项的一例。因此,在计算中,也可以使用与(9)不同形式的修正项。
下述的式(10)是包含修正项的扩展哈密顿量H′的一例。
[数式10]
Figure BDA0003283476560000172
例如,作为式(10)的系数cA,能够使用任意的正值。另外,关于kA,也能够使用任意的正值。(10)的修正项包含使用此前得到的各个已搜索向量而计算出的距离的倒数之和。即,信息处理装置的处理电路也可以构成为,使用多个已搜索向量的每一个来计算距离的倒数,并将多个倒数相加,来计算修正项。由此,能够以避开此前得到的多个已搜索向量附近的区域的方式执行第一向量的更新处理。
在使用式(10)的扩展哈密顿量的情况下,能够执行分别关于N个某2个变量xi、yi(i=1,2,…,N)而数值地求解下述(11)所示的联立常微分方程式的处理。
[数式11]
Figure BDA0003283476560000181
下述(12)表示关于xi对(10)进行偏微分而得的值。
[数式12]
Figure BDA0003283476560000182
在(10)的修正项的分母为平方范数的情况下,在(12)的分母的计算中,不需要平方根的计算,因此能够抑制计算量。例如,在第一向量的要素数为N,存储部所保持的已搜索向量的数量为M的情况下,能够用N×M的常数倍的计算量来求出修正项。
使用辛欧拉法,可以将上述的(11)变换为离散性的递推式,并进行模拟分支算法的计算。下述的(13)示出了变换为递推式后的模拟分支算法的例子。
[数式13]
Figure BDA0003283476560000183
当使用(13)的算法时,可以根据已搜索向量来自适应地更新第一向量。
(13)中的下述的(14)的项来源于伊辛能量。该项的形式由于根据想要解的问题来决定,所以因此称为问题项(problem term)。
[数式14]
Figure BDA0003283476560000184
如后所述,问题项也可以与(14)不同。
图7的流程图表示使用包含修正项的算法进行求解的情况下的处理的例子。以下,参照图7对处理进行说明。
首先,计算服务器对系数p(t)、a(t)及变量m进行初始化(步骤S111)。例如,在步骤S111中能够将系数p及a的值设为0,但并不限定系数p及a的初始值。例如,在步骤S111中能够将变量m设定为1。另外,虽未图示,但计算服务器在图7的流程图的处理开始之前从管理服务器1取得与问题对应的矩阵Jij及向量hi。接下来,计算服务器对第一变量xi及第二变量yi进行初始化(步骤S112)。在此,第一变量xi是第一向量的要素。另外,第二变量yi是第二向量的要素。在步骤S112中,计算服务器例如可以通过伪随机数对xi和yi进行初始化。但是,并不限定xi及yi的初始化的方法。
然后,计算服务器通过将对应的第二变量yi加权并与第一变量xi相加来更新第一向量(步骤S113)。例如,在步骤S113中,能够对变量xi加上Δt×D×yi。接着,计算服务器更新第二变量yi(步骤S114~S116)。例如,在步骤S114中,能够对yi加上Δt×[(p-D-K×xi×xi)×xi]。在步骤S115中,能够进一步对yi加上-Δt×c×hi×a-Δt×c×ΣJij×xj。步骤S115相当于对第二变量yi的问题项的加法处理。在步骤S116中,能够对yi加上(12)的修正项。例如,修正项可以基于保存于存储部中的已搜索向量及第一向量来计算。
接下来,计算服务器更新系数p(第一系数)及a的值(步骤S117)。例如,可以对系数p加上一定的值(Δp),将系数a设定为更新后的系数p的正的平方根。但是,如后所述,这只不过是更新系数p及a的值的方法的一例。另外,在是否继续循环的判定中使用变量t的情况下,也可以对变量t加上Δt。然后,计算服务器判定第一向量及第二向量的更新次数是否小于阈值(步骤S118)。例如,通过将变量t的值与T进行比较,能够进行步骤S118的判定。但是,也可以通过其他方法进行判定。
在更新次数小于阈值的情况下(步骤S118的是),计算服务器再次执行步骤S113~S117的处理。在更新次数为阈值以上的情况下(步骤S118的否),将第一向量作为已搜索向量保存于存储部,使m递增(步骤S119)。然后,在保存于存储部的已搜索向量的数量为阈值Mth以上的情况下,针对任意的m删除存储部的已搜索向量(步骤S120)。另外,将第一向量作为已搜索向量而保存于存储部中的处理也可以在从步骤S113的执行后到步骤S117之间的任意的定时执行。
接着,计算服务器将第一向量及第二向量代入上述的式(6)的哈密顿量,计算哈密顿量的值E。然后,计算服务器判定哈密顿量的值E是否小于阈值E0(步骤S121)。在哈密顿量的值E小于阈值E0的情况下(步骤S121的是),计算服务器能够基于第一变量xi求出作为解向量的要素的自旋si(未图示)。例如,在第一向量中,分别将作为正值的第一变量xi变换为+1,将作为负值的第一变量xi变换为-1,能够得到解向量。
在步骤S121的判定中,在哈密顿量的值E不小于阈值E0的情况下(步骤S121的否),计算服务器再次执行步骤S111以后的处理。这样,在步骤S121的判定中,进行是否得到了最优解或者接近于最优解的近似解的确认。这样,信息处理装置的处理电路也可以构成为基于哈密顿量(目标函数)的值来判定是否停止第一向量及第二向量的更新。
用户能够根据在问题的公式化中使用的符号及在求解中被要求的精度来决定阈值E0的值。如果存在根据公式化中使用的符号而哈密顿量的值取极小值的第一向量成为最优解,则也可能存在哈密顿量的值取极大值的第一向量成为最优解的情况。例如,在上述的(10)的扩展哈密顿量中,值取极小值的第一向量成为最优解。
另外,计算服务器也可以在任意的定时计算哈密顿量的值。计算服务器能够将哈密顿量的值及在计算中使用的第一向量及第二向量保存于存储部。信息处理装置的处理电路也可以构成为将更新后的第二向量作为第三向量而保存于存储部。另外,处理电路也可以构成为,从存储部读出在与已搜索向量相同的迭代中更新后的第三向量,基于已搜索向量及第三向量来计算哈密顿量(目标函数)的值。
用户可以根据可利用的存储区域及计算资源的量,决定计算哈密顿量的值的频度。另外,也可以在步骤S118的定时基于保存于存储部中的第1向量、第2向量及哈密顿量的值的组合数是否超过阈值来进行是否继续循环处理的判定。这样,用户可以从保存于存储部中的多个已搜索向量中选择最接近于最优解的已搜索向量,并计算解向量。
信息处理装置的处理电路也可以构成为,基于哈密顿量(目标函数)的值,从保存于存储部的多个已搜索向量中选择任一个已搜索向量,将所选择的已搜索向量的正值即第一变量变换为第一值,将为负值的第一变量变换为比第一值小的第二值,由此计算解向量。在此,第一值例如为+1。第二值例如为-1。但是,第一值及第二值也可以是其他的值。
另外,也可以并行地执行图7的流程图所示的至少任一个处理。例如,也可以并行地执行步骤S113~S116的处理,以使第一向量及第二向量分别具有的N个要素的至少一部分被并行地更新。例如,也可以使用多台计算服务器来使处理并行化。也可以通过多个处理器使处理并行化。但是,并不限定用于实现处理的并行化的安装及处理的并行化的方式。
在图7的步骤S120中,执行将保存于存储部中的任一个已搜索向量删除的处理。在步骤S120中,能够随机地选择要删除的已搜索向量。例如,在可使用的存储区域存在限制的情况下,能够基于该限制来决定上述的阈值Mth。另外,与可使用的存储区域的限制无关地,对由存储部保持的已搜索向量的数量设置上限,由此能够抑制步骤S116(修正项的计算)中的计算量。具体而言,能够以N×Mth的常数倍的计算量以下来执行修正项的计算处理。
但是,计算服务器既可以必定跳过步骤S120的处理,也可以在步骤S120的定时执行其他处理。例如,也可以使已搜索向量移动到其他的存储器。另外,在计算资源充分的情况下,也可以不进行已搜索向量的删除处理。
这里,对信息处理方法、存储介质及程序的例子进行叙述。
在信息处理方法的第一例中,使用存储部和多个处理电路,重复更新以第一变量为要素的第一向量及以与第一变量对应的第二变量为要素的第二向量。在该情况下,信息处理方法也可以包括如下步骤:多个处理电路通过将对应的第二变量加权并与第一变量相加来更新第一向量的步骤;将更新了多个处理电路的第一向量作为已搜索向量保存于存储部的步骤;多个处理电路按照根据更新次数而单调增加或单调减少的第一系数对第一变量进行加权并与对应的第二变量相加的步骤;多个处理电路使用多个第一变量来计算问题项,并将问题项与第二变量相加的步骤;多个处理电路从存储部读出已搜索向量的步骤;多个处理电路计算包含更新对象的第一向量与已搜索向量之间的距离的倒数在内的修正项的步骤;以及多个处理电路将修正项与第二变量相加的步骤。
在信息处理方法的第二例中,使用存储装置和多个信息处理装置,重复更新以第一变量为要素的第一向量及以与第一变量对应的第二变量为要素的第二向量。在该情况下,信息处理方法也可以包括如下步骤:多个信息处理装置通过将对应的第二变量加权并与第一变量相加来更新第一向量的步骤;多个信息处理装置将更新后的第一向量作为已搜索向量保存于存储装置的步骤;多个信息处理装置用根据更新次数而单调增加或单调减少的第一系数对第一变量进行加权并与对应的第二变量相加的步骤;多个信息处理装置使用多个第一变量来计算问题项,并将问题项与第二变量相加的步骤;多个信息处理装置从存储装置读出已搜索向量的步骤;多个信息处理装置计算包含更新对象的第一向量与已搜索向量之间的距离的倒数在内的修正项的步骤;以及多个信息处理装置将修正项与第二变量相加的步骤。
程序例如重复更新以第一变量为要素的第一向量及以与第一变量对应的第二变量为要素的第二向量。在该情况下,程序也可以使计算机执行如下步骤:通过将对应的第二变量加权并与第一变量相加来更新第一向量的步骤;将更新后的第一向量作为已搜索向量保存于存储部的步骤;用根据更新次数而单调增加或单调减少的第一系数对第一变量进行加权并与对应的第二变量相加的步骤;使用多个第一变量来计算问题项,并将问题项与第二变量相加的步骤;从存储部读出已搜索向量的步骤;计算包含更新对象的第一向量与已搜索向量之间的距离的倒数在内的修正项的步骤;以及将修正项与第二变量相加的步骤。另外,存储介质也可以是存储有上述程序的非暂时的计算机可读的存储介质。
[并行系统中高效解的搜索]
在多个计算节点并行地执行模拟分支算法的情况下,也能够应用上述的自适应搜索。在此,与上述相同的点在于,计算节点只要是能够成为计算处理的执行主体的任何计算资源即可,不限定粒度及硬件/软件的区别。也可以将第一向量及第二向量的相同的对的更新处理分担到多个计算节点而执行。在该情况下,可以说多个计算节点形成计算同一解向量的一个组。另外,多个计算节点也可以被分为执行第一向量及第二向量不同的对的更新处理的组。在该情况下,可以说多个计算节点被分为分别计算不同的解向量的多个组。
信息处理装置也可以具备多个处理电路。在该情况下,各个处理电路也可以被分为执行第一向量及第二向量的不同的对的更新处理的多个组。各个处理电路也可以构成为将其他处理电路在存储部中保存的已搜索向量读出。
另外,也可以通过包含存储装置7和多个信息处理装置在内的信息处理系统,来重复更新以第一变量为要素的第一向量及以与第一变量对应的第二变量为要素的第二向量。在该情况下,各个信息处理装置可以构成为,通过将对应的第二变量加权并与第一变量相加来更新第一向量,将更新后的第一向量作为已搜索向量保存于存储装置7,用根据更新次数而单调增加或单调减少的第一系数对第一变量进行加权并与对应的第二变量相加,使用多个第一变量来计算问题项,并将问题项与第二变量相加,从存储装置7读出已搜索向量,计算包含更新对象的第一向量与已搜索向量之间的距离的倒数在内的修正项,将修正项与第二变量相加,由此更新第二向量。
在信息处理系统包含多个信息处理装置的情况下,各个信息处理装置也可以被分为执行第一向量及第二向量的不同的对的更新处理的多个组。各个信息处理装置也可以构成为其他信息处理装置读出保存于存储部中的已搜索向量。
以下,对多个计算节点分别执行了模拟分支算法的情况下能够进行高效的解的搜索的处理的例子进行说明。
下述的式(15)是不包含修正项的哈密顿量的一例。
[数式15]
Figure BDA0003283476560000241
例如,如果使各个计算节点独立地执行使用了上述的式(15)的哈密顿量的解的计算,则有可能多个计算节点对解空间的重复的区域进行搜索,或者多个计算节点得到相同的局部解。
因此,为了避免不同的计算节点对解空间的重复的区域进行搜索,能够使用下述的(16)那样的修正项。
[数式16]
Figure BDA0003283476560000242
在(15)及(16)中,m1表示在各个计算节点的计算中使用的变量或值。另一方面,m2表示从各个计算节点观察到的其他计算节点在计算中使用的变量。例如,(16)的向量x(m1)是在本计算节点中计算出的第一向量。另一方面,向量x(m2)是在其他计算节点中计算出的第一向量。即,在使用(16)的修正项的情况下,作为已搜索向量,使用在其他计算节点中计算出的第一向量。另外,能够对(16)的cG及kG设定任意的正值。cG和kG的值也可以不同。
例如,若将(16)的修正项与式(15)相加,则得到下述的式(17)的扩展哈密顿量。
[数式17]
Figure BDA0003283476560000251
若向量x(m1)在解空间中接近向量x(m2),则在(16)及(17)所示的各修正项中,分母的值变小。因此,(16)的值变大,在各个计算节点中,以避开向量x(m2)附近的区域的方式执行第一向量x(m1)的更新处理。
在使用式(17)的扩展哈密顿量的情况下,能够分别关于N个某2个变量xi、yi(i=1,2,…,N)而数值地求解下述(18)所示的联立常微分方程式的处理。
[数式18]
Figure BDA0003283476560000252
下述的(19)是关于xi对(17)的修正项进行偏微分而得到的。
[数式19]
Figure BDA0003283476560000253
在(16)的修正项的分母为平方范数的情况下,在(19)的分母的计算中,不需要平方根的计算,因此能够抑制计算量。若在将N设为第一向量的要素数、将M设为其他计算节点的已搜索向量的数量的情况下,则(19)的修正项能够用N×M的常数倍的计算量来计算。
能够使用辛欧拉法,将上述的(18)变换为离散的递推式,并进行模拟分支算法的计算。下述的(20)示出了变换为递推式后的模拟分支算法的例子。
[数式20]
Figure BDA0003283476560000261
(20)的算法也包含上述的(14)的问题项。如后所述,也可以使用与(20)不同形式的问题项。
例如,信息处理装置可以包括多个处理电路。各处理电路也可以构成为,将更新后的第一向量保存于存储部。由此,各处理电路能够使用其他处理电路计算出的已搜索向量来计算修正项。另外,各处理电路也可以构成为,将更新后的第一向量传送到其他处理电路,使用从其他处理电路接收到的第一向量来代替已搜索向量而计算修正项。
图8的流程图表示使用由其他计算节点计算出的第一向量来高效地进行求解的情况下的处理的例子。以下,参照图8对处理进行说明。
首先,计算服务器从管理服务器1取得与问题对应的矩阵Jij及向量hi,对系数p(t)、a(t)及变量t进行初始化(步骤S131)。例如,在步骤S131中,能够将p、a及t的值设为0。但是,并不限定p、a及t的初始值。接着,计算服务器针对m1=1~M对第一变量xi (m1)及第二变量yi (m1)进行初始化(步骤S132)。在此,第一变量xi (m1)是第一向量的要素。第二变量yi (m1)是第二向量的要素。例如,也可以通过伪随机数对xi (m1)及yi (m1)进行初始化。但是,并不限定xi (m1)及yi (m1)的初始化的方法。然后,计算服务器将1代入计数器变量m1(步骤S133)。这里,计数器变量m1是指定计算节点的变量。通过步骤S133的处理,进行计算处理的计算节点#1被确定。另外,步骤S131~S133的处理也可以由管理服务器1等计算服务器以外的计算机执行。
接着,计算节点#(m1)通过将对应的第二变量yi (m1)加权并与第一变量xi (m1)相加来更新第一向量,将更新后的第一向量保存于与其他计算节点共享的存储区域(步骤S134)。例如,在步骤S134中,能够对xi (m1)加上Δt×D×yi (m1)。例如,在其他计算节点是其他处理器或其他处理器上的线程的情况下,能够将更新的第一向量保存于共享存储器32或存储器34中。另外,在其他计算节点是计算服务器的情况下,也可以在共享的外部存储器中保存第一向量。其他计算节点能够将保存于共享的存储区域中的第一向量用作已搜索向量。此外,在步骤S134中,也可以向其他计算节点传送更新后的第一向量。
接着,计算节点#(m1)更新第二变量yi (m1)(步骤S135~S137)。例如,在步骤S135中,可以在yi (m1)上加上Δt×[(p-D-K×xi (m1)×xi (m1))×xi (m1)]。在步骤S136中,能够进一步对yi (m1)加上-Δt×c×hi×a-Δt×c×ΣJij×xj (m1)。步骤S136相当于向第二变量yi的问题项的加法处理。然后,在步骤S137中,能够对变量yi加上(19)的修正项。例如,基于第一向量和在被共享的存储区域中保存的已搜索向量来计算修正项。然后,计算服务器使计数器变量m1递增(步骤S138)。
接着,计算服务器判定计数器变量1是否为M以下(步骤S139)。在计数器变量m1为M以下的情况下(步骤S139的是),再次执行步骤S134~步骤S138的处理。另一方面,在计数器变量m1大于M的情况下(步骤S139的否),计算服务器更新p、a及t的值(步骤S140)。例如,可以对p加上一定的值(Δp),将a设定为更新后的系数p的正的平方根,对t加上Δt。但是,如后所述,这只不过是p、a及t的值的更新方法的一例。然后,计算服务器判定第一向量及第二向量的更新次数是否小于阈值(步骤S141)。例如,通过将变量t的值与T进行比较,能够进行步骤S141的判定。但是,也可以通过其他方法进行判定。
在更新次数小于阈值的情况下(步骤S141的是),计算服务器执行步骤S133的处理,所指定的计算节点进一步执行步骤S134以后的处理。在更新次数为阈值以上的情况下(步骤S141的否),计算服务器或管理服务器1能够基于第一变量xi求出作为解向量的要素的自旋si(未图示)。例如,在第一向量中,分别将作为正值的第一变量xi变换为+1,将作为负值的第一变量xi变换为-1,能够得到解向量。
在图8的流程图中,计算节点#1~计算节点#M通过循环来迭代地执行第一向量及第二向量的要素的更新处理。但是,也可以跳过图8的流程图中的步骤S133、S138及S139的处理,取而代之使多个计算节点并行地执行步骤S134~S137的处理。在该情况下,对多个计算节点进行管理的构成要素(例如,管理服务器1的控制部13或者任一个计算服务器)能够执行步骤S140及S141的处理。由此,能够使整体的计算处理高速化。
并不限定并行地执行步骤S134~S137的处理的多个计算节点的数量M。例如,计算节点的数量M可以等于第一向量及第二向量各自具有的要素数(变量的数量)N。在该情况下,能够通过使用M个计算节点来得到一个解向量。
另外,计算节点的数量M也可以是与第一向量及第二向量分别具有的要素数N不同的数。例如,计算节点的数量M也可以是第一向量及第二向量分别具有的要素数N的正的整数倍。在该情况下,通过使用多个计算节点,能够得到M/N个解向量。然后,多个计算节点按照计算对象的每个解向量被进行分组。这样,也可以在以分别进行不同的解向量的计算的方式被分组的计算节点之间共享已搜索向量,进而实现高效的计算处理。即,向量x(m2)也可以是属于相同组的计算节点计算出的第一向量。另外,向量x(m2)也可以是属于不同组的计算节点计算出的第一向量。此外,在属于不同组的计算节点间,也可以不使处理同步。
另外,也可以并行地执行步骤S134~S137的处理,以使第一向量及第二向量分别具有的N个要素的至少一部分被并行地更新。在此,不限定处理的并行化的安装及方式。
此外,计算节点也可以在任意的定时基于第一向量及第二向量来计算哈密顿量的值。哈密顿量既可以是(15)的哈密顿量,也可以是(17)的包含修正项的扩展哈密顿量。另外,也可以计算前者和后者双方。计算节点能够将第一向量、第二向量及哈密顿量的值保存于存储部。这些处理可以在步骤S141的判定为肯定的情况下每次执行。另外,也可以在步骤S141的判定为肯定的定时中的一部分定时执行。并且,上述的处理也可以在其他定时执行。用户能够根据可利用的存储区域及计算资源的量来决定计算哈密顿量的值的频度。在步骤S141的定时,也可以基于保存于存储部的第一向量、第二向量及哈密顿量的值的组合的数量是否超过阈值来进行是否继续进行循环处理的判定。这样,用户能够根据保存于存储部中的多个第一向量(局部解),选择最接近于最优解的第一向量,计算解向量。
[快照(snapshot)的利用]
以下,对在跨越进行第一向量及第二向量的不同的对的计算的计算节点的组来进行已搜索向量的共享时也能够应用的处理的其他例子进行说明。计算节点只要是能够成为计算处理的执行主体的任何计算资源即可。因此,并不限定计算节点的粒度及硬件/软件的区别。
图9及图10的流程图表示在多个计算节点中高效地通过模拟分支算法进行求解的情况下的处理的例子。以下,参照图9及图10对处理进行说明。
首先,计算服务器从管理服务器1获取与问题对应的矩阵Jij及向量hi,并向各计算节点传送这些数据(步骤S150)。在步骤S150中,管理服务器1也可以直接向各计算节点传送与问题对应的矩阵Jij及向量hi。接着,计算服务器将1代入计数器变量m1(步骤S151)。另外,也可以跳过步骤S151。在该情况下,也可以在多个计算节点中针对m1=1~M并行地执行后述的步骤S152~S160的处理。
与循环处理的有无无关,变量m1表示信息处理系统内的各个计算节点的编号。另外,m2表示从各个计算节点观察到的其他计算节点的编号。计算节点的数量M可以等于第一向量及第二向量各自具有的要素数N。另外,计算节点的数量M也可以是与第一向量及第二向量分别具有的要素数N不同的数。进而,计算节点的数量M也可以是第一向量及第二向量分别具有的要素数N的正的整数倍。
然后,各计算节点对变量t(m1)及系数p(m1)、a(m1)进行初始化(步骤S152)。例如,在步骤S131中,能够将p(m1)、a(m1)及t(m1)的值设为0。但是,并不限定p(m1)、a(m1)和t(m1)的初始值。接下来,各计算节点对第一变量xi (m1)及第二变量yi (m1)进行初始化(步骤S153)。在此,第一变量xi (m1)是第一向量的要素。第二变量yi (m1)是第二向量的要素。在步骤S153中,计算服务器例如可以通过伪随机数对xi (m1)及yi (m1)进行初始化。但是,并不限定xi (m1)及yi (m1)的初始化的方法。
然后,各计算节点通过将对应的第二变量yi (m1)加权并与第一变量xi (m1)相加来更新第一向量(步骤S154)。例如,在步骤S154中,能够对xi (m1)加上Δt×D×yi (m1)。接下来,各计算节点更新第二变量yi (m1)(步骤S155~S157)。例如,在步骤S155中,能够对yi (m1)加上Δt×[(p-D-K×xi (m1)×xi (m1))×xi (m1)]。在步骤S156中,能够进一步对yi (m1)加上-Δt×c×hi×a-Δt×c×ΣJij×xj (m1)。步骤S156相当于对第二变量yi的问题项的加法处理。然后,在步骤S157中,能够对第二变量yi加上(19)的修正项。各计算节点例如基于存储在第一向量及共享的存储区域300中的已搜索向量来计算修正项。在此,已搜索向量也可以保存有进行不同的解向量的计算的计算节点。另外,已搜索向量也可以是进行相同的解向量的计算的计算节点所保存的向量。
接下来,各计算节点更新t(m1)、p(m1)及a(m1)的值(步骤S158)。例如,可以对t(m1)加上Δt,对p(m1)加上一定的值(Δp),将a(m1)设定为更新后的系数p的正的平方根。但是,这只不过是p(m1)、a(m1)及t(m1)的值的更新方法的一例。然后,各计算节点在存储区域300中保存第一向量的快照(步骤S159)。这里,快照是指包含步骤S159被执行的定时的第一向量的各要素xi (m1)的值在内的数据。作为存储区域300,能够使用能够从多个计算节点进行访问的存储区域。另外,作为存储区域300,例如能够使用共享存储器32、存储器34或外部存储器内的存储区域。但是,并不限定提供存储区域300的存储器或存储装置的种类。存储区域300也可以是多个种类的存储器或存储器的组合。另外,在步骤S159中也可以将在与第一向量相同的迭代中更新后的第二向量保存于存储区域300中。
接下来,各计算节点判定第一向量及第二向量的更新次数是否小于阈值(步骤S160)。例如,通过将变量t(m1)的值与T进行比较,能够进行步骤S160的判定。但是,也可以通过其他方法进行判定。
在更新次数小于阈值的情况下(步骤S160的是),计算节点执行步骤S154以后的处理。在更新次数为阈值以上的情况下(步骤S160的否),计算服务器使计数器变量m1递增(步骤S161)。另外,也可以跳过步骤S161。然后,计算服务器或管理服务器1能够基于哈密顿量的值来选择被保存于存储区域300中的至少任一个已搜索向量,并计算解向量(步骤S162)。哈密顿量可以是(15)的哈密顿量,也可以是(17)的包含修正项的目标函数。另外,也可以计算前者和后者双方。另外,哈密顿量的值也可以在与步骤S162不同的定时进行计算。在该情况下,计算节点能够将哈密顿量的值与第一向量及第二向量一起保存于存储区域300中。
另外,在步骤S159中,也可以不必每次将变量的快照保存于存储区域300中。例如,也可以在步骤S154~S159的循环处理的一部分次中,将变量的快照保存于存储区域300。由此,能够抑制存储区域的消耗。
在任一个计算节点中发生故障而计算处理异常停止的情况下,能够使用保存于存储区域300中的第一向量及第二向量的快照来恢复数据,并重新开始计算处理。在存储区域300中保存第一向量及第二向量的数据有助于信息处理系统的耐故障性及可用性的提高。
通过在信息处理系统中准备能够供多个计算节点在任意的定时保存第一向量的要素(及第二向量的要素)的存储区域300,由此各计算节点不论定时都能够在步骤S157中进行(19)的修正项的计算及该修正项的向变量yi的相加。在(19)的修正项的计算中,在循环处理的不同的迭代中计算出的第一向量也可以混合存在。因此,在某个计算节点正在更新第一向量的情况下,其他计算节点能够使用更新前的第一向量进行修正项的计算。由此,能够在多个计算节点之间减少处理的同步处理的频度,并且高效地以比较短的时间进行组合最优化问题的求解。
图11概念性地示出了包括多个计算节点的信息处理系统的示例。图11示出了计算节点#1、计算节点#2及计算节点#3。在计算节点#1和计算节点#2之间互相交换与已搜索的第一向量有关的信息。同样地,在计算节点#2与计算节点#3之间交换互相交换与已搜索的第一向量有关的信息。另外,虽未示出,但在计算节点#1与计算节点#3之间也可以互相交换与已搜索的第一向量有关的信息。计算节点#1与计算节点#3之间的数据传送既可以直接进行,也可以经由计算节点#2间接进行。由此,能够避免在多个计算节点中对重复的解空间进行搜索。
图11示出了3个计算节点。但是,信息处理装置或信息处理系统所具备的计算节点的数量也可以与此不同。另外,并不限定在计算节点间的连接拓扑及计算节点间进行数据传送的路径。例如,在计算节点是处理器的情况下,也可以经由处理器间通信或共享存储器32进行数据传送。另外,在计算节点是计算服务器的情况下,也可以经由包含开关5的计算服务器之间的互连进行数据传送。另外,图11的各计算节点也可以并行地执行在图9和图10的流程图中说明的向存储区域300保存第一向量的快照的保存处理。
图12~图14概念性地表示各计算节点中的扩展哈密顿量的值的变化的例子。在图12中,示出了计算节点#1计算出的第一向量x(m1)、计算节点#2计算出的第一向量x(m2)、和扩展哈密顿量H’的值。
例如,设为计算节点#1从计算节点#2获取第一向量x(m2)的数据。在该情况下,计算节点#1能够使用取得的第一向量x(m2)计算(19)的修正项,更新第一向量及第二向量。其结果,如图13所示,在计算节点#1中,在计算节点#2的第一向量x(m2)附近,扩展哈密顿量的值变大。由此,在计算节点#1中更新的第一向量x(m1)在解空间中趋向从计算节点#2的第一向量x(m2)离开的区域的概率提高。
另外,设为计算节点#2从计算节点#1获取第一向量x(m1)的数据。在该情况下,计算节点#2能够使用取得的第一向量x(m1)计算(19)的修正项,更新第一向量及第二向量。其结果,如图14所示,在计算节点#2中,在计算节点#1的第一向量x(m1)附近,扩展哈密顿量的值变大。由此,在计算节点#2中被更新的第一向量x(m2)在解空间中趋向从计算节点#1的第一向量x(m1)离开的区域的概率提高。
如上所述,用根据各计算节点中的第一向量的更新状况来调整扩展哈密顿量的值,由此能够在多个计算节点间避免解空间的重复区域的搜索。因此,能够高效地搜索组合最优化问题的解。
图15的直方图表示在多个计算方法中得到最优解为止所需的计算次数。在图15中,使用了求解48节点96边缘的哈密顿量闭路问题的情况下的数据。图15的纵轴表示得到最优解的频度。另一方面,图15的横轴表示试行次数。在图15中,“DEFAULT”相当于使用式(3)的哈密顿量执行图6的流程图的处理的情况下的结果。另外,“ADAPTIVE”相当于使用式(10)的扩展哈密顿量执行图8的流程图的处理的情况下的结果。并且,“GROUP”相当于使用式(10)的扩展哈密顿量执行图9及图10的流程图的处理的情况下的结果。
图15的纵轴表示在准备1000组不同的矩阵Jij和向量hi的组合时,在规定的计算次数内得到最优解的频度。在“DEFAULT”的情况下,计算次数相当于图6的流程图的处理的执行次数。另一方面,在“ADAPTIVE”及“GROUP”的情况下,计算次数相当于式(10)中的已搜索向量的数量M。在图15的例子中,可以说横轴的左侧的频度越高,则以越少的计算次数得到最优解。例如,在“DEFAULT”的情况下,以10次以下的计算次数得到最优解的频度为约260。另一方面,在“ADAPTIVE”的情况下,以10次以下的计算次数得到最优解的频度为约280。进而,在“GROUP”的情况下,以10次以下的计算次数得到最优解的频度约为430。因此,在“GROUP”的条件的情况下,与其他情况相比,以较少的计算次数得到最优解的概率变高。
在本实施方式所涉及的信息处理装置及信息处理系统中,能够避免基于与已搜索的向量有关的数据来对解空间的重复的区域进行搜索。因此,能够对于解空间的更大的区域进行解的搜索,能够提高得到最优解或者接近于最优解的近似解的概率。此外,在本实施方式的信息处理装置及信息处理系统中,容易使处理并行化,从而可以更有效地执行计算处理。由此,能够对用户提供在实用的时间内计算组合最优化问题的解的信息处理装置或信息处理系统。
[包含多体相互作用的项在内的计算]
通过使用模拟分支算法,也能够求解具有3次以上的目标函数的组合最优化问题。求解使以2值变量为变量的3次以上的目标函数最小化的变量的组合的问题,被称作HOBO(Higher Order Binary Opt imization,高阶二次最优化)问题。在处置HOBO问题的情况下,作为向高次扩展的伊辛模型中的能量式,可以使用下述的式(21)。
[数式21]
Figure BDA0003283476560000341
在此,J(n)为n阶张量,是使式(1)的局部磁场hi与耦合系数的矩阵J一般化。例如,张量J(1)相当于局部磁场hi的向量。在n阶张量J(n)中,当多个下标具有相同的值时,要素的值为0。在式(21)中,表示到了3次的项,但比其高次的项也能够与式(21)同样地定义。式(21)相当于包含多体相互作用的伊辛模型的能量。
另外,可以说QUBO和HOBO均为无约束多项式2值变量最优化(PUBO:PolynomialUnconstrained Binary Optimization)中的1种。即,在PUBO中,具有2次的目标函数的组合最优化问题是QU BO。另外,在PUBO中,具有3次以上的目标函数的组合最优化问题可以说是HOBO。
在使用模拟分支算法求解HOBO问题的情况下,只要将上述的式(3)的哈密顿量H置换为下述的式(22)的哈密顿量H即可。
[数式22]
Figure BDA0003283476560000342
另外,根据式(22),使用下述的式(23)所示的多个第一变量来导出问题项。
[数式23]
Figure BDA0003283476560000351
(23)的问题项zi取将(22)的第二个式子关于某个变量xi(第一向量的要素)进行了偏微分的形式。偏微分的变量xi根据索引i而不同。在此,变量xi的索引i相当于指定第一向量的要素及第二向量的要素的索引。
在进行包含多体相互作用的项的计算的情况下,上述的(20)的递推式被置换为下述的(24)的递推式。
[数式24]
Figure BDA0003283476560000352
(24)相当于将(20)的递推式进一步一般化而得到的式子。同样地,在上述的(13)的递推式中,也可以使用多体相互作用的项。
上述所示的问题项只不过是本实施方式的信息处理装置能够使用的问题项的例子。因而,在计算中使用的问题项的形式也可以与它们不同。
[算法的变形例]
在此,对模拟分支算法的变形例进行说明。例如,以误差的减轻或计算时间的缩短为目的,也可以对上述的模拟分支算法进行各种变形。
例如,为了减小计算的误差,也可以在第一变量的更新时执行追加的处理。例如,在第一变量xi的绝对值通过更新而变得比1大时,将第一变量xi的值置换为sgn(xi)。即,在通过更新而成为xi>1时,变量xi的值被设定为1。此外,当通过更新而成为xi<-1时,变量xi的值被设定为-1。由此,能够使用变量xi以更高的精度对自旋si进行近似。通过包含这样的处理,算法与在xi=±1的位置存在壁的N粒子的物理模型等价。更一般而言,运算电路也可以构成为,将值比第二值小的第一变量设定为第二值,将值比第一值大的第一变量设定为第一值。
进而,当通过更新而成为xi>1时,也可以对与变量xi对应的变量yi乘以系数rf。例如,若使用-1<r≤0的系数rf,则上述的壁成为反射系数rf的壁。特别是,在使用rf=0的系数rf的情况下,算法与在xi=±1的位置存在发生完全非弹性碰撞的壁的物理模型变得等价。更一般而言,运算电路也可以构成为,将与值比第一值小的第一变量对应的第二变量或与值比第二值大的第一变量对应的第二变量更新为对原来的第二变量乘以第二系数而得到的值。例如,运算电路也可以构成为,将与值比-1小的第一变量对应的第二变量或与值比1大的第一变量对应的第二变量更新为对原来的第二变量乘以第二系数而得到的值。这里,第二系数相当于上述的系数rf。
另外,运算电路也可以当通过更新而成为xi>1时,将与变量xi对应的变量yi的值设定为伪随机数。例如,可以使用[-0.1,0.1]的范围的随机数。即,运算电路也可以构成为,将与值比第二值小的第一变量对应的第二变量的值或与值比第一值大的第一变量对应的第二变量的值设定为伪随机数。
如果如以上这样以抑制成为|xi|>1的方式执行更新处理,则即使将(13)、(20)及(24)的非线性项K×xi 2去除,xi的值也不会发散。因此,能够使用在下述的(25)中表示的算法。
[数式25]
Figure BDA0003283476560000371
在(25)的算法中,在问题项中,不是使用离散变量,而是使用连续变量x。因此,有可能发生与本来的组合最优化问题中使用的离散变量的误差。为了减小该误差,如下述的(26)那样,在问题项的计算中,可以代替连续变量x而使用将连续变量x用符号函数变换后得到的值sgn(x)。
[数式26]
Figure BDA0003283476560000372
在(26)中,sgn(x)相当于自旋s。
在(26)中,也可以将问题项中的包含1阶的张量的项的系数α设为常数(例如α=1)。在(26)的算法中,由于在问题项中出现的自旋彼此的积必定取-1或1的某个值,所以在处理具有高次的目标函数的HOMO问题的情况下,能够防止因积运算带来的误差的发生。如上述的(26)的算法那样,计算服务器计算的数据也可以还包括以变量si(i=1,2,…,N)为要素的自旋的向量(s1,s2,…,sN)。通过将第一向量各自的要素用符号函数变换,能够得到自旋的向量。
[变量的更新处理的并行化的例子]
以下,对模拟分支算法的计算时的变量的更新处理的并行化的例子进行说明。
首先,对向PC集群安装了模拟分支算法的例子进行说明。PC集群,是将多台计算机连接、实现用1台计算机得不到的计算性能的系统。例如,图1中表示的信息处理系统100包括多台计算服务器及处理器,可以被作为PC集群使用。例如,在PC集群中,通过使用MPI(Message Passing Interface),即使是信息处理系统100那样的在多个计算服务器中分散配置有存储器的构成,也能够执行并行的计算。例如,可以使用MPI安装管理服务器1的控制程序14E、各计算服务器的计算程序34B及控制程序34C。
在由PC集群使用的处理器数为Q的情况下,可以使各个处理器进行第一向量(x1,x2,…,xN)中包含的变量xi中的L个变量的计算。同样,能够使各个处理器进行第二向量(y1,y2,…,yN)中包含的变量yi中的L个变量的计算。即,处理器#j(j=1,2,…,Q)进行变量{xm|m=(j-1)L+1,(j-1)L+2,…,jL}及{ym|m=(j-1)L+1,(j-1)L+2,…,jL}的计算。此外,设为由处理器#j进行的{ym|m=(j-1)L+1,(j-1)L+2,…,jL}的计算所需要的下述的(27)中表示的张量J(n)被保存于处理器#j能够访问的存储区域(例如,寄存器、高速缓存、存储器等)中。
[数式27]
Figure BDA0003283476560000381
在此,说明了各个处理器计算第一向量及第二向量的恒定数的变量的情况。但是,根据处理器,作为计算对象的第一向量及第二向量的要素(变量)的数量也可以不同。例如,在根据计算服务器中安装的处理器而有性能差的情况下,可以根据处理器的性能来决定作为计算对象的变量的数量。
为了将变量yi的值更新,需要第一向量(x1,x2,…,xN)的全部的成分的值。向2值变量的变换例如可以通过使用符号函数sgn()来进行。所以,能够使用Allgather函数,使Q个处理器共享第一向量(x1,x2,…,xN)的全部的成分的值。关于第一向量(x1,x2,…,xN),虽然需要进行处理器间的值的共享,但关于第二向量(y1,y2,…,yN)及张量J(n),并不必须进行处理器间的值的共享。处理器间的数据的共享,例如可以通过使用处理器间通信或在共享存储器中保存数据来实现。
处理器#j计算问题项{zm|m=(j-1)L+1,(j-1)L+2,…,jL}的值。然后,处理器#j基于计算出的问题项{{zm|m=(j-1)L+1,(j-1)L+2,…,jL}的值,将变量{ym|m=(j-1)L+1,(j-1)L+2,…,jL}更新。
如上述的各式所示,在问题项的向量(z1,z2,…,zN)的计算中,需要包括张量J(n)与向量(x1,x2,…,xN)的积的计算在内的积和运算。积和运算是在上述的算法中计算量最大的处理,在计算速度的提高方面可能成为瓶颈。所以,在PC集群的安装中,能够将积和运算分散到Q=N/L个处理器中而并行地执行,实现计算时间的缩短。
图16概略地示出多处理器结构的例子。图16的多个计算节点例如相当于信息处理系统100的多个计算服务器。另外,图16的高速链路例如相当于由信息处理系统100的线缆4a~4c及开关5形成的计算服务器之间的互连。图16中的共享存储器相当于共享存储器32。图16的处理器例如相当于各计算服务器的处理器33A~33D。另外,在图16中示出多个计算节点,但并不妨碍使用单一计算节点的结构。
在图16中示出了在配置于各构成要素的数据及构成要素之间传送的数据。在各处理器中,计算变量xi、yi的值。另外,在处理器和共享存储器之间传送变量xi。在各计算节点的共享存储器中,例如保存第一向量(x1,x2,…,xN)、第二向量(y1,y2,…,yN)的L个变量及张量J(n)的一部分。然后,在连接计算节点间的高速链路中,例如传送第一向量(x1,x2,…,xN)。在使用Allgather函数的情况下,为了用各处理器更新变量yi,需要第一向量(x1,x2,…,xN)的全部要素。
另外,图16所示的数据的配置及传送只不过为一例。关于PC集群中的数据的配置方法、传送方法及并行化的实现方法,没有特别限定。
另外,也可以使用GPU(Graphics Processing Unit:图形处理单元)进行模拟分支算法的计算。
图17概略地示出了使用GPU的结构的例子。图17中示出了通过高速链路彼此连接的多个GPU。在各个GPU上搭载有能够访问共享存储器的多个内核。另外,在图17的结构例中,多个GPU经由高速链路连接,形成GPU集群。例如,在GPU搭载于图1的各个计算服务器的情况下,高速链接相当于由线缆4a~4c及开关5形成的计算服务器之间的互连。另外,在图17的结构例中,使用了多个GPU,但在使用了一个GPU的情况下,也能够执行并行的计算。即,图17的各个GPU能够执行与图16的各个计算节点相当的计算。即,信息处理装置(计算服务器)的处理器(处理电路)可以是图形处理单元(GPU)的内核。
在GPU中,变量xi及yi以及张量J(n)被定义为设备变量。GPU可以通过矩阵向量积函数而并行地计算在变量yi的更新中需要的张量J(n)与第一向量(x1,x2,…,xN)的积。另外,通过重复执行矩阵与向量的积运算,能够求出张量与向量的积。此外,关于第一向量(x1,x2,…,xN)的计算和第二向量(y1,y2,…,yN)中的积和运算以外的部分,能够使各个线程执行第i个要素(xi,yi)的更新处理,实现处理的并行化。
[用于求解组合优化问题的整体处理]
以下,说明为了使用模拟分支算法来求解组合最优化问题而执行的整体处理。
图18的流程图表示为了求解组合最优化问题而执行的整体处理的例子。以下,参照图18对处理进行说明。
首先,将组合最优化问题公式化(步骤S201)。然后,将被公式化的组合最优化问题变换为伊辛问题(伊辛模型的形式)(步骤S202)。接着,通过伊辛机(信息处理装置)计算伊辛问题的解(步骤S203)。然后,验证计算出的解(步骤S204)。例如,在步骤S204中,进行是否满足约束条件的确认。此外,也可以在步骤S204中参照目标函数的值,进行所得到的解是否为最优解或接近于最优解的近似解的确认。
然后,根据步骤S204中的验证结果或计算次数中的至少任一个来判定是否进行再计算(步骤S205)。在判定为进行再计算的情况下(步骤S205的是),再次执行步骤S203及S204的处理。另一方面,在判定为不进行再计算的情况下(步骤S205的否),进行解的选择(步骤S206)。例如,在步骤S206中,能够基于约束条件的充足或者目标函数的值中的至少任一个来进行选择。另外,在未计算出多个解的情况下,也可以跳过步骤S206的处理。最后,将所选择的解变换为组合最优化问题的解,输出组合最优化问题的解(步骤S207)。
通过使用上述说明的信息处理装置、信息处理系统、信息处理方法、存储介质及程序,能够在实用的时间内计算组合最优化问题的解。由此,组合最优化问题的求解变得更容易,能够促进社会的创新及科学技术的进步。
另外,本发明并不限定于上述实施方式,在实施阶段能够在不脱离其主旨的范围内对构成要素进行变形并具体化。另外,通过上述实施方式所公开的多个构成要素的适当组合,能够形成各种发明。例如,也可以从实施方式所示的全部构成要素中删除几个构成要素。进而,也可以适当组合不同的实施方式中的构成要素。
附图标记说明
1 管理服务器
2 网络
3a、3b、3c 计算服务器
4a、4b、4c 线缆
5 开关
6 客户终端
10 处理器
11 管理部
12 变换部
13 控制部
14 存储部
14A 问题数据
14B 计算数据
14C 管理程序
14D 变换程序
14E、34C 控制程序
15、31 通讯电路
16 输入电路
17 输出电路
18 操作装置
19 显示装置
20 总线
32 共享存储器
33A、33B、33C、33D 处理器
34 存储器
34A 计算数据
34B 计算程序
35 主机总线适配器。

Claims (17)

1.一种信息处理装置,构成为重复更新以第一变量为要素的第一向量及以与所述第一变量对应的第二变量为要素的第二向量,所述信息处理装置具备:
存储部;以及
处理电路,该处理电路构成为进行如下处理:
通过将对应的所述第二变量加权并与所述第一变量相加来更新所述第一向量;
将更新后的所述第一向量作为已搜索向量而保存于所述存储部中;以及
用根据更新次数而单调增加或单调减少的第一系数对所述第一变量进行加权并与对应的所述第二变量相加,使用多个所述第一变量来计算问题项,将所述问题项与所述第二变量相加,从所述存储部读出所述已搜索向量,计算包含更新对象的所述第一向量与所述已搜索向量之间的距离的倒数在内的修正项,将所述修正项与所述第二变量相加,由此更新所述第二向量。
2.根据权利要求1所述的信息处理装置,其中,
所述处理电路构成为,使用多个所述已搜索向量的每一个来计算所述距离的所述倒数,并将多个所述倒数相加,由此计算所述修正项。
3.根据权利要求1或2所述的信息处理装置,其中,
具备多个所述处理电路,
各个所述处理电路构成为,读出由其他所述处理电路保存于所述存储部中的所述已搜索向量。
4.根据权利要求3所述的信息处理装置,其中,
多个所述处理电路被分为多个组,该多个组分别执行所述第一向量及所述第二向量的不同的对的更新处理。
5.根据权利要求1或2所述的信息处理装置,其中,
具备多个所述处理电路,
各个所述处理电路构成为,将更新后的所述第一向量传送至其他所述处理电路,使用从其他所述处理电路接收到的所述第一向量来代替所述已搜索向量而计算所述修正项。
6.根据权利要求1~5中的任一项所述的信息处理装置,其中,
所述处理电路构成为,将更新后的所述第二向量作为第三向量保存于所述存储部中。
7.根据权利要求6所述的信息处理装置,其中,
所述处理电路构成为,从所述存储部读出在与所述已搜索向量相同的迭代中被更新的所述第三向量,基于所述已搜索向量及所述第三向量来计算目标函数的值。
8.根据权利要求7所述的信息处理装置,其中,
所述处理电路构成为,基于所述目标函数的值来判定是否停止所述第一向量及所述第二向量的更新。
9.根据权利要求8所述的信息处理装置,其中,
所述处理电路构成为,基于所述目标函数的值,从在所述存储部中保存的多个所述已搜索向量中选择某一个所述已搜索向量,将所选择的所述已搜索向量的正值的所述第一变量变换为第一值,将所选择的所述已搜索向量的负值的所述第一变量变换为比所述第一值小的第二值,由此计算解向量。
10.根据权利要求1~9中的任一项所述的信息处理装置,其中,
所述处理电路计算的所述问题项基于伊辛模型。
11.根据权利要求10所述的信息处理装置,其中,
所述处理电路计算的所述问题项包含多体相互作用。
12.一种信息处理系统,构成为重复更新以第一变量为要素的第一向量及以与所述第一变量对应的第二变量为要素的第二向量,
所述信息处理系统具备存储装置以及多个信息处理装置,
各个所述信息处理装置构成为进行如下处理:
通过将对应的所述第二变量加权并与所述第一变量相加来更新所述第一向量;
将更新后的所述第一向量作为已搜索向量而保存于所述存储装置中;以及
用根据更新次数而单调增加或单调减少的第一系数对所述第一变量进行加权并与对应的所述第二变量相加,使用多个所述第一变量来计算问题项,将所述问题项与所述第二变量相加,从所述存储装置读出所述已搜索向量,计算包含更新对象的所述第一向量与所述已搜索向量之间的距离的倒数在内的修正项,将所述修正项与所述第二变量相加,由此更新所述第二向量。
13.根据权利要求12所述的信息处理系统,其中,
所述多个信息处理装置被分为多个组,该多个组分别执行所述第一向量及所述第二向量的不同的对的更新处理。
14.一种信息处理方法,使用存储部和多个处理电路来重复更新以第一变量为要素的第一向量及以与所述第一变量对应的第二变量为要素的第二向量,该信息处理方法包括如下步骤:
所述多个处理电路将对应的所述第二变量加权并与第一变量相加来更新所述第一向量的步骤;
所述多个处理电路将更新后的所述第一向量作为已搜索向量而保存于所述存储部中的步骤;
所述多个处理电路用根据更新次数而单调增加或单调减少的第一系数对所述第一变量进行加权并与对应的所述第二变量相加的步骤;
所述多个处理电路使用多个所述第一变量来计算问题项,并将所述问题项与所述第二变量相加的步骤;
所述多个处理电路从所述存储部读出所述已搜索向量的步骤;
所述多个处理电路计算包含更新对象的所述第一向量与所述已搜索向量之间的距离的倒数在内的修正项的步骤;以及
所述多个处理电路将所述修正项与所述第二变量相加的步骤。
15.一种信息处理方法,使用存储装置和多个信息处理装置来重复更新以第一变量为要素的第一向量及以与所述第一变量对应的第二变量为要素的第二向量,该信息处理方法包括如下步骤:
所述多个信息处理装置将对应的所述第二变量加权并与第一变量相加来更新所述第一向量的步骤;
所述多个信息处理装置将更新后的所述第一向量作为已搜索向量而保存于所述存储装置的步骤;
所述多个信息处理装置用根据更新次数而单调增加或单调减少的第一系数对所述第一变量进行加权并与对应的所述第二变量相加的步骤;
所述多个信息处理装置使用多个所述第一变量来计算问题项,并将所述问题项与所述第二变量相加的步骤;
所述多个信息处理装置从所述存储装置读出所述已搜索向量的步骤;
所述多个信息处理装置计算包含更新对象的所述第一向量与所述已搜索向量之间的距离的倒数在内的修正项的步骤;以及
所述多个信息处理装置将所述修正项与所述第二变量相加的步骤。
16.一种非暂时的计算机可读的存储介质,存储有程序,该程序重复更新以第一变量为要素的第一向量及以与所述第一变量对应的第二变量为要素的第二向量,
所述程序使计算机执行如下步骤:
将对应的所述第二变量加权并与第一变量相加来更新所述第一向量的步骤;
将更新后的所述第一向量作为已搜索向量而保存于存储部中的步骤;
用根据更新次数而单调增加或单调减少的第一系数对所述第一变量进行加权并与对应的所述第二变量相加的步骤;
使用多个所述第一变量来计算问题项,并将所述问题项与所述第二变量相加的步骤;
从所述存储部读出所述已搜索向量的步骤;
计算包含更新对象的所述第一向量与所述已搜索向量之间的距离的倒数在内的修正项的步骤;以及
将所述修正项与所述第二变量相加的步骤。
17.一种程序,重复更新以第一变量为要素的第一向量及以与所述第一变量对应的第二变量为要素的第二向量,
所述程序使计算机执行如下步骤:
将对应的所述第二变量加权并与第一变量相加来更新所述第一向量的步骤;
将更新后的所述第一向量作为已搜索向量而保存于存储部中的步骤;
用根据更新次数而单调增加或单调减少的第一系数对所述第一变量进行加权并与对应的所述第二变量相加的步骤;
使用多个所述第一变量来计算问题项,并将所述问题项与所述第二变量相加的步骤;
从所述存储部读出所述已搜索向量的步骤;
计算包含更新对象的所述第一向量与所述已搜索向量之间的距离的倒数在内的修正项的步骤;以及
将所述修正项与所述第二变量相加的步骤。
CN202080025393.5A 2019-03-28 2020-03-27 信息处理设备、信息处理系统、信息处理方法、存储介质及程序 Pending CN113646782A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2019-064588 2019-03-28
JP2019064588 2019-03-28
PCT/JP2020/014164 WO2020196866A1 (ja) 2019-03-28 2020-03-27 情報処理装置、情報処理システム、情報処理方法、記憶媒体およびプログラム

Publications (1)

Publication Number Publication Date
CN113646782A true CN113646782A (zh) 2021-11-12

Family

ID=72608458

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080025393.5A Pending CN113646782A (zh) 2019-03-28 2020-03-27 信息处理设备、信息处理系统、信息处理方法、存储介质及程序

Country Status (5)

Country Link
US (1) US20220012307A1 (zh)
JP (1) JPWO2020196866A1 (zh)
CN (1) CN113646782A (zh)
CA (1) CA3135137C (zh)
WO (1) WO2020196866A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2023000462A (ja) * 2021-06-18 2023-01-04 富士通株式会社 データ処理装置、プログラム及びデータ処理方法
JP2023024085A (ja) * 2021-08-06 2023-02-16 富士通株式会社 プログラム、データ処理方法及びデータ処理装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006350673A (ja) * 2005-06-15 2006-12-28 Fuji Electric Systems Co Ltd 最適化計算システム
JP6449456B2 (ja) * 2015-05-29 2019-01-09 株式会社日立製作所 確率的システムの注目指標の統計量を最小化するパラメータセットを探索するシステム
JP6628041B2 (ja) * 2016-06-06 2020-01-08 日本電信電話株式会社 最適化問題解決装置、方法、及びプログラム

Also Published As

Publication number Publication date
US20220012307A1 (en) 2022-01-13
CA3135137C (en) 2024-01-09
JPWO2020196866A1 (zh) 2020-10-01
CA3135137A1 (en) 2020-10-01
WO2020196866A1 (ja) 2020-10-01

Similar Documents

Publication Publication Date Title
Jaggi et al. Communication-efficient distributed dual coordinate ascent
US8380643B2 (en) Searching multi-dimensional data using a parallelization framework comprising data partitioning and short-cutting via early out
US20210224447A1 (en) Grouping of pauli strings using entangled measurements
US20220012387A1 (en) Information processing device, information processing system, information processing method, and storage medium
JP7176127B2 (ja) 量子シミュレーションアルゴリズムに基づくデータサーチ方法、装置及び機器並びにコンピュータプログラム
US20220012307A1 (en) Information processing device, information processing system, information processing method, and storage medium
JP7421291B2 (ja) 情報処理装置、プログラム、情報処理方法、および電子回路
Jin et al. GPUSGD: A GPU‐accelerated stochastic gradient descent algorithm for matrix factorization
WO2016195639A1 (en) Controlling remote memory accesses in a multiple processing node graph inference engine
US11966450B2 (en) Calculation device, calculation method, and computer program product
US20220012306A1 (en) Information processing device, information processing system, information processing method, and storage medium
WO2020142251A1 (en) Prediction for time series data using a space partitioning data structure
JP7421545B2 (ja) 情報処理装置、情報処理システム、情報処理方法、記憶媒体およびプログラム
JP7474242B2 (ja) 情報処理装置、情報処理システム、情報処理方法、記憶媒体およびプログラム
WO2022249785A1 (ja) 求解装置、求解方法およびプログラム
JP7472062B2 (ja) 計算装置、計算方法およびプログラム
US11372651B2 (en) Bootstrapping a variational algorithm for quantum computing
CN117313884A (zh) 量子电路处理方法、装置及电子设备
CN117313882A (zh) 量子电路处理方法、装置及电子设备
CN117313879A (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