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

できました!これくらいの回路ですと精度はRigettiと同じくらい出てますね。以上です。

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