JP2021144443A - 情報処理システム、情報処理方法およびプログラム - Google Patents

情報処理システム、情報処理方法およびプログラム Download PDF

Info

Publication number
JP2021144443A
JP2021144443A JP2020042328A JP2020042328A JP2021144443A JP 2021144443 A JP2021144443 A JP 2021144443A JP 2020042328 A JP2020042328 A JP 2020042328A JP 2020042328 A JP2020042328 A JP 2020042328A JP 2021144443 A JP2021144443 A JP 2021144443A
Authority
JP
Japan
Prior art keywords
solution
search
search units
unit
information processing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2020042328A
Other languages
English (en)
Inventor
昇 米岡
Noboru Yoneoka
昇 米岡
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2020042328A priority Critical patent/JP2021144443A/ja
Priority to US17/160,440 priority patent/US20210286328A1/en
Priority to EP21154730.2A priority patent/EP3879417A1/en
Priority to CN202110175873.6A priority patent/CN113391841A/zh
Publication of JP2021144443A publication Critical patent/JP2021144443A/ja
Pending legal-status Critical Current

Links

Images

Classifications

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

Landscapes

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

Abstract

【課題】求解性能を向上すること。【解決手段】情報処理システム10は、各々がエネルギー関数に含まれる複数の状態変数の値により表される解を探索する探索部11,12,13を有する。探索部11,12,13の各々は、探索部11,12,13により得られた複数の解の中から、複数の解に対応する複数のエネルギー関数の値のうちの最良の値に対応する第1の解を取得する。探索部11,12,13の各々は、第1の解に基づいて第1状態変数列を生成する。探索部11,12,13の各々は、第1状態変数列を始状態として解を探索する。【選択図】図1

Description

