当前位置: 首页 > news >正文

持续同调文章阅读(四)

持续同调文章阅读(四)

原文:Afra Zomorodian and Gunnar Carlsson. Computing Persistent Homology. Discrete Comput Geom 33:249–274 (2005). DOI: 10.1007/s00454-004-1146-y.

这篇2004年的文章是划时代的,Zomorodian和Carlsson研究了过滤的单纯复形的同调,并给出了在主理想整环下计算持续同调的算法,广泛应用至今。本文就这篇文章提到的在域上计算的算法做一个简单分析(对应到原文的第四章“Algorithm for Fields”),记号比较多,这里符号都沿用文章中的,含义不再赘述,具体非常建议阅读原文。我这篇阅读笔记主要是对算法的具体过程有个更详细的阐述。
构造算法是基于下面两个引理。

Lemma4.1(阶梯型): 列阶梯型的主元和标准型对角元相同。此外,两形式中主行基元的次数相同。

证明: 根据我们的排序,行基元 e^i\hat{e}_ie^i 的次数按行从上至下依次递减。在每个固定列,eje_jej 的次数是常数 ccc。从而 degMk(i,j)=c−dege^ideg M_k(i,j) = c-deg \hat{e}_idegMk(i,j)=cdege^i,因此每一列元素的度按行递增。我们可以用行变换在不改变主元次数(也即行基元的次数)下消去主元下方的非零元素,然后通过各行列位置的交换变成对角型。
(我的注记:eje_jej 的次数是常数,因为是在同一个时刻出生。)

Corollary4.1:Mk~\tilde{M_k}Mk~∂k\partial_kk 的列阶梯型,对应到 CkC_kCk 的基 {ej}\{e_j \}{ej}Zk−1Z_{k-1}Zk1 的基 {e^j}\{\hat{e}_j\}{e^j}。 如果第 iii 行有主元 Mk~(i,j)=tn\tilde{M_k}(i, j) = t^nMk~(i,j)=tn,则它贡献了 Hk−1H_{k-1}Hk1 中的 ∑degei^F[t]/tn\sum^{deg \hat{e_i}} F[t]/t^ndegei^F[t]/tn。否则,它贡献了 ∑degei^F[t]\sum^{deg \hat{e_i}} F[t]degei^F[t]。等价地,我们分别得到 PPP-intervals (deg ei^,deg ei^+n)(deg\ \hat{e_i} , deg\ \hat{e_i}+n)(deg ei^,deg ei^+n)(deg ei^,∞)(deg\ \hat{e_i} , \infty)(deg ei^,)

这就是说,如果我们只关注基元的次数,我们可以直接从列阶梯型读出(而不必化成对角型)。

Lemma4.2(基变换): 为表示 ∂k+1\partial_{k+1}k+1 相对于 Ck+1C_{k+1}Ck+1 的标准基和 ZkZ_kZk 的基,只需简单删掉 Mk+1M_{k+1}Mk+1 中对应到 Mk~\tilde{M_k}Mk~ 主列的那些行。

证明: 假设我们为了消除主行 jjj 的一个元素而给第 jjj 列乘以 qqq 倍加到第 iii 列,如 fig7。这操作相当于在 MkM_kMk 中把列基元 eie_iei 替换成 ei+qeje_i+q e_jei+qej。为了在 ∂k+1\partial_{k+1}k+1 的行基做相同的替换,我们需要给第 iii 行乘以 −q-qq 倍加到第 jjj 行。然而,第 jjj 行最终都会是零元素,所以这样的操作永远不会改变第 iii 行。
在这里插入图片描述
这个引理的好处在于我们不再需要做行变换。我们只需删除低一维空间中主列对应的行,就能得到 ∂k+1\partial_{k+1}k+1 关于 ZkZ_kZk 基的表示。
现在我们考察作者给的具体算法。我们的单纯复形列如下:
在这里插入图片描述

我们构造的数组结构如下:
在这里插入图片描述
计算持续区间的整体算法如下:
在这里插入图片描述
上图 fig 9 疑有作者笔误,P−P-Pinterval 中的 LkL_kLk 应当是 Lk−1L_{k-1}Lk1。另外 REMOVEPIVOTROWS 操作的步骤是:
在这里插入图片描述

