Given a guess or ansatz, the quantum processor calculates the expectation value of the system with respect to an observable, often the Hamiltonian, and a classical optimizer is used to improve the guess.
The algorithm is based on the variational method of quantum mechanics.
It was originally proposed in 2014, with corresponding authors Alberto Peruzzo, Alán Aspuru-Guzik and Jeremy O'Brien.
[a][1][2] The algorithm has also found applications in quantum machine learning and has been further substantiated by general hybrid algorithms between quantum and classical computers.
[3] It is an example of a noisy intermediate-scale quantum (NISQ) algorithm.
The objective of the VQE is to find a set of quantum operations that prepares the lowest energy state (or minima) of a close approximation to some target quantity or observable.
While the only strict requirement for the representation of an observable is its efficiency in estimating its expectation values, it is often more straightforward if the operator has a compact or simple expression in terms of Pauli operators or tensor products of Pauli operators.
For a fermionic system, it is often most convenient to qubitize: that is to write the many-body Hamiltonian of the system using second quantization, and then use a mapping to write the creation-annihiliation operators in terms of Pauli operators.
is written in terms of Pauli operators and irrelevant states are discarded (finite-dimensional space), it would consist of a linear combination of Pauli strings
consisting of tensor products of Pauli operators (for example
Based on the coefficients, the number of Pauli strings can be reduced in order to optimize the calculation.
[7] The choice of ansatz state depends on the system of interest.
A common method to obtain a valid ansatz is given by the unitary coupled cluster (UCC) framework and its extensions.
[8] If the ansatz is not chosen adequately the procedure may halt at suboptimal parameters that do not correspond to a minima.
[5] The ansatz can be set to an initial trial function to start the algorithm.
Another variant of the ansatz circuit is the hardware efficient ansatz, which consists of sequence of 1 qubit rotational gates and 2 qubit entangling gates.
This step corresponds to measuring each qubit in the axis provided by the Pauli string.
If measurement in the z-axis is only possible, then Clifford gates can be used to transform between axes.
Using classical algorithms in a digital computer, the parameters of the ansatz can be optimized.
For this minimization, it is necessary to find the minima of a multivariable function.
to only a subset of possible n-qubit states which is based on conventional physics, chemistry and quantum mechanics knowledge.
The adjoining figure illustrates the high level steps in the VQE algorithm.
controls the subset of possible states that can be created, and the parameter
where the number of parameters chosen are enough to lend the algorithm expressive power to compute the ground state of the system, but not too big to increase the computational cost of the optimization step.
By running the circuit many times and constantly updating the parameters to find the global minima of the expectation value of the desired observable, one can approach the ground state of the given system and store it in a quantum processor as a series of quantum gate instructions.
In case of gradient descent, its required to minimize a cost function
Thus, The above result has interesting properties as: As of 2022, the variational quantum eigensolver can only simulate small molecules like the helium hydride ion[1] or the beryllium hydride molecule.
[11] Larger molecules can be simulated by taking into account symmetry considerations.
In 2020, a 12-qubit simulation of a hydrogen chain (H12) was demonstrated using Google's Sycamore quantum processor.
[12] The quantum circuit shown here is from a simple example of how the VQE algorithm can be implemented in Python using Qiskit, an open-source quantum computing software development framework by IBM.