common.title

Docs
Quantum Circuit
TYTAN CLOUD

QUANTUM GAMING

Nobisuke

Dekisugi


autoQAOA
DEEPSCORE

Overview
Service overview
Terms of service

Privacy policy

Contact
Research

Sign in
Sign up
common.title

QAOA逆再生

Yuichiro Minato

2020/12/20 11:51

#量子ゲート #QAOA

1

はじめに

QAOAというアルゴリズムは量子断熱過程を利用し、二つのハミルトニアンを交換して計算をします。QAOAでは、初期ハミルトニアンを制約をかけたmixerとして使えます。

mixerにXYmixerとして、(XX+YY)/2を設定します。

通常は

「簡単な問題」

から

「難しい問題」

にいきますが、

逆に

「難しい問題」

から

「簡単な問題」

をやってみてできるかどうかやってみました。

問題

このような感じでハミルトニアンを設定し、やってみます。

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
init = Circuit().h[0].cx[0,1].x[0]
mixer = 0.5*X[0]*X[1] + 0.5*Y[0]*Y[1]

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

結果は、

(((1, 0), 0.9970150121543512),)

Circuit(2).h[0].cx[0, 1].x[0].cx[0, 1].rz(39.00633185153547)[1].cx[0, 1].rz(-97.51582962883867)[0].h[0].h[1].cx[0, 1].rz(-8.988636280080764)[1].cx[0, 1].h[0].h[1].rx(-1.5707963267948966)[0].rx(-1.5707963267948966)[1].cx[0, 1].rz(-8.988636280080764)[1].cx[0, 1].rx(1.5707963267948966)[0].rx(1.5707963267948966)[1].cx[0, 1].rz(34.522866650015565)[1].cx[0, 1].rz(-86.30716662503892)[0].h[0].h[1].cx[0, 1].rz(-8.64561683891384)[1].cx[0, 1].h[0].h[1].rx(-1.5707963267948966)[0].rx(-1.5707963267948966)[1].cx[0, 1].rz(-8.64561683891384)[1].cx[0, 1].rx(1.5707963267948966)[0].rx(1.5707963267948966)[1]

こうなりました。

逆再生

できるはずです。出た答えの|10>状態をXゲートで作ってからQAOAを逆再生し、|00>に戻るかやってみます。

result2 = (Circuit().x[0] + result.circuit.dagger()).m[:].run(shots=100)
print(result2)
Counter({'00': 100})

無事戻りました!当たり前ですが、ハミルトニアンの交換を逆にしても大丈夫ですね。

© 2025, blueqat Inc. All rights reserved