接下来我们详细地解释每一步(即 “ for j=0j=0j=0 to m−1m-1m1” )是怎么循环的,这里作者写的比较简略。
第一步:aaa 进入,由于求边缘链后自然是0, 所以标记点 aaa(也就是图8中将 aaa 标粗显示);点 b,c,db,c,db,c,d 同理;
第二步:ababab 进入(j=4j=4j=4),k=1k=1k=1,求边缘链后 d=b−ad=b-ad=ba,没有未标记项。现在 i=1i=1i=1T[i]T[i]T[i] 为空,break,再次进入主循环;i=1,k=1i=1, k=1i=1,k=1,在 T[1]T[1]T[1] 记下 j=4j=4j=4d=b−ad=b-ad=ba,而 degσi=0,degσj=1deg\sigma^i=0, deg\sigma^j=1degσi=0,degσj=1(从fig1计算得到),从而更新 L0={(0,1)}L_0=\{(0,1)\}L0={(0,1)}。边 bc,cdbc, cdbc,cd 进入同理。
第三步:adadad 进入(j=7j=7j=7),k=1k=1k=1,求边缘链后 d=d−ad=d-ad=da(记号稍显混乱),没有未标记项。i=3i=3i=3,但 T[3]T[3]T[3] 不为空,且 T[3]T[3]T[3]σ3\sigma^3σ3(也就是 ddd)的系数是1,在 Z2\mathbb{Z}_2Z2 上的逆元仍是1(Z2\mathbb{Z}_2Z2是作者本章中限定的域,可以推广到一般的域),所以更新 d=d−a−(d−c)=c−ad=d-a-(d-c)=c-ad=da(dc)=ca,此时 ddd 仍不为空,while 循环还在继续,最终能将 ddd 消成空集,这就意味着再回到主循环时,就会标记 adadad。后面就是同理的,最终得到 fig8 以及最后的持续区间(作者写这篇文章的时候还叫 P−P-Pinterval)L0={(0,∞),(0,1),(1,1),(1,2)}L_0 = \{(0,\infty),(0, 1),(1, 1),(1, 2)\}L0={(0,),(0,1),(1,1),(1,2)}L1={(2,4),(3,5)}L_1 = \{(2, 4),(3, 5)\}L1={(2,4),(3,5)}□\square
注记:算法中计算 P−P-Pinterval 得到 Lk−1L_{k-1}Lk1,用到的正是 Corollary4.1;而 REMOVEPIVOTROWS 操作中,就是先根据 Lemma4.2 消元,消去未标记的复形后得到 Zk−1Z_{k-1}Zk1 的基,然后在 while 循环中,有最大指标 i=max di = max \ di=max d 的项可能是一个潜在的主元。但 T[i]T[i]T[i] 非空的话,那一行已经有主元,所以我们将这一行从我们的链中消去。否则我们就找到了一个主元,且现在对应的链就是主列。

http://www.xdnf.cn/news/1145395.html

相关文章:

  • 二刷 黑马点评 附近商户
  • Diffusion-VLA 中的 Reasoning Token 注入机制解析:语言推理如何控制扩散模型?
  • 深入解析文本分类技术全景:从特征提取到深度学习架构
  • Python 之地址编码识别
  • 《Web安全之深度学习实战》读书笔记总结
  • 去中心化交易所(DEX)深度解析:解码行业头部项目
  • 堆的实现,堆排序,咕咕咕
  • 【RK3576】【Android14】开发板概述
  • Node.js链接MySql
  • 数据结构-3(双向链表、循环链表、栈、队列)
  • 进阶数据结构:红黑树
  • uniapp 动态控制横屏(APP 端)
  • spring boot 实战之分布式锁
  • linux 的list_for_each_entry
  • 数字化转型:概念性名词浅谈(第三十一讲)
  • 怎么判断一个对象是不是vue的实例
  • STM32-CAN
  • 根据用户id自动切换表查询
  • STM32 RTOS 开发基础:从任务管理到同步机制的全面解析
  • Git 团队协作完全指南:从基础到高级应用
  • Docker面试题
  • 饿了么app 抓包 hook
  • HTTP 性能优化:五条建议
  • 控制鼠标和键盘
  • uniapp微信小程序 实现swiper与按钮实现上下联动
  • SymAgent(神经符号自学习Agent)
  • 光伏财务管理:在阳光与资本的精密计算中前行
  • MyBatis缓存实战指南:一级与二级缓存的深度解析与性能优化
  • 用线性代数推导码分多址(CDMA)
  • vscode 一直连不上远程,网络是通的,ssh 也能直接登录远程