This is a Python implementation of neural network quantum state introduced in the paper "Solving the quantum many-body problem with artificial neural networks".
Required library: Numpy, Numba, MPI4Py, Matplotlib
Hamiltonian
Trial wave function
Variational energy
Jastrow wave function with single parameter
On a 4 sites chain, the variational energy can be calculated analytically. Here is the comparison of the exact results with variational Monte Carlo results.
Gradient descent:
Define
Then
Jastrow wave function
Restricted Boltzman machine wave function
All the parameters in the wave function are complex numbers.
In the modified natural gradient descent method, the Fubini-study metric, which is the complex-valued form of Fisher information, is used to measure the "distance" between wave functions |ψ〉 and |φ〉. NGD can greatly improve the convengence speed as shown below.