JP2016051350A - 情報処理システム及び管理装置 - Google Patents
情報処理システム及び管理装置 Download PDFInfo
- Publication number
- JP2016051350A JP2016051350A JP2014176541A JP2014176541A JP2016051350A JP 2016051350 A JP2016051350 A JP 2016051350A JP 2014176541 A JP2014176541 A JP 2014176541A JP 2014176541 A JP2014176541 A JP 2014176541A JP 2016051350 A JP2016051350 A JP 2016051350A
- Authority
- JP
- Japan
- Prior art keywords
- spin
- ising
- ising model
- ground state
- coefficient
- 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.)
- Granted
Links
- 230000010365 information processing Effects 0.000 title claims abstract description 74
- 230000005366 Ising model Effects 0.000 claims abstract description 142
- 230000005283 ground state Effects 0.000 claims abstract description 110
- 239000004065 semiconductor Substances 0.000 claims abstract description 31
- 230000003993 interaction Effects 0.000 claims description 179
- 238000012545 processing Methods 0.000 claims description 51
- 238000004364 calculation method Methods 0.000 claims description 26
- 238000001816 cooling Methods 0.000 claims description 20
- 238000003860 storage Methods 0.000 claims description 18
- 238000006243 chemical reaction Methods 0.000 claims description 7
- 238000011156 evaluation Methods 0.000 claims description 7
- 230000001965 increasing effect Effects 0.000 claims description 4
- 238000000034 method Methods 0.000 description 117
- 239000000243 solution Substances 0.000 description 102
- 230000008569 process Effects 0.000 description 99
- 210000004027 cell Anatomy 0.000 description 53
- 230000006870 function Effects 0.000 description 28
- 238000010586 diagram Methods 0.000 description 26
- 238000005457 optimization Methods 0.000 description 10
- 238000003709 image segmentation Methods 0.000 description 5
- 238000004519 manufacturing process Methods 0.000 description 5
- 230000004044 response Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 210000002569 neuron Anatomy 0.000 description 4
- 102100022907 Acrosin-binding protein Human genes 0.000 description 3
- 102100035167 Coiled-coil domain-containing protein 54 Human genes 0.000 description 3
- 101000756551 Homo sapiens Acrosin-binding protein Proteins 0.000 description 3
- 230000006399 behavior Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000002347 injection Methods 0.000 description 3
- 239000007924 injection Substances 0.000 description 3
- 238000013441 quality evaluation Methods 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 101100438139 Vulpes vulpes CABYR gene Proteins 0.000 description 2
- 230000009471 action Effects 0.000 description 2
- 238000013528 artificial neural network Methods 0.000 description 2
- 230000007423 decrease Effects 0.000 description 2
- 239000000696 magnetic material Substances 0.000 description 2
- 238000010606 normalization Methods 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 101100478064 Dictyostelium discoideum pspB gene Proteins 0.000 description 1
- 101000737052 Homo sapiens Coiled-coil domain-containing protein 54 Proteins 0.000 description 1
- 101100333868 Homo sapiens EVA1A gene Proteins 0.000 description 1
- 101000824971 Homo sapiens Sperm surface protein Sp17 Proteins 0.000 description 1
- 102100031798 Protein eva-1 homolog A Human genes 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 210000004556 brain Anatomy 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 230000001939 inductive effect Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 229910044991 metal oxide Inorganic materials 0.000 description 1
- 150000004706 metal oxides Chemical class 0.000 description 1
- 230000003278 mimic effect Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 230000000946 synaptic effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/58—Random or pseudo-random number generators
- G06F7/588—Random number generators, i.e. based on natural stochastic processes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N7/00—Computing arrangements based on specific mathematical models
- G06N7/01—Probabilistic graphical models, e.g. probabilistic networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N10/00—Quantum computing, i.e. information processing based on quantum-mechanical phenomena
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N99/00—Subject matter not provided for in other groups of this subclass
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Computational Mathematics (AREA)
- Artificial Intelligence (AREA)
- Algebra (AREA)
- Probability & Statistics with Applications (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Hall/Mr Elements (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
【課題】
ユーザが所望する条件の元で問題の解を得ることができる利便性の高い情報処理システム及び情報処理システムの利便性を向上させ得る管理装置を提案する。
【解決手段】
イジングモデルの基底状態探索を実行する1又は複数の半導体チップが搭載されたホスト部と、ユーザが問題を指定するためのユーザインタフェースを提供する操作部と、ユーザインタフェースを用いてユーザにより指定された問題をイジングモデルに変換し、変換したイジングモデルの基底状態の探索を半導体チップに行わせるようにホスト部を制御する管理部とを設け、ユーザは、ユーザインタフェースを用いて、問題を解く際の条件を指定し、管理部は、ユーザに指定された条件に応じた半導体チップの動作条件を生成し、生成した動作条件と、ユーザが指定した問題のイジングモデルとをホスト部に通知し、ホスト部は、管理部から通知された動作条件に従って半導体チップを制御するようにした。
【選択図】 図13
ユーザが所望する条件の元で問題の解を得ることができる利便性の高い情報処理システム及び情報処理システムの利便性を向上させ得る管理装置を提案する。
【解決手段】
イジングモデルの基底状態探索を実行する1又は複数の半導体チップが搭載されたホスト部と、ユーザが問題を指定するためのユーザインタフェースを提供する操作部と、ユーザインタフェースを用いてユーザにより指定された問題をイジングモデルに変換し、変換したイジングモデルの基底状態の探索を半導体チップに行わせるようにホスト部を制御する管理部とを設け、ユーザは、ユーザインタフェースを用いて、問題を解く際の条件を指定し、管理部は、ユーザに指定された条件に応じた半導体チップの動作条件を生成し、生成した動作条件と、ユーザが指定した問題のイジングモデルとをホスト部に通知し、ホスト部は、管理部から通知された動作条件に従って半導体チップを制御するようにした。
【選択図】 図13
Description
本発明は、情報処理システム及び管理装置に関し、特に、イジングモデルの基底状態探索を行う半導体チップを用いて組合せ最適化等の問題を解く機能を有する情報処理システムに適用して好適なものである。
種々の物理現象や社会現象は相互作用モデルで表現することができる。相互作用モデルとは、モデルを構成する複数個のノードと、ノード間の相互作用、さらに必要であればノード毎のバイアスで定義されるモデルである。物理学や社会科学では種々のモデルが提案されているが、いずれも相互作用モデルの一形態であると解釈できる。また相互作用モデルの特徴として、ノード間の影響を2個のノード間の相互作用に限定している(2体間の相互作用)ことが挙げられる。例えば、宇宙空間にある惑星の力学を考えてみると、惑星というノードの間に万有引力による相互作用がある点で相互作用モデルの一種とも解釈できるが、惑星間の影響は2個の惑星間にとどまらず、3個以上の惑星が互いに影響し合って複雑な挙動を示す(いわゆる3体問題や多体問題と言われる問題になる)。
生物学の世界では、脳をモデル化したニューラルネットワークを相互作用モデルの一例として挙げることができる。ニューラルネットワークは神経細胞のニューロンを模した人工ニューロンをノードとしており、人工ニューロン間はシナプス結合という相互作用を持つ。また、ニューロン毎にバイアスを与える場合もある。社会科学の世界では、例えば人間のコミュニケーションを考えると、人間というノードと言語や通信で成される相互作用があることは容易に理解できよう。また、各人間には個別にバイアスがあることも想像できる。そのため人間のコミュニケーションを相互作用モデルに模してその特性を明らかにしようという研究もなされている(例えば特許文献1)。
一方、物理学の世界で代表的な相互作用モデルの例として、イジングモデルを挙げることができる。イジングモデルは磁性体の振舞いを説明するための統計力学のモデルである。イジングモデルは+1/−1(ないしは、0/1、上/下)の2値をとるスピンと、スピン間の相互作用を示す相互作用係数と、スピン毎にある外部磁場係数とで定義される。
イジングモデルは与えられたスピン配列、相互作用係数、及び、外部磁場係数から、その時のエネルギーを計算することができる。イジングモデルのエネルギー関数は一般的に次式で表わされる。
なお、σi,σjはそれぞれi番目とj番目のスピンの値、Ji,jはi番目とj番目のスピンの間の相互作用係数、hiはi番目のスピンに対する外部磁場係数、σはスピンの配列を表わすものとする。
(1)式において、第一項は、スピン間の相互作用に起因するエネルギーを計算するものである。一般的にイジングモデルは無向グラフとして表現され、i番目スピンからj番目スピンへの相互作用と、j番目スピンからi番目スピンへの相互作用を区別することはない。そのため、第一項ではi<jを満たすσi,σjの組み合わせについて、相互作用係数の影響を計算している。また第二項は、各スピンに対する外部磁場に起因するエネルギーを計算するものである。
イジングモデルの基底状態探索とは、イジングモデルのエネルギー関数を最小化するスピンの配列を求める最適化問題である。相互作用係数及び外部磁場係数の値域に制限を付けないときには、トポロジが非平面グラフになるイジングモデルの基底状態を求めることはNP困難問題であることが知られている。
イジングモデルの基底状態探索は、元々イジングモデルが対象としていた磁性体の振る舞いを説明することのみならず、様々な用途に用いられている。これは、イジングモデルが相互作用に基づく最も単純なモデルであり、同様に相互作用に起因する様々な事象を表現する能力を持っているためであると言える。例えば、特許文献1には、イジングモデルの基底状態探索を用いて、職場組織などの集団におけるストレス度を推定する方法が開示されている。
また、イジングモデルの基底状態探索は、NP困難なグラフ問題として知られている最大カット問題とも対応している。このようなグラフ問題は、ソーシャルネットワークにおけるコミュニティの検出や、画像処理におけるセグメンテーションなど、幅広い応用を持っている。そのため、イジングモデルの基底状態探索を行うソルバがあれば、このような様々な問題に適用することができる。
イジングモデルの基底状態を求めることは、上述のようにNP困難問題であることから、イノマン型コンピュータで解くことは計算時間の面で困難を伴う。ヒューリステックを導入して高速化を図るアルゴリズムも提案されているものの、イノマン型コンピュータではなく物理現象をより直接的に利用した計算、すなわちアナログコンピュータでイジングモデルの基底状態を高速に求める方法が提案されている(例えば特許文献2)。
このような装置では、解くべき問題に対応した並列度が必要になってくる。イジングモデルの場合では、基底状態を探索すべきイジングモデルのスピン数に対応して、それぞれ1つのスピンや、当該スピンにおける他のスピンとの相互作用を表現する素子(以下、これを単位素子と呼ぶ)が必要となる。例えば特許文献2に開示された装置では、スピンとレーザを対応させているため、スピン数に比例した数のレーザが必要となる。すなわち、多数の単位素子を搭載可能なスケーラビリティの高さが必要となる。
以上のことを考慮した場合、単位素子を規則的に多数並べて実現できる半導体装置のような固体素子でイジングモデルの基底状態探索を行えることが望ましい。特に、DRAM(Dynamic Random Access Memory)やSRAM(Static Random Access Memory)などの記憶装置に代表されるようなアレイ構造であり、かつ集積性を高められるように単位要素が単純な構造であることが望ましい。そこで、近年、このような半導体装置(以下、これをイジングチップと呼ぶ)の開発が本願特許出願人により進められている。
ところで、このようなイジングチップを用いて組合せ最適化等の問題を解くシステムを構築するに際しては、一定の事項についてユーザが所望する条件を設定でき、その条件に従った解が得られるように、かかるシステムを構築することが望ましい。
本発明は以上の点を考慮してなされたもので、ユーザが所望する条件の元で組合せ最適化等の問題の解を得ることができる利便性の高い情報処理システム及び情報処理システムの利便性を向上させ得る管理装置を提案しようとするものである。
かかる課題を解決するため本発明においては、問題の解をイジングモデルの基底状態を探索するようにして求める情報処理システムにおいて、前記イジングモデルの基底状態の探索を行う複数の半導体チップが搭載されたホスト部と、ユーザが前記問題を指定するためのユーザインタフェースを提供する操作部と、前記ユーザインタフェースを用いて前記ユーザにより指定された前記問題を前記イジングモデルに変換し、変換した前記イジングモデルの基底状態の探索を前記半導体チップに実行させるように前記ホスト部を制御する管理部とを設け、前記ユーザは、前記ユーザインタフェースを用いて、前記問題に加えて、当該問題を解く際の条件を指定することができ、前記管理部は、前記ユーザに指定された前記条件に応じた前記半導体チップの動作条件を生成し、生成した前記動作条件と、前記ユーザが指定した前記問題の前記イジングモデルとを前記ホスト部に送信し、前記ホスト部は、前記管理部から送信された前記動作条件に従って、当該管理部から送信された前記イジングモデルの基底状態を探索するように前記半導体チップを制御するようにした。
また本発明においては、イジングモデルの基底状態探索を実行する1又は複数の半導体チップが搭載された計算機に接続された管理装置であって、解を求めたい問題、前記問題の種類、前記問題を解く際の要求精度、及び、制限時間の入力を受け付ける受信部と、前記問題の種類に応じた所定の変換規則に基づき、前記問題を前記イジングモデルの問題に変換する変換部と、前記制限時間に応じて、前記チップの動作条件を決定する動作条件生成部と、前記イジングモデルの問題を前記計算機の処理能力に応じて1以上の部分問題に分割する問題分割部と、前記部分問題、前記動作条件、及び、基底状態探索の実行指示を前記計算機へ送信し、前記計算機より前記基底状態探索の結果を受信する制御部と、前記基底条件探索結果が前記要求精度を満たしているかを評価する評価部とを設けるようにした。
本発明によれば、ユーザが所望する条件の元で組合せ最適化等の問題の解を得ることができ、かくして利便性の高い情報処理システム及び情報処理システムの利便性を向上させ得る管理装置を実現できる。
以下図面について、本発明の一実施の形態を詳述する。
(1)第1の実施の形態
(1−1)有向グラフに拡張したイジングモデル
本実施の形態では、イジングモデルを拡張した、以下の(2)式で示されるモデルを、これ以降イジングモデルと呼ぶものとする。
(1−1)有向グラフに拡張したイジングモデル
本実施の形態では、イジングモデルを拡張した、以下の(2)式で示されるモデルを、これ以降イジングモデルと呼ぶものとする。
(1)式で示したイジングモデルとの違いは、(2)式では有向グラフで示されるような相互作用が許されることにある。一般的にイジングモデルはグラフ理論では無向グラフとして描画することができる。それは、イジングモデルの相互作用は、i番目スピンからj番目スピンへの相互作用係数Ji,jと、j番目スピンからi番目スピンへの相互作用係数Jj,iとを区別していないことによる。
本発明はイジングモデルを拡張し、Ji,jとJj,iとを区別しても適用できるため、本実施の形態でも有向グラフ化したイジングモデルを取り扱う。なお、無向グラフのイジングモデルを有向グラフのイジングモデルで取り扱う場合には、単にJi,jとJj,iとの双方向に同じ相互作用係数を定義することで可能である。この場合、同じモデルでも(1)式のエネルギー関数に対して(2)式のエネルギー関数ではエネルギーの値が2倍になる。
(1−2)本実施の形態による情報処理システムの構成
(1−2−1)情報処理システムの全体構成
図1において、1は全体として本実施の形態による情報処理システムを示す。この情報処理システム1は、管理ノード2及び複数のホスト3がネットワーク4を介して通信自在に接続されると共に、管理ノード2に操作端末5が接続されて構成されている。
(1−2−1)情報処理システムの全体構成
図1において、1は全体として本実施の形態による情報処理システムを示す。この情報処理システム1は、管理ノード2及び複数のホスト3がネットワーク4を介して通信自在に接続されると共に、管理ノード2に操作端末5が接続されて構成されている。
管理ノード2は、操作端末5から与えられるユーザからの要求に応じて、ネットワーク4に接続された各ホスト3を管理する機能を有するサーバ装置であり、内部バス10を介して相互に接続されたCPU(Central Processing Unit)11、メモリ12、記憶装置13及びネットワークインタフェース14を備えて構成される。
CPU11は、管理ノード2全体の動作制御を司るプロセッサである。またメモリ12は、例えば揮発性の半導体メモリから構成され、主として各種プログラムや各種情報を記憶するために利用される。記憶装置13は、例えばハードディスク装置やSSD(Solid State Drive)などから構成され、プログラムやデータを長期間保持するために利用される。ネットワークインタフェース14は、例えばNIC(Network Interface Card)などから構成され、ネットワーク4を介したホスト3との通信時におけるプロトコル制御を行う。
ホスト3は、パーソナルコンピュータやワークステーション又はサーバなどから構成され、内部バス20を介して相互に接続されたCPU21、メモリ22、記憶装置23及びネットワークインタフェース24と、複数のイジングアクセラレータボード25とを備える。CPU21は、ホスト3全体の動作制御を司るプロセッサである。またメモリ22は、主として各種プログラムや各種情報を記憶するために利用される。記憶装置23は、例えばハードディスク装置やSSDなどから構成され、プログラムやデータを長期間保持するために利用される。
イジングアクセラレータボード25は、イジングモデルの基底状態探索を行う専用のアクセラレータボードであり、図2に示すように、コントローラ30、メモリ31、複数のイジングチップ32、各イジングチップ32にそれぞれ対応させて設けられた複数の乱数発生器33及びインタフェース34を備えて構成される。
コントローラ30は、ネットワーク4を介して管理ノード2から与えられる指示に応じて自イジングアクセラレータボード25に搭載された各イジングチップ32や各乱数発生器33をそれぞれ制御する機能を有するプロセッサである。またメモリ31は、例えばROM(Read Only Memory)から構成され、コントローラ30が実行するプログラムや各種情報が格納される。
イジングチップ32は、イジングモデルの基底状態探索を行う専用ハードウェアであり、コントローラ30の制御のもとに、自己に割り当てられたイジングモデルの基底状態をそれぞれ独立して探索(相互作用動作を実行)する。また乱数発生器33は、後述のように各イジングチップ32において実行される基底状態探索が局所最適解に陥るのを防止するためのランダムなビット列(つまり乱数)を発生させる。乱数発生器33により発生された乱数は、対応するイジングチップ32にそれぞれ与えられる。インタフェース34は、内部バス20(図1)を介したホスト3のCPU21(図1)との通信時におけるプロトコル制御を行う。
操作端末5は、パーソナルコンピュータなどのコンピュータ装置から構成される端末装置であり、内部バス40を介して相互に接続されたCPU41、メモリ42、入力装置43及び表示装置44を備えて構成される。CPU41は、操作端末5全体の動作制御を司るプロセッサである。メモリ42は、例えば揮発性の半導体メモリから構成され、主として各種プログラムや各種情報を記憶するために利用される。メモリ42に格納されたプログラムをCPU41が実行することにより、後述のような操作端末5全体としての各種処理が実行される。
入力装置43は、例えばマウスやキーボードなどから構成され、ユーザが各種入力を行うために利用される。表示装置44は、例えば液晶パネルなどから構成される。表示装置44には、組合せ最適化問題等のイジングモデルを用いて解くべき問題及びその際の条件などをユーザが指定するための図20について後述する問題入力画面110や、各ホスト3により実行されたイジングモデルの基底状態探索処理により得られたその問題の解を提示するための図21〜図23について後述する結果提示画面120〜122などが表示される。
(1−2−2)イジングチップの構成
図3は、イジングチップ32の概略構成を示す。この図3に示すように、イジングチップ32は、スピンアレイ50、I/O(Input/Output)アドレスデコーダ51、I/Oドライバ52及び相互作用アドレスデコーダ53を備える。本実施の形態では、イジングチップ32は現在広く用いられているCMOS(Complementary Metal-Oxide Semiconductor)集積回路として実装されていることを想定して説明するが、他の固体素子でも実現可能である。
図3は、イジングチップ32の概略構成を示す。この図3に示すように、イジングチップ32は、スピンアレイ50、I/O(Input/Output)アドレスデコーダ51、I/Oドライバ52及び相互作用アドレスデコーダ53を備える。本実施の形態では、イジングチップ32は現在広く用いられているCMOS(Complementary Metal-Oxide Semiconductor)集積回路として実装されていることを想定して説明するが、他の固体素子でも実現可能である。
イジングチップ32は、スピンアレイ50にリード/ライトを行うためのSRAM互換インタフェース54としてアドレスバス55、データバス56、R/W制御線57及びI/Oクロック線58を備える。またイジングチップ32は、イジングモデルの基底状態探索の制御を行うための相互作用制御インタフェース59として、相互作用アドレス線60及び相互作用クロック線61をも備える。
イジングチップ32では、イジングモデルのスピンσi、相互作用係数Ji,j及び外部磁場係数hiをすべてスピンアレイ50内のメモリセルに記憶する情報で表現する。スピンσiの初期状態の設定や基底探索完了後の解読み出しはSRAM互換インタフェース54を介して行う。またイジングチップ32では、基底状態を探索すべきイジングモデルをスピンアレイ50に設定するための相互作用係数Ji,j及び外部磁場係数hiのリード/ライトもSRAM互換インタフェース54を介して行う。
そのため、スピンアレイ50内のスピンσi、相互作用係数Ji,j及び外部磁場係数hiにはアドレスが付与されている。そしてイジングチップ32にスピンσi、相互作用係数Ji,j又は外部磁場係数hiをリード/ライトする場合、対応するアドレスがイジングアクセラレータボード25のコントローラ30(図2)からアドレスバス55を介してI/Oアドレスデコーダ51に与えられ、これらスピンσi、相互作用係数Ji,j及び外部磁場係数hiのリード/ライトを制御するR/W制御信号がコントローラ30からR/W制御線57を介してI/Oドライバ52に与えられる。
かくしてI/Oアドレスデコーダ51は、アドレスバス55を介して与えられたアドレスに基づいてスピンアレイ50のワード線をアクティベートし、I/Oドライバ52は、R/W制御線57を介して与えられたR/W制御信号に基づいてスピンアレイ50内の対応するビット線を駆動する。これによりデータバス56を介して与えられたスピンσiの初期値や、相互作用係数Ji,j及び外部磁場係数hiの設定値がスピンアレイ50に設定され、又は、基底探索完了後の解がスピンアレイ50から読み出されてデータバス56を介してイジングアクセラレータボード25のコントローラ30(図2)に送信される。
なお、SRAM互換インタフェース54を構成するアドレスバス55、データバス56及びR/W制御線57は、I/Oクロック線58を介して外部からイジングチップ32に与えられるI/Oクロックに同期して動作する。ただし、本発明においてインタフェースが同期式である必要はなく、非同期式のインタフェースでも良い。本実施の形態では、同期式のインタフェースであるという前提で説明を行う。
また、イジングチップ32は、基底状態探索を行うために、スピンアレイ50の内部でスピン間の相互作用を実現する。この相互作用を外部から制御するのが相互作用制御インタフェース59である。具体的に、イジングチップ32は、イジングアクセラレータボード25のコントローラ30(図2)から与えられる相互作用を行うスピン群を指定するアドレスを相互作用アドレス線60を介して入力し、相互作用クロック線61を介して入力される図示しない相互作用クロック生成器からの相互作用クロックに同期して相互作用を行う。相互作用アドレスデコーダ53は、相互作用アドレス線60を介して与えられたアドレスに基づいてスピンアレイ50に対する相互作用係数Ji,j及び外部磁場係数hiのリード/ライトを行う。
加えて、イジングチップ32は、後述のようにイジングモデルのスピンを表現するメモリセルの値を確率的に反転させる乱数を注入するための乱数注入線62を有している。図2について上述した乱数発生器33により発生された乱数は、この乱数注入線62を介してスピンアレイ50に与えられる。
(1−2−3)スピンアレイの構成
スピンアレイ50は、1個のスピンσi並びにそれに付随する相互作用係数Ji,j及び外部磁場係数hiの保持と、基底状態探索演算とを実現するスピンユニットを基本構成単位として、スピンユニットを多数個並べた構成を有する。
スピンアレイ50は、1個のスピンσi並びにそれに付随する相互作用係数Ji,j及び外部磁場係数hiの保持と、基底状態探索演算とを実現するスピンユニットを基本構成単位として、スピンユニットを多数個並べた構成を有する。
図4は、スピンユニットを複数個並べることで、3次元格子状のトポロジを持つイジングモデルを構成する例を示している。図4の例は、3(X軸方向)×3(Y軸方向)×2(Z軸方向)の大きさの3次元格子である。座標軸の定義は図示した通り、図面右方向をX軸、図面下方向をY軸、図面奥行き方向をZ軸としているが、この座標軸は実施の形態の説明上便宜的に必要なだけであり、本発明とは関係しない。3次元格子以外のトポロジ、例えばツリー状のトポロジなどを利用する場合には、座標軸とは別にツリーの段数等で表現することになる。図4の3次元格子状のトポロジにおいて、スピン間の相互作用をグラフとしてとらえると、最大で次数5のスピン(頂点)が必要となる。なお、外部磁場係数の接続も含めて考えると、最大で次数6が必要となる。
図4に示す1個のスピンユニット70には、隣接するスピン(例えば隣接するスピンが5個の場合σj、σk、σl、σm、σn)の値が入力される。このためスピンユニット70は、これら入力する隣接するスピンの値を保持するためのメモリセルを有している。またスピンユニット70は、かかるスピンの値に加え、外部磁場係数と、上述した隣接するスピンとの相互作用係数(隣接する5スピンとの相互作用係数Jj,i、Jk,i、Jl,i、Jm,i、Jn,i)とをそれぞれ保持するメモリセルをも有している。
ところで、先に述べたようにイジングモデルは一般的に無向グラフで表現される相互作用を有している。上述した(1)式では、相互作用を表わす項として、Ji,j×σi×σjがあるが、これはi番目スピンからj番目スピンへの相互作用を示している。この場合、一般的なイジングモデルではi番目スピンからj番目スピンへの相互作用と、j番目スピンからi番目スピンへの相互作用を区別することはない。つまり、Ji,jとJj,iは同一である。しかし、本実施の形態のイジングチップ32では、先に述べたようにこのイジングモデルを有向グラフに拡張し((2)式)、i番目スピンからj番目スピンへの相互作用と、j番目スピンからi番目スピンへの相互作用を非対称にすることを実現している。これにより、モデルの表現能力が高まり、多くの問題をより小規模のモデルで表現することが可能になる。
そのため、1個のスピンユニットをi番目スピンσiと考えた時に、このスピンユニットが保持する相互作用係数であるJj,i、Jk,i、Jl,i、Jm,i、Jn,iは、隣接するj番目、k番目、l番目、m番目、n番目のスピンσj、σk、σl、σm、σnから、i番目スピンσiへの相互作用を決めるものである。このことは、図4において、スピンユニットに含まれている相互作用係数が対応する矢印(相互作用)が、図示されているスピンユニットの外部のスピンから、スピンユニットの内部のスピンに向かっていることに対応している。
(1−2−4)スピンユニットの構成
スピンユニット70の一構成例を図7及び図8を用いて説明する。スピンユニット70は2つの側面をもっており、便宜上、図7及び図8に分けて説明するが、1個のスピンユニット70は図7及び図8の構成の双方を含む。図7はスピンユニット70間の相互作用を実現するための回路を示し、図8はスピンユニット70が有するメモリセルN,IS0,IS1,IU0,IU1,IL0,IL1,IR0,IR1,ID0,ID1,IF0,IF1にイジングチップ32外からアクセスするためのインタフェースであるビット線71とワード線72とに注目してスピンユニット70の構成を図示したものである。
スピンユニット70の一構成例を図7及び図8を用いて説明する。スピンユニット70は2つの側面をもっており、便宜上、図7及び図8に分けて説明するが、1個のスピンユニット70は図7及び図8の構成の双方を含む。図7はスピンユニット70間の相互作用を実現するための回路を示し、図8はスピンユニット70が有するメモリセルN,IS0,IS1,IU0,IU1,IL0,IL1,IR0,IR1,ID0,ID1,IF0,IF1にイジングチップ32外からアクセスするためのインタフェースであるビット線71とワード線72とに注目してスピンユニット70の構成を図示したものである。
スピンユニット70は、イジングモデルのスピンσi、相互作用係数Jj,i〜Jn,i及び外部磁場係数hiを保持するために、複数の1ビットのメモリセルN,IS0,IS1,IU0,IU1,IL0,IL1,IR0,IR1,ID0,ID1,IF0,IF1を備えている。なお、メモリセルIS0及びIS1、メモリセルIU0及びIU1、メモリセルIL0及びIL1、メモリセルIR0及びIR1、メモリセルID0及びID1、並びに、メモリセルIF0及びIF1は、それぞれ2個1組で役割を果たすものであるため、適宜、これらをそれぞれまとめてメモリセル対ISx,IUx,ILx,IRx,IDx又はIFxと略記する(図5参照)。
ここで、スピンユニット70はi番目のスピンを表現するものとして説明を行う。メモリセルNはスピンを表現するためのメモリセルであり、スピンの値を保持する。スピンの値はイジングモデルでは+1/−1(+1を上、−1を下とも表現する)であるが、これをメモリセルが保持可能な2値である0/1に対応させる。例えば、+1を1、−1を0に対応させる。
図5を用いて、スピンユニット70が有するメモリセル対ISx、IUx、ILx、IRx、IDx及びIFxと、図4に示したイジングモデルのトポロジとの対応関係を示す。メモリセル対ISxは外部磁場係数を記憶する。また、メモリセル対IUx,ILx,IRx,IDx及びIFxは、それぞれ相互作用係数を記憶する。具体的に、メモリセル対IUxは上側のスピン(Y軸方向で−1)、メモリセル対ILxは左側のスピン(X軸方向で−1)、メモリセル対IRxは右側のスピン(X軸方向で+1)、メモリセル対IDxは下側のスピン(Y軸方向で+1)、メモリセル対IFxは奥行き方向に接続するスピン(Z軸方向で+1ないしは−1)との相互作用係数をそれぞれ記憶する。
また、イジングモデルを有向グラフとして捉えた場合に、あるスピンから見ると他のスピンが自スピンに及ぼす影響の係数を持つことになる。自スピンが他のスピンに与える影響の係数は、それぞれの他のスピンに属する。すなわち、このスピンユニット70は最大で5個のスピンと接続される。本実施の形態のイジングチップ32では、外部磁場係数及び相互作用係数として+1/0/−1の3値に対応する。そのため、外部磁場係数及び相互作用係数を表わすためには、それぞれ2ビットのメモリセルが必要となる。
メモリセル対ISx,IUx,ILx,IRx,IDx及びIFxは、末尾の数字が0と1の2つのメモリセル(例えばメモリセル対ISxの場合にはメモリセルIS0及びIS1)の組合せで、+1/0/−1の3値を表現する。例えば、メモリセル対ISxの場合には、メモリセルIS1で+1/−1を表現し、メモリセルIS1が保持する値が1の時は+1、メモリセルIS1が保持する値が0の時には−1を表す。
これに加えて、メモリセルIS0が保持する値が0の時には外部磁場係数を0と見なし、メモリセルIS0が保持する値が1の時にはメモリセルIS1が保持する値で決まる+1/−1のいずれかを外部磁場係数とする。外部磁場係数が0の時は外部磁場係数をディセーブルしていると考えれば、メモリセルIS0に保持された値は外部磁場係数のイネーブルビットであると言うことができる(IS0=1の時に、外部磁場係数がイネーブルされる)。相互作用係数を記憶するメモリセル対IUx,ILx,IRx,IDx及びIFxも同様に係数とビットの値とを対応させている。
スピンユニット70内のメモリセルN,IS0,IS1,IU0,IU1,IL0,IL1,IR0,IR1,ID0,ID1,IF0及びIF1は、それぞれイジングチップ32の外部からリード/ライト可能でなければならない。そのために、図8に示すように、スピンユニット70はビット線71とワード線72とをそれぞれ有している。
そしてイジングチップ32では、図9に示すように、スピンユニット70が半導体基板上にタイル状に並べられてビット線71とワード線72とが接続されており、I/Oアドレスデコーダ51とI/Oドライバ52とでこれらのスピンユニット70を駆動、制御又は読み出しすることにより、一般的なSRAM(Static Random Access Memory)と同様にスピンユニット70内のメモリセルをイジングチップ32のSRAM互換インタフェース54でリード/ライトすることができるようになされている。
なお図9上で表現されているスピンユニット(NxyzというようにX軸、Y軸及びZ軸上の位置によって符号を付与している)が、3次元格子のトポロジでどの頂点に対応するかを図6に示す。3×3×2の3次元格子頂点を2次元平面上に配置するために、X軸方向の格子頂点配列の間隔にZ軸方向の格子頂点配列の各格子頂点を挿入するように配置している。すなわち、図9の2次元平面上でのY軸方向(図面下側がY軸の正方向)にはNx0z、Nx1z、Nx2zというように配置されるが、X軸方向(図面右側がX軸の正方向)にはN0y0、N0y1、N1y0、N1y1、N2y0、N2y1というように、Z軸方向座標が0と1のスピンユニットが交互に配置される。
またスピンユニット70は同時に更新を行うために、各スピンユニット70は、それぞれ相互作用を計算して次のスピンの状態を決定するための回路を独立して持っている。図7では、スピンユニット70は、外部とのインタフェースとして、信号線EN,NU,NL,NR,ND,NF,ON及びGNDを有する。信号線ENは当該スピンユニット70のスピンの更新を許可する切替え信号を入力するインタフェースである。この切替え信号でセレクタ73を制御することで、メモリセルNに保持されたスピンの値を、後述の多数決論理回路74からOR回路75を介してセレクタ73に与えられる値に更新することができる。
信号線ONは、当該スピンユニット70のスピンの値を他のスピンユニット70(図4のトポロジで隣接するスピンユニット70)に出力するインタフェースである。信号線NU,NL,NR,ND及びNFは、それぞれ他のスピンユニット70(図4のトポロジで隣接するユニット)が保持するスピンの値を入力するためのインタフェースである。信号線NUは上側のスピン(Y軸方向で−1)、信号線NLは左側のスピン(X軸方向で−1)、信号線NRは右側のスピン(X軸方向で+1)、信号線NDは下側のスピン(Y軸方向で+1)、信号線NFは奥行き方向に接続するスピン(Z軸方向で+1ないしは−1)からの入力である。
スピンユニット70では隣接スピンとの間でエネルギーを最小化するようにスピンの次状態を決定するが、それは隣接スピンと相互作用係数の積、及び、外部磁場係数を見たときに、正の値と負の値のどちらが支配的か判断することと等価である。例えば、i番目スピンσiに、スピンσj、σk、σl、σm及びσnが隣接しているとして、スピンσiの次状態は以下のように決まる。
まず、隣接スピンの値はσj=+1、σk=−1、σl=+1、σm=−1、σn=+1とし、相互作用係数はJj,i=+1、Jk,i=+1、Jl,i=+1、Jm,i=−1、Jn,i=−1、外部磁場係数hi=+1とする。このとき、相互作用係数と隣接スピンの積、及び、外部磁場係数をそれぞれ並べると、σj×Jj,i=+1、σk×Jk,i=−1、σl×Jl,i=+1、σm×Jm,i=+1、σn×Jn,i=−1、hi=+1となる。外部磁場係数は、常に値が+1のスピンとの相互作用係数と読み替えて良い。
ここで、i番目のスピンと隣接スピンとの間での局所的なエネルギーは、前述した係数にそれぞれi番目スピンの値を乗じて、さらに符号を反転させたものになる。例えば、j番目スピンとの間での局所的なエネルギーは、i番目スピンを+1とした時には−1、i番目スピンを−1としたときには+1となるので、i番目スピンを+1にするほうが、ここでの局所的なエネルギーを小さくする方向に働く。
このような局所的なエネルギーを全ての隣接スピン間と外部磁場係数について考えたときに、i番目スピンを+1/−1のどちらにしたほうがエネルギーを小さくできるかを計算する。これは、先程示した相互作用係数及び隣接スピンの積と、外部磁場係数とをそれぞれ並べたものにおいて、+1と−1のどちらが多いか数えれば良い。先程の例では、+1が4個、−1が2個である。仮に、i番目スピンを+1とすると、エネルギーの総和は−2、i番目スピンを−1とするとエネルギーの総和は+2になる。よって、+1の個数が多い時にはi番目スピンの次状態を+1とし、−1の個数が多い時にはi番目スピンの次状態を−1にするという多数決で、エネルギーを最小化するi番目スピンの次状態を決定することができる。
図7に示した論理回路77は、上述の相互作用を行うための回路である。まず、隣接スピンの状態と、相互作用係数の+1/−1を示すメモリセルIU1,IL1,IR1,ID1,IF1が保持する値との排他的論理和の否定(XNOR)をXNOR回路75で求める。これにより、その相互作用だけを見た時にエネルギーを最小化するスピンの次状態を計算することができる(+1は1、−1は0にエンコードされているものとする)。
もし、相互作用係数が+1/−1だけであれば、XNOR回路75の出力のうち+1/−1のどちらが多いかを多数決論理回路74において多数決論理で判定すればスピンの次状態を決定することができる。外部磁場係数に関しては、常に状態+1のスピンとの相互作用係数に相当するものと考えれば、単に外部磁場係数の値がスピンの次状態を決定する多数決論理回路74に入力すべき値となる。
次に、係数0の実現方法について考える。n入力の多数決論理f(I1,I2,I3,……,In)があるとき、以下の命題は真であると言える。まず、入力I1,I2,I3,……,Inの複製I’1,I’2,I’3,……,I’nがあるとする(任意のkについて、Ik=I’kである)。このとき、f(I1,I2,I3,……,In)の出力は、複製もあわせて入力したf(I1,I2,I3,……,In、I’1,I’2,I’3,……,I’n)と等しい。つまり、各入力変数をそれぞれ2個ずつ入れても、出力は不変である。さらに、入力I1、I2、I3,……,Inの他に、もう一つの入力Ixと、その反転!Ixがあるとする。このとき、f(I1,I2,I3,……,In,Ix,!Ix)の出力は、f(I1,I2,I3,……,In)と等しい。つまり、入力変数とその反転を入力すると、多数決においてその入力変数の影響をキャンセルするように働く。多数決論理のこの性質を利用して係数0を実現する。
具体的には、図7に示すように、XOR回路76を利用して、係数のイネーブルを決めるビット(メモリセルIS0,IU0,IL0,IR0,ID0及びIF0にそれぞれ保持されたビット)の値により、多数決論理回路74に、先に述べたスピン次状態の候補となる値の複製か、その反転を同時に入力する。例えば、メモリセルIS0が保持するビットの値が0の場合、メモリセルIS1が保持するビットの値と、メモリセルIS1が保持するビットの値を反転させた値が同時に多数決論理回路74に入力されるので、外部磁場係数の影響は無い(外部磁場係数が0に相当する)ことになる。また、メモリセルIS0が保持するビットの値が1の場合には、メモリセルIS1が保持するビットの値と、その値と同じ値(複製)が同時に多数決論理回路74に入力されることになる。
一方、上述したスピン間の相互作用によるエネルギー最小化で、適用されたイジングモデルの基底状態探索を実現することができるが、図10に示すように、これだけでは局所最適解に陥ってしまい、大域最適解に到達できない可能性がある。基本的に、エネルギーを小さくする方向の動きしかないため、一旦局所最適解に陥るとそこから抜け出すことができず、大域最適解に到達しない。
そこで本実施の形態においては、局所最適解から脱出するための手法として、メモリセルNが保持するスピンの値を確率的に反転させるために、スピンユニット70はインタフェースとしてRND線78を有する。そしてスピンユニット70には、上述のように対応する乱数発生器33(図2)から乱数注入線62(図3)を介してスピンアレイ50(図3)に与えられた乱数がこのRND線78を介して与えられ、この乱数がOR回路75に入力することで、スピンの値が確率的に反転される。
この際、乱数発生器33は、図11に示すように、初期温度をT0、終端温度をTE、基底状態探索の1周期をt1として、時間と共に単調減少する指数関数で表される冷却スケジュール(乱数発生器33にどのようなパターンで乱数を発生させるかを予め規定したスケジュール)の温度Ttで決まる確率でスピンの値が反転するように乱数を発生させる。
なおイジングチップ32におけるスピンユニット70間での乱数の伝達経路を図12に示す。この図12に示すように、乱数発生器33から与えられた乱数は、イジングチップ32内で横方向又は縦方向に隣接するスピンユニット70に順次伝達される。
(1−2−5)情報処理システムの論理構成
図13は、本実施の形態による情報処理システム1の論理構成を示す。この図13に示すように、本情報処理システム1の場合、管理ノード2の記憶装置13には、プログラムとして、UI(User Interface)プログラム80、問題変換プログラム81、問題分割プログラム82、動作条件生成プログラム83、イジング制御プログラム84及び解品質評価プログラム85が格納され、情報としてシステム構成情報86及び既定ソルバ動作条件87が格納されている。また各ホスト3の記憶装置23にはボード制御プログラム90及びボード構成情報91が格納され、各イジングアクセラレータボード25のメモリ31にはチップ構成情報92が格納され、操作端末5のメモリ42にはユーザプログラム93及び問題定義ファイル94が格納されている。
図13は、本実施の形態による情報処理システム1の論理構成を示す。この図13に示すように、本情報処理システム1の場合、管理ノード2の記憶装置13には、プログラムとして、UI(User Interface)プログラム80、問題変換プログラム81、問題分割プログラム82、動作条件生成プログラム83、イジング制御プログラム84及び解品質評価プログラム85が格納され、情報としてシステム構成情報86及び既定ソルバ動作条件87が格納されている。また各ホスト3の記憶装置23にはボード制御プログラム90及びボード構成情報91が格納され、各イジングアクセラレータボード25のメモリ31にはチップ構成情報92が格納され、操作端末5のメモリ42にはユーザプログラム93及び問題定義ファイル94が格納されている。
UIプログラム80は、操作端末5(図1)を利用したユーザからの要求等に応じて必要なGUIや情報等を操作端末5に表示させる機能を有するプログラムであり、問題変換プログラム81は、後述のように操作端末5から与えられる問題定義ファイル94において定義された問題(以下、これを原問題と呼ぶ)をイジングモデルに変換する機能を有するプログラムである。また問題分割プログラム82は、必要に応じて原問題から複数の副問題を生成したり、副問題をホスト3ごとの部分問題に分割する機能を有するプログラムである。
動作条件生成プログラム83は、操作端末5を用いてユーザが指定した図20について後述する解精度や制限時間などの条件と、後述する既定ソルバ動作条件87とに基づいて、ユーザの要求に合致したイジングチップ32の動作条件(以下、これをソルバ動作条件と呼ぶ)を生成する機能を有するプログラムである。またイジング制御プログラム84は、各ホスト3にそれぞれ搭載された各イジングアクセラレータボード25内の個々のイジングチップ32(図2)を制御する機能を有するプログラムである。さらに解品質評価プログラム85は、ホスト3において実行された基底状態探索により得られた解の品質を評価する機能を有するプログラムである。
システム構成情報86は、管理ノード2が管理する各ホスト3に関する情報であり、図14に示すように、ホスト数、搭載ボード数、スピンユニット総数、空スピン数及び係数範囲などの情報を含む。ホスト数は、情報処理システム1内に存在するホスト3の総数を表し、搭載ボード数は、情報処理システム1内に存在するイジングアクセラレータボード25の総数を表す。またスピンユニット総数は、情報処理システム1内に存在するスピンユニット70(図7)の総数を表し、空スピン数は、情報処理システム1内に存在するスピンユニット70のうちのそのとき使用していないスピンユニット70の数を表す。さらに係数範囲は、本情報処理システム1において基底状態探索が可能なイジングモデルの相互作用係数及び外部磁場係数の範囲を表す。本実施の形態の場合、相互作用係数及び外部磁場係数の範囲は、+1,0,−1の3値である。
既定ソルバ動作条件87は、ソルバ動作条件の初期値として予め規定された動作条件である。本実施の形態の場合、既定ソルバ動作条件として、図15に示すように、初期温度、冷却係数、終端温度、初期スピン値、繰返し回数、基底状態探索1回の所要時間が規定されている。
初期温度、冷却係数及び終端温度は、上述のようにイジングアクセラレータボード25内の各乱数発生器33(図2)を制御するためのパラメータである。また初期スピン値は、本情報処理システム1内の各スピンユニット70にそれぞれ設定すべきスピンの値を表す。ただし、これらスピンの値は、ランダムに発生させることができるため、必ずしも既定ソルバ動作条件として設定しておく必要はない。
また繰返し回数は、各イジングチップ32が1回の基底状態探索時に実行すべき相互作用動作の繰返し回数を表し、基底状態探索1回の所要時間は、1回の基底状態探索に要する時間を表す。本情報処理システム1では、繰返し回数分だけ各イジングチップ32に相互作用動作を繰り返し実行させることで1回分の基底状態探索が行われ、この基底状態探索を図20について後述する問題入力画面110において指定された制限時間が到来するまで繰り返し実行することで解を求めることになる。
一方、ボード制御プログラム90(図13)は、管理ノード2のイジング制御プログラム84からの指示を受けて自ホスト内に存在する各イジングアクセラレータボード25上の各イジングチップ32を制御する機能を有するプログラムである。
またボード構成情報91は、自ホストに搭載された各イジングアクセラレータボード25に関する情報であり、図16に示すように、搭載チップ数、スピンユニット総数、X方向スピンユニット数、Y方向スピンユニット数、Z方向スピンユニット数及び動作速度などの情報を含む。
搭載チップ数は、対応するイジングアクセラレータボード25に搭載されたイジングチップ32の個数を表し、スピンユニット総数は、そのイジングアクセラレータボード25におけるスピンユニット70の総数を表す。またX方向スピンユニット数、Y方向スピンユニット数及びZ方向スピンユニット数は、それぞれそのイジングアクセラレータボード25において表現可能なイジングモデルにおけるX方向、Y方向及びZ方向のスピンユニット数をそれぞれ表し、動作速度は、そのイジングアクセラレータボード25の動作速度を表す。
なお、図16に示すボード構成情報91は、1つのイジングアクセラレータボード25に関する情報であり、ホスト3の記憶装置23には、自ホストに搭載されたイジングアクセラレータボード25ごとのボード構成情報91が格納される。
他方、チップ構成情報92(図13)は、自イジングアクセラレータボードに搭載されたイジングチップ32に関する情報であり、図17に示すように、スピンユニット総数、X方向スピンユニット数、Y方向スピンユニット数及びZ方向スピンユニット数などの情報を含む。
スピンユニット総数は、対応するイジングチップ32に搭載されたスピンユニット70の総数を表し、X方向スピンユニット数、Y方向スピンユニット数及びZ方向スピンユニット数は、それぞれそのイジングチップ32において表現可能なイジングモデルにおけるX方向、Y方向及びZ方向のスピンユニット数をそれぞれ表す。
なお、図17に示すチップ構成情報92は、1つのイジングチップ32に関する情報であり、イジングアクセラレータボード25のメモリ31には、自イジングアクセラレータボードに搭載されたイジングチップ32ごとのチップ構成情報92が格納される。
さらにユーザプログラム93は、ユーザ操作や管理ノード2のUIプログラム80からの指示に応じて、例えば図20について後述する問題入力画面110や図21〜図23について後述する結果提示画面120〜122を表示装置44(図1)に表示する機能を有するプログラムである。
また問題定義ファイル94は、ユーザにより予め作成された、イジングモデルを利用して解くべき問題を定義したファイルである。例えば図18に示すように、線形計画問題を定義した問題定義ファイル94は目的関数及び制約条件の各情報を含む。図18は、「x≧0」及び「3x+2y<100」という制約条件のもとで「x+2y」を最小にするx及びyを求める問題である。なお、図18は、目標とする解精度(objective)を「50」%以上とし、計算時間(Timelimit)を「50sec」未満とするソルバ動作条件をも問題定義ファイル94において定義した例を示しているが、このソルバ動作条件は必ずしも問題定義ファイル94内に予め定義しておく必要はなく、図20について後述する問題入力画面110上で指定するようにしても良い。
(1−2−6)イジングモデルのデータ構造例
図19は、操作端末5から管理ノード2に与えられた問題定義ファイル94を管理ノード2の問題変換プログラム81が問題変換することにより得られるイジングモデルのデータ構造例を示す。この図19において、イジングモデルは、相互作用係数を定義する相互作用定義部100と、外部磁場係数を定義する外部磁場係数定義部101とから構成される。
図19は、操作端末5から管理ノード2に与えられた問題定義ファイル94を管理ノード2の問題変換プログラム81が問題変換することにより得られるイジングモデルのデータ構造例を示す。この図19において、イジングモデルは、相互作用係数を定義する相互作用定義部100と、外部磁場係数を定義する外部磁場係数定義部101とから構成される。
相互作用定義部100は、相互作用の元となるスピンを指定する識別子(例えば、スピンに一意な番号を付与して、それを識別子とする)、相互作用の先となるスピンの識別子、及び、相互作用係数を一組として、この組を相互作用の数だけ並べる。これは、グラフをコンピュータ上で扱う時のデータ構造である隣接リストに近い。
外部磁場係数定義部101は、外部磁場を与えるスピンを指定する識別子と、外部磁場係数とを一組として、外部磁場係数の数だけ並べる。
なお、相互作用定義部100で定義されていないスピン間の相互作用係数や、外部磁場係数101で定義されていないスピンへの外部磁場係数は0とする。つまり、デフォルト値は、相互作用係数の場合には当該スピン間には相互作用が存在しないことを示す0であり、外部磁場係数の場合いは当該スピンには外部磁場が存在しないことを示す0となる。
(1−3)操作端末に表示される各種画面
図20は、本実施の形態の情報処理システム1において、所定操作により操作端末5(図1)の表示装置44(図1)に表示される問題入力画面110の画面構成を示す。この問題入力画面110は、イジングモデルを用いて解くべき問題や、その際の条件(解精度及び制限時間)をユーザが指定するための画面である。
図20は、本実施の形態の情報処理システム1において、所定操作により操作端末5(図1)の表示装置44(図1)に表示される問題入力画面110の画面構成を示す。この問題入力画面110は、イジングモデルを用いて解くべき問題や、その際の条件(解精度及び制限時間)をユーザが指定するための画面である。
この問題入力画面110は、図20に示すように、システム利用状況表示領域111、問題種別指定領域112、問題指定領域113、解精度指定領域114、制限時間指定領域115及び実行ボタン116を備えて構成される。
そしてシステム利用状況表示領域111には、本情報処理システム1の利用状況として、現在の空きスピン数(現在利用されていないスピンセル数)が表示される。
また問題種別指定領域112には、問題種別指定欄112A及びプルダウンボタン112Bが表示される。そして問題入力画面110では、プルダウンボタン112Bをクリックすることによって、本情報処理システムにおいて解くことができる問題の種別の名称(組合せ最適化問題(「MAXCUT」)、巡回セールスマン問題(「TSP」)、画像セグメンテーション問題(「Image Segmentation」)など)が掲載されたプルダウンメニュー112Cを表示させることができ、このプルダウンメニュー112Cに表示された名称の中から該当する名称をクリックすることによってそのとき解こうとする問題種別の名称を選択することができる。このとき選択された問題種別の名称が問題種別指定欄112Aに表示される。
問題指定領域113には、問題定義ファイル94のファイル名を入力するためのテキストボックス(以下、これを問題定義ファイル名用テキストボックスと呼ぶ)113Aが表示される。そして問題入力画面110では、ユーザが予め用意した問題の問題定義ファイル94(図18)ファイル名をこの問題ファイル名用テキストボックス113Aに入力することによって、そのとき情報処理システム1が解くべき問題としてその問題を指定することができる。
解精度指定領域114は、問題指定領域113において問題定義ファイル94のファイル名を指定した問題をどの程度の精度で解くべきかという解精度をユーザが指定するための領域である。この解精度指定領域114には、かかる解精度を指定するか否かを選択するためのチェックボックス114Aと、目標とすべき解精度(以下、これを目標精度と呼ぶ)を入力するためのテキストボックス(以下、これを目標精度用テキストボックスと呼ぶ)114Bとが表示される。
また解精度指定領域114には、かかる解精度の基準となる値(以下、これを解精度基準値と呼ぶ)を指定するための領域(以下、これを解精度基準値指定領域と呼ぶ)114Cが設けられ、この解精度基準値指定領域114C内に、本情報処理システム1において解精度基準値とすることができる幾つかの値を表す文字列114D及びこれら文字列114Dとそれぞれ対応付けられた複数のトグルスイッチ114Eとが表示される。本実施の形態においては、かかる文字列114Dとして、「自明な下(上)界」、「グリーディアルゴリズム」及び「ユーザ指定の下(上)界」の3つが表示される。また「ユーザ指定の下(上)界」の下側には、実際にユーザが解精度基準値を指定するためのテキストボックス114Fが表示される。
かくしてユーザは、チェックボックス114Aをクリックすることによって当該チェックボックス114A内にチェックマーク114Gを表示させた上で、解精度基準値指定領域114Cにおいて所望する解精度基準値に対応するトグルスイッチ114Eをクリックすることによってその解精度基準値を選択(ただし「ユーザ指定の下(上)界」の場合には、さらに所望する解精度基準値をテキストボックス114Fに入力)し、さらにその目標精度を目標精度用テキストボックス114Bに入力することによって、所望する解精度を指定することができる。またユーザは、チェックボックス114Aにチェックマーク114Gを表示させないことにより解精度を指定しないこともできる。
制限時間指定領域115には、解を出すまでの制限時間をユーザが指定するためのテキストボックス(以下、これを制限時間用テキストボックスと呼ぶ115A)が表示される。かくしてユーザは、この制限時間用テキストボックス115A内に所望する制限時間を入力することによって、かかる制限時間を指定することができる。
そして問題入力画面110では、上述のようにしてそのとき解こうとする問題の種別、その問題定義ファイル94のファイル名(問題定義ファイル名)及び条件(解精度及び制限時間)を指定した後、実行ボタン116をクリックすることによって、このときユーザがその問題入力画面110上で指定した問題定義ファイル94のデータ及び条件(解精度及び制限時間)を操作端末5から管理ノード2に送信させることができる。かくして、この問題定義ファイル94及び条件を受信した管理ノード2は、当該問題定義ファイル94において定義された問題を指定された条件の元で解くようにホスト3(図1)を制御する。
一方、図21〜図23は、操作端末5に表示される結果提示画面120〜122の画面構成を示す。この結果提示画面120〜122は、上述のようにユーザが問題入力画面110において問題や条件を指定し、実行ボタン116をクリックした結果、本情報処理システム1において実行された基底状態探索処理により得られた結果をユーザに提示するための画面である。
図21は、問題入力画面110において指定された問題が指定組合せ最大カット問題(「MAXCUT」)であった場合の結果提示画面120の画面例であり、図22は、かかる問題が巡回セールスマン問題(「TSP」)であった場合の結果提示画面121の画面例である。これらの結果提示画面120,121では、解の評価指標120A、121A、基準値に対する解精度120B,121B及び問題固有の最適化結果120C,121Cがそれぞれ表示される。また図22は、問題入力画面110において指定された問題が画像セグメンテーション問題(「Image Segmentation」)であった場合の結果提示画面122の画面例である。この場合、結果提示画面122には、問題固有の最適化結果122Aが画像として表示される。
(1−4)本情報処理システムにおいて実行される各種処理
次に、本情報処理システム1において実行される各種処理の流れについて説明する。なお、以下においては、適宜、各種処理の処理主体をプログラム(「〜部」)として説明するが、実際上は、管理ノード2のCPU11(図1)やホスト3のCPU21(図1)がそのプログラムに基づいてその処理を実行することは言うまでもない。
次に、本情報処理システム1において実行される各種処理の流れについて説明する。なお、以下においては、適宜、各種処理の処理主体をプログラム(「〜部」)として説明するが、実際上は、管理ノード2のCPU11(図1)やホスト3のCPU21(図1)がそのプログラムに基づいてその処理を実行することは言うまでもない。
(1−4−1)基本的な処理及びデータの流れ
図24は、本情報処理システム1において実行されるイジングモデルの基底状態探索を行う処理(以下、これを単に基底状態探索処理と呼ぶ)に関する基本的な処理及びデータの流れを示す。
図24は、本情報処理システム1において実行されるイジングモデルの基底状態探索を行う処理(以下、これを単に基底状態探索処理と呼ぶ)に関する基本的な処理及びデータの流れを示す。
本情報処理システム1では、問題定義ファイル94(図18)において定義された原問題をイジングモデル130に変換し(SP1)、このイジングモデル130を各ホスト3において基底状態探索が可能な大きさのイジングモデルである部分問題131に分割する(SP2)。また、これと並行して、ユーザが問題入力画面110(図20)において指定した条件(解精度及び制限時間)132と、既定ソルバ動作条件87(図15)とに基づいてソルバ動作条件133を生成する(SP3)。
この後、上述のようにして作成した部分問題131を各ホスト3にそれぞれ振り分け、各ホスト3においてそれぞれ対応する部分問題の基底状態探索を行う(SP4)。この基底状態探索により得られる解(スピン配列)134は、それぞれ対応する部分問題の解となるものである。そこで、これらの部分問題の解(スピン配列)を統合して原問題の解135を生成する(SP5)。
(1−4−2)基底状態探索制御処理
図25は、上述した基底状態探索処理に関連して管理ノード2において実行される基底状態探索制御処理の流れを示す。この基底状態探索制御処理は、図20について上述した問題入力画面110においてユーザが問題定義ファイル94(図18)及び条件(解精度及び制限時間)を指定した上で実行ボタン116(図20)をクリックした結果、かかる問題定義ファイル94及び条件が操作端末5から管理ノード2に送信されることにより開始される。
図25は、上述した基底状態探索処理に関連して管理ノード2において実行される基底状態探索制御処理の流れを示す。この基底状態探索制御処理は、図20について上述した問題入力画面110においてユーザが問題定義ファイル94(図18)及び条件(解精度及び制限時間)を指定した上で実行ボタン116(図20)をクリックした結果、かかる問題定義ファイル94及び条件が操作端末5から管理ノード2に送信されることにより開始される。
かかる問題定義ファイル94及び条件を受信した管理ノード2では、まず、問題変換プログラム81(図13)が原問題を図19について上述したデータ構造のイジングモデルに変換する(SP10)。
続いて、動作条件生成プログラム83(図13)が、既定ソルバ動作条件87(図15)と、操作端末5から送信されてきた条件(解精度及び制限時間)とに基づいて、そのとき実行する基底状態探索処理のソルバ動作条件を生成する(SP11)。具体的に、動作条件生成プログラム83は、既定ソルバ動作条件87において規定された基底状態探索1回の所要時間が問題入力画面110においてユーザにより指定された制限時間以上である場合には、基底状態探索1回の所要時間が当該制限時間未満となるように、既定ソルバ動作条件87において規定されている相互作用の繰返し回数を減らしたソルバ動作条件を生成する。
次いで、問題分割プログラム82が、原問題の係数範囲が各ホスト3内のイジングアクセラレータボード25に搭載されたイジングチップ32で対応可能な係数範囲よりも大きいか否かを判定し(SP12)、肯定結果を得た場合には、原問題から複数の副問題を生成する副問題生成処理を実行する(SP13)。
この後、問題分割プログラム82は、ステップSP13で生成した副問題の中から1つの副問題を選択する(SP14)。さらに問題分割プログラム82は、ステップSP12で否定結果を得た場合には原問題を、またステップSP12で肯定結果を得た場合にはステップSP14で選択した副問題をホスト3単位の部分問題に分割する(SP15)。
次いで、イジング制御プログラム84(図13)が、必要な各ホスト3に部分問題及びソルバ動作条件をそれぞれ送信し(SP16)、この後、これらのホスト3に対して計算開始指示を送信する(SP17)。この結果、この計算開始指示に応じて各ホスト3においてイジングモデルの基底状態探索処理が開始され、この後、この基底状態探索処理の処理結果が管理ノード2に送信される。
管理ノード2では、上述のように各ホスト3からそれぞれ送信される基底状態探索処理の処理結果をイジング制御プログラム84が受け取り(SP18)、この後、ステップSP13で副問題を生成している場合には、すべての副問題についての結果(すべての副問題の解)を得たか否かを判断する(SP19)。そして、この判断で否定結果を得た場合には、処理をステップSP14に戻し、この後、ステップSP19で肯定結果を得るまでステップSP14〜ステップSP19の処理を繰り返す。
やがてステップSP13で生成したすべての副問題の解を得ることによりステップSP19で肯定結果を得た場合や、そもそも副問題を生成していない場合には、イジング制御プログラム84が、上述のようにして得られた各ホスト3からの基底状態探索処理の結果を統合することにより原問題の解を算出し、算出した原問題の解を解品質評価プログラム85(図13)が評価する(SP20)。また解品質評価プログラム85は、ステップSP20で得た評価結果が、図20について上述した問題入力画面110においてユーザにより指定された解精度よりも良いか否かを判断する(SP21)。
そして、この判断で肯定結果が得られた場合、UIプログラム80(図13)が、図21〜図23について上述した形態の結果提示画面120〜122を操作端末5に表示させる(SP26)。以上により、この基底状態探索制御処理が終了する。
これに対して、ステップSP21の判断で否定結果が得られた場合、動作条件生成プログラム83(図13)がソルバ動作条件を更新する(SP22)。具体的に、動作条件生成プログラム83は、図26に示すように、図11について上述した冷却スケジュールにおける冷却係数を1に漸近するように増加させ、かつ、図27に示すように、1回の基底状態探索時に実行すべき相互作用の回数を増やすようにソルバ動作条件を更新する。冷却スケジュールにおける冷却係数が1に近いほど温度(つまりスピンが反転する確率)の低下が遅くなるため、このようにソルバ動作条件を更新することによって、より多くのスピン状態の組合せを探索することができ、この結果として良い解に到達し易くすることができる。
続いて、解品質評価プログラム85が、ステップSP20の評価結果に基づいて、今回得られた解がこれまでに得られた解よりも良いか否かを判断する(SP23)。そして解品質評価プログラム85は、この判断で否定結果を得るとステップSP25に進み、これに対して肯定結果を得ると現在の解をメモリ12に一時的に(図1)に格納した後に(SP24)、本基底状態探索制御処理を開始してから現在までの経過時間がユーザにより指定された制限時間を超過したか否かを判断する(SP25)。
この判断で否定結果が得られた場合、処理がステップSP17に戻され、この後、ステップSP17〜ステップSP25の処理が繰り返される。この結果、管理ノード2のメモリ12に格納された原問題の解が適宜更新されながら各ホスト3において基底状態探索処理が繰り返し行われ、繰り返し行われた基底状態探索処理により得られた原問題の解の中から最も評価結果の良い解が管理ノード2のメモリ12に保持されることになる。
そして、やがて本基底状態探索制御処理を開始してからの経過時間がユーザにより指定された制限時間を超過することによりステップSP25で肯定結果が得られると、UIプログラム80が、そのときメモリ12に格納されている原問題の解を操作端末5に送信することにより、図21〜図23について上述した形態の結果提示画面120〜122を操作端末5の表示装置44(図1)に表示させ(SP26)、この後、この基底状態探索制御処理が終了する。
(1−4−3)副問題生成処理
(1−4−3−1)副問題生成処理
図28は、上述の基底状態探索制御処理(図25)のステップSP13において問題分割プログラム82(図13)により実行される副問題生成処理を示す。問題分割プログラム82は、この図28に示す処理手順に従って複数の副問題を生成する。
(1−4−3−1)副問題生成処理
図28は、上述の基底状態探索制御処理(図25)のステップSP13において問題分割プログラム82(図13)により実行される副問題生成処理を示す。問題分割プログラム82は、この図28に示す処理手順に従って複数の副問題を生成する。
なお、以下においては、適宜、基底状態探索制御処理のステップSP10において得られた原問題のイジングモデルにおけるi番目スピンからj番目スピンへの相互作用係数を「原問題のJi,j」、i番目スピンの外部磁場係数を「原問題のhi」と呼ぶものとする。
問題分割プログラム82は、基底状態探索制御処理のステップSP13に進むとこの図28に示す副問題生成処理を開始し、まず、原問題のJi,j及び原問題のhiを正規化する(SP30)。原問題の相互作用係数と外部磁場係数は様々な値を含んでいるが、相互作用係数と外部磁場係数の両方を通して絶対値が最大の係数(これを係数深度と呼ぶ)で全ての係数を割って、係数を−1〜+1に正規化する。なお、相互作用係数と外部磁場係数をそれぞれ別に正規化しても良い。この場合、相互作用係数については、絶対値が最大の相互作用係数を係数深度として、各相互作用係数を係数深度で割ることによりそれぞれ正規化し、外部磁場係数については、絶対値が最大の外部磁場係数を係数深度として、各外部磁場係数を係数深度で割ることによりそれぞれ正規化する。
続いて、問題分割プログラム82は、生成する副問題の個数を決定する(SP31)。副問題の個数は、計算量と計算精度のトレードオフの関係にあることを考慮して決定する。すなわち、副問題の個数を多くすることで、より近似度の高い(大域最適解に近い)解が得られる可能性が高くなる半面、多くの副問題の基底状態探索を行わなければならないため、計算量は増加する。情報処理システム1の基底状態探索の処理速度や、応用上生じる制約時間、及び、要求される解精度から副問題の個数を決定する必要がある。一般的には、同じ近似度で解を求めるために必要な副問題の個数は、問題のサイズ(スピン数、相互作用の数、及び、外部磁場の数)と、ステップSP30で求めた係数深度に比例して増加する傾向にある。
この後、問題分割プログラム82は、ステップSP32〜SP36において、ステップSP31で決定した副問題の個数分だけ、副問題を生成する処理を行う。実際上、問題分割プログラム82は、まず変数iを1に設定し(SP32)、変数iと同じ値のi番目のスピンに対する副問題の相互作用係数、及び、外部磁場係数を決定し(SP33)、副問題データとして書き出す(SP34)。さらに問題分割プログラム82は、変数iを1増加させた値に更新し(SP35)、変数iの値が副問題数よりも大きいか否かを判定する(SP36)。そして問題分割プログラム82は、変数iの値が副問題数よりも小さい場合にはSP33に戻り、この後、変数iの値が副問題数よりも大きくなるまでステップSP33〜SP36の処理を繰り返す。
ステップSP32、ステップSP35及びステップSP36は副問題の個数分だけステップSP33〜ステップSP34を実行するためのループであるが、このループはループ内で前後の依存関係を持たないので、並列に実行可能な計算機環境上ではループ展開して用意に並列実行可能である。つまり、十分な並列性を有する計算機環境があれば、副問題の個数にかかわらず、副問題の生成は定数時間で行うことができ、大規模な問題に対してもスケーラビリティを有する。
(1−4−3−2)副問題相互作用係数生成処理
図29は、上述の副問題生成処理のステップSP33において問題分割プログラム82により実行される副問題相互作用係数生成処理の処理内容を示す。問題分割プログラム82は、この図29に示す処理手順に従って、正規化後の原問題(イジングモデル)の相互作用係数から副問題の相互作用係数を生成する。
図29は、上述の副問題生成処理のステップSP33において問題分割プログラム82により実行される副問題相互作用係数生成処理の処理内容を示す。問題分割プログラム82は、この図29に示す処理手順に従って、正規化後の原問題(イジングモデル)の相互作用係数から副問題の相互作用係数を生成する。
実際上、問題分割プログラム82は、副問題生成処理のステップSP33に進むと、この図29に示す相互作用係数生成処理を開始し、まず、i番目のスピンに対応する変数iを初期化(0に設定)し(SP40)、この後、変数iの値が全スピン数よりも小さいか否かを判定する(SP41)。そして問題分割プログラム82は、この判断で肯定結果を得ると、j番目のスピンに対応する変数jを初期化し(SP42)、この後、変数jの値が全スピン数よりも小さいか否かを判定する(SP43)。
問題分割プログラム82は、この判断で肯定結果を得ると、変数i及び変数jが同じ値であるか否かを判定する(SP44)。そして問題分割プログラム82は、この判断で肯定結果を得た場合には、副問題のi番目スピンからj番目スピンへの相互作用係数Ji,jを0に設定し(SP45)、これに対して否定結果を得た場合には、原問題の相互作用係数Ji,jから副問題の相互作用係数Ji,jを生成する(SP46)。そして問題分割プログラム82は、この後、変数jの値を1増加させる(SP47)。
この後、問題分割プログラム82は、ステップSP43に戻り、この後、ステップSP43以降の処理を繰り返す。そして問題分割プログラム82は、やがてすべてのスピンについてステップSP43〜ステップSP47の処理を実行し終えることによりステップSP43で否定結果を得ると、変数iの値を1増加させ(SP48)、この後、ステップSP41に戻って、当該ステップSP41以降の処理を繰り返す。
そして問題分割プログラム82は、やがてすべてのスピンについてステップSP41〜ステップSP48の処理を実行し終えることによりステップSP41で否定結果を得ると、この副問題相互作用係数生成処理を終了する。
以上の副問題相互作用係数生成処理(図29)において、ステップSP40〜ステップSP48は相互作用係数Ji,jを2次元平面上に行列のように並べたときに、それを端から順次走査していくような動きをする。なお、外側ループの変数がi、内側ループの変数がjであることから、あるi,jが与えられた時にi>jであれば、j,iはすでに通過済み(処理済み)であることに留意されたい。
相互作用は互いに異なる2つのスピン間にのみ存在するので、相互作用係数を順に走査する中で、i=jであるような相互作用係数(例えばJ1,1)は無いはずである。そこで、上述のようにステップSP44〜ステップSP45でi=jとなる相互作用係数は0に設定する。それ以外のi,jの組み合わせについては、ステップSP46で原問題のJi,jから副問題のJi,jを生成する。
なお副問題相互作用係数生成処理のステップSP46の具体的な処理の一例を図30に示す。この図30は、原問題の相互作用係数のうち、正の係数のものを+1/0で模擬し、負の係数のものを−1/0で模擬するように副問題の相互作用係数を生成する場合の処理手順である。
実際上、問題分割プログラム82は、副問題相互作用係数生成処理のステップSP46において、まず、与えられた変数i,jで指定される原問題のJi,jが、有向グラフとして与えられているものか、無向グラフの辺(無向辺)として与えられているものかの判定を行う(SP50)。ここでは、原問題のJi,j及びJj,iが同一の値であれば(Ji,j=Jj,i)、無向辺であると判定する。なお、有向グラフの辺(有向辺)場合には、i番目スピンからj番目スピンへの相互作用と、j番目スピンからi番目スピンへの相互作用とが異なる、又は、どちらか一方の相互作用しかないため、原問題のJi,jとJj,iは異なる値をとる(Ji,j≠Jj,i)。
図30の処理では、ステップSP53〜ステップSP58において、原問題のJi,jの大きさに比例した確率で、+1ないしは−1を副問題の係数として発生させる。このとき乱数を用いるため、副問題のJi,jとJj,iは必ずしも同じ値にならない。原問題が有向辺で、もともと原問題のJi,jとJj,iが異なる値であれば、副問題のJi,jとJj,iが異なることは必然性がある。しかし、原問題が無向辺であるときには、副問題のJi,jとJj,iは同一の値になるべきである。
そこで、ステップSP50で肯定結果を得た場合には、原問題のJj,iから副問題のJj,iを生成する処理が既に完了しているので(i>jを満たすときには、j,iという組み合わせはすでに通過済みである)、問題分割プログラム82は、既に生成済みの副問題のJj,iの値を、副問題のJi,jの値として出力し(SP51)、この後、この図30の処理を終了する。
これに対して、問題分割プログラム82は、ステップSP50で否定結果を得た場合(つまり無向辺ではないか、無向辺であったとしても1回目の副問題の係数生成であった場合)には、以下のステップSP52〜ステップSP58の処理を実行する。
すなわち問題分割プログラム82は、原問題のJj,iが0であるか否かを判定する(SP52)。そして問題分割プログラム82は、この判断で肯定結果を得ると、副問題のJj,iも0とし(SP55)、この後、この図30の処理を終了する。
これに対して問題分割プログラム82は、ステップSP52の判断で否定結果を得ると、原問題のJj,iの値の大きさに応じた確率で、原問題のJj,iが正であれば+1又は0を、原問題のJj,iが負であれば−1又は0を副問題のJj,iとする処理をステップSP53〜ステップSP58で行う。
具体的に、問題分割プログラム82は、0以上1以下の値域を持つ乱数rを生成し(SP53)、この後、ステップSP53で生成した乱数rが原問題のJj,iの絶対値以下であるか否かを判断する(SP54)。
そして問題分割プログラム82は、この判断で否定結果を得ると、副問題のJj,iを0とし(SP55)、この後、この処理を終了する。
これに対して、問題分割プログラム82は、ステップSP54の判断で肯定結果を得ると、副問題のJj,i正の値であるか否かを判定する(SP56)。そして問題分割プログラム82は、この判断で肯定結果を得た場合には、副問題のJj,iを+1とする一方(SP57)、否定結果を得た場合には、副問題のJj,iを−1とし(SP58)、この後、この処理を終了する。
このようにして原問題の係数の大きさに比例した確率で、+1/0、又は、−1/0の副問題の相互作用係数を生成することができる。
以上のアルゴリズムで、原問題の相互作用係数のうち、正の係数を+1/0で模擬し、負の係数を−1/0で模擬するように副問題の相互作用係数を生成することができる。なお、この方法は、生成された複数の副問題の各辺の相互作用係数(副問題のJj,i)の期待値ないしは平均値が、正規化された原問題のJj,iの値になるように、副問題のJj,iに+1/0/−1の値を与えているとも言うことができる。
(1−4−3−3)副問題外部磁場係数生成処理
一方、図31は、上述の副問題生成処理(図28)のステップSP33において、上述の副問題相互作用係数生成処理(図29)の前後、又は、副問題相互作用係数生成処理と並行して問題分割プログラム82により実行される副問題外部磁場係数生成処理の処理内容を示す。問題分割プログラム82は、この図31に示す処理手順に従って、正規化後の原問題(イジングモデル)の外部磁場係数から副問題の外部磁場係数を生成する。
一方、図31は、上述の副問題生成処理(図28)のステップSP33において、上述の副問題相互作用係数生成処理(図29)の前後、又は、副問題相互作用係数生成処理と並行して問題分割プログラム82により実行される副問題外部磁場係数生成処理の処理内容を示す。問題分割プログラム82は、この図31に示す処理手順に従って、正規化後の原問題(イジングモデル)の外部磁場係数から副問題の外部磁場係数を生成する。
実際上、問題分割プログラム82は、この副問題外部磁場係数生成処理を開始すると、まず、スピンの番号を表す変数iを0に設定し(SP60)、この後、変数iの値が全スピン数よりも小さいか否かを判断する(SP61)。
問題分割プログラム82は、この判断で肯定結果を得ると、原問題のhiから副問題のhiを生成し(SP62)、変数iの値を1増加させた値に更新した後に(SP63)、ステップSP61に戻る。そして、問題分割プログラム82は、この後、変数iの値が全スピン数よりも大きくなるまでステップSP61〜ステップSP63の処理を繰り返す。
そして問題分割プログラム82は、やがて変数iの値が全スピン数よりも大きくなると、この副問題外部磁場係数生成処理を終了する。
なおステップSP62の処理の一例を図32に示す。この図32は、原問題の外部磁場係数のうち、正の係数のものを+1/0で模擬し、負の係数のものを−1/0で模擬するように副問題の係数を生成する場合の処理手順である。
実際上、問題分割プログラム82は、副問題外部磁場係数生成処理のステップSP62に進むと、まず、原問題のhiが0であるかを判定する(SP70)。そして問題分割プログラム82は、この判断で肯定結果を得ると、副問題のhiも0とし(SP71)、この後、この処理を終了する。
これに対して、問題分割プログラム82は、ステップSP70の判断で否定結果を得ると、原問題のhiの値の大きさに応じた確率で、原問題のhiが正であれば+1又は0を、原問題のhiが負であれば−1又は0を副問題のhiとして出力する処理をステップSP72〜ステップSP76で行う。
具体的に、問題分割プログラム82は、0以上1以下の値域を持つ乱数rを生成し(SP72)、この後、ステップSP72で生成した乱数rが原問題のhiの絶対値以下であるか否かを判断する(SP73)。
そして問題分割プログラム82は、この判断で否定結果を得ると、副問題のhiを0とし(SP71)、この後、この処理を終了する。
これに対して、問題分割プログラム82は、ステップSP73の判断で肯定結果を得ると、原問題のhiが正であるか否かを判断する(SP74)。そして問題分割プログラム82は、この判断で肯定結果を得た場合には、副問題のhiを+1とする一方(SP75)、否定結果を得た場合には、副問題のhiを−1とし(SP76)、この後、この処理を終了する。
このようにして、原問題の外部磁場係数の大きさに比例した確率で、+1/0、又は、−1/0の副問題の外部磁場係数を生成することができる。
以上のアルゴリズムで、原問題の外部磁場係数のうち、正の係数を+1/0で模擬し、負の係数を−1/0で模擬するように副問題の外部磁場係数を生成することができる。なお、この方法は、生成された複数の副問題の各辺の外部磁場係数(副問題のhi)の期待値又は平均値が、正規化された原問題のhiの値になるように、副問題のhiに+1/0/−1の値を与えているとも言うことができる。
(1−4−4)イジングアクセラレータボード制御処理
図33は、図25について上述した基底状態探索制御処理のステップSP16において管理ノード2から送信された、部分問題及びソルバ動作条件と、上述の計算開始指示とを受信したホスト3のボード制御プログラム90(図13)により実行されるイジングアクセラレータボード制御処理の処理手順を示す。
図33は、図25について上述した基底状態探索制御処理のステップSP16において管理ノード2から送信された、部分問題及びソルバ動作条件と、上述の計算開始指示とを受信したホスト3のボード制御プログラム90(図13)により実行されるイジングアクセラレータボード制御処理の処理手順を示す。
ボード制御プログラム90は、管理ノード2から部分問題及びソルバ動作条件と、上述の計算開始指示とが与えられると、この図33に示すイジングアクセラレータボード制御処理を開始し、まず、管理ノード2から与えられた部分問題を各イジングアクセラレータボード25にそれぞれ対応させて分割する(SP80)。なお、以下においては、部分問題を分割することにより得られた各問題をそれぞれ分割部分問題と呼ぶものとする。
続いて、ボード制御プログラム90は、各イジングアクセラレータボード25に対して、それぞれ対応する分割部分問題と、そのとき管理ノード2から与えられたソルバ動作条件とを送信し(SP81)、この後、各イジングアクセラレータボード25に対して分割部分問題についての計算を実行すべき旨の指示(以下、これを計算実行指示と呼ぶ)を与える(SP82)。
次いで、ボード制御プログラム90は、かかる計算実行指示に応じて実行された計算処理の処理結果を各イジングアクセラレータボード25からそれぞれ読み出し(SP83)、読み出した各イジングアクセラレータボード25の計算結果を統合して対応する部分問題の解を生成する(SP84)。そしてボード制御プログラム90は、このようにして生成した部分問題の解を管理ノード2に送信し(SP85)、この後、このイジングアクセラレータボード制御処理を終了する。
(1−4−5)イジングチップ制御処理
一方、図34は、図33について上述したイジングアクセラレータボード制御処理のステップSP82においてボード制御プログラム90から送信された計算実行指示を受信したイジングアクセラレータボード25のコントローラ30(図2)により実行されるイジングチップ制御処理の処理手順を示す。
一方、図34は、図33について上述したイジングアクセラレータボード制御処理のステップSP82においてボード制御プログラム90から送信された計算実行指示を受信したイジングアクセラレータボード25のコントローラ30(図2)により実行されるイジングチップ制御処理の処理手順を示す。
コントローラ30は、ボード制御プログラム90から計算実行指示が与えられると、この図34に示すイジングチップ制御処理を開始し、まず、ボード制御プログラム90から与えられた分割部分問題に応じた係数を自イジングアクセラレータボードに搭載された各イジングチップ32にそれぞれ設定する(SP90)。
続いて、コントローラ30は、ボード制御プログラム90から与えられたソルバ動作条件を参照して初期スピン値の指定があるか否かを判断する(SP91)。そしてコントローラ30は、この判断で肯定結果を得ると、指定された初期スピン値を各イジングチップ32にそれぞれ設定し(SP92)、この後、ステップSP94に進む。
これに対して、コントローラ30は、ステップSP91の判断で否定結果を得ると、対応する分割部分問題に応じた複数のランダムなスピン値をそれぞれ生成し、生成したスピン値をそれぞれ各イジングチップ32にそれぞれ設定する(SP93)。
次いで、コントローラ30は、ボード制御プログラム90から与えられたソルバ動作条件に応じた冷却スケジュールのパラメータを各乱数生成器33(図2)にそれぞれ設定し(SP94)、この後、当該ソルバ動作条件において指定された繰返し回数分の相互作用動作を実行するよう、各イジングチップ32をそれぞれ制御する(SP95)。そしてコントローラ30は、ソルバ動作条件において指定された繰返し回数分の相互作用動作を実行し終えると、その時点における各イジングチップ32内のスピン配列を読み出し、これをホスト21のCPU21(図1)に送信した後、このイジングチップ制御処理を終了する。
(1−4−6)チップ境界相互作用計算処理
図35は、精度良く基底状態を求めるために、イジングアクセラレータボード25において基底状態探索が実行されている間、管理ノード2のイジング制御プログラム84(図13)により適宜実行されるチップ境界相互作用計算処理を示す。
図35は、精度良く基底状態を求めるために、イジングアクセラレータボード25において基底状態探索が実行されている間、管理ノード2のイジング制御プログラム84(図13)により適宜実行されるチップ境界相互作用計算処理を示す。
本情報処理システム1では、上述のように各ホスト3内のイジングアクセラレータボード25において、単一のイジングチップ32に収まらないサイズの問題を解く際、複数のイジングチップ32に問題を分割して、各イジングチップ32において独立して基底状態探察を行う。
しかしながら、このような方法によると、イジングチップ32内に図9のように格子状に並べられたスピンユニット70のうち、最外周の各スピンユニット70がそれぞれ値を保持するスピン(以下、これをチップ境界のスピンと呼ぶ)については、図4について上述したイジングモデルにおいて隣接するスピンの値が他のイジングチップ32内のスピンユニット70に保持されているため、正しく相互作用を実行することができず、この結果、情報処理システム1全体としてそのとき対象としているイジングモデルの基底状態探索を精度良くすることができないという問題がある。
そこで、本情報処理システム1では、管理ノード2のイジング制御プログラム84(図13)が、適宜、各イジングアクセラレータボード25について、図35に示す処理手順に従って、チップ境界の各スピンの値をそれぞれ読み出して相互作用計算を行い、計算結果を各イジングチップ32に書き戻すチップ境界相互作用計算処理を実行する。
実際上、イジング制御プログラム84は、イジングアクセラレータボード25において所定回数の相互作用が完了すると、この図35に示すチップ境界相互作用計算処理を開始し、まず、チップ境界のスピンの中から1つのスピンを選択し(SP100)、選択したスピン(以下、これを選択スピンと呼ぶ)の相互作用係数及び外部磁場係数の値を対応するイジングチップ32から読み出す(SP101)。
続いて、イジング制御プログラム84は、その選択スピンの値を対応するイジングチップ32から読み出と共に(SP102)、図4について上述したスピンモデルにおいて選択スピンに隣接する各スピン(以下、これらを隣接スピンと呼ぶ)の値を対応するイジングチップ32からそれぞれ読み出す(SP103)。
次いで、イジング制御プログラム84は、ステップSP101で取得した選択スピンについての相互作用係数及び外部磁場係数と、ステップSP102で取得した選択スピンの値と、ステップSP103で取得した選択スピンの各隣接スピンの値とに基づいて、選択スピンの次の状態(0又は1)を計算する(SP104)。
さらにイジング制御プログラム84は、ステップSP104の計算結果を対応するイジングチップ32の対応するスピンユニット70のメモリセルN(図7参照)に書き込み(S105P)、この後、そのイジングアクセラレータボード25内に存在するすべてのチップ境界のスピンについて同様の処理(ステップSP101〜ステップSP105)を実行し終えたか否かを判断する(SP106)。
そしてイジング制御プログラム84は、この判断で否定結果を得るとステップSP100に戻り、この後、ステップSP100で選択するスピンを未処理の他のチップ境界のスピンに順次切り替えながら、ステップSP100〜ステップSP106の処理を繰り返す。
そしてイジング制御プログラム84は、やがてそのイジングアクセラレータボード25内に存在するすべてのチップ境界のスピンについてステップSP101〜ステップSP105の処理を実行し終えることによりステップSP106で肯定結果を得ると、このチップ境界相互作用計算処理を終了する。
なおステップSP101〜ステップSP103におけるイジング制御プログラム84によるイジングチップ32からの各係数(相互作用係数及び外部磁場係数)並びにスピンの値の読み出しや、ステップSP105におけるイジング制御プログラム84によるイジングチップ32へのスピンの値の書き込みは、SRAMアクセスにより行うことができる。
(1−5)操作端末に実装されたAPI
図36は、本実施の形態による情報処理システム1の操作端末5に実装されたAPI(Application Programming Interface)140の構成を示す。この図36に示すように、操作端末5にはユーザプログラム93が各種コマンドや情報を管理ノード2やホスト3との間でやり取りするためのAPI140として、問題変換部141、解品質評価部142、システム使用状況取得部143、係数値入出力部144、スピン値入出力部145、相互作用開始部146及び相互作用条件設定部148を備える。
図36は、本実施の形態による情報処理システム1の操作端末5に実装されたAPI(Application Programming Interface)140の構成を示す。この図36に示すように、操作端末5にはユーザプログラム93が各種コマンドや情報を管理ノード2やホスト3との間でやり取りするためのAPI140として、問題変換部141、解品質評価部142、システム使用状況取得部143、係数値入出力部144、スピン値入出力部145、相互作用開始部146及び相互作用条件設定部148を備える。
問題変換部141は、図20について上述した問題入力画面110や他の手法を用いてユーザにより指定された問題種別や問題定義ファイルを管理ノード2の問題変換プログラム81に伝達する機能を有するスレッドであり、解品質評価部142は、図21及び図22について上述した結果提示画面や他の所定画面に表示すべき解の評価指標120A、121Aと、基準値に対する解精度120B,121Bとを管理ノード2の解品質評価プログラム85から取得する機能を有するスレッドである。またシステム使用状況取得部143は、問題入力画面110のシステム利用状況表示領域111(図20)や他の所定画面に表示する本情報処理システム1の利用状況を管理ノード2のシステム構成情報86から取得する機能を有するスレッドである。
一方、係数値入出力部144及びスピン値入出力部145は、所定の入力画面を用いてユーザによりイジングモデルの係数(相互作用係数及び外部磁場係数)やスピンの値が指定された場合に、これら係数やスピンの値を管理ノード2を介してホスト3のボード制御プログラム90に伝達する機能を有するスレッドである。
また相互作用開始部146は、例えば問題入力画面110の実行ボタン116(図20)がクリックされた場合や、他の所定操作によりイジングモデルの基底状態探索処理の開始指示がユーザから与えられた場合に、これを管理ノード2を介してホスト3のボード制御プログラム90に通知する機能を有するスレッドである。さらに相互作用条件設定部147は、問題入力画面110や他の画面を用いてユーザにより指定された少なくとも解精度及び制限時間を含む相互作用実行時の条件を管理ノード2を介してホスト3のボード制御プログラム90に伝達する機能を有するスレッドである。
(1−6)本実施の形態の効果
以上のように本実施の形態による情報処理システム1では、ユーザが問題入力画面110(図20)で問題と、その問題を解く際の条件(解精度及び制限時間)とを指定することができ、この条件に従って管理ノード2の制御の元に各ホスト3においてその問題のイジングモデルの基底状態探索が行われる。
以上のように本実施の形態による情報処理システム1では、ユーザが問題入力画面110(図20)で問題と、その問題を解く際の条件(解精度及び制限時間)とを指定することができ、この条件に従って管理ノード2の制御の元に各ホスト3においてその問題のイジングモデルの基底状態探索が行われる。
従って、本情報処理システム1によれば、イジングチップ32を用いて、ユーザが所望する条件の元でユーザが指定した問題の解を得ることができ、かくして利便性の高い情報処理システムを実現できる。
(2)第2の実施の形態
(2−1)本実施の形態による情報処理システムの構成
図1との対応部分に同一符号を付して示す図37は、第2の実施の形態による情報処理システム150を示す。この情報処理システム150は、過去に解いた問題の解を利用して新たな問題を解く機能を備える点を除いて第1の実施の形態による情報処理システム1と同様に構成されている。
(2−1)本実施の形態による情報処理システムの構成
図1との対応部分に同一符号を付して示す図37は、第2の実施の形態による情報処理システム150を示す。この情報処理システム150は、過去に解いた問題の解を利用して新たな問題を解く機能を備える点を除いて第1の実施の形態による情報処理システム1と同様に構成されている。
実際上、本実施の形態の情報処理システム150の場合、ネットワーク4には、管理ノード151及び複数のホスト3に加えて記憶装置152が接続されている。この記憶装置152は、RAID(Redundant Arrays of Inexpensive Disks)や、ハードディスク装置又はSSDを備える専用のサーバ装置等から構成される。そして記憶装置152には、本情報処理システム150が過去に解いた問題の各係数(相互作用係数及び外部磁場係数)及びその解(スピン配列)がそれぞれ係数データ153及びスピンデータ154として登録されたデータベース(以下、これを過去問題データベースと呼ぶ)155が格納されている。
一方、管理ノード151に実装されたイジング制御プログラム156(図13)は、新たな問題が投入されると、その新たな問題のイジングモデルと近い形態の問題を過去問題データベース155上で検索する。そしてイジング制御プログラム156は、そのような問題(過去に解いた問題)をかかる検索により検出した場合には、過去問題データベース155に登録されているその問題の解(スピン配列)をかかる新たな問題における初期のスピン配列として設定する。
ここで、このように新たに投入された問題とイジングモデルの形態が近い過去の問題の解を新たな問題の初期のスピン配列として設定した場合、初期の段階で新たな問題のイジングモデルが基底状態に近い状態にあると推測される。一方で、図11について上述した冷却スケジュールの初期温度が高いと、基底状態探索の初期時においてスピンの反転が頻繁に発生するため、新たな問題のイジングモデルの状態が基底状態から離れて行ってしまうおそれがある。
そこで本情報処理システム150において、イジング制御プログラム156は、新たに投入された問題とイジングモデルの形態が近い過去の問題の解を新たな問題の初期のスピン配列として設定した場合には、図38に示すように、冷却スケジュールの初期温度を、ユーザが図20について上述した問題入力画面110において指定した解精度に応じて、当該解精度が得られる程度の温度に下げると共に、1回の基底状態探索における相互作用動作の繰返し回数を減らすようソルバ動作条件を更新する。これにより本情報処理システム150では、新たな問題を迅速かつ精度良く求めることができるようになされている。
図39は、本実施の形態による情報処理システム150において、基底状態探索処理に関連して管理ノード151において実行される本実施の形態による基底状態探索制御処理の流れを示す。この基底状態探索制御処理は、問題入力画面110(図20)においてユーザが問題定義ファイル94及び条件(解精度及び制限時間)を指定した上で実行ボタン116をクリックした結果、これら問題定義ファイル94のデータ及び条件が操作端末5から管理ノード151に通知されることにより開始される。
かかる情報を受信した管理ノード151では、ステップSP110及びステップSP111が、図25について上述した第1の実施の形態による基底状態探索処理のステップSP10及びステップSP11と同様に処理される。
続いて、イジング制御プログラム156が、過去問題データベース155に格納されている過去の各問題のイジングモデルの係数の値と、ステップSP110において得られた新たな問題のイジングモデルの係数の値とを比較し(SP112)、比較結果に基づいて、過去の問題の中に、新たな問題のイジングモデルと近い形態のイジングモデルの問題があるか否かを判断する(SP113)。
具体的に、ステップSP112において、イジング制御プログラム156は、まず、過去問題データベース155に係数データ153等が登録されている過去の各問題の中に、そのイジングモデルの頂点の数及び係数の数と、新たな問題のイジングモデルの頂点の数及び係数の数との差が予め定められた閾値以内のイジングモデルが存在するか否かを判定する。そしてイジング制御プログラム156は、過去の各問題の中にそのような問題が存在する場合には、さらに当該過去の問題のイジングモデルと、今回の問題のイジングモデルとの同型性判定を行い、その判定結果に基づいて過去の問題の中に、新たな問題のイジングモデルと近い形態のイジングモデルの問題があるか否かを判断する。
そして、ステップSP113で否定結果が得られた場合には、ステップSP116に処理が移る。これに対して、ステップSP113で肯定結果が得られた場合には、イジング制御プログラム156が、過去の問題のうち、そのイジングモデルが新たな問題のイジングモデルと最も近いと判定された問題の解(スピン配列)を過去問題データベース155から読み出し、読み出した解を新たな問題のイジングモデルにおける初期スピン値に設定する(SP114)。
またイジング制御プログラム156は、これと併せて冷却スケジュールの初期温度を、ユーザが問題入力画面110(図20)において指定した解精度に応じた値だけ下げると共に、基底状態探索時における相互作用動作の繰返し回数を減らすようステップSP111で生成したソルバ動作条件を更新する(SP115)。
この後、管理ノード151では、図25について上述した第1実施の形態による基底状態探索制御処理のステップSP12〜ステップSP25と同様にしてステップSP116〜ステップSP129が処理される。これにより情報処理システム150のホスト3において相互作用が実行される。
続いて、イジング制御プログラム156が、今回の問題を変換することにより得られたイジングモデルの係数と、ステップSP129までの処理により得られた今回の問題の解(スピン配列)とを、今回の問題の係数データ153及びスピンデータ154として記憶装置152(図37)に格納する(SP130)。
この後、UIプログラム80が、図21〜図23について上述した形態の結果提示画面120〜122を操作端末5に表示させる(SP131)。以上により、この基底状態探索制御処理が終了する。
以上のように本実施の形態の情報処理システム150では、新たに投入された問題とイジングモデルの形態が近い過去の問題の解を新たな問題の初期のスピン配列として設定し、これと併せてソルバ動作条件に含まれる冷却スケジュールの初期温度をユーザが指定した解精度に応じた温度に下げると共に、1回の基底状態探索における相互作用動作の繰返し回数を減らすようソルバ動作条件を更新するようにしているため、第1の実施の形態による情報処理システム1により得られる効果に加えて、新たな問題を迅速かつ精度良く求めることができるという効果をも得ることができる。
(3)他の実施の形態
なお上述の第1及び第2の実施の形態においては、本発明を、問題の解をイジングモデルの基底状態を探索するようにして求める情報処理システムに適用するようにした場合について述べたが、本発明はこれに限らず、イジングモデル以外の相互作用モデルにおけるノード間の相互作用を模擬するようにして問題の解を求める情報処理システムにも広く適用することができる。このような情報処理システムにおいて、相互作用モデルにおけるノード間の相互作用を模擬する半導体チップは、図1〜図27について上述した第1及び第2の実施の形態のマルチイジングチップ6と同様に構成することができる。この場合、ノードごとのバイアスが存在しない場合には、そのバイアスの係数(以下、これをバイアス係数と呼ぶ)を保持するメモリセル対ISxを単位素子から省略することができ、またかかるバイアスが存在する場合には、外部磁場係数に代えてかかるバイアス係数をメモリセル対ISxに保持するようにすれば良い。
なお上述の第1及び第2の実施の形態においては、本発明を、問題の解をイジングモデルの基底状態を探索するようにして求める情報処理システムに適用するようにした場合について述べたが、本発明はこれに限らず、イジングモデル以外の相互作用モデルにおけるノード間の相互作用を模擬するようにして問題の解を求める情報処理システムにも広く適用することができる。このような情報処理システムにおいて、相互作用モデルにおけるノード間の相互作用を模擬する半導体チップは、図1〜図27について上述した第1及び第2の実施の形態のマルチイジングチップ6と同様に構成することができる。この場合、ノードごとのバイアスが存在しない場合には、そのバイアスの係数(以下、これをバイアス係数と呼ぶ)を保持するメモリセル対ISxを単位素子から省略することができ、またかかるバイアスが存在する場合には、外部磁場係数に代えてかかるバイアス係数をメモリセル対ISxに保持するようにすれば良い。
また上述の第1及び第2の実施の形態においては、イジングモデルの基底状態探索を実行する1又は複数のイジングチップ32が搭載されたホスト部としての機能をホスト3に搭載し、ユーザが問題を指定するためのユーザインタフェースを提供する操作部としての機能を操作端末5に搭載し、ユーザインタフェースを用いてユーザにより指定された問題をイジングモデルに変換し、変換したイジングモデルの基底状態の探索をイジングチップ32に行わせるようにホスト部を制御する管理部としての機能を管理ノード2に搭載するようにした場合について述べたが、本発明はこれに限らず、これらホスト部、操作部及び管理部としての機能を1つの装置に搭載するようにしても良い。
さらに上述の第1及び第2の実施の形態においては、基底状態探索時に図10について上述した局所最適解から脱出するための手法として、イジングチップ32の各スピンユニット70にそれぞれ乱数を供給することにより、これらスピンユニット70が保持するスピンの値を確率的に反転させるようにした場合について述べたが、本発明はこれに限らず、この他種々の方法を広く適用することができる。
例えば、半導体のもつランダム性を直接的に利用して局所最適解からの脱出に必要な動作を実現するために、イジングチップ32への給電電圧を下げて意図的にビットエラーを誘発する方法を適用することができる。すなわち各スピンユニット70のメモリセルに供給する電圧とビットエラーレイトとは反比例の関係があるため、各スピンユニット70に供給する電圧を下げることにより確率的にビットエラーを誘発させて局所最適解からの脱出を図れる可能性がある。
そこで、例えば図2との対応部分に同一符号を付した図40に示すように、各イジングチップ32にそれぞれ対応させて、対応するイジングチップ32にそれぞれ給電を行う可変電圧電源161をイジングアクセラレータボード160上に設け、図11について上述した冷却スケジュールの温度Ttで決まる確率でイジングチップ32内の各スピンユニット70が保持するスピンの値が反転するよう、これら可変電圧電源161から各イジングチップ32にそれぞれ供給する電圧を適宜下げるように、コントローラ162がこれら可変電圧電源161を制御するようにしても良い。
また図2との対応部分に同一符号を付した図41に示すように、各イジングチップ32に乱数をそれぞれ供給する乱数発生器33と、各イジングチップ32に給電を行う可変電圧電源171とをイジングアクセラレータボード170上に設け、図11について上述した冷却スケジュールの温度Ttで決まる確率でイジングチップ32内の各スピンユニット70が保持するスピンの値が反転するように、コントローラ172が乱数発生器33及び可変電圧電源171を制御するようにしても良い。
本発明は、イジングモデルの基底状態探索を行う半導体装置を用いて組合せ最適化等の問題を解く機能を有する種々の構成の情報処理システムに広く適用することができる。
1,150……情報処理システム、2,151……管理ノード、3……ホスト、5……操作端末、11,21,41……CPU、25,160,170……イジングアクセラレータボード、30,162,172……コントローラ、32……イジングチップ、33……乱数発生器、50……スピンアレイ、70……スピンユニット、80……UIプログラム、81……問題変換プログラム、82……問題分割プログラム、83……動作条件生成プログラム、84,156……イジング制御プログラム、85……解品質評価プログラム、86……システム構成情報、87……既定ソルバ動作条件、90……ボード制御プログラム、93……ユーザプログラム、94……問題定義ファイル、110……問題入力画面、120〜122……結果提示画面、140……API、141……問題変換部、142……解品質評価部、143……システム使用状況取得部、144……係数値入出力部、145……スピン値入出力部、146……相互作用開始部、147……相互作用条件設定部、152……記憶装置、153……係数データ、154……スピンデータ、155……過去問題データベース、161,171……可変電圧電源。
Claims (9)
- 問題の解をイジングモデルの基底状態を探索するようにして求める情報処理システムにおいて、
前記イジングモデルの基底状態探索を実行する1又は複数の半導体チップが搭載されたホスト部と、
ユーザが前記問題を指定するためのユーザインタフェースを提供する操作部と、
前記ユーザインタフェースを用いて前記ユーザにより指定された前記問題を前記イジングモデルに変換し、変換した前記イジングモデルの基底状態の探索を前記半導体チップに行わせるように前記ホスト部を制御する管理部と
を備え、
前記ユーザは、前記ユーザインタフェースを用いて、前記問題に加えて、当該問題を解く際の条件を指定することができ、
前記管理部は、
前記ユーザに指定された前記条件に応じた前記半導体チップの動作条件を生成し、生成した前記動作条件と、前記ユーザが指定した前記問題の前記イジングモデルとを前記ホスト部に送信し、
前記ホスト部は、
前記管理部から送信された前記動作条件に従って、当該管理部から送信された前記イジングモデルの基底状態探索を行うように前記半導体チップを制御する
ことを特徴とする情報処理システム。 - 前記条件は、前記問題の解精度及び基底状態探索の制限時間である
ことを特徴とする請求項1に記載の情報処理システム。 - 前記操作部は、
前記ユーザインタフェースを提供するユーザプログラムと、
前記ユーザインタフェースを介して入力された前記ユーザの操作内容に応じて前記ユーザプログラムが前記管理部又は前記ホストとの間でコマンド及び情報をやり取りするために利用するAPI(Application Programming Interface)と
を備えることを特徴とする請求項1に記載の情報処理システム。 - 前記ホスト部は、
前記管理部から与えられた前記問題又は当該問題を分割してなる部分問題のイジングモデルを、前記半導体チップ毎のイジングモデルにそれぞれ分割し、
分割した前記イジングモデルの基底状態を各前記半導体チップにおいて独立して探索するように各前記半導体チップを制御し、
前記管理部は、
各前記半導体チップが前記イジングモデルの基底状態を探索中に、各前記半導体チップのチップ境界のスピンの値をそれぞれ読み出して相互作用計算を実行し、計算結果を各前記半導体チップに書き戻す
ことを特徴とする請求項1に記載の情報処理システム。 - 過去に解いた前記問題の前記イジングモデルの各係数と、当該イジングモデルの基底状態のスピン配列とが格納された記憶装置を備え、
前記管理部は、
前記記憶装置に記憶された過去の前記問題の中から、新たな前記問題の前記イジングモデルと形態が近い前記イジングモデルの前記問題を前記記憶装置上で検索し、
当該検索により該当する前記問題を検出した場合に、当該問題のイジングモデルの各係数と、当該イジングモデルの基底状態のスピン配列とを前記データベースから読み出して、新たな前記問題の前記イジングモデルの各係数及びスピン配列として設定する
ことを特徴とする請求項1に記載の情報処理システム。 - 前記ホスト部は、
前記半導体チップが保持する前記イジングモデルのスピンの値を確率的に反転させるための乱数を発生する乱数発生器を備え、
前記動作条件は、
前記イジングモデルの基底状態探索時に前記乱数発生器にどのようなパターンで乱数を発生させるかを規定した冷却スケジュールを含み、当該冷却スケジュールとして、初期温度、冷却係数及び終端温度が規定され、
前記管理部は、
前記記憶装置に記憶された過去の前記問題の中から、新たな前記問題の前記イジングモデルと形態が近い前記イジングモデルを検出した場合に、前記ユーザに指定された前記条件に応じて生成した前記動作条件に含まれる前記冷却スケジュールの前記初期温度を下げる
ことを特徴とする請求項1に記載の情報処理システム。 - 前記動作条件は、
1回の基底状態探索で実行される相互作用の回数を含み、
前記管理部は、
前記記憶装置に記憶された過去の前記問題の中から、新たな前記問題の前記イジングモデルと形態が近い前記イジングモデルを検出した場合に、前記ユーザに指定された前記条件に応じて生成した前記動作条件に含まれる、1回の基底状態探索で実行される相互作用の回数を減らす
ことを特徴とする請求項1に記載の情報処理システム。 - 前記動作条件は、
1回の基底状態探索で実行される相互作用の回数を含み、
前記管理部は、
前記ホスト部から前記イジングモデルの基底状態探索の実行結果を受信すると、当該実行結果が前記ユーザに指定された前記解精度を満たしているかを評価し、満たしていない場合には、前記制限時間の条件を満たす範囲で、1回の基底状態探索で実行される相互作用の回数を増やす
ことを特徴とする請求項2に記載の情報処理システム。 - イジングモデルの基底状態探索を実行する1又は複数の半導体チップが搭載された計算機に接続された管理装置であって、
解を求めたい問題、前記問題の種類、前記問題を解く際の要求精度、及び、制限時間の入力を受け付ける受信部と、
前記問題の種類に応じた所定の変換規則に基づき、前記問題を前記イジングモデルの問題に変換する変換部と、
前記制限時間に応じて、前記チップの動作条件を決定する動作条件生成部と、
前記イジングモデルの問題を前記計算機の処理能力に応じて1以上の部分問題に分割する問題分割部と、
前記部分問題、前記動作条件、及び、基底状態探索の実行指示を前記計算機へ送信し、前記計算機より前記基底状態探索の結果を受信する制御部と、
前記基底条件探索結果が前記要求精度を満たしているかを評価する評価部と
を備えることを特徴とする管理装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014176541A JP5865457B1 (ja) | 2014-08-29 | 2014-08-29 | 情報処理システム及び管理装置 |
US14/645,872 US9804827B2 (en) | 2014-08-29 | 2015-03-12 | Information processing system and management apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014176541A JP5865457B1 (ja) | 2014-08-29 | 2014-08-29 | 情報処理システム及び管理装置 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015254909A Division JP6207584B2 (ja) | 2015-12-25 | 2015-12-25 | 情報処理システム及び管理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP5865457B1 JP5865457B1 (ja) | 2016-02-17 |
JP2016051350A true JP2016051350A (ja) | 2016-04-11 |
Family
ID=55346971
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014176541A Expired - Fee Related JP5865457B1 (ja) | 2014-08-29 | 2014-08-29 | 情報処理システム及び管理装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9804827B2 (ja) |
JP (1) | JP5865457B1 (ja) |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2020046995A (ja) * | 2018-09-19 | 2020-03-26 | 富士通株式会社 | 最適化問題演算プログラム、最適化問題演算方法および最適化問題演算装置 |
JP2020046992A (ja) * | 2018-09-19 | 2020-03-26 | 富士通株式会社 | 最適化問題演算プログラム、最適化問題演算方法および最適化問題演算装置 |
EP3637202A1 (en) | 2018-10-11 | 2020-04-15 | Fujitsu Limited | Optimization device and control method of optimization device |
JP2020166802A (ja) * | 2019-03-27 | 2020-10-08 | 株式会社東芝 | 情報処理装置および情報処理システム |
JP2020173579A (ja) * | 2019-04-10 | 2020-10-22 | 富士通株式会社 | 最適化システムおよび最適化システムの制御方法 |
WO2020235300A1 (ja) * | 2019-05-20 | 2020-11-26 | 株式会社日立製作所 | ポートフォリオ作成支援装置およびポートフォリオ作成支援方法 |
EP3754556A1 (en) | 2019-06-18 | 2020-12-23 | Fujitsu Connected Technologies Limited | Sampling device and sampling method |
EP3764250A2 (en) | 2019-06-27 | 2021-01-13 | Fujitsu Limited | Optimization apparatus, control method for optimization apparatus, and optimization program |
EP3885999A1 (en) | 2020-02-19 | 2021-09-29 | Fujitsu Limited | Optimization apparatus, optimization method, and program |
US11568204B2 (en) | 2018-09-14 | 2023-01-31 | Fijitsu Limited | Optimization apparatus and control method thereof |
US11657938B2 (en) | 2020-03-10 | 2023-05-23 | Fujitsu Limited | Optimizer, optimization method, and computer-readable recording medium recording optimization program |
EP4254274A1 (en) | 2022-03-31 | 2023-10-04 | Fujitsu Limited | Information processing apparatus, information processing method, and computer program |
JP7488458B2 (ja) | 2020-06-25 | 2024-05-22 | 富士通株式会社 | 情報処理システム、情報処理方法及びプログラム |
JP7505245B2 (ja) | 2019-06-20 | 2024-06-25 | 富士通株式会社 | アニーラシステムにおけるnp問題の解決の自動化 |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6021864B2 (ja) * | 2014-08-29 | 2016-11-09 | 株式会社日立製作所 | 半導体装置および情報処理装置 |
JP6659957B2 (ja) * | 2016-06-06 | 2020-03-04 | 富士通株式会社 | 情報処理装置、イジング装置及び情報処理装置の制御方法 |
JP7007585B2 (ja) * | 2018-03-16 | 2022-01-24 | 富士通株式会社 | 最適化装置、最適化装置の制御方法及び最適化装置の制御プログラム |
EP3852028A4 (en) * | 2018-09-14 | 2021-10-06 | Fujitsu Limited | OPTIMIZATION DEVICE, CONTROL METHOD FOR OPTIMIZATION DEVICE AND CONTROL PROGRAM FOR OPTIMIZATION DEVICE |
JP7196489B2 (ja) * | 2018-09-19 | 2022-12-27 | 富士通株式会社 | 最適化問題演算プログラム、最適化問題演算方法および最適化問題演算装置 |
JP7063211B2 (ja) * | 2018-09-19 | 2022-05-09 | 富士通株式会社 | 最適化問題演算プログラム、最適化問題演算方法および最適化問題演算装置 |
JP7137064B2 (ja) | 2018-10-19 | 2022-09-14 | 富士通株式会社 | 最適化装置及び最適化装置の制御方法 |
JP2021144622A (ja) * | 2020-03-13 | 2021-09-24 | 富士通株式会社 | 最適化装置、最適化プログラム、および最適化方法 |
JP7410394B2 (ja) * | 2020-03-26 | 2024-01-10 | 富士通株式会社 | 最適化装置及び最適化方法 |
JP2021184148A (ja) * | 2020-05-21 | 2021-12-02 | 富士通株式会社 | 最適化装置、最適化方法、および最適化プログラム |
JP2022125725A (ja) * | 2021-02-17 | 2022-08-29 | 富士通株式会社 | 情報処理システム、情報処理方法及びプログラム |
WO2023215401A1 (en) * | 2022-05-03 | 2023-11-09 | University Of Washington | Systems and methods including combinatorial optimization circuitry utilizing sram cells and noise |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5354233B2 (ja) | 2011-03-01 | 2013-11-27 | 大学共同利用機関法人情報・システム研究機構 | イジングモデルの量子計算装置及びイジングモデルの量子計算方法 |
JP2012217518A (ja) | 2011-04-05 | 2012-11-12 | Hitachi Ltd | 人間行動分析システム及び方法 |
-
2014
- 2014-08-29 JP JP2014176541A patent/JP5865457B1/ja not_active Expired - Fee Related
-
2015
- 2015-03-12 US US14/645,872 patent/US9804827B2/en active Active
Cited By (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11568204B2 (en) | 2018-09-14 | 2023-01-31 | Fijitsu Limited | Optimization apparatus and control method thereof |
JP2020046992A (ja) * | 2018-09-19 | 2020-03-26 | 富士通株式会社 | 最適化問題演算プログラム、最適化問題演算方法および最適化問題演算装置 |
JP2020046995A (ja) * | 2018-09-19 | 2020-03-26 | 富士通株式会社 | 最適化問題演算プログラム、最適化問題演算方法および最適化問題演算装置 |
JP7155794B2 (ja) | 2018-09-19 | 2022-10-19 | 富士通株式会社 | 最適化問題演算プログラム、最適化問題演算方法および最適化問題演算装置 |
JP7087871B2 (ja) | 2018-09-19 | 2022-06-21 | 富士通株式会社 | 最適化問題演算プログラム、最適化問題演算方法および最適化問題演算装置 |
EP3637202A1 (en) | 2018-10-11 | 2020-04-15 | Fujitsu Limited | Optimization device and control method of optimization device |
WO2020255839A1 (ja) * | 2019-03-27 | 2020-12-24 | 株式会社 東芝 | 情報処理装置および情報処理システム |
JP2020166802A (ja) * | 2019-03-27 | 2020-10-08 | 株式会社東芝 | 情報処理装置および情報処理システム |
JP7378975B2 (ja) | 2019-03-27 | 2023-11-14 | 株式会社東芝 | 情報処理装置および情報処理システム |
EP3754559A1 (en) | 2019-04-10 | 2020-12-23 | Fujitsu Limited | Optimization system and control method for optimization system |
JP7256378B2 (ja) | 2019-04-10 | 2023-04-12 | 富士通株式会社 | 最適化システムおよび最適化システムの制御方法 |
JP2020173579A (ja) * | 2019-04-10 | 2020-10-22 | 富士通株式会社 | 最適化システムおよび最適化システムの制御方法 |
JP2020190829A (ja) * | 2019-05-20 | 2020-11-26 | 株式会社日立製作所 | ポートフォリオ作成支援装置およびポートフォリオ作成支援方法 |
JP7141365B2 (ja) | 2019-05-20 | 2022-09-22 | 株式会社日立製作所 | ポートフォリオ作成支援装置およびポートフォリオ作成支援方法 |
WO2020235300A1 (ja) * | 2019-05-20 | 2020-11-26 | 株式会社日立製作所 | ポートフォリオ作成支援装置およびポートフォリオ作成支援方法 |
EP3754556A1 (en) | 2019-06-18 | 2020-12-23 | Fujitsu Connected Technologies Limited | Sampling device and sampling method |
JP7505245B2 (ja) | 2019-06-20 | 2024-06-25 | 富士通株式会社 | アニーラシステムにおけるnp問題の解決の自動化 |
JP7219402B2 (ja) | 2019-06-27 | 2023-02-08 | 富士通株式会社 | 最適化装置、最適化装置の制御方法及び最適化装置の制御プログラム |
US11537916B2 (en) | 2019-06-27 | 2022-12-27 | Fujitsu Limited | Optimization apparatus, control method for optimization apparatus, and recording medium |
JP2021005282A (ja) * | 2019-06-27 | 2021-01-14 | 富士通株式会社 | 最適化装置、最適化装置の制御方法及び最適化装置の制御プログラム |
EP3764250A2 (en) | 2019-06-27 | 2021-01-13 | Fujitsu Limited | Optimization apparatus, control method for optimization apparatus, and optimization program |
EP3885999A1 (en) | 2020-02-19 | 2021-09-29 | Fujitsu Limited | Optimization apparatus, optimization method, and program |
US11657938B2 (en) | 2020-03-10 | 2023-05-23 | Fujitsu Limited | Optimizer, optimization method, and computer-readable recording medium recording optimization program |
JP7488458B2 (ja) | 2020-06-25 | 2024-05-22 | 富士通株式会社 | 情報処理システム、情報処理方法及びプログラム |
EP4254274A1 (en) | 2022-03-31 | 2023-10-04 | Fujitsu Limited | Information processing apparatus, information processing method, and computer program |
Also Published As
Publication number | Publication date |
---|---|
US20160063391A1 (en) | 2016-03-03 |
JP5865457B1 (ja) | 2016-02-17 |
US9804827B2 (en) | 2017-10-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5865457B1 (ja) | 情報処理システム及び管理装置 | |
JP6207584B2 (ja) | 情報処理システム及び管理装置 | |
US11836610B2 (en) | Concurrent training of functional subnetworks of a neural network | |
JP7186797B2 (ja) | 量子計算のための方法及びシステム | |
JP6605610B2 (ja) | 半導体装置 | |
JP5864684B1 (ja) | 半導体装置 | |
JP5922203B2 (ja) | 半導体装置 | |
JP2016051314A (ja) | 半導体装置 | |
WO2018180263A1 (ja) | 情報処理装置、情報処理方法、及びコンピュータ可読記憶媒体 | |
US20150278408A1 (en) | Information processing apparatus and information processing method | |
JP6177993B2 (ja) | 半導体装置および情報処理装置 | |
CN115427981A (zh) | 用于分子和旋转系统的量子模拟的方法和系统 | |
WO2017017807A1 (ja) | 情報処理装置及び方法 | |
JP6503072B2 (ja) | 半導体システムおよび計算方法 | |
JP7219402B2 (ja) | 最適化装置、最適化装置の制御方法及び最適化装置の制御プログラム | |
JP5894645B1 (ja) | 半導体装置及びその品質管理方法 | |
JP5901712B2 (ja) | 半導体装置および情報処理装置 | |
WO2016006071A1 (ja) | 半導体装置及び情報処理システム | |
WO2016199220A1 (ja) | 情報処理装置及びその制御方法 | |
JPWO2017037902A1 (ja) | 半導体システムおよび計算方法 | |
JP2016051491A (ja) | 半導体装置 | |
JP6207583B2 (ja) | 半導体装置および情報処理方法 | |
Beggs et al. | Unifying science through computation: Reflections on computability and physics | |
WO2021084629A1 (ja) | 演算回路、演算装置、情報処理装置およびイジングモデルの基底状態探索方法 | |
CN116710937A (zh) | Monise装置突触元件偏置方案 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20151201 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20151225 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5865457 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |