1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

量子テレポーテーションの回路を作成

前回までで、

\big[ \ket{\psi} \otimes \ket{\Phi}^{+} \big]

を準備しました。

今回は、量子テレポーテーションの回路を作成します。
量子テレポーテーションでは、Alice が持つ2つの量子ビット

  • q0 : 転送したい量子状態
  • q1 : Bell 状態の Alice 側

に対して操作を行い、その結果を Bob へ送ります。
Bob はその結果に応じて、自分の量子ビット q2 に補正操作を行います。
まず、 Alice 側で Bell 測定の準備をします。

qc.cx(0, 1)
qc.h(0)
qc.barrier()

q0をコントロール量子ビットとした CNOT ゲートを適用し、q0に Hadamard ゲートを適用しています。これにより、q0とq1の情報は通常の計算基底で測定できる形に変換されます。
次に、Alice はq0, q1 を測定します。

# Aliceがq0とq1を測定する
qc.measure(0, 0)
qc.measure(1, 1)
qc.barrier()

測定結果は古典ビットに保存されます。

q0の測定結果 → c0
q1の測定結果 → c1

量子テレポーテーションでは、この2ビットの古典情報を Bob へ送ります。Bob は受け取った測定結果に応じて、q2に補正操作を行います。

# Aliceの測定結果に応じてBob側のq2を補正する
with qc.if_test((0, 1)):
  qc.z(2)
with qc.if_test((1, 1)):
  qc.x(2)
qc.barrier()

ここでは、

  • c0 が 1 のとき、q2 に Zゲートを適用する
  • c1 が 1 のとき、q2 に Xゲートを適用する

という条件付き操作を行っています。

この補正によって、Bobの量子ビット q2 は、Aliceが最初に持っていた量子状態 $[\ket{\psi}]$ になります。最後に、q2を測定して確認します。

# Bob側の量子ビットを測定する
qc.measure(2, 2)

ここまでをまとめると以下のようになります。
Alice のq0は測定によって失われるため、「量子状態がコピーされている」というわけではなく、転送されているという点がテレポーテーションとして重要です。

from qiskit import QuantumCircuit, ClassicalRegister, QuantumRegister

q = QuantumRegister(3, "q")
c = ClassicalRegister(3, "c")
qc = QuantumCircuit(q, c)

# 1. q0に転送したい量子状態 |+> を準備
qc.h(q[0])
qc.barrier()

# 2. q1とq2でBell状態を生成
qc.h(q[1])
qc.cx(q[1], q[2])
qc.barrier()

# 3. Alice側のBell測定の準備
qc.cx(q[0], q[1])
qc.h(q[0])
qc.barrier()

# 4. Aliceがq0とq1を測定
qc.measure(q[0], c[0])
qc.measure(q[1], c[1])
qc.barrier()

# 5. Aliceの測定結果に応じてBob側のq2を補正
with qc.if_test((c[0], 1)):
  qc.z(q[2])
with qc.if_test((c[1], 1)):
  qc.x(q[2])
qc.barrier()

# 6. Bob側の量子ビットを測定
qc.measure(q[2], c[2])

print(qc.draw())

Fig2.png

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?