Teleport A Fly

Published by strangeworks (01/22/2021)

Quantum states cannot be copied. This makes transmission of quantum information a little bit trickier than classical information. To transmit information, we need quantum teleportation. Quantum teleportation uses entangled bits as a communication channel. It is a good way to get a sense of the power of entanglement. One of the discoverers of Quantum Teleportation regrets naming it that way, but spending-shared-entanglement-to-transmit-quantum-information protocol does not have the same ring to it.

Introduction

Two entangled qubits can be used to transmit quantum information. One qubit stays with the transmitter, the other goes to the receiver. The transmitter uses this shared entanglement as a channel to send a qubit to the receiver. To finish the transference, the transmitter needs to send some classical information such that the receiver knows how to unlock the information. Since the qubit can be seen as soon as the receiver obtains the classical information, it is as if the quantum state appears only then. This is known as quantum teleportation, and is the key principle for secure quantum communications. Experimental demonstrations have been made with communication satellites.

 Seth Brundle : I can only teleport inanimate objects.

 Veronica Quaife : Well, what happens when you try to teleport living things?

Seth Brundle : Not while we're eating.

 -The Fly

Protocol

Alice know she might want to send some quantum information to Bob. These are the steps they take together to accomplish it.

Step 1

They meet together at their favorite watering hole, h-Bar, a place to share beers and entangled states.

They create and share an entangled state, the following Bell state:

β00q1q2=12(00q1q2+11q1q2).\vert \beta_{00} \rangle^{q_1 q_2}=\frac{1}{\sqrt{2}}\Big(\, \vert 00 \rangle ^{q_1 q_2}+\vert 1 1 \rangle ^{q_1 q_2} \,\Big).

Each keep one qubit of it, q1q_1​ is on the Hilbert space of Alice, and q2q_2​ the Hilbert space for Bob. Now they are sharing an entangled pair. Bob takes a taxi home with his qubit from the entangled paired, while Alice decides to stay for another round. This entangled pair establishes a channel of communication between Alice and Bob. 

Step 2

Later that night Alice finds at the bar a new qubit ∣ψ⟩q0\vert \psi \rangle^{q_0},

∣ψ⟩q0=α∣0⟩q0+β∣1⟩q0,\vert \psi \rangle^{q_0}=\alpha\vert 0 \rangle^{q_0}+\beta\vert 1 \rangle^{q_0}, and decides Bob would be very interested in it. The label q0q_0​ denotes the Hilbert space of the information to be transmitted, which is also part of the Hilbert space of Alice. Together, the qubit q0{q_0}​ and the shared entangled state q1q2{q_1 q_2}​ form the state:

ψq0β00q1q2=(α0q0+β1q0)12(00q1q2+11q1q2).\vert \psi \rangle^{q_0}\vert \beta_{00} \rangle^{q_1 q_2}=\Big(\, \alpha\vert 0 \rangle^{q_0}+\beta\vert 1 \rangle^{q_0} \,\Big)\,\frac{1}{\sqrt{2}}\Big(\, \vert 00 \rangle ^{q_1 q_2}+\vert 1 1 \rangle ^{q_1 q_2} \,\Big) .​​

She is going to teleport it to him, wherever he is. To accomplish this, she does some operations on the qubits on the Hilbert space under her control, q0{q_0}​ and q1{q_1}​, 

ψq0β00q1q212{α(0+1)(00q1q2+11q1q2)+β(01)(10q1q2+01q1q2)},\vert \psi \rangle^{q_0}\vert \beta_{00} \rangle^{q_1q_2}\rightarrow\frac{1}{2}\bigg\{\, \alpha \big( \vert 0\rangle +\vert 1\rangle\big) \big( \vert 00 \rangle ^{q_1q_2}+\vert 1 1 \rangle ^{q_1q_2}\big)\,+\,\beta \big( \vert 0\rangle -\vert 1\rangle\big) \big( \vert 10 \rangle ^{q_1q_2}+\vert 0 1 \rangle ^{q_1q_2}\big) \,\bigg\},​​

to share the qubit over the entangled stated.

Step 3

