IBM Quantum ExperienceとBlueqatでCCXゲート(トフォリゲート)を体験してみる
量子コンピュータ初心者です。前回に引き続きIBM Quantum ExperienceとBlueqatを使って、$CCX$ゲート(トフォリゲート)を試してみます。
CCXゲート(トフォリゲート)
$CCX$ゲートは3量子ビットの演算です。$CX$ゲートの拡張版?みたいな感じで、制御ビットが1つ増えて2個あります。トマソ・トフォリによって作られたのでトフォリゲートとも呼ばれます。
2つの制御ビットが共に1になったときに、ターゲットビットを反転します。
CCXゲートの準備
Circuit Composerで'q' register qubitsを3にして3量子ビットにします。さらに$CCX$ゲートを配置します。慣例に沿って測定のアイコンも入れておきます。
Measurement Probabilityの結果を見ると000になっています。まだ何もしていないので当然ですね。
CCXゲートを使ってみる
q[0]とq[1]に$X$ゲートを入れて動作を確認してみます。
制御ビットの片方だけ1の場合
q[0]に$X$ゲートを適用して片方だけ1の状態にしてみます。当然のことながらターゲットビットは反転されずそのまま出力され、結果は001となります。Circuit Composerでは結果は後→前の順番で出てきますので、q[0]の結果が最後の1にあたります。
ターゲットビットに$X$ゲートを適用しても、そのまま出力されて結果は101になります。
制御ビットが両方1の場合
q[0]とq[1]の両方に$X$ゲートを適用すると、ターゲットビットが反転されます。いまq[2]はもともと0ですので反転されて結果は111になりました。
q[2]にも$X$ゲートを適用しておくと、反転されて結果は011になりました。
Blueqatのコード
同じような操作をBlueqatでやってみます。
from blueqat import Circuit
res = []
res.append(Circuit(3).ccx[0,1,2].m[:].run(shots=1)) #000
res.append(Circuit(3).x[2].ccx[0,1,2].m[:].run(shots=1)) #001
res.append(Circuit(3).x[1].ccx[0,1,2].m[:].run(shots=1)) #010
res.append(Circuit(3).x[1,2].ccx[0,1,2].m[:].run(shots=1)) #011
res.append(Circuit(3).x[0].ccx[0,1,2].m[:].run(shots=1)) #100
res.append(Circuit(3).x[0,2].ccx[0,1,2].m[:].run(shots=1)) #101
res.append(Circuit(3).x[0,1].ccx[0,1,2].m[:].run(shots=1)) #110
res.append(Circuit(3).x[:].ccx[0,1,2].m[:].run(shots=1)) #111
for i in res:
print(i)
実行すると2つの制御ビットが共に1のとき(最後の110と111)だけターゲットビットが反転されていることがわかります。なおBlueqatでは量子ビットの順番(q[0],q[1],q[2])で結果が出てきます。Circuit Composerとは逆なので注意してください。
Counter({'000': 1})
Counter({'001': 1})
Counter({'010': 1})
Counter({'011': 1})
Counter({'100': 1})
Counter({'101': 1})
Counter({'111': 1})
Counter({'110': 1})
参考資料
Author And Source
この問題について(IBM Quantum ExperienceとBlueqatでCCXゲート(トフォリゲート)を体験してみる), 我々は、より多くの情報をここで見つけました https://qiita.com/M_Study/items/484b7e8e395d2494421c著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .