logo

ジョモロジアンのアルゴリズム誘導 📂位相データ分析

ジョモロジアンのアルゴリズム誘導

概要

ZomorodianとCarlssonの論文「Computing Persistent Homology」で紹介されたアルゴリズムの導出プロセスを説明する1抽象的なシンプレクシャルコンプレックスで作られたフィルタードコンプレックスを受け取り、P\mathcal{P}-インターバルを返す。計算機で扱いにくいパーシステントモジュールの構築を省略し、行列のリダクションにより持続的ホモロジーを計算する。

導出

Part 0. 事前調査

필터드_컴플렉스.png

アルゴリズムの本格的な導出に先立ち、上の図で描写されるパーシステンスコンプレックスが数式的にどのような形式であるかをまず検討する。このプロセスをしっかりと固めておかないと、論文を読むのが非常に苦痛になるだろう。

  • まず、下部にある数字をdeg\degとし、これが00から55まで増加しながら次のようにフィルタードコンプレックスを形成する。 {a,b}=K0K1K2K3K4(K4{acd})=K5 \left\{ a,b \right\} = K_{0} \subset K_{1} \subset K_{2} \subset K_{3} \subset K_{4} \subset \left( K_{4} \cup \left\{ acd \right\} \right) = K_{5}
  • deg\degとは関係なく、KK22-シンプレックスとして、ホモロジーを考慮する文脈で次のようなチェインコンプレックスを形成する。 C22C11C0 \mathsf{C}_{2} \overset{\partial_{2}}{\longrightarrow} \mathsf{C}_{1} \overset{\partial_{1}}{\longrightarrow} \mathsf{C}_{0}

アルゴリズムの目標は、このような2\partial_{2}1\partial_{1}がデータに与える代数的トポロジカル情報、たとえばベッチ数βk\beta_{k}などが、どのdeg\degで現れていつdeg\degで消えるかを次のように計算することである。 L0={(0,),(0,1),(1,1),(1,2)}L1={(2,5),(3,4)} \begin{align*} L_{0} =& \left\{ \left( 0, \infty \right) , \left( 0,1 \right) , \left( 1,1 \right) , \left( 1,2 \right) \right\} \\ L_{1} =& \left\{ \left( 2,5 \right) , \left( 3,4 \right) \right\} \end{align*}

20220710_213052.png

L0L_{0}β0\beta_{0}に該当する情報、つまりコンポーネントがいつ現れて消えるかを示すP\mathcal{P}-インターバルで構成され、L1L_{1}β1\beta_{1}に該当する情報、つまり空間で「穴」と呼べるものがいつ現れて消えるP\mathcal{P}-インターバルで構成されている。


Part 1. 1\partial_{1}

論文では、著者たちはその計算が全てのフィールドで可能であると主張しているが、簡単にグレード付きモジュールであるZ2[t]\mathbb{Z}_{2} [t]-モジュールでどのような計算が行われるかを見てみよう。これからCk\mathsf{C}_{k}の同次基底を{ej}\left\{ e_{j} \right\}Ck1\mathsf{C}_{k-1}の同次基底を{e^i}\left\{ \hat{e}_{i} \right\}と表記することにする。ここで同次とは、Ck\mathsf{C}_{k}グレード付きモジュールと見たとき、項が一つしかないという意味で受け取ってもよく、つまりt2+tt^{2} + tのようではなくt4t^{4}のような単項形式であると考えても構わないということである。

필터드_컴플렉스2.png

degMk(i,j)=degejdege^i \deg M_{k} (i,j) = \deg e_{j} - \deg \hat{e}_{i} ホモロジー代数にある程度慣れていれば、今度はk\partial_{k}に対応する境界行列MkM_{k}を上のテーブルと方程式に合わせて構成し、そのスミス標準形M~1\tilde{M}_{1}を求めに行く感じがするだろう。まずk=1k=1の場合を考えてみると、先に行列の基底が同次であると言ったので、次のように唯一のM1M_{1}を得ることができる。

20220710_202643.png

このように基底を持って行列を構成することは、k\partial_{k}の一つの役割がtnt^{n}を掛けること(群作用を取ることでグレード付きモジュールで次数が上がること)の逆を行うことだと見ると理解できる。感覚を掴むために、直接計算してみよう。 degM1(2,5)=degacdegc=31=2=degt2degM1(4,5)=degacdega=30=3=degt3degM1(2,2)=degbcdegc=11=0=degt0=deg1 \begin{align*} \deg M_{1} (2,5) =& \deg ac - \deg c = 3 - 1 = 2 = \deg t^{2} \\ \deg M_{1} (4,5) =& \deg ac - \deg a = 3 - 0 = 3 = \deg t^{3} \\ \deg M_{1} (2,2) =& \deg bc - \deg c = 1 - 1 = 0 = \deg t^{0} = \deg 1 \end{align*}

先に言ったように、今度はこのエシュロン形、特にカラムエシュロン形を作

ると次のようになる。

20220710_204107.png

大学で学んだ線形代数を思い出してみると、各カラムで一番上にありながら00でない、図のように四角で囲んだ部分のようなものをピボットと呼んでいた。ここで次の2つの補助定理を紹介する。

  • (1): カラムエシュロン形の対角成分はスミス標準形の対角成分と同じである。
  • (2): M~k\tilde{M}_{k}ii行のピボットがM~k(i,j)=tn\tilde{M}_{k} (i,j) = t^{n}であればホモロジーグループHk1H_{k-1}dege^iF[t]/tn\sum^{\deg \hat{e}_{i}} F[t] / t^{n}に該当し、それ以外はHk1H_{k-1}dege^iF[t]\sum^{\deg \hat{e}_{i}} F[t]に該当する。これはLk1L_{k-1}(dege^i,dege^i+n)\left( \deg \hat{e}_{i} , \deg \hat{e}_{i} + n \right)(dege^i,)\left( \deg \hat{e}_{i} , \infty \right)で構成されることと同値である。

つまり、

  • 補助定理(1)により、持続的ホモロジーを計算する際は行操作が必要なく、列操作だけで良いことになる。
  • 補助定理(2)により、Lk1L_{k-1}(dege^i,dege^i+n)\left( \deg \hat{e}_{i} , \deg \hat{e}_{i} + n \right)(dege^i,)\left( \deg \hat{e}_{i} , \infty \right)で構成される。
    • 最初の行のピボットがt1t^{1}であり、degd=1\deg d = 1であるため、(1,1+1)(1,1+1)を得る。
    • 2番目の行のピボットがt0t^{0}であり、degc=1\deg c = 1であるため、(1,1+0)(1,1+0)を得る。
    • 3番目の行のピボットがt1t^{1}であり、degb=0\deg b = 0であるため、(0,0+1)(0,0+1)を得る。
    • 4番目の行にピボットがなく、dega=0\deg a = 0であるため、(0,)(0,\infty)を得る。

これは、アルゴリズムを導出する前に言及したL0L_{0}と完全に一致する。 L0={(0,),(0,1),(1,1),(1,2)} L_{0} = \left\{ \left( 0, \infty \right) , \left( 0,1 \right) , \left( 1,1 \right) , \left( 1,2 \right) \right\}


Part 2. 2\partial_{2}

20220710_210216.png

L1L_{1}を得るための2\partial_{2}の行列形M2M_{2}は上のようである。しかし、次の補助定理で計算を減らし、簡単に進めることができる。

  • (3): Ck+1\mathsf{C}_{k+1}の標準基底とZk\mathsf{Z}_{k}に対するk+1\partial_{k+1}を表現するためには、M~k\tilde{M}_{k}に対応する行をMk+1M_{k+1}から単に削除しても良い。

言葉は少し難しく聞こえるが、現在の具体的な状況では、M~1\tilde{M}_{1}11-シンプレックスab,bc,cd,ad,acab,bc,cd,ad,acの中で、cd,bc,abcd,bc,abのピボットだけが残っているので、これを単にM2M_{2}から削除しても良いということである。直感的に考えると、これらがすでにkk次元で使用されたので、k+1k+1では見る必要もないという程度に受け取っても構わない。こうしてカラムエシュロン形M~2\tilde{M}_{2}を直接構築する過程を省略し、その3つの行を削除してみると、次のように下が切り取られたMˇ2\check{M}_{2}を得る。

20220710_210933.png z2=acbcabz1=adbccdab \begin{align*} z_{2} =& ac - bc - ab \\ z_{1} =& ad - bc - cd - ab \end{align*}

再び補助定理(2)に従って計算してみよう。

  • 最初の行のピボットがt1t^{1}であり、 degz2=deg(acbcab)=maxdeg{ac,bc,ab}=3 \deg z_{2} = \deg \left( ac - bc - ab \right) = \max \deg \left\{ ac , bc , ab \right\} = 3 であるため、(3,3+1)(3,3+1)を得る。
  • 2番目の行のピボットがt3t^{3}であり、 degz1=deg(adbccdab)=maxdeg{ad,bc,cd,ab}=2 \deg z_{1} = \deg \left( ad - bc - cd - ab \right) = \max \deg \left\{ ad , bc , cd , ab \right\} = 2 であるため、(2,2+3)(2,2+3)を得る。

これは、アルゴリズムを導出する前に言及したL1L_{1}と完全に一致する。 L1={(2,5),(3,4)} L_{1} = \left\{ \left( 2,5 \right) , \left( 3,4 \right) \right\}

このようなプロセスをコンプレックスKKの次元dimK\dim Kまで繰り返すと、求めていたアルゴリズムを得ることができる。行列の左右の大きさはk\partial_{k}に従い、その成分はdeg\degに従って充填されると考えると少し混乱しなくなるだろう。

一方、補助定理(1)で列操作だけで十分だということは、これまでの導出で見たように行列表現に固執する理由がないということでもある。また、補助定理(3)により、「過去にすでに計算が終わった」部分に対して大胆に行を捨てるような効率的なプロシージャが含まれており、これにはピボットでないカラムを「マーキング」する能力などが必要である。結果として、実際のアルゴリズムの擬似コードpseudo Codeは、行列をそのまま使用するのではなく、もう少し高度なデータ型、ディクショナリーやデータフレームなどで説明されることになる。これは実際に体験すると非常に戸惑いやすく難しい。

実装


  1. Zomorodian. (2005). Computing Persistent Homology: ch4 ↩︎