JP6476292B2 - 情報処理装置及びその制御方法 - Google Patents
情報処理装置及びその制御方法 Download PDFInfo
- Publication number
- JP6476292B2 JP6476292B2 JP2017522787A JP2017522787A JP6476292B2 JP 6476292 B2 JP6476292 B2 JP 6476292B2 JP 2017522787 A JP2017522787 A JP 2017522787A JP 2017522787 A JP2017522787 A JP 2017522787A JP 6476292 B2 JP6476292 B2 JP 6476292B2
- Authority
- JP
- Japan
- Prior art keywords
- spin
- ising
- interaction
- ising model
- spins
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0852—Quantum cryptography
-
- 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
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
-
- 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
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/01—Dynamic search techniques; Heuristics; Dynamic trees; Branch-and-bound
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computer Security & Cryptography (AREA)
- Signal Processing (AREA)
- Electromagnetism (AREA)
- Computing Systems (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Artificial Intelligence (AREA)
- Algebra (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Databases & Information Systems (AREA)
- Hall/Mr Elements (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Multi Processors (AREA)
Description
本発明は情報処理装置及びその制御方法に関し、特に、イジングモデルの基底状態探索を行うようにして最低化問題を解く情報処理装置に適用して好適なものである。
イジングモデルは磁性体の振舞いを説明するための統計力学のモデルである。イジングモデルは+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)。
ところで、かかる特許文献1に開示された装置では、ハードウェア構成によって表現可能なグラフ構造(イジングモデル)が限定される。しかしながら、最適化問題をイジングモデルの基底状態探索問題に変換した場合、変換後のイジングモデルがその最適化問題に固有の形態となるため、変換後のイジングモデルを常に引用文献1の装置にマッピングできるとは限らない。よって、様々な最適化問題への対応を考えると、任意のイジングモデルの基底状態探索が可能なハードウェアの実現が要求される。
完全グラフを表現可能なハードウェアによれば、この課題は解決される。しかしこの場合、ハードウェア内の配線が複雑になり、スケーラビリティおよびエネルギー効率が低下するだけでなく、安価かつ容易に製造できないという問題がある。
そこで基底状態を変化させることなく、基底状態を求めたいイジングモデルを、ハードウェアが表現可能なグラフで表されるイジングモデルに変換することが求められる。特に、半導体装置のような固体素子でハードウェアを構成するとき、DRAM(Dynamic Random Access Memory)やSRAM(Static Random Access Memory)などの記憶装置に代表されるようなアレイ構造で実現される。そのため任意のイジングモデルを基底状態不変で格子イジングモデルに変換することが望ましい。
本発明は以上の点を考慮してなされたもので、安価かつ容易に製造でき、任意のイジングモデルの基底状態を探索可能な情報処理装置及びその制御方法を提案しようとするものである。
かかる課題を解決するため本発明においては、イジングモデルである問題のエネルギーを最小とするスピン配列である基底状態又は当該基底状態の近似解を前記問題の解として算出する情報処理装置において、それぞれ1又は複数のスピンの値を保持し、前記スピン間の相互作用を模擬する複数の半導体チップと、必要な前記半導体チップ間をそれぞれ接続するチップ間配線と、各前記半導体チップを制御して、当該各半導体チップに相互作用演算をそれぞれ実行させる制御部とを有し、前記制御部が、前記問題のデータを、当該問題のイジングモデルの基底状態のスピン配列を変化させずに、複数の前記半導体チップにより表現可能な格子状のイジングモデルのデータに変換し、変換した前記格子状のイジングモデルのデータを分割して複数の前記半導体チップにそれぞれ割り当てるようにした。
また本発明においては、イジングモデルである問題のエネルギーを最小とするスピン配列である基底状態又は当該基底状態の近似解を前記問題の解として算出する情報処理装置の制御方法において、前記情報処理装置は、それぞれ1又は複数のスピンの値を保持し、前記スピン間の相互作用を模擬する複数の半導体チップと、必要な前記半導体チップ間をそれぞれ接続するチップ間配線と、各前記半導体チップを制御して、当該各半導体チップに相互作用演算をそれぞれ実行させる制御部とを有し、前記制御部が、前記問題のデータを、当該問題のイジングモデルの基底状態のスピン配列を変化させずに、複数の前記半導体チップにより表現可能な格子状のイジングモデルのデータに変換する第1のステップと、前記制御部が、変換した前記格子状のイジングモデルのデータを分割して複数の前記半導体チップにそれぞれ割り当てる第2のステップと、前記制御部が、各前記半導体チップに前記相互作用演算をそれぞれ実行させる第3のステップとを設けるようにした。
本情報処理装置及びその制御方法によれば、任意のイジングモデルの基底状態を探索することができる。また、ある半導体チップが値を保持するスピンのうち、他の半導体チップが値を保持するスピンに相互作用を及ぼすスピンの数を低減させることができるため、結果として、半導体チップ間を接続するチップ間配線の配線量を抑えることができる。
本発明によれば、安価かつ容易に製造でき、任意のイジングモデルの基底状態を探索可能な情報処理装置及びその制御方法を実現できる。
以下図面について、本発明の一実施の形態を詳述する。
(1)有向グラフに拡張したイジングモデル
本実施の形態では、イジングモデルを拡張した、以下の(2)式で示されるモデルを、これ以降イジングモデルと呼ぶものとする。
本実施の形態では、イジングモデルを拡張した、以下の(2)式で示されるモデルを、これ以降イジングモデルと呼ぶものとする。
(1)式で示したイジングモデルとの違いは、(2)式では有向グラフで示されるような相互作用が許されることにある。一般的にイジングモデルはグラフ理論では無向グラフとして描画することができる。それは、イジングモデルの相互作用は、i番目スピンからj番目スピンへの相互作用係数Ji,jとj番目スピンからi番目スピンへの相互作用係数Jj,iとを区別していないことによる。
本発明はイジングモデルを拡張し、Ji,jとJj,iを区別しても適用できるため、本実施の形態でも有向グラフ化したイジングモデルを取り扱う。なお、無向グラフのイジングモデルを有向グラフのイジングモデルで取り扱う場合には、単にJi,jとJj,iとの双方向に同じ相互作用係数を定義することで可能である。この場合、同じモデルでも(1)式のエネルギー関数に対して(2)式のエネルギー関数ではエネルギーの値が2倍になる。
(2)本実施の形態による情報処理装置の構成
(2−1)情報処理装置の全体構成
図1において、1は全体として本実施の形態による情報処理装置を示す。この情報処理装置1は、パーソナルコンピュータやワークステーション又はサーバなどから構成され、システムバス2を介して接続されたCPU(Central Processing Unit)3、メモリ4、記憶装置5及び複数のマルチイジングチップ6を備える。
(2−1)情報処理装置の全体構成
図1において、1は全体として本実施の形態による情報処理装置を示す。この情報処理装置1は、パーソナルコンピュータやワークステーション又はサーバなどから構成され、システムバス2を介して接続されたCPU(Central Processing Unit)3、メモリ4、記憶装置5及び複数のマルチイジングチップ6を備える。
CPU3は、情報処理装置1全体の動作制御を司るプロセッサである。またメモリ4は、例えば揮発性の半導体メモリから構成され、各種プログラムを記憶するために利用される。記憶装置5は、例えばハードディスク装置やSSD(Solid State Drive)などから構成され、プログラムやデータを長期間保持するために利用される。
本実施の形態の場合、記憶装置5には、本情報処理装置1が解くべき単一かつイジングモデル形式の問題の問題データ7が格納され、メモリ4には、問題変換プログラム8及びマルチイジングチップ制御プログラム9が格納される。問題変換プログラムは、かかる問題のイジングモデルを必要に応じて図11について後述する単一の格子イジングモデルに変換すると共に、この問題を必要に応じて複数の部分問題に分割し、これらの部分問題を個々のマルチイジングチップ6にそれぞれ振り分けるプログラムである。またマルチイジングチップ制御プログラム9は、個々のマルチイジングチップ6において対応する部分問題を解くための制御を行うためのプログラムである。部分問題は、それ自体が他の部分問題と独立した単一のイジングモデル形式の問題である。
なお、イジングモデル形式でない問題データをイジングモデル形式の問題データ7に変換するプログラムをメモリ4に格納しておくようにしてもよい。このようにすることによりイジングモデル形式でない問題についても対応可能となり、本情報処理装置1の有用性を向上させることができる。
マルチイジングチップ6は、イジングモデルの基底状態探索を行う専用ハードウェアであり、例えば画面描画処理のための専用ハードウェアであるGPU(Graphics Processing Unit)のように、情報処理装置1に装着する拡張カードの形態を取る。
マルチイジングチップ6は、図2に示すように、インタフェース10、イジングチップ群11及び制御部12を備えて構成され、インタフェース10及びシステムバス2(図1)を介してCPU3(図1)との間でコマンドや情報の送受を行う。
イジングチップ群11は、それぞれがイジングモデルの基底状態探索を行う専用のハードウェアである複数のイジングチップ13から構成される。イジングチップ13間はチップ間配線14により接続されており、このチップ間配線14を介してイジングチップ13同士が必要な情報を送受する。
制御部12は、イジングチップ群11を構成する各イジングチップ13を制御する機能を有し、コントローラ15、相互作用クロック生成器16及び乱数発生器17を備えて構成される。
コントローラ15は、マルチイジングチップ6全体の動作制御を司るプロセッサであり、情報処理装置1のCPU3(図1)からシステムバス2(図1)及びインタフェース10を介して与えられるコマンドに従ってイジングチップ群11を構成する各イジングチップ13の動作や、相互作用クロック生成器16及び乱数発生器17を制御する。
また相互作用クロック生成器16は、後述する相互作用クロックを生成するクロック生成器である。相互作用クロック生成器16により生成された相互作用クロックは、イジングチップ群11を構成する各イジングチップ13にそれぞれ与えられる。乱数発生器17は、後述のように各イジングチップ13において実行される基底状態探索が局所最適解に陥るのを防止するためのランダムなビット列でなる乱数を発生させる。乱数発生器17により発生された乱数は、各イジングチップ13にそれぞれ与えられる。
(2−2)イジングチップの構成
図3は、イジングチップ13の概略構成を示す。この図3に示すように、イジングチップ13は、スピンアレイ20、I/O(Input/output)アドレスデコーダ21、I/Oドライバ22、相互作用アドレスデコーダ23及びチップ間接続部24を備えて構成される。本実施の形態では、イジングチップ13は現在広く用いられているCMOS(Complementary Metal-Oxide Semiconductor)集積回路として実装されていることを想定して説明するが、他の固体素子でも実現可能である。
図3は、イジングチップ13の概略構成を示す。この図3に示すように、イジングチップ13は、スピンアレイ20、I/O(Input/output)アドレスデコーダ21、I/Oドライバ22、相互作用アドレスデコーダ23及びチップ間接続部24を備えて構成される。本実施の形態では、イジングチップ13は現在広く用いられているCMOS(Complementary Metal-Oxide Semiconductor)集積回路として実装されていることを想定して説明するが、他の固体素子でも実現可能である。
イジングチップ13は、スピンアレイ20にリード/ライトを行うためのSRAM互換インタフェース30としてアドレスバス31、データバス32、R/W制御線33及びI/Oクロック線34を備える。またイジングチップ13は、イジングモデルの基底状態探索の制御を行うための相互作用制御インタフェース35として、相互作用アドレス線36及び相互作用クロック線37も備える。
イジングチップ13では、イジングモデルのスピンσi、相互作用係数Ji,j及び外部磁場係数hiをすべてスピンアレイ20内のメモリセルに記憶する情報で表現する。スピンσiの初期状態の設定や基底状態探索完了後の解読み出しはSRAM互換インタフェース30を介して行う。またイジングチップ13では、基底状態を探索すべきイジングモデルをスピンアレイ20に設定するための相互作用係数Ji,j及び外部磁場係数hiのリード/ライトもSRAM互換インタフェース30を介して行う。
そのため、スピンアレイ20内のスピンσi、相互作用係数Ji,j及び外部磁場係数hiにはアドレスが付与されている。そしてイジングチップ13にスピンσi、相互作用係数Ji,j又は外部磁場係数hiをリード/ライトする場合、対応するアドレスがコントローラ15からアドレスバス31を介してI/Oアドレスデコーダ21に与えられ、これらスピンσi、相互作用係数Ji,j及び外部磁場係数hiのリード/ライトを制御するR/W制御信号がコントローラ15からR/W制御線33を介してI/Oドライバ22に与えられる。
かくしてI/Oアドレスデコーダ21は、アドレスバス31を介して与えられたアドレスに基づいてスピンアレイ20のワード線をアクティベートし、I/Oドライバ22は、R/W制御線33を介して与えられたR/W制御信号に基づいてスピンアレイ20内の対応するビット線を駆動する。これによりデータバス32を介して与えられたスピンσiの初期値や、相互作用係数Ji,j及び外部磁場係数hiの設定値がスピンアレイ20に設定され、又は、基底状態探索完了後の解がスピンアレイ20から読み出されてデータバス32を介して外部に出力される。
なお、SRAM互換インタフェース30を構成するアドレスバス31、データバス32及びR/W制御線33は、I/Oクロック線34を介して制御部12からイジングチップ13に与えられるI/Oクロックに同期して動作する。ただし、本発明においてインタフェースが同期式である必要はなく、非同期式のインタフェースでも良い。本実施の形態では、同期式のインタフェースであるという前提で説明を行う。
また、イジングチップ13は、基底状態探索を行うために、スピンアレイ20の内部でスピン間の相互作用を実現する。この相互作用を外部から制御するのが相互作用制御インタフェース35である。具体的に、イジングチップ13は、コントローラ15から与えられる相互作用を行うスピン群を指定するアドレスを相互作用アドレス線36を介して入力し、相互作用クロック線37を介して入力される相互作用クロック生成器16からの相互作用クロックに同期して相互作用を行う。相互作用アドレスデコーダ23は、相互作用アドレス線36を介して与えられたアドレスに基づいてスピンアレイ20に対する相互作用係数Ji,j及び外部磁場係数hiのリード/ライトを行う。
加えて、イジングチップ13は、後述のようにイジングモデルのスピンを表現するメモリセルの値を確率的に反転させる乱数を注入するための乱数注入線38を有している。図2について上述した乱数発生器17により発生された乱数は、この乱数注入線38を介してスピンアレイ20に与えられる。
チップ間接続部24は、隣接して配置されたイジングチップ13との間で必要なスピンσiの値を送受する際のインタフェースとして機能する。チップ間接続部24の詳細については後述する。
(2−3)スピンアレイの構成
スピンアレイ20は、1個のスピンσi並びにそれに付随する相互作用係数Ji,j及び外部磁場係数hiの保持と、基底状態探索演算とを実現するスピンユニットを基本構成単位として、スピンユニットを多数個並べた構成を有する。
スピンアレイ20は、1個のスピンσi並びにそれに付随する相互作用係数Ji,j及び外部磁場係数hiの保持と、基底状態探索演算とを実現するスピンユニットを基本構成単位として、スピンユニットを多数個並べた構成を有する。
図4は、スピンユニット40を複数個並べることで、3次元格子状のトポロジを持つイジングモデルを構成する例を示している。図4の例は、3(X軸方向)×3(Y軸方向)×2(Z軸方向)の大きさの3次元格子である。座標軸の定義は図示した通り、図面右方向をX軸、図面下方向をY軸、図面奥行き方向をZ軸としているが、この座標軸は実施の形態の説明上便宜的に必要なだけであり、本発明とは関係しない。3次元格子以外のトポロジ、例えばツリー状のトポロジなどを利用する場合には、座標軸とは別にツリーの段数等で表現することになる。図4の3次元格子状のトポロジにおいて、スピン間の相互作用をグラフとしてとらえると、最大で次数5のスピン(頂点)が必要となる。なお、外部磁場係数の接続も含めて考えると、最大で次数6が必要となる。
図4に示す1個のスピンユニット40には、隣接するスピン(例えば隣接するスピンが5個の場合σj,σk,σl,σm,σn)の値が入力される。このためスピンユニット40は、これら入力する隣接するスピンの値を保持するためのメモリセルを有している。またスピンユニット40は、かかるスピンの値に加え、外部磁場係数と、上述した隣接するスピンとの相互作用係数(隣接する5スピンとの相互作用係数Jj,i,Jk,i,Jl,i,Jm,i,Jn,i)とをそれぞれ保持するメモリセルをも有している。
(2−4)スピンユニットの構成
スピンユニット40の一構成例を図7及び図8を用いて説明する。スピンユニット40は2つの側面をもっており、便宜上、図7及び図8に分けて説明するが、1個のスピンユニット40は図7及び図8の構成の双方を含む。図7はスピンユニット40間の相互作用を実現するための回路を示し、図8はスピンユニット40が有するメモリセルN,IS0,IS1,IU0,IU1,IL0,IL1,IR0,IR1,ID0,ID1,IF0,IF1にイジングチップ13外からアクセスするためのインタフェースであるビット線41とワード線42とに注目してスピンユニット40の構成を図示したものである。
スピンユニット40の一構成例を図7及び図8を用いて説明する。スピンユニット40は2つの側面をもっており、便宜上、図7及び図8に分けて説明するが、1個のスピンユニット40は図7及び図8の構成の双方を含む。図7はスピンユニット40間の相互作用を実現するための回路を示し、図8はスピンユニット40が有するメモリセルN,IS0,IS1,IU0,IU1,IL0,IL1,IR0,IR1,ID0,ID1,IF0,IF1にイジングチップ13外からアクセスするためのインタフェースであるビット線41とワード線42とに注目してスピンユニット40の構成を図示したものである。
スピンユニット40は、イジングモデルのスピンσ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参照)。
ここで、スピンユニット40はi番目のスピンを表現するものとして説明を行う。メモリセルNはスピンを表現するためのメモリセルであり、スピンの値を保持する。スピンの値はイジングモデルでは+1/−1(+1を上、−1を下とも表現する)であるが、これをメモリセルが保持可能な2値である0/1に対応させる。例えば、+1を1、−1を0に対応させる。
図5を用いて、スピンユニット40が有するメモリセル対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)との相互作用係数をそれぞれ記憶する。
また、イジングモデルを有向グラフとして捉えた場合に、あるスピンから見ると他のスピンが自スピンに及ぼす影響の係数を持つことになる。自スピンが他のスピンに与える影響の係数は、それぞれの他のスピンに属する。すなわち、このスピンユニット40は最大で5個のスピンと接続される。本実施の形態のイジングチップ13では、外部磁場係数及び相互作用係数として+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も同様に係数とビットの値とを対応させている。
スピンユニット40内のメモリセルN,IS0,IS1,IU0,IU1,IL0,IL1,IR0,IR1,ID0,ID1,IF0及びIF1は、それぞれイジングチップ13の外部からリード/ライト可能でなければならない。そのために、図8に示すように、スピンユニット40はビット線41とワード線42とをそれぞれ有している。
そしてイジングチップ13では、図9に示すように、スピンユニット40が半導体基板上にタイル状に並べられてビット線41とワード線42とが接続されており、I/Oアドレスデコーダ21とI/Oドライバ22でこれらのスピンユニット40を駆動、制御又は読み出しすることにより、一般的なSRAM(Static Random Access Memory)と同様にスピンユニット40内のメモリセルをイジングチップ13のSRAM互換インタフェース30でリード/ライトすることができるようになされている。
なお図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のスピンユニットが交互に配置される。
またスピンユニット40は同時に更新を行うために、相互作用を計算して次のスピンの状態を決定するための回路を、スピンユニット40毎に独立して持っている。図7では、スピンユニット40は、外部とのインタフェースとして、信号線EN,NU,NL,NR,ND,NF,ON及びRNDを有する。信号線ENは、当該スピンユニット40のスピンの更新を許可する切替え信号を入力するインタフェースである。この切替え信号でセレクタ43を制御することで、メモリセルNに保持されたスピンの値を、後述の多数決論理回路44からOR回路45を介してセレクタ43に与えられる値に更新することができる。
信号線ONは、当該スピンユニット40のスピンの値を他のスピンユニット40(図4のトポロジで隣接するユニット)に出力するインタフェースである。信号線NU,NL,NR,ND及びNFは、それぞれ他のスピンユニット40(図4のトポロジで隣接するユニット)が保持するスピンの値を入力するためのインタフェースである。信号線NUは上側のスピン(Y軸方向で−1)、信号線NLは左側のスピン(X軸方向で−1)、信号線NRは右側のスピン(X軸方向で+1)、信号線NDは下側のスピン(Y軸方向で+1)、信号線NFは奥行き方向に接続するスピン(Z軸方向で+1ないしは−1)からの入力である。
スピンユニット40では隣接スピンとの間でエネルギーを最小化するようにスピンの次状態を決定するが、それは隣接スピンと相互作用係数の積、及び、外部磁場係数を見たときに、正の値と負の値のどちらが支配的か判断することと等価である。例えば、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に示した論理回路46は、上述の相互作用を行うための回路である。まず、隣接スピンの状態と、相互作用係数の+1/−1を示すメモリセルIU1,IL1,IR1,ID1,IF1が保持する値との排他的論理和の否定(XNOR)をXNOR回路47で求める。これにより、その相互作用だけを見た時にエネルギーを最小化するスピンの次状態を計算することができる(+1は1、−1は0にエンコードされているものとする)。
もし、相互作用係数が+1/−1だけであれば、XNOR回路47の出力のうち+1/−1のどちらが多いかを多数決論理回路44において多数決論理で判定すればスピンの次状態を決定することができる。外部磁場係数に関しては、常に状態+1のスピンとの相互作用係数に相当するものと考えれば、単に外部磁場係数の値がスピンの次状態を決定する多数決論理回路44に入力すべき値となる。
次に、係数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回路48を利用して、係数のイネーブルを決めるビット(ビットセルIS0,IU0,IL0,IR0,ID0及びIF0にそれぞれ保持されたビット)の値により、多数決論理回路44に、先に述べたスピン次状態の候補となる値の複製か、その反転を同時に入力する。例えば、メモリセルIS0が保持するビットの値が0の場合、メモリセルIS1が保持するビットの値と、メモリセルIS1が保持するビットの値を反転させた値が同時に多数決論理回路44に入力されるので、外部磁場係数の影響は無い(外部磁場係数が0に相当する)ことになる。また、メモリセルIS0が保持するビットの値が1の場合には、メモリセルIS1が保持するビットの値と、その値と同じ値(複製)が同時に多数決論理回路44に入力されることになる。
上述したスピン間の相互作用によるエネルギー最小化で、適用されたイジングモデルの基底状態探索を実現することができるが、これだけでは局所最適解に陥ってしまう可能性がある。基本的に、エネルギーを小さくする方向の動きしかないため、一旦局所最適解に陥るとそこから抜け出すことができず、大域最適解に到達しない。そのため、局所最適解から脱出するための作用として、スピンを表現するメモリセルの値を確率的に反転されるために、スピンユニット40はインタフェースとしてRND線49を有する。
そしてスピンユニット40には、上述のように乱数発生器17(図2)から乱数注入線38(図3)を介してスピンアレイ20(図3)に与えられた乱数がこのRND線49を介して与えられ、この乱数がOR回路45に入力することで、スピンの値が確率的に反転される。
(3)格子イジングモデルを利用した任意のイジングモデルの基底状態探索方式
次に、マルチイジングチップ6(図1)として格子状のイジングモデル(以下、これを格子イジングモデルと呼ぶ)を表現可能な半導体チップを適用し、このマルチイジングチップ6を利用して、任意のイジングモデルの基底状態を探索する本実施の形態によるイジングモデル基底状態探索方式について説明する。
次に、マルチイジングチップ6(図1)として格子状のイジングモデル(以下、これを格子イジングモデルと呼ぶ)を表現可能な半導体チップを適用し、このマルチイジングチップ6を利用して、任意のイジングモデルの基底状態を探索する本実施の形態によるイジングモデル基底状態探索方式について説明する。
(3−1)任意のイジングモデルの格子イジングモデルへの変換方法
複数のスピンを1つのスピンを表す集合(以下、これをスピン集合と呼ぶ)と見なしてイジングモデルを変換することにより、基底状態のスピン配列を変化させずにイジングモデルの構造を変化させる方法が知られている。この方法を利用して、任意のイジングモデルを表す問題データ7(図1)を、基底状態となるスピン配列が不変であることを保証しつつ、マルチイジングチップ6が表現可能な格子イジングモデルに変換するイジングモデル変換方法について説明する。
複数のスピンを1つのスピンを表す集合(以下、これをスピン集合と呼ぶ)と見なしてイジングモデルを変換することにより、基底状態のスピン配列を変化させずにイジングモデルの構造を変化させる方法が知られている。この方法を利用して、任意のイジングモデルを表す問題データ7(図1)を、基底状態となるスピン配列が不変であることを保証しつつ、マルチイジングチップ6が表現可能な格子イジングモデルに変換するイジングモデル変換方法について説明する。
図10(A)及び(B)並びに図11は、このようなイジングモデル変換方法の手順を表す。まず、図10(A)に示すイジングモデルを表す問題データ7を、相互作用がないスピン間を係数が「0」の相互作用と見なすことで、図10(B)に示す完全グラフのイジングモデルのデータに変換する。次に、図10(B)で示されたイジングモデルを、基底状態を変化させることなく図11に示す非平面の階段状の格子イジングモデルに変換する。ただし、図10(A)に示すイジングモデルを、直接、図11に示す格子イジングモデルに変換するようにしても良い。
図10(B)の完全グラフを図11のような2層の格子グラフからなる階段状の格子イジングモデルに変換する場合、スピン集合のスピンをこの図11の通りに配置する。なお、図11において、スピンの番号は、そのスピンが元のイジングモデル(図10(A)又は(B))でどのスピンに対応するものであるかを表す。「1」と記されたスピン群は元のイジングモデルにおけるスピン1を表すスピン集合に相当する。元のイジングモデルのスピン1及び図11に示すイジングモデルのスピン集合1は、それぞれの基底状態における値が同値になることを期待する。このように変換後の格子イジングモデルが階段状となるようにスピン集合のスピンを配置することにより、問題データ7をなるべく少ないスピン及びスピン間接続からなる格子イジングモデルに変換することができる。
ここで、図11のイジングモデルの構成をより詳しく説明する。なお、以下においては、図11において、Z軸方向の奥側の層の左上のスピンを原点(座標(0,0,0))とし、このスピンのX軸方向に順次隣接するスピンのX座標をそれぞれ1,2,……、原点のスピンのY軸方向に順次隣接するスピンのY座標をそれぞれ1,2,……、Z軸方向の手前側の層のZ座標を1とする。
図11に示す格子イジングモデルでは、Z軸方向の奥側の層(Z座標が「0」の層)において、(0,0,0)、(0,1,0)、(0,2,0)、(0,3,0)及び(0,4,0)の位置にスピン「1」がそれぞれ配置され、(1,0,0)、(1,1,0)、(1,2,0)、(1,3,0)及び(1,4,0)の位置にスピン「2」がそれぞれ配置され、(3,1,0)、(3,2,0)、(3,3,0)及び(3,4,0)の位置にスピン「3」がそれぞれ配置され、(4,2,0)、(4,3,0)及び(4,4,0)の位置にスピン「4」がそれぞれ配置され、(5,3,0)及び(5,4,0)の位置にスピン「5」がそれぞれ配置される。
またZ軸方向の手前側の層(Z座標が「1」の層)において、(0,0,1)及び(1,0,1)の位置にスピン「2」がそれぞれ配置され、(0,1,1)、(1,1,1)及び(2,1,1)の位置にスピン「3」がそれぞれ配置され、(0,2,1)、(1,2,1)、(2,2,1)及び(3,2,1)の位置にスピン「4」がそれぞれ配置され、(0,3,1)、(1,3,1)、(2,3,1)及び(3,3,1)の位置にスピン「6」がそれぞれ配置され、(0,4,1)、(1,4,1)、(2,4,1)、(3,4,1)及び(4,4,1)の位置にスピン「6」がそれぞれ配置される。
さらに図11では、相互作用を及ぼすスピン間を結ぶ辺は太線で、また相互作用を及ばさないスピン間を結ぶ辺は細線で示している。つまり、図11の格子イジングモデルでは、Z軸方向の奥側の層では、Y軸方向に隣接するスピン同士のみが相互作用を及ぼし、Z軸方向の手前の層では、X軸方向に隣接するスピン同士のみが相互作用を及ぼし、Z軸方向の奥側の層及び手前側の層間では、Z軸方向に隣接するスピン同士が相互作用を及ぼす。ただし、図10(B)の完全グラフを生成するため、相互作用係数を「0」に設定した辺を追加した場合、図11に示す格子イジングモデルには相互作用を及ぼさないスピン間を結ぶ辺が存在する。そのため太線で示したスピン間を結ぶ辺でも相互作用係数が0になる可能性はある。
スピン数Nの完全グラフの場合、1つのスピンに対してN−1の相互作用が存在する。しかし立体の格子グラフは最大でも次数が6である。そのためN>8の完全グラフは、そのままでは格子グラフで表現できない。そこでスピン集合を導入してスピン当たりの次数を削減するのである。
すべてのスピン間の相互作用を担保するため、格子グラフでは図11に示すようにスピン集合のスピンを配置する。つまり各層にて特定の方向のみに延びるよう各スピン集合のスピンを配置するということである。図11は、Z=1ではX方向、Z=0ではY方向のみに各スピン集合のスピンを延ばして配置した例である。
(3−2)変換後の格子イジングモデルにおける各係数の決定方法
任意のイジングモデルを基底状態を変化させないように格子イジングモデルへ変換するためには、図11の格子イジングモデルを生成するときに相互作用係数や外部磁場係数を適切に定めることが求められる。
任意のイジングモデルを基底状態を変化させないように格子イジングモデルへ変換するためには、図11の格子イジングモデルを生成するときに相互作用係数や外部磁場係数を適切に定めることが求められる。
そこで、図12(A)及び(B)を用いて、図10(A)又は(B)のイジングモデルを図11の格子イジングモデルに変換する際の、当該格子イジングモデルにおける各係数の決定方法について説明する。
図12(A)は変換前のイジングモデルである。実際にはスピン1〜nの間にも相互作用があるが、説明の簡潔化のため図示していない。以下においては、スピン0とスピンiと間の相互作用をJiと表す。またスピン0における外部磁場係数をh0とする。
図12(B)は変換後のイジングモデルである。このイジングモデルでは、スピン集合を導入し、スピン0を、当該スピン0に相互作用を及ぼすスピン1〜nと同じ数のスピン(01,……,0n)で表現している。また図12(B)では、このスピン集合内の各スピン01〜0n及びスピン1〜n間の相互作用係数を順番にb1,……,bn−1とし、各スピン01〜0nにおける外部磁場係数をa1,……,anとしている。変換後のイジングモデルでスピン0を表すスピン集合とスピンiの間の相互作用はJiと定める。
図12(B)に示すイジングモデルにおいて、当該イジングモデルが基底状態のときに局所最適解であることを考慮すると、|Ji|+|ai|>|bi|のとき基底状態でスピン0iと0i+1の値が等しくなる。ゆえにこの不等式を満たすように相互作用を定めると、基底状態で01=02=…=0nとなる。またa1+a2+…+an=h0のとき、変換前及び変換後の基底状態において、スピン0とスピン01の値が等しくなる。よって、この2つの条件を満たすよう相互作用係数J1〜Jnと外部磁場係数a1〜anとをそれぞれ設定することにより、基底状態を変化させることなくイジングモデルのグラフ構造を変化させることができる。
上述の方法に加えて、次式
で定義される定数Cを用いて係数を定める方法も存在する。
具体的には、この定数Cを用いて変換後の相互作用係数J1〜Jn及び外部磁場係数a1〜anを以下の通り定める。
ただし(4)式において、sign(x)はxが正のとき+1、0以下のとき‐1となる関数である。このように係数を定めると変換前及び変換後の基底状態が等しくなる。
前述のいずれかの方法を用いることにより、図10(A)又は(B)のイジングモデルを、基底状態を変化させることなく図11に示す格子イジングモデルに変換する際の当該格子イジングモデルの各係数の値を決定し、設定することができる。
(3−3)イジングチップ間の配線方式
次に、かかる格子イジングモデルを表現可能なマルチイジングチップ6内の各イジングチップ13(図2)間の配線方式について説明する。
次に、かかる格子イジングモデルを表現可能なマルチイジングチップ6内の各イジングチップ13(図2)間の配線方式について説明する。
単一のイジングチップ13に多数のスピンユニット40(図7及び図8)を搭載しようとすると、イジングチップ13のチップサイズが増大し、コスト増につながる。このためマルチイジングチップ6に多数のスピンユニット40を搭載するに際しては、マルチイジングチップ6に規模がそれほど大きくないイジングチップ13を複数実装し、これらをチップ間配線により接続する方法がコスト上昇を抑える上で効果的である。
この場合、イジングチップ13の端部に設けられたスピンユニット40と、他のイジングチップ13内の対応するスピンユニット40との間で配線を施すために、例えば図13に示すように、隣接する各イジングチップ13のチップ端部にそれぞれ設けられた対応するスピンユニット40同士を、チップ間接続部24(図3)の一部を構成する接続部50とチップ間配線14を介して接続する必要がある。なお、ここで言う「チップ端部に設けられたスピンユニット40」とは、図4のイジングモデルで隣接するスピンの値を保持するスピンユニット40が他のイジングチップ13に設けられたスピンユニット40を指す。
しかしながら、隣接するイジングチップ13のチップ端部に設けられたすべての対応するスピンユニット40同士をそれぞれ接続するよう接続部50やチップ間配線14(図2)を形成すると、この図13に示すように、接続部50の数やチップ間配線14の配線量が大きくなり過ぎるためにコストの上昇や実装上の困難が生じる。
一方、図14は、スピン数が6個のイジングモデルを図10及び図11について上述した変換方法を利用して変換した格子イジングモデルを表す。仮に、単一のイジングチップ13が格子イジングモデル全体を表現するために必要な数量のスピンユニット40を持たない場合には、この図14に示すように格子イジングモデルを複数の領域に分割し、これら領域のデータを複数のイジングチップ13に割り当てれば良い。図14では、格子イジングモデルを4つの領域AR1〜AR4に分割し、これら領域AR1〜AR4のデータをそれぞれイジングチップ1〜イジングチップ4に割り当てた(マッピングした)例を示している。
このときX方向の領域間(つまり「イジングチップ1」というイジングチップ13で表現される領域AR1及び「イジングチップ2」というイジングチップ13で表現される領域AR2間と、「イジングチップ3」というイジングチップ13で表現される領域AR3及び「イジングチップ4」というイジングチップ13で表現される領域AR4間)では、いずれもZ軸方向の手前側の層内の相互作用のみが存在する。
このため領域AR1及び領域AR2間については、領域AR1内の(1,1,1)に配置されたスピン及び領域AR2内の(2,1,1)に配置されたスピン間の相互作用と、領域AR1内の(1,2,1)に配置されたスピン及び領域AR2内の(2,2,1)に配置されたスピン間の相互作用とだけを考慮すれば良く、領域AR3及び領域AR4間については、領域AR3内の(1,3,1)に配置されたスピン及び領域AR4内の(2,3,1)に配置されたスピン間の相互作用と、領域AR3内の(1,4,1)に配置されたスピン及び領域AR4内の(2,4,1)に配置されたスピン間の相互作用とだけを考慮すれば良い。
従って、図14のように複数のイジングチップ13で格子イジングモデルを表現するに際しては、「イジングチップ1」というイジングチップ13と、「イジングチップ2」というイジングチップ13とについては、少なくとも領域AR1内の(1,2,1)に配置されたスピンを表現するスピンユニット40、及び、領域AR2の(2,1,1)に配置されたスピンを表現するスピンユニット40間と、領域AR1内の(1,2,1)に配置されたスピンを表現するスピンユニット40、及び、領域AR2内の(2,2,1)に配置されたスピンを表現するスピンユニット40間とを接続すれば良い。
そこで、本実施の形態の場合、「イジングチップ1」というイジングチップ13については、図15に示すように、「イジングチップ2」というイジングチップ13に隣接する側のチップ端部に設けられたスピンユニット40のうちの1つおきのスピンユニット40(上述の(1,2,1)に配置されたスピンを表現するスピンユニット40と、(1,2,1)に配置されたスピンを表現するスピンユニット40とを含む)にそれぞれ対応付けて接続部50が設けられている。
また、「イジングチップ2」というイジングチップ13については、「イジングチップ1」というイジングチップ13に隣接する側のチップ端部に設けられたスピンユニット40のうちの1つおきのスピンユニット40(上述の(2,1,1)に配置されたスピンを表現するスピンユニット40と、(2,2,1)に配置されたスピンを表現するスピンユニット40とを含む)にそれぞれ対応付けて接続部50が設けられている。
そして「イジングチップ1」というイジングチップ13及び「イジングチップ2」というイジングチップ13間は、領域AR1内の(1,2,1)に配置されたスピンを表現するスピンユニット40と接続された接続部50及び、領域AR2の(2,1,1)に配置されたスピンを表現するスピンユニット40と接続された接続部50間と、領域AR1内の(1,2,1)に配置されたスピンを表現するスピンユニット40、及び、領域AR2内の(2,2,1)に配置されたスピンを表現するスピンユニット40と接続された接続部50間とを含めて、「イジングチップ1」というイジングチップ13及び「イジングチップ2」というイジングチップ13の対応する接続部50同士が接続されている。これにより本実施の形態においては、「イジングチップ1」というイジングチップ13及び「イジングチップ2」というイジングチップ13間の配線数を図13に比べて低減させ得るようになされている。
同様に、本実施の形態の場合、「イジングチップ3」というイジングチップ13については、「イジングチップ4」というイジングチップ13に隣接する側のチップ端部に設けられたスピンユニット40のうちの1つおきのスピンユニット40(上述の(1,3,1)に配置されたスピンを表現するスピンユニット40と、(1,4,1)に配置されたスピンを表現するスピンユニット40とを含む)にそれぞれ対応付けて接続部50が設けられている。
また、「イジングチップ4」というイジングチップ13については、「イジングチップ3」というイジングチップ13に隣接する側のチップ端部に設けられたスピンユニット40のうちの1つおきのスピンユニット40(上述の(2,3,1)に配置されたスピンを表現するスピンユニット40と、(2,4,1)に配置されたスピンを表現するスピンユニット40とを含む)にそれぞれ対応付けて接続部50が設けられている。
そして「イジングチップ3」というイジングチップ13及び「イジングチップ4」というイジングチップ13間は、領域AR3内の(1,3,1)に配置されたスピンを表現するスピンユニット40と接続された接続部50及び、領域AR4の(2,3,1)に配置されたスピンを表現するスピンユニット40と接続された接続部50間と、領域AR3内の(1,4,1)に配置されたスピンを表現するスピンユニット40、及び、領域AR4内の(2,4,1)に配置されたスピンを表現するスピンユニット40と接続された接続部50間とを含めて、「イジングチップ3」というイジングチップ13及び「イジングチップ4」というイジングチップ13の対応する接続部50同士が接続されている。これにより本実施の形態においては、「イジングチップ3」というイジングチップ13及び「イジングチップ4」というイジングチップ13間の配線数を図13に比べて低減させ得るようになされている。
一方、Y方向の領域間(領域AR1及び領域AR3間と、領域AR2及び領域AR4間)では、いずれもZ軸方向の奥側の層内の相互作用のみが存在する。
このため領域AR1及び領域AR3間については、領域AR1内の(0,2,0)に配置されたスピン及び領域AR3内の(0,3,0)に配置されたスピン間の相互作用と、領域AR1内の(1,2,0)に配置されたスピン及び領域AR3内の(1,3,0)に配置されたスピン間の相互作用とだけを考慮すれば良く、領域AR2及び領域4間については、領域AR2内の(2,2,0)に配置されたスピン及び領域AR4内の(2,3,0)に配置されたスピン間の相互作用と、領域AR2内の(3,2,0)に配置されたスピン及び領域4内の(3,3,0)に配置されたスピン間の相互作用とだけを考慮すれば良い。
従って、図14のように複数のイジングチップ13で格子イジングモデルを表現するに際しては、「イジングチップ1」というイジングチップ13と、「イジングチップ3」というイジングチップ13とについては、少なくとも領域AR1内の(0,2,0)に配置されたスピンを表現するスピンユニット40と、領域AR3内の(0,3,0)に配置されたスピンを表現するスピンユニット40間と、領域AR1内の(1,2,0)に配置されたスピンを表現するスピンユニット40、及び、領域AR3内の(1,3,0)に配置されたスピンを表現するスピンユニット40間とを接続すれば良い。
そこで、本実施の形態の場合、「イジングチップ1」というイジングチップ13については、図17に示すように、「イジングチップ3」というイジングチップ13に隣接する側のチップ端部に設けられたスピンユニット40のうちの1つおきのスピンユニット40(上述の(0,2,0)に配置されたスピンを表現するスピンユニット40と、(1,2,0)に配置されたスピンを表現するスピンユニット40とを含む)にそれぞれ対応付けて接続部50が設けられている。
また、「イジングチップ3」というイジングチップ13については、「イジングチップ1」というイジングチップ13に隣接する側のチップ端部に設けられたスピンユニット40のうちの1つおきのスピンユニット40(上述の(0,3,0)に配置されたスピンを表現するスピンユニット40と、(1,3,0)に配置されたスピンを表現するスピンユニット40とを含む)にそれぞれ対応付けて接続部50が設けられている。
そして「イジングチップ1」というイジングチップ13及び「イジングチップ3」というイジングチップ13間は、領域AR1内の(0,2,0)に配置されたスピンを表現するスピンユニット40と接続された接続部50及び、領域AR3の(0,3,0)に配置されたスピンを表現するスピンユニット40と接続された接続部50間と、領域AR1内の(1,2,0)に配置されたスピンを表現するスピンユニット40、及び、領域AR3内の(1,3,0)に配置されたスピンを表現するスピンユニット40と接続された接続部50間とを含めて、「イジングチップ1」というイジングチップ13及び「イジングチップ3」というイジングチップ13の対応する接続部50同士が接続されている。これにより本実施の形態においては、「イジングチップ1」というイジングチップ13及び「イジングチップ3」というイジングチップ13間の配線数を図13に比べて低減させ得るようになされている。
同様に、本実施の形態の場合、「イジングチップ2」というイジングチップ13については、「イジングチップ4」というイジングチップ13に隣接する側のチップ端部に設けられたスピンユニット40のうちの1つおきのスピンユニット40(上述の(2,2,0)に配置されたスピンを表現するスピンユニット40と、(3,2,0)に配置されたスピンを表現するスピンユニット40とを含む)にそれぞれ対応付けて接続部50が設けられている。
また、「イジングチップ4」というイジングチップ13については、「イジングチップ3」というイジングチップ13に隣接する側のチップ端部に設けられたスピンユニット40のうちの1つおきのスピンユニット40(上述の(2,3,0)に配置されたスピンを表現するスピンユニット40と、(3,3,0)に配置されたスピンを表現するスピンユニット40とを含む)にそれぞれ対応付けて接続部50が設けられている。
そして「イジングチップ2」というイジングチップ13及び「イジングチップ4」というイジングチップ13間は、領域AR2内の(2,2,0)に配置されたスピンを表現するスピンユニット40と接続された接続部50、及び、領域AR4の(2,3,0)に配置されたスピンを表現するスピンユニット40と接続された接続部50間と、領域AR2内の(3,2,0)に配置されたスピンを表現するスピンユニット40と接続された接続部50、及び、領域AR4内の(3,3,0)に配置されたスピンを表現するスピンユニット40と接続された接続部50間とを含めて、「イジングチップ2」というイジングチップ13及び「イジングチップ4」というイジングチップ13の対応する接続部50同士が接続されている。これにより本実施の形態においては、「イジングチップ2」というイジングチップ13及び「イジングチップ4」というイジングチップ13間の配線数を図13に比べて低減させ得るようになされている。
なお図15及び図16を併せた、マルチイジングチップ6におけるイジングチップ13間の接続関係を図17に示す。なお図17では、図面の煩雑化を避けるため、「イジングチップ1」〜「イジングチップ3」という3つのイジングチップ13間の接続関係を示しており、「イジングチップ4」というイジングチップ13については、省略している。マルチイジングチップ6においてイジングチップ13間をこのように接続することによって、イジングチップ13間の配線を図13に比べて1/2に削減することができる。
(3−4)イジングチップの制御手順
図18は、本情報処理装置1においてCPU3(図1)により実行される基底状態探索処理の処理手順を示す。CPU3は、ステップSP1については問題変換プログラム8(図1)に基づき、これ以降の処理(ステップSP2〜ステップSP13)についてはマルチイジングチップ制御プログラム9(図1)に基づいて、必要なマルチイジングチップ6(図2)のコントローラ15(図2)を介して当該マルチイジングチップ6内のイジングチップ13を制御することにより、これらのイジングチップ13において基底状態探索を実行させる。なお、ステップSP1の処理と、ステップSP2〜ステップSP13の処理とを別々のタイミングで実行するようにしてもよい。
図18は、本情報処理装置1においてCPU3(図1)により実行される基底状態探索処理の処理手順を示す。CPU3は、ステップSP1については問題変換プログラム8(図1)に基づき、これ以降の処理(ステップSP2〜ステップSP13)についてはマルチイジングチップ制御プログラム9(図1)に基づいて、必要なマルチイジングチップ6(図2)のコントローラ15(図2)を介して当該マルチイジングチップ6内のイジングチップ13を制御することにより、これらのイジングチップ13において基底状態探索を実行させる。なお、ステップSP1の処理と、ステップSP2〜ステップSP13の処理とを別々のタイミングで実行するようにしてもよい。
またCPU3は、各マルチイジングチップ6内のイジングチップ13や、イジングチップ13内のスピンユニット40をマルチイジングチップ6内のコントローラ15(図2)を介して制御するが、以下においては理解の容易化のため、コントローラ15の存在を無視して説明を行う。
CPU3は、ユーザからの指示等によりこの基底状態探索処理を開始すると、まず、問題データ7(図1)を図11について上述した格子イジングモデルの形式のデータに変換する(SP1)。
続いて、CPU3は、変換後の格子イジングモデルの相互作用係数及び外部磁場係数を必要なマルチイジングチップ6の各イジングチップ13内の各スピンユニット40にそれぞれ設定する(SP2)。
次いで、CPU3は、各スピンユニットが保持すべきスピンの値を乱数によりそれぞれ決定し、決定したスピンの値となるようにかかるマルチイジングチップ6における各イジングチップ13内の各スピンユニット40のスピンの値を初期化する(SP3)。
さらにCPU3は、予め定められた各マルチイジングチップ6内の乱数発生器17(図2)が発生する乱数において「1」が出現する確率(以下、これをビット確率と呼ぶ)を設定する(SP4)。本実施の形態の場合、初期時には乱数発生器17が発生する乱数におけるビット確率を高く設定し、その後、段階的にビット確率を下げてゆく。これにより初期時には各スピンユニット40が保持するスピンの値を反転し易くする一方、その後は徐々に当該スピンの値が反転し難く(「0」又は「1」に収束し易く)することができる。このためステップSP4では、上述の各段階におけるビット確率が設定される。
さらにCPU3は、予め定められたビット確率毎の相互作用演算の実行回数をそれぞれ設定し(SP5)、この後、イジングチップ13間でのタイミングを合わせるため、各イジングチップ13における各接続部50(図13〜図15)内のカウンタをリセット(カウント値を「0」にセット)する(SP6)。
続いて、CPU3は、マルチイジングチップ6の相互作用クロック生成器16(図2)を駆動するなどして各イジングチップ13内の各スピンユニット40における相互作用演算を1回実行させ(SP7)、この後、現在のビット確率について設定された回数分だけ相互作用演算を実行し終えたか否かを判断する(SP8)。そしてCPU3は、この判断で否定結果を得るとステップSP7に戻り、この後、ステップSP7及びステップSP8の処理を繰り返す。
そしてCPU3は、やがて現在設定されているビット確率について設定された回数分の相互作用演算を実行し得ることによりステップSP8で肯定結果を得ると、ステップSP5で設定したビット確率毎の相互作用演算をすべて実行し終えたか否かを判断する(SP9)。
CPU3は、この判断で否定結果を得ると、ビット確率を現在のビット確率よりも低い予め定められたビット確率に更新すると共に(SP10)、その後実行すべき相互作用演算の回数をそのビット確率について予め定められた回数に更新する(SP11)。そしてCPU3は、ステップSP7に戻り、この後、ステップSP7〜ステップSP11の処理を繰り返す。
そしてCPU3は、やがてステップSP5で設定されたビット確率毎の相互作用演算をすべて実行し終えることによりステップSP9で肯定結果を得ると、そのとき対象としているマルチイジングチップ6における各イジングチップ13内の各スピンユニット40がそれぞれ保持するスピンの値を読み出す(SP12)。
またCPU3は、メモリ4に記憶したスピンユニットと元のイジングモデルの対応関係を表すデータと照合して、読み出したスピン値から元のイジングモデルにおける各スピンの値を決定する(SP13)。
上述の計算で基底状態が得られているならば、各スピン集合内に含まれるスピンは全て同値になる(例えば図11のスピン1の値はすべて同値になる)。これは上述の処理によって係数設定することで担保される。従って、この場合には、各スピン集合から1つずつスピンの値を読み出すことで、元のイジングモデルにおける各スピンの値を決定する。
ただし、以上までの基底状態探索処理によって必ずしもイジングモデルの基底状態が得られるとは限らない。そして、この場合にはスピン集合内で全てのスピンが同値にならない可能性がある。そこで、このような場合には、各スピン集合でスピン数の多い方の値を選ぶことで元のイジングモデルの対応するスピンの値を決定する。また、スピンごとに基底状態の値になりやすくなる傾向が異なるならば、その傾向に従って重み付けしてかかる多数決を行うようにしても良い。
そしてCPU3は、この後、この基底状態探索処理を終了する。
図19は、図18のSP1におけるCPU3の具体的な処理内容を示す。なお本実施の形態の場合、問題データ7は、例えば図20(A)の左側に示す形式でメモリ4(図1)に記録される。図20(A)において、各行の1列目及び2列目はそれぞれスピン、3列目はこれらスピン間の相互作用係数を表す。また1列目及び2列目のスピンが等しい行は、3列目がそのスピンの外部磁場係数を表す。
CPU3は、まず、問題データ7を入力する(SP20)。そしてCPU3は、複数のイジングチップ13を用いてイジングモデルの基底状態を探索する場合であって、かつ入力した問題データ7が図10(A)のような相互作用のない箇所を持つグラフ構造を有する場合には、その箇所の係数を「0」として、問題データ7を図10(B)のような完全グラフのイジングモデルを表す中間データ(図20(A)の右側)に変換する(SP21)。
そしてCPU3は、ステップSP20で得られた中間データを図11について上述した格子イジングモデルを表す図20(B)の左側に示すような出力データに変換する(SP22)。この変換により得られた出力データは、例えば問題データ7と同様の形式で表現される。
続いて、CPU3は、ステップSP22で得られた出力データを、マルチイジングチップ6(図1)の各々が表現可能な規模のイジングモデルに必要に応じて分割する(SP23)。
そしてCPU3は、この後、この出力データをメモリ4に記録する(SP24)。またステップSP22の変換処理ではスピン集合という考え方を用いるため、元のイジングモデルでは1つのスピンが、出力データの表すイジングモデルでは複数のスピンで表される。そこでCPU3は、ステップSP22で得られた出力データの表す格子イジングモデルにおいて、どのスピンが元のイジングモデルのスピンと対応するかを表す図20(B)の右側のデータもメモリ4に記録する(SP24)。なお図20(B)の右側では、元のイジングモデルのスピン1が、変換後のイジングモデルではスピン1〜5に相当することを表す。
さらにCPU3は、ステップSP24において、必要に応じて変換後の問題を分割することにより得られた部分問題についての相互作用係数、及び、外部磁場係数を、必要なマルチイジングチップ6の各イジングチップ13内の各スピンユニット40にそれぞれ設定し(SP24)、この後この図19の処理を終了して図18の基底状態探索処理に戻る。
(3−5)3層以上の格子イジングモデルへの変換
上述の説明では、任意のイジングモデルを2層の格子グラフを持つイジングモデルに変換する方法について詳述した。これと同様にスピン集合を配置することで、3層以上の格子グラフを表現可能なマルチイジングチップ6に対して、空間的に効率良く変換することが可能である。
上述の説明では、任意のイジングモデルを2層の格子グラフを持つイジングモデルに変換する方法について詳述した。これと同様にスピン集合を配置することで、3層以上の格子グラフを表現可能なマルチイジングチップ6に対して、空間的に効率良く変換することが可能である。
図21は、3層の格子グラフからなる格子イジングモデルを表現可能なマルチイジングチップ6に対して、スピン集合を用いてスピン数が「7」の完全グラフを表現する場合の一例を示す。以下においては、図21において、Z軸方向の奥側の層の左上のスピンを原点(座標(0,0,0))とし、このスピンのX軸方向に順次隣接するスピンのX座標をそれぞれ1,2,……、原点のスピンのY軸方向に順次隣接するスピンのY座標をそれぞれ1,2,……、Z軸方向の手前側の層のZ座標を1とする。
図21に示す格子イジングモデルでは、Z軸方向の最も奥側の層(Z座標が「0」の層)及びZ軸方向の中間の層(Z座標が「1」の層)におけるスピン配列は図11について上述した2層の格子イジングモデルと同じである。
そして手前側の層(Z座標が「2」の層)において、(0,0,2)、(0,1,2)、(0,2,2)、(0,3,2)及び(0,4,2)の位置と、(1,4,2)の位置とにスピン「7」がそれぞれ配置される。
また図21では、図11と同様に、相互作用を及ぼすスピン間を結ぶ辺は太線で、また相互作用を及ばさないスピン間を結ぶ辺は細線で示している。つまり、図21の格子イジングモデルでは、Z軸方向の最も奥側の層では、Y軸方向に隣接するスピン同士のみが相互作用を及ぼし、Z軸方向の中間の層では、X軸方向に隣接するスピン同士のみが相互作用を及ぼし、Z軸方向の手前側の層では、X軸方向又はY軸方向に隣接するスピン同士が相互作用を及ぼし、Z軸方向の奥側の層、中間の層及び手前側の層間では、Z軸方向に隣接するスピン同士が相互作用を及ぼす。
(4)本実施の形態の効果
以上のように本実施の形態の情報処理装置1では、問題データ7を、当該問題のイジングモデルの基底状態のスピン配列を変化させないように、複数のイジングチップ13により表現可能な階段状の格子イジングモデルのデータに変換し、当該格子イジングモデルのデータを分割して各イジングチップ13に割り当てるようにしたことにより、任意のイジングモデルの基底状態を探索することができる。また、あるイジングチップ13が値を保持するスピンのうち、他の半導体チップが値を保持するスピンに相互作用を及ぼすスピンの数を低減させることができるため、結果として、イジングチップ13間を接続するチップ間配線の配線量を抑えることができる。かくするにつき、安価かつ容易に製造でき、任意のイジングモデルの基底状態を探索可能な情報処理装置を実現できる。
以上のように本実施の形態の情報処理装置1では、問題データ7を、当該問題のイジングモデルの基底状態のスピン配列を変化させないように、複数のイジングチップ13により表現可能な階段状の格子イジングモデルのデータに変換し、当該格子イジングモデルのデータを分割して各イジングチップ13に割り当てるようにしたことにより、任意のイジングモデルの基底状態を探索することができる。また、あるイジングチップ13が値を保持するスピンのうち、他の半導体チップが値を保持するスピンに相互作用を及ぼすスピンの数を低減させることができるため、結果として、イジングチップ13間を接続するチップ間配線の配線量を抑えることができる。かくするにつき、安価かつ容易に製造でき、任意のイジングモデルの基底状態を探索可能な情報処理装置を実現できる。
(5)他の実施の形態
なお上述の実施の形態おいては、問題のイジングモデルを図11や図21について上述した形態の格子イジングモデルに変換するようにした場合について述べたが、本発明はこれに限らず、問題のイジングモデルを、その基底状態のスピン配列を変化させずに、複数のイジングチップ13により表現可能な格子イジングモデルに変換するのであれば、格子イジングモデルの形態としては、この他種々の形態を広く適用することができる。
なお上述の実施の形態おいては、問題のイジングモデルを図11や図21について上述した形態の格子イジングモデルに変換するようにした場合について述べたが、本発明はこれに限らず、問題のイジングモデルを、その基底状態のスピン配列を変化させずに、複数のイジングチップ13により表現可能な格子イジングモデルに変換するのであれば、格子イジングモデルの形態としては、この他種々の形態を広く適用することができる。
また上述の実施の形態においては、イジングチップ13間の配線方式として、イジングチップ13のチップ端部に設けられたスピンユニット40のうちの1つおきのスピンユニット40にそれぞれ対応付けて接続部50を設け、これらの接続部50を他のイジングチップ13の対応する接続部50とそれぞれ接続するようにした場合について述べたが、本発明はこれに限らず、イジングチップ13内のスピンユニット40のうち、他のイジングチップ13内のスピンユニット40が値を保持するスピンと相互作用を及ぼすスピンユニット40にのみ対応付けて接続部50を設け、これらの接続部50を他のイジングチップ13の対応する接続部50とそれぞれ接続するようにしても良い。このようにすることによって、より一層とイジングチップ13間の配線量を抑えることができる。
本発明はイジングモデルの基底状態探索を行う半導体装置に広く適用することができる。
1……情報処理装置、3……CPU、6……マルチイジングチップ、7……問題データ、8……問題変換プログラム、9……マルチイジングチップ制御プログラム、13……イジングチップ、14……チップ間配線、20……スピンアレイ、24……チップ間接続部、40……スピンユニット、50……接続部。
Claims (12)
- イジングモデルである問題のエネルギーを最小とするスピン配列である基底状態又は当該基底状態の近似解を前記問題の解として算出する情報処理装置において、
それぞれ1又は複数のスピンの値を保持し、前記スピン間の相互作用を模擬する複数の半導体チップと、
必要な前記半導体チップ間をそれぞれ接続するチップ間配線と、
各前記半導体チップを制御して、当該各半導体チップに相互作用演算をそれぞれ実行させる制御部と
を備え、
前記制御部は、
前記問題のデータを、当該問題のイジングモデルの基底状態のスピン配列を変化させずに、複数の前記半導体チップにより表現可能な格子状のイジングモデルのデータに変換し、
変換した前記格子状のイジングモデルのデータを分割して複数の前記半導体チップにそれぞれ割り当てる
ことを特徴とする情報処理装置。 - 前記制御部は、
前記問題のデータを完全グラフのイジングモデルを表す中間データに変換し、
当該中間データを前記格子状のイジングモデルのデータに変換する
ことを特徴とする請求項1に記載の情報処理装置。 - 前記制御部は、
前記問題のイジングモデルの各第1のスピンを、当該第1のスピンに相互作用を及ぼす第2のスピンと同じ数の第3のスピンの集合にそれぞれ置き換え、当該第3のスピンの集合を前記格子状のイジングモデルが全体として階段状となるように配置するようにして、当該問題のデータを前記格子状のイジングモデルのデータに変換する
ことを特徴とする請求項1に記載の情報処理装置。 - 前記制御部は、
i番目の前記第2のスピンと、当該第2のスピンに対応するi番目の前記第3のスピンとの相互作用係数をJiとし、i番目の前記第3のスピンにおける外部磁場係数をaiとし、i番目の前記第3のスピンと、i+1番目の前記第3のスピンとの間の相互作用係数をbiとし、前記第2のスピンの数をn個とし、当該第3のスピンに対応する前記第1のスピンにおける外部磁場係数をh0として、次式
ことを特徴とする請求項3に記載の情報処理装置。 - 前記制御部は、
i番目の前記第2のスピンと、当該第2のスピンに対応するi番目の前記第3のスピンとの相互作用係数をJiとし、i番目の前記第3のスピンにおける外部磁場係数をaiとし、i番目の前記第3のスピンと、i+1番目の前記第3のスピンとの間の相互作用係数をbiとし、前記第2のスピンの数をn個とし、当該第3のスピンに対応する前記第1のスピンにおける外部磁場係数をh0として、次式
ことを特徴とする請求項3に記載の情報処理装置。 - 前記制御部は、
前記相互作用演算の終了後における同一の前記第1のスピンに対応するすべての前記第3のスピンが同値である場合には、当該値を当該第1のスピンの値として決定し、
前記相互作用演算の終了後における同一の前記第1のスピンに対応するすべての前記第3のスピンが同値でない場合には、スピン数が多い方の値を当該第1のスピンの値として決定する
ことを特徴とする請求項3に記載の情報処理装置。 - イジングモデルである問題のエネルギーを最小とするスピン配列である基底状態又は当該基底状態の近似解を前記問題の解として算出する情報処理装置の制御方法において、
前記情報処理装置は、
それぞれ1又は複数のスピンの値を保持し、前記スピン間の相互作用を模擬する複数の半導体チップと、
必要な前記半導体チップ間をそれぞれ接続するチップ間配線と、
各前記半導体チップを制御して、当該各半導体チップに相互作用演算をそれぞれ実行させる制御部と
を有し、
前記制御部が、前記問題のデータを、当該問題のイジングモデルの基底状態のスピン配列を変化させずに、複数の前記半導体チップにより表現可能な格子状のイジングモデルのデータに変換する第1のステップと、
前記制御部が、変換した前記格子状のイジングモデルのデータを分割して複数の前記半導体チップにそれぞれ割り当てる第2のステップと、
前記制御部が、各前記半導体チップに前記相互作用演算をそれぞれ実行させる第3のステップと
を備えることを特徴とする情報処理装置の制御方法。 - 前記第1のステップにおいて、前記制御部は、
前記問題のデータを完全グラフのイジングモデルを表す中間データに変換し、
当該中間データを前記格子状のイジングモデルのデータに変換する
ことを特徴とする請求項7に記載の情報処理装置の制御方法。 - 前記第1のステップにおいて、前記制御部は、
前記問題のイジングモデルの各第1のスピンを、当該第1のスピンに相互作用を及ぼす第2のスピンと同じ数の第3のスピンの集合にそれぞれ置き換え、当該第3のスピンの集合を前記格子状のイジングモデルが全体として階段状となるように配置するようにして、当該問題のデータを前記格子状のイジングモデルのデータに変換する
ことを特徴とする請求項7に記載の情報処理装置の制御方法。 - 前記第1のステップにおいて、前記制御部は、
i番目の前記第2のスピンと、当該第2のスピンに対応するi番目の前記第3のスピンとの相互作用係数をJiとし、i番目の前記第3のスピンにおける外部磁場係数をaiとし、i番目の前記第3のスピンと、i+1番目の前記第3のスピンとの間の相互作用係数をbiとし、前記第2のスピンの数をn個とし、当該第3のスピンに対応する前記第1のスピンにおける外部磁場係数をh0として、次式
ことを特徴とする請求項9に記載の情報処理装置の制御方法。 - 前記第1のステップにおいて、前記制御部は、
i番目の前記第2のスピンと、当該第2のスピンに対応するi番目の前記第3のスピンとの相互作用係数をJiとし、i番目の前記第3のスピンにおける外部磁場係数をaiとし、i番目の前記第3のスピンと、i+1番目の前記第3のスピンとの間の相互作用係数をbiとし、前記第2のスピンの数をn個とし、当該第3のスピンに対応する前記第1のスピンにおける外部磁場係数をh0として、次式
ことを特徴とする請求項9に記載の情報処理装置の制御方法。 - 前記第3のステップにおいて、前記制御部は、
前記相互作用演算の終了後における同一の前記第1のスピンに対応するすべての前記第3のスピンが同値である場合には、当該値を当該第1のスピンの値として決定し、
前記相互作用演算の終了後における同一の前記第1のスピンに対応するすべての前記第3のスピンが同値でない場合には、スピン数が多い方の値を当該第1のスピンの値として決定する
ことを特徴とする請求項9に記載の情報処理装置の制御方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2015/066581 WO2016199220A1 (ja) | 2015-06-09 | 2015-06-09 | 情報処理装置及びその制御方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2016199220A1 JPWO2016199220A1 (ja) | 2018-05-24 |
JP6476292B2 true JP6476292B2 (ja) | 2019-02-27 |
Family
ID=57503133
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017522787A Active JP6476292B2 (ja) | 2015-06-09 | 2015-06-09 | 情報処理装置及びその制御方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10896241B2 (ja) |
JP (1) | JP6476292B2 (ja) |
WO (1) | WO2016199220A1 (ja) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10515121B1 (en) * | 2016-04-12 | 2019-12-24 | Tableau Software, Inc. | Systems and methods of using natural language processing for visual analysis of a data set |
US11030207B1 (en) | 2016-04-12 | 2021-06-08 | Tableau Software, Inc. | Updating displayed data visualizations according to identified conversation centers in natural language commands |
JP6684259B2 (ja) * | 2017-10-19 | 2020-04-22 | 日本電信電話株式会社 | ポッツモデルの計算装置 |
JP7093009B2 (ja) * | 2018-08-30 | 2022-06-29 | 富士通株式会社 | 最適化装置、最適化装置の制御方法及び最適化装置の制御プログラム |
JP7239826B2 (ja) * | 2019-06-18 | 2023-03-15 | 富士通株式会社 | サンプリング装置およびサンプリング方法 |
JP2021082165A (ja) * | 2019-11-22 | 2021-05-27 | 富士通株式会社 | 構造探索方法、構造探索プログラム、及び構造探索装置 |
WO2023211517A2 (en) * | 2021-11-22 | 2023-11-02 | University Of Rochester | System and method for multi-chip ising machine architectures |
CN115907005B (zh) * | 2023-01-05 | 2023-05-12 | 华南理工大学 | 一种基于片上网络的大规模全连接伊辛模型退火处理电路 |
Family Cites Families (5)
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 |
WO2007006144A1 (en) * | 2005-07-11 | 2007-01-18 | D-Wave Systems Inc. | Systems, methods and apparatus for factoring numbers |
EP2263166B1 (en) * | 2008-03-24 | 2020-02-19 | D-Wave Systems Inc. | Systems, devices, and methods for analog processing |
JP2012217518A (ja) | 2011-04-05 | 2012-11-12 | Hitachi Ltd | 人間行動分析システム及び方法 |
US9495644B2 (en) * | 2013-07-24 | 2016-11-15 | D-Wave Systems Inc. | Systems and methods for improving the performance of a quantum processor by reducing errors |
-
2015
- 2015-06-09 US US15/735,033 patent/US10896241B2/en active Active
- 2015-06-09 JP JP2017522787A patent/JP6476292B2/ja active Active
- 2015-06-09 WO PCT/JP2015/066581 patent/WO2016199220A1/ja active Application Filing
Also Published As
Publication number | Publication date |
---|---|
US10896241B2 (en) | 2021-01-19 |
WO2016199220A1 (ja) | 2016-12-15 |
JPWO2016199220A1 (ja) | 2018-05-24 |
US20180300287A1 (en) | 2018-10-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6476292B2 (ja) | 情報処理装置及びその制御方法 | |
JP5922203B2 (ja) | 半導体装置 | |
JP5864684B1 (ja) | 半導体装置 | |
JP5865456B1 (ja) | 半導体装置 | |
JP6177993B2 (ja) | 半導体装置および情報処理装置 | |
JP6605610B2 (ja) | 半導体装置 | |
JP6496410B2 (ja) | 情報処理装置及び方法 | |
JP6503072B2 (ja) | 半導体システムおよび計算方法 | |
JP6295325B2 (ja) | 半導体装置及び情報処理システム | |
JP6568222B2 (ja) | 半導体システムおよび計算方法 | |
JP5901712B2 (ja) | 半導体装置および情報処理装置 | |
JP2019179364A (ja) | 半導体装置、情報処理システム、および情報処理方法 | |
JP5894645B1 (ja) | 半導体装置及びその品質管理方法 | |
JP5851570B1 (ja) | 半導体装置 | |
JP6207583B2 (ja) | 半導体装置および情報処理方法 | |
JP6914872B2 (ja) | 情報処理装置および半導体集積回路装置 | |
JP2020160755A (ja) | 半導体装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20171206 |
|
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: 20190129 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20190204 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6476292 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |