common.title

こんなに簡単に量子重ね合わせやもつれが実機で計算できるとは?!IonQとRigettiにジョブを投げる。

Yuichiro Minato a year ago

#量子コンピュータ

ついにこの日が来ました。量子コンピュータを世界一簡単に使いたいですよね。RigettiとIonQを超簡単にblueqat cloudから使えます。便利なツールも出来上がりました。基本的な記事はこちらを参照していただいて、

https://blueqat.com/gyu-don/87fcb9ce-f5c2-4f9e-8697-191c8781d70b

具体的な問題を解いてみたいと思います。まずはクラウドにつなぐツールをインストール確認します。

!pip install -U blueqat-cloud

次に先ほどの記事で書いてあるAPIkeyは設定されていることとします。キーは blueqat.com の右上のメニューから発行できます。早速保存されたキーを使って回路を実装してみましょう。

from blueqat import Circuit from bqcloud import load_api, Device #キーの読み込み api = load_api()

今回は基本的な重ね合わせ回路と量子もつれ回路を作ってみます。

a = Circuit().h[0]

まずは0と1の重ね合わせをIonQとRigettiのデバイスにそれぞれ投げてみます。まずはRigetti

task2 = api.execute(a, Device.Aspen9, 100) print(task2.status())
Status.RUNNING
result2 = task2.wait(timeout=100) if result2: print(result2.shots()) else: print("timeout")
Counter({'1': 55, '0': 45})

きちんと重ね合わせができています。続いてIonQを試してみます。

task = api.execute(a, Device.IonQDevice, 100) print(task.status())
Status.CREATED
result = task.wait(timeout=100) if result: print(result.shots()) else: print("timeout")
Counter({'0': 53, '1': 47})

2021年4月段階ではまだIonQはジョブの処理に時間がかかります。計算結果は素晴らしいです。

続いて量子もつれです。

b = Circuit().h[0].cx[0,1]

先ほどと同じでまずはRigettiのAspen9で、

task3 = api.execute(b, Device.Aspen9, 100) print(task3.status())
Status.RUNNING
result3 = task3.wait(timeout=100) if result3: print(result3.shots()) else: print("timeout")
Counter({'11': 38, '00': 36, '10': 21, '01': 5})

こちらは意外と早く結果が出ました。多少間違っておりますが、まぁある程度答え出ています。続いてIonQです。

task4 = api.execute(b, Device.IonQDevice, 100) print(task4.status())
Status.CREATED
result4 = task4.wait(timeout=100) if result4: print(result4.shots()) else: print("timeout")
Counter({'11': 50, '00': 47, '10': 3})

こちらは多少間違えましたが、おおむねいい感じですね!こんな簡単に量子コンピュータが使える時代が来たのはすごいと思います。以上です。

Yuichiro Minato

@yuichiro_minato2

blueqat CEO/CTO

About us ©2022 Copyright © 2022 blueqat Inc. All rights reserved