The information of the state is distributed over the shared entangled state. But to fully transmit it, Alice needs to teleport it. For this, Alice then makes a pair of measurement on q0{q_0}​ and q1{q_1}​. From them, she gets two bits of information. Also, after the measurements, the shared entanglement has been spent. Alice also does not have the qubit anymore, but Bob has it! He does not know what basis it is, but that is taken care of in the next step.

Step 4

To complete the protocol, Alice must send the two bits of information to Bob, so Bob can figure out on which basis de qubit is on. For this, Alice calls Bob on his cellphone, a classical information channel, and she tells him the outcome of the measurement, that is, tells him classical information needed to reconstruct the quantum state:

Bits  00  means that the qubit is  α∣0⟩q2+β∣1⟩q2.\alpha\vert 0 \rangle^{q_2}+\beta\vert 1 \rangle^{q_2}.​​

Bits  01  means that the qubit is  α∣1⟩q2+β∣0⟩q2.\alpha\vert 1 \rangle^{q_2}+\beta\vert 0 \rangle^{q_2}.​​

Bits  10  means that the qubit is  α∣0⟩q2−β∣1⟩q2.\alpha\vert 0 \rangle^{q_2}-\beta\vert 1 \rangle^{q_2}.​​

Bits  11  means that the qubit is  α∣1⟩q2−β∣0⟩q2.\alpha\vert 1 \rangle^{q_2}-\beta\vert 0 \rangle^{q_2}.​​

With this information, Bob can read the interesting quantum information in q2{q_2}​. The qubit has been teleported from the bar to Bob's house, thanks to the shared entanglement, and the classical bits Alice sent to Bob.

Quantum Circuit

Now, let's look at the quantum circuit that accomplishes the same protocol. For this, we wrote the code of this demo using QISKIT/Python. Go ahead, look at the code, run it once, and I'll explain the main parts of how it all works.

We first create the Hilbert space for each of the three qubits needed. We also create two classical bits, needed to hold the outcome of the measurements. We also initialize the quantum circuit on those spaces.

# Create a Quantum Register with 3 qubits.
q = QuantumRegister(3)

# Create a Classical Register with 2 bits.
c = ClassicalRegister(2)
    
# Create a Quantum Circuit
qc = QuantumCircuit(q, c)

Then, Alice and Bob carry the operations to entangle two qubits q1q_1​ and q2q_2​ into a Bell State.

qc.h(q[1])

qc.cx(q[1], q[2])

After this, another qubit is created.

# Prepare an initial state q0, this is the unknown qubit to be teleported
qc.u1(0.5, q[0])

q0q_0​ is the qubit that Alice finds at the bar, the one with information that she wants to send to Bob. Feel free to change the parameters of this qubit, to rotate it in different ways to send different information.

Then, we create a barrier. 

# Barrier to prevent gate reordering, so circuit it is easier to read
qc.barrier(q)

This helps making sure the gates aren't automatically resorted to be optimized when compiled. This makes the initialization part of the protocol is easier to read. 

With that done, we can go to main part of the teleportation procedure. Alice operates on the found qubit q0q_0​ and her part of shared entangled pair q1q_1​.

# Perform a CNOT between qubit q0 and qubit q1

qc.cx(q[0], q[1])
# Rotate qubit q1 with Hadamard
qc.h(q[0])

Now the quantum information is shared all over the qubits. To finish teleporting it, Alice needs to do measurements on her two qubits.

       # Measure qubit q0 and q1 to teleport
       qc.measure(q[0], c[0])
       qc.measure(q[1], c[1])

The outcome of the measurements is displayed as a one-bar Histogram in the Results tab. Notice only one of 00, 01, 10, or 11 appears, and with  and probability of 1. One and only one of these options appears on each run of the protocol, and Alice would write down which one of them it is.

She then shares the classical outcome of this measurements with Bob, and Bob can use this information to rotate the qubit he received to his prefered basis. If Bob wanted to do this rotation, he would do it conditioned on that classical information.

    # Optional rotation for Bob
    if c[0] == 1:
       qc.z(q[2])
    if c[1] == 1:
       qc.x(q[2])

And that is all, now Bob knows that on q2q_2​ he has the teleported qubit Alice sent him. 

Teleportation completed.