はじめに
人類の夢のコンピュータである量子コンピュータの開発が世界中で加速する中、量子コンピュータの実機に並び、予備計算を行うなど重要な位置を占めるのが量子コンピュータ・シミュレーターです。
Python言語を採用し、オープンソースソフトウェアとして世界的にも人気の高い量子コンピュータ・シミュレーターの一つがblueqat(ブルーキャット)です。日本国内でblueqat株式会社(東京)により開発・リリースされています。
■blueqat - オープンソース量子コンピューティングプラットフォーム
https://blueqat.com/?hl=ja
blueqatはもともとPYPI(Python言語のライブラリ)として提供され、pip installコマンドを使用してローカルPC環境にインストールして使用していましたが、2020年8月にblueqat cloud(ブルーキャット・クラウド)がクラウドサービスとしてリリースされ、オンラインで使用できるようになりました。
もちろん、PYPIライブラリからpip installによりローカル環境にインストールして使用することもできます。
blueqat cloudは全て無料で誰でもすぐに使用できます!
この記事の目的
blueqat cloudを使用するには、blueqat cloudシステムにアカウント登録する必要があります。
この記事では、blueqat cloudシステムへのアカウントの登録から、簡単なゲート回路を組み、実際にシミュレーターを動かすまでの手順をご紹介できればと思います。
※blueqat cloudの機能や使い方は本記事執筆2020年8月時点の内容となっておりますのでご了承下さい。
また、blueqat proとして有償契約で提供されているサービスとの違いも簡潔に記載しておきたいと思います。
アカウント登録の手順
①まずはブラウザで以下にアクセスします。
https://blueqat.com/?hl=ja
③メールアドレス、パスワードを入力し、「利用規約」にチェックを入れ、アカウント登録ボタンをクリックします。
④登録したメールアドレスに送信される確認コードを入力します。
以上でアカウント登録が完了です。
クラウドサービスへログインする
2回目以降のログインは、登録したメールアドレスとパスワードでログインして下さい。
プログラミングを始めるには、ノートブックリストの下のメニュー「blueqat」をクリックします。
また、右上の設定をクリックするとパスワードの変更ができます。
blueqat cloudの使い方
①ノートブックを作成する
ノートブックリストの下のメニュー「blueqat」をクリックします。
下図のように「blueqat」という名前のプロジェクトが作成されました。
さっそく右のボタン「ノートブックを開く」をクリックします。
ノートブック画面が表示されると準備完了です。
ノートブック画面はJupyter Labで提供されます。(ノートブック単位にコンテナが起動します)
補足情報
・ノートブックは一つしか作成できません。
・ノートブック名は変更できません。
②プログラムを作成する
以下をクリックしてJupyter Notebookページを作成します。
下図のようにJupyter Notebookページが作成されます。必要に応じてファイル名を変更して下さい。
これ以降は、通常のJupyter Notebookの使い方と同じです。
試しに、Pythonのバージョンを表示させてみました。
現在のPythonのバージョンは3.8.4となっています。
③ノートブックを終了する
Jupyter Notebookのメニュー「File」から「Log Out」をクリックして下さい。
ゲート回路の作成とシミュレーター動作確認
量子プログラミングの準備ができましたので、ここでは簡単なゲート回路を作成し、実行します。
①blueqatでプログラム(ゲート回路)を書く
ここでは、|0>(ケットベクトル0)で初期化された量子ビットを1つ用意し、アダマール変換(Hゲート)を作用させた後にそれを測定する、という内容のプログラムを書いてみます。
なお、プログラムの文法などは、公式ドキュメントをご参照下さい。
■blueqat公式ドキュメント
https://blueqat.readthedocs.io/ja/latest/
#=====================================
#blueqatでゲート回路を計算するプログラム
#=====================================
from blueqat import Circuit
shots_num = 100 #計算回数を設定(100回とする)
c = Circuit(1) #1qbitsを作成
c.h[0] #アダマールゲートを作用
res = c.m[0].run(shots=shots_num) #回路測定を実行
print(res) #計算結果を表示
また、実行結果をグラフで表示するため、以下のプログラムも追加します。
#上記で計算した結果をグラフ表示する
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
x = ['0','1']
y = [res['0'] / shots_num, res['1'] / shots_num] #計算結果を格納
ax.bar(x, y) #棒グラフで表示する
plt.show() #グラフを描画
②Jupyter Notebookで実行する(動作確認)
上記のプログラムをJupyter Notebookのセルに入力して実行します。
下図では実行結果を赤枠線で表示しました。
Hゲートを作用させたことで量子ビットは0と1の重ね合わせとなり、その確率がおよそ50%:50%となることがシミュレーター計算結果から得られました。
動作確認は以上です。
有償版blueqat cloudについて
ここまでは、blueqat cloudで無料で使用できる機能を紹介しましたが、さらに上位サービスとして、有償のblueqat cloud版が用意されています。
これまでblueqat proと称して提供されていたサービスです。
こちらは以下のような付加サービスが受けられ、より効果的な量子計算ソリューションをビジネスに活かせるような体制となっています。
- bluleqat株式会社の専門コンサルタントによる業務相談や技術サポート
- Jupyter Notebook上の使用だけでなく様々な形式で利用できるAPI機能の提供
- クラウドストレージ機能
- 複数ユーザ間でのプロジェクトやデータの共有
- より高速な計算が可能な高性能シミュレータの利用
- ソフトウエア自動アップデート機能
最新のサービス内容は、同社のWEBサイトから最新情報を取得して下さい。
関連情報
■無料量子コンピューティングクラウド環境、blueqat cloud
https://qiita.com/YuichiroMinato/items/3e82c3d44526e0d462f4
■blueqat公式ドキュメント
https://blueqat.readthedocs.io/ja/latest/
■Raspberry PIで量子コンピューターをシミュレーションする(blueqat環境構築編)
https://qiita.com/ttlabo/items/ac098d3ea7cb36013c86
■Raspberry PIで量子コンピューターをシミュレーションする(IBM Qiskit環境構築編)
https://qiita.com/ttlabo/items/64f06b7cdf3a44971c77
ご意見など
ご意見、間違い訂正などございましたらお寄せ下さい。