Skip to content

7. Stability Theory

函数“时间”序列

持续图上的度量以及稳定性

有两种距离,Wasserstein-p 距离和 Bottleneck 距离。

对于两个点集 XY,不妨假设两者的点数一样多(假设不一样多,我们可以往点数较少的一方,在对角线上加点,毕竟对角线上相当于出生即消亡,可以随便加)。

那么就有(μXY 的一个双射):

  • bottleneck(X,Y)=Wasserstein-(X,Y)=infμsupxX\normxμ(x)
  • Wasserstein-p(X,Y)=infμ(xX\normxμ(x)p)1p

结论:如果对点云/函数做一个小扰动,那么扰动之后生成的持续同调的 PD 图的两种度量,和扰动之前的相比,变化也很小。

度量的计算以及加速算法

如果希望在 PD 图上,计算两个点集之间的距离,可以使用 Wasserstein Distance 或者 Bottleneck Distance。

不管使用哪一种,本质上还是最优化问题,而且找的是一个双射 μ:XY


因此,可以规约为一个最优二分图匹配问题。具体来说:

如果采用的是 Wasserstein-p 距离,那么对于任意 xX,yY: $$ e_p(x,y) = \begin{cases} & \norm{x-y}_\infty^p \text{ if x, y are neither on diagonal} \newline & \abs{x_x - x_y}^p(\text{or }\abs{y_x - y_y})^p \text{ if one of y or x is on diagonal} \newline & 0 \text{ if both on diagnal} \end{cases} $$ 目标是:找二分图上的一个完美匹配,使得权重之和最小。

如果采用的 bottleneck,那么就是: $$ e_{\text{bottleneck}}(x,y) = \begin{cases} & \norm{x-y}_\infty \text{ if x, y are neither on diagonal} \newline & \abs{x_x - x_y}(\text{or }\abs{y_x - y_y}) \text{ if one of y or x is on diagonal} \newline & 0 \text{ if both on diagnal} \end{cases} $$ 目标是:找二分图上的一个完美匹配,使得最大权重最小。


对于 bottleneck(最大权重最小)的问题,不难看出问题是单调的,因此可以采用二分法去做。

具体流程:

  • 将所有边长从大到小排个序
  • 从边长中位数开始,以二分的方式
    • 删去大于该边长的所有边
    • 试图求一个完美匹配
    • 如果能够求出来,就说明最大权重可能还可以更小,就去搜索 a+m2
    • 如果求不出来了,就说明最大权重必须更大,就去搜索 b+m2
    • 直到“自己能够求出来,比自己小的权重中最大的权重求不出来”为止,此时,自己的权重就是答案

算法时间复杂度(边数为 n2):

  1. 排序:O(n2logn)
  2. 二分查找:O(lognDinic)
  3. Dinic: O(n2.5)

因此,时间复杂度就是 O(n2.5logn)


对于 Wasserstein,就是求二分图完美匹配最小流。具体算法是匈牙利算法的一个变种,这里只把图贴上来,因为目前太困了就先不管了