Experience the CMOS Annealing Machine

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

従来のコンピュータ

今私達が使っているPCやスマホ、もしくはWEBサイトの情報を送り出しているWEBサーバ、IoT機器や電力供給をコントロールしている基幹システムなど、ありとあらゆる情報機器のほとんどがノイマン型と呼ばれるコンピュータによって処理されています。ノイマン型コンピュータの中で処理を行う頭脳の役割をはたしているのがCPU(Central Processing Unit)やメモリなどです。ノイマン型コンピュータでは、プログラムに従ってプログラマの意図を実行する仕組みが構築されています。人がコンピュータにやってほしいことをプログラムすることによって、さまざまな処理が実行できるので、このようなコンピュータは「汎用型コンピュータ」と呼ばれています。

このような汎用型のコンピュータは、今後も姿を消すことはありません。今現在飛躍的な成果が社会に拡がりつつあるAI処理の多くも、これまでのコンピュータを元に処理が定義されているものがほとんどです。これに対し、アニーリングマシンや量子コンピュータは全く異なる新しいタイプのコンピュータです。

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

従来のコンピュータとアニーリングマシンの違いを理解するために汎用型コンピュータについてもう少し詳しく掘り下げてみましょう。基本的に私たちのPCでプログラムを動かす時に、プログラムとコンピュータの間で何が行われているのでしょうか。複雑なプログラムも膨大な命令の集合体です。それぞれの命令が、順次、繰り返し、分岐のプロセスを繰り返し、実行されていきます。命令をさらに細かく見てみると、機械に伝えるための[0]もしくは[1]のいずれかの情報の集合となっています。

下の絵は、CPUで演算を行う回路を分解した際の論理回路の例です。一例として、上が論理積(AND回路)、下が論理和(OR回路)です。それぞれの論理回路に0か1が入力されると演算して答えを出力します。プログラムをハードが演算できる0と1の集合体に変換されたものを最も機械に近いプログラムということで機械語と言います。

さらにプログラムは命令と実行と、それを実行するプロセスの順次、繰り返し、分岐で成り立っています。複雑な問題を高速に実行するために、並列化して実行するアーキテクチャは開発されていますが、根本的には逐次的な処理であるため、組合せ最適化問題などを高速に処理するためには他の方式が必要だったのです。たとえば組合せ最適化問題を解く場合にはアニーリングマシンが提案されています。

アニーリングマシンの仕組み

アニーリングマシンになくてはならないイジングモデルという概念があります。統計力学の基本的なモデルとして定義されたもので、その構造は[+1]と[-1]いずれかの状態を取るたくさんのスピンと、2つのスピン間に働く相互作用からなるシンプルなものです。アニーリングマシンの用途としては変数が2値の組み合わせの問題を解く手段に用いるのが基本的なセオリーです。ただ、解くべき問題を考える時に条件はこれだけではありません。技術者は2値変数がイジングモデルのスピンに相当するものと定義し、その上で解くべき問題のコスト関数をイジングモデルのエネルギー(ハミルトニアンともいいます)の式へと定式化する必要があります。イジングモデルに定式化できれば、あとはアニーリングマシンがイジングモデルのエネルギーの低い状態を探索し、その解を私達に示してくれます。従来のコンピュータに較べると高速に処理できる可能性があります。

イジングモデル定式化がこの分野の大部分を占める

技術者が行うべき定式化については、次の頁で取り上げているイジングモデルとはの解説をまず読み、それからデモアプリのチュートリアルを読むことで理解が進むように構成されています。課題を定式化することがアニーリングマシンの活用の第一歩であり、また当研究分野の最重要テーマでもあります。ビジネスや業務にアニーリングマシンを適用するロールの人も、このことはぜひ押さえておいてください。

ACWスキルロードマップ

未読

後で学びなおすときは未読にスライドしておくことができます。

シェアする/フィードバックする