アニーリングに適した問題かどうかの判別法
アニーリングマシンは、これまでのノイマン型コンピュータと活用方法が大きく異なるため、どのように活用するのかを想像するのは容易ではない。そこで、巡回セールスマン問題を例として用い、世の中の事象をアニーリングマシンにあてはめられるかどうかの判別方法を図1にある順番で紹介しよう。
組み合わせ最適化問題は、あらかじめ「選択肢」が決まっているケースが適用の対象となる。未知のモノは、組み合わせることができないからだ。巡回セールスマン問題では「どの都市を何番目に」訪れるかが選択肢となる。
二つめに、選択肢から「複数選ぶ」ことで組み合わせる。巡回セールスマン問題では、訪問する「都市の数」がその対象となる。30都市なら「30」である。ここでのポイントは、選択肢が増えることによって、組み合わせの数が指数関数的に増えるケースが有効であるということ。巡回セールスマン問題は、都市数の増加に伴い巡回のパターンが膨大になるわけだが、選択肢が増えても組み合わせの数が小さい場合は、これまでのコンピュータで十分。アニーリングマシンを利用する必要はない。ちなみに、組み合わせ最適化問題の代表例として知られる「ナップザック問題」では、ナップザックに入れることができるモノの最大容量と最大重量が決まっていて、その組み合わせを最適化することに取り組む。このケースでの組み合わせの数は、計算結果次第となる。
三つめが、組み合わせ方の「制約条件」。巡回セールスマン問題は効率よくすべての都市を巡回するのが目的であることから、同じ都市に訪問することはない。そのため、制約条件は「1か所には一度だけ」ということになる。前出のナップザック問題では、最大容量と最大重量が制約条件となる。
日立製作所
研究開発グループ
エレクトロニクスイノベーションセンタ
情報エレクトロニクス研究部
主任研究員 博士(情報学)
山岡雅直氏、研究員 林 真人氏
四つめが、組み合わせた結果が「評価」できるケースであること。巡回セールスマン問題では、セールス担当者が効率よく都市を巡回するための解を求める。そのため、計算結果で出てくるのは移動距離であり、その距離が評価値となる。
最後が、評価値が最適な組み合わせになる「最適値」を求める問題であること。巡回セールスマン問題では、最短の移動距離が最適値ということになる。
アニーリングマシンには得意分野があり、これまでのコンピュータの上位互換としての活用にはならない。基本は、組み合わせ最適化問題への適用となる。自社のビジネスにおいて、組み合わせ最適化問題に適用できるケースがあるようなら、QIerへの道がみえてくる。
アニーリングマシンによる計算処理の実行ステップ
アニーリングマシンが得意とするのは、組み合わせ最適化問題を解くこと。前述した組み合わせ最適化問題に適用できるものであれば、アニーリングマシンで解を求めることができる。とはいえ、アニーリングマシンを活用するには、経験と知識を必要とする。そこで、イメージをつかむために、組み合わせ最適化問題を実行するまでの流れを紹介するとしよう(図2)。
まず、各分野における組み合わせ最適化問題を抽出(課題抽出)する。それがアニーリングに適した問題であることを確認できたら、アニーリングマシンで処理できるかたちに「問題変換(定式化)」を行う。つまり、数式に落とすためのアルゴリズムを考える作業が必要となる。図2では、イジングモデルの代表的な数式を提示したが、問題によって変わることになる。ただし、一度数式化できれば「ルール(状況)が変わっても、数式を変えるだけでいい」と、富士通AI基盤事業本部AIフロンティア事業部の中村和浩氏は説明する。数式化が最重要のポイントとなる。
富士通
AI基盤事業本部
AIフロンティア事業部
中村和浩氏
数式化ができたら、それをアニーリングマシンに渡すことで計算結果を得ることができる。クラウドサービスのAPIを利用するようなイメージである。「数式化の方法が分かれば、プログラムをかけるようになる」と日立製作所 研究開発グループ エレクトロニクスイノベーションセンタ 情報エレクトロニクス研究部 主任研究員 博士(情報学)の山岡雅直氏は説明する。ここでは、量子のふるまいといったような物理学の知識は必要ない。これまでのコンピュータの原理を知らなくても、問題なく活用してきたのと同様だ。
ちなみに、日立のアニーリングマシン「CMOSアニーリングマシン」では、マウス操作だけで簡単に活用できるメニューを用意している。例えば、「グラフ彩色」と呼ばれる最適化問題を解くサービス。グラフ彩色とは、任意に区分けした地図のような図において、最少の色数で隣り合う部分を別の色にするというもの。実行すると、マウスで適当に描画した部分が、最少の色数で区分けする。
アニーリングマシンの環境を手に入れるには
富士通は、デジタルアニーラのクラウドサービスを5月15日に開始した。現在は、同社が第一世代と呼ぶデジタルアニーラによるサービスとなっているが、年度内には大幅に性能アップした第二世代のデジタルアニーラのサービス開始を予定している。
クラウドサービスのため、富士通のパートナーでなくとも利用でき、QIerになるための準備としての活用も可能になっている。ただし、ユーザーと富士通の直接契約を基本としており、現時点では富士通のパートナーであっても再販はできない。
日立は、CMOSアニーリングマシンをクラウドサービスとしてパートナー向けに8月から無償で公開する。日立のパートナーであることが条件だが、CMOSアニーリングマシンの活用可能なレベルを要求するため、まずは問い合わせの受け付けから始めるという。なお、日立は2020年に商用サービスの開始を予定している。
アニーリングマシンで数独を解く
アニーリングマシンの活用で必要となるのは、組み合わせ最適化問題に適用できる課題を数式に落とすノウハウである。アニーリングマシンを意識させないアプリケーションとして提供されていれば不要だが、多くの場合は個別対応が求められるため、少なくとも現時点では避けることができない。 ここではパズルの一種である「数独(ナンプレ、ナンバープレース)」を用いて、アニーリングマシンの活用方法を紹介する。
数独は、3×3のブロックを1組として、9組で全体を構成するパズルである。ブロック内の各マスには、1から9のユニークな数字が入る。同じ数字が複数入ってはいけない。また、全ブロックの行と列にも、1から9のユニークな数字が入る。各列や各行で、同じ数字が複数入ってはいけない。そして、ヒントとしてパズル上にあらかじめ表示されている数字を使って、ルールに矛盾しないように空いているマスに数字を入れていくのが、数独である。各マスに適当に数字を置きながら、進めては戻ってを繰り返すことになる。
では、数独をアニーリングマシンで解くために、どのように数式化するのかを紹介しよう。
まず、数独のルールを組み合わせ最適化問題として適用するために、パズルを九つのプレートに分解する。「k=1」のプレートには、「1」が入る。マスijの値が「k」のときは「1」で、それ以外を「0」とする。なお、量子コンピュータでは量子の状態をスピンで表現するため、「1」「-1」が用いられるが、二つの値をとるモデルという点において「1」「0」でも同等として扱うことができる。
以上の準備が済んだら、数独のルールを数式化していく。数式(1)は、マスに1から9のユニークな数字が入ることを示している。数式(2)と(3)は、行と列のそれぞれでユニークな数字が入ることを示す。数式(4)は、各ブロックにユニークな数字が入ることを示す。数式(5)は、あらかじめ用意されている動かしようのない数字を守るための数式になる。
それぞれ数式で使用している「α」は、数式の重要度を表す「ペナルティ係数」である。数独では、どの式もルール違反を起こせないため、ペナルティ係数は同じになるが、問題によってはペナルティ係数をチューニングしながら最適解を求めることになる。
以上が、数独のルールをベースとする数式である。組み合わせ最適化問題では、全体(のエネルギー)を最小化(ケースによっては最大化)する組み合わせを求める。そのため、ここでは各数式の和が最小化する組み合わせが答えであり、そうした計算結果を返すのがアニーリングマシンである。