Please enable JavaScript in your browser.

fltech - 富士通研究所の技術ブログ

富士通研究所の研究員がさまざまなテーマで語る技術ブログ

決定グラフ型量子シミュレータのご紹介

こんにちは、量子研究所の木村悠介です。富士通では量子コンピュータ実機のほかに、量子シミュレータも開発しています。 このページでは、グラフ構造を用いて効率性を高めた、独自開発の決定グラフ型量子シミュレータを紹介します。

量子シミュレータとは?

量子コンピュータは量子力学の原理に基づいて動作する新しいタイプのコンピュータで、普通のコンピュータでは出来ないことができるようになると期待されています。

しかし、量子コンピュータの実機の研究開発はまだ初期段階です。多くの人にとっては手の届かない技術で、もし運良く使えても規模が小さかったり、利用料が高額だったりします。

そんな問題を解決してくれるのが「量子シミュレータ」です。普通のコンピュータを使って量子コンピュータを模倣するように設計されており、オープンソース (OSS) 版がたくさん公開されています。

決定グラフ型の特徴

量子シミュレータにはいくつかの種類があり、このブログポストで紹介するのは「決定グラフ型」です。 N量子ビットの量子状態は2N長のベクトルで表されるのですが、これをグラフを使って保存するという特徴があります。 例えば以下では、2量子ビットの量子状態が長さ4のベクトルで表現されています。決定グラフ型では、左側のベクトルは右側のようなグラフで保存されています。

状態ベクトルと決定グラフ

上の例では分かりにくいですが、単に2N個分の配列を確保する「状態ベクトル型」よりも、決定グラフ型ではメモリ量が大幅に削減されることが期待されています。 以下の例では、8量子ビットの量子状態(長さ256のベクトル)を表現するために、たった8ノード(グラフの丸の部分)しか使っていません!

決定グラフが大幅にメモリ使用量を削減する例

実際にShorやGroverのアルゴリズムでは、決定グラフ型が非常に高速に動作することが確認されています。 詳細に興味のある方は私たちのチームの論文(PDF)もご覧ください。

決定グラフ型が高速に動作する主要な量子アルゴリズム

アルゴリズム 概要と応用先
Shor 因数分解のためのアルゴリズム。RSA暗号の解読などに用いる事が出来る
Grover 量子探索アルゴリズム。SAT(充足可能性)問題などを高速に求解出来る

Shorアルゴリズムの実験結果

決定グラフ型量子シミュレータが高速に動作する例として、Shorの実験結果を紹介します。

Shorアルゴリズムは整数を因数分解することができるアルゴリズムで、実験では15~511の6種類を使用しました。 必要となる量子ビット数やゲート数(量子回路規模)は2・3列目に示されています。 状態ベクトル型シミュレータと、弊社が開発した決定グラフ型量子シミュレータの2つの実行時間を4・5列目に掲載しており、決定グラフ型が高速に動作していることが分かると思います。 30量子ビット以上では、状態ベクトル型ではメモリー不足になってしまっている一方、決定グラフ型は問題なく実行することが出来ています。なお、実験条件等の詳細は上記PDFをご覧下さい。

Shorアルゴリズムでの実験結果

因数分解される数 量子ビット数 ゲート数 状態ベクトル型 (sec) 決定グラフ型 (sec)
15 18 12,600 1.3 0.1
21 22 25,330 57.8 0.6
33 26 44,466 2,107.0 4.0
123 30 118,342 Memory shortage 26.5
253 34 204,637 Memory shortage 1197.1
511 38 400,123 Memory shortage 818.8

富士通発のOSS版の使い方

私たちのチームが開発した決定グラフ型量子シミュレータはオープンソース化されてGitHubで公開されています。 github.com

Pythonユーザーの方は簡単にインストールして使えるようになっていますので、 以下のコマンドを実行してください。 (現在Linuxのみサポートしており、WindowsやMacではビルドが必要です。)

$ pip install qdd

このシミュレータはQiskit Backendとして動作するように設計されています。 以下のコードでBackendを呼び出せますので、他のシミュレータと置き換えるだけで使えます。

from qdd import QddProvider
qdd_backend = QddProvider().get_backend()

もっと試してみたい方は、例えば量子コンピューティング・ワークブックが参考になります。 Backendをqdd_backendにするだけで、決定グラフ型量子シミュレータを体験することができます。

PoCパートナー募集中!

富士通では量子コンピューティングを将来のビジネスに適用したいお客様企業とのPoCを推進しています。 私たちと一緒に活動することで、マルチノード化された決定グラフ型量子シミュレータにアクセス出来るので、複数台のコンピュータを並列動作させて、より大規模な問題を高速に解くことが出来ます。

もちろん、決定グラフ型量子シミュレータ以外に、最大40量子ビットが使用可能な状態ベクトル型量子シミュレータや、国産の超伝導量子コンピュータなどを活用する共同研究のパートナーも募集中です!