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で1+1を実行。

Yuichiro Minato

2021/07/17 10:08

#qaoa

QUBOで足し算を行う

今回解きたい問題は、

1+ 1 = x

となるようなxを求めます。QUBOにおいて足し算は上記右辺から左辺を引いてその最小値を求めることに相当しますので、

E = (x-2)^2

というコスト関数ができます。こちらを展開すると、

E = x^2 -4x + 4

という式が得られます。これを計算します。一方、xは量子ビットを使って、

x = q_0 + 2q_1

という二進数表記ができますので、さらにこれを上記のコスト関数に代入すると、

H = q_0^2 + 4*q_0*q_1 - 4*q_0 + 4*q_1^2 - 8*q_1 + 4

と展開されます。ここで、QUBOはバイナリ値{0,1}を取りますので、二乗の項はすべて指数がとれます。

q_0^2 = q_0 q_1^2 = q_1

より、

H = -3q_0 + 4q_0q_1 - 4q_1 +4

となります。これのハミルトニアンの最小値を求めることにより足し算の答えを求めることができます。
blueqatにはQUBO対応の機能があり、ハミルトニアンをqubo形式で入力できます。

from blueqat import vqe
from blueqat.pauli import qubo_bit as q

こちらを使って定式化をして解いてみます。

qubo = -3*q(0)+4*q(0)*q(1)-4*q(1)

result = vqe.Vqe(vqe.QaoaAnsatz(qubo, step=1)).run()
print(result.most_common()[0][0])
(0, 1)

これはQUBOでq_0=0,q_1=1となりましたので、1+1の答えは、

1 + 1 = 0 + 2*1 = 2

となります。

© 2025, blueqat Inc. All rights reserved