JP2023139287A - 情報処理装置、情報処理方法およびプログラム - Google Patents

情報処理装置、情報処理方法およびプログラム Download PDF

Info

Publication number
JP2023139287A
JP2023139287A JP2023126045A JP2023126045A JP2023139287A JP 2023139287 A JP2023139287 A JP 2023139287A JP 2023126045 A JP2023126045 A JP 2023126045A JP 2023126045 A JP2023126045 A JP 2023126045A JP 2023139287 A JP2023139287 A JP 2023139287A
Authority
JP
Japan
Prior art keywords
ising
search
circuit
search process
main
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
JP2023126045A
Other languages
English (en)
Inventor
亮 日高
Ryo Hidaka
光介 辰村
Kosuke Tatsumura
雅也 山崎
Masaya Yamazaki
洋平 濱川
Yohei Hamakawa
隼人 後藤
Hayato Goto
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
Original Assignee
Toshiba 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 filed Critical Toshiba Corp
Priority to JP2023126045A priority Critical patent/JP2023139287A/ja
Publication of JP2023139287A publication Critical patent/JP2023139287A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N7/00Computing arrangements based on specific mathematical models
    • G06N7/08Computing arrangements based on specific mathematical models using chaos models or non-linear system models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/04Forecasting or optimisation specially adapted for administrative or management purposes, e.g. linear programming or "cutting stock problem"
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation
    • G06F30/27Design optimisation, verification or simulation using machine learning, e.g. artificial intelligence, neural networks, support vector machines [SVM] or training a model
    • 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
    • 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
    • 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
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/177Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2111/00Details relating to CAD techniques
    • G06F2111/06Multi-objective optimisation, e.g. Pareto optimisation using simulated annealing [SA], ant colony algorithms or genetic algorithms [GA]

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Software Systems (AREA)
  • Evolutionary Computation (AREA)
  • Computing Systems (AREA)
  • Artificial Intelligence (AREA)
  • Algebra (AREA)
  • Operations Research (AREA)
  • Business, Economics & Management (AREA)
  • Computer Hardware Design (AREA)
  • Nonlinear Science (AREA)
  • Human Resources & Organizations (AREA)
  • Databases & Information Systems (AREA)
  • Strategic Management (AREA)
  • Economics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Game Theory and Decision Science (AREA)
  • Development Economics (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Marketing (AREA)
  • Geometry (AREA)
  • Quality & Reliability (AREA)
  • Tourism & Hospitality (AREA)
  • General Business, Economics & Management (AREA)
  • Medical Informatics (AREA)
  • Computational Linguistics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Advance Control (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】組合せ最適化問題の解を高速に算出する。【解決手段】実施形態に係る情報処理システムは、組合せ最適化問題を解く。情報処理システムは、イジングマシンと、ホスト部とを備える。イジングマシンは、組合せ最適化問題を表すイジングモデルの基底状態を探索する探索処理を実行するハードウェアである。ホスト部は、イジングマシンとインタフェースを介して接続され、イジングマシンを制御するハードウェアである。探索処理において、イジングマシンは、複数のイジングスピンのそれぞれについて、主変数によって補助変数を更新する補助変数更新処理および補助変数によって主変数を更新する主変数更新処理を、交互に複数回繰り返して実行する。探索処理に先だって、ホスト部は、複数のイジングスピンのそれぞれに対応する補助変数の初期値を、イジングマシンに送信する。【選択図】図6

Description

本発明の実施形態は、情報処理装置、情報処理方法およびプログラムに関する。
金融、物流、制御、化学などの様々な応用分野における複雑な系の最適化は、多くの場合、数学的な組合せ最適化問題に帰着される。組合せ最適化問題は、コスト関数と呼ばれる離散変数の関数を最小化する離散値の組合せを見つける問題である。
近年、イジングマシンと呼ばれる、イジングモデルの基底状態の探索処理を行う特定目的装置が注目されている。イジングモデルの基底状態を探索する問題を、イジング問題と呼ぶ。イジング問題は、2値を表す変数(イジングスピン)の2次関数で与えられたコスト関数を最小化する組合せ最適化問題である。コスト関数は、イジングエネルギーと呼ばれる。多くの実用的な組合せ最適化問題は、イジング問題に変換することが可能である。従って、組合せ最適化問題を解くシステムは、イジングマシンを用いることにより、目的の組合せ最適化問題を解くことができる。
組合せ最適化問題を解くシステムは、イジングモデルの基底状態の探索処理を行うイジングマシンと、探索処理以外の処理を行うホスト部とを含む。また、イジング問題は、結合係数群(J行列)と、外部磁場係数群(hベクトル)とにより定義される。
このような組合せ最適化問題を解くシステムにおいて、ホスト部は、J行列およびhベクトルをイジングマシンに送信し、イジングマシンから最適化された複数のイジングスピンのそれぞれの値を受信する。また、イジングマシンは、ホスト部からJ行列およびhベクトルを受け取り、イジングエネルギーを最小にするように最適化された複数のイジングスピンのそれぞれの値を返信する。このような組合せ最適化問題を解くシステムは、ホスト部とイジングマシンとの間で効率良く情報を送受信して、組合せ最適化問題の計算処理を開始してから解を出力するまでの時間を短くすることが要求される。
特許第6207584号公報 特開2019-145010号公報 特開2019-159566号公報 特開2020-046715号公報 特開2020-046766号公報 特開2020-046784号公報 特開2020-046887号公報
Hayato Goto, Kosuke Tatsumura, Alexander R. Dixon, "Combinatorial optimization by simulating adiabatic bifurcations in nonlinear Hamiltonian systems",Science Advances, Vol. 5, no. 4, eaav2372, 19 Apr. 2019
本発明が解決しようとする課題は、組合せ最適化問題の解を高速に算出することにある。
実施形態に係る情報処理装置は、ホスト部を有する。前記ホスト部は、イジングマシンとインタフェースを介して接続され、前記イジングマシンを制御する。前記イジングマシンは、再構成可能な半導体装置であり、組合せ最適化問題を表すイジングモデルの基底状態を探索する探索処理を実行する。前記探索処理に先だって、前記ホスト部は、前記半導体装置に前記探索処理を実現させる回路を表す複数の回路情報のうち、前記イジングモデルの基底状態を探索可能な回路を表す1つの回路情報を選択し、選択した前記回路情報により前記イジングマシンを再構成させる。
第1実施形態に係る情報処理システムの機能構成を示す図。 イジングモデルを表すグラフを示す図。 イジングマシンに記憶される変数を示す図。 イジングマシンによる探索処理の流れを示すフローチャート。 情報処理システムのハードウェア構成を示す図。 情報処理システムの処理の流れを示すシーケンス図。 第2実施形態に係る情報処理システムのハードウェア構成を示す図。 第2実施形態の第1例のフローチャート。 第2実施形態の第1例のタイミングチャート。 第2実施形態の第2例のフローチャート。 前処理の流れを示すフローチャート。 第2実施形態の第2例のタイミングチャート。 第3実施形態に係る情報処理システムの機能構成を示す図。 第3実施形態のフローチャート。 第3実施形態のタイマ割り込みのフローチャート。 第3実施形態のタイミングチャート。 第4実施形態のタイマ割り込みのフローチャート。 第4実施形態のタイミングチャート。 再構成しない場合および再構成した場合の処理時間を示す図。 結合係数を含む結合情報を表す図。
(第1実施形態)
図1は、第1実施形態に係る情報処理システム10の機能構成を示す図である。
情報処理システム10は、組合せ最適化問題を解く装置である。第1実施形態に係る情報処理システム10は、イジングマシン12と、ホスト部14とを備える。
イジングマシン12は、組合せ最適化問題を表すイジングモデルの基底状態を探索する探索処理を実行するハードウェアである。イジングマシン12は、例えば、FPGA(Field Programmable Gate Array)等の再構成可能な半導体装置である。なお、第1実施形態においては、イジングマシン12は、再構成可能な半導体装置でなくてもよい。第1実施形態においては、イジングマシン12は、例えば、再構成できない半導体装置であっても、プログラムに従って情報処理を実行するプロセッシング回路であってもよい。
ホスト部14は、イジングマシン12と物理的なインタフェースを介して接続され、イジングマシン12を制御するハードウェアである。ホスト部14は、プログラムに従って情報処理を実行するプロセッシング回路である。ホスト部14は、組合せ最適化問題を解くための一連の処理のうち、イジングマシン12により実行される探索処理以外の処理を実行する。
解くべき組合せ最適化問題を表すイジングモデルの基底状態を探索する場合、ホスト部14は、イジングモデルを定義する定義情報であるJ行列およびhベクトルと、イジングマシン12で実行される探索処理を制御するための制御パラメータと、複数の補助変数(p,p,p,…)(詳細後述)のそれぞれの初期値とをインタフェースを介してイジングマシン12に送信する。なお、ホスト部14は、さらに、複数の主変数(x,x,x,…)(詳細後述)の初期値をインタフェースを介してイジングマシン12に送信してもよい。
イジングマシン12は、J行列およびhベクトルで定義されたイジングモデルの基底状態を探索する探索処理を実行する。探索処理の開始時に、イジングマシン12は、複数の補助変数(p,p,p,…)のそれぞれに、ホスト部14から受信した初期値を代入する。さらに、探索処理の開始時に、イジングマシン12は、複数の主変数(x,x,x,…)のそれぞれに、0等の予め定められた値を、初期値として代入する。イジングマシン12は、複数の主変数(x,x,x,…)のそれぞれに、乱数等に基づき値を生成し、生成した値を初期値として代入してもよい。なお、イジングマシン12は、複数の主変数(x,x,x,…)のそれぞれの初期値をホスト部14から受信した場合には、複数の主変数(x,x,x,…)のそれぞれに受信した値を代入する。そして、イジングマシン12は、複数の主変数(x,x,x,…)のそれぞれおよび複数の補助変数(p,p,p,…)のそれぞれに初期値を代入してから、探索を開始する。
イジングマシン12は、探索処理を実行することにより、イジングモデルにおけるイジングエネルギーを最小にするような複数の主変数(x,x,x,…)の値を算出することができる。そして、イジングマシン12は、探索処理後の複数の主変数(x,x,x,…)の値のそれぞれを2値化したN個のイジングスピン(s,s,s,…)の値を、探索結果としてインタフェースを介してホスト部14に送信する。イジングマシン12は、探索処理後の複数の主変数(x,x,x,…)の値を、探索結果としてホスト部14に送信してもよい。そして、ホスト部14は、複数のイジングスピン(s,s,s,…)の値を、組合せ最適化問題の解として出力する。
図2は、イジングモデルを表すグラフを示す図である。N個のイジングスピンを含むイジングモデルのエネルギー(E(s))は、下記の(1)式により表される。
Figure 2023139287000002
Nは、イジングモデルに含まれるイジングスピンの数であり、3以上の整数である。iおよびjは、イジングスピンのインデックスを表し、1以上、N以下の整数である。sは、i番目のイジングスピンを表す。sは、j番目のイジングスピンを表す。sおよびsは、-1または+1の何れかを表す。なお、N個のイジングスピンをまとめて、sベクトル(s,s,…,s)と呼ぶ場合もある。sベクトルは、N個のイジングスピンにおける-1または+1の配置を表す。
ijは、J行列におけるi行、j列の要素である。J行列は、対称成分の要素が同一である(Jij=Jji)、N行、N列の正方行列である。イジングモデルは、N個のイジングスピンに含まれる全ての2つのイジングスピンの組毎に、結合係数が定義される。Jijは、i番目のイジングスピンとj番目のイジングスピンとの間の相互作用を表す結合係数を表す。
は、hベクトルにおけるi番目の要素である。イジングモデルは、N個のイジングスピンのそれぞれに対して、個別に影響を与える外部磁場を表す外部磁場係数が定義される。hは、i番目のイジングスピンに影響を与える外部磁場係数を表す。
Nサイズのイジング問題とは、N個のイジングスピンを含むイジングモデルに対して、イジングエネルギーが最小となるスピン配置を算出する問題をいう。エネルギー最小となるスピン配置(Sベクトル)は、基底状態と呼ばれる。
図2には、N=6の場合のイジングモデルを表すグラフを示している。グラフ頂点は、イジングスピンに対応する。グラフエッジは、イジングスピンとイジングスピンとの間の結合係数Jijに相当する。外部磁場係数hは、グラフ頂点に割り当てられている。
一般の組合せ最適化問題は、J行列およびhベクトルにより定義されるイジング問題として表される。イジングマシン12は、解くべき問題としてJ行列およびhベクトルを受け取り、内部でイジングエネルギーがより低いスピン配置を探索し、解としてその最適化したスピン配置を出力する。
イジングエネルギーが最小のスピン配置は、厳密解に相当する。イジングエネルギーが最小に近いスピン配置は、近似解に相当する。一般に、イジングマシン12の性能は、解を出力するまでの時間と、解の精度(より小さいエネルギーの方が解の精度が高い)とにより表される。イジングマシン12は、解として、厳密解のみならず、近似解を出力してもよい。また、イジングマシン12による基底状態を探索する探索処理は、厳密解を探索する処理のみならず、近似解を探索する処理も含む。
また、Nサイズのイジング問題を解くことができるイジングマシン12は、Nサイズより小さいイジング問題も解くことができる。例えば、イジングマシン12は、J行列およびh行列におけるイジングスピンが存在しない要素の結合係数および外部磁場係数を0とすることにより、Nサイズより小さいイジング問題を、Nサイズのイジング問題として探索することができる。
イジング問題の解法として、従来、シミュレーテッドアニーリング(SA)法が知られている。SA法に従いイジングモデルの基底状態の探索処理を行う装置は、SAベースイジングマシンと呼ばれる。
また、イジング問題を解く解法として、シミュレーテッド分岐(SB)法が知られている。イジングマシン12は、また、シミュレーテッド分岐法により、イジングモデルの基底状態の探索処理を行う。例えば、シミュレーテッド分岐法は、非特許文献1および特許文献2~7等により提案されている。シミュレーテッド分岐法は、古典力学における断熱変化に基づく最適化アルゴリズムにおける運動方程式を、高速シミュレーションに適した形に改変したアルゴリズムである。イジングマシン12は、このようなシミュレーテッド分岐法を用いて、イジングモデルの基底状態の探索処理を実行する。
シミュレーテッド分岐法では、それぞれがN個の仮想的な粒子に対応する2つの主変数(x)および補助変数(p)を用いる。N個の粒子は、N個のイジングスピンに対応する。シミュレーテッド分岐法において、主変数(x)は、N個の粒子のうちのi番目の粒子の位置を表す(i=1、2、・・・、N)。シミュレーテッド分岐法において、補助変数(p)は、i番目の粒子の運動量を表す。N個の主変数(x)のそれぞれおよびN個の補助変数(p)のそれぞれは、実数で表される連続変数である。
そして、シミュレーテッド分岐法では、N個の仮想的な粒子のそれぞれについて、例えば下記の式(2)および式(3)の連立常微分方程式を数値的に解く。
Figure 2023139287000003
ここで、Hは、下記の式(4)のハミルトニアンである。
Figure 2023139287000004
cは、予め定められた係数である。Dは、予め定められた係数であり、離調(detuning)に相当する。Kは、正のカー係数(Kerr coefficient)に相当する係数である。tは、時刻を表す変数である。p(t)は、ポンピング振幅(pumping amplitude)に相当し、シミュレーテッド分岐法の計算時に更新回数に応じて値が単調増加する関数である。p(t)の初期値は、0に設定されていてもよい。α(t)は、p(t)とともに単調増加する関数である。
ここで、シンプレクティック・オイラー法を使うと、式(2)および(3)によって与えられる微分方程式を解くことができる。下記の式(5)よび式(6)に示されているように、シンプレクティック・オイラー法を使う場合、微分方程式が離散的な漸化式に書き換えられる。
Figure 2023139287000005
Δtは、時間ステップ(単位時間、時間刻み幅)である。
そこで、イジングマシン12は、tをΔtずつ増加させながら、tが予め定められた終了時刻(T)に達するまで、式(5)および式(6)の演算を交互に実行する。そして、イジングマシン12は、最終的に得られたN個の主変数(x)のそれぞれを2値化したN個のイジングスピン(s)の値、または、N個の主変数(x)の値を、探索結果として出力する。
なお、イジングマシン12は、シミュレーテッド分岐法を用いたアルゴリズムであれば、式(3)および式(4)以外を演算するアルゴリズムを実行してもよい。例えば、イジングマシン12は、式(3)および式(4)を変形した式を演算するアルゴリズムを実行してもよい。また、例えば、イジングマシン12は、式(3)および式(4)の演算または式(3)および式(4)を変形した式の演算に加えて所定の制御処理をするアルゴリズムを実行してもよい。
イジングマシン12は、実行するアルゴリズムを変更することにより、収束速度および到達解精度といった性能指標が変化する場合がある。従って、イジングマシン12に適用されるアルゴリズムは、解くべきイジング問題および目的(収束速度重視および精度重視等)によって異なってもよい。イジングマシン12は、予め設定された複数のアルゴリズムのうち、ユーザにより選択されたアルゴリズムにより探索処理を実行してもよい。例えば、イジングマシン12が再構成可能な半導体デバイスである場合、ホスト部14は、ユーザにより選択されたアルゴリズムを実行する回路を表す回路情報に基づいて、半導体デバイスを再構成する。これにより、イジングマシン12は、解くべきイジング問題および目的に応じて、適切な回路によりイジングモデルの基底状態の探索処理を実行することができる。
図3は、イジングマシン12に記憶される変数を示す図である。イジングマシン12は、シミュレーテッド分岐法を用いたアルゴリズムをハードウェア回路によって実行する。N個のイジングスピンを含むイジングモデルの基底状態の探索処理をする場合、イジングマシン12は、内部のメモリまたはレジスタにN個の主変数(x)およびN個の補助変数(p)を記憶する。
このように、イジングマシン12は、内部に2×N個の変数を記憶する。従って、イジングマシン12は、N個の変数を記憶するSAベースイジングマシンとは構成が異なる。なお、主変数(x)は、2値化処理により、イジングスピン(s)に変換される。これに対して、補助変数(p)は、イジングスピン(s)への変換には用いられない。
また、N個の主変数(x)のそれぞれおよびN個の補助変数(p)のそれぞれは、探索処理の開始時において、初期化がされる。イジングマシン12は、J行列およびhベクトルが同一である問題であっても、補助変数(p)の初期値が異なる場合、異なる解(近似)を出力する場合がある。このため、イジングマシン12は、補助変数(p)の初期値を変更して、J行列およびhベクトルが同一である問題の探索処理を実行することにより、より精度の高い解を得ることが可能となる。
図4は、イジングマシン12による探索処理の流れを示すフローチャートである。イジングマシン12は、図4に示す流れで探索処理を実行する。
まず、S111において、イジングマシン12は、設定処理をする。具体的には、イジングマシン12は、例えばKおよびDの係数、および、p(t)およびα(t)等の関数、および、繰り返し回数等を設定する。さらに、イジングマシン12は、J行列およびhベクトルを、ホスト部14から受け取った定義情報に基づき設定する。
続いて、S112において、イジングマシン12は、N個の主変数(x~x)のそれぞれの値およびN個の補助変数(p~p)のそれぞれの値を初期化する。例えば、イジングマシン12は、N個の主変数(x~x)のそれぞれの値を、0、予め定められた値、または、所定の範囲内において乱数により定まる値に設定する。また、イジングマシン12は、N個の主変数(x~x)のそれぞれの初期値をホスト部14から受信した場合には、N個の主変数(x~x)のそれぞれの値をホスト部14から受信した初期値に設定する。さらに、イジングマシン12は、N個の補助変数(p~p)のそれぞれの値を、ホスト部14から受信した初期値に設定する。
続いて、イジングマシン12は、S113からS120までのループ処理を、設定された回数繰り返す。
ループ内におけるS114~S116において、イジングマシン12は、i=1からi=Nまでiを1ずつインクリメントしながら、補助変数更新処理を実行する(S114、S115、S116)。i番目の補助変数を更新するための補助変数更新処理(S115)において、イジングマシン12は、N個の主変数(x~x)、i番目の主変数(x)と他の(N-1)個の主変数(x1~i-1,i+1~N)との間の相互作用を表すN個の結合係数(Ji,j)、および、i番目の外部磁場係数(h)とによって、i番目の補助変数(p)を更新する。
具体的には、イジングマシン12は、上述した式(6)を演算することにより、i番目の補助変数(p)を算出する。
なお、イジングマシン12は、S115の処理を並列に実行してもよい。これにより、イジングマシン12は、N個の補助変数(p~p)を高速に算出することができる。
続いてS117~S119において、イジングマシン12は、i=1からi=Nまでiを1ずつインクリメントしながら、主変数更新処理を実行する(S117、S118、S119)。i番目の主変数を更新するための主変数更新処理(S118)において、イジングマシン12は、i番目の補助変数(p)によって、i番目の主変数(x)を更新する。
具体的には、イジングマシン12は、上述した式(5)を演算することにより、i番目の主変数(x)を算出する。
なお、イジングマシン12は、S118の処理を並列に実行してもよい。これにより、イジングマシン12は、N個の主変数(x~x)を高速に算出することができる。
そして、イジングマシン12は、S113とS120との間のループ処理を設定された回数実行した場合、処理をS121に進める。なお、イジングマシン12は、S113からS120までのループ処理内において、S117~S119の処理を先に実行し、S114~S116の処理を後に実行してもよい。
S121において、イジングマシン12は、探索結果をホスト部14へと出力する。例えば、イジングマシン12は、N個の主変数(x~x)のそれぞれを2値化したN個のイジングスピン(s~s)、または、N個の主変数(x~x)をホスト部14へと出力する。そして、イジングマシン12は、S121の処理を終えると、探索処理を終了する。
以上のように、イジングマシン12は、N個のイジングスピン(s~s)のそれぞれについて、主変数によって補助変数を更新する補助変数更新処理(S115)および補助変数によって主変数を更新する主変数更新処理(S118)を、交互に複数回繰り返して実行する。さらに、イジングマシン12は、補助変数更新処理(S115)および主変数更新処理(S118)を複数回交互実行した後における主変数に基づく値を、探索結果として出力する。これにより、イジングマシン12は、シミュレーテッド分岐法を用いたアルゴリズムを実行して、イジングモデルの基底状態の探索処理を実行することができる。
図5は、情報処理システム10のハードウェア構成の一例を示す図である。例えば、情報処理システム10は、FPGA32と、CPU(Central Processing Unit)34と、主記憶装置36と、回路情報記憶装置38と、入力装置40と、表示装置42と、バス44とを備える。
FPGA32は、CPU34からバス44を介して回路情報を受け取り、受け取った回路情報に従って予め定められた回路として構成される。これにより、FPGA32は、イジングマシン12として機能する。
FPGA32は、CPU34からバス44を介して定義情報および制御パラメータを受け取り、受け取った定義情報および制御パラメータに従って探索処理を実行する。定義情報は、イジングモデルを定義する情報である。具体的には、J行列およびhベクトルである。制御パラメータは、探索処理を制御するための情報である。例えば、制御パラメータは、係数(c、D、K)、関数(α(t)、p(t))、単位時間(Δt)、および、ループ処理の繰り返し回数等である。
また、FPGA32は、探索処理に先だって、イジングモデルに含まれる複数のイジングスピンに対応するN個の補助変数(p)のそれぞれの、主記憶装置36に記憶されている初期値を、CPU34からバス44を介して受け取る。さらに、FPGA32は、探索処理に先だって、複数のイジングスピンに対応するN個の主変数(x)のそれぞれの、主記憶装置36に記憶されている初期値を、CPU34からバス44を介して受け取ってもよい。
そして、FPGA32は、探索処理が終了した後、探索結果をホスト部14へとバス44を介して出力する。具体的には、FPGA32は、探索結果として、複数のイジングスピンのそれぞれに対応する主変数(x)のそれぞれを2値化したイジングスピン(s)の値、または、複数の主変数(x)のそれぞれの値を、ホスト部14へと出力する。
CPU34は、主記憶装置36に記憶されたプログラムに従って動作する。これにより、CPU34および主記憶装置36は、ホスト部14として機能する。
CPU34は、前処理、パラメータ送信処理、結果受信処理およびメイン処理を実行する。CPU34は、前処理において、定義情報および制御パラメータを生成する。また、CPU34は、前処理において、複数の補助変数(p)のそれぞれの初期値を生成する。CPU34は、前処理において、複数の主変数(x)のそれぞれの初期値をさらに生成してもよい。
CPU34は、パラメータ送信処理において、定義情報、制御パラメータおよび複数の補助変数(p)のそれぞれの初期値をFPGA32へバス44を介して送信する。CPU34は、パラメータ送信処理において、さらに、複数の主変数(x)のそれぞれの初期値をFPGA32へバス44を介して送信してもよい。
CPU34は、結果受信処理において、探索結果をFPGA32からバス44を介して受信し、受信した探索結果に基づき組合せ最適化問題の解を出力する。また、CPU34は、前処理、パラメータ送信処理および結果受信処理以外の処理をメイン処理として実行する。
主記憶装置36は、RAM(Random access memory)である。主記憶装置36は、CPU34のデータ処理のための作業領域として用いられる。
回路情報記憶装置38は、不揮発性の記憶装置である。回路情報記憶装置38は、FPGA32をイジングモデルの基底状態を探索するための回路として構成させるための回路情報を記憶する。
回路情報記憶装置38は、複数の回路情報を記憶していてもよい。複数の回路情報のそれぞれは、例えば、解くことが可能なイジングモデルの最大サイズが互いに異なる回路を表す情報であってもよい。また、複数の回路情報のそれぞれは、例えば、アルゴリズムが互いに異なる探索処理を実行する回路を表す情報であってもよい。CPU34は、複数の回路情報の中から、ユーザにより指定された回路情報を選択し、選択した回路情報によりFPGA32を再構成させる。
入力装置40は、ユーザからの指示等を入力するための装置である。入力装置40は、例えば、マウスおよびキーボード等である。入力装置40は、ユーザから処理の開始指示を受け付ける。CPU34は、入力装置40がユーザによる開始指示を受け付けた場合、組合せ最適化問題の解の算出処理を開始する。
表示装置42は、ユーザに情報を表示するための装置である。表示装置42は、組合せ最適化問題の解を表示する。
バス44は、FPGA32、CPU34、主記憶装置36、回路情報記憶装置38、入力装置40および表示装置42を接続して、データの送受信をさせる。バス44は、イジングマシン12とホスト部14との間を接続するインタフェースとして機能する。
図6は、情報処理システム10の処理の流れを示すシーケンス図である。情報処理システム10は、FPGA32がN個のイジングスピンを含むイジングモデルの解を算出する場合、図6に示す流れで処理を実行する。
まず、S11において、CPU34は、メイン処理を実行する。続いて、S12において、CPU34は、前処理を実行する。具体的には、CPU34は、前処理よりにおいて、FPGA32に構成されたイジングマシン12に対応させて、定義情報(J、h)、制御パラメータ、および、N個の補助変数(p~p)のそれぞれの初期値を生成する。さらに、CPU34は、N個の主変数(x~x)のそれぞれの初期値を生成してもよい。
続いて、S13において、CPU34は、バス44を介して、定義情報(J、h)、制御パラメータ、および、N個の補助変数(p~p)のそれぞれの初期値を、バス44を介してFPGA32に送信する。さらに、CPU34は、N個の主変数(x~x)のそれぞれの初期値を、バス44を介してFPGA32に送信してもよい。
続いて、S14において、FPGA32は、探索処理を実行する。具体的には、FPGA32は、N個のイジングスピンのそれぞれについて、主変数(x)によって補助変数(p)を更新する補助変数更新処理、および、補助変数(p)によって主変数(x)を更新する主変数更新処理を、交互に複数回繰り返して実行する。具体的には、FPGA32は、図4に示した処理を実行する。
なお、探索処理の開始時に、FPGA32は、N個の補助変数(p)のそれぞれに、CPU34から受信した初期値を設定する。さらに、探索処理の開始時において、FPGA32は、N個の主変数(x)のそれぞれに、初期値として、例えば、0等の予め定められた値を設定する。また、FPGA32は、N個の主変数(x)のそれぞれに、初期値として、内部において乱数等に応じた値を生成して、生成した値を設定してもよい。なお、FPGA32は、CPU34からN個の主変数(x)のそれぞれの初期値を受信した場合には、N個の主変数(x)のそれぞれに、CPU34から受信した初期値を設定する。
続いて、S14において、FPGA32は、探索結果をCPU34へと送信する。具体的には、FPGA32は、N個の主変数(x~x)のそれぞれを2値化したN個のイジングスピン(s~s)、または、N個の主変数(x~x)をCPU34へとバス44を介して送信する。続いて、S15において、CPU34は、探索結果をFPGA32からバス44を介して受信する。
以上のように、本実施形態に係る情報処理システム10は、ホスト部14(CPU34および主記憶装置36)からインタフェース(バス44)を介してイジングマシン12(FPGA32)へと、イジングモデルを定義する定義情報(J、h)および制御パラメータに加えて、複数の補助変数(p)のそれぞれの初期値を送信する。イジングマシン12(FPGA32)は、主変数(x)の値が固定値であっても、補助変数(p)の初期値が異なる場合、異なる近似解を出力することができる。つまり、ホスト部14(CPU34)は、イジングマシン12(FPGA32)へと主変数(x)の初期値を送信しなくても、補助変数(p)の初期値を変更すれば、イジングマシン12(FPGA32)に適切な探索処理を実行させることができる。従って、本実施形態に係る情報処理システム10は、主変数(x)の生成および送信処理をしなくてもよく、処理時間および通信時間を短縮することができる。このように、本実施形態に係る情報処理システム10によれば、組合せ最適化問題の解を高速に算出することができる。
(第2実施形態)
つぎに、第2実施形態に係る情報処理システム10について説明する。第2実施形態に係る情報処理システム10は、第1実施形態とほぼ同一の構成である。従って、第2実施形態に係る情報処理システム10の説明において、第1実施形態とほぼ同一の構成要素については、同一の符号を付けて、詳細な説明を省略する。
第2実施形態に係る情報処理システム10は、複数の組合せ最適化問題を1つずつ順次に解く。
図7は、第2実施形態に係る情報処理システム10のハードウェア構成を示す図である。第2実施形態に係るCPU34は、第1フラグ記憶回路51を含む。第1フラグ記憶回路51は、FPGA32による探索処理が終了したか否かを示す第1フラグを記憶する。第1フラグ記憶回路51は、例えばCPU34内に設けられたフラグレジスタである。第1フラグ記憶回路51は、CPU34の外部(例えば、主記憶装置36)に設けられていてもよい。
第1フラグ記憶回路51は、CPU34により第1フラグを書き込みおよび読み出し可能である。これとともに、第1フラグ記憶回路51には、FPGA32の動作状況に応じて第1フラグがセットされる。例えば、第1フラグは、0である場合、FPGA32による探索処理が終了していないことを示し、1である場合、FPGA32による探索処理が終了したことを示す。
また、第2実施形態においては、CPU34は、FPGA32に代わって、探索処理を実行することも可能である。この場合、CPU34は、予め定められた探索プログラムを実行することにより、探索処理を実行する。
図8は、第2実施形態の第1例に係るCPU34の処理の流れを示すフローチャートである。第1例においては、情報処理システム10は、CPU34が、FPGA32に代わって探索処理を実行する。第1例において、CPU34は、図8に示す流れで処理を実行する。
第1例において、CPU34は、S21とS24との間のループ処理をL回実行する。Lは、解くべき組合せ最適化問題の数を表し、予め定められた2以上の整数である。CPU34は、各ループ処理において、メイン処理(S22)および探索処理(S23)を実行する。なお、メイン処理(S22)は、図6に示したS11の処理と同一である。また、探索処理(S23)は、図6に示したS14の処理と同一である。そして、CPU34は、ループ処理をL回実行した場合、本フローを終了する(S24)。
図9は、第2実施形態の第1例に係る情報処理システム10により実行される処理のタイミングチャートである。mは、解くべき組合せ最適化問題のインデックスを表し、1からLまでの整数である。情報処理システム10は、mを1ずつインクリメントさせながら、m=1の組合せ最適化問題から、m=Lの組合せ最適化問題までを順次に解く。
図9に示すように、第1例において、CPU34は、メイン処理と探索処理とを交互に繰り返して実行する。これにより、第2実施形態の第1例に係る情報処理システム10は、複数の組合せ最適化問題を順次に解くことができる。
図10は、第2実施形態の第2例に係るCPU34の処理の流れを示すフローチャートである。第2例において、情報処理システム10は、FPGA32が探索処理を実行し、CPU34が探索処理以外の処理を実行する。第2例において、CPU34は、図10に示す流れで処理を実行する。
第2例において、CPU34は、S31とS41との間のループ処理をL回実行する。CPU34は、各ループ処理において、S32からS40までの処理を実行する。
S32において、CPU34は、メイン処理を実行する。メイン処理(S32)は、図6に示したS11の処理と同一である。続いて、S33において、CPU34は、前処理を実行する。S33の前処理については、図11を参照して後述する。
続いて、S34において、CPU34は、FPGA32の再構成を実施するか否かを判断する。例えば、CPU34は、現在、FPGA32に構成されている回路が、これから解くべき組合せ最適化問題を表すイジングモデルに対応しているか否かを判断する。そして、CPU34は、対応している場合には、再構成を実施せず、対応していない場合には再構成を実施する、と判断する。再構成を実施しない場合(S34のNo)、CPU34は、処理をS36に進める。再構成を実施する場合(S34のYes)、CPU34は、処理をS35に進める。S35において、CPU34は、これから解くべき組合せ最適化問題を表すイジングモデルに対応する回路情報をFPGA32に与えて、FPGA32を再構成させる。
続いて、S36において、CPU34は、前処理(S33)において生成したパラメータをFPGA32に送信する。具体的には、CPU34は、定義情報(J、h)、制御パラメータ、および、N個の補助変数(p~p)のそれぞれの初期値をバス44を介してFPGA32に送信する。さらに、CPU34は、N個の主変数(x~x)それぞれの初期値をバス44を介してFPGA32に送信してもよい。
続いて、S37において、CPU34は、FPGA32に対して、探索処理の開始を指示する。なお、FPGA32は、探索処理を開始に先立って、第1フラグ(bs_flag)を、探索処理が終了していないことを示す値である0とする。また、FPGA32は、探索処理が終了した場合、第1フラグ(bs_flag)を、探索処理が終了したことを示す値である1とする。
続いて、S38において、CPU34は、FPGA32による探索処理が終了したか否かを確認する。具体的には、CPU34は、第1フラグ(bs_flag)を取得する。
続いて、S39において、CPU34は、探索処理が終了したか否かを判断する。探索処理が終了した場合、すなわち、bs_flag==1である場合(S39のYes)、処理をS40に進める。探索処理が終了していない場合、すなわち、bs_flag==1でない場合(S39のNo)、処理をS38に戻して、S38およびS39の処理を繰り返す。すなわち、CPU34は、探索処理の開始を指示してから、探索処理が終了するまで、探索処理が終了したことを確認するために、第1フラグ(bs_flag)を繰り返し確認する処理であるポーリングをする。
S40において、CPU34は、探索結果をFPGA32から受信する。そして、CPU34は、ループ処理をL回実行した場合、本フローを終了する(S41)。
図11は、前処理(S33)の流れを示すフローチャートである。CPU34は、前処理(S32)において、S51からS54までの処理を実行する。
S51において、CPU34は、N個の補助変数(p~p)のそれぞれの初期値を生成する。なお、CPU34は、N個の主変数(x)のそれぞれの初期値をさらに生成してもよい。
続いて、S52において、CPU34は、J行列を生成する。続いて、S53において、CPU34は、hベクトルを生成する。続いて、S54において、CPU34は、係数(c、D、K)、関数(α(t)、p(t))、単位時間(Δt)、および、繰り返し回数等を含む制御パラメータを生成する。CPU34は、S54の処理を終えると、処理を図10のフローに戻す。
図12は、第2実施形態の第2例に係る情報処理システム10により実行される処理のタイミングチャートである。図12に示すように、第2実施形態の第2例においては、CPU34が、メイン処理、前処理およびパラメータ送信処理を行った後、FPGA32は、探索処理を行う。CPU34は、FPGA32が探索処理を行っている最中において、探索処理が終了したか否かをポーリングにより確認し、探索処理が終了した後、結果受信処理をする。そして、CPU34は、結果受信処理の後に、次の問題のメイン処理を開始する。このように、第2実施形態の第2例に係る情報処理システム10は、CPU34と、FPGA32とが排他的なタイミングで処理を実行する。これにより、第2実施形態の第2例に係る情報処理システム10は、複数の組合せ最適化問題を順次に解くことができる。
ここで、FPGA32は、N個の主変数(x~x)およびN個の補助変数(p~p)を並列に演算する回路を構成することができる。従って、FPGA32は、大規模な並列演算を実施することができる。これに対して、一般に、CPU34は、コアの数およびスレッドの数に制限があるので、大規模な並列演算処理を実施することができない。従って、第2例に係る情報処理システム10は、第1例に係る情報処理システム10と比較して、前処理、パラメータ送信処理および結果受信処理が追加されてはいるが、探索処理を大幅に短くすることができる。従って、第2例に係る情報処理システム10は、全体としてスループットを大きくすることができる。
(第3実施形態)
つぎに、第3実施形態に係る情報処理システム10について説明する。第3実施形態に係る情報処理システム10は、第2実施形態とほぼ同一の構成である。従って、第3実施形態に係る情報処理システム10の説明において、第2実施形態とほぼ同一の構成要素については、同一の符号を付けて、詳細な説明を省略する。
第3実施形態に係る情報処理システム10は、複数の組合せ最適化問題を1つずつ順次に解くとともに、CPU34によるメイン処理とFPGA32による探索処理とを並行して実行する。
図13は、第3実施形態に係る情報処理システム10の機能構成を示す図である。第3実施形態に係るCPU34は、図7に示す第2実施形態の構成と比較して、第2フラグ記憶回路52を、さらに含む。第2フラグ記憶回路52は、CPU34が探索結果をFPGA32から受信したか否かを示す第2フラグを記憶する。第2フラグ記憶回路52は、例えばCPU34内に設けられたフラグレジスタである。第2フラグ記憶回路52は、CPU34の外部(例えば、主記憶装置36)に設けられていてもよい。
第2フラグ記憶回路52は、CPU34が書き込みおよび読み出し可能である。例えば、第2フラグは、0である場合、CPU34が探索結果を受信していないことを示し、1である場合、CPU34が探索結果を受信したことを示す。
図14は、第3実施形態に係るCPU34の処理の流れを示すフローチャートである。第3実施形態に係るCPU34は、図14に示す流れで処理を実行する。
まず、S61において、CPU34は、第1フラグ(bs_flag)を、探索処理が終了していないことを示す値である0に設定する。さらに、CPU34は、第2フラグ(rcv_flag)を、探索結果を受信したことを示す値である1に設定する。
続いて、CPU34は、S62とS75との間のループ処理をL回実行する。CPU34は、各ループ処理において、S63からS74までの処理を実行する。
S63において、CPU34は、タイマの割り込みを許可する。タイマは、所定時間毎にタイマフラグを発生する。タイマの割り込みを許可した場合、CPU34は、タイマフラグが発生する毎に、後述の図15に示す処理を実行する。
続いて、S64において、CPU34は、メイン処理を実行する。メイン処理(S64)は、図10に示したS32の処理と同一である。
続いて、S65において、CPU34は、前処理を実行する。前処理(S65)は、図10に示したS33の処理と同一である。
続いて、S66において、CPU34は、S63において許可したタイマの割り込みを禁止する。以降、次にタイマの割り込みが許可されるまで、タイマフラグが発生しても、CPU34は、図15に示す処理を実行しない。
続いて、S67において、CPU34は、第2フラグ(rcv_flag)が探索結果を受信していないことを示しているか否かを判断する。第2フラグ(rcv_flag)が探索結果を受信したことを示している場合、すなわち、rcv_flag==0ではない場合(S67のNo)、CPU34は、処理をS71に進める。第2フラグ(rcv_flag)が探索結果を受信していないことを示している場合、すなわち、rcv_flag==0である場合(S67のYes)、CPU34は、処理をS68に進める。
続いて、S68において、CPU34は、FPGA32による探索処理を終了したか否かを確認する。具体的には、CPU34は、第1フラグ(bs_flag)を取得する。
続いて、S69において、CPU34は、探索処理が終了したか否かを判断する。探索処理が終了した場合、すなわち、bs_flag==1である場合(S69のYes)、処理をS70に進める。探索処理が終了していない場合、すなわち、bs_flag==1ではない場合(S69のNo)、処理をS68に戻して、S68およびS69の処理を繰り返す。すなわち、CPU34は、探索処理の開始を指示してから、探索処理が終了するまで、探索処理が終了したことを確認するためのポーリングをする。
S70において、CPU34は、探索結果をFPGA32から受信する。さらに、CPU34は、探索結果の受信が完了した場合、第2フラグ(rcv_flag)を探索結果を受信したことを示す値である1に設定する。
続いて、S71において、CPU34は、FPGA32の再構成を実施するか否かを判断する。再構成を実施しない場合(S71のNo)、CPU34は、処理をS73に進める。再構成を実施する場合(S71のYes)、CPU34は、処理をS72に進める。S72において、CPU34は、これから解くべき組合せ最適化問題を表すイジングモデルに対応する回路情報をFPGA32に与えて、FPGA32を再構成させる。
続いて、S73において、CPU34は、前処理(S65)において生成したパラメータをFPGA32に送信する。パラメータ送信処理(S73)は、図10に示したS36の処理と同一である。
続いて、S74において、CPU34は、FPGA32に対して探索処理の開始を指示する。さらに、CPU34は、第2フラグ(rcv_flag)を、探索結果を受信していないことを示す値である0に設定する。そして、CPU34は、ループ処理をL回実行した場合、本フローを終了する(S75)。
図15は、第3実施形態に係るCPU34において、タイマ割り込みが発生した場合の処理の流れを示すフローチャートである。第3実施形態に係るCPU34は、タイマ割り込みを許可している状態において、タイマ割り込みが発生した場合、図15に示す流れで処理を実行する。
まず、S81において、CPU34は、第2フラグ(rcv_flag)が探索結果を受信していないことを示しているか、否かを判断する。第2フラグ(rcv_flag)が探索結果を受信したことを示している場合、すなわち、rcv_flag==0ではない場合(S81のNo)、CPU34は、タイマ割り込みのフローを終了する。第2フラグ(rcv_flag)が探索結果を受信していないことを示している場合、すなわち、rcv_flag==0である場合(S81のYes)、CPU34は、処理をS82に進める。
S82において、CPU34は、FPGA32による探索処理を終了したか否かを確認する。具体的には、CPU34は、第1フラグ(bs_flag)を取得する。
続いて、S83において、CPU34は、探索処理が終了したか否かを判断する。探索処理が終了した場合、すなわち、bs_flag==1である場合(S83のYes)、処理をS84に進める。探索処理が終了していない場合、すなわち、bs_flag==1ではない場合(S83のNo)、CPU34は、タイマ割り込みのフローを終了する。
S84において、CPU34は、探索結果をFPGA32から受信する。さらに、CPU34は、探索結果の受信が完了した場合、第2フラグ(rcv_flag)を、探索結果を受信したことを示す値である1に設定する。そして、CPU34は、S84の処理が終了すると、タイマ割り込みのフローを終了する。
図16は、第3実施形態に係る情報処理システム10により実行される処理のタイミングチャートである。第3実施形態に係る情報処理システム10は、FPGA32による探索処理中において、CPU34が、次に解くべき組合せ最適化問題におけるメイン処理を実行する。例えば、情報処理システム10は、第1イジングモデルの基底状態を探索する第1探索処理(m=1)を実行した後に、第2イジングモデルの基底状態を探索する第2探索処理(m=2)を実行する場合、CPU34およびFPGA32は、次のように処理を行う。
まず、CPU34は、第1探索処理(m=1)の実行に用いる情報を生成する第1メイン処理を実行し、続いて、第1探索処理(m=1)のための前処理およびパラメータ送信処理を実行する。続いて、FPGA32は、CPU34により第1メイン処理が実行された後に、第1探索処理(m=1)を実行する。
続いて、CPU34は、FPGA32が第1探索処理(m=1)を実行している期間において、第2探索処理(m=2)の実行に用いる情報を生成する第2メイン処理を実行する。CPU34は、第2メイン処理を実行中に、FPGA32による第1探索処理(m=1)が終了した場合、第2メイン処理を一時的に中断して、第1探索処理(m=1)の探索結果を受信する結果受信処理を実行する。そして、FPGA32は、CPU34により第2メイン処理が実行された後に、第2探索処理(m=2)を実行する。
このように、第3実施形態に係る情報処理システム10は、CPU34と、FPGA32とを並行に動作させる。これにより、第3実施形態に係る情報処理システム10は、全体の処理時間を短縮して、全体としてスループットを大きくすることができる。
(第4実施形態)
つぎに、第4実施形態に係る情報処理システム10について説明する。第4実施形態に係る情報処理システム10の構成は、図13に示した第3実施形態に係る情報処理システム10の構成と同一である。また、第4実施形態に係る情報処理システム10の処理は、第3実施形態に係る情報処理システム10と比較して、タイマ割り込みが発生した場合の処理が異なり、他の処理は同一である。従って、第4実施形態に係る情報処理システム10の説明において、第3実施形態とほぼ同一の構成要素については、同一の符号を付けて、詳細な説明を省略する。
第4実施形態に係る情報処理システム10は、複数の組合せ最適化問題を1つずつ順次に解くとともに、CPU34によるメイン処理とFPGA32による探索処理とを並行して実行する。さらに、第4実施形態に係る情報処理システム10は、CPU34のメイン処理中において、可能であれば探索処理を複数回実行する。
図17は、第4実施形態に係るCPU34において、タイマ割り込みが発生した場合の処理の流れを示すフローチャートである。第4実施形態に係るCPU34は、タイマ割り込みを許可している状態において、タイマ割り込みが発生した場合、図17に示す流れで処理を実行する。
まず、S91において、CPU34は、第2フラグ(rcv_flag)が探索結果を受信していないことを示しているか、否かを判断する。第2フラグ(rcv_flag)が探索結果を受信したことを示している場合、すなわち、rcv_flag==0ではない場合(S91のNo)、CPU34は、タイマ割り込みのフローを終了する。第2フラグ(rcv_flag)が探索結果を受信していないことを示している場合、すなわち、rcv_flag==0である場合(S91のYes)、CPU34は、処理をS92に進める。
S92において、CPU34は、FPGA32による探索処理を終了したか否かを確認する。具体的には、CPU34は、第1フラグ(bs_flag)を取得する。
続いて、S93において、CPU34は、探索処理が終了したか否かを判断する。探索処理が終了した場合、すなわち、bs_flag==1である場合(S93のYes)、処理をS94に進める。探索処理が終了していない場合、すなわち、bs_flag==1ではない場合(S93のNo)、CPU34は、タイマ割り込みのフローを終了する。
S94において、CPU34は、探索結果をFPGA32から受信する。さらに、CPU34は、探索結果の受信が完了した場合、第2フラグ(rcv_flag)を、探索結果を受信したことを示す値である1に設定する。
続いて、S95において、CPU34は、N個の補助変数(p~p)のそれぞれの初期値を生成する。なお、CPU34は、N個の主変数(x~x)のそれぞれの初期値をさらに生成してもよい。
ここで、本実施形態において、FPGA32は、CPU34による1回のメイン処理中において、複数回の探索処理を実行可能である。S95において、CPU34は、1回のメイン処理中に実行される複数回の探索処理のうちの2回目以降(ini=2以降)の探索処理を実行するための初期値を生成する。S95において、CPU34は、メイン処理中に実行される複数回の探索処理のそれぞれ毎に、異なる値の組み合わせとなるように、N個の補助変数(p~p)のそれぞれの初期値、および、N個の主変数(x~x)のそれぞれの初期値を生成する。
続いて、S96において、CPU34は、生成したN個の補助変数(p~p)のそれぞれの初期値をFPGA32に送信する。さらに、CPU34は、主変数(x~x)の初期値を生成した場合、生成したN個の主変数(x~x)のそれぞれの初期値をFPGA32に送信する。
続いて、S97において、CPU34は、FPGA32に対して探索処理の開始を指示する。さらに、CPU34は、第2フラグ(rcv_flag)を、探索結果を受信していないことを示す値である0に設定する。
FPGA32は、CPU34から探索処理の開始の指示を受けた場合、定義情報(J、h)および制御パラメータを変更せずに、N個の補助変数(p~p)のそれぞれの初期値およびN個の主変数(x~x)のそれぞれの初期値のみを変更して、探索処理を開始する。そして、CPU34は、S97の処理を終えると、タイマ割り込みのフローを終了する。
図18は、第4実施形態に係る情報処理システム10により実行される処理のタイミングチャートである。
第4実施形態に係る情報処理システム10は、FPGA32による探索処理中において、CPU34が、次に解くべき組合せ最適化問題におけるメイン処理を実行する。さらに、FPGA32は、CPU34がメイン処理を終了するまで、N個の補助変数(p~p)のそれぞれの初期値を変更しながら探索処理を複数回実行する。
例えば、情報処理システム10は、第1イジングモデルの基底状態を探索する第1探索処理(m=1)を実行した後に、第2イジングモデルの基底状態を探索する第2探索処理(m=2)を実行する場合、CPU34およびFPGA32は、次のように処理を行う。
まず、CPU34は、第1メイン処理を実行し、続いて、第1探索処理(m=1)のための前処理およびパラメータ送信処理を実行する。続いて、FPGA32は、第1探索処理(m=1)を実行する。続いて、CPU34は、FPGA32が第1探索処理(m=1)を実行している期間において、第2メイン処理を実行する。
ここで、CPU34は、第2メイン処理を実行中に、FPGA32による第1探索処理(m=1)が終了した場合、第2メイン処理を一時的に中断して、第1探索処理(m=1)の探索結果を受信する結果受信処理を実行する。さらに、CPU34は、N個の補助変数(p~p)のそれぞれの新たな初期値を送信し、新たな初期値によりFPGA32に第1探索処理を再度実行させる。そして、CPU34は、第2メイン処理の実行が終了するまで、FPGA32に第1探索処理を繰り返させる。
そして、CPU34は、第2メイン処理の実行中において、補助変数の初期値が異なる第1探索処理の探索結果を複数個受信した場合、受信した複数個の探索結果に基づき、第1探索処理の探索結果を生成する。
このように、第4実施形態に係る情報処理システム10は、CPU34と、FPGA32とを並行に動作させることにより、全体の処理時間を短縮して、全体としてスループットを大きくすることができる。さらに、第4実施形態に係る情報処理システム10は、1つの組合せ最適化問題に対して複数の探索結果を取得し、複数の探索結果に基づき解を出力することができる。これにより、第4実施形態に係る情報処理システム10は、より精度の良い解を出力することができる。
(第1変形例)
つぎに、第1変形例について説明する。第1変形例は、第2実施形態から第4実施形態の全てに対して適用可能である。
第1変形例に係る情報処理システム10は、複数の組合せ最適化問題を1つずつ順次に解く。情報処理システム10は、それぞれの組合せ最適化問題を解く前に、現在FPGA32に構成されている回路が適切であるか否かを判断し、適切でない場合には、FPGA32を再構成し、適切である場合、FPGA32を再構成せずに処理を進める。
例えば、CPU34は、複数の回路情報の中から、解く対象となる組合せ最適化問題または目的(収束速度重視および精度重視等)に応じて適切なアルゴリズムを実行する回路を表す回路情報を選択し、選択した回路情報によりFPGA32を再構成させる。また、例えば、CPU34は、再構成時間を含めた全体の処理時間が短くなるように、再構成をするか否かを判断する。
図19は、FPGA32を再構成しない場合の処理時間とFPGA32を再構成した場合の処理時間とを示す図である。例えば、情報処理システム10が、J行列のサイズが動的に変化する組合せ最適化問題を解くアプリケーションを実行する場合について考える。
アプリケーションは、1回目の処理(m=1)で大規模問題(N=Nlarge)を解き、続いて、2回目の処理(m=2)で小規模問題(N=Nsmall)を解くとする。なお、Nlarge>Nsmallである。2回目の処理(m=2)で、再構成を実行しない場合、FPGA32は、N=Nlargeを解くための回路により基底状態の探索処理を実施する。従って、2回目の処理(m=2)で、再構成を実行しない場合、処理時間は、Nlarge個の主変数およびNlarge個の補助変数を更新するための変数更新時間と、更新処理の繰り返し回数によって決定される。
2回目の処理(m=2)は、N=Nsmallを解くための回路により規定状態の探索処理を実行可能である。N=Nsmallを解くための回路による変数更新時間は、N=Nlargeを解くための回路による変数更新時間より短い。ただし、FPGA32は、2回目の処理(m=2)においてN=Nsmallを解くための回路を実装する場合、再構成処理を実行しなければならない。つまり、再構成した後の回路での処理時間と再構成時間との合計時間が、直前の回路を再構成せずに実行した場合の処理時間より短い場合、FPGA32は、2回目の処理(m=2)の全体の処理時間を短くすることができる。
そこで、FPGA32に、第1イジングモデルの基底状態を探索可能な第1回路が構成されている状態において、第1回路により探索可能な第2イジングモデルの基底状態を探索する探索処理を実行する場合、CPU34は、次のような処理を実行する。
まず、第1回路により実行される探索処理の予想実行時間を表す第1時間と、FPGA32を第2回路に再構成する再構成時間および第2回路により実行される探索処理の予想実行時間とを含む第2時間と、を比較する。ここで、第2回路は、第2イジングモデルの基底状態を探索可能であり、探索時間が第1回路より少ない回路である。
そして、第2時間が第1時間以上である場合、CPU34は、第1回路が構成されているFPGA32を再構成せずに、FPGA32に、第2イジングモデルの基底状態を探索する探索処理を実行させる。第2時間が第1時間より短い場合、CPU34は、FPGA32を第2回路に再構成させて、FPGA32に、第2イジングモデルの基底状態を探索する探索処理を実行させる。このような処理を実行することにより、情報処理システム10は、全体の処理時間を短くすることができる。
なお、情報処理システム10は、第2イジングモデルの基底状態を探索した後に、さらに、第2回路により基底状態を探索可能な1または複数のイジングモデルの基底状態を連続して探索する場合がある。このような場合、CPU34は、第2イジングモデルに続く1または複数のイジングモデルのそれぞれの基底状態を第1回路により探索した場合の予測実行時間を、第1時間に加える。さらに、CPU34は、第2イジングモデルに続く1または複数のイジングモデルのそれぞれの基底状態を第2回路により探索した場合の予測実行時間を、第2時間に加える。これにより、情報処理システム10は、第2回路により複数のイジングモデルの基底状態を連続して探索する場合にも、全体の処理時間を短くすることができる。
(第2変形例)
つぎに、第2変形例について説明する。第2変形例は、第1実施形態から第4実施形態の全てに対して適用可能である。
図20は、結合係数を含む結合情報を表す図である。第2変形例において、情報処理システム10は、解く対象となる組合せ最適化問題を表すイジングモデルを定義する定義情報をユーザ等から取得する。定義情報は、イジングモデルを定義する複数の結合係数が記述された結合情報を含む。例えば、情報処理システム10は、予め定められたフォーマットで記述されたファイル化された結合情報を取得する。
結合情報に含まれる複数の結合係数のそれぞれは、i番目を指定するためのインデックスと、j番目を指定するためのインデックスとが対応付けられている。また、例えば、結合情報は、i、jのインデックスのラスタスキャン順に、複数の結合係数が並べて記述されている。従って、CPU34は、最終位置の結合係数のインデックス(i、j)から、J行列のサイズを検出することができる。例えば、図20の例であれば、CPU34は、N≧max(i,j)を検出することにより、N=4をイジングモデルのサイズとして検出する。なお、max()は、結合情報に含まれる複数の結合係数のうちの、iおよびjの最大値を検出する関数である。
CPU34は、組合せ最適化問題の探索処理に先だって、回路情報記憶装置38に記憶された複数の回路情報の中から適切な回路情報を選択して、選択した回路情報をFPGA32に与えて、FPGA32に回路を構成させる。この場合、CPU34は、係数情報から検出したイジングモデルのサイズに基づき、回路情報を選択する。例えば、CPU34は、係数情報から検出したサイズ以上であって且つ最もサイズが小さいイジングモデルを探索する回路を表す回路情報を選択する。
また、CPU34は、結合情報に基づき選択した回路情報により表される回路を、第1変形例における第2回路として選択してもよい。
また、回路情報記憶装置38は、結合係数の精度が異なる回路を表す複数の回路情報を含む場合、結合情報に記述された結合係数の精度に基づき、イジングモデルの基底状態を探索可能な回路を表す1つの回路情報を選択する回路情報を選択してもよい。
例えば、CPU34は、結合情報に記述された複数の結合係数の全てが、整数で表され、且つ、-32768~32767の範囲であれば、整数型16ビットの精度で演算する回路を表す回路情報を選択する。また、CPU34は、結合情報に記述された複数の結合係数の何れか1つに小数を表す結合係数を含む場合、浮動小数点型または固定小数点型の精度で演算する回路を表す回路情報を選択する。
また、CPU34は、選択した回路情報、検出したイジングモデルのサイズおよび結合係数の精度を表示装置42に表示させてもよい。これにより、CPU34は、これらの情報をユーザに通知することができる。
このように第2変形例に係る情報処理システム10は、結合係数を記述した結合情報からイジングモデルのサイズおよびJ行列に含まれる結合係数の精度を検出し、検出したサイズおよび精度に基づき、複数の回路情報の中から適切な回路情報を選択してFPGA32に構成させる。これにより、第2変形例に係る情報処理システム10は、ユーザが回路情報を指定する手間を省略し、間違った情報を指定するリスクも排除することができる。なお、ファイル化した結合情報のフォーマット、サイズの検出方法、および、結合係数の精度の検出方法は、上述の方法に限らず、どのような方法であってもよい。
(第3変形例)
つぎに、第3変形例について説明する。第3変形例は、第1実施形態から第4実施形態の全てに対して適用可能である。
第3変形例において、回路情報記憶装置38は、互いに異なるアルゴリズムにより探索処理を実行する回路を実現するための複数の回路情報を記憶する。第3変形例において、ユーザは、アルゴリズムを指定するための情報を除く、他の情報を入力する。例えば、ユーザは、定義情報(J行列、hベクトル)および制御パラメータを入力する。
第3例において、CPU34は、複数の回路情報から、主変数更新処理および補助変数更新処理において主変数(x)および補助変数(p)を算出するアルゴリズムが異なる2以上の回路情報を選択する。そして、CPU34は、選択した2以上の回路情報のそれぞれ毎に順次に、FPGA32を再構成させ、探索処理を実行させ、探索結果を受信する。この場合において、FPGA32は、2以上の回路情報のそれぞれについて、同一の定義情報、同一の制御パラメータ、同一の主変数(x)の初期値および同一の複数の補助変数(p)の初期値により、探索結果を取得する。そして、CPU34は、2以上の回路情報のそれぞれについて、アルゴリズムを識別する情報と探索結果との組を、表示装置42に表示することによりユーザに探索結果を出力する。
イジングマシン12は、アルゴリズムを変更することにより、収束速度および到達解精度といった性能指標が変化する場合がある。第3変形例に係る情報処理システム10は、複数のアルゴリズムにより探索処理を実行して、複数のアルゴリズムのそれぞれについて探索結果を出力することにより、ユーザに適切な探索結果が得られやすいアルゴリズムを通知することができる。
(第4変形例)
つぎに、第4変形例について説明する。第4変形例は、第1実施形態から第4実施形態の全てに対して適用可能である。
FPGA32(イジングマシン12)は、図4に示したように、補助変数(y)を更新する補助変数更新処理(S115)および主変数(x)を更新する主変数更新処理(S118)を交互に所定回繰り返す。第4変形例において、情報処理システム10は、図4における繰り返し処理毎のN個の主変数(x)の更新履歴およびN個の補助変数(y)の更新履歴を記憶する更新履歴記憶装置をさらに備える。例えば、FPGA32(イジングマシン12)は、更新処理中に、繰り返し回数と、N個の主変数(x)の値およびN個の補助変数(y)の値とを対応付けてメモリに記憶し、探索処理の完了後に更新履歴記憶装置に出力する。CPU34(ホスト部14)は、ユーザからの指示を受けた場合、更新履歴記憶装置に記憶された、N個の主変数(x)の値の更新履歴およびN個の補助変数(y)の値の更新履歴を受信し、受信した更新履歴を例えばグラフ等にして表示装置42に表示させる。
これにより、第4変形例に係る情報処理システム10は、N個の主変数(x)の値の更新履歴およびN個の補助変数(y)の値の更新履歴を、組合せ最適化問題の研究等をするためにユーザに参照させることができる。
以上、本発明の実施形態を説明したが、上述の実施形態は例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら新規な実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
10 情報処理システム
12 イジングマシン
14 ホスト部
32 FPGA
34 CPU
36 主記憶装置
38 回路情報記憶装置
40 入力装置
42 表示装置
44 バス
51 第1フラグ記憶回路
52 第2フラグ記憶回路

Claims (20)

  1. 情報処理装置であって、
    イジングマシンとインタフェースを介して接続され、前記イジングマシンを制御するホスト部
    を有し、
    前記イジングマシンは、再構成可能な半導体装置であり、組合せ最適化問題を表すイジングモデルの基底状態を探索する探索処理を実行し、
    前記探索処理に先だって、前記ホスト部は、前記半導体装置に前記探索処理を実現させる回路を表す複数の回路情報のうち、前記イジングモデルの基底状態を探索可能な回路を表す1つの回路情報を選択し、選択した前記回路情報により前記イジングマシンを再構成させる
    情報処理装置。
  2. 前記半導体装置に第1イジングモデルの基底状態を探索可能な第1回路が構成されている状態において、第2イジングモデルの基底状態を探索する前記探索処理を実行する場合、前記ホスト部は、前記第1回路により前記第2イジングモデルの基底状態を探索することが可能か否かを判断し、可能な場合、前記イジングマシンを再構成させずに前記探索処理を実行させ、可能ではない場合、前記イジングマシンを再構成させて前記探索処理を実行させる
    請求項1に記載の情報処理装置。
  3. 前記イジングマシンは、N個の主変数およびN個の補助変数を記憶し(Nは、2以上の整数)、前記N個の主変数のうちのi番目の主変数(iは、1以上、N以下の整数)は、前記イジングモデルに含まれるN個のイジングスピンのうちのi番目のイジングスピンに対応し、前記N個の補助変数のうちのi番目の補助変数は、前記i番目のイジングスピンに対応し、
    前記探索処理において、前記イジングマシンは、
    前記i番目のイジングスピンについて、前記i番目の主変数によって前記i番目の補助変数を更新する補助変数更新処理および前記i番目の補助変数によって前記i番目の主変数を更新する主変数更新処理を、交互に複数回繰り返して実行し、
    前記主変数更新処理および前記補助変数更新処理を複数回交互実行した後における前記N個の主変数に基づく値を、探索結果として出力し、
    前記探索処理に先だって、前記ホスト部は、前記N個の補助変数の初期値を、前記イジングマシンに送信し、
    前記探索処理の後に、前記ホスト部は、前記探索結果を前記イジングマシンから受信し、受信した前記探索結果に基づき前記組合せ最適化問題の解を出力する
    請求項1または2に記載の情報処理装置。
  4. 前記探索処理に先だって、前記イジングマシンは、前記N個の主変数の初期値を、予め定められた値に設定する
    請求項3に記載の情報処理装置。
  5. 前記探索処理に先だって、前記ホスト部は、前記N個の主変数の初期値を、前記イジングマシンに送信する
    請求項3に記載の情報処理装置。
  6. 前記イジングマシンは、N個の主変数およびN個の補助変数を記憶し(Nは、2以上の整数)、前記N個の主変数のうちのi番目の主変数(iは、1以上、N以下の整数)は、前記イジングモデルに含まれるN個のイジングスピンのうちのi番目のイジングスピンに対応し、前記N個の補助変数のうちのi番目の補助変数は、前記i番目のイジングスピンに対応し、
    前記探索処理において、前記イジングマシンは、
    前記i番目のイジングスピンについて、前記i番目の主変数によって前記i番目の補助変数を更新する補助変数更新処理および前記i番目の補助変数によって前記i番目の主変数を更新する主変数更新処理を、交互に複数回繰り返して実行し、
    前記主変数更新処理および前記補助変数更新処理を複数回交互実行した後における前記N個の主変数に基づく値を、探索結果として出力し、
    前記探索処理に先だって、前記ホスト部は、前記N個の主変数の初期値を、前記イジングマシンに送信し、
    前記探索処理の後に、前記ホスト部は、前記探索結果を前記イジングマシンから受信し、受信した前記探索結果に基づき前記組合せ最適化問題の解を出力する
    請求項1または2に記載の情報処理装置。
  7. 前記探索処理に先だって、前記イジングマシンは、前記N個の補助変数の初期値を、予め定められた値に設定する
    請求項6に記載の情報処理装置。
  8. 前記探索処理に先だって、前記ホスト部は、前記N個の補助変数の初期値を、前記イジングマシンに送信する
    請求項6に記載の情報処理装置。
  9. 前記探索処理に先だって、前記ホスト部は、
    前記イジングモデルを定義するための定義情報、および、前記探索処理を制御するための制御パラメータを、前記イジングマシンに送信する
    請求項3から8の何れか1項に記載の情報処理装置。
  10. 前記探索処理が終了したか否かを示す第1フラグを記憶する第1フラグ記憶回路をさらに備え、
    前記第1フラグ記憶回路は、前記イジングマシンからの前記探索処理が終了した場合に送信される通知に応じて前記第1フラグの値を更新し、
    前記ホスト部は、前記第1フラグの値に応じて、前記探索結果を前記イジングマシンから受信する
    請求項3から9の何れか1項に記載の情報処理装置。
  11. 第1イジングモデルの基底状態を探索する第1探索処理を実行した後に、第2イジングモデルの基底状態を探索する第2探索処理を実行する場合、
    前記ホスト部は、前記第1探索処理の実行に用いる情報を生成する第1メイン処理を実行し、
    前記イジングマシンは、前記ホスト部により前記第1メイン処理が実行された後に、前記第1探索処理を実行し、
    前記ホスト部は、前記イジングマシンが前記第1探索処理を実行している期間において、前記第2探索処理の実行に用いる情報を生成する第2メイン処理を実行し、
    前記イジングマシンは、前記ホスト部により前記第2メイン処理が実行された後に、前記第2探索処理を実行する
    請求項3から10の何れか1項に記載の情報処理装置。
  12. 前記ホスト部は、前記第2メイン処理の実行中において、前記第1探索処理が終了した場合、前記N個の補助変数の新たな初期値を送信し、前記N個の補助変数の新たな初期値により前記イジングマシンに前記第1探索処理を再度実行させ、
    前記ホスト部は、前記第2メイン処理の実行中において、前記N個の補助変数の初期値が異なる前記第1探索処理の前記探索結果を複数個受信した場合、受信した複数個の前記探索結果に基づき、前記第1探索処理の前記探索結果を生成する
    請求項11に記載の情報処理装置。
  13. 前記複数の回路情報を記憶する回路情報記憶装置をさらに備える
    請求項3から12の何れか1項に記載の情報処理装置。
  14. 前記半導体装置に、第1イジングモデルの基底状態を探索可能な第1回路が構成されている状態において、前記第1回路により探索可能な第2イジングモデルの基底状態を探索する前記探索処理を実行する場合、前記ホスト部は、
    前記第1回路により実行される前記探索処理の予想実行時間を表す第1時間と、前記半導体装置を第2回路に再構成する再構成時間および前記第2回路により実行される前記探索処理の予想実行時間とを含む第2時間と、を比較し、
    前記第2時間が前記第1時間より短い場合、前記半導体装置を前記第2回路に再構成させて、前記イジングマシンに前記探索処理を実行させ、
    前記第2回路は、前記第2イジングモデルの基底状態を探索可能であり、探索時間が前記第1回路より少ない回路である
    請求項3から13の何れか1項に記載の情報処理装置。
  15. 前記ホスト部は、
    前記イジングモデルを定義する複数の結合係数を含む係数情報を取得し、
    前記係数情報に含まれる前記複数の結合係数の数に基づき、前記複数の回路情報のうち、前記イジングモデルの基底状態を探索可能な回路を表す1つの回路情報を選択する
    請求項3から13の何れか1項に記載の情報処理装置。
  16. 前記ホスト部は、
    前記イジングモデルを定義する結合係数を含む係数情報を取得し、
    前記係数情報に含まれる前記結合係数の精度に基づき、前記複数の回路情報のうち、前記イジングモデルの基底状態を探索可能な回路を表す1つの回路情報を選択する
    請求項3から13の何れか1項に記載の情報処理装置。
  17. 前記イジングモデルの基底状態を探索する指示を受けた場合、前記ホスト部は、
    前記複数の回路情報から、前記主変数更新処理および前記補助変数更新処理において前記N個の主変数および前記N個の補助変数を算出するアルゴリズムが異なる2以上の回路情報を選択し、
    前記2以上の回路情報のそれぞれ毎に順次に、前記半導体装置を再構成させ、前記探索処理を実行させ、前記探索結果を受信し、
    前記2以上の回路情報から受信した前記探索結果を出力する
    請求項3から13の何れか1項に記載の情報処理装置。
  18. 前記イジングマシンは、前記主変数更新処理を実行する毎に、前記主変数更新処理の繰り返し回数に対応付けて前記N個の主変数の値を記憶し、
    前記探索処理の後に、前記ホスト部は、前記主変数更新処理の前記繰り返し回数に対応付けられた前記N個の主変数の値を受信する
    請求項3から17の何れか1項に記載の情報処理装置。
  19. 情報処理装置により実行される情報処理方法であって、
    前記情報処理装置は、イジングマシンとインタフェースを介して接続され、前記イジングマシンを制御し、
    前記イジングマシンは、再構成可能な半導体装置であり、組合せ最適化問題を表すイジングモデルの基底状態を探索する探索処理を実行し、
    前記探索処理に先だって、前記情報処理装置が、前記半導体装置に前記探索処理を実現させる回路を表す複数の回路情報のうち、前記イジングモデルの基底状態を探索可能な回路を表す1つの回路情報を選択し、選択した前記回路情報により前記イジングマシンを再構成させる
    情報処理方法。
  20. 情報処理装置を、ホスト装置として機能させるためのプログラムであって、
    前記情報処理装置を、
    イジングマシンとインタフェースを介して接続され、前記イジングマシンを制御するホスト部
    として機能させ、
    前記イジングマシンは、再構成可能な半導体装置であり、組合せ最適化問題を表すイジングモデルの基底状態を探索する探索処理を実行し、
    前記探索処理に先だって、前記ホスト部は、前記半導体装置に前記探索処理を実現させる回路を表す複数の回路情報のうち、前記イジングモデルの基底状態を探索可能な回路を表す1つの回路情報を選択し、選択した前記回路情報により前記イジングマシンを再構成させる
    プログラム。
JP2023126045A 2020-08-13 2023-08-02 情報処理装置、情報処理方法およびプログラム Pending JP2023139287A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2023126045A JP2023139287A (ja) 2020-08-13 2023-08-02 情報処理装置、情報処理方法およびプログラム

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2020136775A JP7326235B2 (ja) 2020-08-13 2020-08-13 情報処理システム
JP2023126045A JP2023139287A (ja) 2020-08-13 2023-08-02 情報処理装置、情報処理方法およびプログラム

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2020136775A Division JP7326235B2 (ja) 2020-08-13 2020-08-13 情報処理システム

Publications (1)

Publication Number Publication Date
JP2023139287A true JP2023139287A (ja) 2023-10-03

Family

ID=74666635

Family Applications (3)

Application Number Title Priority Date Filing Date
JP2020136775A Active JP7326235B2 (ja) 2020-08-13 2020-08-13 情報処理システム
JP2023126045A Pending JP2023139287A (ja) 2020-08-13 2023-08-02 情報処理装置、情報処理方法およびプログラム
JP2023126044A Pending JP2023139286A (ja) 2020-08-13 2023-08-02 回路情報、情報処理方法、プログラムおよび情報処理システム

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2020136775A Active JP7326235B2 (ja) 2020-08-13 2020-08-13 情報処理システム

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2023126044A Pending JP2023139286A (ja) 2020-08-13 2023-08-02 回路情報、情報処理方法、プログラムおよび情報処理システム

Country Status (4)

Country Link
US (2) US11816595B2 (ja)
EP (1) EP3955175A1 (ja)
JP (3) JP7326235B2 (ja)
CN (1) CN114077805A (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6901448B2 (ja) * 2018-09-14 2021-07-14 株式会社東芝 計算装置、計算プログラム、記録媒体及び計算方法
JP2024005745A (ja) 2022-06-30 2024-01-17 富士通株式会社 情報処理方法、情報処理プログラム、および情報処理装置

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6207584B2 (ja) 2015-12-25 2017-10-04 株式会社日立製作所 情報処理システム及び管理装置
WO2018170027A1 (en) * 2017-03-13 2018-09-20 Universities Space Research Association System and method to hardcode interger linear optimization problems on physical implementations of the ising model
JP6836529B2 (ja) 2018-02-23 2021-03-03 株式会社東芝 計算装置、計算プログラム、記録媒体及び計算方法
JP6820875B2 (ja) 2018-03-09 2021-01-27 株式会社東芝 計算装置
JP7093009B2 (ja) * 2018-08-30 2022-06-29 富士通株式会社 最適化装置、最適化装置の制御方法及び最適化装置の制御プログラム
JP6902006B2 (ja) 2018-09-14 2021-07-14 株式会社東芝 計算装置、計算プログラム、記録媒体及び計算方法
JP6895415B2 (ja) 2018-09-14 2021-06-30 株式会社東芝 計算装置、計算プログラム、記録媒体及び計算方法
JP6901448B2 (ja) 2018-09-14 2021-07-14 株式会社東芝 計算装置、計算プログラム、記録媒体及び計算方法
JP6964056B2 (ja) 2018-09-18 2021-11-10 株式会社東芝 計算装置
JP7246941B2 (ja) 2019-01-21 2023-03-28 株式会社東芝 データ処理装置、データ処理方法、データ処理プログラム

Also Published As

Publication number Publication date
JP7326235B2 (ja) 2023-08-15
JP2022032703A (ja) 2022-02-25
US20240037430A1 (en) 2024-02-01
JP2023139286A (ja) 2023-10-03
EP3955175A1 (en) 2022-02-16
US11816595B2 (en) 2023-11-14
CN114077805A (zh) 2022-02-22
US20220051120A1 (en) 2022-02-17

Similar Documents

Publication Publication Date Title
US11699004B2 (en) Method and system for quantum computing
US11720822B2 (en) Gradient-based auto-tuning for machine learning and deep learning models
JP2023139287A (ja) 情報処理装置、情報処理方法およびプログラム
Regis Evolutionary programming for high-dimensional constrained expensive black-box optimization using radial basis functions
Zhao et al. Towards efficient convolutional neural network for domain-specific applications on FPGA
WO2022068623A1 (zh) 一种模型训练方法及相关设备
US10496436B2 (en) Method and apparatus for automatically scheduling jobs in computer numerical control machines using machine learning approaches
EP3779616B1 (en) Optimization device and control method of optimization device
CN111914378B (zh) 一种单振幅量子计算模拟方法及装置
Gyoten et al. Area efficient annealing processor for ising model without random number generator
Zhang et al. Flow shop scheduling with reinforcement learning
CN113723613A (zh) 对量子电路进行模拟的方法及装置
CN110837567A (zh) 实现知识图谱嵌入的方法和系统
CN112905809B (zh) 知识图谱学习方法和系统
Chen et al. A deep-reinforcement-learning-based scheduler for fpga hls
CN113723612A (zh) 对单向量子计算机计算模型的量子系统进行操作的方法及装置
EP3764250A2 (en) Optimization apparatus, control method for optimization apparatus, and optimization program
US11670403B2 (en) Method and apparatus for generating chemical structure using neural network
Al-Zoubi et al. Design space exploration of the KNN imputation on FPGA
CN111506742A (zh) 多元关系知识库构建方法和系统
JP2024006150A (ja) 情報処理システム
CN116151383B (zh) 量子计算处理方法、装置及电子设备
González-Álvarez et al. Analysing the scalability of multiobjective evolutionary algorithms when solving the motif discovery problem
KR20240066869A (ko) 적대적 학습 기반 자동데이터 증강 방법 및 시스템
Minarik et al. Concurrent evolution of hardware and software for application-specific microprogrammed systems

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230802