Nobisuke
Dekisugi
RAG
Privacy policy
2021/07/17 10:08
1
今回解きたい問題は、
となるようなxを求めます。QUBOにおいて足し算は上記右辺から左辺を引いてその最小値を求めることに相当しますので、
というコスト関数ができます。こちらを展開すると、
という式が得られます。これを計算します。一方、xは量子ビットを使って、
という二進数表記ができますので、さらにこれを上記のコスト関数に代入すると、
と展開されます。ここで、QUBOはバイナリ値{0,1}を取りますので、二乗の項はすべて指数がとれます。
より、
となります。これのハミルトニアンの最小値を求めることにより足し算の答えを求めることができます。
blueqatにはQUBO対応の機能があり、ハミルトニアンをqubo形式で入力できます。
Copy from blueqat import vqe from blueqat.pauli import qubo_bit as q
こちらを使って定式化をして解いてみます。
Copy 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でとなりましたので、の答えは、
となります。
© 2024, blueqat Inc. All rights reserved