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

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

Info

Publication number
CN113646783A
CN113646783A CN202080025394.XA CN202080025394A CN113646783A CN 113646783 A CN113646783 A CN 113646783A CN 202080025394 A CN202080025394 A CN 202080025394A CN 113646783 A CN113646783 A CN 113646783A
Authority
CN
China
Prior art keywords
vector
variable
information processing
value
variables
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
CN202080025394.XA
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 CN113646783A publication Critical patent/CN113646783A/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/491Computations with decimal numbers radix 12 or 20.
    • G06F7/492Computations with decimal numbers radix 12 or 20. using a binary weighted representation within each denomination
    • G06F7/4925Adding; Subtracting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • G06F7/582Pseudo-random number generators
    • 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
    • G06N7/00Computing arrangements based on specific mathematical models
    • G06N7/01Probabilistic graphical models, e.g. probabilistic networks
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16ZINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS, NOT OTHERWISE PROVIDED FOR
    • G16Z99/00Subject matter not provided for in other main groups of this subclass
    • 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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Mathematical Optimization (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Probability & Statistics with Applications (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)
  • Operations Research (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是表示变形例1的算法的例子的流程图。
图8是表示变形例2的算法的例子的流程图。
图9是表示在图7及图8的步骤S114中执行的处理的第一例的流程图。
图10是表示在图7及图8的步骤S114中执行的处理的第二例的流程图。
图11是表示耦合系数矩阵的例子的表。
图12是表示局部磁场向量的例子的表。
图13是表示随机数的最大绝对值的例子的表。
图14是表示第一向量的例子的表。
图15是表示第二向量的例子的表。
图16是表示解向量和哈密顿量的值的例子的表。
图17是表示变形例3的算法的例子的流程图。
图18是表示变形例3的算法的例子的流程图。
图19是表示变形例4的算法的例子的流程图。
图20是表示系数的例子的表。
图21是表示变形例5的算法的例子的流程图。
图22是表示变形例5的算法的例子的流程图。
图23是表示通过图6的算法进行了计算的情况下的结果的例子的曲线图。
图24是表示通过图7的算法进行了计算的情况下的结果的例子的曲线图。
图25是表示通过图17及图18的算法进行了计算的情况下的结果的例子的曲线图。
图26是表示通过图21及图22的算法进行了计算的情况下的结果的例子的曲线图。
图27是概略地表示多处理器结构的例子的图。
图28是概略地表示使用GPU的结构的例子的图。
图29是表示为了解决组合最优化问题而执行的整体处理的例子的流程图。
具体实施方式
以下,参照附图对本发明的实施方式进行说明。另外,在附图中,对相同的构成要素标注相同的附图标记,并适当省略说明。
图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)为要素的第二向量。信息处理装置的存储部也可以构成为存储第一变量及第二变量。
例如,信息处理装置的处理电路构成为,通过将对应的第二变量加权并与第一变量相加来更新第一向量,用根据更新次数而单调增加或单调减少的第一系数对第一变量进行加权并与对应的第二变量相加,使用多个第一变量来计算问题项,通过将问题项与第二变量相加来更新第二向量,在重复第一向量及第二向量的更新之后,通过伪随机数对第二向量的第二变量进行初始化,并再次重复第一向量及第二向量的更新。问题项也可以基于伊辛模型(Ising model)来计算。另外,问题项也可以包含多体相互作用。关于第一系数、问题项、伊辛模型及多体相互作用的详细,在后面叙述。
在信息处理装置中,例如,能够以处理器为单位进行处理内容(任务)的分配。但是,并不限定进行处理内容的分配的计算资源的单位。例如,既可以以计算机为单位进行处理内容的分配,也可以以在处理器上动作的进程单位或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 BDA0003283482200000091
在此,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 BDA0003283482200000111
Figure BDA0003283482200000112
在此,H为下述的式(3)的哈密顿量。
[数式3]
Figure BDA0003283482200000113
另外,在(2)中,也可以代替式(3)的哈密顿量H,而使用包含下述的式(4)所示的项G(x1,x2,…xN)的哈密顿量H′。将不仅包含哈密顿量H而且还包含项G(x1,x2,…xN)的函数称为扩展哈密顿量,并与原来的哈密顿量H进行区别。
[数式4]
Figure BDA0003283482200000114
以下,以函数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]
xi(t+Δt)=xi(t)+Dyi(t)Δt (6)
Figure BDA0003283482200000131
在此,t是时刻,Δt是时间步长(时间刻度宽度)。另外,在(6)中,为了表示与微分方程式的对应关系,使用了时刻t及时间步长Δt。但是,在实际将算法安装于软件或硬件时,也可以并不一定包含时刻t及时间步长Δt作为明示性的参数。例如,如果将时间步长Δt设为1,则能够从安装时的算法中将时间步长Δt去除。在安装算法时不包含时间t作为明示性的参数的情况下,只要在(6)中将xi(t+Δt)解释为xi(t)的更新后的值即可。即,上述的(6)中的“t”表示更新前的变量的值,“t+Δt”表示更新后的变量的值。
(6)中的在第三段记载的项来源于伊辛能量。该项的形式是根据想要求解的问题而决定的,因此称为问题项(problem term)。
在计算模拟分支算法的时间推进的情况下,基于使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中计算服务器例如也可以分别用0将xi及yi初始化。但是,并不限定xi及yi的初始化的方法。如后所述,也可以在与此不同的定时进行变量的初始化。另外,也可以至少将某个变量多次初始化。
接着,计算服务器基于第二向量的要素yi来更新对应的第一向量的要素xi(步骤S104)。例如,计算服务器通过在步骤S104中将对应的第二向量的要素yi进行加权并与第一向量的要素xi相加来更新第一向量。例如,在步骤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的流程图的处理后得到的第一向量也可能是与实用的解不同的局部解。另外,根据扩展哈密顿量所形成的电势的形状,第一向量有可能从计算处理的中途(例如,图6的循环处理内的任一个状态)起贴附于局部解的附近。另外,为了在有限的计算时间内得到实用的解,优选使用能够对解空间的大范围进行搜索的算法。
在图6的流程图中,在第一变量xi及第二变量yi的更新所涉及的循环处理的开始前,执行第一变量xi及第二变量yi的初始化处理。但是,并不限定进行第一变量xi及第二变量yi的初始化的次数及定时。例如,在将模拟分支算法解释为是计算N个粒子的运动状态的物理模型的情况下,第一变量xi相当于各粒子的位置,第二变量yi相当于各粒子的运动量。因此,以物理模型为例,对第二变量yi进行初始化的处理相当于改变对应的粒子的运动状态的处理。例如,当增加执行第二变量yi的初始化处理的次数时,能够提高使对应的粒子的运动状态改变的频度。另外,若使用伪随机数对第二变量yi进行初始化,则能够随机地改变对应的粒子的运动状态。在各状态下,第一变量xi基于第二变量yi的值而被更新,因此,若增加执行第二变量yi的初始化的次数,则计算处理中的第一变量xi的行为也变化。由此,能够防止在计算处理的中途第一向量贴附在局部解的附近,能够搜索解空间的更大的区域。由于能够搜索多个局部解,所以能够提高通过计算处理而得到最优解或者接近于最优解的近似解的概率。
另外,在使用伪随机数进行第一变量xi及第二变量yi的初始化处理的情况下,不限定所使用的随机数的种类。例如,既可以使用均匀随机数来进行变量的初始化,也可以使用正态随机数来进行变量的初始化。
即,信息处理装置的处理电路生成的伪随机数可以是正态随机数。另外,信息处理装置的处理电路生成的伪随机数也可以是均匀随机数。
图7的流程图表示变形例1的算法的例子。以下,参照图7对处理进行说明。在此,第一变量xi是第一向量的要素,第二变量yi是第二向量的要素。
首先,计算服务器从管理服务器1取得与问题对应的矩阵Jij及向量hi,并决定伪随机数的最大绝对值y0(步骤S110)。例如,在设定为y0=0.1的情况下,生成(-0.1,+0.1)的伪随机数。但是,y0的设定值也可以与此不同。例如,在想要增大第二变量yi的初始化后的第一变量xi的变化量的情况下,可以增大y0的设定值。另外,在想要抑制第二变量yi的初始化后的第一变量xi的变化量的情况下,可以减小y0的设定值。另外,也可以在步骤S110的定时决定伪随机数的种子(seed)s0。伪随机数种子s0既可以是自动决定的值,也可以是用户指定的值。
接着,计算服务器将第一变量xi初始化(步骤S111)。例如,也可以将xi以伪随机数进行初始化。另外,可以将xi以0进行初始化,对于xi的初始化方法,没有限制。然后,计算服务器将系数p(t)、a(t)和τ初始化(步骤S112)。另外,也可以在步骤S112中对变量t进行初始化。例如,在步骤S112中能够将p、a、τ及t的值设为0,但并不限定p、a、τ及t的初始值。
接着,计算服务器通过伪随机数对第二变量yi进行初始化(步骤S113)。另外,为了进行后述的步骤S116的判定处理,计算服务器也可以在步骤S113中使计数器变量τ递增。由此,能够对第二变量yi的初始化次数进行计数。另外,在后述的步骤S115的判定中使用了计数器变量t的情况下,也可以在步骤S113中将计数器变量t初始化。例如,可以将t的值设定为0。
然后,计算服务器执行时间推进的计算处理,更新第一变量xi、第二变量yi、系数p及系数a(步骤S114)。例如,计算服务器能够在步骤S114中执行与图6的步骤S104~步骤S107相当的处理。在使用变量t的情况下,例如,也可以对t加上Δt。
接着,计算服务器判定第一向量及第二向量的更新次数是否小于第一阈值(步骤S115)。在更新次数小于第一阈值的情况下(步骤S115的是),计算服务器再次执行步骤S114的处理。在更新次数为第一阈值以上的情况下(步骤S115的否),计算服务器判定第二变量yi的初始化次数是否小于第二阈值(步骤S116)。在该情况下,在步骤S116中能够将计数器变量τ的值与第二阈值进行比较。
在第二变量yi的初始化次数小于第二阈值的情况下(步骤S116的是),计算服务器再次执行步骤S113以后的处理。即,计算服务器在通过伪随机数对第二变量yi进行初始化(步骤S113)之后,执行时间推进的计算处理(步骤S114)。在第二变量yi的初始化次数为第二阈值以上的情况下(步骤S116的否),计算服务器将第一变量xi变换为自旋si,基于矩阵Jij、向量hi及自旋si计算哈密顿量的值(步骤S117)。例如,在步骤S117中能够基于(1)来计算能量的函数的值。
另外,计算服务器也可以在执行循环处理内的各迭代之后(例如,步骤S115或步骤S116的定时)将第一向量保存于存储区域。同样地,计算服务器也可以在执行循环处理内的各迭代之后(例如,步骤S115或步骤S116的定时)将第二向量保存于存储区域。在该情况下,在步骤S117中,计算服务器能够使用第一向量及对应的第二向量的多个组合来计算扩展哈密顿量的值。由此,计算服务器能够基于扩展哈密顿量的值,选择最接近于最优解的第一向量。然后,计算服务器可以将所选择的第一向量变换为自旋si的向量(解向量)。
然后,计算服务器输出自旋si的向量和目标函数的值(步骤S118)。例如,计算服务器可以在客户终端6的画面上显示自旋si的向量和哈密顿量的值。另外,计算服务器也可以在外部存储装置或者云的存储器中保存自旋si的向量和哈密顿量的值。
步骤S117及步骤S118也可以通过计算服务器以外的信息处理装置来执行。例如,管理服务器1也可以执行步骤S117及步骤S118的处理。另外,在步骤S117及步骤S118的定时执行的处理的内容也可以与图7不同。例如,也可以代替进行(1)的能量的函数的值的计算,而计算(3)或(4)的哈密顿量的值。并且,也可以基于哈密顿量的值,选择最接近于最优解的第一向量。在哈密顿量的参数中不包含自旋si的情况下,也可以跳过将第一向量变换为解向量的处理。
通过进行目标函数或扩展哈密顿量的值的计算,能够评价第一向量向最优解的接近度。例如,在使用(1)、(3)及(4)的定义的情况下,哈密顿量的值越小,则第一向量越接近于最优解。因此,能够将目标函数或扩展哈密顿量的值的计算处理称为解的评价处理。在图7的流程图中,在步骤S117中执行了解的评价处理,但解的评价处理也可以在与此不同的定时执行。例如,也可以在执行了循环处理内的各迭代之后(例如,步骤S115或步骤S116的定时)执行解的评价处理。另外,在解的评价处理中,也可以不仅将第一向量保存于存储区域,还将与其对应的目标函数或扩展哈密顿量的值保存于存储区域。
图8的流程图表示变形例2的算法的例子。在图8的流程图中,在步骤S116的判定为肯定(第二变量yi的初始化次数小于第二阈值)的情况下执行的处理与图7的流程图不同。在图8的流程图中,在第二变量yi的初始化次数小于第二阈值的情况下(步骤S116的是),不仅执行第二变量yi的初始化处理(步骤S113),还对系数p(t)及a(t)执行初始化处理(步骤S112)。除了该不同点之外,在图8的流程图中执行的处理与图7的流程图相同。
图9的流程图表示在图7及图8的步骤S114中执行的处理的第一例。在图9的流程图中,按照第一变量xi的更新处理(步骤S1141)、第二变量yi的更新处理(步骤S1142)、t、p及a的更新处理(步骤S1143)的顺序,执行与时间推进相当的处理。
另一方面,图10的流程图表示在图7及图8的步骤S114中执行的处理的第二例。在图10的流程图中,按照第二变量yi的更新处理(步骤S1142)、第一变量xi的更新处理(步骤S1141)、t、p及a的更新处理(步骤S1143)的顺序,执行与时间推进相当的处理。这样,在步骤S114中既可以先更新第一变量xi,也可以先更新第二变量yi。并不限定各变量的更新处理及各变量的更新处理内的子处理的执行顺序。
图9及图10所示的时间推进的计算处理只不过是例子。因此,时间推进的计算处理也可以与图9及图10所示的处理不同。
接着,示出在信息处理装置或信息处理系统中执行的处理中使用的数据的例子。
图11的表是示出了(1)~(4)及(6)中的矩阵Jij的例子的表。图12的表是示出了(1)~(4)及(6)中的向量hi的例子的表。图13示出了随机数的最大绝对值y0的例子。图14示出了使用图13的y0时得到的第一向量的例子。另一方面,图15表示使用图13的y0时得到的第二向量的例子。图16表示在图7或图8的步骤S117中得到的解向量及哈密顿量的值的例子。
通过执行上述的图7~图10所示的算法,无论局部解的数量如何,都能够搜索解空间的更大的范围。因此,能够在有限的计算时间内得到实用的解。另外,能够更短期间地求解更大规模的组合最优化问题。
[多次计算哈密顿量并进行比较的情况]
图7至图10的流程图只不过是信息处理装置及信息处理系统能够执行的处理的例子。因此,信息处理装置及信息处理系统也可以通过与此不同的处理来求出组合最优化问题的解。以下,对多次计算哈密顿量并进行比较的情况下的处理的例子进行说明。
图17及图18的流程图表示变形例3的算法的例子。以下,参照图17及图18对处理进行说明。在此,第一变量xi是第一向量的要素,第二变量yi是第二向量的要素。
首先,计算服务器从管理服务器1取得与问题对应的矩阵Jij及向量hi,决定伪随机数的最大绝对值y0(步骤S121)。例如,在设定为y0=0.1的情况下,生成(-0.1,+0.1)的伪随机数。但是,y0的设定值也可以与此不同。例如,在想要增大第二变量yi的初始化后的第一变量xi的变化量的情况下,能够增大y0的设定值。另外,在想要抑制第二变量yi的初始化后的第一变量xi的变化量的情况下,能够减小y0的设定值。另外,也可以在步骤S121的定时决定伪随机数的种子s0。伪随机数种子s0既可以是自动决定的值,也可以是用户指定的值。
接着,计算服务器将第一变量xi初始化(步骤S122)。例如,也可以将xi以伪随机数进行初始化。另外,可以将xi以0进行初始化,对于xi的初始化方法,没有限制。然后,计算服务器将系数p(t)、a(t)及τ初始化(步骤S123)。另外,也可以在步骤S123中对变量t进行初始化。例如,在步骤S123中能够将p、a、τ及t的值设为0,但并不限定p、a、τ及t的初始值。
接着,计算服务器通过伪随机数对第二变量yi进行初始化(步骤S124)。另外,为了进行后述的步骤S130的判定处理,计算服务器也可以在步骤S124中使计数器变量τ递增。由此,能够对第二变量yi的初始化次数进行计数。另外,在后述的步骤S126的判定中使用了计数器变量t的情况下,也可以在步骤S124中对计数器变量t进行初始化。例如,可以将t的值设定为0。
然后,计算服务器执行时间推进的计算处理,更新第一变量xi、第二变量yi、系数p及系数a(步骤S125)。例如,计算服务器能够在步骤S125中执行与图6的步骤S104~步骤S107相当的处理。另外,计算服务器也可以在步骤S125中执行与图9或图10相当的处理。在使用变量t的情况下,例如,也可以对t加上Δt。
接着,计算服务器判定第一向量及第二向量的更新次数是否小于第一阈值(步骤S126)。在更新次数小于第一阈值的情况下(步骤S126的是),计算服务器再次执行步骤S125的处理。在更新次数为第一阈值以上的情况下(步骤S126的否),计算服务器将第一变量xi变换为自旋si,基于矩阵Jij、向量hi及自旋si,计算哈密顿量的值(步骤S127)。例如,能够基于(1)计算哈密顿量的值。
然后,计算服务器参照存储区域60,判定在前步骤中计算出的哈密顿量的值是否为到此为止的最小值(步骤S128)。在前步骤中计算出的哈密顿量的值为到此为止的最小值的情况下(步骤S128的是),计算服务器将计算出的哈密顿量的值和此时的自旋si的向量(解向量)保存于存储区域60(步骤S129)。在步骤S129中,计算服务器可以将第一向量保存在存储区域60中。作为存储区域60,能够使用共享存储器32或存储器34的存储区域。另外,作为存储区域60,也可以使用计算服务器的外部的存储装置或云存储器的存储区域。但是,并不限定存储区域60的场所。另外,在存储区域60充分大的情况下,计算服务器也可以跳过步骤S128的判定,执行步骤S129的处理。计算服务器在执行了步骤S129的处理之后,进入到步骤S130的处理。
在步骤S127中计算出的哈密顿量的值不是到此为止的最小值的情况下(步骤S128的否),计算服务器跳过步骤S129的处理,进入到步骤S130的处理。
在步骤S130中,计算服务器判定第二变量yi的初始化次数是否小于第二阈值。在步骤S130中,也可以将计数器变量τ的值与第二阈值进行比较。在第二变量yi的初始化次数小于第二阈值的情况下(步骤S130的是),计算服务器再次执行步骤S124以后的处理。即,计算服务器在通过伪随机数对第二变量yi进行初始化(步骤S124)之后,执行时间推进的计算处理(步骤S125)。
在第二变量yi的初始化次数为阈值以上的情况下(步骤S130的否),计算服务器参照存储区域60,输出自旋si的向量和哈密顿量的值(步骤S131)。在步骤S131中,能够输出通过过去的迭代而得到的解向量中最接近于最优解的解向量。另外,在步骤S139中第一向量被保存于存储区域60的情况下,计算服务器也可以在步骤S161中将第一向量变换为解向量。例如,计算服务器可以在客户终端6的画面上显示自旋si的向量和哈密顿量的值。另外,计算服务器也可以向其他信息处理装置传送自旋si的向量和哈密顿量的值。
通过执行图17及图18的处理,能够基于哈密顿量的值自动地选择最接近于最优解的第一向量,得到基于该第一向量的自旋si的向量(解向量)。由此,搜索解空间的更大的范围,能够在有限的计算时间内得到实用的解。
在图17及图18的流程图中,使用了(1)的能量的函数作为哈密顿量。但是,也可以使用(3)的哈密顿量或(4)的扩展哈密顿量等其他形式的哈密顿量。因此,在哈密顿量的参数为第一变量xi及第二变量yi的情况下,也可以跳过将第一向量变换为解向量的处理。
如上所述,信息处理装置的处理电路也可以构成为,在重复进行第一向量及第二向量的更新之后,基于第一向量来计算哈密顿量的值,在将第一向量及哈密顿量的值保存于存储部之后,再次重复第一向量及第二向量的更新。
另外,信息处理装置的处理电路也可以构成为,在重复进行第一向量及第二向量的更新之后,将作为正值的第一变量变换为第一值,将作为负值的第一变量变换为比第一值小的第二值,由此根据第一向量来计算解向量,基于解向量来计算哈密顿量(目标函数)的值,在将解向量及哈密顿量(目标函数)的值保存于存储部后,再次重复第一向量及第二向量的更新。
[伪随机数的最大绝对值的调整]
在上述中,对将第二变量yi通过伪随机数进行初始化的例子进行了说明。信息处理装置及信息处理系统也可以改变通过循环处理的迭代而使用的伪随机数的性质。例如,在较早的阶段的迭代中,能够将生成的伪随机数的最大绝对值设定为比较大的值。由此,第二变量yi的初始化后的第一变量xi及第二变量yi的变化变大,能够对解空间的大范围进行搜索。由此,能够提高从多个局部解找出最优解的概率。另一方面,在较晚的阶段的状态下,能够将生成的伪随机数的最大绝对值设定为比较小的值。由此,能够抑制第二变量yi的初始化后的第一变量xi及第二变量yi的变化。因此,在通过多次更新处理而第一向量到达最优解的附近的情况下,能够使第一向量接近于最优解,而提高计算的精度。
以下,对使根据循环处理的状态而使用的伪随机数的最大绝对值变化的情况下的处理的例子进行说明。
图19的流程图表示变形例4的算法的例子。以下,参照图19对处理进行说明。在此,第一变量xi是第一向量的要素,第二变量yi是第二向量的要素。
首先,计算服务器从管理服务器1取得与问题对应的矩阵Jij及向量hi,决定在伪随机数的生成中使用的系数y0(步骤S141)。例如,在伪随机数的最大绝对值被设置为0.1的情况下,生成为(-0.1,+0.1)的伪随机数。例如,能够设定为y0=0.1。但是,y0的设定值也可以与此不同。另外,也可以在步骤S141的定时决定伪随机数的种子s0。伪随机数种子s0既可以是自动决定的值,也可以是用户指定的值。
接着,计算服务器将第一变量xi初始化(步骤S142)。例如,也可以将xi以伪随机数进行初始化。另外,可以将xi以0进行初始化,对于xi的初始化方法,没有限制。然后,计算服务器将系数p(t)、a(t)及τ初始化(步骤S143)。另外,也可以在步骤S143中对变量t进行初始化。例如,在步骤S143中能够将p、a、τ及t的值设为0,但并不限定p、a、τ及t的初始值。
接着,计算服务器使计数器变量τ递增,通过最大绝对值y0+dy×τ的伪随机数对第二变量yi进行初始化(步骤S144)。作为dy,能够使用负值。例如,如图20所示,也可以设定为dy=-0.01。计数器变量τ用于对第二变量yi的初始化次数进行计数。伪随机数的最大绝对值通过y0+dy×τ(dy<0)来给出,因此,当在循环处理的各迭代中使τ递增时,能够使伪随机数的最大绝对值单调减少。由此,能够高精度地进行计算。
然后,计算服务器执行时间推进的计算处理,更新第一变量xi、第二变量yi、系数p及系数a(步骤S145)。例如,计算服务器能够在步骤S145中执行与图6的步骤S104~步骤S107相当的处理。另外,计算服务器也可以在步骤S145中执行与图9或图10相当的处理。在使用变量t的情况下,例如,也可以对t加上Δt。
接着,计算服务器判定第一向量及第二向量的更新次数是否小于第一阈值(步骤S146)。在更新次数小于第一阈值的情况下(步骤S146的是),计算服务器再次执行步骤S145的处理。在更新次数为第一阈值以上的情况下(步骤S146的否),计算服务器判定第二变量yi的初始化次数是否小于第二阈值(步骤S147)。
在第二变量yi的初始化次数小于第二阈值的情况下(步骤S147的是),计算服务器再次执行步骤S144以后的处理。即,计算服务器在通过最大绝对值y0+dy×τ的伪随机数对第二变量yi进行初始化(步骤S144)之后,执行时间推进的计算处理(步骤S145)。
在第二变量yi的初始化次数为第二阈值以上的情况下(步骤S147的否),计算服务器将第一变量xi变换为自旋si,并基于矩阵Jij、向量hi及自旋si来计算哈密顿量的值(步骤S148)。例如,在步骤S148中能够基于(1)来计算哈密顿量的值。然后,计算服务器输出自旋si的向量和哈密顿量的值(步骤S149)。例如,计算服务器可以在客户终端6的画面上显示自旋si的向量和哈密顿量的值。另外,计算服务器也可以向其他信息处理装置传送自旋si的向量和哈密顿量的值。进而,计算服务器也可以在外部存储装置或者云的存储器中保存自旋si的向量和哈密顿量的值。
另外,图19中使用的伪随机数的最大绝对值为y0+dy×τ(dy<0)只不过是一例。因此,伪随机数的最大绝对值也可以通过与此不同的式子来定义。
如后述的图21及图22的流程图那样,信息处理装置及信息处理系统也可以(1)对伪随机数的最大绝对值进行调整,进而,(2)对哈密顿量进行多次计算,并进行哈密顿量的值的比较。
图21及图22的流程图表示变形例5的算法的例子。以下,参照图21及图22对处理进行说明。在此设为,第一变量xi是第一向量的要素,第二变量yi是第二向量的要素。
首先,计算服务器从管理服务器1取得与问题对应的矩阵Jij及向量hi,决定在伪随机数的生成中使用的系数y0(步骤S151)。例如,在伪随机数的最大绝对值被设置为0.1的情况下,生成为(-0.1,+0.1)的伪随机数。例如,能够设定为y0=0.1。但是,y0的设定值也可以与此不同。另外,也可以在步骤S151的定时决定伪随机数的种子s0。伪随机数种子s0既可以是自动决定的值,也可以是用户指定的值。
接着,计算服务器将第一变量xi初始化(步骤S152)。例如,可以将xi以伪随机数进行初始化。另外,可以将xi以0进行初始化,对于xi的初始化方法,没有限制。然后,计算服务器将系数p(t)、a(t)及τ初始化(步骤S153)。另外,也可以在步骤S153中对变量t进行初始化。例如,在步骤S153中能够将p、a、τ及t的值设为0,但并不限定p、a、τ及t的初始值。
接着,计算服务器使计数器变量τ递增,通过最大绝对值y0+dy×τ的伪随机数对第二变量yi进行初始化(步骤S154)。作为dy,能够使用负值。例如,如图20所示,也可以设定为dy=-0.01。计数器变量τ用于对第二变量yi的初始化次数进行计数。伪随机数的最大绝对值通过y0+dy×τ(dy<0)来给出,因此,当在循环处理的各迭代中使τ递增时,能够使伪随机数的最大绝对值单调减少。由此,能够改善计算精度。
然后,计算服务器执行时间推进的计算处理,更新第一变量xi、第二变量yi、系数p及系数a(步骤S155)。例如,计算服务器能够在步骤S155中执行与图6的步骤S104~步骤S107相当的处理。另外,计算服务器也可以在步骤S155中执行与图9或图10相当的处理。在使用变量t的情况下,例如,也可以对t加上Δt。
接着,计算服务器判定第一向量及第二向量的更新次数是否小于第一阈值(步骤S156)。在更新次数小于第一阈值的情况下(步骤S156的是),计算服务器再次执行步骤S155的处理。在更新次数为第一阈值以上的情况下(步骤S156的否),计算服务器将第一变量xi变换为自旋si,并基于矩阵Jij、向量hi及自旋si来计算哈密顿量的值(步骤S157)。例如,能够基于(1)计算哈密顿量的值。
然后,计算服务器参照存储区域60,判定在前步骤中计算出的哈密顿量的值是否为到此为止的最小值(步骤S158)。在前步骤中计算出的哈密顿量的值为到此为止的最小值的情况下(步骤S158的是),计算服务器将计算出的哈密顿量的值和此时的自旋si的向量(解向量)保存于存储区域60(步骤S159)。计算服务器也可以在步骤S159中将第一向量保存于存储区域60。作为存储区域60,能够使用共享存储器32或存储器34的存储区域。另外,作为存储区域60,也可以使用计算服务器的外部的存储装置或云存储器的存储区域。但是,并不限定存储区域60的场所。另外,在存储区域60充分大的情况下,计算服务器也可以跳过步骤S158的判定,执行步骤S159的处理。计算服务器在执行了步骤S159的处理之后,进入到步骤S160的处理。
在步骤S157中计算出的哈密顿量的值不是到此为止的最小值的情况下(步骤S158的否),计算服务器跳过步骤S159的处理,进入到步骤S160的处理。
在步骤S160中,计算服务器判定第二变量yi的初始化次数是否小于第二阈值。在步骤S160中,也可以将计数器变量τ的值与第二阈值进行比较。在第二变量yi的初始化次数小于第二阈值的情况下(步骤S160的是),计算服务器再次执行步骤S154以后的处理。即,计算服务器在通过最大绝对值y0+dy×τ的伪随机数对第二变量yi进行初始化(步骤S154)之后,执行时间推进的计算处理(步骤S155)。
在第二变量yi的初始化次数为阈值以上的情况下(步骤S160的否),计算服务器参照存储区域60,输出自旋si的向量和哈密顿量的值(步骤S161)。在步骤S161中,能够输出通过过去的迭代而得到的解向量中最接近于最优解的解向量。另外,在步骤S159中将第一向量保存于存储区域60的情况下,计算服务器也可以在步骤S161中将第一向量变换为解向量。例如,计算服务器可以在客户终端6的画面上显示自旋si的向量和哈密顿量的值。另外,计算服务器也可以向其他信息处理装置传送自旋si的向量和哈密顿量的值。
通过执行图21及图22的处理,能够基于哈密顿量的值自动地选择最接近于最优解的第一向量,得到基于该第一向量的自旋si的向量(解向量)。由此,能够搜索解空间的更大的范围,在有限的计算时间内得到实用的解。另外,也能够通过调整伪随机数的最大绝对值来改善计算的精度。
在图21及图22的流程图中,作为哈密顿量,使用了(1)的能量的函数。但是,也可以使用(3)的哈密顿量或(4)的扩展哈密顿量等其他形式的哈密顿量。因此,在哈密顿量的参数为第一变量xi及第二变量yi的情况下,也可以跳过将第一向量变换为解向量的处理。
如上所述,信息处理装置的处理电路也可以构成为,根据进行第二向量的第二变量的初始化的次数来改变伪随机数的最大绝对值。另外,信息处理装置的处理电路也可以构成为,根据进行第二向量的第二变量的初始化的次数,来使伪随机数的最大绝对值单调减少。
在此,以通过循环处理内的迭代来改变伪随机数的最大绝对值的处理为例进行了说明。但是,也可以改变通过与此不同的方法生成的伪随机数的性质。例如,也可以通过迭代来变更在伪随机数的生成中使用的算法的种类。另外,也可以通过迭代来改变在伪随机数的生成中使用的种子的值。
图23的曲线图表示通过图6的算法进行计算的情况下的结果的例子。图23的横轴表示归一化后的第一变量xi的值。另一方面,图23的纵轴(柱状图的高度)表示在计算后第一变量xi取各自的范围的值的频度。在图23中,用实线描绘的曲线相当于哈密顿量的值。在图23的曲线图中,该曲线的最大的峰值与最优解对应。在图23中,用虚线表示相当于最优解的第一变量xi的值。在图23的例子中,“nor malized xi”=1的附近与最优解对应。
在图23的例子中,在计算后第一变量xi的值成为不包含最优解的范围(不包含虚线的范围)的频度高。因此,在计算处理中得到最优解的概率不是充分高。在这样的情况下,为了得到实用的解,需要多次重复进行计算处理。在组合最优化问题的求解中,期望以更少的计算时间得到实用的解。
图24的曲线图表示通过图7的算法进行计算的情况下的结果的例子。在图24中,用实线描绘的曲线也相当于哈密顿量的值,该曲线的最大的峰值对应于最优解。另外,在图24中,也用虚线表示相当于最优解的第一变量xi的值。
在图24的例子中,在计算后第一变量xi的值进入包含最优解的范围(包含虚线的范围)的频度比进入其他范围的频度高。因此,与图23的例子相比,在计算处理中得到最优解的概率高。因此,能够以比图23的例子少的计算时间得到组合最优化问题的实用的解。
图25的曲线图表示通过图17及图18的算法进行计算的情况下的结果的例子。在图25中也是,用实线描绘的曲线相当于哈密顿量的值,该曲线的最大的峰值对应于最优解。另外,在图25中也是,用虚线表示相当于最优解的第一变量xi的值。
在图25的例子中也是,在计算后第一变量xi的值进入包含最优解的范围(包含虚线的范围)的频度比进入其他范围的频度高。因此,与图23的例子相比,能够以高概率得到最优解。因此,能够以比图23的例子少的计算时间得到组合最优化问题的实用的解。
图26的曲线图表示通过图21及图22的算法进行计算的情况下的结果的例子。在图26中也是,用实线描绘的曲线相当于哈密顿量的值,该曲线的最大的峰值对应于最优解。另外,在图26中也是,用虚线表示相当于最优解的第一变量xi的值。
在图26的例子中,在计算后第一变量xi的值进入包含最优解的范围(包含虚线的范围)的频度比进入其他范围的频度显著地变高。因此,与图23~图25的例子相比,能够以更高的概率获得最优解。因此,在图26的例子中,能够以在图23~图26的例子中最少的计算时间得到组合最优化问题的实用的解。
在本实施方式的信息处理装置及信息处理系统中,通过使用伪随机数进行多次第二变量yi的初始化,由此不管局部解的数量如何,都能够针对解空间的更大的区域搜索解。由此,能够提高得到最优解或者接近于最优解的近似解的概率。另外,通过在循环处理内计算哈密顿量的值,由此在计算处理的中途达到了最优解或者接近于最优解的近似解的情况下,能够不遗漏地对其进行检测。由此,能够对用户提供在实用的时间内计算组合最优化问题的解的信息处理装置或信息处理系统。
以下,示出信息处理系统、信息处理方法、存储介质及程序的例子。
信息处理系统也可以构成为,重复更新以第一变量为要素的第一向量及以与第一变量对应的第二变量为要素的第二向量。信息处理系统可以包括存储装置和信息处理装置。存储装置构成为存储第一变量及第二变量。信息处理装置通过将对应的第二变量加权并与第一变量相加来更新第一向量。另外,信息处理装置用根据更新次数而单调增加或单调减少的第一系数对第一变量进行加权并与对应的第二变量相加,使用多个第一变量来计算问题项,并将问题项与第二变量相加,来更新第二向量。进而,信息处理装置在重复第一向量及第二向量的更新后,通过伪随机数对第二向量的第二变量进行初始化,并再次重复第一向量及第二向量的更新。
信息处理方法也可以重复更新以第一变量为要素的第一向量及以与第一变量对应的第二变量为要素的第二向量。在此,信息处理方法也可以包括:通过将对应的第二变量加权并与第一变量相加来更新第一向量的步骤;以及用根据更新次数而单调增加或单调减少的第一系数对第一变量进行加权并与对应的第二变量相加,使用多个第一变量来计算问题项,并将问题项与第二变量相加,来更新第二向量的步骤。另外,信息处理方法也可以在重复进行第一向量及第二向量的更新之后,通过伪随机数对第二向量的第二变量进行初始化,并再次重复第一向量及第二向量的更新。
程序也可以使计算机重复更新以第一变量为要素的第一向量及以与第一变量对应的第二变量为要素的第二向量。在此,程序也可以包括:通过将对应的第二变量加权并与第一变量相加来更新第一向量的步骤;以及用根据更新次数而单调增加或单调减少的第一系数对第一变量进行加权并与对应的第二变量相加,使用多个第一变量来计算问题项,并将问题项与第二变量相加,来更新第二向量的步骤。另外,程序也可以在计算机中重复进行第一向量及第二向量的更新之后,通过伪随机数对第二向量的第二变量进行初始化,并再次执行重复第一向量及第二向量的更新的处理。另外,非暂时的计算机可读的存储介质可以存储上述程序。
[包含多体相互作用的项在内的计算]
通过使用模拟分支算法,也能够求解具有3次以上的目标函数的组合最优化问题。求解使以2值变量为变量的3次以上的目标函数最小化的变量的组合的问题,被称作HOBO(Higher Order Binary Opt imization,高阶二次最优化)问题。在处置HOBO问题的情况下,作为向高次扩展的伊辛模型中的能量式,可以使用下述的式(7)。
[数式7]
Figure BDA0003283482200000301
在此,J(n)为n阶张量,是使式(1)的局部磁场hi与耦合系数的矩阵J一般化。例如,张量J(1)相当于局部磁场hi的向量。在n阶张量J(n)中,当多个下标具有相同的值时,要素的值为0。在式(7)中,表示到了3次的项,但比其高次的项也能够与式(7)同样地定义。式(7)相当于包含多体相互作用的伊辛模型的能量。
另外,可以说QUBO和HOBO均为无约束多项式2值变量最优化(PUBO:PolynomialUnconstrained Binary Optimization)中的1种。即,在PUBO中,具有2次的目标函数的组合最优化问题是QUBO。另外,在PUBO中,具有3次以上的目标函数的组合最优化问题可以说是HOBO。
在使用模拟分支算法求解HOBO问题的情况下,只要将上述的式(3)的哈密顿量H置换为下述的式(8)的哈密顿量H即可。
[数式8]
Figure BDA0003283482200000311
Figure BDA0003283482200000312
另外,根据式(8),使用下述的式(9)所示的多个第一变量来导出问题项。
[数式9]
Figure BDA0003283482200000313
(9)的问题项zi取将(8)的第二个式子关于某个变量xi(第一向量的要素)进行了偏微分的形式。偏微分的变量xi根据索引i而不同。在此,变量xi的索引i相当于指定第一向量的要素及第二向量的要素的索引。
在进行包含多体相互作用的项的计算的情况下,上述的(6)的递推式被置换为下述的(10)的递推式。
[数式10]
xi(t+Δt)=xi(t)+Dyi(t)Δt (10)
Figure BDA0003283482200000314
(10)相当于将(6)的递推式进一步一般化而得到的式子。
上述所示的问题项只不过是本实施方式的信息处理装置能够使用的问题项的例子。因而,在计算中使用的问题项的形式也可以与它们不同。
[算法的变形例]
在此,对模拟分支算法的变形例进行说明。例如,以误差的减轻或计算时间的缩短为目的,也可以对上述的模拟分支算法进行各种变形。
例如,为了减小计算的误差,也可以在第一变量的更新时执行追加的处理。例如,在第一变量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的方式执行更新处理,则即使将(6)及(10)的非线性项K×xi 2去除,xi的值也不会发散。因此,能够使用在下述的(11)中表示的算法。
[数式11]
xi(t+Δt)=xi(t)+Dyi(t)Δt (11)
Figure BDA0003283482200000331
在(1)的算法中,在问题项中,不是使用离散变量,而是使用连续变量x。因此,有可能发生与本来的组合最优化问题中使用的离散变量的误差。为了减小该误差,如下述的(12)那样,在问题项的计算中,可以代替连续变量x而使用将连续变量x用符号函数变换后得到的值sgn(x)。
[数式12]
xi(t+Δt)=xi(t)+Dyi(t)Δt (12)
Figure BDA0003283482200000332
在(12)中,sgn(x)相当于自旋s。
在(12)中,也可以将问题项中的包含1阶的张量的项的系数α设为常数(例如α=1)。在(12)的算法中,由于在问题项中出现的自旋彼此的积必定取-1或1的某个值,所以在处理具有高次的目标函数的HOMO问题的情况下,能够防止因积运算带来的误差的发生。如上述的(12)的算法那样,计算服务器计算的数据也可以还包括以变量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}的计算所需要的下述的(13)中表示的张量J(n)被保存在处理器#j能够访问的存储区域(例如,寄存器、高速缓存、存储器等)中。
[数式13]
Figure BDA0003283482200000341
在此,说明了各个处理器计算第一向量及第二向量的恒定数的变量的情况。但是,根据处理器,作为计算对象的第一向量及第二向量的要素(变量)的数量也可以不同。例如,在根据计算服务器中安装的处理器而有性能差的情况下,可以根据处理器的性能来决定作为计算对象的变量的数量。
为了将变量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个处理器中而并行地执行,实现计算时间的缩短。
图27概略地示出多处理器结构的例子。图27的多个计算节点例如相当于信息处理系统100的多个计算服务器。另外,图27的高速链路例如相当于由信息处理系统100的线缆4a~4c及开关5形成的计算服务器之间的互连。图27中的共享存储器相当于共享存储器32。图27的处理器例如相当于各计算服务器的处理器33A~33D。另外,在图27中示出多个计算节点,但并不妨碍使用单一计算节点的结构。
在图27中示出了在配置于各构成要素的数据及构成要素之间传送的数据。在各处理器中,计算变量xi、yi的值。另外,在处理器和共享存储器之间传送变量xi。在各计算节点的共享存储器中,例如保存第一向量(x1,x2,…,xN)、第二向量(y1,y2,…,yN)的L个变量及张量J(n)的一部分。然后,在连接计算节点间的高速链路中,例如传送第一向量(x1,x2,…,xN)。在使用Allgather函数的情况下,为了用各处理器更新变量yi,需要第一向量(x1,x2,…,xN)的全部要素。
另外,图27所示的数据的配置及传送只不过为一例。关于PC集群中的数据的配置方法、传送方法及并行化的实现方法,没有特别限定。
另外,也可以使用GPU(Graphics Processing Unit:图形处理单元)进行模拟分支算法的计算。
图28概略地示出了使用GPU的结构的例子。图28中示出了通过高速链路彼此连接的多个GPU。在各个GPU上搭载有能够访问共享存储器的多个内核。另外,在图28的结构例中,多个GPU经由高速链路连接,形成GPU集群。例如,在GPU搭载于图1的各个计算服务器的情况下,高速链接相当于由线缆4a~4c及开关5形成的计算服务器之间的互连。另外,在图28的结构例中,使用了多个GPU,但在使用了一个GPU的情况下,也能够执行并行的计算。即,图28的各个GPU能够执行与图16的各个计算节点相当的计算。即,信息处理装置(计算服务器)的处理器(处理电路)可以是图形处理单元(GPU)的内核。
在GPU中,变量xi及yi以及张量J(n)被定义为设备变量。GPU可以通过矩阵向量积函数而并行地计算在变量yi的更新中需要的张量J(n)与第一向量(x1,x2,…,xN)的积。另外,通过重复执行矩阵与向量的积运算,能够求出张量与向量的积。此外,关于第一向量(x1,x2,…,xN)的计算和第二向量(y1,y2,…,yN)中的积和运算以外的部分,能够使各个线程执行第i个要素(xi,yi)的更新处理,实现处理的并行化。
信息处理装置也可以具备多个处理电路。在该情况下,各个处理电路也可以构成为并行地更新第一向量的至少一部分及第二向量的至少一部分。
另外,信息处理系统也可以具备多个信息处理装置。在该情况下,各个处理电路也可以构成为并行地更新第一向量的至少一部分及第二向量的至少一部分。
[用于求解组合优化问题的整体处理]
以下,说明为了使用模拟分支算法来求解组合最优化问题而执行的整体处理。
图29的流程图表示为了求解组合最优化问题而执行的整体处理的例子。以下,参照图29对处理进行说明。
首先,将组合最优化问题公式化(步骤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 (15)

1.一种信息处理装置,构成为重复更新以第一变量为要素的第一向量及以与所述第一变量对应的第二变量为要素的第二向量,所述信息处理装置具备:
存储部,构成为存储所述第一变量及所述第二变量;以及
处理电路,构成为进行如下处理:
通过将对应的所述第二变量加权并与所述第一变量相加,来更新所述第一向量;
用根据更新次数而单调增加或单调减少的第一系数对所述第一变量进行加权并与对应的所述第二变量相加,使用多个所述第一变量来计算问题项,通过将所述问题项与所述第二变量相加来更新所述第二向量;以及
在重复进行所述第一向量及所述第二向量的更新之后,通过伪随机数对所述第二向量的所述第二变量进行初始化,并再次重复进行所述第一向量及所述第二向量的更新。
2.根据权利要求1所述的信息处理装置,其中,
所述处理电路构成为,根据所述第二向量的所述第二变量的初始化被进行的次数,来改变所述伪随机数的最大绝对值。
3.根据权利要求1所述的信息处理装置,其中,
所述处理电路构成为,根据所述第二向量的所述第二变量的初始化被进行的次数,使所述伪随机数的最大绝对值单调减少。
4.根据权利要求1~3中任一项所述的信息处理装置,其中,
所述处理电路构成为,在重复进行所述第一向量及所述第二向量的更新之后,基于所述第一向量而计算目标函数的值,在将所述第一向量及所述目标函数的值保存于所述存储部之后,再次重复进行所述第一向量及所述第二向量的更新。
5.根据权利要求1~3中任一项所述的信息处理装置,其中,
所述处理电路构成为,在重复进行所述第一向量及所述第二向量的更新之后,将作为正值的所述第一变量变换为第一值,将作为负值的所述第一变量变换为比所述第一值小的第二值,由此根据所述第一向量来计算解向量,基于所述解向量来计算目标函数的值,在将所述解向量及所述目标函数的值保存于所述存储部之后,再次重复进行所述第一向量及所述第二向量的更新。
6.根据权利要求1~5中任一项所述的信息处理装置,其中,
所述处理电路生成的所述伪随机数是正态随机数。
7.根据权利要求1~5中任一项所述的信息处理装置,其中,
所述处理电路生成的所述伪随机数是均匀随机数。
8.根据权利要求1~7中任一项所述的信息处理装置,其中,
所述处理电路计算的所述问题项基于伊辛模型。
9.根据权利要求8所述的信息处理装置,其中,
所述处理电路计算的所述问题项包含多体相互作用。
10.根据权利要求1~9中任一项所述的信息处理装置,其中,
具备多个所述处理电路,
各个所述处理电路构成为,并行地更新所述第一向量的至少一部分及所述第二向量的至少一部分。
11.一种信息处理系统,构成为重复更新以第一变量为要素的第一向量及以与所述第一变量对应的第二变量为要素的第二向量,所述信息处理系统具备:
存储装置,构成为存储所述第一变量及所述第二变量;以及
信息处理装置,构成为进行如下处理:
通过将对应的所述第二变量加权并与所述第一变量相加,来更新所述第一向量;
用根据更新次数而单调增加或单调减少的第一系数对所述第一变量进行加权并与对应的所述第二变量相加,使用多个所述第一变量来计算问题项,通过将所述问题项与所述第二变量相加来更新所述第二向量;以及
在重复进行所述第一向量及所述第二向量的更新之后,通过伪随机数对所述第二向量的所述第二变量进行初始化,并再次重复进行所述第一向量及所述第二向量的更新。
12.根据权利要求11所述的信息处理系统,其中,
具备多个所述信息处理装置,
各个所述信息处理装置构成为,并行地更新所述第一向量的至少一部分及所述第二向量的至少一部分。
13.一种信息处理方法,重复更新以第一变量为要素的第一向量及以与所述第一变量对应的第二变量为要素的第二向量,所述信息处理方法包括如下步骤:
通过将对应的所述第二变量加权并与所述第一变量相加来更新所述第一向量的步骤;以及
用根据更新次数而单调增加或单调减少的第一系数对所述第一变量进行加权并与对应的所述第二变量相加,使用多个所述第一变量来计算问题项,通过将所述问题项与所述第二变量相加来更新所述第二向量的步骤,
在重复进行所述第一向量及所述第二向量的更新之后,通过伪随机数对所述第二向量的所述第二变量进行初始化,并再次重复所述第一向量及所述第二向量的更新。
14.一种非暂时的计算机可读的存储介质,存储有程序,该程序使计算机重复更新以第一变量为要素的第一向量及以与所述第一变量对应的第二变量为要素的第二向量,所述程序包括如下步骤:
通过将对应的所述第二变量加权并与所述第一变量相加来更新所述第一向量的步骤;以及
用根据更新次数而单调增加或单调减少的第一系数对所述第一变量进行加权并与对应的所述第二变量相加,使用多个所述第一变量来计算问题项,通过将所述问题项与所述第二变量相加来更新所述第二向量的步骤,
所述程序使所述计算机进行如下处理:在重复进行所述第一向量及所述第二向量的更新之后,通过伪随机数对所述第二向量的所述第二变量进行初始化,并再次重复进行所述第一向量及所述第二向量的更新。
15.一种程序,该程序使计算机重复更新以第一变量为要素的第一向量及以与所述第一变量对应的第二变量为要素的第二向量,所述程序包括如下步骤:
通过将对应的所述第二变量加权并与所述第一变量相加来更新所述第一向量的步骤;以及
用根据更新次数而单调增加或单调减少的第一系数对所述第一变量进行加权并与对应的所述第二变量相加,使用多个所述第一变量来计算问题项,通过将所述问题项与所述第二变量相加来更新所述第二向量的步骤,
所述程序使所述计算机进行如下处理:在重复进行所述第一向量及所述第二向量的更新之后,通过伪随机数对所述第二向量的所述第二变量进行初始化,并再次重复进行所述第一向量及所述第二向量的更新。
CN202080025394.XA 2019-03-28 2020-03-27 信息处理设备、信息处理系统、信息处理方法、存储介质及程序 Pending CN113646783A (zh)

Applications Claiming Priority (3)

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

Publications (1)

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

Family

ID=72609525

Family Applications (1)

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

Country Status (5)

Country Link
US (1) US20220012306A1 (zh)
JP (1) JPWO2020196883A1 (zh)
CN (1) CN113646783A (zh)
CA (1) CA3135145A1 (zh)
WO (1) WO2020196883A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7472062B2 (ja) 2021-03-08 2024-04-22 株式会社東芝 計算装置、計算方法およびプログラム

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10031887B2 (en) * 2014-09-09 2018-07-24 D-Wave Systems Inc. Systems and methods for improving the performance of a quantum processor via reduced readouts
JP6836529B2 (ja) * 2018-02-23 2021-03-03 株式会社東芝 計算装置、計算プログラム、記録媒体及び計算方法

Also Published As

Publication number Publication date
US20220012306A1 (en) 2022-01-13
WO2020196883A1 (ja) 2020-10-01
JPWO2020196883A1 (zh) 2020-10-01
CA3135145A1 (en) 2020-10-01

Similar Documents

Publication Publication Date Title
US20220012387A1 (en) Information processing device, information processing system, information processing method, and storage medium
JP7176127B2 (ja) 量子シミュレーションアルゴリズムに基づくデータサーチ方法、装置及び機器並びにコンピュータプログラム
CN113807525B (zh) 量子电路操作方法及装置、电子设备和介质
JP7421291B2 (ja) 情報処理装置、プログラム、情報処理方法、および電子回路
US20220012307A1 (en) Information processing device, information processing system, information processing method, and storage medium
Dupej et al. Low-rank matrix approximations for coherent point drift
CN113646783A (zh) 信息处理设备、信息处理系统、信息处理方法、存储介质及程序
US11966450B2 (en) Calculation device, calculation method, and computer program product
JP7421545B2 (ja) 情報処理装置、情報処理システム、情報処理方法、記憶媒体およびプログラム
JP7474242B2 (ja) 情報処理装置、情報処理システム、情報処理方法、記憶媒体およびプログラム
WO2022249785A1 (ja) 求解装置、求解方法およびプログラム
JP7472062B2 (ja) 計算装置、計算方法およびプログラム
Trofimov et al. Distributed coordinate descent for generalized linear models with regularization
CN117313879A (zh) 量子电路处理方法、装置及电子设备
CN117313884A (zh) 量子电路处理方法、装置及电子设备
CN117313882A (zh) 量子电路处理方法、装置及电子设备
CN115630701A (zh) 系统的特征信息确定方法、装置、电子设备和介质
CN117313877A (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