量子コンピュータの仕組みをエクセルで理解してみよう ~量子アニーリングの古典版「シミュレーテッドアニーリング」の実装~
ITエンジニアのための量子コンピュータ入門 第2回
解き方の概要
さて、SAによる解き方の説明に入りましょう。SAには、3つの重要な物理量(変数)が出てきます。「スピンS」と「スピン間の相互作用J」、そして「エネルギーE」です。この「スピン間の相互作用J」をうまく満たすような「スピンS」の組み合わせを、「エネルギーE」が最小になるように求めるというのが、基本的なアルゴリズムの目的となります。
そもそも今回のSAでは、何を“アニーリング”するかというと、イジングモデルと呼ばれる金属原子の単純なモデルをアニーリングします。このモデルでは、金属原子が規則正しく格子状に並んでいるとし、原子一つ一つがスピンと呼ばれる量を持ちます。スピンは上向きと下向きの2種類が存在し、それぞれS=+1、S=-1とします。今回のエクセルでは、各セルが原子1つに対応しており、スピンの量を色で表しています。
隣り合うスピンには、スピン間相互作用が決められています。相互作用とは、隣どうしのスピンが「同じ方向にいたがる」か「反転していたがる」か、を決めるパラメータです。「同じ方向にいたがる」場合は相互作用Jを、J=+1と設定し、「反転していたがる」場合はJ=-1と設定します。
この相互作用こそが解きたい問題の“入力(引数)”に対応しており、「Bond_h」および「Bond_v」ワークシートに表示されています。「Answer」ワークシートの正解から、それに対応する各セルの横方向の差と縦方向の差をそれぞれ「Bond_h」および「Bond_v」ワークシートにて、差が0の場合は相互作用が+1、差が±1の場合は相互作用-1となるよう「差の絶対値×-2+1」が計算されています。つまり隣り合うスピンが同じ向きのとき+1、反転のとき-1となります。
SAでは、このスピンの+1と-1の最適な組み合わせを、スピン1つずつを反転させていきながら探索していきます。一方、量子アニーリングでは、このスピンを上向き(+1)と下向き(-1)の重ね合わせ状態として物理的に用意し、量子力学的な効果を使って高速に探索することになります。
次に、エネルギーの計算方法です。SAの最終ゴールは全体のエネルギーが最も小さくなるように、各スピンの組み合わせを決定することです。エネルギーEの計算は、

という式を使います。Siは注目するスピン、Sjはその周りの隣接するスピンを表し、共に±1のどちらかの値です。Jijはスピン間相互作用でこれも±1のどちらかの値となります。エネルギーはこれらの積を隣り合うすべてのスピンで計算して和をとり、マイナスをつけたものと言うことになります。式を見ると確かに、Jij=+1のときは隣り合うスピンが同じ向きのときEは最小に、Jij=-1のときは隣り合うスピンが反転しているときEが最小になることが分かり、スピン間の相互作用を正しく満たしている時にエネルギーが小さくなっていることが確認できます。
この記事は参考になりましたか?
- ITエンジニアのための量子コンピュータ入門連載記事一覧
-
- ImPACTプロジェクトで開発する新型コンピュータがクラウドで一般公開! コヒーレントイジ...
- 量子コンピュータがビジネスに役立つ!? 日本と海外の量子コンピュータ開発動向
- 量子コンピュータの仕組みをエクセルで理解してみよう ~量子アニーリングの古典版「シミュレー...
- この記事の著者
-
宇津木 健(ウツギ タケル)
「量子情報勉強会」主催。東京工業大学大学院物理情報システム専攻卒業後、メーカーの研究所にて光学関係の研究開発を行っています。 また、中野付近でお芝居をしています! Twitter:@utsugitakeru
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
この記事は参考になりましたか?
この記事をシェア
