High dimensional sampling is an important computational tool in statistics and other computational disciplines, with applications ranging from Bayesian statistical uncertainty quantification, metabolic modeling in systems biology to volume computation. We present $\textsf{PolytopeWalk}$, a new scalable Python library designed for uniform sampling over polytopes. The library provides an end-to-end solution, which includes preprocessing algorithms such as facial reduction and initialization methods. Six state-of-the-art MCMC algorithms on polytopes are implemented, including the Dikin, Vaidya, and John Walk. Additionally, we introduce novel sparse constrained formulations of these algorithms, enabling efficient sampling from sparse polytopes of the form $K_2 = \{x \in \mathbb{R}^d \ | \ Ax = b, x \succeq_k 0\}$. This implementation maintains sparsity in $A$, ensuring scalability to high dimensional settings $(d > 10^5)$. We demonstrate the improved sampling efficiency and per-iteration cost on both Netlib datasets and structured polytopes. $\textsf{PolytopeWalk}$ is available at github.com/ethz-randomwalk/polytopewalk with documentation at polytopewalk.readthedocs.io .
翻译:高维采样是统计学及其他计算学科中的重要计算工具,其应用范围涵盖贝叶斯统计不确定性量化、系统生物学中的代谢建模乃至体积计算。本文提出 $\textsf{PolytopeWalk}$,一个专为多胞形上均匀采样设计的新型可扩展Python库。该库提供端到端解决方案,包含面部约简与初始化方法等预处理算法。库中实现了六种多胞形上的前沿MCMC算法,包括Dikin Walk、Vaidya Walk与John Walk。此外,我们提出了这些算法的新型稀疏约束形式,使其能够高效采样形如 $K_2 = \{x \in \mathbb{R}^d \ | \ Ax = b, x \succeq_k 0\}$ 的稀疏多胞形。该实现保持了矩阵 $A$ 的稀疏性,确保算法可扩展至高维场景 $(d > 10^5)$。我们在Netlib数据集与结构化多胞形上验证了其提升的采样效率与单次迭代计算成本。$\textsf{PolytopeWalk}$ 可通过 github.com/ethz-randomwalk/polytopewalk 获取,文档位于 polytopewalk.readthedocs.io。