QAOA Mixer Ansatz
Overview
The Quantum Approximate Optimization Algorithm (QAOA) uses alternating cost and mixer layers. This circuit explores different mixer designs for various problem constraints.
| Property | Value |
|---|---|
| Category | Ansatz |
| Difficulty | Advanced |
| Framework | Cirq |
| Qubits | 4 |
| Depth | O(p × n) |
| Gates | H, RX, RZZ, ISWAP |
Structure
CODE|ψ(γ,β)⟩ = [Π_p U_M(β_p) U_C(γ_p)] |+⟩^⊗n
Where:
- U_C(γ) = exp(-iγC): Cost unitary
- U_M(β) = exp(-iβB): Mixer unitary
Mixer Types
Standard X Mixer
CODEB = Σ X_i U_M(β) = Π exp(-iβX_i) = Π RX(2β)
Explores all states freely.
XY Mixer
CODEB = Σ (X_i X_{i+1} + Y_i Y_{i+1})
Preserves Hamming weight - for constrained problems.
Circuit Diagram
CODE┌───┐ ┌─────────────┐ ┌────────┐ q_0: ┤ H ├─┤ Cost(γ) ├─┤ RX(2β) ├─── ├───┤ │ │ ├────────┤ q_1: ┤ H ├─┤ ZZ gates ├─┤ RX(2β) ├─── ├───┤ │ │ ├────────┤ q_2: ┤ H ├─┤ ├─┤ RX(2β) ├─── ├───┤ └─────────────┘ ├────────┤ q_3: ┤ H ├─────────────────┤ RX(2β) ├─── └───┘ └────────┘
Running the Circuit
PYTHONfrom circuit import run_circuit # Standard mixer result = run_circuit(n_qubits=4, p=2, mixer='x') # XY mixer for constrained problems result = run_circuit(n_qubits=4, p=2, mixer='xy') print(f"Best cut: {result['best_cut_found']}") print(f"Approx ratio: {result['approximation_ratio']:.2%}")
Expected Performance
| p | Approx Ratio |
|---|---|
| 1 | ~0.69 |
| 2 | ~0.79 |
| 3 | ~0.84 |
| ∞ | 1.0 |
Applications
- MaxCut: Graph partitioning
- Scheduling: With XY mixer
- Routing: TSP, VRP
- Portfolio: Asset selection