Nobisuke
Dekisugi
RAG
Privacy policy
2021/04/22 15:55
ついにこの日が来ました。量子コンピュータを世界一簡単に使いたいですよね。RigettiとIonQを超簡単にblueqat cloudから使えます。便利なツールも出来上がりました。基本的な記事はこちらを参照していただいて、
https://blueqat.com/gyu-don/87fcb9ce-f5c2-4f9e-8697-191c8781d70b
具体的な問題を解いてみたいと思います。まずはクラウドにつなぐツールをインストール確認します。
Copy !pip install -U blueqat-cloud
次に先ほどの記事で書いてあるAPIkeyは設定されていることとします。キーは blueqat.com の右上のメニューから発行できます。早速保存されたキーを使って回路を実装してみましょう。
Copy from blueqat import Circuit from bqcloud import load_api, Device #キーの読み込み api = load_api()
今回は基本的な重ね合わせ回路と量子もつれ回路を作ってみます。
Copy a = Circuit().h[0]
まずは0と1の重ね合わせをIonQとRigettiのデバイスにそれぞれ投げてみます。まずはRigetti
Copy task2 = api.execute(a, Device.Aspen9, 100) print(task2.status())
Status.RUNNING
Copy result2 = task2.wait(timeout=100) if result2: print(result2.shots()) else: print("timeout")
Counter({'1': 55, '0': 45})
きちんと重ね合わせができています。続いてIonQを試してみます。
Copy task = api.execute(a, Device.IonQDevice, 100) print(task.status())
Status.CREATED
Copy result = task.wait(timeout=100) if result: print(result.shots()) else: print("timeout")
Counter({'0': 53, '1': 47})
2021年4月段階ではまだIonQはジョブの処理に時間がかかります。計算結果は素晴らしいです。
続いて量子もつれです。
Copy b = Circuit().h[0].cx[0,1]
先ほどと同じでまずはRigettiのAspen9で、
Copy task3 = api.execute(b, Device.Aspen9, 100) print(task3.status())
Status.RUNNING
Copy result3 = task3.wait(timeout=100) if result3: print(result3.shots()) else: print("timeout")
Counter({'11': 38, '00': 36, '10': 21, '01': 5})
こちらは意外と早く結果が出ました。多少間違っておりますが、まぁある程度答え出ています。続いてIonQです。
Copy task4 = api.execute(b, Device.IonQDevice, 100) print(task4.status())
Status.CREATED
Copy result4 = task4.wait(timeout=100) if result4: print(result4.shots()) else: print("timeout")
Counter({'11': 50, '00': 47, '10': 3})
こちらは多少間違えましたが、おおむねいい感じですね!こんな簡単に量子コンピュータが使える時代が来たのはすごいと思います。以上です。
© 2024, blueqat Inc. All rights reserved