common.title

Overview
Service overview
Terms of service

Privacy policy

Contact

Sign in
Sign up
common.title

IonQで量子振幅増幅回路

Yuichiro Minato

2021/04/24 16:29
#IonQ

今回は以前Rigettiで行った振幅増幅回路をIonQで実行してみます。 参考:https://blueqat.com/yuichiro_minato2/c857f49e-5165-46a4-aa2d-8bc30bb7db2d

!pip install -U blueqat-cloud

まずはツールとAPIkeyの読み込みです。

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を作ります。

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)
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