2022年4月8日金曜日

日立Annealing Cloud Webを試すためのスマホアプリの作成(その1)

 量子コンピュータが話題になっています。中には、これを使うだけで「先進性」をアピールできるなどと考える人もいるようです。そうではなく、量子アニーリングなどの考え方のもとに、もっと堅牢性があり実用性の高いハードウェアで問題解決することも盛んに行われています。ここでは、その一つと考えられる(量子回路ではなく先端CMOS技術で製造された)日立のCMOS Annealingマシンに注目します。

(続編:画像のノイズリダクション例題についてはこちらに書きました。)

日立のAnnealing Cloud Web
 日立製作所では、従来のノイマン型コンピュータとは別物の大規模CMOS Annealing マシンを開発し、それを一般の人が使えるようにAnnealing Cloud Webサービス[1]を提供しています。シミュレータではありません!大規模で超高速なAnnealingマシン実機を使えるのです!

 古くから知られているアニーリング法と、ここでの量子アニーリングは別物です。(多分、考え方に共通点はあると思いますが。)このマシンによって、種々の組合せ最適化問題(IoT世界での物流、金融工学、勤務シフト作成、等々)を極めて高速に解くことができるようです。

 このWebサイトには、アニーリングマシンとイジングモデルなどの基礎知識から、簡単な例題の計算の仕方までが、丁寧かつ簡潔に解説されており、とても有用です。図1は、デモとして載っている、グラフの最小頂点カバー問題(その具体例としてのネットワーク堅牢性問題)の最適解の例です。

 自分の組合せ最適化問題を解くには、それをイジングモデル化する必要があります。その際に、目的に応じたエネルギー関数(コスト関数)を設定する必要があります。この辺りが初心者にはちょっと難しいのですが、丁寧な解説もあるので、これを頼りに、徐々に使えるようになるはずです。

 具体的な使い方としては、イジングエディタを使って、ビジュアルに、スピンのトポロジーやスピン頂点毎の外部磁場係数や、スピン間の相互作用係数を設定することができます。さらに進めたい場合には、これらの設定値を引数として、curlコマンドでwebサービスをリクエストし、レスポンスをjson形式で受け取ることもできます。(この場合は、Web APIキー取得の申請が必要です。)

Annealing Cloud Webを試用するための独自のスマホアプリの作成
 
このように、コマンドラインからcurlでWebサービスを呼び出せるのに、なぜ、スマホアプリが必要なのか?

 [答え] 楽しい。ワクワク感があります。解くべき問題をイジングモデル化した後、スマホからこれらの設定値をwebサービスへ送り、レスポンスとしてのjsonを解析して、その結果をグラフ表示します。強力なAnnealingマシンの利用が、このようにスマホだけで完結するのは意味があるのではないでしょうか。

 図2は、作成したスマホアプリによって、図1に示した最小頂点カバー問題を解いたものです。頂点カバーに入るスピンが、赤い北向き矢印↑で示されており、図1の場合と同じ結果が得られています。

 スマホでの設定を容易にするため、ここではスピンの頂点は座標値ではなく、一連番号で与えています。webサービスへ送信する時、また、結果のグラフを描く際には、この一連番号を(x, y)座標に変換しています。

 ところで、スマホ画面の中央にある、「外部磁場設定」と「相互作用設定」の係数はどうやって計算して入力したのでしょうか?疑問に思われた方は、こちらの(その4)をご覧ください。

 このスマホアプリから解くことのできるスピントポロジーはKing's グラフの場合ですが、いろいろ他にも試すことができます。まだまだ、初歩的な段階ですが、アニーリングマシンを使うための入門の意味はあると思います。

参考資料

[1] Hitachi Annealing Cloud Web
https://annealing-cloud.com/ja/index.html


0 件のコメント:

コメントを投稿