expected to work well when the stochastic ansatz captures the behavior of the physical system under study, as will be further illustrated by numerical examples. As another goal of the manuscript, we hope that the abstraction of the ideas developed in the physics and chemistry literature would help transferring these techniques for high dimensional computational challenges we face in other areas. Indeed, the unified framework of our method can be applied to any linear evolution problems in high dimensions.

Algorithm
=========

Quantum kinetic Monte Carlo algorithm
-------------------------------------

Before we turn to the specific quantum many-body spin dynamics, let us present the general framework of the algorithm. This is an abstraction of the ideas behind the surface hopping algorithms developed in our previous works [@LuZhou2016; @CaiLu2017].

Given a Hamiltonian $H$ on the Hilbert space ${\mathcal{H}}$, the quantum kinetic Monte Carlo algorithm starts with a choice of a decomposition of the Hamiltonian $$\label{eq:decomposition}
  H = H_{\text{easy}} + H_{\text{hard}},$$ together with a class of states ${\mathcal{A}} \subset {\mathcal{H}}$. We require that

1.  Any vector $\ket{\Psi} \in {\mathcal{A}}$ is easy to represent (i.e., we do not need to store directly the full vector, but only a parametrized form of it). In general, ${\mathcal{A}}$ might 