アニーリングマシンとイジングモデル

従来のコンピュータ

コンピュータの頭脳と言われるCPUは、様々な処理のプログラムを実行する仕組みで、以下の部品で構成されています。

演算装置
レジスタに保存されたデータを処理する
制御装置
データや処理の流れを制御する
記憶装置(レジスタ)
処理対象となる命令やデータを格納する

このようなシンプルな仕組みを組み合わせてプログラムがやりたいことを実行しているのです。さまざまな処理をプログラムすることで汎用的な計算を実現しています。

用途特化型コンピュータ

従来のコンピュータは、半導体の微細化の進展によりCPUの性能が向上し、それに伴いコンピュータの性能も向上していました。ただ、微細化の限界に近付いており、性能向上が頭打ちになりつつあります。そこで、処理する用途を特定の処理に特化することで高い性能を実現する用途特化型のコンピュータが提案されています。アニーリングマシンは、最適化という用途に絞った用途特化型のコンピュータの一種です。

アニーリングマシンはなぜ速い

従来のノイマン型コンピュータで問題を解くためには、その問題に応じた解く手順(アルゴリズム)を考え、そのアルゴリズムをCPUの命令列として記述し、CPUは命令列を逐次的に実行していました。複数の命令を並列に実行して高速化を図る技法も利用されていますが、本質的には逐次的な命令列を実行していくことが、従来型のコンピュータの特徴となっています。

それに対しアニーリングマシンとは、抽象化された物理的な模型(イジングモデル)を定義し、求めたい組合せ最適化問題をこのモデルに入れ込みます(マッピング)。その模型のエネルギーを推移させ、最もエネルギーが低くなった状態(基底状態)でその答えが得られるという方式をとります。

0/1の二進数で演算を行い、分岐・判定・繰り返しのプロセスによって逐次的に処理を実行するノイマン型コンピュータにくらべ、イジングモデルによる処理の過程はまるで生き物や、波、風のような自然現象に感じられ、ナチュラルコンピューティングとも言われる手法です。つまり、問題を逐次的に処理するのではなく、自然現象そのものが持つ収束動作で処理を行うため、問題が大規模になった時にも高速に問題を解くことが可能となります。

イジングモデルを使ったアニーリングマシンの処理を理解する

イジングモデルをどのようにイメージすればよいのでしょうか。簡単に言えば、スピンと結合の集合体です。イジングモデルにおける一つの要素はスピンと呼ばれ、+1/-1の2つの値を取ります。たくさんのスピンが互いに作用しあい、またそれぞれのスピンに+もしくは-の外部の力が与えられます。その際に、スピンの集合=イジングモデル全体としてどのような振る舞いを示すかを表現するモデルなのです。量子アニーリングマシンでは、量子ビットがこのスピンの役割を担っています。CMOSアニーリングマシンでは半導体メモリとデジタル回路でスピンのふるまいを疑似的に表現することで最適化問題を解いています。

イジングモデルでは、接続されたスピンが互いに影響(相互作用)し合うことによって、イジングモデル全体が持つエネルギーが高い場合や低い場合の無数のパターン(組み合わせ)が存在していることになります。そして最もエネルギーが低い状態に落ち着いた時のスピンの組み合わせ、すなわち、どれが+1でどれが-1なのかの組み合わせが、求めるべき最適化問題の最適解を表します。

ノイマン型コンピュータでは超えられない壁をアニーリングマシンでなら超えられると考えられるのは、アニーリングマシンが用途特化型の非ノイマン型コンピュータであるから、と言えるでしょう。