The $\textit{Abelian Sandpile}$ model is a well-known model used in exploring $\textit{self-organized criticality}$. Despite a large amount of work on other aspects of sandpiles, there have been limited results in efficiently computing the terminal state, known as the $\textit{sandpile prediction}$ problem. On graphs with special structures, we present algorithms that compute the terminal configurations for sandpile instances in $O(n \log n)$ time on trees and $O(n)$ time on paths, where $n$ is the number of vertices. Our algorithms improve the previous best runtime of $O(n \log^5 n)$ on trees [Ramachandran-Schild SODA '17] and $O(n \log n)$ on paths [Moore-Nilsson '99]. To do so, we move beyond the simulation of individual events by directly computing the number of firings for each vertex. The computation is accelerated using splittable binary search trees. In addition, we give algorithms in $O(n)$ time on cliques and $O(n \log^2 n)$ time on pseudotrees. On general graphs, we propose a fast algorithm under the setting where the number of chips $N$ could be arbitrarily large. We obtain a $\log N$ dependency, improving over the $\mathtt{poly}(N)$ dependency in purely simulation-based algorithms. Our algorithm also achieves faster performance on various types of graphs, including regular graphs, expander graphs, and hypercubes. We also provide a reduction that enables us to decompose the input sandpile into several smaller instances and solve them separately.
翻译:暂无翻译