As a first step in my undergraduate research on simulating physical quantum annealing, I wrote some Monte Carlo solver. I wrote my first implementation of a path-integral Quantum Monte Carlo (PI-QMC) in Python using numpy linear algebra operations. The code quality was not great though and it was not particularly nice to use. So a few weeks ago, I decided to re-write it as something I would be happy to share with others, so here it is!
In order to plot things in 2D, I collapsed the configuration space of the problem into sequential integers, from first explored to last. For that reason, the exploration takes place left to right, while occasionally a walker will wander left to re-check a place it has already been. This seemed like the most elegant way of animating an N! dimensional configuration space.
All the animations are available on this playlist. Or you can generate your own with the scripts provided with my solvers. =)
The time-steps in this animation happen only on move acceptances, so instead of things slowing down, you will notice that the schedule parameter countdown text starts to make jumps downward.
Try Some Solvers!
Aside from my re-written solvers on Github, there are very good free solvers out there like CASINO. My solvers are not optimized and are more useful for being readable, as I learned a great deal by writing them and that was what I wanted to share with others. My original research versions are still on Github in their own branch, but I don’t recommend using them. =)
On top of CASINO and my own code, the spinglass server is a great source of sample problem data with solutions.