Table of Contents
- Introduction
- What Are Quantum Gates?
- Setting Up Qiskit
- Creating a Quantum Circuit
- Single-Qubit Gates
5.1. Identity Gate (I)
5.2. Pauli Gates (X, Y, Z)
5.3. Hadamard Gate (H)
5.4. Phase Gates (S, T)
5.5. Rotation Gates (RX, RY, RZ) - Two-Qubit Gates
6.1. Controlled NOT Gate (CX or CNOT)
6.2. Controlled-Z Gate (CZ)
6.3. SWAP Gate
6.4. iSWAP and Controlled Gates - Multi-Qubit Gates
7.1. Toffoli (CCX)
7.2. Fredkin (CSWAP) - Gate Syntax in Qiskit
- Circuit Visualization
- Running and Measuring the Circuit
- Simulating Gate Operations
- Exercises: Combine Gates to Create Quantum States
- Understanding Gate Matrices
- Gate Reversibility and Unitarity
- Hardware Considerations
- Using Decomposition to Build Complex Gates
- Saving and Loading Circuits
- Best Practices for Gate Usage
- Advanced Reading and Next Steps
- Conclusion
1. Introduction
Quantum gates are the fundamental operations in quantum computing. They transform qubit states in ways that reflect the unique principles of quantum mechanics. Qiskit provides an accessible way to use and understand these gates.
2. What Are Quantum Gates?
Quantum gates are unitary transformations that operate on qubits. Unlike classical logic gates, they are reversible and allow for superposition and entanglement.
3. Setting Up Qiskit
pip install qiskit
4. Creating a Quantum Circuit
from qiskit import QuantumCircuit
qc = QuantumCircuit(2) # Two qubits
5. Single-Qubit Gates
5.1. Identity Gate (I)
qc.i(0)
Does nothing to the qubit; useful as a placeholder.
5.2. Pauli Gates
qc.x(0) # Bit flip
qc.y(0) # Bit + phase flip
qc.z(0) # Phase flip
5.3. Hadamard Gate (H)
qc.h(0)
Creates superposition: \( |0
angle
ightarrow rac{1}{\sqrt{2}}(|0
angle + |1
angle) \)
5.4. Phase Gates (S, T)
qc.s(0) # 90° phase
qc.t(0) # 45° phase
5.5. Rotation Gates
qc.rx(theta, 0)
qc.ry(theta, 0)
qc.rz(theta, 0)
Rotate qubit around X, Y, or Z axis.
6. Two-Qubit Gates
6.1. Controlled-NOT (CX or CNOT)
qc.cx(0, 1)
Flips qubit 1 if qubit 0 is |1⟩
6.2. Controlled-Z (CZ)
qc.cz(0, 1)
6.3. SWAP
qc.swap(0, 1)
Swaps the states of two qubits.
6.4. iSWAP and Controlled Gates
qc.iswap(0, 1)
qc.cp(pi/2, 0, 1) # Controlled phase gate
7. Multi-Qubit Gates
7.1. Toffoli (CCX)
qc.ccx(0, 1, 2)
AND-controlled NOT gate; flips qubit 2 only if 0 and 1 are |1⟩.
7.2. Fredkin (CSWAP)
qc.cswap(0, 1, 2)
Swaps qubits 1 and 2 only if qubit 0 is |1⟩.
8. Gate Syntax in Qiskit
Each gate has a standard Python function:
qc.h(qubit)
qc.cx(control, target)
qc.rz(theta, qubit)
9. Circuit Visualization
qc.draw('mpl')
Visualizes circuit as a gate diagram.
10. Running and Measuring the Circuit
from qiskit import Aer, execute
qc.measure_all()
sim = Aer.get_backend('qasm_simulator')
result = execute(qc, sim, shots=1024).result()
counts = result.get_counts()
print(counts)
11. Simulating Gate Operations
Use statevector_simulator
or unitary_simulator
for full wavefunction or gate matrix:
from qiskit.quantum_info import Statevector
print(Statevector.from_instruction(qc))
12. Exercises: Combine Gates to Create Quantum States
- Create a Bell state with H and CX
- Apply rotations to visualize on Bloch sphere
13. Understanding Gate Matrices
All gates are unitary matrices (U†U = I). Example:
\[
X = egin{bmatrix}0 & 1 \ 1 & 0\end{bmatrix}
\quad
H = rac{1}{\sqrt{2}}egin{bmatrix}1 & 1 \ 1 & -1\end{bmatrix}
\]
14. Gate Reversibility and Unitarity
All quantum gates are reversible by definition.
15. Hardware Considerations
- CX is often noisier than single-qubit gates
- Real hardware may decompose complex gates into native basis
16. Using Decomposition to Build Complex Gates
qc.unitary(U_matrix, [0], label='U')
17. Saving and Loading Circuits
qc.qasm(filename='my_circuit.qasm')
18. Best Practices for Gate Usage
- Minimize CX and multi-qubit gates
- Optimize circuit depth
- Use transpiler for backend optimization
19. Advanced Reading and Next Steps
- Learn about SU(2) decomposition
- Explore parameterized circuits and variational gates
20. Conclusion
Mastering basic quantum gates is essential to building and understanding quantum algorithms. Qiskit provides a powerful and intuitive framework to explore them through real and simulated execution.