本発明は情報処理システム、情報処理方法およびプログラムに関する。
ノイマン型コンピュータが不得意とする多変数の組合せ最適化問題を、磁性体のスピンの振る舞いを表すモデルであるイジングモデルに置き換えて計算する情報処理装置がある。イジングモデルに置き換えられた問題を実用的な時間で解く手法には、シミュレーテッドアニーリング(SA:Simulated Annealing)などの種々の探索アルゴリズムがある。
例えば、拡張アンサンブル法を用いて組合せ最適化問題の解を探索する情報処理装置の提案がある。また、複数の空間展開型計算機で独立して基底状態探索を繰り返し行い、結果を順次時間展開型計算機に蓄積して、最終的に最良の解を選択する情報処理システムの提案もある。
特開2019−71119号公報 国際公開第2017/033263号
上記のように、単に、複数の計算機により独立して基底状態探索を行い、得られた解の中から最良の解を選択する方法では、最適解を得られる可能性が低かったり、最適解を得るまでに時間がかかったりして、十分な求解性能を得られないことがある。
1つの側面では、本発明は、求解性能を向上できる情報処理システム、情報処理方法およびプログラムを提供することを目的とする。
1つの態様では、情報処理システムが提供される。この情報処理システムは、複数の探索部を有する。複数の探索部は、各々がエネルギー関数に含まれる複数の状態変数の値により表される解を探索する。複数の探索部の各々は、複数の探索部により得られた複数の解の中から、複数の解に対応する複数のエネルギー関数の値のうちの最良の値に対応する第1の解を取得し、第1の解に基づいて第1状態変数列を生成し、第1状態変数列を始状態として解を探索する。
また、1つの態様では、情報処理方法が提供される。
また、1つの態様では、プログラムが提供される。
1つの側面では、求解性能を向上できる。
第1の実施の形態の情報処理システムの例を示す図である。 第2の実施の形態の情報処理システムの例を示す図である。 ノードのハードウェア例を示す図である。 ノードの機能例を示す図である。 解プールの例を示す図である。 新たな解の生成方法の例を示す図である。 探索部の処理例を示すフローチャートである。 解伝播部の解バッファの更新例を示すフローチャートである。 解伝播部の解出力例を示すフローチャートである。 第3の実施の形態の情報処理システムの例を示す図である。 ノードの機能例を示す図である。 通信部の処理例を示すフローチャートである。 複数の探索手法を用いる情報処理システムの例を示す図である。 探索手法ごとの状態遷移の特性の例を示す図である。
以下、本実施の形態について図面を参照して説明する。
[第1の実施の形態]
第1の実施の形態を説明する。
図1は、第1の実施の形態の情報処理システムの例を示す図である。
情報処理システム10は、組合せ最適化問題の解を求め、求めた解を出力する。情報処理システム10は、探索部11,12,13を有する。探索部11,12,13の各々は、例えば、CPU(Central Processing Unit)、GPU(Graphics Processing Unit)、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)などの半導体集積回路により実現される。また、探索部11,12,13の各々は、RAM(Random Access Memory)やレジスタなどの記憶部を含み得る。例えば、FPGAなどの半導体集積回路を用いて実現される複数の探索回路が、探索部11,12,13としてそれぞれ機能してもよい。情報処理システム10に含まれる探索部の数は、2つでもよいし、4つ以上でもよい。
探索部11,12,13の各々は、例えば図示を省略している共有の記憶装置を介して、探索部11,12,13の各々が保持する少なくとも一部の情報を他の探索部と共有可能である。あるいは、探索部11,12,13の各々は、他の探索部と通信する通信機能を備えて、他の探索部と情報を送受信してもよい。
探索部11,12,13は、各々がエネルギー関数に含まれる複数の状態変数の値により表される解を探索する。状態変数は、「0」または「1」の値を取るバイナリ変数である。探索部11,12,13の各々は、組合せ最適化問題を定式化したイジング型のエネルギー関数に基づいて、エネルギー関数に含まれる複数の状態変数の値により表される最適解の探索を行う。エネルギー関数は、評価関数や目的関数とも呼ばれる。エネルギー関数の値は、複数の変数の値により表されるイジングモデルの状態に対応するエネルギー値を表す。エネルギー値は、評価値と呼ばれてもよい。例えば、組合せ最適化問題は、エネルギー値を最小化する解を求める問題として定式化される。この場合、エネルギー値を最小化する解は、イジングモデルの基底状態を表し、組合せ最適化問題の最適解に相当する。イジング型のエネルギー関数E(x)は、例えば、式(1)で表される。
Figure 2021144443
状態ベクトルxは、複数の状態変数を要素とし、イジングモデルの状態を表す。エネルギー値を最大化する問題の場合には、エネルギー関数の符号を逆にすればよい。
式(1)の右辺第1項は、全状態変数から選択可能な2つの状態変数の全組合せについて、漏れと重複なく、2つの状態変数の値と重み係数との積を積算したものである。xは、i番目の状態変数である。xは、j番目の状態変数である。Wijは、i番目の状態変数とj番目の状態変数との間の重み、または、結合の強さを示す重み係数である。
式(1)の右辺第2項は、全状態変数の各々のバイアス係数と状態変数の値との積の総和を求めたものである。bは、i番目の状態変数に対するバイアス係数を示している。
例えば、イジングモデルにおけるスピンの「−1」は、状態変数の値「0」に対応する。イジングモデルにおけるスピンの「+1」は、状態変数の値「1」に対応する。このため、状態変数を0または1の値をとるビットと呼ぶこともできる。
探索部11,12,13には同一の問題を示す問題データが入力される。探索部11,12,13には、探索部11,12,13の各々における最初の探索開始時点の初期状態として、例えば互いに異なる状態ベクトルが外部から与えられる。
探索部11,12,13の各々は、所定の探索手法により、同じ組合せ最適化問題の最適解を探索する。探索手法としては、SA、遺伝的アルゴリズム(GA:Genetic Algorithm)、シミュレーテッド量子アニーリング(SQA:Simulated Quantum Annealing)、タブー探索(Tabu Search)などがある。探索部11,12,13の各々が用いる探索手法は、同じでもよいし、異なっていてもよい。また、探索手法は例示したものに限らず、他の探索手法でもよい。
探索部11,12,13の各々は、探索部11,12,13により得られた複数の解の中から、複数の解に対応する複数のエネルギー関数の値、すなわち、複数のエネルギー値のうちの最良のエネルギー値に対応する第1の解を取得する。例えば、探索部11,12,13の各々は、自身が探索により得た解のうちのエネルギー値が良いものを優先して所定数保持する。探索部11,12,13は、自身が保持する最良のエネルギー値に対応する解を他の探索部に供給し、また、他の探索部が保持する最良のエネルギー値に対応する解を他の探索部から取得する。最良のエネルギー値とは、例えばエネルギー値を最小化する問題では、探索部11,12,13が保持する複数の解に対応する複数のエネルギー値のうちの最小のエネルギー値である。この場合、最良の解は、探索部11,12,13が保持する解のうちの最小のエネルギー値に対応する解である。
探索部11,12,13の各々は、他の探索部から取得した解のエネルギー値と、自身が保持する最良の解のエネルギー値とを比較する。探索部11,12,13の各々は、他の探索部から取得した解のエネルギー値が、自身が保持する最良の解のエネルギー値よりも良い場合、他の探索部から取得した解を第1の解として取得する。探索部11,12,13の各々は、他の探索部から取得した解のエネルギー値が、自身が保持する最良の解のエネルギー値よりも悪いか、両エネルギー値が同じ場合、自身が保持する最良の解を第1の解として取得する。
なお、第1の解を取得する機能は、探索部11,12,13の外部に、例えば、図示を省略している解伝播部として設けられてもよい。この場合、解伝播部は、探索部11,12,13から、各々の探索部が保持する最良の解を収集し、収集した解の中から第1の解を選択し、探索部11,12,13に第1の解を供給する。
探索部11,12,13の各々は、取得した第1の解に基づいて新たな状態変数列である第1状態変数列を生成する。例えば、探索部11は、第1の解に含まれる一部の状態変数の値を変化させた、第1の解の近傍解を、第1状態変数列として生成する。近傍解の生成は、第1の解と、探索部11で得られている任意の解とに基づいて生成されてもよい。また、第1状態変数列は第1の解の状態変数列と同じでもよい。探索部12,13の各々も、探索部11と同様に第1状態変数列を生成する。
探索部11,12,13の各々は、生成した第1状態変数列を始状態として解を探索する。すなわち、探索部11,12,13の各々は、当該始状態を起点として探索を開始する。そして、ある探索部での探索の結果として得られた解が、当該探索部で得られている最良のエネルギー値を更新する場合、他の探索部と当該解が共有され、上記の処理が繰り返される。あるいは、上記の解伝播部を用いる場合、ある探索部での探索の結果として得られた解が、全探索部で得られている最良のエネルギー値を更新する場合、他の探索部と当該解が共有され、上記の処理が繰り返される。
探索部11,12,13の各々において、所定の終了条件が満たされると、探索部11,12,13による解の探索が終了する。終了条件は、例えば最初の探索開始時点から一定時間が経過したことである。情報処理システム10は、終了時点で探索部11,12,13が保持する複数の解、あるいは、当該複数の解のうちの最も良いエネルギー値に対応する解を最終的な解として出力する。
なお、探索部11,12,13の各々による第1の解の取得、および、第1の解に基づく第1状態変数列の生成、および、第1状態変数列を始状態とする解の探索は、探索部11,12,13の各々により同期して行われてもよいし、非同期に行われてもよい。
情報処理システム10によれば、探索部11,12,13の各々により得られた複数の解のうちの最良のエネルギー値に対応する第1の解が取得される。探索部11,12,13の各々により、第1の解に基づいて第1状態変数列が生成される。探索部11,12,13の各々により、生成された第1状態変数列を始状態として解が探索される。
これにより、求解性能を向上できる。
ここで、比較例として、複数の計算機により独立して基底状態探索を行い、得られた解の中から最良の解を選択する方法が考えられる。しかし、単純に、複数の計算機により独立して基底状態探索を行い、得られた解の中から最良の解を選択するだけでは、一定時間内に最適解を得られる可能性が低かったり、最適解を得るまでに時間がかかったりして、求解性能を十分に向上できない。このため、求解性能を向上させる方法が問題となる。
そこで、情報処理システム10では、探索部11,12,13の各々は、探索部11,12,13で得られている複数の解のうちの最良の解に基づいて、次の探索の始状態を決定する。より良い解の近傍に、最適解が存在する可能性が高いと推定されるからである。これにより、探索部11,12,13の何れかで最適解が得られる可能性を向上できる。例えば、探索部11,12,13の何れかで一定時間内に最適解が得られる可能性が高まることで、最適解が得られるまでの時間を短縮できる。こうして、情報処理システム10による組合せ最適化問題に対する求解性能を向上できる。
なお、探索部11,12,13は同一の情報処理装置に設けられてもよい。その場合、探索部11,12,13の各々は、情報処理装置のバスに接続される。探索部11,12,13は、例えば、バスに接続された共有メモリを介して解を共有する。探索部11,12,13から解を収集し、各探索部11,12,13に解を供給する機能は、バスに接続されたCPUなどの処理部により提供されてもよい。
あるいは、探索部11,12,13は複数の情報処理装置に分散して設けられてもよい。その場合、当該複数の情報処理装置はネットワークに接続される。異なる情報処理装置に設けられた探索部間での解の送受信は、各情報処理装置のCPUの制御により、各情報処理装置が備える通信インタフェースにより実行される。
[第2の実施の形態]
次に、第2の実施の形態を説明する。
図2は、第2の実施の形態の情報処理システムの例を示す図である。
第2の実施の形態の情報処理システムは、ノード100、外部記憶装置200および端末装置300を含む。ノード100、外部記憶装置200および端末装置300は、ネットワーク50に接続されている。ネットワーク50は、例えばLAN(Local Area Network)である。ネットワーク50は、WAN(Wide Area Network)やインターネットでもよい。
ノード100は、各々が組合せ最適化問題の解を探索する複数のアクセラレータを有するサーバコンピュータである。アクセラレータは、式(1)で表されるイジング型のエネルギー関数E(x)を最小化する複数の状態変数の値を解として求めるハードウェアである。ただし、ノード100が提供する解探索機能は、ソフトウェアにより実装されてもよい。
ノード100における複数のアクセラレータの各々は、互いに異なる探索手法、すなわち、探索アルゴリズムを用いて解の探索を行う。ただし、複数のアクセラレータの少なくとも2つが同じ探索手法を用いて解の探索を行ってもよい。探索手法には、例えば、SA、GA、SQA、タブー探索などがある。探索手法は例示したものに限らず、他の探索手法でもよい。
外部記憶装置200は、ノード100に入力される組合せ最適化問題の問題データやノード100が出力する組合せ最適化問題の解を記憶するストレージである。問題データは、例えば、式(1)の重み係数{Wij}やバイアス係数{b}を含む。例えば、外部記憶装置200は、HDD(Hard Disk Drive)やSSD(Solid State Drive)などを複数備える。
端末装置300は、ユーザが操作するクライアントコンピュータである。端末装置300は、ノード100に対するデータの入力を行う。端末装置300がノード100に入力するデータには、外部記憶装置200に記憶された問題データが含まれる。また、端末装置300は、外部記憶装置200に記憶された組合せ最適化問題の解の内容を、端末装置300が備えるディスプレイに表示することで、ユーザに提示する。
ここで、第2の実施の形態の情報処理システムは、第1の実施の形態の情報処理システム10の一例である。ノード100が、第1の実施の形態の情報処理システム10の一例であると考えてもよい。
図3は、ノードのハードウェア例を示す図である。
ノード100は、CPU101、RAM102、HDD103、媒体リーダ104、アクセラレータカード105,105a,…、NIC(Network Interface Card)106およびバス107を有する。
CPU101は、プログラムの命令を実行するプロセッサである。CPU101は、HDD103に記憶されたプログラムやデータの少なくとも一部をRAM102にロードし、プログラムを実行する。なお、CPU101は複数のプロセッサコアを含んでもよい。また、ノード100は複数のプロセッサを有してもよい。以下で説明する処理は複数のプロセッサまたはプロセッサコアを用いて並列に実行されてもよい。また、複数のプロセッサの集合を「マルチプロセッサ」または単に「プロセッサ」と言うことがある。
RAM102は、CPU101が実行するプログラムやCPU101が演算に用いるデータを一時的に記憶する揮発性の半導体メモリである。なお、ノード100は、RAM以外の種類のメモリを備えてもよく、複数個のメモリを備えてもよい。
HDD103は、OS(Operating System)やミドルウェアやアプリケーションソフトウェアなどのソフトウェアのプログラム、および、データを記憶する不揮発性の記憶装置である。なお、ノード100は、フラッシュメモリやSSDなどの他の種類の記憶装置を備えてもよく、複数の不揮発性の記憶装置を備えてもよい。
媒体リーダ104は、記録媒体51に記録されたプログラムやデータを読み取る読み取り装置である。記録媒体51として、例えば、磁気ディスク、光ディスク、光磁気ディスク(MO:Magneto-Optical disk)、半導体メモリなどを使用できる。磁気ディスクには、フレキシブルディスク(FD:Flexible Disk)やHDDが含まれる。光ディスクには、CD(Compact Disc)やDVD(Digital Versatile Disc)が含まれる。
媒体リーダ104は、例えば、記録媒体51から読み取ったプログラムやデータを、RAM102やHDD103などの他の記録媒体にコピーする。読み取られたプログラムは、例えば、CPU101によって実行される。なお、記録媒体51は可搬型記録媒体であってもよく、プログラムやデータの配布に用いられることがある。また、記録媒体51やHDD103を、コンピュータ読み取り可能な記録媒体と言うことがある。
アクセラレータカード105,105a,…は、各々が組合せ最適化問題の解を探索するハードウェアアクセラレータである。アクセラレータカード105,105a,…の各々における探索機能は、FPGA、GPU、ASICなどの半導体集積回路により実現される。また、アクセラレータカード105,105a,…の各々は、探索された解を保持するRAMを有する。例えば、アクセラレータカード105は、FPGA111およびRAM112を有する。また、アクセラレータカード105aは、GPU121およびRAM122を有する。このように、ノード100には、FPGA、GPU、ASICなど、異なる種類の半導体集積回路が搭載されたアクセラレータカードが混載されてもよい。
アクセラレータカード105,105a,…のように組合せ最適化問題の解を探索するハードウェアアクセラレータは、イジングマシンやボルツマンマシンなどと呼ばれることがある。例えば、SAを実行するアクセラレータカードとして、特許第6465223号における最適化装置がある。
NIC106は、ネットワーク50に接続され、ネットワーク50を介して他のコンピュータと通信を行う通信インタフェースである。NIC106は、ネットワーク50を介して外部記憶装置200にデータを送信したり、端末装置300からデータを受信したりする。NIC106は、例えばネットワーク50に属するスイッチやルータなどの通信装置とケーブルで接続される。
バス107は、ノード100の内部バスである。CPU101、RAM102、HDD103、媒体リーダ104、アクセラレータカード105,105a,…およびNIC106は、バス107に接続される。バス107には、例えば、PCIe(Peripheral Component Interconnect express)が用いられる。
図4は、ノードの機能例を示す図である。
ノード100は、制御部130、探索部140,150,160,170および解伝播部180を有する。制御部130および解伝播部180は、CPU101により実現される。1つの探索部は、1つのアクセラレータカードにより実現される。図4の例では、ノード100が4つの探索部を有することが示されているが、ノード100は、4以外の複数の探索部を有してもよい。また、前述のように、少なくとも一部の探索部の機能は、所定のソフトウェアを実行するCPU101により発揮されてもよい。
制御部130は、組合せ最適化問題の問題データを端末装置300から取得する。制御部130は、探索部140,150,160,170に問題データや初期状態変数列を入力し、解の探索を実行させる。探索部140,150,160,170に入力される問題データは同一である。初期状態変数列は、探索部140,150,160,170の各々における最初の探索開始時点の初期状態である。各探索部では、初期状態変数列を起点として、状態変数の値が変更されることで、最初の探索が行われる。制御部130は、探索部140,150,160,170に互いに異なる初期状態変数列を入力してもよい。
また、制御部130は、探索部140,150,160,170の各々の探索の結果として得られた解を取得する。制御部130は、取得した解を外部記憶装置200に出力する。
探索部140,150,160,170の各々は、組合せ最適化問題に対応するイジング型のエネルギー関数を最小化する複数の状態変数の組、すなわち、イジングモデルの基底状態を探索することで、当該組合せ最適化問題の解を探索する。
探索部140,150,160,170の各々は、互いに異なる探索手法を用いる。例えば、探索部140は、SQAを用いる。探索部150は、タブー探索を用いる。探索部160は、SAを用いる。探索部170は、GAを用いる。ただし、探索部140,150,160,170のうちの少なくとも2つの探索部が同じ探索手法を用いてもよい。また、探索部140,150,160,170の全てが同じ探索手法を用いてもよい。
探索部140,150,160,170は、それぞれ解プール141,151,161,171を有する。解プール141,151,161,171には、それぞれ探索部140,150,160,170に対応するアクセラレータカード上のRAMの記憶領域が用いられる。また、探索部140,150,160,170は、それぞれアクセラレータ142,152,162,172を有する。アクセラレータ142,152,162,172は、それぞれ探索部140,150,160,170に対応するアクセラレータカード上のFPGA111やGPU121などにより実現される。
探索部140,150,160,170は、それぞれアクセラレータ142,152,162,172を用いて解の探索を行う。探索部140,150,160,170は、現時点までに得られた解のうちのエネルギー値の小さい解を優先して、所定数だけ、それぞれ解プール141,151,161,171に保持する。
探索部140,150,160,170は、それぞれ解プール141,151,161,171に保持されているエネルギー値が最小の解、すなわち、best解を解伝播部180に供給する。探索部140,150,160,170は、それぞれ解プール141,151,161,171に保持されているbest解を、解伝播部180より供給される解に置換することがある。
探索部140,150,160,170は、それぞれ解プール141,151,161,171に保持されている解に基づいて、アクセラレータ142,152,162,172による次の探索の始状態とする新たな解、すなわち、初期解を生成する。探索部140,150,160,170の各々は、生成した初期解を用いて各探索部のアクセラレータによる次の探索を行う。
解伝播部180は、探索部140,150,160,170に対する解の伝播を行う。解伝播部180は、解バッファ181を有する。解バッファ181には、RAM102の記憶領域が用いられる。解バッファ181は、解伝播部180により選択された1つ以上の解を記憶する。
解伝播部180は、探索部140,150,160,170の各々から供給された解、すなわち、探索部140,150,160,170でのbest解のうち、エネルギー値の小さい解を優先して所定数だけ、解バッファ181に記録する。
解伝播部180は、解バッファ181に保持されている解のうちのエネルギー値が最小の解、すなわち、解バッファ181におけるbest解を、探索部140,150,160,170に供給する。
図5は、解プールの例を示す図である。
図5では、解プール141を例示するが、解プール151,161,171も同様のデータ構造をもつ。
解プール141における1つのレコードは、ステートおよびエネルギー値のフィールドを有する。なお、図5では、レコードを識別する番号(#)が図示されている。解プール141は、k個のレコードを保持する。ステートは、アクセラレータ142により得られた解であり、複数の状態変数の値の組で表される。ステートは、状態ベクトルや状態ビット列とも呼ばれる。エネルギー値は、ステートxに対応するエネルギー関数E(x)の値である。例えば、解プール141の0番目のレコードは、ステート「X0」であり、エネルギー値「E(X0)」である。
なお、解バッファ181も、解プール141と同様のデータ構造をもつ。一例では、解プール141,151,161,171でk=16であり、解バッファ181でk=4である。
図6は、新たな解の生成方法の例を示す図である。
前述のように、探索部140は、解プール141に保持されている解をランダムに取得して、アクセラレータ142による次の探索の始状態とする新たな解を生成する。
例えば、探索部140は、解プール141からステートA,B、すなわち、解A,Bを取得する。探索部140は、解A,Bに基づいて、新たな解Cを生成する。
具体的には、探索部140は、解A,Bで値が同一であるビットに対応する解Cのビットを、解A,Bの当該ビットと同じ値にする。また、探索部140は、解A,Bで値が異なるビットに対応する解Cのビットの値を、「0」または「1」にランダムに選択する。解Cは、第1の実施の形態における「第1状態変数列」の一例である。
図6の生成方法は、比較的エネルギー値の良い解同士には、何らかの類似性が存在し、それらの解の近傍に最適解が存在し得るという最適化戦略に基づく処理である。当該生成方法には、次の文献を参考にすることができる。
文献:Y.Wang et al, Path relinking for unconstrained binary quadratic programming, European Journal of Operational Research 223, 2012, p.595-604.
なお、解プール141に1つの解しか格納されていない場合、探索部140は、当該1つの解から次の探索の始状態とする新たな解を生成してもよい。例えば、探索部140は、当該1つの解に含まれる一部の状態変数の値を変化させることで当該新たな解を生成することも考えられる。
探索部150,160,170も、探索部140と同様の方法により新たな解を生成する。
次に、ノード100の処理手順を説明する。
まず、探索部140,150,160,170の処理手順を説明する。
制御部130は、探索部140,150,160,170に、初期状態変数列および同一の問題データを入力し、解の探索を開始させる。最初の段階では解プール141,151,161,171に解が格納されていない。そのため、探索部140,150,160,170はそれぞれ解プール141,151,161,171に対して、全て初期状態変数列の解で埋める処理を行う。あるいは、探索部140,150,160,170は、ランダムにビット0/1を選択して生成した解を用いてそれぞれ解プール141,151,161,171を埋めても良い。
以下では、探索部140を主に例示して説明するが、探索部150,160,170も同様の処理手順を実行する。
図7は、探索部の処理例を示すフローチャートである。
(S10)探索部140は、解プール141から2つの解A,Bを選択する。
(S11)探索部140は、解A,Bから解Cを生成する。解Cの生成方法には、図6で例示した方法を用いることができる。
(S12)探索部140は、アクセラレータ142に解Cを入力し、解Cを初期解、すなわち、始状態として、アクセラレータ142を用いた解の探索を行う。
(S13)探索部140は、アクセラレータ142による所定期間の探索が終了すると、アクセラレータ142から改良された解Dおよび解Dのエネルギー値を取得する。
(S14)探索部140は、解プール141から、エネルギー値が最大の解、すなわち、worst解Eを選択する。
(S15)探索部140は、解Dのエネルギー値が解Eのエネルギー値よりも小さいか否かを判定する。解Dのエネルギー値が解Eのエネルギー値よりも小さい場合、探索部140は、ステップS16に処理を進める。解Dのエネルギー値が解Eのエネルギー値以上の場合、探索部140は、ステップS17に処理を進める。
(S16)探索部140は、解プール141の解Eを解Dに変更する。
(S17)探索部140は、解プール141から、エネルギー値が最小の解、すなわち、best解Fを選択する。
(S18)探索部140は、解伝播部180へ解Fおよび解Fのエネルギー値を送信する。
(S19)探索部140は、解伝播部180から、解伝播部180が保持するエネルギー値が最小の解、すなわち、best解Gを受信する。このとき、探索部140は、解Gとともに、解Gのエネルギー値を解伝播部180から受信する。
(S20)探索部140は、解Gのエネルギー値が解Fのエネルギー値よりも小さいか否かを判定する。解Gのエネルギー値が解Fのエネルギー値よりも小さい場合、探索部140は、ステップS21に処理を進める。解Gのエネルギー値が解Fのエネルギー値以上の場合、探索部140は、ステップS22に処理を進める。
(S21)探索部140は、解プール141の解Fを解Gに変更する。
(S22)探索部140は、終了条件を満たすか否かを判定する。終了条件を満たす場合、探索部140は処理を終了する。終了条件を満たさない場合、探索部140は、ステップS10に処理を進める。
ここで、ステップS22の終了条件は、制御部130により与えられる。例えば、探索部140は、アクセラレータカードのRAMに終了フラグを保持する。終了フラグの初期値は「false」である。探索部140は、制御部130から終了信号を受け付けると、終了フラグを「true」に変更する。終了フラグが「false」の場合、終了条件を満たさない。終了フラグが「true」の場合、終了条件を満たす。例えば、制御部130は、探索部140に図7の手順による探索を開始させてから一定期間が経過すると、終了信号を探索部140に出力する。制御部130は、探索部140,150,160,170の各々による探索期間を異なる長さにすることができる。
また、探索部140,150,160,170の各々は、図7の手順を非同期に実行する。
なお、探索部140は、終了条件が満たされて探索を終了すると、最終的に得られたエネルギー値の最も小さい解を制御部130に出力する。制御部130は、探索部140,150,160,170の全てで探索が終了すると、探索部140,150,160,170の各々から出力された解、あるいは、それらの解のうちのエネルギー値の最も小さい解を、外部記憶装置200に出力する。
次に、解伝播部180の解バッファ181の更新処理の手順を説明する。
解伝播部180は、探索部140,150,160,170の何れかから、入力解Aを受け付けると下記の手順を実行する。
図8は、解伝播部の解バッファの更新例を示すフローチャートである。
(S30)解伝播部180は、探索部140,150,160,170の何れかから、入力解Aおよび入力解Aのエネルギー値を受け付けると、解バッファ181に、入力解Aと同じ解Aが存在するか否かを判定する。解バッファ181に解Aが存在する場合、解伝播部180は、処理を終了する。解バッファ181に解Aが存在しない場合、解伝播部180は、ステップS31に処理を進める。
(S31)解伝播部180は、解バッファ181からエネルギー値が最大の解、すなわちworst解Bを選択する。
(S32)解伝播部180は、解Aのエネルギー値が解Bのエネルギー値よりも小さいか否かを判定する。解Aのエネルギー値が解Bのエネルギー値よりも小さい場合、解伝播部180はステップS33に処理を進める。解Aのエネルギー値が解Bのエネルギー値以上の場合、解伝播部180は解バッファ181の更新処理を終了する。
(S33)解伝播部180は、解バッファ181の解Bを解Aに変更する。そして、解伝播部180は解バッファ181の更新処理を終了する。
なお、解伝播部180は、解の多様性を確保するため、ステートに相当する状態ビット列は異なるが、エネルギー値が同値である2つ以上の解を保持してもよい。
次に、解伝播部180の解出力処理の手順を説明する。
図9は、解伝播部の解出力例を示すフローチャートである。
(S40)解伝播部180は、解バッファ181からエネルギー値が最小の解、すなわちbest解Aを選択する。
(S41)解伝播部180は、探索部140,150,160,170の各々に解Aおよび解Aのエネルギー値を出力する。そして、解伝播部180は、解出力処理を終了する。
なお、ステップS40において、エネルギー値が最小のステートが異なる複数の解が解バッファ181に存在する場合、解伝播部180は、当該複数の解のうちの1つをランダムに選択する。
また、解伝播部180は、ある探索部から図8における入力解Aが供給されると図8の手順が終了した後に、入力解Aの供給元の探索部に対して、図9の手順を実行してもよい。探索部140,150,160,170の各々は、非同期に、解伝播部180から解バッファ181におけるbest解を取得する。
第2の実施の形態のノード100によれば、複数のアクセラレータを並列に動作させ、探索期間中に、アクセラレータ間で各々のアクセラレータでのbest解を相互に更新する。すなわち、探索動作中に、各探索部の解プールには、全探索部におけるbest解が解伝播部180を介して反映される。このため、各探索部の解プールから選択された当該best解に基づいて、当該探索部の次の探索の始状態が生成されることで、あるタイミングでの全探索部におけるbest解が当該探索部の次の探索の始状態に反映される。
前述のように、比較的エネルギー値の良い解同士には、何らかの類似性が存在し、それらの解の近傍に最適解が存在し得ると推定される。したがって、ノード100の上記処理手順により、何れかの探索部で最適解に到達する可能性を高められ、独立して各々のアクセラレータを動作させる場合に比べて求解性能が向上する。
ここで、1つの問題においても、ある局所解から他の解への遷移のし易さは、探索手法に応じて異なることがある。例えば、ある局所解に陥った場合に、第1の探索手法では当該局所解から他の解へ遷移することが比較的困難であっても、第2の探索手法では当該局所解から他の解へ遷移することが比較的容易なことがある。
そこで、第2の実施の形態では、各アクセラレータで異なる探索手法を用いる。ノード100では、各アクセラレータに伝播されるbest解により各アクセラレータでbest解近傍の近傍解を生成し、近傍解を始状態として当該アクセラレータでの探索が行われる。これにより、例えば、ある要所における局所解から複数の探索手法を用いて次の局所解を探索することと同様の動作を実現でき、最適解に到達する可能性を高められる。あるいは、一定時間内に最適解に到達する可能性が高まるので、最適解を得るまでにかかる時間を短縮できる。こうして、求解性能を一層向上させることができる。
また、探索部140,150,160,170は、解伝播部180を介して解をやり取りすることで、アクセラレータ142,152,162,172を用いた探索を非同期に実行することができる。これにより、各アクセラレータの実行時間が大きく異なる場合でも、解をやり取りするための待ち合わせの時間が発生しないため、効率良く解を探索することが可能となる。
[第3の実施の形態]
次に、第3の実施の形態を説明する。前述の第2の実施の形態と相違する事項を主に説明し、共通する事項の説明を省略する。
第2の実施の形態では、情報処理システムが1つのノード100を含む例を示した。
第3の実施の形態では、情報処理システムが複数のノードを含む例を説明する。第3の実施の形態の説明では、第2の実施の形態と同一のハードウェアおよび機能には同一の符号を付し、その説明を省略することがある。
図10は、第3の実施の形態の情報処理システムの例を示す図である。
第3の実施の形態の情報処理システムは、ノード100a,100b,…、外部記憶装置200および端末装置300を含む。ノード100a,100b,…、外部記憶装置200および端末装置300は、ネットワーク50に接続されている。ノード100a,100b,…は、第2の実施の形態のノード100と同様のハードウェアにより実現される。
第3の実施の形態の情報処理システムは、第1の実施の形態の情報処理システム10の一例である。ノード100a,100b,…を含むシステムが、第1の実施の形態の情報処理システム10の一例であると考えてもよい。
第3の実施の形態におけるノード100a,100b,…の各々は、1つ以上の探索部を有する。ノード100a,100b,…は、次の機能を有する点が第2の実施の形態のノード100と異なる。以下ではノード100aを主に挙げて説明するが、ノード100b,…も同様の機能を有する。
図11は、ノードの機能例を示す図である。
ノード100aは、制御部130、探索部140,150,…、解伝播部180aおよび通信部190を有する。制御部130および探索部140,150,…は、第2の実施の形態における同名の機能に相当する。解伝播部180aおよび通信部190は、CPU101により実現される。
解伝播部180aは、解バッファ181を有し、探索部140,150,…に対しては第2の実施の形態の解伝播部180と同様に機能する。
解伝播部180aは、通信部190から解を受け付け、通信部190から供給された解により解バッファ181の解を更新することがある。
すなわち、解伝播部180aは、入力解として、探索部140,150,…から供給される解を用いるだけでなく、通信部190から供給される解を用いて、図8の解バッファ181の更新の手順を実行する。
より具体的には、解伝播部180aは、探索部140,150,…の何れか、または、通信部190から供給される入力解が解バッファ181に含まれる場合、入力解を破棄して解バッファ181の更新をスキップする。解伝播部180aは、入力解が解バッファ181に含まれない場合、解バッファ181におけるエネルギー値が最大の解の当該エネルギー値と入力解のエネルギー値とを比較する。解伝播部180aは、入力解のエネルギー値が解バッファ181における最大のエネルギー値より小さければ、解バッファ181の最大のエネルギー値の解を、入力解に置き換える。解伝播部180aは、入力解のエネルギー値が解バッファ181における最大のエネルギー値以上であれば、解バッファ181の更新を行わずに、入力解を破棄する。
更に、解伝播部180aは、解バッファ181におけるエネルギー値が最小の解、すなわちbest解および当該best解のエネルギー値を、探索部140,150,…および通信部190に出力する。
通信部190は、ネットワーク50を介して、ノード100b,…に、現時点でのノード100aでのbest解および当該best解のエネルギー値を送信する。通信部190は、ノード100b,…の各々から、ノード100b,…の各々において現時点で得られているbest解および当該best解のエネルギー値を受信する。
通信部190は、他の全てのノードから受信した解と、ノード100aでの現時点でのbest解とでエネルギー値を比較し、エネルギー値が最小の解Mminを選択する。エネルギー値が最小で状態ビット列が異なる複数の解が存在する場合、通信部190は、当該複数の解からランダムで1つを選択する。
通信部190は、選択した解Mminおよび解Mminのエネルギー値を解伝播部180aに出力する。解Mminが解バッファ181に格納されるか否かは、解伝播部180aの前述の動作に依存する。
通信部190は、解Mminを解伝播部180aに出力すると、一定時間停止し、一定時間が経過すると上記の動作を繰り返し実行する。
なお、通信部190には、OpenMPI(Message Passing Interface)などの並列コンピューティング環境を用いることができる。例えば、通信部190は他の全てのノードにおける他の通信部との全対全通信により各ノードで得られているbest解を収集する。
次に、通信部190の処理手順を説明する。
図12は、通信部の処理例を示すフローチャートである。
(S50)通信部190は、解伝播部180aから解M[i]および解M[i]のエネルギー値を取得する。解M[i]は、解バッファ181に保持されている解のうちの、エネルギー値が最小の解である。iは、ノードの識別番号であり、0から(ノード数−1)の値を取る。ステップS50のiは、ノード100の識別番号に相当する。
(S51)通信部190は、全ノードの解M[i]および解M[i]のエネルギー値を集約する。これにより、通信部190は、ノード数分の解M[i]を得る。
(S52)通信部190は、解M[i]のうち、エネルギー最小の解Mminを選択する。エネルギー最小の複数の解が存在する場合、通信部190は、当該複数の解のうちの1つをランダムに選択し、解Mminとする。
(S53)通信部190は、解Mminおよび解Mminのエネルギー値を解伝播部180aに入力する。
(S54)通信部190は、一定時間待機する。
(S55)通信部190は、終了条件を満たすか否かを判定する。終了条件を満たす場合、通信部190は処理を終了する。終了条件を満たさない場合、通信部190は、ステップS50に処理を進める。
ここで、ステップS55の終了条件は、制御部130により与えられる。例えば、通信部190は、RAM102に終了フラグを保持する。終了フラグの初期値は「false」である。通信部190は、制御部130から終了信号を受け付けると、終了フラグを「true」に変更する。終了フラグが「false」の場合、終了条件を満たさない。終了フラグが「true」の場合、終了条件を満たす。例えば、制御部130は、探索部140に図7の手順による探索を開始させてから一定期間が経過すると、終了信号を探索部140および通信部190に出力する。
第3の実施の形態のノード100a,100b,…によれば、ノード100a,100b,…の各々に搭載された複数のアクセラレータを並列に動作させ、探索期間中に、アクセラレータ間で各々のアクセラレータでのbest解を相互に更新する。すなわち、探索動作中に、各々の探索部の解プールには、全探索部におけるbest解が解伝播部180aおよび通信部190を介して反映される。このため、各探索部の解プールから選択された当該best解に基づいて、当該探索部の次の探索の始状態が生成されることで、あるタイミングでの全探索部におけるbest解が当該探索部の次の探索の始状態に反映される。
これにより、何れかの探索部で最適解に到達する可能性を高められ、個々のアクセラレータを独立して動作させる場合に比べて求解性能が向上する。
ノード100a,100b,…の各々における各探索部は、解伝播部180および通信部190を介して解をやり取りすることで、各ノード上の探索部による探索を探索部間で非同期に実行することができる。これにより、各アクセラレータの実行時間が大きく異なる場合でも、解をやり取りするための待ち合わせの時間が発生しないため、効率良く解を探索することが可能となる。
また、第2の実施の形態の各探索部と同様に、第3の実施の形態でも、各探索部で異なる探索手法を用いることができる。
図13は、複数の探索手法を用いる情報処理システムの例を示す図である。
例えば、第3の実施の形態の情報処理システムは、ノード100a,100b,100c,100dを含むとする。ノード100a,100b,100c,100dはネットワーク50に接続される。例えば、ノード100aの探索部は、SQAを用いる。ノード100bの探索部は、タブー探索(Tabu)を用いる。ノード100cの探索部は、SAを用いる。ノード100dの探索部は、GAを用いる。
図13で例示されるように、ノード単位に探索手法が異なってもよいし、1つのノードに複数の探索手法を用いる複数のアクセラレータが混載されてもよい。アクセラレータは、前述のように、FPGA、GPU、ASICなどにより実現される。第2の実施の形態で例示したように、1つのノードにFPGA、GPU、ASICなどのうちの少なくとも2種類の半導体集積回路が混載されてもよい。
ここで、1つの問題においても、ある局所解から他の解への遷移のし易さは、探索手法に応じて異なることがある。例えば、ある局所解に陥った場合に、第1の探索手法では当該局所解から他の解へ遷移することが比較的困難であっても、第2の探索手法では当該局所解から他の解へ遷移することが比較的容易なことがある。
図14は、探索手法ごとの状態遷移の特性の例を示す図である。
グラフ71は、ある組合せ最適化問題における、探索空間上の各ステート(x)に対するエネルギー値E(x)を示す。グラフ71の横軸は探索空間を示す。グラフ71の縦軸はエネルギー値E(x)を示す。エネルギー値E(x)の極小値を与えるステートxa,xb,xc,xd,xeの各々が局所解である。このうち、ステートxeは、最適解であるとする。
前述のように、ある組合せ最適化問題の解の探索過程において、最適解に至るために有効な探索手法が局所解などの要所ごとに異なる場合がある。
表72は、探索手法1〜4におけるステート間の遷移のし易さを示す。ステートxaからステートxeに到達するためのステートの遷移順の1つの例として、xa,xb,xc,xd,xeと順番に辿ることを考える。表72は、遷移の欄に記載されたステート間の遷移のし易さを、探索手法1〜4の各々に対して表している。表72のチェックマークが付された箇所は、該当の探索手法において該当のステート間の遷移が比較的起こり易いことを示す。表72のハイフンマーク(「−」)が付された箇所は、該当の探索手法において該当のステート間の遷移が比較的起こり難いことを示す。
例えば、探索手法1では、ステートxaからステートxb,xcを介してステートxdに到達する可能性は高いが、ステートxdからステートxeに到達する可能性は低い。
探索手法2では、ステートxaからステートxbを介してステートxcに到達する可能性は高いが、ステートxcからステートxdを介してステートxeに到達する可能性は低い。
探索手法3では、ステートxaからステートxbに到達する可能性、および、ステートxcからステートxdを介してステートxeに到達する可能性は高いが、ステートxbからステートxcに到達する可能性は低い。
探索手法4では、ステートxaからステートxbに到達する可能性、および、ステートxcからステートxdに到達する可能性は高いが、ステートxbからステートxcに到達する可能性、および、ステートxdからステートxeに到達する可能性は低い。
このように、探索手法1〜4の何れを用いても、ステートxaからステートxeに至る途中のステート間の遷移が起こり難くなることがある。
この場合、例えば、複数の探索手法を用いるアクセラレータを単純に独立して動作させ、各アクセラレータで得られた解のうちの最良の解を取得する方法では、最適解に到達しない。
そこで、第2の実施の形態のノード100および第3の実施の形態のノード100a,100b,…では、各探索部に伝播されるbest解により各探索部でbest解近傍の近傍解を生成し、近傍解を始状態として当該探索部での探索が行われる。これにより、例えば、ある要所における局所解から複数の探索手法を用いて次の局所解を探索することと同様の動作を実現でき、最適解に到達する可能性を高められる。あるいは、一定時間内に最適解に到達する可能性が高まるので、最適解を得るまでにかかる時間を短縮できる。こうして、求解性能を向上させることができる。
以上をまとめると第2,第3の情報処理システムは、例えば、次の機能を有する。
ノード100またはノード100a,100b,…の複数の探索部の各々は、複数の探索部により得られた複数の解の中から、複数の解に対応する複数のエネルギー関数の値のうちの最良の値に対応する第1の解を取得し、第1の解に基づいて第1状態変数列を生成し、生成した第1状態変数列を始状態として解を探索する。これにより、単に各探索部を独立に動作させて得られた解のうちの最良の解を取得するよりも、最適解に到達する可能性を高めることができ、求解性能を向上させることができる。
例えば、複数の探索部のうちの少なくとも2つの探索部は、異なる探索アルゴリズムを用いて解を探索する。異なる探索アルゴリズムを組み合わせることで、前述のように、単一の探索アルゴリズムでは脱出が困難な局所解からも脱出できる可能性を高められ、最適解に到達する可能性を高めることができる。
また、ノード100は、複数の探索部の各々から第2の解を非同期に取得し、取得した複数の第2の解の中から第1の解を決定し、決定した第1の解を複数の探索部の各々に非同期に出力する解伝播部180を有する。
これにより、複数の探索部は、解伝播部180を介して非同期に解をやり取りできる。したがって、各探索部の実行時間が異なる場合でも、解をやり取りするための待ち合わせ時間が発生しないため、効率よく解を探索することが可能となる。特に、互いに異なる探索アルゴリズムを用いる探索部間では探索の実行時間が大きく異なることがある。このため、解伝播部180の機能は、少なくとも2つの探索部で異なる探索アルゴリズムが用いられる場合に特に有用である。
なお、解伝播部180の機能は、前述のようにCPU101により実現され得る。解伝播部180の機能は、FPGAやASICなどの半導体集積回路により実現されてもよい。この場合、半導体集積回路を用いて実現される解伝播回路が解伝播部180として機能する。
例えば、複数の探索部の各々は、自探索部が解プールに保持する最良のエネルギー関数の値に対応する第2の解を解伝播部180に出力し、解伝播部180から第1の解を取得する。複数の探索部の各々は、第1の解が第2の解と異なる場合、自探索部が保持する第2の解を解伝播部180から取得した第1の解に置き換える。これにより、複数の探索部で得られている最良の解、すなわち、第1の解が、各探索部に適切に反映される。
ここで、例えば、第1の解と第1状態変数列とは次のような関係となる。
第1の例では、第1の解が有する状態変数列は、第1状態変数列と同一の状態変数列である。これにより、第1の解そのものを次の探索の始状態とすることができる。
第2の例では、第1の解が有する状態変数列は、第1状態変数列に含まれる複数の状態変数の一部が変更された状態変数列である。これにより、第1の解の近傍解を、次の探索の始状態とすることができる。
第1の例および第2の例の何れを用いても、求解性能を向上させることができる。
例えば、複数の探索部の各々は、自探索部により得られた複数の解を含む解プール、または第2の解を第1の解に置き換えることによって得られる複数の解を含む解プールを保持し、解プールから選択された2以上の解に基づいて、第1状態変数列を生成する。
これにより、上記の第2の例が情報処理システムに実装され、求解性能を向上させることができる。すなわち、解プールから選択された2以上の解に第1の解が含まれる可能性があり、その場合に第1の解の近傍解を次の探索の始状態とすることができる。
また、第3の実施の形態の情報処理システムは、各々が複数の探索部のうちの1以上の探索部を備える複数の装置を有する。ノード100a,100b,…は、当該複数の装置の一例である。当該装置は、例えば情報処理装置と呼ばれてもよい。複数の装置の各々は、自装置が備える1以上の探索部で得られたエネルギー関数の第1の最良候補値に対応する第3の解を複数の装置のうちの他の装置に送信し、他の装置で得られたエネルギー関数の第2の最良候補値に対応する第4の解を他の装置から受信する。また、複数の装置の各々は、第1の最良候補値と第2の最良候補値との比較に基づいて第1の解を決定する。ここで、第1の最良候補値および第2の最良候補値は、各装置において得られた複数の解に対応する複数のエネルギー関数の値のうちの最良の値の候補となる値である。
これにより、複数の探索部が複数の装置に分散して配置される場合にも、複数の探索部の各々で第1の解を適切に決定して各探索部に供給でき、情報処理システム全体としての求解性能を向上させることができる。
より具体的には、複数の装置の各々は、通信部(例えば、通信部190)と、解伝播部(例えば、解伝播部180a)とを有する。
複数の装置の各々の通信部は、他の装置に第3の解を送信し、他の装置から第4の解を受信し、エネルギー値の第1の最良候補値とエネルギー値の第2の最良候補値との比較により、第3の解と第4の解のうちの第1の解の候補である候補解を出力する。
複数の装置の各々の解伝播部は、自装置が備える1以上の探索部で得られた第5の解および自装置の通信部により出力された候補解のうちのエネルギー値が良い解を優先して所定数保持する。複数の装置の各々の解伝播部は、保持している所定数の解のうちの最良のエネルギー値の解を第1の解として決定し、決定した第1の解を自装置が備える1以上の探索部に出力する。
これにより、各装置で非同期に得られた最良の解が、他の装置と共有され、各装置上の1以上の探索部で当該装置における第1の解を適切に取得でき、情報処理システム全体としての求解性能を向上させることができる。
なお、通信部190を含む各装置上の通信部の機能は、前述のようにCPU101により実現され得る。ただし、当該通信部の機能は、FPGAやASICなどの半導体集積回路により実現されてもよい。また、解伝播部180aを含む各装置上の解伝播部の機能は、前述のようにCPU101により実現され得る。当該解伝播部の機能は、FPGAやASICなどの半導体集積回路により実現されてもよい。例えば、ノード100a,100b,…に相当する各装置が複数のプロセッサまたは複数のプロセッサコアを含む場合も考えられる。その場合、第1のプロセッサまたは第1のプロセッサコアが通信部190の機能を実行し、第2のプロセッサまたは第2のプロセッサコアが解伝播部180aの機能を実行してもよい。あるいは、FPGAなどの半導体集積回路を用いて実現される通信回路および解伝播回路が、通信部190および解伝播部180aとしてそれぞれ機能してもよい。
更に、複数の装置の各々が2以上の探索部を備える場合、複数の装置の各々の解伝播部は、自装置が備える2以上の探索部の各々から第5の解を非同期に取得し、また、選択した第1の解を当該2以上の探索部の各々に非同期に出力する。
これにより、複数の装置上の複数の探索部は、各装置上の解伝播部(例えば、解伝播部180a)を介して非同期に解をやり取りできる。したがって、各探索部の実行時間が異なる場合でも、解をやり取りするための待ち合わせ時間が発生しないため、効率よく解を探索することが可能となる。特に、互いに異なる探索アルゴリズムを用いる探索部間では探索の実行時間が大きく異なることがある。このため、解伝播部180aを含む各装置上の解伝播部の機能は、同じ装置上の少なくとも2つの探索部で異なる探索アルゴリズムが用いられる場合に特に有用である。
また、複数の探索部の各々は、第1の解に含まれる一部の状態変数の値を変化させることで、第1状態変数列を生成する。当該生成方法として、例えば、図6の方法を用いることができる。最適解は、現状得られている解のうち、より良い解の近傍に存在する可能性が高いと推定される。したがって、第1の解の近傍解を次の探索の始状態とすることで、最適解に到達する可能性を高められ、求解性能を向上できる。
なお、第1の実施の形態の情報処理は、探索部11,12,13の機能を実現するCPUなどのプロセッサにプログラムを実行させることで実現されてもよい。また、第2,第3の実施の形態の情報処理は、CPU101にプログラムを実行させることで実現されてもよい。プログラムは、コンピュータ読み取り可能な記録媒体51に記録できる。
例えば、プログラムを記録した記録媒体51を配布することで、プログラムを流通させることができる。また、プログラムを他のコンピュータに格納しておき、ネットワーク経由でプログラムを配布してもよい。コンピュータは、例えば、記録媒体51に記録されたプログラムまたは他のコンピュータから受信したプログラムを、RAM102やHDD103などの記憶装置に格納し(インストールし)、当該記憶装置からプログラムを読み込んで実行してもよい。
10 情報処理システム
11,12,13 探索部

Claims (13)

  1. 各々がエネルギー関数に含まれる複数の状態変数の値により表される解を探索する複数の探索部を有し、
    前記複数の探索部の各々は、前記複数の探索部により得られた複数の解の中から、前記複数の解に対応する複数の前記エネルギー関数の値のうちの最良の値に対応する第1の解を取得し、前記第1の解に基づいて第1状態変数列を生成し、前記第1状態変数列を始状態として前記解を探索する、
    情報処理システム。
  2. 前記複数の探索部のうちの少なくとも2つの探索部は、異なる探索アルゴリズムを用いて前記解を探索する、
    請求項1記載の情報処理システム。
  3. 前記複数の探索部の各々から第2の解を非同期に取得し、取得した複数の前記第2の解の中から前記第1の解を決定し、決定した前記第1の解を前記複数の探索部の各々に非同期に出力する解伝播部、
    を更に有する請求項1または2記載の情報処理システム。
  4. 前記複数の探索部の各々は、自探索部が保持する最良の前記エネルギー関数の値に対応する前記第2の解を前記解伝播部に出力し、前記解伝播部から前記第1の解を取得し、前記第1の解が前記第2の解と異なる場合、前記自探索部が保持する前記第2の解を前記解伝播部から取得した前記第1の解に置き換える、
    請求項3記載の情報処理システム。
  5. 前記第1の解が有する状態変数列は、前記第1状態変数列と同一の状態変数列である、
    請求項1乃至3の何れか1項に記載の情報処理システム。
  6. 前記第1の解が有する状態変数列は、前記第1状態変数列に含まれる前記複数の状態変数の一部が変更された状態変数列である、
    請求項1乃至3の何れか1項に記載の情報処理システム。
  7. 前記複数の探索部の各々は、自探索部により得られた前記複数の解を含む解プール、または前記第2の解を前記第1の解に置き換えることによって得られる複数の解を含む解プールを保持し、前記解プールから選択された2以上の解に基づいて、前記第1状態変数列を生成する、
    請求項3記載の情報処理システム。
  8. 各々が前記複数の探索部のうちの1以上の探索部を備える複数の装置を有し、
    前記複数の装置の各々は、自装置が備える前記1以上の探索部で得られた前記エネルギー関数の第1の最良候補値に対応する第3の解を前記複数の装置のうちの他の装置に送信し、前記他の装置で得られた前記エネルギー関数の第2の最良候補値に対応する第4の解を前記他の装置から受信し、前記第1の最良候補値と前記第2の最良候補値との比較に基づいて前記第1の解を決定する、
    請求項1または2記載の情報処理システム。
  9. 前記複数の装置の各々は、
    前記他の装置に前記第3の解を送信し、前記他の装置から前記第4の解を受信し、前記第1の最良候補値と前記第2の最良候補値との前記比較により、前記第3の解および前記第4の解のうちの前記第1の解の候補である候補解を出力する通信部と、
    前記自装置が備える前記1以上の探索部で得られた第5の解および前記通信部により出力された前記候補解のうちの前記エネルギー関数の値が良い前記解を優先して所定数保持し、前記所定数の前記解のうちの最良の前記エネルギー関数の値に対応する前記解を前記第1の解として決定し、決定した前記第1の解を前記自装置が備える前記1以上の探索部に出力する解伝播部と、
    を有する請求項8記載の情報処理システム。
  10. 前記複数の装置の各々は2以上の探索部を備え、
    前記複数の装置の各々の前記解伝播部は、前記自装置が備える前記2以上の探索部の各々から前記第5の解を非同期に取得し、選択した前記第1の解を当該2以上の探索部の各々に非同期に出力する、
    請求項9記載の情報処理システム。
  11. 前記複数の探索部の各々は、前記第1の解に含まれる一部の状態変数の値を変化させることで、前記第1状態変数列を生成する、
    請求項1記載の情報処理システム。
  12. 情報処理システムに含まれる複数の探索部の各々が、
    エネルギー関数に含まれる複数の状態変数の値により表される解を探索し、
    前記複数の探索部により得られた複数の解の中から、前記複数の解に対応する複数の前記エネルギー関数の値のうちの最良の値に対応する第1の解を取得し、
    前記第1の解に基づいて第1状態変数列を生成し、
    前記第1状態変数列を始状態として前記解を探索する、
    情報処理方法。
  13. コンピュータに、
    各々がエネルギー関数に含まれる複数の状態変数の値により表される解を探索する複数の探索部に前記解を探索させ、
    前記複数の探索部により得られた複数の解の中から、前記複数の解に対応する複数の前記エネルギー関数の値のうちの最良の値に対応する第1の解を取得し、
    前記第1の解に基づいて第1状態変数列を前記複数の探索部の各々に対して生成し、
    前記第1状態変数列を始状態として前記複数の探索部の各々に前記解を探索させる、
    処理を実行させるプログラム。
JP2020042328A 2020-03-11 2020-03-11 情報処理システム、情報処理方法およびプログラム Pending JP2021144443A (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2020042328A JP2021144443A (ja) 2020-03-11 2020-03-11 情報処理システム、情報処理方法およびプログラム
US17/160,440 US20210286328A1 (en) 2020-03-11 2021-01-28 Information processing apparatus, information processing method, and non-transitory computer-readable storage medium
EP21154730.2A EP3879417A1 (en) 2020-03-11 2021-02-02 Information processing system, information processing method, information processing program, and information processing apparatus
CN202110175873.6A CN113391841A (zh) 2020-03-11 2021-02-09 信息处理系统、信息处理方法、信息处理程序和装置

Applications Claiming Priority (1)

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

Publications (1)

Publication Number Publication Date
JP2021144443A true JP2021144443A (ja) 2021-09-24

Family

ID=74505071

Family Applications (1)

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

Country Status (4)

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

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP4300376A1 (en) 2022-06-30 2024-01-03 Fujitsu Limited Information processing method, information processing program, and information processing apparatus

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11109244B2 (en) * 2012-04-06 2021-08-31 Plume Design, Inc. Optimization of distributed Wi-Fi networks
US20160335568A1 (en) * 2015-05-15 2016-11-17 Cox Automotive, Inc. Parallel Processing for Solution Space Partitions
JP6701207B2 (ja) 2015-08-24 2020-05-27 株式会社日立製作所 情報処理システム
JP6465223B1 (ja) 2018-02-01 2019-02-06 富士通株式会社 最適化装置及び最適化装置の制御方法
JP6465231B1 (ja) * 2018-03-12 2019-02-06 富士通株式会社 最適化装置及び最適化装置の制御方法
JP2019071119A (ja) 2019-01-11 2019-05-09 富士通株式会社 情報処理装置、イジング装置及び情報処理装置の制御方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP4300376A1 (en) 2022-06-30 2024-01-03 Fujitsu Limited Information processing method, information processing program, and information processing apparatus

Also Published As

Publication number Publication date
CN113391841A (zh) 2021-09-14
US20210286328A1 (en) 2021-09-16
EP3879417A1 (en) 2021-09-15

Similar Documents

Publication Publication Date Title
US11262717B2 (en) Optimization device and control method of optimization device based on temperature statistical information
JP5460486B2 (ja) データをソートする装置及び方法
JP2020004387A (ja) 最適化問題計算プログラム及び最適化問題計算システム
US20210256179A1 (en) Information processing method and information processing system
US20190391807A1 (en) Computer-readable recording medium storing optimization problem computing program and optimization problem computing system
JP2021033657A (ja) 組合せ最適化装置、組合せ最適化方法および組合せ最適化プログラム
US20200090051A1 (en) Optimization problem operation method and apparatus
Cui et al. On efficient external-memory triangle listing
Chimani et al. Algorithm engineering: Concepts and practice
US20190243811A1 (en) Generation method, generation device, and computer-readable recording medium
JP2021144443A (ja) 情報処理システム、情報処理方法およびプログラム
US20210334332A1 (en) Information processing apparatus, information processing method, and non-transitory computer-readable storage medium for storing program
JP7219402B2 (ja) 最適化装置、最適化装置の制御方法及び最適化装置の制御プログラム
JP2022015503A (ja) 情報処理システム、情報処理方法及びプログラム
JP7488458B2 (ja) 情報処理システム、情報処理方法及びプログラム
Zhu et al. Physical constraint-aware CNOT quantum circuit synthesis and optimization
Zhu et al. A methodology for characterizing sparse datasets and its application to simd performance prediction
US20230169353A1 (en) Information processing apparatus, information processing method, and computer-readable recording medium storing program
CN113761783A (zh) 信息处理设备、信息处理方法以及计算机可读存储介质
EP4148628A1 (en) Data processing apparatus, data processing method, and data processing program
US20220261669A1 (en) Information processing system, information processing method, and computer-readable recording medium storing program
US20220335321A1 (en) Information processing system, information processing method, and non-transitory computer-readable storage medium
EP4235518A1 (en) Data processing program, data processing device, and data processing method
JP2024062514A (ja) データ処理装置、データ処理方法およびプログラム
Liu et al. VENUS: A system for streamlined graph computation on a single PC

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20221117

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20231031

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20231205

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20240202

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20240528