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.
翻译:$\textit{阿贝尔沙堆}$模型是探索$\textit{自组织临界性}$的经典模型。尽管沙堆问题的其他方面已有大量研究,但在高效计算终端状态(即$\textit{沙堆预测}$问题)方面仍成果有限。针对具有特殊结构的图,我们提出了计算沙堆实例终端构型的算法:在树上时间复杂度为$O(n \log n)$,在路径上为$O(n)$,其中$n$为顶点数。我们的算法改进了此前树上的最优运行时间$O(n \log^5 n)$ [Ramachandran-Schild SODA '17] 和路径上的$O(n \log n)$ [Moore-Nilsson '99]。为此,我们通过直接计算每个顶点的激发次数,超越了对单个事件的模拟。该计算过程利用可分裂二叉搜索树进行加速。此外,我们还给出了团上的$O(n)$时间算法和伪树上的$O(n \log^2 n)$时间算法。在一般图上,我们提出了一种适用于芯片数量$N$可任意大的快速算法,其时间复杂度具有$\log N$依赖关系,优于纯模拟算法中的$\mathtt{poly}(N)$依赖关系。该算法在正则图、扩展图和超立方体等多种图结构上均实现了更优性能。我们还提供了一种归约方法,可将输入沙堆分解为若干更小实例并分别求解。