D-Waveを利用したアプリを作りました。ウェブアプリですが、スマホから操作できます。
1、解きたい問題をスマホで入力して送る
2、答えが戻る
というシンプルなものです。作り方を見てみましょう。
1、スマートフォンのインターフェイスで数字の入力フォームを作り、入力を受け付ける
2、API経由で自社サーバーに入力された問題の数列を送る
3、受けた自社サーバー側で問題を変換し、イジングハミルトニアンの形に落とし込み、さらにD-Wave側に送る
4、D-Waveからの応答で問題が解けていたらスマートフォンに送る
5、結果を表示する
という手順です。入力はスマホからです。現在は手作業で数字を入れる必要がありますが、そのうちカメラから自動で取れるようにしたいと思います。
数独を解くためには制約条件と呼ばれるものをマス毎に設定します。約700量子ビットとそこそこの接続が必要になります。現在はハイブリッドを利用して問題分解をしないと解けません。近い将来次のマシンが出たら分割不要で解けるでしょう。
数独はコストというよりも制約を満たすべき制約充足問題を解きます。また、解いた答えが制約を満たしているかどうかも簡単にチェックができます。
スマートフォンがわは純粋にサーバー側のAPIを叩きます。この際にはできるだけ、通信をシンプルにしたほうがいいです。問題を受け取ったサーバーでは定式化を進めます。スマホ側で定式化をすると通信料がおもたくなりますので、お勧めできません。定式化が済んだらD-Waveマシンに送り、結果を待ちます。複数の結果から一番いいものをスマホに送ります。
この間数秒かかります。そのため、一瞬で解けるというものよりは前処理などが結構必要なので時間がかかります。今後はこの前後処理が高速化されればさらに利便性が上がりそうです。
数独問題ではとてもシンプルな構造で構成されています。今後はより多くのアプリをスマートフォンで実現し、世界中誰でも利用できるという状態を実現していきましょう!