common.title

Docs
Quantum Circuit
TYTAN CLOUD

QUANTUM GAMING


Overview
Contact
Event
Project
Research

Terms of service (Web service)

Terms of service (Quantum and ML Cloud service)

Privacy policy


Sign in
Sign up
common.title

QAOAの時間発展演算子の対角化をイジングカップリングゲートで書き直す

Yuichiro Minato

2021/01/09 07:24

理解のためにも、手の腱鞘炎のためにも回路は簡単にかける方がいいですよね。よく出てくるハミルトニアンの時間発展演算子、

CX-RZ-CX

とかを簡単に書いてみます。

QAOA

QAOAでやってみます。まずBlueqatのインストール

!pip install -U blueqat

そして、適当なハミルトニアンを作り、実行します。Xミキサーで初期状態は|+>からスタート。

from blueqat import Circuit
from blueqat import vqe
from blueqat.pauli import X,Y,Z

h = 5*Z[0]-2*Z[0]*Z[1]
step = 2

result = vqe.Vqe(vqe.QaoaAnsatz(h,step)).run()
print(result.most_common())
print(result.circuit)

こんな感じになりました。

(((1, 1), 0.8144445064787001),)

Circuit(2).h[:].cx[0, 1].rz(49.460289478707516)[1].cx[0, 1].rz(-123.6507236967688)[0].rx(4.758485377427176)[:].cx[0, 1].rz(64.56773083408335)[1].cx[0, 1].rz(-161.41932708520838)[0].rx(0.7862442700373741)[:]

この回路を書き直してみます。XミキサーはRXに、Zのバイアス項はRZになってますが、ZZはCX-RZ-CXになってます。なので、ここを書き直すと、

CX-RZ-CX = RZZに書き直せます。

Circuit(2).h[:].rzz(49.460289478707516)[0,1].rz(-123.6507236967688)[0].rx(4.758485377427176)[:].rzz(64.56773083408335)[0,1].rz(-161.41932708520838)[0].rx(0.7862442700373741)[:].m[:].run(shots=1000)

これを実行して、

Counter({'11': 829, '00': 56, '10': 115})

いい感じでできました。回路が短くなり、元のハミルトニアンとの対応が見やすくなりました。

© 2025, blueqat Inc. All rights reserved