Fundamentals of Quantum Computing

This post summarizes the core concepts of quantum computing, starting from classical reversible gates and moving through the fundamental postulates of quantum states and dynamics.

1. Classical Gates and Reversible Computing

1.1 Universality

A set of gates is called universal if it can compute any function f:{0,1}n{0,1}.

image-5.png

1.2 The Need for Reversibility

Standard classical gates like AND are not reversible because you cannot uniquely determine the inputs x,y from the output xy. In quantum computing, evolution must be reversible.

image-4.png

image-6.png

2. Postulates of Quantum Computing: States

2.1 The Qubit

A qubit is represented by a complex vector in a two-dimensional Hilbert space:

|ψ=(αβ)=α|0+β|1

where α,βC are amplitudes satisfying the normalization condition |α|2+|β|2=1.

2.2 The Bloch Sphere

Any single-qubit state can be visualized as a point on the Bloch Sphere using the following parameters:

|ψ=cosθ2|0+eiϕsinθ2|1

where θ and ϕ are real numbers defining the point's coordinates.

image-3.png

3. Quantum Dynamics

The time evolution of a closed quantum system is described by a Unitary Transformation.

Common Single-Qubit Gates

4. Composite Systems and Entanglement

4.1 Tensor Products

The state space of a composite system is the tensor product of its individual component spaces. For example, if we have two qubits in states |ψ and |ϕ, the combined state is |ψ|ϕ (often written as |ψϕ).

4.2 Quantum Entanglement

Practical Implementation

from qiskit import QuantumCircuit
from qiskit.quantum_info import Statevector

# 1. Create a Bell State (Entangled State)
qc = QuantumCircuit(2)
qc.h(0)     # Apply Hadamard to the first qubit
qc.cx(0, 1) # Apply CNOT (controlled by q0, targeting q1)

# View the statevector
state = Statevector.from_instruction(qc)
print("Bell State Vector:")
print(state.data)

# 2. Apply a gate to a subsystem: (I ⊗ X) acting on the Bell state
qc.x(1) 
final_state = Statevector.from_instruction(qc)
print("\nState after (I ⊗ X):")
print(final_state.data)