Here we collect projectq-based circuit simulation tools and optimization routines for variational quantum eigensolvers, which we used for our paper on the natural gradient descent optimizer.
The code uses standard python packages and projectQ, see requirements.txt for versions of these packages with which the code was tested.
The collection contains multiple modules:
- Free fermion simulation of the QAOA ansatz on the transverse field Ising model
- Quantum computing circuits using projectQ as backend. Various useful methods for optimization routines are available
- To be included: Optimizers: Vanilla Gradient Descent (GD), Adam, Quantum Natural Gradient Descent (QNG/NatGrad)
- A decoupled version of the Fubini-Study matrix implementation in the circuit class. This is the place to look at in order to review our implementation as it is self-contained.
- Tests are provided for the functionalities via pytest
Have a look at the interactive notebooks to explore the functionalities implemented so far. We recommend cloning the repository and starting an own notebook to assure proper rendering of the formulae in the comments.