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スキルロードマップ

記事を読みましたか?スキルロードマップに印を付けましょう。

この記事はACWスキルロードマップの一部です。スキルロードマップを使ってACWを学んでみてください。

SNS共有

記事が役に立ちましたか?他の人に共有してみてください。

組合せ最適化問題をアニーリングマシンで解決する具体的な事例を知りたい人は

組合せ最適化問題とは

組合せ最適化を身近な組合せ最適化問題として分かりやすい2つの例を用いて解説します。また、IoT社会における組合せ最適化処理の高速解法の重要性について述べます。

COVID-19感染対策を考慮し研究員シフトを最適化する

COVID-19の流行に伴い、感染リスクを考慮した制約条件の下、研究員のシフト作成をアニーリングマシンで行うユースケースを紹介しています。

保険会社の再保険ポートフォリオを最適化する

自然災害リスクに対応するため、保険会社が保有する膨大なデータを活用した再保険ポートフォリオ策定をアニーリングマシンで行うユースケースを紹介しています。

アニーリングマシンの使い方が知りたい人は

易しく学ぶ最適化フロー

初級者向けに、アニーリングマシンで最適化問題を解く工程を、「課題整理と要件定義」「定式化」「入力データ作成」「アニーリングマシン実行」の4段階に分けて手順やポイントを解説します。

アニーリングマシンのための数学

アニーリングマシンが得意とする問題の特徴である「二次」「離散」を中心に、知っておくべき数学的前提を易しく解説します。