I would like to solve combinatorial optimization problems using a quantum computer. When you use quantum annealing, you create a QUBO problem, and the middleware converts it into an Ising model formulation.
In the Ising model, the upward spin is set to +1 and the downward spin to -1 to find the answer to the set problem. If we want to solve a problem like quantum annealing with quantum gates, we need to use quantum adiabatic time evolution calculations to write down the time evolution of quantum annealing in the form of quantum logical gates.
The Hamiltonian of the transverse field is X, and the corresponding Hamiltonian H is Z or ZZ, which is the interaction of two qubits.
Time evolution operator is,
exp(-iHt)
Since the time evolution operator takes the form of a matrix on the shoulder of an exponent, we need to lower this matrix from the shoulder of the exponent. If the matrix is a diagonal matrix, it can be easily unloaded from the exponential shoulder.
In the case of H=Z, we have
exp(-iZt) = Rz(2t)
for H=Z. Otherwise, for X and Y, we have
X = H Z H
Y = SH Y HS*
to get
exp(-iXt) = exp(-i(HZH)t) = H exp(-iZt) H = HRz(2t)H = Rx(2t)
using the following formula. Similarly, use
exp(-iYt) = Ry(2t)
The two-qubit gate is a bit trickier.
It changes a bit when the Hamiltonian of exp(-iHt) is something like XX, YY, or ZZ. These are called Ising coupling gates.
Reference:
exp(-iZZt) = CX Rz(2t) CX = Rzz(2t)
For a machine like Rigetti, there is no Ising coupling gate like Rzz, so CX and Rz are used, and for an trapped ion machine like IonQ, Rzz is provided as standard.
Similarly
exp(-iXXt) = Rxx(2t)
exp(-iYYt) = Ryy(2t)
Recently, Rxx, Ryy, and Rzz gates have become popular, so it may be easier to use them directly. That's all.