こんにちは。量子コンピュータや量子アニーラなどの量子マシンはウェブ周りのインターフェイスが整ってきました。インターフェイスとはユーザーとマシンの間でやりとりする約束事や窓口のことで、APIと呼ばれるインターフェイスを介して、簡単にアプリケーションを連携できます。
最近ではawsなどの量子コンピュータや量子アニーラの提供窓口が増え、ますます使いやすくなってきました。そこで、ようやくスマホと連携して、布団で寝ながら量子コンピュータを楽しめる環境を構築するために、どのようにスマホアプリにするかを解説します。
量子アニーラは即時返答、量子コンピュータはジョブを投げて確認
量子コンピュータは演算を司ります。何かしら問題を投げたら、答えが返ってきます。量子コンピュータは量子回路を投げて、サンプルが戻ってきますし、量子アニーラはイジングハミルトニアンの係数を投げて、サンプルが戻ってきます。戻ってくるものはアニーラも量子コンピュータも同じです。
スマホアプリを作る前に確認しておくことがあります。それは、APIに問題を投げてから、答えがかえってくるまでの時間です。量子アニーラは計算時間がマイクロ秒単位なので、すぐにAPIを投げたら計算結果が戻りますが、量子コンピュータは通常ジョブがキューに格納され、終わったら取得できます。
即時に応答するアプリを作るときにはアニーラを使うのがいいでしょう。
早速作り方
作り方は簡単です。通常のアプリ開発と変わりません。アプリ側にはユーザーインターフェイスUIなどを用意します。自分の計算したいものを表現したら、早速使います。計算を式の形もしくは行列の形にして、それをサーバーに投げます。
現状量子アニーラを使う場合には、カナダのD-Wave社のマシンを使うことになります。スマホアプリから直接マシンに投げることは少なく、いったん別に構築したサーバーAPIを経由し、サーバー経由でD-Waveの方に投げます。そして答えが返ってきたらそれをスマホアプリがわに返します。
手順
1、ユーザーインターフェイスを介して問題を作成(アプリ側)
2、作成した問題を自社のサーバー側に投げる(アプリ側)
3、受けた問題をD-Waveの形式に直し、D-Waveのサーバー側に投げる(サーバー側)
4、D-Waveですぐに計算をし、それを返す(D-Waveサーバー側)
5、受けた答えを加工するなり、アプリ側に返す(サーバー側)
6、戻ってきた答えをインターフェイスを介して加工して表示(アプリ側)
となります。ネットワークはカナダまで問題を投げますが、数100msから数秒程度あれば十分処理できます。
利用料に注意
通常のアプリ構築手順で十分です。カナダのD-Wave社ではAPIの投げ先であるエンドポイントが指定されています。token周りを処理して書式を合わせれば問題なくAPIを利用できますので、通常の開発手順が適用できます。
ただ、利用料金には注意です。基本的にはawsやD-Waveは1つ投入で50-250円程度のコストがかかりますので、頻繁なアクセスは高額請求につながります。特に従量課金体系の場合にはすぐに金額が行きます。また、アニーラは即時に答えが戻りますので、高額になりやすいです。課金をきちんと管理するものをサーバー側に持っておいた方がいいでしょう。
どういうアプリがあるか?
実際にこの方式でアプリを一般に提供した企業があります、ドイツのフォルクスワーゲンです。アプリを通じて交通最適化などを実現してますので、私たちも同様にアプリケーションを構築し、提供することが可能です。ぜひトライしてみましょう。ブログでは、今後スマホアプリの具体的な使い方も確認します。