量子コンピュータ

国産の超高性能量子計算機を公開 複雑な計算、一瞬で正解|BIGLOBEニュース
https://news.biglobe.ne.jp/trend/1120/kyo_171120_7712101857.html

量子コンピュータの仕組みをエクセルで理解してみよう 〜量子アニーリングの古典版「シミュレーテッドアニーリング」の実装〜 (2/4):CodeZine(コードジン)
https://codezine.jp/article/detail/9491?p=2

今回は、そういった近似的なアルゴリズムの一つ「シミュレーテッドアニーリング[*]」(Simulated Annealing:以後SAと呼ぶ)について説明します。

今回のSAでは、何を“アニーリング”するかというと、イジングモデルと呼ばれる金属原子の単純なモデルをアニーリングします。


・シミュレーテッドアニーリングは量子のエミュレートによる計算方法

・各原子は上か下かどちらかのスピンを持っている
・隣接する原子の間には相互作用があり、スピンを同じ方向か
反対方向かどちらかに変化させようとする。
・解きたい問題をこの相互作用の値として与え、それに適合する
スピン状態を答えとして得る。

・もし単純に全部の組み合わせを調べようとすると計算量が非常に増える。
例えば10x10の計100個の原子なら 2^100 のオーダーの処理が必要となる。

・シミュレーテッドアニーリングでは

(1)各原子のスピンをランダムで初期化する
(2)ランダムに選んだ原子のスピンを反転する
(3)原子全体のエネルギー値を計算する。
  これは、各原子のスピン値と原子間の相互作用があっていれば
  -1、そうでなければ+1として原子全体の和を求めたもので
  小さければ小さいほど安定(=正解に近い)ということになる。

(4)ランダムに選んだ原子のスピンを反転させたことで
  エネルギーが減る場合はその原子のスピンを反転させる。
  そうでないときも、確率でスピンを反転させる。
  r = exp(-(ΔE/T))
これは、局所的にはエネルギーが減らないがトータルで
エネルギーを最小となるケースを見落とさないために行なう。

(5)Tは温度を意味し、計算が進むにつれだんだんと小さくする。
これにより「そうでないときにも反転させる」確率が下がる
アニーリング(焼きなまし)を実現する。

量子アニーリングではこれを同時に行なう。

その一つが今回扱った量子アニーリング方式(量子イジングマシン方式とも呼ばれる)で、もう一つは“量子ゲート方式”と呼ばれているものです。量子ゲート方式は、現在のコンピュータの正統な量子版と呼ぶべきもので、1990年代から盛んに研究されており、素因数分解や検索問題を古典コンピュータより高速に解くことが可能です。しかし、現在実用化に近いのは“量子アニーリング方式”のほうで、“量子ゲート方式”の開発は難航しています。