blueqat cloudで光量子SDKphotonqatを利用して光量子コンピュータアプリ開発

こんにちは、光量子コンピュータが汎用量子ゲート方式に行く前に少しアナログな光連続量計算というのを導入しています。そちらのSDKはあまり世界で開発が進んでおらず、blueqatで開発していたphotonqatをスピンアウトしてBosoniQという会社に立ち上げました。


https://www.bosoniq.net/


今回はblueqat cloudでphotonqatをプリインストールしましたので、使い方を見てみたいと思います。


1,まずは登録してログイン。その後、メニュー一番上の黄色いボタンを押す。

https://blueqat.com/で右上からアカウント登録をしていただいて、その後ログインしてくださいませ。また、ログインが済むと上に黄色いボタンでCloudとでます。押していただくとjupyternotebookが起動します。



2,Jupyter画面が出たらpython3を立ち上げます

こちらの画面になります。



その後、


こちらに行ったら準備完了です。


3,コードを書く

とりあえず、下記の例題などを参考にしてみます。


https://github.com/BosoniQ-github/Photonqat


https://github.com/BosoniQ-github/Photonqat/tree/master/examples


光連続量計算は位置xと運動量pの関係性を表した座標平面上での計算の分布を操作します。できる操作には、変位ゲートや回転ゲートなどがありますが、それらの記述方法を見てみます。まずはphotonqatはプリインストールされていますので、phtonqat/numpy/matplotlibを呼び出します。


import photonqat as pq
import numpy as np
import matplotlib.pyplot as plt



量子テレポーテーションのコードをガウシアンシミュレータでの実装です。

量子テレポーテーションゲートではガウシアンゲートのみの利用となるので、ガウシアンシミュレータで十分のようです。

シミュレータを呼び出し、


変位ゲート(テレポートしたい初期状態を作成)

スクイージングゲート

ビームスプリッターゲート


を変数を設定して適用します。

その後xとpでそれぞれの量子モードを測定し、測定した結果に応じてそれぞれ移動先の量子モードに値を適用します。


最後にウィグナー平面上にプロットを行い視覚的に確認しながら、移ったあとのモードの値を確認しています。

r = 2

G = pq.Gaussian(3)

G.D(0, 1 + 0.5j) # state to teleport
G.S(1, -r)
G.S(2, r)
G.BS(1, 2, np.pi/4) # 50:50 beam splitter
G.BS(0, 1, np.pi/4) # 50:50 beam splitter
G.MeasX(0)
G.MeasP(1)
G.X(2, G.Creg(0, "x", scale = np.sqrt(2)))
G.Z(2, G.Creg(1, "p", scale = np.sqrt(2)))
G.run()

G.Wigner(2) # plot
print('measured x =', G.Creg(0, "x").read())
print('measured p =', G.Creg(1, "p").read())
print('teleported mu =', G.mean(2)) # mu of qumode 0


簡単ですので、ぜひ使ってみてください。



Fockシミュレータを利用するとより光量子計算に近い計算が利用できます。最適化計算や機械学習その他いろいろな用途が想定されていますので、ぜひ活用してみてください。


以上です。

Yuichiro Minato
blueqat CEO/CTO 2015年総務省異能vation最終採択 2017年内閣府ImPACTプロジェクトPM補佐 2019年文科省さきがけ量子情報処理領域アドバイザー
Comments
Yuichiro Minato
blueqat CEO/CTO 2015年総務省異能vation最終採択 2017年内閣府ImPACTプロジェクトPM補佐 2019年文科省さきがけ量子情報処理領域アドバイザー
Related posts

blueqat Inc.

Shibuya Scramble Square 39F 2-24-12, Shibuya, Shibuya-ku, Tokyo
Contact: info@blueqat.com