Nobisuke
Dekisugi
RAG
Privacy policy
2021/04/24 16:29
今回は以前Rigettiで行った振幅増幅回路をIonQで実行してみます。 参考:https://blueqat.com/yuichiro_minato2/c857f49e-5165-46a4-aa2d-8bc30bb7db2d
Copy !pip install -U blueqat-cloud
まずはツールとAPIkeyの読み込みです。
Copy from blueqat import Circuit from bqcloud import load_api, Device #キーの読み込み api = load_api()
まずはマーキング回路です。Rigettiの時と同じ回路を使います。
#marking on |01>
----S--*--S---
-------Z-------
そして、増幅反転回路は共通です。
--H-X-*-X-H--
--H-X-Z-X-H--
これらを実装しますが、IonQのデフォルトにCZがないので、H,CX,HでCZを作ります。
Copy a = Circuit(2).h[:].x[:].h[1].cnot[0,1].h[1].x[:].h[:] task = api.execute(Circuit(2).h[:].s[0].h[1].cnot[0,1].h[1].s[0] + a, Device.IonQDevice, 100)
Copy result = task.wait(timeout=10) if result: print(result.shots()) else: print("timeout")
Counter({'10': 96, '00': 2, '01': 1, '11': 1})
できました!これくらいの回路ですと精度はRigettiと同じくらい出てますね。以上です。
© 2024, blueqat Inc. All rights reserved