Error detection and correction using [[4,2,2]] code

1cbaf640-f0bc-4cd9-9a1a-62c4e59f106b
4.0
Description

This quantum circuit prepares two logical qubits, encodes them into four physical qubits, introduces a bit-flip error, performs syndrome measurement to detect errors and decodes the logical qubits.

Qiskit Circuit Code
Python
```python
from qiskit import QuantumCircuit

# Create a circuit with 4 qubits and 4 classical bits
qc = QuantumCircuit(4, 4)

# Encode two logical qubits into four physical qubits using the [[4,2,2]] code

# Prepare the first logical qubit in an arbitrary state |ψ⟩ = α|0⟩ + β|1⟩
# For simplicity, let's prepare it in the state |+⟩
qc.h(0)

# Prepare the second logical qubit in the state |0⟩ (can be any state)
qc.h(1)
qc.p(-1.5708, 1)  # Equivalent to S† gate to create |0⟩ from |+⟩

# Encode the logical qubits into four qubits
qc.cx(0, 2)
qc.cx(1, 2)
qc.cx(0, 3)
qc.cx(1, 3)

# The four qubits are now entangled in a way that protects against single-qubit errors

# Introduce an error on qubit 2 (e.g., a bit-flip error)
qc.x(2)

# Syndrome measurement to detect errors (simplified for demonstration)
qc.cx(0, 2)
qc.cx(1, 2)
qc.measure(2, 2)

qc.cx(0, 3)
qc.cx(1, 3)
qc.measure(3, 3)

# Decode the logical qubits (reverse of encoding)
qc.cx(1, 3)
qc.cx(0, 3)
qc.cx(1, 2)
qc.cx(0, 2)

# Measure the logical qubits
qc.measure([0, 1], [0, 1])
```
Quantum Execution Results
ibm_kyiv
N/A
N/A shots
Execution Notice:

'Failed to run program: \'409 Client Error: Conflict for url: https://api.quantum.ibm.com/runtime/jobs. {"errors":[{"message":"You have reached the limit of 3 pending jobs. Please wait for a job to complete or cancel one before submitting anything new.","code":3458,"solution":"Wait until some previous jobs were finished. You can cancel pending jobs to run new jobs.","more_info":"https://docs.quantum-computing.ibm.com/errors"}]}\''

Raw Result Data
Download Results
Back to Home