For my SURP 2024 research with Professor Daniel Frishberg, I wrote code for the Markov Chain Monte Carlo, Glauber dynamics, which randomly samples independent sets on trees. I implemented Glauber dynamics in C++, and wrote code that uses the sampler to estimate the total number of independent sets in a tree. I also wrote code for finding the total number of independent sets in the tree using dynamic programming, in order to compare the Markov chain counter's performance against the actual value. This was intended as empirical evidence of Glauber dynamics' theoretical runtime.
We ran into difficulties on running large enough experiments, so I rewrote the code such that it could be used on San Diego's The Expanse supercomputer using MPI programming.
I also wrote code for randomly generating trees of size n using Prufer sequences.