blueqatを利用して、超伝導、イオントラップ、光量子コンピュータのプログラミングと実行を行う。

blueqat cloudで量子コンピュータ

最近とにかく登録者数が増えています。blueqat.comの上から登録でき、無料で量子コンピューティングができる上、有料で量子コンピュータ本体へタスクを投げられます。まだ本格的に量子コンピュータが必要という人はあまりいないと思いますが、着々と発展しています。

本日は、blueqat cloudを使ってできる3種類の計算を見てみたいと思います。2021年末時点だと、まだマシンの稼働は24時間ではなくてダウンタイムがあります。日本とアメリカでは昼間の時間の稼働時間がうまくかみ合いませんので、うまく時間調整をする必要があります。

超伝導量子コンピュータ

超電導タイプはRigettiが使えます。早速使ってみますね。最新版は40量子ビットマシンのAspen11が利用できます。どうやら2021年末時点では38量子ビットに減ってるようです。超伝導量子ビットはチップの上に超伝導の素子を置いて、極低温で冷やして利用するよくニュースで見かけるタイプのものです。blueqat-cloudのツールを読み込みます。APIの登録が終わってない人は登録をする必要があります。

from bqcloud import register_api

api = register_api("APIキーをここに入れる")

登録が終わっている方は、下記から始めてみてください。

from blueqat import Circuit
from bqcloud import load_api, Device

#キーの読み込み
api = load_api()

タスクを作るのは簡単です、回路、デバイス、実行回数を指定します。その後、タスクが処理されたかどうかを確認します。

task_rigetti = api.execute(Circuit().h[0].cx[0,1], Device.Aspen11, 10)
print(task_rigetti.status())

タスクを更新することで確認をすることができます。

task_rigetti.update()
print(task_rigetti.status())
result_rigetti = task_rigetti.wait(timeout=10)
if result_rigetti:
    print(result_rigetti.shots())
else:
    print("timeout")

簡単に計算ができました。

イオントラップ量子コンピュータ

イオントラップタイプはIonQが使えます。使ってみましょう。11量子ビットマシンのIonQDeviceが利用できます。イオントラップは常温真空のマシンです。空中にイオンを浮かして計算をします。使い方はRigettiと同じです。デバイスの指定が違います。IonQのデバイスは量子ビットがすべて結合している全結合型と呼ばれるもので、結合をあまり考えず計算ができるので重宝します。

task_ionq = api.execute(Circuit().h[0].cx[0,1], Device.IonQDevice, 10)
print(task_ionq.status())
task_ionq.update()
print(task_ionq.status())
result_ionq = task_ionq.wait(timeout=10)
if result_ionq:
    print(result_ionq.shots())
else:
    print("timeout")

量子もつれ回路を実行してみましたが、問題なく計算ができています。

光量子コンピュータ(シミュレータ)

最後は光量子コンピュータです。光量子コンピュータではblueqatではなく、photonqatというツールを利用します。光量子コンピュータは2021年末時点では実機のマシンが手に入りませんので、シミュレータと呼ばれる普通のコンピュータで模擬的に計算をするものを利用します。

今回は以前チュートリアルでも紹介した光量子コンピュータ向けの量子テレポーテーションを紹介します。

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

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

計算ができました。

まとめ

どうでしょうか。一つのクラウドで、超伝導、イオントラップ、光量子コンピュータのプログラミングが簡単にできました。2022年にはこれに冷却原子マシンが登場予定です。また、pythonを利用しないツールも登場していますので、ますますユーザーのすそ野が広がりますね。学習が大変ですが、頑張りましょう!以上です。

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