はじめに
ソフトウェアの学習には、全く役に立ちませんが、googleの量子超越マシンを学ぶ時にSYC(シカモア)ゲートというのがでてきたので確認してみます。
SYCゲート
sycゲートはfsim gateの角度指定バージョンらしく、2量子ビットゲートで、
FsimGate(π/2,π/6)
とのことです。行列表現は、
[[1, 0, 0, 0],
[0, 0, -1j, 0],
[0, -1j, 0, 0],
[0, 0, 0, exp(- 1j * π/6)]]
参考:https://cirq.readthedocs.io/en/stable/generated/cirq.google.SYC.html
FsimGate
聴き慣れませんが、fsim(θ,φ) = iswap†(θ) + cphase(φ)とのことです。角度が二つ指定できます。
iswap
iswapゲートは、
[[1, 0, 0, 0],
[0, 0, 1j, 0],
[0, 1j, 0, 0],
[0, 0, 0, 1]
で、ダガーがつくと回転が逆になり、
[[1, 0, 0, 0],
[0, 0, -1j, 0],
[0, -1j, 0, 0],
[0, 0, 0, 1]
cphaseは制御フェーズゲートなので、cz回転にコントロールビットをつけます。これを組み合わせることで、sycゲートができるようです。
[[1, 0, 0, 0],
[0, 0, -1j, 0],
[0, -1j, 0, 0],
[0, 0, 0, exp(- 1j * π/6)]]
利用
QAOAの時間発展では、sycゲートを3つ使い、zz時間発展+swapゲートを実現してました。
引用:https://arxiv.org/pdf/2004.04197.pdf
元気ある時に手計算します。。。