Here is the implementation of the variational quantum Monte Carlo for low-energy states in mini-BMN matrix models. The wavefunction ansatz consists of generative flows for bosons and superposition of free states for fermions. For more details please see arXiv:1906.08781.
I recommend Anaconda (https://www.anaconda.com/) for environment setup. Please install Anaconda from the website and create an environment as follows:
- Run the command
conda create -n tf tensorflow=1.13 tensorflow-probability=0.6.0 matplotlib
to create an environment namedtf
(feel free to use other names); - Activate the environment by
conda activate tf
; - There are several bugs in implementations of gradients for complex matrices in TensorFlow 1.13. As a quick fix, run
pip show tensorflow
to see where the TensorFlow packages are located, and replacetensorflow/python/ops/linalg_grad.py
in the TensorFlow directory by the copy in this folder; - I recommend running the tests
python tests.py
to make sure that the environment is setup properly. All tests should pass (in ~1h) and you will seeOK
after the command finishes.
Demonstration code is in demo.py
; please check out the source code for its arguments and usage. As an example, the command python demo.py maf 2 1.0 -f 2
will search for the ground state of the N = 2
and nu = 1.0
mini-BMN with -f 2
fermions, using Masked Autoregressive Flows.
algebra.py
is utility code for Lie groups and algebrasbent_identity.py
includes an implementation of the bent-identity nonlinearitydemo.py
is for demonstrationdist.py
includes implementations of probability distributionsent.py
is used to compute entanglement of the wavefunctionlinalg_grad.py
should be replaced into the TensorFlow libraryobs.py
includes observables and hamiltonianstests.py
is for unit teststrain.py
includes procedures for training neural networkswavefunc.py
implements wavefunction ansatzfig/
includes temporary files of plots for probability distributions from testsresults/
is where trained parameters are stored in filesdata/
is for additional data files (spin matrices etc)