JP6496410B2 - 情報処理装置及び方法 - Google Patents
情報処理装置及び方法 Download PDFInfo
- Publication number
- JP6496410B2 JP6496410B2 JP2017530537A JP2017530537A JP6496410B2 JP 6496410 B2 JP6496410 B2 JP 6496410B2 JP 2017530537 A JP2017530537 A JP 2017530537A JP 2017530537 A JP2017530537 A JP 2017530537A JP 6496410 B2 JP6496410 B2 JP 6496410B2
- Authority
- JP
- Japan
- Prior art keywords
- spin
- value
- ising
- information processing
- ising model
- 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.)
- Active
Links
- 230000010365 information processing Effects 0.000 title claims description 91
- 238000000034 method Methods 0.000 title claims description 78
- 230000005366 Ising model Effects 0.000 claims description 174
- 238000012545 processing Methods 0.000 claims description 97
- 230000003993 interaction Effects 0.000 claims description 79
- 230000005283 ground state Effects 0.000 claims description 74
- 230000008569 process Effects 0.000 claims description 67
- 238000003672 processing method Methods 0.000 claims description 7
- 239000000243 solution Substances 0.000 description 31
- 230000005291 magnetic effect Effects 0.000 description 29
- 230000006870 function Effects 0.000 description 28
- 238000012795 verification Methods 0.000 description 17
- 238000010586 diagram Methods 0.000 description 15
- 238000006243 chemical reaction Methods 0.000 description 13
- 238000004364 calculation method Methods 0.000 description 11
- 238000012544 monitoring process Methods 0.000 description 10
- 102100022441 Sperm surface protein Sp17 Human genes 0.000 description 5
- 238000005457 optimization Methods 0.000 description 4
- 239000004065 semiconductor Substances 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000002347 injection Methods 0.000 description 2
- 239000007924 injection Substances 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 238000002922 simulated annealing Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 101000737052 Homo sapiens Coiled-coil domain-containing protein 54 Proteins 0.000 description 1
- 101000824971 Homo sapiens Sperm surface protein Sp17 Proteins 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
- 230000006866 deterioration Effects 0.000 description 1
- 239000003302 ferromagnetic material Substances 0.000 description 1
- 239000000696 magnetic material Substances 0.000 description 1
- 229910044991 metal oxide Inorganic materials 0.000 description 1
- 150000004706 metal oxides Chemical class 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
-
- 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
-
- 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
-
- H—ELECTRICITY
- H10—SEMICONDUCTOR DEVICES; ELECTRIC SOLID-STATE DEVICES NOT OTHERWISE PROVIDED FOR
- H10B—ELECTRONIC MEMORY DEVICES
- H10B10/00—Static random access memory [SRAM] devices
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Multi Processors (AREA)
- Mram Or Spin Memory Techniques (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Description
本発明は、情報処理装置及び方法に関し、特に、問題の解をイジングモデルの基底状態として求める情報処理装置に適用して好適なものである。
イジングモデルは磁性体の振舞いを説明するための統計力学のモデルである。イジングモデルは+1/−1(ないしは、0/1、上/下)の2値をとるスピンと、スピン間の相互作用を示す相互作用係数、及び、スピン毎にある外部磁場係数で定義される。イジングモデルは与えられたスピン配列、相互作用係数、及び、外部磁場係数から、その時のエネルギーを計算することができる。
イジングモデルの基底状態探索とは、イジングモデルのエネルギー関数を最小化するスピンの配列を求める最適化問題である。トポロジが非平面グラフであるイジングモデルの基底状態を求めることはNP困難問題であることが知られている。
イジングモデルの基底状態探索は、NP困難なグラフ問題として知られている最大カット問題とも対応している。このようなグラフ問題は、ソーシャルネットワークにおけるコミュニティの検出や、画像処理におけるセグメンテーションなど、幅広い応用を持っている。そのため、イジングモデルの基底状態探索を行うソルバがあれば、このような様々な問題に適用することができる。
イジングモデルに含まれるスピンの取り得る状態の組み合わせは莫大な数にのぼるため、基底状態を求めるにあたってそのすべてを探索することは実質的に不可能である。このため、基底状態を効率よく求めるには、探索するスピンの組み合わせを絞り込む必要がある。しかしながら、絞り込みによって局所解を選んでしまい、近似的な基底状態しか得られなくなるといった弊害も起こるため、探索の過程で見つかった局所解を避けることでよりよい解を得られる手法が必要である。
このような手法として、超電導素子を用いた量子的なゆらぎを活用して基底状態探索を行う方法が提案されている。このような装置として、例えば特許文献1に記載の装置がある。
また、シミュレーテッドアニーリングのように、一時的に解の悪化を許容するヒューリスティクスを用いて、良い解を求める方法もある。このような方法を用いる場合、例えば非特許文献1に示されるようなハードウェアを用いることで、高速に基底状態探索を行うことができる。
Michael G. Wrighton, Andre M. DeHon, Hardware-Assisted SimulatedAnnealing with Application for Fast FPGA Placement, FPGA '03 Proceedings of the2003 ACM/SIGDA eleventh international symposium on Field programmable gatearrays, Pages 33 - 42
特許文献1及び非特許文献1に記載の装置を用いて問題を解く場合、解きたい問題をイジングモデルの基底状態探索に変換する処理が必要となるが、従来、このような変換はプログラムにより行われている。この際、かかる変換により得られたイジングモデルが元の問題の性質を正しく反映していないと、このイジングモデルの基底状態探索を行っても、元の問題の正しい解を得ることはできない。
一方、基底状態探索を行うハードウェアはランダムな挙動をするので、最終結果だけ見ても、かかる変換により得られたイジングモデルが元の問題の性質を正しく反映しているか否かを判断することは困難である。
本発明は以上の点を考慮してなされたもので、イジングモデルが元の問題の性質を正しく反映しているか否かを容易に判断可能な有用性及び信頼性の高い情報処理装置及び判定方法を提供しようとするものである。
かかる課題を解決するため本発明においては、問題の解をイジングモデルの基底状態として求める情報処理装置において、前記問題を前記イジングモデルに変換する情報処理部と、前記イジングモデルにおける各スピン間の相互作用を模擬するイジングチップと、前記イジングモデルの一部又は全部の前記スピンにそれぞれ対応させて前記イジングチップに設けられ、それぞれ対応する前記スピンの値を取得する複数の第1のスピン値観測部とを設け、前記情報処理部が、前記問題を前記イジングモデルに変換する際に得られた当該イジングモデルの各前記スピンが満たすべき制約条件と、各前記第1のスピン値観測部によりそれぞれ取得された前記イジングモデルの基底状態探索時における対応する各前記スピンの値とに基づいて、前記イジングモデルが前記問題の性質を正しく反映しているか否かを検証するようにした。
また本発明においては、問題の解をイジングモデルの基底状態として求める情報処理装置において実行される情報処理方法であって、前記情報処理装置は、前記イジングモデルにおける各スピン間の相互作用を模擬するイジングチップと、前記イジングモデルの一部又は全部の前記スピンにそれぞれ対応させて前記イジングチップに設けられ、それぞれ対応する前記スピンの値を取得する複数の第1のスピン値観測部と前記イジングチップを制御する情報処理部とを有し、前記情報処理部が、前記問題を前記イジングモデルに変換する第1のステップと、前記情報処理部が、前記問題を前記イジングモデルに変換する際に得られた当該イジングモデルの各前記スピンが満たすべき制約条件と、各前記第1のスピン値観測部によりそれぞれ取得された前記イジングモデルの基底状態探索時における対応する各前記スピンの値とに基づいて、前記イジングモデルが前記問題の性質を正しく反映しているか否かを検証する第2のステップとを設けるようにした。
本発明の情報処理装置及び情報処理方法によれば、情報処理部の検証結果に基づいてユーザがそのイジングモデルが元の問題の性質を正しく反映しているか否かを容易に判断することができる。
本発明によれば、有用性及び信頼性の高い情報処理装置を実現できる。
以下図面について、本発明の一実施の形態を詳述する。
(1)第1の実施の形態
(1−1)イジングモデルの定義
イジングモデルは強磁性体の振る舞いを説明するときなどに用いられる統計力学のモデルである。イジングモデルは+1又は1の2値の状態をとるスピンと、スピン間の相互作用の強さを表す相互作用係数と、各スピンに働く外部磁場の強さを表す外部磁場係数で定義される。
(1−1)イジングモデルの定義
イジングモデルは強磁性体の振る舞いを説明するときなどに用いられる統計力学のモデルである。イジングモデルは+1又は1の2値の状態をとるスピンと、スピン間の相互作用の強さを表す相互作用係数と、各スピンに働く外部磁場の強さを表す外部磁場係数で定義される。
イジングモデルのエネルギー関数は、次式
で定義される。(1)式において、σはスピン全体を表し、σi,σjはそれぞれi番目とj番目のスピンの値を表す。また<i,j>は全てのスピンのiとjの組を表しており、Ji,jはi番目とj番目のスピンの間の相互作用係数、hiはi番目のスピンに対する外部磁場係数を表す。
ところで、イジングモデルは一般的に無向グラフで表現される相互作用を有している。上述した(1)式において、相互作用を表わす項として、Ji,j×σi×σjがあるが、これはi番目スピンからj番目スピンへの相互作用を示している。この場合、一般的なイジングモデルではi番目スピンからj番目スピンへの相互作用と、j番目スピンからi番目スピンへの相互作用を区別することはない。つまり、Ji,jとJj,iは同一である。しかし、本実施の形態では、このイジングモデルを有向グラフに拡張し、i番目スピンからj番目スピンへの相互作用と、j番目スピンからi番目スピンへの相互作用を非対称にすることを実現している。これにより、モデルの表現能力が高まり、多くの問題をより小規模のモデルで表現することが可能になる。
イジングモデルの基底状態を求めることは、(1)式で表されるイジングモデルのエネルギーが最小となるようなスピンの値の組み合せを求める、組合せ最適化問題を解くことに相当する。
例えば、グラフの最大カット問題や巡回セールスマン問題などの最適化問題をイジングモデルの基底状態探索に変換することが可能である。このとき、元の問題を変換して作ったイジングモデルの基底状態を求めた後、スピン値の値を元の問題に逆変換することで元の問題を解くことができる。イジングモデルの基底状態探索を高速に行う装置を用いることで、従来の計算機では時間のかかる最適化問題を高速に解くことができる。
(1−2)本実施の形態による情報処理システムの構成
(1−2−1)情報処理システムの全体構成
図1は、上述のように問題をイジングモデルに変換し、変換したイジングモデルの基底状態を探索することによりかかる問題の解を求め得るようになされた本実施の形態による情報処理装置1の概略構成を示す。
(1−2−1)情報処理システムの全体構成
図1は、上述のように問題をイジングモデルに変換し、変換したイジングモデルの基底状態を探索することによりかかる問題の解を求め得るようになされた本実施の形態による情報処理装置1の概略構成を示す。
この情報処理装置1は、パーソナルコンピュータやワークステーション又はサーバなどから構成され、例えばPCI ExpressやQPIなどから構成されるシステムバス2を介して相互に接続されたCPU(Central Processing Unit)3、メモリ4、記憶装置5及び複数のイジングチップモジュール6を備える。
CPU3は、情報処理装置1全体の動作制御を司るプロセッサである。またメモリ4は、例えば揮発性の半導体メモリから構成され、各種プログラムを記憶するために利用される。記憶装置5は、例えばハードディスク装置やSSD(Solid State Drive)などから構成され、プログラムやデータを長期間保持するために利用される。
本実施の形態の場合、記憶装置5には、ユーザから与えられた本情報処理装置1が解くべき問題の問題データ7が格納され、メモリ4には、問題変換プログラム8及びイジングチップ制御プログラム9が格納される。問題変換プログラム8は、かかる問題をイジングモデル形式の問題に変換するプログラムである。またイジングチップ制御プログラム9は、かかるイジングモデル形式の問題をイジングチップモジュール6において解くための各種制御を行うプログラムである。またメモリ4には、問題変換プログラム8により変換されたイジングモデル形式の問題であるイジングモデル10が格納されるほか、後述する観測結果検証プログラム11、制約条件12及び観測結果13も格納される。
イジングチップモジュール6は、図2に示すように、インタフェース20、モジュールコントローラ21、相互作用クロック生成部22、乱数発生器23及びイジングチップ24を備えて構成される。
モジュールコントローラ21は、情報処理装置1のCPU3(図1)及びイジングチップ24間におけるコマンドやデータの橋渡しを行う機能と、CPU3から指示に応じて相互作用クロック生成部22及び乱数発生器23を制御する機能とを有するプロセッサである。モジュールコントローラ21は、インタフェース20及びシステムバス2(図1)を介してCPU3との間でコマンドや情報の送受を行う。
相互作用クロック生成部22は、後述する相互作用クロックを生成するクロック生成器である。相互作用クロック生成部22により生成された相互作用クロックが後述のようにイジングチップ24に与えられ、この相互作用クロックに同期してイジングチップ24において基底状態探索が実行される。
また乱数発生器23は、イジングチップ24において実行される基底状態探索が局所解に陥るのを防止するためのランダムなビット列である乱数を発生させる。乱数発生器23により発生された乱数はイジングチップ24に与えられる。
イジングチップ24は、イジングモデルにおけるスピン間の相互作用を模擬する専用のハードウェアである。イジングチップ24は、情報処理装置1のCPU3(図1)からシステムバス2(図1)を介してイジングチップモジュール6に与えられたイジングモデルのデータ(後述する各スピンの値、各スピンの外部磁場係数及び各スピン間の相互作用係数のデータであり、以下、適宜、これをイジングモデルデータと呼ぶ)をモジュールコントローラ21を介して受け取り、受け取ったイジングモデルデータに基づくイジングモデルの基底状態探索処理を実行する。そしてイジングチップ24は、かかる基底状態探索処理の処理結果をモジュールコントローラ21を介してCPU3に通知する。
(1−2−2)イジングチップの構成
図3は、イジングチップ24の概略構成を示す。この図3に示すように、イジングチップ24は、スピンアレイ30、I/O(Input/output)アドレスデコーダ31、I/Oドライバ32、相互作用アドレスデコーダ33、コントローラ34及びチップメモリ35を備えて構成される。本実施の形態では、イジングチップ24は現在広く用いられているCMOS(Complementary Metal-Oxide Semiconductor)集積回路として実装されていることを想定して説明するが、他の固体素子でも実現可能である。
図3は、イジングチップ24の概略構成を示す。この図3に示すように、イジングチップ24は、スピンアレイ30、I/O(Input/output)アドレスデコーダ31、I/Oドライバ32、相互作用アドレスデコーダ33、コントローラ34及びチップメモリ35を備えて構成される。本実施の形態では、イジングチップ24は現在広く用いられているCMOS(Complementary Metal-Oxide Semiconductor)集積回路として実装されていることを想定して説明するが、他の固体素子でも実現可能である。
スピンアレイ30は、SRAMとしての機能とイジングモデルの基底状態探索を行う相互作用回路としての機能を併せ持つ。I/Oアドレスデコーダ31及びI/Oドライバ32は、スピンアレイ30をSRAM(Static Random Access Memory)として用いる際のインタフェースである。
I/Oアドレスデコーダ31は、アドレスバス36を介して読み書きを行うアドレスを授受する。またI/Oドライバ32は、データバス37を介してスピンアレイ30に読み込み又は書き込みするビット列を授受し、R/W(Read/Write)制御線38の信号に従って、読み取り動作と書き込み動作を切り替えることができる。I/Oアドレスデコーダ31及びI/Oドライバ32は、いずれもI/Oクロック線39を介してイジングチップモジュール6内の図示しないクロック発生器から与えられるI/Oクロックに同期して動作する。
相互作用アドレスデコーダ33は、情報処理装置1のCPU3(図1)からモジュールコントローラ21を介して相互作用アドレス線40を通じて与えられる相互作用アドレスを入力し、スピンアレイ30を相互作用回路として用いる際の、相互作用の対象となるスピンを選択する。また、相互作用アドレスデコーダ33及びスピンアレイ30は、相互作用クロック生成部22(図2)から相互作用クロック線41を介して与えられる相互作用クロックに同期して動作し、相互作用クロック1周期につき1回の相互作用動作を行う。また、スピンアレイ30は、乱数発生器23(図2)から出力された乱数パルスを乱数注入線42を通して入力する。
コントローラ34は、後述するイジングモデル検証機能に関連する各種演算や各種制御処理を実行するプロセッサである。またチップメモリ35は、後述するようにスピンアレイ30の内部で対応するスピンユニット50(図4〜図8)が保持するスピンの値の観測結果でなる第1の観測結果43と、後述のように情報処理装置1のCPU3(図1)から与えられた第1の処理情報44と、第1の観測結果43に対して行った第1の処理情報44に基づく処理の処理結果でなる第1の処理結果45とを格納するために用いられる。
(1−2−3)スピンアレイの構成
スピンアレイ30は、1個のスピンσi並びにそれに付随する相互作用係数Ji,j及び外部磁場係数hiの保持と、基底状態探索演算とを実現するスピンユニットを基本構成単位として、スピンユニットを多数個並べた構成を有する。
スピンアレイ30は、1個のスピンσi並びにそれに付随する相互作用係数Ji,j及び外部磁場係数hiの保持と、基底状態探索演算とを実現するスピンユニットを基本構成単位として、スピンユニットを多数個並べた構成を有する。
図4は、スピンユニット50を複数並べることで、3次元格子状のトポロジを持つイジングモデルを構成する例を示す。図4の例は、3(X軸方向)×3(Y軸方向)×2(Z軸方向)の大きさの3次元格子である。座標軸の定義は図示した通り、図面右方向をX軸、図面下方向をY軸、図面奥行き方向をZ軸としているが、この座標軸は実施の形態の説明上便宜的に必要なだけであり、本発明とは関係しない。3次元格子以外のトポロジ、例えばツリー状のトポロジなどを利用する場合には、座標軸とは別にツリーの段数等で表現することになる。図4の3次元格子状のトポロジにおいて、スピン間の相互作用をグラフとしてとらえると、最大で次数5のスピン(頂点)が必要となる。なお、外部磁場係数の接続も含めて考えると、最大で次数6が必要となる。
図4に示す1個のスピンユニット50には、隣接するスピン(例えば隣接するスピンが5個の場合σj,σk,σl,σm,σn)の値が入力される。このためスピンユニット50は、これら入力する隣接するスピンの値を保持するためのメモリセルを有している。またスピンユニット50は、かかるスピンの値に加え、外部磁場係数と、上述した隣接するスピンとの相互作用係数(隣接する5スピンとの相互作用係数Jj,i,Jk,i,Jl,i,Jm,i,Jn,i)とをそれぞれ保持するメモリセルをも有している。
1個のスピンユニットをi番目スピンσiと考えた時に、このスピンユニット50が保持する相互作用係数であるJj,i、Jk,i、Jl,i、Jm,i、Jn,iは、隣接するj番目、k番目、l番目、m番目、n番目のスピンσj、σk、σl、σm、σnから、i番目スピンσiへの相互作用を決めるものである。このことは、図5において、スピンユニット50に含まれている相互作用係数が対応する矢印(相互作用)が、図示されているスピンユニット50の外部のスピンから、スピンユニット50の内部のスピンに向かっていることに対応している。
(1−2−4)スピンユニットの構成
スピンユニット50の構成について、図7及び図8を用いて説明する。スピンユニット50は2つの側面をもっており、便宜上、図7及び図8に分けて説明するが、1個のスピンユニット50は図7及び図8の構成の双方を含む。図7はスピンユニット50間の相互作用を実現するための回路を示し、図8はスピンユニット50が有するメモリセルN,IS0,IS1,IU0,IU1,IL0,IL1,IR0,IR1,ID0,ID1,IF0,IF1にイジングチップ24外からアクセスするためのインタフェースであるビット線51とワード線52とに注目してスピンユニット50の構成を図示したものである。
スピンユニット50の構成について、図7及び図8を用いて説明する。スピンユニット50は2つの側面をもっており、便宜上、図7及び図8に分けて説明するが、1個のスピンユニット50は図7及び図8の構成の双方を含む。図7はスピンユニット50間の相互作用を実現するための回路を示し、図8はスピンユニット50が有するメモリセルN,IS0,IS1,IU0,IU1,IL0,IL1,IR0,IR1,ID0,ID1,IF0,IF1にイジングチップ24外からアクセスするためのインタフェースであるビット線51とワード線52とに注目してスピンユニット50の構成を図示したものである。
スピンユニット50は、イジングモデルのスピンσ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参照)。
ここで、スピンユニット50はi番目のスピンを表現するものとして説明を行う。メモリセルNはスピンを表現するためのメモリセルであり、スピンの値を保持する。スピンの値はイジングモデルでは+1/−1(+1を上、−1を下とも表現する)であるが、これをメモリセルが保持可能な2値である0/1に対応させる。例えば、+1を1、−1を0に対応させる。
図5を用いて、スピンユニット50が有するメモリセル対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)との相互作用係数をそれぞれ記憶する。
また、イジングモデルを有向グラフとして捉えた場合に、あるスピンから見ると他のスピンが自スピンに及ぼす影響の係数を持つことになる。自スピンが他のスピンに与える影響の係数は、それぞれの他のスピンに属する。すなわち、このスピンユニット50は最大で5個のスピンと接続される。本実施の形態のイジングチップ24では、外部磁場係数及び相互作用係数として+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も同様に係数とビットの値とを対応させている。
スピンユニット50内のメモリセルN,IS0,IS1,IU0,IU1,IL0,IL1,IR0,IR1,ID0,ID1,IF0及びIF1は、それぞれイジングチップ13の外部からリード/ライト可能でなければならない。そのために、図8に示すように、スピンユニット50はビット線51とワード線52とをそれぞれ有している。
そしてイジングチップ13では、図9に示すように、スピンユニット50が半導体基板上にタイル状に並べられてビット線51とワード線52とが接続されており、I/Oアドレスデコーダ31とI/Oドライバ32でこれらのスピンユニット50を駆動、制御又は読み出しすることにより、一般的なSRAM(Static Random Access Memory)と同様にスピンユニット50内のメモリセルをイジングチップ24のSRAM互換インタフェース(図3参照)でリード/ライトすることができるようになされている。
なお図9上で表現されているスピンユニット50(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のスピンユニット50が交互に配置される。
またスピンユニット50は同時に更新を行うために、相互作用を計算して次のスピンの状態を決定するための回路を、スピンユニット50毎に独立して持っている。図7では、スピンユニット50は、外部とのインタフェースとして、信号線EN,NU,NL,NR,ND,NF,ON及びRNDを有する。信号線ENは、当該スピンユニット50のスピンの更新を許可する切替え信号を入力するインタフェースである。この切替え信号でセレクタ53を制御することで、メモリセルNに保持されたスピンの値を、後述の多数決論理回路54からOR回路55を介してセレクタ53に与えられる値に更新することができる。
信号線ONは、当該スピンユニット50のスピンの値を他のスピンユニット50(図4のトポロジで隣接するユニット)に出力するインタフェースである。信号線NU,NL,NR,ND及びNFは、それぞれ他のスピンユニット50(図4のトポロジで隣接するユニット)が保持するスピンの値を入力するためのインタフェースである。信号線NUは上側のスピン(Y軸方向で−1)、信号線NLは左側のスピン(X軸方向で−1)、信号線NRは右側のスピン(X軸方向で+1)、信号線NDは下側のスピン(Y軸方向で+1)、信号線NFは奥行き方向に接続するスピン(Z軸方向で+1ないしは−1)からの入力である。
スピンユニット50では隣接スピンとの間でエネルギーを最小化するようにスピンの次状態を決定するが、それは隣接スピンと相互作用係数の積、及び、外部磁場係数を見たときに、正の値と負の値のどちらが支配的か判断することと等価である。例えば、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に示した論理回路56は、上述の相互作用を行うための回路である。まず、隣接スピンの状態と、相互作用係数の+1/−1を示すメモリセルIU1,IL1,IR1,ID1,IF1が保持する値との排他的論理和の否定(XNOR)をXNOR回路57で求める。これにより、その相互作用だけを見た時にエネルギーを最小化するスピンの次状態を計算することができる(+1は1、−1は0にエンコードされているものとする)。
もし、相互作用係数が+1/−1だけであれば、XNOR回路57の出力のうち+1/−1のどちらが多いかを多数決論理回路54において多数決論理で判定すればスピンの次状態を決定することができる。外部磁場係数に関しては、常に状態+1のスピンとの相互作用係数に相当するものと考えれば、単に外部磁場係数の値がスピンの次状態を決定する多数決論理回路54に入力すべき値となる。
次に、係数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回路58を利用して、係数のイネーブルを決めるビット(ビットセルIS0,IU0,IL0,IR0,ID0及びIF0にそれぞれ保持されたビット)の値により、多数決論理回路54に、先に述べたスピン次状態の候補となる値の複製か、その反転を同時に入力する。例えば、メモリセルIS0が保持するビットの値が0の場合、メモリセルIS1が保持するビットの値と、メモリセルIS1が保持するビットの値を反転させた値が同時に多数決論理回路54に入力されるので、外部磁場係数の影響は無い(外部磁場係数が0に相当する)ことになる。また、メモリセルIS0が保持するビットの値が1の場合には、メモリセルIS1が保持するビットの値と、その値と同じ値(複製)が同時に多数決論理回路54に入力されることになる。
上述したスピン間の相互作用によるエネルギー最小化で、適用されたイジングモデルの基底状態探索を実現することができるが、これだけでは局所解に陥ってしまう可能性がある。基本的に、エネルギーを小さくする方向の動きしかないため、一旦局所解に陥るとそこから抜け出すことができず、大域最適解に到達しない。
そこで本実施の形態においては、局所解から脱出するための手法として、スピンを表現するメモリセルNの値を確率的に反転されるために、スピンユニット50はインタフェースとしてRND線59を有する。そしてスピンユニット50には、乱数発生器23(図2)から乱数注入線42(図3)を介してスピンアレイ30(図3)に与えられた乱数パルスがこのRND線59を介して与えられ、この乱数パルスがOR回路55に入力することで、スピンの値が確率的に反転される。
(1−3)イジングモデル検証機能
次に、本情報処理装置1に搭載されたイジングモデル検証機能について説明する。これに際し、まず、問題をイジングモデルに変換する際に生成される制約条件について説明する。
次に、本情報処理装置1に搭載されたイジングモデル検証機能について説明する。これに際し、まず、問題をイジングモデルに変換する際に生成される制約条件について説明する。
図10は、問題変換プログラム8(図1)による問題変換の一例を示す。この例は、巡回セールスマン問題をイジングモデルに変換する場合を示している。巡回セールスマン問題は、都市の接続関係を表すグラフ60と、各都市間の距離とが入力として与えられる。これをイジングモデルに変換するには、N個の都市数に対してN2個のスピンにマッピングする。
かかるマッピング後のイジングモデル61において、列方向に並ぶN個のスピンは訪問する都市に対応し、+1の値をとるスピンの位置で訪問する都市を表す。例えば、ある列の上から2番目のスピンが+1でそれ以外のスピンが全て−1ならば、この列では2番目の都市に訪問することを意味する。
またイジングモデル61において、行方向に並ぶN個のスピンは都市の訪問順に対応し、+1の値をとるスピンの位置で、その都市が何番目に訪問されるかを表す。例えば、ある行の3列目のスピンが+1でそれ以外のスピンが全て−1ならば、この行では3番目の都市が訪問されたことを意味する。
このようなマッピングを行うことで、変換後のイジングモデルの基底状態を求めれば、元の巡回セールスマン問題に対応する解が得られる。ここで、変換後のイジングモデル61に着目すると、1行につき+1の値を取るスピンは1つだけであり、1列につき+1の値を取るスピンは1つだけ、という制約条件が存在する。
また図11は、問題変換プログラム8による別の問題変換の例を示す。この例は、複雑な接続関係をもつイジングモデル62から、より単純な格子状の接続関係をもつイジングモデル63への変換を行う例である。
イジングチップ24(図2)において表現可能なイジングモデルは、ハードウェアによる実装を容易にするため、格子状などの比較的単純な形状をもつイジングモデルに限られる場合がある。そのような場合に、図11で示したようなイジングモデルの形状の変換を行う。この変換においては、イジングモデル62における1つのスピン(図11においてa,b,c,dと表記)を変換後のイジングモデル63においては複数のスピンで表現する。図11では、変換前後で対応するスピンを同じアルファベットで表している。
この変換において、イジングモデル63内の同一のアルファベットで表されたスピンは、元のイジングモデル62では単一のスピンであったため、全て同じ値を取る必要がある。従って、この例でもイジングモデル63において、特定のスピンのグループ(以下、これをスピングループと呼ぶ)が全て同じ値をとらなければならないという制約条件が存在する。
このように問題をイジングモデルに変換した場合、そのイジングモデルの基底状態について何らかの制約条件が存在することがある。そこで、本情報処理装置1には、解くべき問題から変換されたイジングモデルの基底状態探索時における当該イジングモデルのスピンの値(スピン値)を観測し、これらのスピンの値が制約条件を満たしているか否かに基づいて、問題変換プログラム8による問題からイジングモデルへの変換に誤りがないか否か(変換後のイジングモデルが元の問題の性質を正しく反映しているか否か)を検証し、検証結果をユーザに提示するイジングモデル検証機能が搭載されている。
このようなイジングモデル検証機能を実現するための手段として、図12に示すように、イジングチップ24に搭載されたスピンアレイ30を構成するスピンユニット50のうちの一部には、そのスピンユニット50が保持するスピンの値(スピン値)を観測する第1のスピン値観測部70が設けられている。
実際上、第1のスピン値観測部70は、図13に示すように、インターバル保持部71、書込み先保持部72、長さ保持部73、書込みカウンタ74及び処理部75を備えて構成される。処理部75は、CPU及びメモリを含んでなるマイクロコンピュータ構成を有し、その第1のスピン値観測部70が設けられたスピンユニット50のメモリセルN(図7)からそのときメモリセルNが保持するスピンのスピン値を読み出し、読み出したスピン値をチップメモリ35に書き込む機能を有する。
またインターバル保持部71、書込み先保持部72及び長さ保持部73は、情報処理装置1のCPU3(図1)の制御のもとにイジングチップ24のコントローラ34(図3)によりその第1のスピン値観測部70に設定されたインターバル、書込み先又は長さといったスピン値の観測条件をそれぞれ保持する機能を有する機能部である。
ここで「インターバル」は、処理部75が対応するスピンユニット50のメモリセルNからスピン値を読み出す間隔を表す。例えば、インターバルの値が「0」の場合、処理部75は、相互作用クロックの1クロックごとにスピン値を読み出し、インターバルの値が「4」の場合、処理部75は、スピン値を読み出してから4クロック待って次のスピン値を読み出す(つまり5クロックに1度の割合でスピン値を読み出す)。
また「書込み先」は、処理部75が対応するスピンユニット50のメモリセルNから読み出したスピン値の書込み先を表す。すなわち本実施の形態の場合、各第1のスピン値観測部70に対して、スピンセルNから読み出したスピン値を書き込むための領域として、チップメモリ35内の所定大きさの記憶領域(スピン値を数〜数十程度書き込める程度の記憶領域)ARが割り当てられるが、「書込み先」は、その記憶領域ARの先頭アドレスを表す。
さらに記憶領域ARは1つのスピン値を格納するための複数の小領域SARに区分して管理されるが、「長さ」は、その第1のスピン値観測部70に割り当てられた記憶領域ARを構成する小領域SARの数を表す。
書込みカウンタ74は、その第1のスピン値観測部70に対応付けられたかかる記憶領域ARのうちの処理部75がスピン値を書き込むべき小領域SARの先頭からのオフセット数をカウントするために利用される。処理部75は、スピン値をチップメモリ35内の自己に割り当てられた記憶領域ARに書き込む際、当該記憶領域AR内の書込みカウンタ74のカウンタ値に対応する小領域SARにそのスピン値を書き込み、その後、書込みカウンタ74のカウンタ値をインクリメントする。そして処理部75は、書込みカウンタ74のカウンタ値が上述の「長さ」を超えた場合にはカウント値を「0」にリセットする。これにより、第1のスピン値観測部70に割り当てられた記憶領域ARの各小領域SAR内にスピン値が上書きされながら循環的に順次格納されていくことになる。
このように本実施の形態においては、第1のスピン値観測部70によるスピン値の観測は、単に対応するスピンユニット50のメモリセルNに格納されたスピン値を読み出すことにより行われる。このとき、第1のスピン値観測部70が設けられたスピンユニット50のスピン値を保持するメモリセルNの構成として、相互作用動作と同時にスピン値を読み出すことができるよう、一般的に用いられるマルチポートSRAMの構成を適用することができる。
図14〜図16は、イジングチップ24のチップメモリ35(図3)に保持される第1の観測結果43(図14)、第1の処理情報44(図15)、及び第1の処理結果45(図16)をそれぞれ示す。
第1の観測結果43は、図12について上述したようにイジングチップ24のスピンアレイ30の一部のスピンユニット50に設けられた各第1のスピン値観測部70によりチップメモリ35にそれぞれ書き込まれた対応する各スピンの値の観測結果であり、図14に示すように、観測結果(図14の1行)ごとに時刻43A、スピンID43B及び値(スピン値)43Cの各情報をそれぞれ含む。
このうち時刻43Aは、観測を行った時刻(ここでは、計算開始から経過した相互作用クロックのクロック数)を表し、スピンID43Bは、観測対象のスピンに付与されたスピンIDを表す。また値43Cは、対応するスピンのそのときのスピン値を表す。
従って、図14の例の場合、例えば、時刻「100」におけるスピンIDが「1」、「3」、「5」及び「6」の各スピンのスピン値が「+1」であり、同時刻におけるスピンIDが「2」及び「4」の各スピンのスピン値が「−1」であったことが示されている。
第1の処理情報44は、上述の制約条件に基づく判定処理の内容を表す情報である。情報処理装置1のCPU3(図1)は、問題データ7(図1)をイジングモデルに変換する際に得られたそのイジングモデルに関する制約条件に基づいて、そのイジングモデルの対応するスピンの値がその制約条件を満たすか否かを判定するための判定処理を生成する。そしてCPU3は、そのイジングモデルをイジングチップモジュール6のイジングチップ24にマッピングする際に、生成した判定処理の内容を第1の処理情報44として、そのイジングチップモジュール6内のモジュールコントローラ21(図2)に送信する。かくしてモジュールコントローラ21は、この第1の処理情報44をチップメモリ35(図3)に格納して管理する。
第1の処理情報44は、図15に示すように、処理ID44A、処理種別44B、条件44C及び対象スピン44Dの各情報を含む。処理ID44Aは、かかる制約条件に基づき生成された各判定処理にそれぞれ付与された識別子を表し、処理種別44Bは、対応する判定処理の処理内容を表す。また条件44Cは、対応する判定処理における判定条件の内容を表し、対象スピン44Dは、その判定処理の対象とすべきスピン(以下、これを対象スピンと呼ぶ)のスピンID(イジングチップ24にマッピングされたイジングモデルにおける対象スピンのスピンID)を表す。
従って、図15の例の場合、例えば、処理IDが「1」の判定処理は、イジングモデルにおける「1,3,5,……」というスピンIDの各スピンから構成されるスピングループ内のこれらスピンの値が「すべて同値」であるか否かの「条件判定」であることが示されている。
第1の処理結果45は、第1の処理情報44に基づきイジングチップ24のコントローラ34(図3)が実行した各判定処理の処理結果を表す。コントローラ34は、情報処理装置1のCPU3から通知されたインターバルの経過後、チップメモリ35(図3)に蓄積されている第1の観測結果43に対して第1の処理情報44で規定された各判定処理を実行する。図15の例では、「対象スピン」として指定された各スピンの値がすべて同値であるか否かを判定することがコントローラ34の処理内容となる。従って、この場合、コントローラ34は、同じ時刻に観測された対象とする各スピンの値を第1の観測結果43からそれぞれ読み出し、読み出した各スピンの値がすべて同じであるか否かを判定し、その判定結果をチップメモリ35に第1の処理結果45として格納する。
第1の処理結果45は、図16に示すように、処理ID45A、判定処理の対象となった時刻45B及びその判定処理の結果45Cの情報を含む。第1の処理情報44が図15の例の場合、対象とする各スピンの値がすべて同値であったときには「1」、そうでないときには「0」がその判定処理の結果45Cとしてチップメモリ35に格納される。
従って、図16の例の場合、例えば、時刻「100」に収集した対応するスピンの値に基づいて実行した処理IDが「1」の判定処理(図15を参照)の結果は「1」であり(つまり対象とする各スピンの時刻「100」における値がすべて同値であった)、時刻「100」に収集した対応するスピンの値に基づいて実行した処理IDが「2」の判定処理の結果は「0」であった(つまり対象とする各スピンの時刻「100」における値がすべて同値でなかった)ことが示されている。
図17(A)及び(B)は、図15の処理IDが「1」及び「2」の2つの判定処理の処理結果を時系列にプロットした例を示す。図16では、これら2つの判定処理について、時刻「100」のときの結果しか例示していないが、横軸に時刻をとり、縦軸に結果をとって処理IDが「1」及び「2」の2つの判定処理の結果を時系列にプロットした場合、この図17(A)及び(B)に示すようなグラフが得られる。なお図17(A)は、図15及び図16における処理IDが「1」の判定処理に対応し、図17(B)は、図15及び図16における処理IDが「2」の判定処理に対応している。
本実施の形態の場合、情報処理装置1のCPU3(図3)は、イジングチップ24のチップメモリ35に格納された第1の処理結果45を基底状態探索の実行中に定期的に収集して観測結果13(図1)としてメモリ4(図1)に格納し、これらの観測結果13に基づいてイジングモデルに誤りがないか否かの検証を行う。例えば、CPU3は、収集した観測結果13に基づいて、図15の判定処理ごとに、一定期間内にイジングモデルの対応するスピンの値が制約条件に基づく制約を満たしている確率を時系列に沿って順次算出する。またCPU3は、一定期間内で処理結果が「1」となる確率の移動平均を算出し、この算出結果に基づいてイジングモデルに誤りがないか否かを検証する。
ここで、イジングチップ24を用いたイジングモデルの基底状態探索においては、計算開始直後にはスピンの値を頻繁に反転させる(図2の乱数発生器23が発生する乱数パルスの発生頻度を高くする)ことで局所解からの脱出を促し、その後、時間が経過するにつれてスピンの値を反転させる確率を下げる(図2の乱数発生器23が発生する乱数パルスの発生頻度を低減させる)ことで基底状態に向かい易くする。このため計算開始直後にはスピンの値がランダムに反転してしまうため、イジングモデルのスピンの値が制約条件を満たさない可能性が高い。
一方、問題を変換することにより得られたイジングモデルが正常状態にある場合には、計算終了に近い時点ではそのイジングモデルの各スピンの値が制約条件を満たしている確率が高まっていくことが期待される。この場合、情報処理装置1のCPU3により算出される上述の移動平均は、図18(A)に示すように単調に増加し、最終的に1に収束する。
これに対して、図18(B)に示すように、かかる移動平均が十分高くならない、又は、時間経過に伴って増加しない場合には、イジングモデルが正しく元の問題の性質を反映していないと考えることができる。
そこで、CPU3は、イジングチップ24によるイジングモデルの基底状態探索中に、上述の判定処理(図15において処理IDが付与された判定処理)ごとに、処理結果が「1」となる確率の移動平均を順次算出する。そしてCPU3は、かかる移動平均の値が予め「1」近くに設定された所定の第1の閾値SHを最終的に上回った判定処理については、イジングモデルにおける対応するスピングループが制約条件を満たしていると判断し、かかる移動平均の値が第1の閾値SHを最終的に上回らなかった判定処理については、イジングモデルにおける対応するスピングループが制約条件を満たしていないと判断して、これらの判断結果をそのイジングモデルの検証結果として図示しない表示装置に表示させる。
具体的に、CPU3は、制約条件を満たすスピングループを構成するスピンについては「○」、制約条件を満たさないスピングループを構成するスピンについては「×」をそれぞれ対応付けた図19に示すような表を検証結果として表示装置に表示させる。かくしてユーザは、表示装置に表示された検証結果に基づいて、そのときイジングチップ24にマッピングされているイジングモデルが元の問題の性質を正しく反映しているか否かを判断することができる。
(1−4)基底状態探索処理
図20は、本情報処理装置1において、ユーザから与えられた問題データ7(図1)に基づく問題の解をイジングモデルの基底状態として求める際のCPU3の処理の流れを示す。この処理は、ユーザが情報処理装置1を操作して、記憶装置5に格納されている問題データ7を指定し、その解を求めるべき旨の指示を情報処理装置1に与えることにより開始される。
図20は、本情報処理装置1において、ユーザから与えられた問題データ7(図1)に基づく問題の解をイジングモデルの基底状態として求める際のCPU3の処理の流れを示す。この処理は、ユーザが情報処理装置1を操作して、記憶装置5に格納されている問題データ7を指定し、その解を求めるべき旨の指示を情報処理装置1に与えることにより開始される。
実際上、情報処理装置1のCPU3は、かかる指示が与えられるとこの基底状態探索処理を開始し、まず記憶装置5に格納されているユーザから与えられた問題データ7を取り込む(SP1)。またCPU3は、この後、問題変換プログラム8(図1)を実行することにより、記憶装置5に格納した問題データ7をイジングモデルに変換する。この際、CPU3は、かかる変換により生成したイジングモデルにおいてスピンが満たすべき制約条件を生成する(SP2)。
続いて、CPU3は、イジングチップ制御プログラム9(図1)を実行し、ステップSP2で生成したイジングモデルをイジングチップモジュール6内のイジングチップ24(図2)にマッピングした後(SP3)、そのイジングチップ24にそのイジングモデルの基底状態の探索処理を実行させる(SP4)。
次いで、CPU3は、やがて所定回数の相互作用を実行し終えることにより、かかるイジングチップ24におけるかかるイジングモデルの基底状態探索が完了すると、そのイジングチップ24からそのイジングモデルのそのときの各スピンの値(つまりそのイジングモデルの基底状態のときの各スピンの値)を取得し、この後、問題変換プログラム8を実行することにより、取得した各スピンの値に基づいて、そのとき得られたそのイジングモデルの基底状態を元の問題の解に変換する(SP5)。
そしてCPU3は、このようにして得られた元の問題の解を情報処理装置1の図示しない表示装置に表示させ(SP6)、この後、後述するステップSP9の処理が終了するのを待って、この基底状態探索処理を終了する。
一方、CPU3は、ステップSP3〜ステップSP6の処理と並行して、ステップSP7〜ステップSP8の処理を実行することにより、かかるイジングモデルが元の問題の性質を正しく反映しているか否かを検証する。
実際上、CPU3は、イジングチップ制御プログラム9に基づいて、ステップSP2で得られたイジングモデルをイジングチップ24にマッピングする際、これと併せてそのイジングモデルの生成時に得られた制約条件に基づく上述の第1の処理情報44と、図13について上述したそのイジングチップ24内の各第1のスピン値観測部70(図12)に設定すべき既定の第1の観測条件(インターバル、書込み先及び長さ)とをそのイジングチップ24のコントローラ34に送信する(SP7)。
かくして、かかる制約条件及び第1の観測条件を受信したイジングチップ24では、コントローラ34により、第1の処理情報44がチップメモリ35に格納されると共に、第1の観測条件がスピンアレイ30(図12)内の各第1のスピン値観測部70(図12)にそれぞれ設定され、この結果、この後実行されるイジングモデルの基底状態探索時に、この第1の観測条件に従った対応するスピンの値の観測がこれら第1のスピン値観測部70によりそれぞれ行われる。また、これと並行して、これら第1のスピン値観測部70による対応するスピンの値の観測結果でなる第1の観測結果43(図14)に基づく図15について上述した判定処理がコントローラ34により逐次実行され、その処理結果が第1の処理結果45として逐次チップメモリ35に格納される。
そしてCPU3は、イジングチップ24においてイジングモデルの基底状態探索が実行されている間、観測結果検証プログラム11に基づいて、上述のチップメモリ35に格納された第1の処理結果45を定期的に読み出し、これを観測結果13としてメモリ4に格納すると共に、この観測結果13に基づいて、そのときイジングチップ24にマッピングされているイジングモデルが元の問題の性質を正しく反映しているか否かの図17〜図19について上述した検証処理を行う(SP8)。
そしてCPU3は、かかる検証処理が終了すると、観測結果検証プログラム11に基づいて、ステップSP8の検証処理の処理結果を情報処理装置1の表示装置に表示させ(SP9)、この後、ステップSP6の処理が終了するのを待って、この基底状態探索処理を終了する。
(1−5)本実施の形態の効果
以上のように本実施の形態の情報処理装置1では、イジングモデルの基底状態の探索途中における各スピンの値を観測し、これらスピンの値が制約条件を満たすか否かに基づいてそのイジングモデルが元の問題の性質を正しく反映しているか否かを検証し、その検証結果を表示する。従って、本実施の形態によれば、表示された検証結果に基づいてユーザがそのイジングモデルが元の問題の性質を正しく反映しているか否かを容易に判断することができ、かくして有用性及び信頼性の高い情報処理装置を構築することができる。
以上のように本実施の形態の情報処理装置1では、イジングモデルの基底状態の探索途中における各スピンの値を観測し、これらスピンの値が制約条件を満たすか否かに基づいてそのイジングモデルが元の問題の性質を正しく反映しているか否かを検証し、その検証結果を表示する。従って、本実施の形態によれば、表示された検証結果に基づいてユーザがそのイジングモデルが元の問題の性質を正しく反映しているか否かを容易に判断することができ、かくして有用性及び信頼性の高い情報処理装置を構築することができる。
(2)第2の実施の形態
(2−1)乱数発生頻度制御機能
イジングモデルの基底状態探索を行う場合、局所解を脱出するためにスピン値を反転させる確率を適切にコントロールすることが重要である。通常、基底状態探索では、初期時には、局所解を脱出し、解空間の広い範囲を探索できるようにスピン値を反転させる反転確率(具体的には、図2の乱数発生器23における乱数パルスの発生頻度)を高めに設定し、その後、徐々にかかる反転確率を下げる(乱数発生器23における乱数パルスの発生頻度を下げる)ことで基底状態に収束し易くしている。
(2−1)乱数発生頻度制御機能
イジングモデルの基底状態探索を行う場合、局所解を脱出するためにスピン値を反転させる確率を適切にコントロールすることが重要である。通常、基底状態探索では、初期時には、局所解を脱出し、解空間の広い範囲を探索できるようにスピン値を反転させる反転確率(具体的には、図2の乱数発生器23における乱数パルスの発生頻度)を高めに設定し、その後、徐々にかかる反転確率を下げる(乱数発生器23における乱数パルスの発生頻度を下げる)ことで基底状態に収束し易くしている。
このとき、反転確率を下げるのが早すぎると、解空間を探索できる範囲が狭まってしまい、解精度の低下につながるという問題があり、反転確率を下げるのが遅すぎると、基底状態精度は高まるものの、基底状態探索に要する時間が増加するという問題がある。一方で、反転確率を下げる適切な早さは問題ごとに異なり、事前に求めることは難しいという問題もある。
そこで、本実施の形態においては、基底状態探索時におけるイジングモデルのスピンの値を観測し、ごとに、一定時間内に値が「+1」又は「−1」(以下においては、「+1」とする)となる確率を継続的に算出し、この確率の平均値が一定値に収束した場合(正確には、今回算出した当該平均値と、前回算出した当該平均値との差分が予め設定された所定の第2の閾値を下回った場合)にスピンが平衡状態に達したと判断して、乱数パルスの発生頻度を下げるように乱数発生器23(図2)を制御する。
以下、このように乱数発生器23における乱数パルスの発生頻度を制御する機能(以下、これを乱数発生頻度制御機能と呼ぶ)を備えた本実施の形態による情報処理装置80(図1)について、図1及び図21〜図26を参照して説明する。なお、図21〜図26においては、図1〜図20との対応部分に同一符号を付し、その詳細については説明を省略する。
(2−2)本実施の形態による情報処理装置の構成
図1において、80は全体として第2の実施の形態による情報処理装置を示す。この情報処理装置80は、第1の実施の形態について上述したイジングモデル検証機能に加えて、かかる乱数発生頻度制御機能が搭載されている点が第1の実施の形態による情報処理装置1と相違する。
図1において、80は全体として第2の実施の形態による情報処理装置を示す。この情報処理装置80は、第1の実施の形態について上述したイジングモデル検証機能に加えて、かかる乱数発生頻度制御機能が搭載されている点が第1の実施の形態による情報処理装置1と相違する。
実際上、本実施の形態の情報処理装置80の場合、イジングチップ制御プログラム81は、問題変換プログラム8により問題を変換することにより得られたイジングモデルをイジングチップモジュール82内のイジングチップにマッピングする際、上述の制約条件及び第1の観測条件に加えて、スピンの値が「+1」となる確率を監視する際の条件(以下、これを監視条件と呼ぶ)と、その際のスピンの観測条件(以下、これを第2の観測条件と呼ぶ)とをそのイジングチップモジュール82に送信する。
具体的に、イジングチップ制御プログラム81は、かかる監視条件として、観測対象とするスピンと、そのスピンの値が「+1」となる確率を計算する時間間隔とをイジングチップ90(図21)に送信する。またイジングチップ制御プログラム81は、かかる第2の観測条件として、第2のスピン値観測部に設定すべき上述のインターバル、書込み先及び長さをイジングチップモジュール82に送信する。
イジングチップモジュール82は、その内部に設けられたイジングチップ90(図21)の構成が異なる点を除いて第1の実施の形態のイジングチップモジュール6と同様の構成を有する。また本実施の形態のイジングチップ90は、図21に示すように、スピンアレイ91の構成が異なる点と、チップメモリ35に第1の観測結果43、第1の処理情報44及び第1の処理結果45に加えて、第2の観測結果92、第2の処理情報93及び第2の処理結果94が格納される点と、コントローラ95がイジングモデル検証機能に関する処理機能に加えて、上述の乱数発生頻度制御機能に関連する処理機能を備えている点とを除いて第1の実施の形態のイジングチップ24(図3)と同様の構成を有する。
この場合、本実施の形態のスピンアレイ91は、図22に示すように、第1のスピン値観測部70が設けられていないスピンユニット50のうちの一部又は全部のスピンユニットに第2のスピン値観測部100が設けられている点が第1の実施の形態のスピンアレイ30(図3)と相違する。この第2のスピン値観測部100は、乱数発生頻度制御機能のために、対応するスピンユニット50が保持するスピンの値を観測するためのものであり、第1のスピン値観測部70と同様の構成を有する。
そしてイジングチップ90のコントローラ95(図21)は、情報処理装置1のCPU3から第2の観測条件が与えられた場合、その第2の観測条件に含まれるインターバル、書込み先及び長さを第2のスピン値観測部100に設定する。かくして第2のスピン値観測部100は、基底状態探索時、第1のスピン値観測部70と同様にして、対応するスピンユニット50のメモリセルNに格納されたスピンの値を第2の観測条件として設定されたインターバルで取得し、取得したスピンの値を第2の観測結果としてチップメモリ35内の第2の観測条件として設定された書込み先に書き込む。
一方、図23〜図25は、イジングチップ90のチップメモリ35に保持される第2の観測結果92(図23)、第2の処理情報93(図24)及び第2の処理結果94(図25)をそれぞれ示す。
第2の観測結果92は、上述のように第2のスピン値観測部100によりチップメモリ35にそれぞれ書き込まれたスピンの値の観測結果であり、図23に示すように、観測結果(図23の1行)ごとに時刻92A、スピンID92B及び値(スピン値)92Cの各情報をそれぞれ含む。時刻92A、スピンID92B及び値92Cの内容は図14について上述した第1の観測結果43と同様であるため、ここでの説明は省略する。
また第2の処理情報93は、上述の監視条件を表す情報である。コントローラ95は、情報処理装置1のCPU3から与えられた監視条件を第2の処理情報93としてチップメモリ35に格納して管理する。この第2の処理情報93は、図24に示すように、処理ID93A、処理種別93B、時間間隔93C及び対象スピン93Dの各情報を含む。処理ID93A、処理種別93B及び対象スピンの内容は、図15について上述した第1の処理情報44と同様であるため、ここでの説明は省略する。なお図24における処理種別の「分布計算」とは、スピンの値が「+1」となる確率を求める処理を表す。また時間間隔は、かかる確率を計算すべき間隔を表す。
第2の処理結果94は、第2の処理情報93に基づきコントローラ95が実行した各処理の処理結果である。コントローラ95は、情報処理装置80のCPU3から通知されたインターバル経過後、チップメモリ35に蓄積されている第2の観測結果92に対して第2の処理情報93で規定された各処理を実行する。図24の例では、時間間隔として指定された期間(相互作用クロックの「100」クロック分の期間)の観測結果から、対象とするスピンの値が「+1」となる確率を求めることがコントローラ95の処理内容となる。従って、この場合、コントローラ95は、1つのスピンについて上述の期間内の観測結果(スピンの値)を第2の観測結果92からすべて読み出し、読み出した各スピンの値が「+1」となる確率を計算して、その計算結果をチップメモリ35に第2の処理結果94として格納する。
第2の処理結果94は、図25に示すように、スピンID94A、処理の対象となった時刻94B及びその処理の結果94Cの情報を含む。図25の例の場合、時刻94Bは監視条件として指定された時間間隔の開始時刻を表し、結果は、対応する時間間隔における上述の計算結果(対応するスピンの値が「+1」となる確率)を表す。
従って、図25の例の場合、スピンIDが「1」のスピンについては、時刻「100」から指定された時間間隔内の第2の観測結果92に基づいて計算したその値が「+1」となる確率が「0.45」であり、同様に計算した時刻「200」、時刻「300」、時刻「400」、時刻「500」から当該時間間隔内の第2の観測結果92に基づいて計算したかかる確率がそれぞれ「0.38」、「0.34」、「0.33」、「0.33」であったことが示されている。
図26は、本情報処理装置80において、ユーザから与えられた問題データ7(図1)に基づく問題の解をイジングモデルの基底状態として求める際のCPU3の処理の流れを示す。この処理は、ユーザが情報処理装置80を操作して、記憶装置5に格納されている問題データ7を指定し、その解を求めるべき旨の指示を情報処理装置80に与えることにより開始される。
実際上、情報処理装置80のCPU3は、かかる指示が与えられるとこの基底状態探索処理を開始し、まず、記憶装置5に格納されているユーザから与えられた問題データ7を取り込む(SP10)。またCPU3は、問題変換プログラム8(図1)を実行することにより、記憶装置5に格納した問題データ7をイジングモデルに変換する。この際、CPU3は、かかる変換により生成したイジングモデルにおいてスピンが満たすべき制約条件を生成する(SP11)。
この後、CPU3は、ステップSP12〜ステップSP17の処理をイジングチップ制御プログラム81(図1)に基づいて実行する。すなわちCPU3は、まず、ステップSP112で生成したイジングモデルをイジングチップモジュール82(図1)内のイジングチップ90(図21)にマッピングする(SP12)。
続いて、CPU3は、予め指定された上述の監視条件及び第2の観測条件をかかるイジングチップ90に送信する(SP13)。かくして、かかる監視条件及び第2の観測条件を受信したイジングチップ90では、コントローラ95により第2の観測条件がスピンアレイ91(図21)内の各第2のスピン値観測部100(図22)にそれぞれ設定される。
次いで、CPU3は、イジングチップモジュール82のモジュールコントローラ21(図2)を介して相互作用クロック生成部22(図2)を制御することにより、相互作用クロック生成部22に相互作用クロックの生成を開始させると共に、当該モジュールコントローラ21を介して乱数発生器23(図2)に乱数パルスの発生頻度として初期値を設定することにより、乱数発生器23に乱数パルスの発生を開始させる(SP14)。これにより相互作用クロック生成部22により生成された相互作用クロックがイジングチップ90に与えられ、この相互作用クロックに同期して、イジングチップ90において、イジングモデルにおけるスピン間の相互作用動作が開始される。また、乱数発生器23において発生された乱数パルスもイジングチップ90に与えられ、この乱数パルスに基づいてイジングチップ90内の各スピンの値が確率的に反転される。
そしてCPU3は、この後、イジングチップ90にマッピングしたイジングモデルの各スピンの値が平衡状態となるのを待ち受ける(SP15)。
このとき、かかるイジングチップ90のコントローラ95(図21)は、ステップSP13でCPU3から与えられた監視条件に基づいて、対応する各スピンの値が一定時間内に「+1」となる確率をそれぞれ算出すると共に、当該確率の平均値を算出し、今回算出した当該平均値と、前回算出した当該平均値との差分を算出する処理を、当該監視条件において指定された時間間隔で断続的に実行する。そしてコントローラ95は、かかる差分が上述の第2の閾値を下回った場合に、スピンが平衡状態に達したと判断して、その旨をCPU3に通知する。
CPU3は、かかる通知が与えられると、イジングチップモジュール82(図1)のモジュールコントローラ21(図2)を介して乱数発生器23(図2)を制御することにより、乱数パルスの発生頻度を所定値だけ低減させ(SP16)、低減後の発生頻度が予め規定された最終的な発生頻度に到達したか否かを判断する(SP17)。
そしてCPU3は、この判断で否定結果を得るとステップSP15に戻り、この後、ステップSP17で肯定結果を得るまでステップSP15〜ステップSP17の処理を繰り返す。そしてCPU3は、やがて乱数パルスの発生頻度が最終的な発生頻度に到達することによりステップSP17で肯定結果を得ると、そのイジングチップ90からそのイジングモデルのそのときの各スピンの値(つまりそのイジングモデルの基底状態のときの各スピンの値)を取得し、この後、問題変換プログラム8を実行することにより、取得した各スピンの値に基づいて、そのとき得られたそのイジングモデルの基底状態を元の問題の解に変換する(SP18)。
そしてCPU3は、このようにして得られた元の問題の解を情報処理装置1の図示しない表示装置に表示させ(SP19)、この後、後述するステップSP22の処理が終了するのを待って、この基底状態探索処理を終了する。
一方、CPU3は、ステップSP12〜ステップSP19の処理と並行して、ステップSP20〜ステップSP22の処理を実行することにより、かかるイジングモデルが元の問題の性質を正しく反映しているか否かを検証する。このステップSP20〜ステップSP22の処理内容は、図20について上述した第1の実施の形態のステップSP7〜ステップSP9と同様であるため、ここでの説明は省略する。
そしてCPU3は、この後、ステップSP19の処理が終了するのを待って、この基底状態探索処理を終了する。
(2−3)本実施の形態の効果
以上のように本実施の形態の情報処理装置80では、イジングモデルの基底状態の探索途中における各スピンの値を観測し、これらスピンごとにその値が一定期間内に「+1」となる確率をそれぞれ断続的に算出すると共に、算出したスピンごとの当該確率の平均値を断続的に算出し、今回算出した当該平均値と、前回算出した当該平均値との差分が第2の閾値を下回った場合に、スピンが平衡状態に達したと判断して、乱数パルスの発生頻度を下げるように乱数発生器23を制御する。
以上のように本実施の形態の情報処理装置80では、イジングモデルの基底状態の探索途中における各スピンの値を観測し、これらスピンごとにその値が一定期間内に「+1」となる確率をそれぞれ断続的に算出すると共に、算出したスピンごとの当該確率の平均値を断続的に算出し、今回算出した当該平均値と、前回算出した当該平均値との差分が第2の閾値を下回った場合に、スピンが平衡状態に達したと判断して、乱数パルスの発生頻度を下げるように乱数発生器23を制御する。
従って、本実施の形態によれば、乱数発生器23により発生させる乱数パルスの発生頻度の切替えタイミングを事前に算出することなく、基底状態探索の進行状況を反映しながらかかる切替えタイミングをコントロールできるため、不必要に長い相互作用を行うことなく、高い精度の解を得ることができ、かくして第1の実施の形態の情報処理装置1と比べてより一層と有用性及び信頼性の高い情報処理装置を構築することができる。
(3)他の実施の形態
なお上述の第1及び第2の実施の形態においては、情報処理装置1,80のCPU3がイジングチップ24,90のコントローラ34,95を介して第1及び又は第2のスピン値観測部70,100に第1又は第2の観測条件(インターバル、書込み先及び長さ)を設定するようにした場合について述べたが、本発明はこれに限らず、これら第1又は第2の観測条件の各値が予め固定値として各第1及び第2のスピン値観測部70,100にそれぞれ設定されているようにしても良い。
なお上述の第1及び第2の実施の形態においては、情報処理装置1,80のCPU3がイジングチップ24,90のコントローラ34,95を介して第1及び又は第2のスピン値観測部70,100に第1又は第2の観測条件(インターバル、書込み先及び長さ)を設定するようにした場合について述べたが、本発明はこれに限らず、これら第1又は第2の観測条件の各値が予め固定値として各第1及び第2のスピン値観測部70,100にそれぞれ設定されているようにしても良い。
また上述の第1及び第2の実施の形態においては、第1及び又は第2のスピン値観測部70,100の処理部75をCPU及びメモリを含んでなるマイクロコンピュータ構成を有し、CPUがメモリに格納されたソフトウェアを実行することにより処理部75全体として、第1又は第2の観測条件に従って対応するスピンの値を観測(取得)するようにした場合について述べたが、本発明はこれに限らず、例えば処理部75を論理回路として構成するようにしても良い。
さらに上述の実施の形態においては、イジングチップ24,90を制御する機能と、問題をイジングモデルに変換する機能と、問題をイジングモデルに変換する際に得られた当該イジングモデルの各スピンが満たすべき制約条件と、各第1のスピン値観測部70によりそれぞれ取得されたイジングモデルの基底状態探索時における対応する各スピンの値とに基づいて、イジングモデルが問題の性質を正しく反映しているか否かを検証する機能と、各第2のスピン値観測部100によりそれぞれ取得されたイジングモデルの基底状態探索時における対応する各スピンの値に基づいて、スピンごとに、所定の第2の時間内における当該スピンの値が所定値となる確率を継続的に算出し、算出結果に基づいて、乱数発生器における乱数パルスの発生頻度を制御する機能とを有する情報処理部を、情報処理装置1,80のCPU3と、イジングチップ24,90内のコントローラ34,95とで構成するようにした場合について述べたが、本発明はこれに限らず、これらの機能をCPU3及びコントローラ34,95のいずれか一方に集約して持たせるようにしても良い。ただし、第1及び第2の実施の形態のようにこれらの機能をCPU3及びコントローラ34,95に分けて持たせることにより、これらCPU3及びコントローラ34,95の負荷を分散させることができる。
さらに上述の第2実施の形態においては、第1のスピン値観測部70が対応付けて設けられていないスピンに対応させて第2のスピン値観測部100を設けるようにした場合について述べたが、本発明はこれに限らず、同じ1つのスピンに対応させて第1及び第2のスピン値観測部70,100を設けるようにしても良い。さらには、観測対象の各スピンにそれぞれ対応させてそれぞれ1つのスピン値観測部を設け、このスピン値観測部により第1及び第2の観測条件に従って対応するスピンの値を観測(取得)するようにしても良い。
本発明は、問題の解をイジングモデルの基底状態として求める情報処理装置に適用することができる。
1,80……情報処理装置、3……CPU、6,82……イジングチップモジュール、8……問題変換プログラム、9,81……イジングチップ制御プログラム、11……観測結果検証プログラム、12……制約条件、22……相互作用クロック生成部、23……乱数発生器、24,90……イジングチップ、30,91……スピンアレイ、34,95……コントローラ、35……チップメモリ、43,92……観測結果、44,93……処理情報、45,94……処理結果、50……スピンユニット、70,100……スピン値観測部、71……インターバル保持部、72……書込み先保持部、73……長さ保持部、74……書込みカウンタ、75……処理部。
Claims (10)
- 問題の解をイジングモデルの基底状態として求める情報処理装置において、
前記問題を前記イジングモデルに変換する情報処理部と、
前記イジングモデルにおける各スピン間の相互作用を模擬するイジングチップと、
前記イジングモデルの一部又は全部の前記スピンにそれぞれ対応させて前記イジングチップに設けられ、それぞれ対応する前記スピンの値を取得する複数の第1のスピン値観測部と
を備え、
前記情報処理部は、
前記問題を前記イジングモデルに変換する際に得られた当該イジングモデルの各前記スピンが満たすべき制約条件と、各前記第1のスピン値観測部によりそれぞれ取得された前記イジングモデルの基底状態探索時における対応する各前記スピンの値とに基づいて、前記イジングモデルが前記問題の性質を正しく反映しているか否かを検証する
ことを特徴とする情報処理装置。 - 前記情報処理部は、
前記第1のスピン値観測部により取得された各前記スピンの値に基づいて、対応する前記スピンの値が前記制約条件を満たすか否かを判定し、
判定結果に基づいて、対応する前記スピンの値が所定の第1の時間内に前記制約条件を満たす割合を時系列に沿って順次算出し、
当該割合が収束するか否かに基づいて、前記イジングモデルが前記問題の性質を正しく反映しているか否かを検証する
ことを特徴とする請求項1に記載の情報処理装置。 - 前記情報処理部は、
前記イジングチップを制御する制御部と、
前記イジングチップ内に設けられたコントローラとを備え、
前記制御部は、
前記問題を前記イジングモデルに変換すると共に、対応する前記スピンの値が前記制約条件を満たすか否かを判定する判定処理の処理内容を表す第1の処理情報を前記コントローラに送信し、
前記コントローラは、
前記イジングモデルの基底状態探索時に、前記第1のスピン値観測部により取得される対応する前記スピンの値と、前記第1の処理情報とに基づいて、当該スピンの値が前記制約条件を満たすか否かを判定し、
前記制御部は、
前記コントローラの判定結果に基づいて、対応する前記スピンの値が前記第1の時間内に前記制約条件を満たす割合を時系列に沿って順次算出し、
当該割合が収束するか否かに基づいて、前記イジングモデルが前記問題の性質を正しく反映しているか否かを検証する
ことを特徴とする請求項2に記載の情報処理装置。 - 乱数パルスを発生する乱数発生器と、
前記イジングモデルの一部又は全部のスピンにそれぞれ対応させて前記イジングチップに設けられ、それぞれ対応する前記スピンの値を取得する複数の第2のスピン値観測部と
をさらに備え、
前記情報処理部は、
各前記第2のスピン値観測部によりそれぞれ取得された前記イジングモデルの基底状態探索時における対応する各前記スピンの値に基づいて前記スピンが平衡状態に達したか否かを断続的に判断し、前記スピンが平衡状態に達したと判断した場合に、前記乱数発生器における前記乱数パルスの発生頻度を制御する
ことを特徴とする請求項1に記載の情報処理装置。 - 前記情報処理部は、
前記スピンごとに、一定時間内に当該スピンの値が所定値となる確率を断続的に算出すると共に、算出した前記スピンごとの当該確率の平均値を断続的に算出し、今回算出した当該平均値と、前回算出した当該平均値との差分が予め定められた第2の閾値を下回った場合に前記スピンが平衡状態に達したと判断する
ことを特徴とする請求項4に記載の情報処理装置。 - 問題の解をイジングモデルの基底状態として求める情報処理装置において実行される情報処理方法であって、
前記情報処理装置は、
前記イジングモデルにおける各スピン間の相互作用を模擬するイジングチップと、
前記イジングモデルの一部又は全部の前記スピンにそれぞれ対応させて前記イジングチップに設けられ、それぞれ対応する前記スピンの値を取得する複数の第1のスピン値観測部と
前記イジングチップを制御する情報処理部と
を有し、
前記情報処理部が、前記問題を前記イジングモデルに変換する第1のステップと、
前記情報処理部が、前記問題を前記イジングモデルに変換する際に得られた当該イジングモデルの各前記スピンが満たすべき制約条件と、各前記第1のスピン値観測部によりそれぞれ取得された前記イジングモデルの基底状態探索時における対応する各前記スピンの値とに基づいて、前記イジングモデルが前記問題の性質を正しく反映しているか否かを検証する第2のステップと
を備えることを特徴とする情報処理方法。 - 前記第2のステップにおいて、前記情報処理部は、
前記第1のスピン値観測部により取得された各前記スピンの値に基づいて、対応する前記スピンの値が前記制約条件を満たすか否かを判定し、
判定結果に基づいて、対応する前記スピンの値が所定の第1の時間内に前記制約条件を満たす割合を時系列に沿って順次算出し、
当該割合が収束するか否かに基づいて、前記イジングモデルが前記問題の性質を正しく反映しているか否かを検証する
ことを特徴とする請求項6に記載の情報処理方法。 - 前記情報処理部は、
前記イジングチップを制御する制御部と、
前記イジングチップ内に設けられたコントローラとを有し、
前記第2のステップでは、
前記制御部が、前記問題を前記イジングモデルに変換すると共に、対応する前記スピンの値が前記制約条件を満たすか否かを判定する判定処理の処理内容を表す第1の処理情報を前記コントローラに送信し、
前記コントローラが、前記イジングモデルの基底状態探索時に、前記第1のスピン値観測部により取得される対応する前記スピンの値と、前記第1の処理情報とに基づいて、当該スピンの値が前記制約条件を満たすか否かを判定し、
前記制御部が、前記コントローラの判定結果に基づいて、対応する前記スピンの値が前記第1の時間内に前記制約条件を満たす割合を時系列に沿って順次算出し、当該割合が収束するか否かに基づいて、前記イジングモデルが前記問題の性質を正しく反映しているか否かを検証する
ことを特徴とする請求項7に記載の情報処理方法。 - 前記情報処理装置は、
乱数パルスを発生する乱数発生器と、
前記イジングモデルの一部又は全部のスピンにそれぞれ対応させて前記イジングチップに設けられ、それぞれ対応する前記スピンの値を取得する複数の第2のスピン値観測部と
をさらに有し、
前記第2のステップにおいて、前記情報処理部は、
各前記第2のスピン値観測部によりそれぞれ取得された前記イジングモデルの基底状態探索時における対応する各前記スピンの値に基づいて前記スピンが平衡状態に達したか否かを断続的に判断し、前記スピンが平衡状態に達したと判断した場合に、前記乱数発生器における前記乱数パルスの発生頻度を制御する
ことを特徴とする請求項6に記載の情報処理方法。 - 前記第2のステップにおいて、前記情報処理部は、
前記スピンごとに、一定時間内に当該スピンの値が所定値となる確率を断続的に算出すると共に、算出した前記スピンごとの当該確率の平均値を断続的に算出し、今回算出した当該平均値と、前回算出した当該平均値との差分が予め定められた第2の閾値を下回った場合に前記スピンが平衡状態に達したと判断する
ことを特徴とする請求項9に記載の情報処理方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2015/071485 WO2017017807A1 (ja) | 2015-07-29 | 2015-07-29 | 情報処理装置及び方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2017017807A1 JPWO2017017807A1 (ja) | 2018-06-28 |
JP6496410B2 true JP6496410B2 (ja) | 2019-04-03 |
Family
ID=57885404
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017530537A Active JP6496410B2 (ja) | 2015-07-29 | 2015-07-29 | 情報処理装置及び方法 |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP6496410B2 (ja) |
WO (1) | WO2017017807A1 (ja) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6935356B2 (ja) * | 2018-03-30 | 2021-09-15 | 株式会社日立製作所 | 半導体装置、情報処理システム、および情報処理方法 |
JP6954245B2 (ja) * | 2018-09-13 | 2021-10-27 | Jfeスチール株式会社 | 処理順序作成装置および処理順序作成方法 |
JP7187972B2 (ja) | 2018-10-24 | 2022-12-13 | 富士通株式会社 | 装置、方法およびプログラム |
WO2020170410A1 (ja) * | 2019-02-22 | 2020-08-27 | 株式会社 東芝 | 情報処理システム、情報処理方法およびプログラム |
JP7185140B2 (ja) | 2019-04-11 | 2022-12-07 | 富士通株式会社 | 最適化装置及び最適化装置の制御方法 |
JP7323777B2 (ja) | 2019-06-18 | 2023-08-09 | 富士通株式会社 | 最適化装置および最適化方法 |
JP2021131723A (ja) | 2020-02-19 | 2021-09-09 | 富士通株式会社 | 情報処理方法、情報処理装置及びプログラム |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7533068B2 (en) * | 2004-12-23 | 2009-05-12 | D-Wave Systems, Inc. | Analog processor comprising quantum devices |
-
2015
- 2015-07-29 WO PCT/JP2015/071485 patent/WO2017017807A1/ja active Application Filing
- 2015-07-29 JP JP2017530537A patent/JP6496410B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
JPWO2017017807A1 (ja) | 2018-06-28 |
WO2017017807A1 (ja) | 2017-02-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6496410B2 (ja) | 情報処理装置及び方法 | |
JP5922203B2 (ja) | 半導体装置 | |
US9804827B2 (en) | Information processing system and management apparatus | |
EP3757899A1 (en) | Neural architecture for self supervised event learning and anomaly detection | |
JP5865456B1 (ja) | 半導体装置 | |
JP5864684B1 (ja) | 半導体装置 | |
WO2017033326A1 (ja) | 半導体装置および情報処理装置 | |
JP6503072B2 (ja) | 半導体システムおよび計算方法 | |
US10191880B2 (en) | Semiconductor device and information processing device using the topology of an ising model | |
US10896241B2 (en) | Information processing device and control method therefor | |
US9946513B2 (en) | Semiconductor device and information processing system | |
JP2019179364A (ja) | 半導体装置、情報処理システム、および情報処理方法 | |
JP6207584B2 (ja) | 情報処理システム及び管理装置 | |
JP5894645B1 (ja) | 半導体装置及びその品質管理方法 | |
JP5901712B2 (ja) | 半導体装置および情報処理装置 | |
Cook et al. | GPU based parallel ising computing for combinatorial optimization problems in VLSI physical design | |
US20230237342A1 (en) | Adaptive lookahead for planning and learning | |
JPWO2017037902A1 (ja) | 半導体システムおよび計算方法 | |
US9666252B2 (en) | Semiconductor device for calculating an interaction model | |
US20190155330A1 (en) | Information processing system | |
JP6207583B2 (ja) | 半導体装置および情報処理方法 | |
US10665280B2 (en) | Information processing apparatus and semiconductor integrated circuit device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20180119 |
|
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: 20190226 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20190308 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6496410 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |