# Variational algorithm design

This course teaches how to write variational algorithms: near-term, hybrid-quantum-classical algorithms that are ideal candidates to achieve quantum advantage. Throughout this course, you'll learn each step in the variational algorithm design workflow, tradeoffs associated with each step, and how to use Qiskit Runtime primitives to optimize for speed and accuracy.

This course is intended for individuals who have some experience with quantum computing and want to learn how to write variational algorithms using Qiskit Runtime Primitives. It is also suitable for quantum computing professionals who want to expand their knowledge and skills in the field of variational algorithms.

At the end of this course, you'll be able to test your skills and earn a badge!

## Lessons

- Simplified hybrid workflow
- Variational theorem
- Summary

- Default state
- Classical reference state
- Quantum reference state
- Constructing Reference States using template circuits
- Application-specific reference states
- Summary

- Parameterized Quantum Circuits
- Variational Form and Ansatz
- Heuristic ansatze and trade-offs
- Problem-specific ansatze
- Summary

- Primitives
- Cost functions
- Measurement Strategy: Speed vs Accuracy
- Summary

- Local and Global Optimizers
- Gradient-Based and Gradient-Free Optimizers
- Barren Plateaus
- Summary

- Variational Quantum Eigensolver (VQE)
- Subspace Search VQE (SSVQE)
- Variational Quantum Deflation (VQD)
- Quantum Sampling Regression (QSR)
- Summary

- Problem definitions
- Custom VQE
- Experimenting to improve speed and accuracy
- VQD example
- Quantum Chemistry: Ground State and Excited Energy Solver
- Optimization: Max-Cut
- Summary