【国等の委託研究の成果に係る記載事項】(出願人による申告)平成26年度、国立研究開発法人 科学技術振興機構、革新的研究開発推進プログラム(ImPACT)「大規模時分割多重光パラメトリック発振器」委託研究、産業技術力強化法第19条の適用を受ける出願
(58)【調査した分野】(Int.Cl.,DB名)
前記イテレーション部は、前回のイテレーションにおける各振動子毎の微小時間後の振幅及び位相が、前記微分方程式の定常状態に所定の精度で接近したときに、次回のイテレーションにおける各振動子毎の微小時間後の振幅及び位相の計算を停止する
ことを特徴とする、請求項1から4のいずれかに記載の結合振動子系の計算装置。
前回のイテレーションにおける前記データの共有処理が、次回のイテレーションにおける計算処理を停止/中断させないように、前記複数のイテレーション部の各々は、前記結合振動子系のうちの各々に特定のグループに属する振動子を割り当てられる
ことを特徴とする、請求項7に記載の結合振動子系の計算装置。
前記振幅位相計算部により計算される各振動子毎の微小時間後の振幅についての量子化カットオフは、前記振幅位相計算部により計算される各振動子毎の微小時間後の振幅についての量子化の前記所定の精度を満足するように設定されており、かつ、前記微分方程式の定常状態における各振動子毎の振幅と比べて大きく設定されている
ことを特徴とする、請求項9に記載の結合振動子系の計算装置。
前記相互結合計算部により計算される各振動子毎の振幅の微小時間変化についての量子化ビット数は、前記振幅位相計算部により計算される各振動子毎の微小時間後の振幅についての量子化ビット数と比べて、少なくともlog2M(ただし、Mは、前記結合振動子系の全振動子数である。)だけ大きく設定されている
ことを特徴とする、請求項9又は10に記載の結合振動子系の計算装置。
【発明の概要】
【発明が解決しようとする課題】
【0005】
特許文献1のイジングモデルの計算装置C1の構成を
図1に示す。レーザ発振部11は、複数のレーザパルスP1、P2、P3、P4、・・・を生成する。リング共振器12は、複数のレーザパルスP1、P2、P3、P4、・・・を周回させる。
【0006】
パルス遅延線14は、1パルス間隔分の遅延量を有する。相互結合実装部13は、パルス遅延線14を伝搬して相互結合係数J
12、J
23、J
34、J
41を反映した振幅及び位相を有するレーザパルスP1、P2、P3、P4を、パルス遅延線14を伝搬せずリング共振器12を伝搬するレーザパルスP2、P3、P4、P1にそれぞれ相互注入する。
【0007】
パルス遅延線16は、2パルス間隔分の遅延量を有する。相互結合実装部15は、パルス遅延線16を伝搬して相互結合係数J
13、J
24、J
31、J
42を反映した振幅及び位相を有するレーザパルスP1、P2、P3、P4を、パルス遅延線16を伝搬せずリング共振器12を伝搬するレーザパルスP3、P4、P1、P2にそれぞれ相互注入する。
【0008】
パルス遅延線18は、3パルス間隔分の遅延量を有する。相互結合実装部17は、パルス遅延線18を伝搬して相互結合係数J
14、J
21、J
32、J
43を反映した振幅及び位相を有するレーザパルスP1、P2、P3、P4を、パルス遅延線18を伝搬せずリング共振器12を伝搬するレーザパルスP4、P1、P2、P3にそれぞれ相互注入する。
【0009】
スピン測定部19は、複数のレーザパルスP1、P2、P3、P4、・・・が定常状態に到達した後に、複数のレーザパルスP1、P2、P3、P4、・・・の位相を測定することにより、複数のレーザパルスの位相に対応する複数のイジングスピンの方向を測定する。
【0010】
しかし、特許文献1では、リング共振器12の光路長を安定化しなければ、複数のレーザパルスを安定化することができない。そして、パルス遅延線14、16、18の光路長を安定化しなければ、複数のレーザパルスの間の相互注入を正確に実行することができず、複数のイジングスピンの間の相互結合を正確に実装することができない。
【0011】
特許文献2のイジングモデルの計算装置C2の構成を
図2に示す。レーザ発振部21は、複数のレーザパルスP1、P2、P3、P4、・・・を生成する。リング共振器22は、複数のレーザパルスP1、P2、P3、P4、・・・を周回させる。
【0012】
スピン測定部23は、複数のレーザパルスP1、P2、P3、P4、・・・の位相を測定する。相互結合実装部24は、複数のレーザパルスP1、P2、P3、P4、・・・の間の相互注入を行ない、複数のイジングスピンの間の相互結合を実装する。
【0013】
相互結合実装部24は、相互結合係数ΣJ
1kσ
k(k=2、3、4)を電子回路上で計算し、相互結合係数ΣJ
1kσ
k(k=2、3、4)を反映した振幅及び位相を有するレーザパルスを生成し、生成したレーザパルスをレーザパルスP1に注入する。
【0014】
相互結合実装部24は、相互結合係数ΣJ
2kσ
k(k=1、3、4)を電子回路上で計算し、相互結合係数ΣJ
2kσ
k(k=1、3、4)を反映した振幅及び位相を有するレーザパルスを生成し、生成したレーザパルスをレーザパルスP2に注入する。
【0015】
相互結合実装部24は、相互結合係数ΣJ
3kσ
k(k=1、2、4)を電子回路上で計算し、相互結合係数ΣJ
3kσ
k(k=1、2、4)を反映した振幅及び位相を有するレーザパルスを生成し、生成したレーザパルスをレーザパルスP3に注入する。
【0016】
相互結合実装部24は、相互結合係数ΣJ
4kσ
k(k=1、2、3)を電子回路上で計算し、相互結合係数ΣJ
4kσ
k(k=1、2、3)を反映した振幅及び位相を有するレーザパルスを生成し、生成したレーザパルスをレーザパルスP4に注入する。
【0017】
スピン測定部23は、複数のレーザパルスP1、P2、P3、P4、・・・が定常状態に到達した後に、複数のレーザパルスP1、P2、P3、P4、・・・の位相を測定することにより、複数のレーザパルスの位相に対応する複数のイジングスピンの方向を測定する。
【0018】
つまり、特許文献2では、相互結合実装部24が有する電子回路を用いて、複数のレーザパルスの間の相互注入を正確に実行することができ、複数のイジングスピンの間の相互結合を正確に実装することができる。しかし、リング共振器22の光路長を安定化しなければ、複数のレーザパルスを安定化することができない。
【0019】
そこで、前記課題を解決するために、本開示は、組み合わせ最適化問題の最適解を求めるために、組み合わせ最適化問題をイジングモデルへマッピングし、イジングモデルの基底状態を計算するにあたり、光学回路を安定化する必要をなくすことを目的とする。
【0020】
そして、前記目的に加えて、本開示は、機械学習のボルツマンサンプリングを行なうために、機械学習を連続値スピンモデルへマッピングし、連続値スピンモデルの平衡状態を計算するにあたり、光学回路を安定化する必要をなくすことも目的とする。
【課題を解決するための手段】
【0021】
前記課題を解決するために、結合振動子系のダイナミクスを記述する微分方程式を、光学回路で実装するのではなく、電子回路で実装することとした。そのうえで、上記の微分方程式のイテレーションの反復後に、上記の微分方程式の定常状態における各振動子毎の位相を計算することにより、結合振動子系の相互結合に対応するイジングモデル又は連続値スピンモデルの基底状態又は平衡状態を計算することとした。
【0022】
具体的には、本開示は、結合振動子系のダイナミクスを記述する微分方程式の各イテレーションにおいて、各振動子毎の微小時間後の振幅及び位相を計算するイテレーション部と、前記イテレーション部により反復されたイテレーションの後に、前記微分方程式の定常状態における各振動子毎の位相を計算することにより、前記結合振動子系の相互結合に対応するスピン系の基底状態又は平衡状態を計算するスピン系計算部と、を備え、前記イテレーション部は、前記微分方程式の各イテレーションにおいて、各振動子毎の利得及び損失に起因する各振動子毎の振幅及び位相の微小時間変化を計算する利得損失計算部と、前記微分方程式の各イテレーションにおいて、各振動子の間の相互結合に起因する各振動子毎の振幅及び位相の微小時間変化を計算する相互結合計算部と、前記微分方程式の各イテレーションにおいて、前記利得損失計算部及び前記相互結合計算部により各々計算された各振動子毎の振幅及び位相の微小時間変化に基づいて、各振動子毎の微小時間後の振幅及び位相を計算する振幅位相計算部と、を備えることを特徴とする結合振動子系の計算装置である。
【0023】
また、本開示は、結合振動子系のダイナミクスを記述する微分方程式の各イテレーションにおいて、各振動子毎の微小時間後の振幅及び位相を計算するイテレーションステップと、前記イテレーションステップにより反復されたイテレーションの後に、前記微分方程式の定常状態における各振動子毎の位相を計算することにより、前記結合振動子系の相互結合に対応するスピン系の基底状態又は平衡状態を計算するスピン系計算ステップと、をコンピュータに実行させ、前記イテレーションステップは、前記微分方程式の各イテレーションにおいて、各振動子毎の利得及び損失に起因する各振動子毎の振幅及び位相の微小時間変化を計算する利得損失計算ステップと、前記微分方程式の各イテレーションにおいて、各振動子の間の相互結合に起因する各振動子毎の振幅及び位相の微小時間変化を計算する相互結合計算ステップと、前記微分方程式の各イテレーションにおいて、前記利得損失計算ステップ及び前記相互結合計算ステップにより各々計算された各振動子毎の振幅及び位相の微小時間変化に基づいて、各振動子毎の微小時間後の振幅及び位相を計算する振幅位相計算ステップと、を備えることを特徴とする結合振動子系の計算プログラムである。
【0024】
また、本開示は、結合振動子系のダイナミクスを記述する微分方程式の各イテレーションにおいて、各振動子毎の微小時間後の振幅及び位相を計算するイテレーションステップと、前記イテレーションステップにより反復されたイテレーションの後に、前記微分方程式の定常状態における各振動子毎の位相を計算することにより、前記結合振動子系の相互結合に対応するスピン系の基底状態又は平衡状態を計算するスピン系計算ステップと、を備え、前記イテレーションステップは、前記微分方程式の各イテレーションにおいて、各振動子毎の利得及び損失に起因する各振動子毎の振幅及び位相の微小時間変化を計算する利得損失計算ステップと、前記微分方程式の各イテレーションにおいて、各振動子の間の相互結合に起因する各振動子毎の振幅及び位相の微小時間変化を計算する相互結合計算ステップと、前記微分方程式の各イテレーションにおいて、前記利得損失計算ステップ及び前記相互結合計算ステップにより各々計算された各振動子毎の振幅及び位相の微小時間変化に基づいて、各振動子毎の微小時間後の振幅及び位相を計算する振幅位相計算ステップと、を備えることを特徴とする結合振動子系の計算方法である。
【0025】
この構成によれば、組み合わせ最適化問題の最適解を求めるために、組み合わせ最適化問題をイジングモデルへマッピングし、イジングモデルの基底状態を計算するにあたり、電子回路で実装することにより、光学回路を安定化する必要をなくすことができる。
【0026】
そして、機械学習のボルツマンサンプリングを行なうために、機械学習を連続値スピンモデルへマッピングし、連続値スピンモデルの平衡状態を計算するにあたり、電子回路で実装することにより、光学回路を安定化する必要をなくすことができる。
【0027】
また、本開示は、前記微分方程式の各イテレーションにおいて、各振動子毎の雑音に起因する各振動子毎の振幅及び位相の微小時間変化を計算する雑音計算部、をさらに備え、前記振幅位相計算部は、前記微分方程式の各イテレーションにおいて、前記利得損失計算部、前記相互結合計算部及び前記雑音計算部により各々計算された各振動子毎の振幅及び位相の微小時間変化に基づいて、各振動子毎の微小時間後の振幅及び位相を計算することを特徴とする結合振動子系の計算装置である。
【0028】
この構成によれば、結合振動子系のダイナミクスを記述する微分方程式の定常状態として、複数の結合振動子の振幅が0である状態を回避することができる。
【0029】
また、本開示は、結合振動子系のダイナミクスを記述する微分方程式の各イテレーションにおいて、各振動子毎の微小時間後の振幅及び位相を計算するイテレーション部、を備え、前記イテレーション部は、前記微分方程式の各イテレーションにおいて、各振動子毎の利得及び損失に起因する各振動子毎の振幅及び位相の微小時間変化を計算する利得損失計算部と、前記微分方程式の各イテレーションにおいて、各振動子の間の相互結合に起因する各振動子毎の振幅及び位相の微小時間変化を計算する相互結合計算部と、前記微分方程式の各イテレーションにおいて、各振動子毎の雑音に起因する各振動子毎の振幅及び位相の微小時間変化を計算する雑音計算部と、前記微分方程式の各イテレーションにおいて、前記利得損失計算部、前記相互結合計算部及び前記雑音計算部により各々計算された各振動子毎の振幅及び位相の微小時間変化に基づいて、各振動子毎の微小時間後の振幅及び位相を計算する振幅位相計算部と、を備えることを特徴とする結合振動子系の計算装置である。
【0030】
この構成によれば、完全結合系のニューロチップ等において、結合振動子系のダイナミクスを計算するにあたり、電子回路で実装することにより、光学回路を安定化する必要をなくすことができる。
【0031】
また、本開示は、前記雑音計算部は、前記微分方程式の初期状態のみにおいて、各振動子毎の雑音に起因する各振動子毎の振幅及び位相の微小時間変化を計算することを特徴とする結合振動子系の計算装置である。
【0032】
この構成によれば、複数の結合振動子の振幅が0である初期状態から脱出することができた後には、雑音計算部の計算負担をなくすことができる。
【0033】
また、本開示は、前記イテレーション部は、前回のイテレーションにおける各振動子毎の微小時間後の振幅及び位相が、前記微分方程式の定常状態に所定の精度で接近したときに、次回のイテレーションにおける各振動子毎の微小時間後の振幅及び位相の計算を停止することを特徴とする結合振動子系の計算装置である。
【0034】
この構成によれば、複数の結合振動子の振幅が有限値である定常状態に接近することができた後には、イテレーション部の計算負担をなくすことができる。
【0035】
また、本開示は、前記イテレーション部は、前記微分方程式の各イテレーションにおいて、各振動子毎の並列処理により、各振動子毎の微小時間後の振幅及び位相を計算することを特徴とする結合振動子系の計算装置である。
【0036】
結合振動子系の全振動子数をMとすると、各振動子毎の並列処理を行わないときには、2体相互結合の計算量は、M
2のオーダーに増えるが、各振動子毎の並列処理を行なうときには、2体相互結合の計算量は、log
2Mのオーダーに減らせる。
【0037】
また、本開示は、前記イテレーション部は、複数のイテレーション部を備え、前記複数のイテレーション部の各々は、前記微分方程式の各イテレーションにおいて、前記結合振動子系のうちの各々に特定のグループに属する振動子の微小時間後の振幅及び位相のデータを、前記複数のイテレーション部のその他との間で共有することを特徴とする結合振動子系の計算装置である。
【0038】
この構成によれば、結合振動子系の全振動子数が膨大な数になるときでも、各々のイテレーション部を各々のプロセッサに実装することができる。
【0039】
また、本開示は、前回のイテレーションにおける前記データの共有処理が、次回のイテレーションにおける計算処理を停止/中断させないように、前記複数のイテレーション部の各々は、前記結合振動子系のうちの各々に特定のグループに属する振動子を割り当てられることを特徴とする結合振動子系の計算装置である。
【0040】
この構成によれば、各々のイテレーション部を各々のプロセッサに実装するときでも、各々のイテレーション部の間のデータの共有処理を円滑に実行することができる。
【0041】
また、本開示は、前記振幅位相計算部は、前記微分方程式の各イテレーションにおいて、所定の精度で量子化したうえで、各振動子毎の微小時間後の振幅及び位相を計算することを特徴とする結合振動子系の計算装置である。
【0042】
この構成によれば、結合振動子系の計算装置の計算負担を減らすことができるとともに、結合振動子系の計算装置のメモリ容量を減らすことができる。
【0043】
また、本開示は、前記振幅位相計算部により計算される各振動子毎の微小時間後の振幅についての量子化カットオフは、前記振幅位相計算部により計算される各振動子毎の微小時間後の振幅についての量子化の前記所定の精度を満足するように設定されており、かつ、前記微分方程式の定常状態における各振動子毎の振幅と比べて大きく設定されていることを特徴とする結合振動子系の計算装置である。
【0044】
この構成によれば、各振動子毎の振幅の分解能を低くし過ぎず、かつ、各振動子毎の振幅の制限を厳しくし過ぎず、結合振動子系の計算装置の計算負担を減らすことができるとともに、結合振動子系の計算装置のメモリ容量を減らすことができる。
【0045】
また、本開示は、前記相互結合計算部により計算される各振動子毎の振幅の微小時間変化についての量子化ビット数は、前記振幅位相計算部により計算される各振動子毎の微小時間後の振幅についての量子化ビット数と比べて、少なくともlog
2M(ただし、Mは、前記結合振動子系の全振動子数である。)だけ大きく設定されていることを特徴とする結合振動子系の計算装置である。
【0046】
この構成によれば、各振動子毎の振幅の分解能と比べて、各振動子毎の相互結合の大きさの分解能を低くし過ぎず、結合振動子系の計算装置の計算負担を減らすことができるとともに、結合振動子系の計算装置のメモリ容量を減らすことができる。
【発明の効果】
【0047】
このように、本開示によれば、組み合わせ最適化問題の最適解を求めるために、組み合わせ最適化問題をイジングモデルへマッピングし、イジングモデルの基底状態を計算するにあたり、光学回路を安定化する必要をなくすことができる。
【0048】
そして、本開示によれば、機械学習のボルツマンサンプリングを行なうために、機械学習を連続値スピンモデルへマッピングし、連続値スピンモデルの平衡状態を計算するにあたり、光学回路を安定化する必要をなくすことができる。
【発明を実施するための形態】
【0050】
添付の図面を参照して本開示の実施形態を説明する。以下に説明する実施形態は本開示の実施の例であり、本開示は以下の実施形態に制限されるものではない。
【0051】
(第1実施形態:計算原理)
第1実施形態では、組み合わせ最適化問題の最適解を求めるために、組み合わせ最適化問題をイジングモデルへマッピングし、イジングモデルの基底状態を計算する。または、完全結合系のニューロチップ等において、結合振動子系のダイナミクスを計算する。
【0052】
そこで、複数の振動子で複数のイジングスピンを実装する。ここで、複数の振動子の間の相互結合を行なうことにより、複数のイジングスピンの間の相互結合を実装する。そして、複数の振動子全体の閾値利得が最低となる発振モードを立ち上げることにより、複数のイジングスピン全体のエネルギーが最低となる基底状態を実装する。
【0053】
まず、複数の振動子全体の閾値利得が最低となる発振モードを立ち上げることにより、複数のイジングスピン全体のエネルギーが最低となる基底状態を実装することができる理由について説明する。イジングモデルのハミルトニアンは、数1で表される。ここで、J
ijは、スピンi、jの間の相互結合係数である。そして、σ
i、σ
j(=+1又は−1)は、それぞれ、スピンi、jの位相(0rad又はπrad)を表わす。
【数1】
【0054】
各振動子iにおいて、I成分強度c
i及びQ成分強度s
iについて、レート方程式は、ファンデルポール方程式に対応して、数2、3のようになる。
【数2】
【数3】
【0055】
tは、無次元時間であり、t=γ
Sτ/2である。τは、実時間である。γ
Sは、振動子の強度減衰率である。c
i及びs
iは、それぞれ、規格化後のI成分及びQ成分の強度であり、c
i=C
i/A
s及びs
i=S
i/A
sである。C
i及びS
iは、それぞれ、規格化前のI成分及びQ成分の強度である。規格化因子A
sは、p(後述する規格化後のポンプレート)=2における振動子の強度であり、A
s=√(γ
Sγ
p/2κ
2)である。γ
pは、ポンピングの強度減衰率である。κは、縮退パラメトリックゲインである。pは、規格化後のポンプレートであり、p=F
p/F
thである。F
pは、規格化前のポンプレートである。規格化因子F
thは、閾値ポンプレートであり、F
th=γ
S√(γ
p)/4κである。
【0056】
数2の−c
i及び数3の−s
iは、損失に関わる項である。数2の+pc
i及び数3の−ps
iは、線形利得に関わる項である。数2の−(c
i2+s
i2)c
i及び数3の−(c
i2+s
i2)s
iは、飽和利得に関わる項である。これらの項は、2体の相互結合等による摂動項を含まない、ファンデルポール方程式を構成する。
【0057】
数2、3のξ
ij(J
ijに比例)が関わる項は、2体の相互結合に関わる項であり、ファンデルポール方程式に対する、2体の相互結合による摂動項である。数2、3のdW(確率微分)が関わる項は、振動子強度の増幅段階等での雑音に関わる項であり、ファンデルポール方程式に対する、振動子強度の増幅段階等での雑音による摂動項である。
【0058】
定常状態において、数2、3は、それぞれ、数4、5のようになる。
【数4】
【数5】
【0059】
数2のp−(c
i2+s
i2)は、各振動子iについての飽和利得である。ここで、定常状態において、複数の振動子全体についての飽和利得は、複数の振動子全体についての強度減衰率に等しく、I成分c
iは、有限値であるが、Q成分s
iは、0である。よって、複数の振動子全体についての強度減衰率Γは、数6のようになる。
【数6】
【0060】
ここで、数6の最右辺の第1項は、数4の左辺の第3項を摂動項としたときにおける、摂動の0次の寄与を示す。そして、数6の最右辺の第2項は、数4の左辺の第3項を摂動項としたときにおける、摂動の1次の寄与を示す。さらに、σ
i=sgn(c
i)〜sgn(c
i(0))(c
i(0)は摂動の0次の寄与)を用いている。
【0061】
ポンプレートpを漸増制御するときには、複数の振動子全体として、「最初に」最小の強度減衰率Γを実現する発振位相状態{σ
i}が選択される。つまり、複数の振動子全体として、1個の特定の発振モードが選択される。そして、発振モードの間の競合に起因して、1個の特定の発振モードは、他の発振モードを抑制する。つまり、複数の振動子全体として、数6のΓは最小化される。一方で、複数の振動子全体として、数6のMは一定である。よって、複数の振動子全体として、数6の−Σξ
ijσ
iσ
jは最小化される。つまり、数1のイジングハミルトニアンを最小化する基底状態が実現されたことになる。
【0062】
(第1実施形態:計算方法)
次に、第1実施形態の結合振動子系の計算装置の構成を
図3に示す。結合振動子系の計算装置C3は、イテレーション部31及びスピン系計算部32から構成される。結合振動子系の計算装置C3に対して、結合振動子系の計算プログラムをインストールすることにより、イテレーション部31及びスピン系計算部32を実装することができる。
【0063】
イテレーション部31は、結合振動子系のダイナミクスを記述する微分方程式(数2)の各イテレーションにおいて、各振動子i毎の微小時間後の振幅及び位相(数2のc
iの絶対値及び符号)を計算する。よって、イテレーション部31は、完全結合系のニューロチップ等において、結合振動子系のダイナミクスを計算することができる。
【0064】
スピン系計算部32は、イテレーション部31により反復されたイテレーションの後に、微分方程式(数2)の定常状態における各振動子i毎の位相(数2のc
iの符号)を計算することにより、結合振動子系の相互結合(数2のξ
ij)に対応するイジングモデル(数1)の基底状態を計算する。よって、スピン系計算部32は、イジングモデルの基底状態を計算することにより、組み合わせ最適化問題の最適解を求めることができる。
【0065】
ここで、結合振動子系の全振動子数をMとすると、数2の微分方程式のうち、右辺第1項の利得損失項及び右辺第3項の雑音項の計算量は、Mに比例するが、右辺第2項の相互結合項の計算量は、M
2に比例する。そこで、数2の微分方程式のうち、右辺第2項の相互結合項の計算時間が、右辺第1項の利得損失項及び右辺第3項の雑音項の計算時間と比べて、十分に長いときには、
図3に示したように各イテレーションを行なえばよい。
【0066】
つまり、ある回のイテレーションの後でのc
iを用いて計算した右辺第1項の利得損失項及び右辺第3項の雑音項と、その回のイテレーションよりも数回(例えば、1回のみ。)遅れた回のイテレーションの後でのc
iを用いて計算した右辺第2項の相互結合項と、を加算することにより、その回のイテレーションでの左辺第1項の微小時間変化を計算するのである。よって、右辺第2項の相互結合項を余裕を持って計算しながら、右辺第1項の利得損失項及び右辺第3項の雑音項を高速に計算することができる。
【0067】
結合振動子系の計算装置C3のうち、イテレーション部31は、利得損失計算部311、雑音計算部312、相互結合計算部313及び振幅位相計算部314から構成される。
【0068】
利得損失計算部311は、数2の微分方程式の各イテレーションにおいて、各振動子i毎の利得及び損失に起因する各振動子i毎の振幅及び位相の微小時間変化を計算する。具体的には、利得損失計算部311は、数2の微分方程式の各イテレーションにおいて、第n回目のイテレーションの後でのc
i(n)を入力され、c
i=Atanh(c
i/B)を出力する。ここで、第1回目のイテレーションの前でのc
i(0)は、0に初期設定される。そして、A及びBは、数2の右辺第1項のポンプレートpに応じて設定される。
【0069】
第1実施形態の利得損失計算部の処理内容を
図4に示す。
図4の横軸は、利得損失計算部311の入力c
inを示し、
図4の縦軸は、利得損失計算部311の出力c
outを示す。2つの曲線のうちの一方の曲線は、数2の右辺第1項を計算したときにおける、利得損失計算部311の入力c
inと出力c
outとの間の関係を示す。2つの曲線のうちの他方の曲線は、数2の右辺第1項をtanhで近似したときにおける、利得損失計算部311の入力c
inと出力c
outとの間の関係を示す。2つの曲線のうち、上記の他方の曲線は、上記の一方の曲線に対して、正当な近似となっていることが分かる。
【0070】
そこで、利得損失計算部311は、
図4に示した入力c
inと出力c
outとの間の関係をルックアップテーブルとして記憶していれば、数2の右辺第1項を効率よく計算することができる。或いは、利得損失計算部311は、数2の右辺第1項をルンゲクッタ法又はオイラー丸山法で計算すれば、数2の右辺第1項を精度高く計算することができる。
【0071】
雑音計算部312は、数2の微分方程式の各イテレーションにおいて、各振動子i毎の雑音に起因する各振動子i毎の振幅及び位相の微小時間変化を計算する。具体的には、雑音計算部312は、数2の微分方程式の各イテレーションにおいて、利得損失計算部311からの出力c
iを入力され、c
i=c
i+Noiseを出力する。ここで、Noiseは、数2の右辺第3項に応じて設定される。そして、Noiseは、数2の微分方程式の各イテレーションのうち、いずれの段階において付加されてもよい。
【0072】
相互結合計算部313は、数2の微分方程式の各イテレーションにおいて、各振動子iの間の相互結合に起因する各振動子i毎の振幅及び位相の微小時間変化を計算する。具体的には、相互結合計算部313は、数2の微分方程式の各イテレーションにおいて、雑音計算部312からの出力c
iを入力され、Σξ
ijc
jを出力する。ここで、相互結合計算部313でのΣξ
ijc
jの計算時間は、利得損失計算部311でのc
i=Atanh(c
i/B)の計算時間及び雑音計算部312でのc
i=c
i+Noiseの計算時間の合計時間と比べて、イテレーション数回分(例えば、1回分。)だけ長くなっている。
【0073】
ただし、相互結合計算部313は、ξ
ijを表わす行列のうち0となる要素を省略し、ξ
ijを表わす行列を圧縮すれば、数2の右辺第2項を効率よく計算することができる。
【0074】
振幅位相計算部314は、数2の微分方程式の各イテレーションにおいて、利得損失計算部311、雑音計算部312及び相互結合計算部313により各々計算された各振動子i毎の振幅及び位相の微小時間変化に基づいて、各振動子i毎の微小時間後の振幅及び位相を計算する。具体的には、振幅位相計算部314は、数2の微分方程式の各イテレーションにおいて、雑音計算部312からの出力c
iを入力され、相互結合計算部313からの出力Σξ
ijc
jを入力され、雑音計算部312からの出力c
i及び相互結合計算部313からの出力Σξ
ijc
jを加算し、第(n+1)回目のイテレーションの後でのc
i(n+1)を出力する。ここで、雑音計算部312からの出力c
iは、第n回目のイテレーションの後でのc
i(n)を用いて計算されたものであるが、相互結合計算部313からの出力Σξ
ijc
jは、第(n−m)回目のイテレーションの後でのc
i(n−m)を用いて計算されたものである。ただし、mは、イテレーションm回分(例えば、1回分。)を表わす。
【0075】
スピン系計算部32は、イテレーション部31により反復されたイテレーションの後に、数2の微分方程式の定常状態における各振動子i毎の位相を計算することにより、結合振動子系の相互結合に対応するイジングモデルの基底状態を計算する。
【0076】
このように、組み合わせ最適化問題の最適解を求めるために、組み合わせ最適化問題をイジングモデルへマッピングし、イジングモデルの基底状態を計算するにあたり、電子回路で実装することにより、光学回路を安定化する必要をなくすことができる。そして、完全結合系のニューロチップ等において、結合振動子系のダイナミクスを計算するにあたり、電子回路で実装することにより、光学回路を安定化する必要をなくすことができる。
【0077】
(第1実施形態:計算結果)
次に、第1実施形態の結合振動子系の計算装置の計算結果を
図5に示す。
図5の左欄は、完全グラフK
4(全振動子数M=4)の計算結果を示し、
図5の右欄は、ランダムグラフG1(全振動子数M=800)の計算結果を示す。
図5の横軸は、イテレーション回数を示し、
図5の縦軸は、振幅位相計算部314の出力c
i(n)を示す。
【0078】
図5の左欄の完全グラフK
4では、第1回目のイテレーションの前でのc
i(0)を0に初期設定し、数2の右辺第1項のポンプレートをp=2.0に設定し、利得損失計算部311からの出力をc
out=2.2tanh(c
in/1.8)に設定した。すると、イテレーション回数〜30回目において、c
i(n)が0から立ち上がり、イテレーション回数〜50回目において、c
i(n)が定常状態に落ち着き、完全グラフK
4の最大のカット数が得られ、完全グラフK
4に対応するイジングモデルの基底状態が得られた。
【0079】
図5の右欄のランダムグラフG1では、第1回目のイテレーションの前でのc
i(0)を0に初期設定し、数2の右辺第1項のポンプレートをp=1.1に設定し、利得損失計算部311からの出力をc
out=2.35tanh(c
in/2.46)に設定した。すると、イテレーション回数〜10回目において、c
i(n)が0から立ち上がり、イテレーション回数〜100回目において、c
i(n)が定常状態に落ち着き、ランダムグラフG1の最大のカット数が得られ、ランダムグラフG1に対応するイジングモデルの基底状態が得られた。
【0080】
ここで、雑音計算部312は、数2の微分方程式の初期状態のみにおいて、各振動子i毎の雑音に起因する各振動子i毎の振幅及び位相の微小時間変化を計算してもよい。具体的には、雑音計算部312は、
図5の左欄の完全グラフK
4では、イテレーション回数〜30回目において、計算を停止してもよく、
図5の右欄のランダムグラフG1では、イテレーション回数〜10回目において、計算を停止してもよい。
【0081】
よって、数2の微分方程式の定常状態として、複数の結合振動子の振幅が0である状態を回避することができる。そして、複数の結合振動子の振幅が0である初期状態から脱出することができた後には、雑音計算部312の計算負担をなくすことができる。
【0082】
さらに、イテレーション部31は、前回のイテレーションにおける各振動子i毎の微小時間後の振幅及び位相が、数2の微分方程式の定常状態に所定の精度で接近したときに、次回のイテレーションにおける各振動子i毎の微小時間後の振幅及び位相の計算を停止してもよい。具体的には、イテレーション部31は、
図5の左欄の完全グラフK
4では、イテレーション回数〜50回目において、計算を停止してもよく、
図5の右欄のランダムグラフG1では、イテレーション回数〜100回目において、計算を停止してもよい。
【0083】
より一般的には、イテレーション部31は、所定の割合(例えば、全振動子の90%。)の振動子について、c
i(n)が所定の閾値(例えば、飽和振幅の90%。)を超えたときに、計算を停止してもよい。よって、複数の結合振動子の振幅が有限値である定常状態に接近することができた後には、イテレーション部31の計算負担をなくすことができる。
【0084】
(第1実施形態:並列計算)
次に、第1実施形態のイテレーション部の第1構成を
図6に示す。イテレーション部31は、複数のイテレーション部31−1、・・・、31−m、・・・、31−M及びFIFO33から構成される。複数のイテレーション部31−1、・・・、31−m、・・・、31−M及びFIFO33は、1プロセッサ又は1FPGAに収容される。
【0085】
複数のイテレーション部31−1、・・・、31−m、・・・、31−Mは、数2の微分方程式の各イテレーションにおいて、各振動子1、・・・、m、・・・、M毎の並列処理により、各振動子1、・・・、m、・・・、M毎の微小時間後の振幅及び位相を計算する。
【0086】
図6の以下の説明では、イテレーション部31−mについて説明する。イテレーション部31−mは、利得損失計算部311−m、雑音計算部312−m、相互結合計算部313−m及び振幅位相計算部314−mから構成される。
【0087】
利得損失計算部311−mは、FIFO33(詳細については後述する。)に格納されたc
1(n)、・・・、c
m(n)、・・・、c
M(n)をこの順序で入力され、c
1=Atanh(c
1/B)、・・・、c
m=Atanh(c
m/B)、・・・、c
M=Atanh(c
M/B)をこの順序で出力する。ここで、利得損失計算部311−mは、複数のイテレーション部31−1、・・・、31−m、・・・、31−Mの間で共有されていてもよい。
【0088】
雑音計算部312−mは、利得損失計算部311−mからの出力c
1、・・・、c
m、・・・、c
Mをこの順序で入力され、c
1=c
1+Noise、・・・、c
m=c
m+Noise、・・・、c
M=c
M+Noiseをこの順序で出力する。ここで、雑音計算部312−mは、複数のイテレーション部31−1、・・・、31−m、・・・、31−Mの間で共有されていてもよい。
【0089】
相互結合計算部313−mは、雑音計算部312−mからの出力c
1、・・・、c
m、・・・、c
Mをこの順序で入力され、Σξ
mjc
jを出力する。ここで、相互結合計算部313−mは、FIFO315−m、乗算器316−m及び加算器317−mから構成される。
【0090】
乗算器316−mは、雑音計算部312−mからの出力c
1、・・・、c
m、・・・、c
Mをこの順序で入力され、FIFO315−mに格納されたξ
m1、・・・、ξ
mm(=0)、・・・、ξ
mMをこの順序で入力され、ξ
m1c
1、・・・、ξ
mmc
m(=0)、・・・、ξ
mMc
Mをこの順序で出力する。ここで、乗算器316−mでのξ
m1c
1、・・・、ξ
mmc
m(=0)、・・・、ξ
mMc
Mの計算時間は、利得損失計算部311−mでのc
m=Atanh(c
m/B)の計算時間及び雑音計算部312−mでのc
m=c
m+Noiseの計算時間の合計時間と比べて、イテレーション数回分(例えば、1回分。)だけ長くなっている。
【0091】
加算器317−mは、乗算器316−mからの出力ξ
m1c
1、・・・、ξ
mmc
m(=0)、・・・、ξ
mMc
Mをこの順序で入力され、Σξ
mjc
jを出力する。
【0092】
振幅位相計算部314−mは、雑音計算部312−mからの出力c
mを入力され、加算器317−mからの出力Σξ
mjc
jを入力され、雑音計算部312−mからの出力c
m及び加算器317−mからの出力Σξ
mjc
jを加算し、c
m(n+1)を出力する。ここで、雑音計算部312−mからの出力c
mは、第n回目のイテレーションの後でのc
m(n)を用いて計算されたものであるが、加算器317−mからの出力Σξ
mjc
jは、第(n−m)回目のイテレーションの後でのc
m(n−m)を用いて計算されたものである。ただし、mは、イテレーションm回分(例えば、1回分。)を表わす。
【0093】
最初に、イテレーション部31−1は、c
1(n+1)をFIFO33に格納する。・・・次に、イテレーション部31−mは、c
m(n+1)をFIFO33に格納する。・・・最後に、イテレーション部31−Mは、c
M(n+1)をFIFO33に格納する。
【0094】
ここで、結合振動子系の全振動子数をMとすると、各振動子毎の並列処理を行わないときには、2体相互結合の計算量は、M
2のオーダーに増える。しかし、各振動子毎の並列処理を行なうときには、2体相互結合の計算量は、log
2Mのオーダーに減らすことができる。
【0095】
第1実施形態のイテレーション部の第2構成を
図7に示す。イテレーション部31は、複数のイテレーション部31−I、31−II、31−IIIから構成される。各々のイテレーション部31−I、31−II、31−IIIは、1プロセッサ又は1FPGAに収容される。
【0096】
図6に示した第1構成に加えて、各々のイテレーション部31−I、31−II、31−IIIは、数2の微分方程式の各イテレーションにおいて、結合振動子系のうちの各々に特定のグループに属する振動子の微小時間後の振幅及び位相のデータを、その他のイテレーション部31−I、31−II、31−IIIとの間で共有する。
【0097】
イテレーション部31−Iは、FIFO33−I、イテレーション部34−I及びFIFO35−Iから構成される。イテレーション部34−Iは、c
1、・・・、c
3Mのうち、c
1、c
2、・・・、c
Mについて、
図6に示した複数のイテレーション部31−1、・・・、31−m、・・・、31−Mと同様の処理を実行する。
【0098】
イテレーション部34−Iは、FIFO33−I(詳細については後述する。)に格納されたc
1(n)、・・・、c
M(n)、c
M+1(n)、・・・、c
2M(n)、c
2M+1(n)、・・・、c
3M(n)をこの順序で入力され、c
1(n+1)、c
2(n+1)、・・・、c
M(n+1)をこの順序で出力し、FIFO33−Iに格納する前にFIFO35−Iに格納する。
【0099】
イテレーション部31−IIは、FIFO33−II、イテレーション部34−II及びFIFO35−IIから構成される。イテレーション部34−IIは、c
1、・・・、c
3Mのうち、c
M+1、c
M+2、・・・、c
2Mについて、
図6に示した複数のイテレーション部31−1、・・・、31−m、・・・、31−Mと同様の処理を実行する。
【0100】
イテレーション部34−IIは、FIFO33−II(詳細については後述する。)に格納されたc
1(n)、・・・、c
M(n)、c
M+1(n)、・・・、c
2M(n)、c
2M+1(n)、・・・、c
3M(n)をこの順序で入力され、c
M+1(n+1)、c
M+2(n+1)、・・・、c
2M(n+1)をこの順序で出力し、FIFO33−IIに格納する前にFIFO35−IIに格納する。
【0101】
イテレーション部31−IIIは、FIFO33−III、イテレーション部34−III及びFIFO35−IIIから構成される。イテレーション部34−IIIは、c
1、・・・、c
3Mのうち、c
2M+1、c
2M+2、・・・、c
3Mについて、
図6に示した複数のイテレーション部31−1、・・・、31−m、・・・、31−Mと同様の処理を実行する。
【0102】
イテレーション部34−IIIは、FIFO33−III(詳細については後述する。)に格納されたc
1(n)、・・・、c
M(n)、c
M+1(n)、・・・、c
2M(n)、c
2M+1(n)、・・・、c
3M(n)をこの順序で入力され、c
2M+1(n+1)、c
2M+2(n+1)、・・・、c
3M(n+1)をこの順序で出力し、FIFO33−IIIに格納する前にFIFO35−IIIに格納する。
【0103】
最初に、c
1(n+1)、c
2(n+1)、・・・、c
M(n+1)が、FIFO35−IからFIFO33−I、33−II、33−IIIへと転送される。次に、c
M+1(n+1)、c
M+2(n+1)、・・・、c
2M(n+1)が、FIFO35−IIからFIFO33−I、33−II、33−IIIへと転送される。最後に、c
2M+1(n+1)、c
2M+2(n+1)、・・・、c
3M(n+1)が、FIFO35−IIIからFIFO33−I、33−II、33−IIIへと転送される。ここで、FIFO33−I、33−II、33−IIIは、単一のFIFOであってもよい。
【0104】
このように、結合振動子系の全振動子数が膨大な数になるときでも、各々のイテレーション部31−I、31−II、31−IIIを各々のプロセッサに実装することができる。
【0105】
第1実施形態のイテレーション部の第3構成を
図8に示す。イテレーション部31は、複数のイテレーション部31−I、31−II、31−IIIから構成される。各々のイテレーション部31−I、31−II、31−IIIは、1プロセッサ又は1FPGAに収容される。
【0106】
図7に示した第2構成に加えて、前回のイテレーションにおける上記のデータ(c
1(n+1)、・・・c
3M(n+1))の共有処理が、次回のイテレーションにおける計算処理を停止/中断させないように、各々のイテレーション部31−I、31−II、31−IIIは、結合振動子系のうちの各々に特定のグループに属する振動子を割り当てられる。
【0107】
イテレーション部31−Iは、FIFO33−I、イテレーション部34−I及びFIFO35−Iから構成される。イテレーション部34−Iは、c
1、・・・、c
3Mのうち、c
1、c
4、・・・、c
3M−2について、
図6に示した複数のイテレーション部31−1、・・・、31−m、・・・、31−Mと同様の処理を実行する。
【0108】
イテレーション部34−Iは、FIFO33−I(詳細については後述する。)に格納されたc
1(n)、・・・、c
M(n)、c
M+1(n)、・・・、c
2M(n)、c
2M+1(n)、・・・、c
3M(n)をこの順序で入力され、c
1(n+1)、c
4(n+1)、・・・、c
3M−2(n+1)をこの順序で出力し、FIFO33−Iに格納する前にFIFO35−Iに格納する。
【0109】
イテレーション部31−IIは、FIFO33−II、イテレーション部34−II及びFIFO35−IIから構成される。イテレーション部34−IIは、c
1、・・・、c
3Mのうち、c
2、c
5、・・・、c
3M−1について、
図6に示した複数のイテレーション部31−1、・・・、31−m、・・・、31−Mと同様の処理を実行する。
【0110】
イテレーション部34−IIは、FIFO33−II(詳細については後述する。)に格納されたc
1(n)、・・・、c
M(n)、c
M+1(n)、・・・、c
2M(n)、c
2M+1(n)、・・・、c
3M(n)をこの順序で入力され、c
2(n+1)、c
5(n+1)、・・・、c
3M−1(n+1)をこの順序で出力し、FIFO33−IIに格納する前にFIFO35−IIに格納する。
【0111】
イテレーション部31−IIIは、FIFO33−III、イテレーション部34−III及びFIFO35−IIIから構成される。イテレーション部34−IIIは、c
1、・・・、c
3Mのうち、c
3、c
6、・・・、c
3Mについて、
図6に示した複数のイテレーション部31−1、・・・、31−m、・・・、31−Mと同様の処理を実行する。
【0112】
イテレーション部34−IIIは、FIFO33−III(詳細については後述する。)に格納されたc
1(n)、・・・、c
M(n)、c
M+1(n)、・・・、c
2M(n)、c
2M+1(n)、・・・、c
3M(n)をこの順序で入力され、c
3(n+1)、c
6(n+1)、・・・、c
3M(n+1)をこの順序で出力し、FIFO33−IIIに格納する前にFIFO35−IIIに格納する。
【0113】
最初に、c
1(n+1)が、FIFO35−IからFIFO33−I、33−II、33−IIIへと転送される。次に、c
2(n+1)が、FIFO35−IIからFIFO33−I、33−II、33−IIIへと転送される。次に、c
3(n+1)が、FIFO35−IIIからFIFO33−I、33−II、33−IIIへと転送される。・・・次に、c
3M−2(n+1)が、FIFO35−IからFIFO33−I、33−II、33−IIIへと転送される。次に、c
3M−1(n+1)が、FIFO35−IIからFIFO33−I、33−II、33−IIIへと転送される。最後に、c
3M(n+1)が、FIFO35−IIIからFIFO33−I、33−II、33−IIIへと転送される。ここで、FIFO33−I、33−II、33−IIIは、単一のFIFOであってもよい。
【0114】
このように、各々のイテレーション部31−I、31−II、31−IIIを各々のプロセッサに実装するときでも、各々のイテレーション部31−I、31−II、31−IIIの間の上記のデータ(c
1(n+1)、・・・c
3M(n+1))の共有処理を円滑に実行することができる。
【0115】
(第1実施形態:ビット量子化)
次に、第1実施形態の振幅位相計算部の量子化を
図9に示す。
図9の左欄は、振幅位相計算部314の量子化の第1形態を示し、
図9の右欄は、振幅位相計算部314の量子化の第2形態を示す。
図9の横軸は、振幅位相計算部314の量子化前の入力を示し、
図9の縦軸は、振幅位相計算部314の量子化後の出力を示す。
【0116】
振幅位相計算部314は、数2の微分方程式の各イテレーションにおいて、所定の精度で量子化したうえで、各振動子i毎の微小時間後の振幅及び位相を計算する。具体的には、振幅位相計算部314は、数2の微分方程式の各イテレーションにおいて、雑音計算部312からの出力c
i及び相互結合計算部313からの出力Σξ
ijc
jの加算結果を所定の精度で量子化し、第(n+1)回目のイテレーションの後でのc
i(n+1)を出力する。
【0117】
図9の左欄に示した第1形態では、振幅位相計算部314の出力ビット数xは、4である。そして、振幅位相計算部314の出力は、0を含まず、振幅位相計算部314の出力の階調数は、2
x=2
4=16である。よって、数2の微分方程式の定常状態として、複数の結合振動子の振幅が0である状態を回避することができる。
【0118】
図9の右欄に示した第2形態でも、振幅位相計算部314の出力ビット数xは、4である。しかし、振幅位相計算部314の出力は、0を含み、振幅位相計算部314の出力の階調数は、2
x−1=2
4−1=15である。よって、数2の微分方程式の初期状態において、結合振動子の位相が正答の位相からずれた位相になる状態を回避することができる(
図5の右欄に示したc
i(n)の正/負から負/正への変化を参照。)。
【0119】
このように、結合振動子系の計算装置C3の計算負担を減らすことができるとともに、結合振動子系の計算装置C3のメモリ(FIFO)容量を減らすことができる。
【0120】
振幅位相計算部314により計算される各振動子i毎の微小時間後の振幅についての量子化カットオフは、振幅位相計算部314により計算される各振動子i毎の微小時間後の振幅についての量子化の上記の所定の精度を満足するように設定されている。具体的には、振幅位相計算部314からの出力c
i(n+1)についての量子化カットオフは、振幅位相計算部314からの出力c
i(n+1)についての量子化の上記の所定の精度を満足する。
【0121】
図9の左欄及び右欄に示した第1、2形態では、振幅位相計算部314の量子化カットオフ±Nは、±2である。よって、振幅位相計算部314の量子化精度は、N×2/2
x=2×2/2
4=0.25程度である。もっとも、
図10〜12に示すように、振幅位相計算部314の量子化精度は、0.25程度では正答を得るには低過ぎる。
【0122】
振幅位相計算部314により計算される各振動子i毎の微小時間後の振幅についての量子化カットオフは、数2の微分方程式の定常状態における各振動子i毎の振幅と比べて大きく設定されている。具体的には、振幅位相計算部314からの出力c
i(n+1)についての量子化カットオフは、振幅位相計算部314からの定常出力c
i(n+1)と比べて大きい。
【0123】
図9の左欄及び右欄に示した第1、2形態では、振幅位相計算部314の量子化カットオフ±Nは、±2である。そして、
図5に示したように、振幅位相計算部314からの定常出力c
i(n+1)は、±1〜2程度である。よって、振幅位相計算部314の量子化カットオフNは、振幅位相計算部314からの定常出力c
i(n+1)と比べて大きい。
【0124】
このように、各振動子毎の振幅の分解能を低くし過ぎず、かつ、各振動子毎の振幅の制限を厳しくし過ぎず、結合振動子系の計算装置C3の計算負担を減らすことができるとともに、結合振動子系の計算装置C3のメモリ(FIFO)容量を減らすことができる。
【0125】
相互結合計算部313により計算される各振動子i毎の振幅の微小時間変化についての量子化ビット数は、振幅位相計算部314により計算される各振動子i毎の微小時間後の振幅についての量子化ビット数と比べて、少なくともlog
2Mだけ大きく設定されている。ただし、Mは、結合振動子系の全振動子数である。具体的には、相互結合計算部313からの出力Σξ
ijc
jについての量子化ビット数は、振幅位相計算部314からの出力c
i(n+1)についての量子化ビット数と比べて、少なくともlog
2Mだけ大きい。
【0126】
仮に、相互結合計算部313からの出力Σξ
ijc
jについての量子化ビット数を、振幅位相計算部314からの出力c
i(n+1)についての量子化ビット数と比べて、同等にする。すると、相互結合計算部313からの出力Σξ
ijc
jは、M個のc
jを重み付け加算したものであるため、相互結合計算部313からの出力Σξ
ijc
jについての量子化精度は、振幅位相計算部314からの出力c
i(n+1)についての量子化精度と比べて、低くなる。
【0127】
そこで、相互結合計算部313からの出力Σξ
ijc
jについての量子化ビット数を、振幅位相計算部314からの出力c
i(n+1)についての量子化ビット数と比べて、少なくともlog
2Mだけ大きくする。すると、相互結合計算部313からの出力Σξ
ijc
jは、M個のc
jを重み付け加算したものであるところ、相互結合計算部313からの出力Σξ
ijc
jについての量子化精度は、振幅位相計算部314からの出力c
i(n+1)についての量子化精度と比べて、少なくとも同等になる。
【0128】
このように、各振動子毎の振幅の分解能と比べて、各振動子毎の相互結合の大きさの分解能を低くし過ぎず、結合振動子系の計算装置C3の計算負担を減らすことができるとともに、結合振動子系の計算装置C3のメモリ(FIFO)容量を減らすことができる。
【0129】
第1実施形態の結合振動子系の計算装置における、完全グラフK
4(全振動子数M=4)の計算結果を
図10に示す。10000回の試行のうち、正答率が高かったときほど、塗りつぶしを薄くし、正答率が低かったときほど、塗りつぶしを濃くする。
【0130】
図10の左欄の横軸は、振幅位相計算部314の出力ビット数xを示し、
図10の左欄の縦軸は、利得損失計算部311の出力ビット数yを示す。ただし、相互結合計算部313の出力ビット数zは、32に固定されており、振幅位相計算部314の量子化カットオフNは、2.0に固定されている。x及びyがともに小さいときや、xが大きくてもyが小さいときや、yが大きくてもxが小さいときは、正答率が低くなった。x及びyがほぼ等しくともに大きい(例えば、15程度。)ときは、正答率が高くなった。
【0131】
図10の中欄の横軸は、振幅位相計算部314の出力ビット数x=利得損失計算部311の出力ビット数yを示し、
図10の中欄の縦軸は、相互結合計算部313の出力ビット数zを示す。ただし、振幅位相計算部314の量子化カットオフNは、2.0に固定されている。x=yが大きくなるにつれて、zがより大きくならなければ、相互結合が正確に計算されず正答率が低くなった。x=yが大きい(例えば、15程度。)うえで、zがx=yにほぼ等しいときは、相互結合がやや正確に計算され正答率がやや高くなった。x=yが大きい(例えば、15程度。)うえで、zがx=yよりlog
2M=log
24=2だけ大きいときは、相互結合がより正確に計算され正答率がより高くなった。
【0132】
図10の右欄の横軸は、振幅位相計算部314の出力ビット数xを示し、
図10の右欄の縦軸は、振幅位相計算部314の量子化カットオフlog
10Nを示す。ただし、利得損失計算部311の出力ビット数yは、振幅位相計算部314の出力ビット数xに等しく、相互結合計算部313の出力ビット数zは、32に固定されている。xが小さくなるにつれて、Nがより小さくならなければ、量子化精度が低くなり正答率が低くなった。xが
図10の右欄に示したいずれの値であっても、Nが小さすぎるときは、振動子振幅が制限され正答率が低くなった。xが大きい(例えば、15程度。)うえで、Nが1程度であるときは、量子化精度が高くなり振動子振幅が制限されず、正答率がより高くなった。
【0133】
第1実施形態の結合振動子系の計算装置における、メビウスラダーM
16(全振動子数M=16)の計算結果を
図11に示す。10000回の試行のうち、正答率が高かったときほど、塗りつぶしを薄くし、正答率が低かったときほど、塗りつぶしを濃くする。
【0134】
図11の左欄の横軸は、振幅位相計算部314の出力ビット数xを示し、
図11の左欄の縦軸は、利得損失計算部311の出力ビット数yを示す。ただし、相互結合計算部313の出力ビット数zは、32に固定されており、振幅位相計算部314の量子化カットオフNは、2.0に固定されている。x及びyがともに小さいときや、xが大きくてもyが小さいときや、yが大きくてもxが小さいときは、正答率が低くなった。x及びyがほぼ等しくともに大きい(例えば、15程度。)ときは、正答率が高くなった。
【0135】
図11の中欄の横軸は、振幅位相計算部314の出力ビット数x=利得損失計算部311の出力ビット数yを示し、
図11の中欄の縦軸は、相互結合計算部313の出力ビット数zを示す。ただし、振幅位相計算部314の量子化カットオフNは、2.0に固定されている。x=yが大きくなるにつれて、zがより大きくならなければ、相互結合が正確に計算されず正答率が低くなった。x=yが大きい(例えば、15程度。)うえで、zがx=yにほぼ等しいときは、相互結合がやや正確に計算され正答率がやや高くなった。x=yが大きい(例えば、15程度。)うえで、zがx=yよりlog
2M=log
216=4だけ大きいときは、相互結合がより正確に計算され正答率がより高くなった。
【0136】
図11の右欄の横軸は、振幅位相計算部314の出力ビット数xを示し、
図11の右欄の縦軸は、振幅位相計算部314の量子化カットオフlog
10Nを示す。ただし、利得損失計算部311の出力ビット数yは、振幅位相計算部314の出力ビット数xに等しく、相互結合計算部313の出力ビット数zは、32に固定されている。xが小さくなるにつれて、Nがより小さくならなければ、量子化精度が低くなり正答率が低くなった。xが
図11の右欄に示したいずれの値であっても、Nが小さすぎるときは、振動子振幅が制限され正答率が低くなった。xが大きい(例えば、15程度。)うえで、Nが1程度であるときは、量子化精度が高くなり振動子振幅が制限されず、正答率がより高くなった。
【0137】
第1実施形態の結合振動子系の計算装置における、ランダムグラフG1(全振動子数M=800)の計算結果を
図12に示す。1000回の試行のうち、カット数が高かったときほど、塗りつぶしを薄くし、カット数が低かったときほど、塗りつぶしを濃くする。
【0138】
図12の左欄の横軸は、振幅位相計算部314の出力ビット数xを示し、
図12の左欄の縦軸は、利得損失計算部311の出力ビット数yを示す。ただし、相互結合計算部313の出力ビット数zは、16に固定されており、振幅位相計算部314の量子化カットオフNは、1.0に固定されている。x及びyがともに小さいときや、xが大きくてもyが小さいときや、yが大きくてもxが小さいときは、カット数が低くなった。x及びyがほぼ等しくともに大きい(例えば、15程度。)ときは、カット数が高くなった。
【0139】
図12の中欄の横軸は、振幅位相計算部314の出力ビット数x=利得損失計算部311の出力ビット数yを示し、
図12の中欄の縦軸は、相互結合計算部313の出力ビット数zを示す。ただし、振幅位相計算部314の量子化カットオフNは、1.0に固定されている。x=yが大きくなるにつれて、zがより大きくならなければ、相互結合が正確に計算されずカット数が低くなった。x=yが大きい(例えば、15程度。)うえで、zがx=yにほぼ等しいときは、相互結合がやや正確に計算されカット数がやや高くなった。x=yが大きい(例えば、15程度。)うえで、zがx=yよりlog
2M=log
2800〜10だけ大きいときは、相互結合がより正確に計算されカット数がより高くなった。
【0140】
図12の右欄の横軸は、振幅位相計算部314の出力ビット数xを示し、
図12の右欄の縦軸は、振幅位相計算部314の量子化カットオフlog
10Nを示す。ただし、利得損失計算部311の出力ビット数yは、振幅位相計算部314の出力ビット数xに等しく、相互結合計算部313の出力ビット数zは、32に固定されている。xが小さくなるにつれて、Nがより小さくならなければ、量子化精度が低くなりカット数が低くなった。xが
図12の右欄に示したいずれの値であっても、Nが小さすぎるときは、振動子振幅が制限されカット数が低くなった。xが大きい(例えば、15程度。)うえで、Nが1程度であるときは、量子化精度が高くなり振動子振幅が制限されず、カット数がより高くなった。
【0141】
(第2実施形態:計算方法)
第2実施形態の結合振動子系の計算装置の構成を
図13に示す。結合振動子系の計算装置C4は、イテレーション部41及びスピン系計算部42から構成される。結合振動子系の計算装置C4に対して、結合振動子系の計算プログラムをインストールすることにより、イテレーション部41及びスピン系計算部42を実装することができる。
【0142】
イテレーション部41は、結合振動子系のダイナミクスを記述する微分方程式(数2)の各イテレーションにおいて、各振動子i毎の微小時間後の振幅及び位相(数2のc
iの絶対値及び符号)を計算する。よって、イテレーション部41は、完全結合系のニューロチップ等において、結合振動子系のダイナミクスを計算することができる。
【0143】
スピン系計算部42は、イテレーション部41により反復されたイテレーションの後に、微分方程式(数2)の定常状態における各振動子i毎の位相(数2のc
iの符号)を計算することにより、結合振動子系の相互結合(数2のξ
ij)に対応するイジングモデル(数1)の基底状態を計算する。よって、スピン系計算部42は、イジングモデルの基底状態を計算することにより、組み合わせ最適化問題の最適解を求めることができる。
【0144】
ここで、結合振動子系の全振動子数をMとすると、数2の微分方程式のうち、右辺第1項の利得損失項及び右辺第3項の雑音項の計算量は、Mに比例するが、右辺第2項の相互結合項の計算量は、M
2に比例する。しかし、数2の微分方程式のうち、右辺第2項の相互結合項の計算時間が、右辺第1項の利得損失項及び右辺第3項の雑音項の計算時間と比べて、同程度であるときには、
図13に示したように各イテレーションを行なえばよい。
【0145】
つまり、ある回のイテレーションの後でのc
iを用いて計算した、右辺第1項の利得損失項、右辺第2項の相互結合項及び右辺第3項の雑音項を加算することにより、その回のイテレーションでの左辺第1項の微小時間変化を計算するのである。よって、右辺第2項の相互結合項を
図3のような遅延(例えば、イテレーション数回分。)を伴わず計算しながら、右辺第1項の利得損失項及び右辺第3項の雑音項を高速に計算することができる。
【0146】
結合振動子系の計算装置C4のうち、イテレーション部41は、利得損失計算部411、相互結合計算部412、雑音計算部413及び振幅位相計算部414から構成される。
【0147】
利得損失計算部411は、数2の微分方程式の各イテレーションにおいて、各振動子i毎の利得及び損失に起因する各振動子i毎の振幅及び位相の微小時間変化を計算する。具体的には、利得損失計算部411は、数2の微分方程式の各イテレーションにおいて、第n回目のイテレーションの後でのc
i(n)を入力され、数2の右辺第1項を出力する。ここで、第1回目のイテレーションの前でのc
i(0)は、0に初期設定される。
【0148】
雑音計算部413は、数2の微分方程式の各イテレーションにおいて、各振動子i毎の雑音に起因する各振動子i毎の振幅及び位相の微小時間変化を計算する。具体的には、雑音計算部413は、数2の微分方程式の各イテレーションにおいて、第n回目のイテレーションの後でのc
i(n)を入力され、数2の右辺第3項を出力する。
【0149】
相互結合計算部412は、数2の微分方程式の各イテレーションにおいて、各振動子iの間の相互結合に起因する各振動子i毎の振幅及び位相の微小時間変化を計算する。具体的には、相互結合計算部412は、数2の微分方程式の各イテレーションにおいて、第n回目のイテレーションの後でのc
i(n)を入力され、数2の右辺第2項を出力する。ここで、相互結合計算部412での数2の右辺第2項の計算時間は、利得損失計算部411及び雑音計算部413での数2の右辺第1、3項の計算時間と比べて、同程度である。
【0150】
振幅位相計算部414は、数2の微分方程式の各イテレーションにおいて、利得損失計算部411、雑音計算部413及び相互結合計算部412により各々計算された各振動子i毎の振幅及び位相の微小時間変化に基づいて、各振動子i毎の微小時間後の振幅及び位相を計算する。具体的には、振幅位相計算部414は、数2の微分方程式の各イテレーションにおいて、利得損失計算部411、雑音計算部413及び相互結合計算部412からの数2の右辺第1、3、2項を入力され、利得損失計算部411、雑音計算部413及び相互結合計算部412からの数2の右辺第1、3、2項を加算し、第(n+1)回目のイテレーションの後でのc
i(n+1)を出力する。ここで、利得損失計算部411、雑音計算部413及び相互結合計算部412からの数2の右辺第1、3、2項は、第n回目のイテレーションの後でのc
i(n)を用いて計算されたものである。
【0151】
スピン系計算部42は、イテレーション部41により反復されたイテレーションの後に、数2の微分方程式の定常状態における各振動子i毎の位相を計算することにより、結合振動子系の相互結合に対応するイジングモデルの基底状態を計算する。
【0152】
このように、組み合わせ最適化問題の最適解を求めるために、組み合わせ最適化問題をイジングモデルへマッピングし、イジングモデルの基底状態を計算するにあたり、電子回路で実装することにより、光学回路を安定化する必要をなくすことができる。そして、完全結合系のニューロチップ等において、結合振動子系のダイナミクスを計算するにあたり、電子回路で実装することにより、光学回路を安定化する必要をなくすことができる。
【0153】
第2実施形態においても、第1実施形態の
図6〜8と同様に、並列計算を行なうことができ、第1実施形態の
図9〜12と同様に、ビット量子化を行なうことができる。
【0154】
(第3実施形態:計算原理)
第3実施形態では、機械学習のボルツマンサンプリングを行なうために、機械学習をXYモデルへマッピングし、XYモデルの平衡状態を計算する。または、完全結合系のニューロチップ等において、結合振動子系のダイナミクスを計算する。
【0155】
そこで、複数の振動子で複数のXY面内スピンを実装する。ここで、複数の振動子の間の相互結合を行なうことにより、複数のXY面内スピンの間の相互結合を実装する。そして、複数の振動子全体の様々な発振モードのサンプリングを行なうことにより、複数のXY面内スピン全体の様々なエネルギーのサンプリングを行なう。
【0156】
まず、複数の振動子全体の様々な発振モードのサンプリングを行なうことにより、複数のXY面内スピン全体の様々なエネルギーのサンプリングを行なうことができる理由について説明する。XYモデルのハミルトニアンは、数7で表される。ここで、J
ijは、スピンi、jの間の相互結合係数である。そして、θ
i、θ
jは、それぞれ、スピンi、jのXY面内での連続値をとる位相(0radから2πradまで)を表わす。
【数7】
【0157】
複数の振動子の時間発展を表わす複素ランジュバン方程式は、数8により表わされる。ここで、dA
iは、振動子iの信号成分についての複素振幅変化を表わし、dtは、時間変化を表わし、dW
iは、振動子iの雑音成分についての複素ウィーナー過程を表わす。
【数8】
【0158】
g(A
i)は、振動子iの強度増幅率であり、数9により表わされる。ここで、g
0は、小信号利得を表わし、n
0は、飽和強度を表わす。よって、(1/2)g(A
i)A
idtは、振動子iの信号成分について、利得に起因する複素振幅変化を表わす。
【数9】
【0159】
γ
cは、振動子の強度減衰率であり、数10により表わされる。ここで、ωは、振動子の発振周波数を表わし、Qは、振動子の共振Q値を表わす。ただし、ω及びQは、すべての振動子について、同一の値をとる。よって、−(1/2)γ
cA
idtは、振動子iの信号成分について、損失に起因する複素振幅変化を表わす。
【数10】
【0160】
γ
injは、相互結合率を表わす。よって、(γ
inj/2)J
ijA
jdtは、振動子iの信号成分について、振動子jから振動子iへの相互結合に起因する複素振幅変化を表わす。そして、(γ
inj/2)ΣJ
ijA
jdtは、振動子iの信号成分について、振動子i以外のすべての振動子から振動子iへの相互結合に起因する複素振幅変化を表わす。
【0161】
Dは、振動子の振幅の拡散係数を表わす。よって、√(D)dW
iは、振動子iの信号成分について、振幅拡散に起因する複素振幅変化を表わす。
【0162】
複数の振動子のポテンシャル関数は、数11により表わされる。ここで、H
〜(A)は、ポテンシャル関数を表わし、太字のAは、複数の振動子の信号成分について、複素振幅のベクトル表示を表わし、A
i*は、A
iの複素共役を表わす。
【数11】
【0163】
複数の振動子の時間発展を表わす複素ランジュバン方程式は、数12のように書き換えられる。複数の振動子の信号成分について、複素振幅の定常状態の分布関数は、ポテンシャル関数を用いて、数13により表わされ、より具体的には、数14により表わされる。ここで、P
st(A)は、定常状態の分布関数を表わし、Cは、規格化因子を表わす。
【数12】
【数13】
【数14】
【0164】
ここで、複数の振動子の間の相互結合の強度が低いため、すべての振動子の強度が独立して数15により表わされる定常状態の同じ強度に安定化する、と仮定する。なお、n
sは、定常状態の同じ強度を表わす。すると、数14の第1のexpの項のDが小さいため、数14の第1のexpの項が数16により表わされるΠδ(|A
i|
2−n
s)に近似される。なお、δは、δ関数を表わし、C’は、新たな規格化因子を表わす。
【数15】
【数16】
【0165】
ここで、振動子iの信号成分の複素振幅を、振幅√(n
s)及び位相θ
iを用いて、数17のように表わす。すると、定常状態の分布関数は、数18により表わされる。
【数17】
【数18】
【0166】
さて、複数の振動子の系と複数のスピンの系を対応付けるために、数19で表わされる疑似的な逆温度β=1/(k
BT)を定義する。ここで、k
Bは、ボルツマン定数を表わし、Tは、複数のスピンの系の疑似的な温度を表わし、D
θ=D/n
sは、振動子の位相の拡散係数を表わす。
【数19】
【0167】
すると、定常状態の位相の分布関数は、数20により表わされる。ここで、太字のθは、複数の振動子の信号成分について、位相のベクトル表示を表わし、H(θ)は、数21により表わされる、XYモデルのハミルトニアンを表わす。つまり、複数の振動子の系の定常状態の分布関数は、複数のスピンの系の疑似的な熱平衡状態のボルツマン分布に対応するのである。
【数20】
【数21】
【0168】
(第3実施形態:計算方法)
次に、第3実施形態の結合振動子系の計算装置の構成を
図14に示す。結合振動子系の計算装置C5は、イテレーション部51及びスピン系計算部52から構成される。結合振動子系の計算装置C5に対して、結合振動子系の計算プログラムをインストールすることにより、イテレーション部51及びスピン系計算部52を実装することができる。
【0169】
イテレーション部51は、結合振動子系のダイナミクスを記述する微分方程式(数8)の各イテレーションにおいて、各振動子i毎の微小時間後の振幅及び位相(数8のA
iの絶対値及び位相)を計算する。よって、イテレーション部51は、完全結合系のニューロチップ等において、結合振動子系のダイナミクスを計算することができる。
【0170】
スピン系計算部52は、イテレーション部51により反復されたイテレーションの後に、微分方程式(数8)の定常状態における各振動子i毎の位相(数8のA
iの位相)を計算することにより、結合振動子系の相互結合(数7のJ
ij)に対応するXYモデル(数7)の平衡状態を計算する。よって、スピン系計算部52は、XYモデルの平衡状態を計算することにより、機械学習のボルツマンサンプリングを行なうことができる。
【0171】
ここで、結合振動子系の全振動子数をMとすると、数8の微分方程式のうち、右辺第1項の利得損失項及び右辺第3項の雑音項の計算量は、Mに比例するが、右辺第2項の相互結合項の計算量は、M
2に比例する。
【0172】
しかし、数8の微分方程式のうち、右辺第2項の相互結合項の計算時間が、右辺第1項の利得損失項及び右辺第3項の雑音項の計算時間と比べて、同程度であるときには、
図14に示したように各イテレーションを行なえばよい。
【0173】
つまり、ある回のイテレーションの後でのA
iを用いて計算した、右辺第1項の利得損失項、右辺第2項の相互結合項及び右辺第3項の雑音項を加算することにより、その回のイテレーションでの左辺第1項の微小時間変化を計算するのである。よって、右辺第2項の相互結合項を
図3のような遅延(例えば、イテレーション数回分。)を伴わず計算しながら、右辺第1項の利得損失項及び右辺第3項の雑音項を高速に計算することができる。
【0174】
ただし、数8の微分方程式のうち、右辺第2項の相互結合項の計算時間が、右辺第1項の利得損失項及び右辺第3項の雑音項の計算時間と比べて、十分に長いときには、
図3と同じように各イテレーションを行なえばよい。
【0175】
つまり、ある回のイテレーションの後でのA
iを用いて計算した右辺第1項の利得損失項及び右辺第3項の雑音項と、その回のイテレーションよりも数回(例えば、1回のみ。)遅れた回のイテレーションの後でのA
iを用いて計算した右辺第2項の相互結合項と、を加算することにより、その回のイテレーションでの左辺第1項の微小時間変化を計算するのである。よって、右辺第2項の相互結合項を余裕を持って計算しながら、右辺第1項の利得損失項及び右辺第3項の雑音項を高速に計算することができる。
【0176】
結合振動子系の計算装置C5のうち、イテレーション部51は、利得損失計算部511、相互結合計算部512、雑音計算部513及び振幅位相計算部514から構成される。
【0177】
利得損失計算部511は、数8の微分方程式の各イテレーションにおいて、各振動子i毎の利得及び損失に起因する各振動子i毎の振幅及び位相の微小時間変化を計算する。具体的には、利得損失計算部511は、数8の微分方程式の各イテレーションにおいて、第n回目のイテレーションの後でのA
i(n)を入力され、数8の右辺第1項を出力する。ここで、第1回目のイテレーションの前でのA
i(0)は、0に初期設定される。
【0178】
雑音計算部513は、数8の微分方程式の各イテレーションにおいて、各振動子i毎の雑音に起因する各振動子i毎の振幅及び位相の微小時間変化を計算する。具体的には、雑音計算部513は、数8の微分方程式の各イテレーションにおいて、第n回目のイテレーションの後でのA
i(n)を入力され、数8の右辺第3項を出力する。
【0179】
相互結合計算部512は、数8の微分方程式の各イテレーションにおいて、各振動子iの間の相互結合に起因する各振動子i毎の振幅及び位相の微小時間変化を計算する。具体的には、相互結合計算部512は、数8の微分方程式の各イテレーションにおいて、第n回目のイテレーションの後でのA
i(n)を入力され、数8の右辺第2項を出力する。ここで、相互結合計算部512での数8の右辺第2項の計算時間は、利得損失計算部511及び雑音計算部513での数8の右辺第1、3項の計算時間と比べて、同程度である。
【0180】
振幅位相計算部514は、数8の微分方程式の各イテレーションにおいて、利得損失計算部511、雑音計算部513及び相互結合計算部512により各々計算された各振動子i毎の振幅及び位相の微小時間変化に基づいて、各振動子i毎の微小時間後の振幅及び位相を計算する。具体的には、振幅位相計算部514は、数8の微分方程式の各イテレーションにおいて、利得損失計算部511、雑音計算部513及び相互結合計算部512からの数8の右辺第1、3、2項を入力され、利得損失計算部511、雑音計算部513及び相互結合計算部512からの数8の右辺第1、3、2項を加算し、第(n+1)回目のイテレーションの後でのA
i(n+1)を出力する。ここで、利得損失計算部511、雑音計算部513及び相互結合計算部512からの数8の右辺第1、3、2項は、第n回目のイテレーションの後でのA
i(n)を用いて計算されたものである。
【0181】
スピン系計算部52は、イテレーション部51により反復されたイテレーションの後に、数8の微分方程式の定常状態における各振動子i毎の位相を計算することにより、結合振動子系の相互結合に対応するXYモデルの平衡状態を計算する。
【0182】
このように、機械学習のボルツマンサンプリングを行なうために、機械学習を連続値スピンモデルへマッピングし、連続値スピンモデルの平衡状態を計算するにあたり、電子回路で実装することにより、光学回路を安定化する必要をなくすことができる。そして、完全結合系のニューロチップ等において、結合振動子系のダイナミクスを計算するにあたり、電子回路で実装することにより、光学回路を安定化する必要をなくすことができる。
【0183】
第3実施形態においても、第1実施形態の
図6〜8と同様に、並列計算を行なうことができ、第1実施形態の
図9〜12と同様に、ビット量子化を行なうことができる。