This paper introduces an efficient algorithm for persistence diagram computation, given an input piecewise linear scalar field f defined on a d-dimensional simplicial complex K, with $d \leq 3$. Our method extends the seminal "PairCells" algorithm by introducing three main accelerations. First, we express this algorithm within the setting of discrete Morse theory, which considerably reduces the number of input simplices to consider. Second, we introduce a stratification approach to the problem, that we call "sandwiching". Specifically, minima-saddle persistence pairs ($D_0(f)$) and saddle-maximum persistence pairs ($D_{d-1}(f)$) are efficiently computed by respectively processing with a Union-Find the unstable sets of 1-saddles and the stable sets of (d-1)-saddles. This fast processing of the dimensions 0 and (d-1) further reduces, and drastically, the number of critical simplices to consider for the computation of $D_1(f)$, the intermediate layer of the sandwich. Third, we document several performance improvements via shared-memory parallelism. We provide an open-source implementation of our algorithm for reproducibility purposes. We also contribute a reproducible benchmark package, which exploits three-dimensional data from a public repository and compares our algorithm to a variety of publicly available implementations. Extensive experiments indicate that our algorithm improves by two orders of magnitude the time performance of the seminal "PairCells" algorithm it extends. Moreover, it also improves memory footprint and time performance over a selection of 14 competing approaches, with a substantial gain over the fastest available approaches, while producing a strictly identical output. We illustrate the utility of our contributions with an application to the fast and robust extraction of persistent 1-dimensional generators on surfaces, volume data and high-dimensional point clouds.
翻译:本文引入了一种高效的“ 坚持性图计算算法 ”, 以一个输入精密线性线性卡路里域 f 定义, 以美元为单位, 使用 $d\ leq 3$ 。 我们的方法通过引入三个主要加速度, 扩展“ PairCells” 原始算法 。 首先, 我们在离散的 Morse 理论的设置中表达这种算法, 这会大大降低要考虑的输入性卡路里数。 第二, 我们引入了一种分解的方法, 我们称之为“ 擦拭 ” 。 具体地说, 迷性粘性对齐( D_ 0 (f)$ ) 和 顶层 耐久耐久的耐久的对立式对立式对立式对立式对立式对立式对立式对立式对立式对立式对立式对立式对调。 我们用联盟式的“ add- d-1 (f) $ (f) $ (f) $ (D) $ (D) $ (dal $ (f) $ (f) $ (d) $ (d) ) $ (和 ) ) lead- s cal laver lave lave lave lax lax pax y ($ ($ (d) (d) (d) (f) (f) (f) (f) (f) (f) (f) ) ) (d) lad) (f) (f) (f) (t (f) (f) (f) (f) (f) (t) (t (f) (t (f) (f) ) ) ) ) (t (f) (f) ) ) (t) (tal) ) (t (tal) (tal) (t (t (f) (f) (f) (tal) (f) (f) (t) lad) lad) (d) (d)) (t (f) (f) ) (t (t (t (t (t (f) (f) (f) (f) (f)