-
Notifications
You must be signed in to change notification settings - Fork 0
Tutorial 04 Quantum Variational Algorithms
QUBO and Variational Quantum Eigensolvers (VQE) for optimization problems.
This tutorial demonstrates the formulation of Quadratic Unconstrained Binary Optimization (QUBO) problems as ground state problems and their solution using Variational Quantum Eigensolvers (VQE). You'll implement a VQE solver for the Max-Cut problem using Qiskit's EfficientSU2 ansatz and GSLS optimizer.
Location: quantum_variational_algorithms/
Notebook: VA0_qubo_and_vqe.ipynb
Framework: Qiskit
Difficulty: 🟡 Intermediate
Estimated Time: 3-4 hours
By completing this tutorial, you will be able to:
- Formulate QUBO problems as ground state problems
- Implement VQE using Qiskit framework
- Solve optimization problems using quantum algorithms
- Use EfficientSU2 ansatz and GSLS optimizer
- Apply quantum algorithms to Max-Cut problem
-
Variational Quantum Algorithms:
- Understanding of VQE basics
- Parameterized quantum circuits
- Expectation value minimization
-
Optimization Theory:
- Objective functions
- Optimization algorithms
- Convergence criteria
-
QUBO Problems:
- Quadratic Unconstrained Binary Optimization
- Problem formulation
- Max-Cut problem (helpful)
-
Graph Theory:
- Basic graph concepts (for Max-Cut application)
- Vertices and edges
- Tutorial 01: Variational optimization experience
- Qiskit: Basic Qiskit knowledge (helpful but tutorial is self-contained)
- Quantum Optimization: Understanding of quantum optimization applications
- Recommended: Tutorial 01 (Minimize Expectation Value)
- Foundation for: Advanced optimization applications
- Builds on: Variational quantum circuit concepts
VQE is a hybrid quantum-classical algorithm for finding the ground state energy of a Hamiltonian:
-
Prepare Parameterized State:
$| \psi(\theta) \rangle$ using ansatz -
Measure Expectation Value:
$\langle \psi(\theta) | H | \psi(\theta) \rangle$ -
Optimize Parameters:
$\min_\theta \langle \psi(\theta) | H | \psi(\theta) \rangle$ - Iterate: Until convergence
Quadratic Unconstrained Binary Optimization problems have the form:
where:
-
$x_i \in {0,1}$ are binary variables -
$Q_{ij}$ is the quadratic coefficient matrix -
$c_i$ are linear coefficients
QUBO problems can be formulated as finding the ground state of an Ising Hamiltonian:
where
The Max-Cut problem:
-
Given: An undirected graph
$G = (V, E)$ - Goal: Partition vertices into two sets to maximize edges between sets
- QUBO Formulation: Can be expressed as a QUBO problem
- VQE Application: Solve using variational quantum eigensolver
- Structure: Hardware-efficient ansatz with single-qubit rotations and entangling gates
- Expressivity: Can represent a wide variety of quantum states
- Efficiency: Optimized for near-term quantum hardware
- Type: Gradient-free optimizer
- Method: Global search with local search refinement
- Advantages: Robust to noise, good for quantum optimization
The implementation consists of:
- Problem Formulation: Define QUBO problem (Max-Cut example)
- Hamiltonian Construction: Convert QUBO to Ising Hamiltonian
- Ansatz Selection: Choose EfficientSU2 ansatz
- Optimizer Setup: Configure GSLS optimizer
- VQE Execution: Run variational optimization
- Result Analysis: Extract solution and verify
- Convert QUBO coefficients to Ising Hamiltonian terms
- Map binary variables to Pauli-Z operators
- Construct quantum operator representation
-
Ansatz:
EfficientSU2with appropriate number of qubits and layers -
Optimizer:
GSLSwith convergence criteria - Initial Parameters: Random or specified initial values
- Evaluate expectation value
- Update parameters using optimizer
- Check convergence
- Return optimized state and energy
The notebook uses Qiskit to:
- Formulate QUBO problems
- Construct quantum Hamiltonians
- Implement VQE algorithm
- Optimize and analyze results
The following Python packages are required:
-
numpy- Numerical operations -
qiskit- Quantum circuit construction and VQE implementation -
qiskit-optimization- QUBO problem formulation
Installation:
The numpy package is included in the top-level requirements.txt. The Qiskit packages (qiskit and qiskit-optimization) are optional dependencies that will be automatically installed by the notebook if not already present.
Manual Installation:
pip install qiskit qiskit-optimizationAutomatic Installation: The notebook will handle installation automatically when executed if packages are missing.
cd quantum_variational_algorithmsjupyter notebook VA0_qubo_and_vqe.ipynbOr in JupyterLab:
jupyter lab VA0_qubo_and_vqe.ipynb- Review QUBO formulation - Understand problem structure
- Examine Hamiltonian construction - See QUBO to Ising conversion
- Study VQE setup - Understand ansatz and optimizer
- Run optimization - Execute VQE algorithm
- Analyze results - Extract solution and verify
- Try different QUBO problems
- Modify ansatz parameters (layers, entanglement)
- Experiment with different optimizers
- Test on different graph structures (for Max-Cut)
-
Optimization Results:
- Optimized parameters
- Ground state energy
- Convergence information
- Number of iterations
-
Solution:
- Binary variable assignments (for QUBO)
- Max-Cut partition (for Max-Cut problem)
- Objective function value
-
Understanding:
- How QUBO problems map to quantum Hamiltonians
- VQE workflow and optimization
- Application to real optimization problems
- QUBO problems can be solved using quantum algorithms
- VQE is effective for finding ground states
- EfficientSU2 ansatz is suitable for optimization
- Quantum algorithms can tackle classical optimization problems
Solution:
- Install Qiskit:
pip install qiskit qiskit-optimization - Check Qiskit version:
python -c "import qiskit; print(qiskit.__version__)" - Update if needed:
pip install --upgrade qiskit qiskit-optimization
Solution:
- Increase maximum iterations
- Adjust optimizer parameters
- Try different initial parameter values
- Check problem formulation (ensure it's well-posed)
- Consider different ansatz structures
Solution:
- Reduce number of shots (if using hardware/simulator with shots)
- Use faster simulator backend
- Reduce ansatz depth (fewer layers)
- Optimize for smaller problem sizes initially
Solution:
- Review QUBO problem structure
- Study Max-Cut problem formulation
- Understand Ising Hamiltonian mapping
- See Theory and Background for optimization theory
Solution:
- Understand what ground state energy represents
- Verify solution satisfies constraints
- Compare with classical solutions (if available)
- Check convergence criteria
- VQE Original: Peruzzo et al., "A variational eigenvalue solver on a photonic quantum processor"
- QUBO Applications: Various optimization problem papers
- Max-Cut: Goemans-Williamson algorithm and quantum approaches
- See Academic Resources for more references
- Tutorial 01 - Minimize Expectation Value: Foundation for variational optimization
- Tutorial 02 - Quantum Walk: Graph-based algorithms
- Tutorial 05 - Coupled Harmonic Oscillators: Advanced quantum simulation
- Qiskit VQE Documentation - Framework reference
- Qiskit Optimization - QUBO tools
- Qiskit Textbook - VQE - Additional examples
- QAOA (Quantum Approximate Optimization Algorithm)
- Different ansatz structures
- Error mitigation techniques
- Hardware-specific optimizations
- Mohammadreza Khellat - Primary author and maintainer
For questions or contributions, see the Contributing Guide.
This tutorial demonstrates quantum variational algorithms for optimization. You've learned:
✅ How to formulate QUBO problems as ground state problems
✅ How to implement VQE using Qiskit
✅ How to solve optimization problems with quantum algorithms
✅ Application to Max-Cut problem
Next Steps:
- Explore other QUBO problems
- Try QAOA for comparison
- Experiment with different ansatz structures
- Review Framework Guide for Qiskit details
- Consider Tutorial 05 for advanced quantum simulation
Return to: Tutorial Catalog | Home