はじめに
フレドキンゲート、cswapゲートについてみてみます。
フレドキンゲート
フレドキンゲートもしくはcswapゲートは制御ゲートです。行列表現は、コントロールビットとターゲットビットからなりますが、ターゲットビットはswapになっています。
ゲート表現
blueqatでは、
from blueqat import Circuit
Circuit(3).x[0,2].cswap[0,1,2].m[:].run(shots=100)
となりました。swapはcxを3回かければいいので、
from blueqat import Circuit
Circuit(3).x[0].x[2].cx[2,1].ccx[0,1,2].cx[2,1].m[:].run(shots=100)
ccxとcxを二つで表現できました。