Interested in learning how to program quantum computers? Then check out our Qiskit textbook Introduction to Quantum Computing with Qiskit.
Introduction
Qubits are very fragile and are prone to errors due to decoherence and other quantum noise. However using quantum error correction qubit errors can be corrected.
In this tutorial you will see how a specific type of error called a bit flip error can be corrected using a quantum circuit known as the bit flip code.
What is a Bit Flip error?
A bit flip error is specific type of error where the qubits computational state flips from 1 to 0 or vice versa.
However a bit flip can be corrected using the bit flip code. This is a 3 qubit circuit that makes use of 2 ancillary qubits to correct 1 qubit.
The code works by first using CNOT gates to transfer the computational state of the main qubit to the other ancillary qubits. Then if an error occurs the first qubits state will be flipped. To correct the bit flip CNOT gates are applied to the ancillary qubits again and then a toffoli gate is applied to the first qubit which will correct its state.
For example let’s say the main qubits state was 0. CNOT gates will be applied to the ancillary qubits which will leave them unchanged since the main qubits state was 0.
Next a bit flip occurs which flips the main qubits state to 1. After the bit flip CNOT gates are applied to the ancillary qubits which will flip their states to 1 since the main qubits state is 1.
Then a toffoli gate is applied to the main qubit which will flip the state of the qubit since the ancillary qubits states are 1. This flips the state of the main qubit to 0 thus correcting the error.
Implementation
Step 1: Initialise the quantum and classical registers
The first step is to initialise a 3 qubit register . This is done by the following code:
Next we initialise the 1 bit classical register with the following code:
Step 2: Create the circuit
Next we create quantum circuit using the following code:
Step 3: Apply a CNOT gate to ancillary qubits
Next we will need to transfer the state of the first qubit to the ancillary qubits. This is done using CNOT gates where the ancillary qubits are the targets and the first qubit is the control qubit.
This is done using the following code:
Step 4: Simulate a bit flip
To show that the circuit corrects bit flips lets simulate a bit flip error. This can be done by applying a NOT gate to the first qubit:
Step 5: Again apply CNOT gates to ancillary qubits
This is done using the following code:
Step 6: Apply a Toffoli gate to the main qubit
This is done using the following code:
Step 7: Measure the qubits
After this we measure the qubits.
This is done with the following code:
How to run the program
Copy and paste the code below in to a python file
Enter your API token in the IBMQ.enable_account('Insert API token here') part
Save and run