ホモロジー群とその計算例

本稿では位相幾何学における基本的な量であるホモロジー群と、いくつかの図形に対するホモロジー群の計算例について述べる。

位相不変量としてのホモロジー

位相幾何学では、図形を位相空間であると捉え、位相同型な空間同士は同じ図形であると考えるというのが基本である。2つの位相空間A, Bが位相同型であるとは、連続な全単射 f: A\to Bで、 f^{-1}も連続であるようなものが存在することを言う*1

しかし、どうも一般に2つの空間が互いに位相同型であるかどうかを見分けることは難しいようで、位相幾何学では代わりに位相同型な空間の間で一定に保たれる性質、すなわち位相不変量に着目するようである。位相不変量としては、簡単なところではコンパクト性や連結性などが挙げられるが、ホモロジー群もその1つなのである。

2つの空間の間でこれらの位相不変量が一致することは、それらが位相同型であるための必要条件であるが、十分条件ではない。例えば、2つの位相空間が同じホモロジー群を持っていたとしても、それらが必ずしも位相同型であるとは限らない。しかし、少なくともホモロジー群が異なる空間同士が位相同型ではありえないことは分かるので、その意味でこのような位相不変量に着目することは有用であると言えよう。

ホモロジー群の定義

ホモロジー群の定義を理解するためには、以前の記事でも紹介した境界写像について理解する必要がある。本稿では境界写像については説明しないので、気になる方はググって頂くか、こちらの記事を見ていただきたい。

では、ホモロジー群の定義について述べてみる。位相空間Kのr+1次元鎖群 C_{r+1}(K)に対する境界写像 \partial_{r+1}の像を B_r(K) = \mathrm{Im}(\partial_{r+1})とおく。また、r次元鎖群 C_r(K)に対する境界写像 \partial_rの核を Z_r(K) = \mathrm{Ker}(\partial_r)とおく。

一般に、r+1次元鎖cに対して \partial_{r}(\partial_{r+1}(c))=0となることから、以下が成立する。

{ \displaystyle
B_r(K) = \mathrm{Im}(\partial_{r+1}) \subset \mathrm{Ker}(\partial_r) = Z_r(K)
}

また、当然 Z_r(K) \subset C_r(K)かつ B_r(K) \subset C_r(K)である。 C_r(K)は自由アーベル群であり、かつ一般に自由アーベル群の部分群は自由アーベル群であるから、 B_r(K) \lhd Z_r(K)である。

このとき、以下の式で表される剰余群 H_r(K)をr次元ホモロジー群と呼ぶ。

{ \displaystyle
H_r(K) = Z_r(K) / B_r(K)
}

ホモロジー群の意味

ホモロジー群は位相空間の連結性や穴に関係がある。私も不勉強で明確に説明できるレベルには達していないが、例えば0次元ホモロジー H_0(K)のrank(ホモロジー群のrankをベッチ数とも呼ぶ)は連結成分の数に対応しており、また H_1(K)のベッチ数は1次元的なループによる穴の数、 H_2(K)は面により囲まれる3次元空間上の穴の数に対応していたりするようだ。詳しくは本稿の参考文献[2]を参照して頂きたい。

ホモロジー群の計算例

では、具体的にいくつかの図形についてホモロジー群を計算してみよう。初めは手計算を試みたのだが、あまりに大変なので断念し、今回もsageのお世話になることにした。

n次元球面

 S^1

基本的な図形のいくつかはsageに最初から用意されている。n次元球面もその1つだ。以下のように計算できる。

sage: S1 = simplicial_complexes.Sphere(1)  # 1次元球面を取得
sage: S1.homology()  # ホモロジー群を計算
{0: 0, 1: Z}

最後の出力は、 H_0(S^1) = 0,  H_1(S^1) = \mathbb{Z}であることを示している。しかし、これはなんだかおかしい。というのも、 S^1の連結成分は1つだから、 H_0(K) = \mathbb{Z}にならなければならないはずだ。

sageのマニュアルを見ると、どうもhomology関数はデフォルトではreduced homologyなるものを計算しているらしい。これの正体はいまいち分からないが、普通のホモロジー群を計算するためには、以下のようにオプションを追加してやれば良いようだ。

sage: S1.homology(reduced=False)  # Reduced homologyじゃないよ!というオプション
{0: Z, 1: Z}
 S^2

同様に計算してみる。

sage: S2 = simplicial_complexes.Sphere(2)
sage: S2.homology(reduced=False)
{0: Z, 1: 0, 2: Z}
 S^3

同上。

sage: S3 = simplicial_complexes.Sphere(3)
sage: S3.homology(reduced=False)
{0: Z, 1: 0, 2: 0, 3: Z}
n次元球面まとめ

結果を以下の表にまとめる。

 H_0  H_1  H_2  H_3
 S^1  \mathbb{Z}  \mathbb{Z} - -
 S^2  \mathbb{Z} 0  \mathbb{Z} -
 S^3  \mathbb{Z} 0 0  \mathbb{Z}

n次元球面にはn+1次元の穴が1つだけ空いており、それ以外の穴は空いていない。それが H_nのベッチ数に反映されている様子が見られた。楽しい。

トーラス

 T^2

2次元トーラス(つまり普通のトーラス)も最初から用意されている。

sage: T2 = simplicial_complexes.Torus()
sage: T2.homology(reduced=False)
{0: Z, 1: Z x Z, 2: Z}
 T^3

3次元以上のトーラスはプリセットとしては用意されていない。しかし、3次元トーラス T^3 T^3 = S^1 \times S^1 \times S^1となるので、1次元球面の直積を計算すればよい。

sage: T3 = S1.product(S1).product(S1)
sage: T3.homology(reduced=False)
{0: Z, 1: Z x Z x Z, 2: Z x Z x Z, 3: Z}
 T^4

同じように計算してみる。

sage: T4 = S1.product(S1).product(S1).product(S1)
sage: T4.homology(reduced=False)  # この計算がなかなか重い
{0: Z, 1: Z x Z x Z x Z, 2: Z^6, 3: Z x Z x Z x Z, 4: Z}

こちらはどうにも計算が重く、一度は諦めたのだが、再度頑張って計算してみた。ホモロジー群を計算機で求めるのは思ったより大変なんだなぁ。

トーラスまとめ

結果を以下の表にまとめる。ただし、 T^1 = S^1としている。

 H_0  H_1  H_2  H_3  H_4
 T^1  \mathbb{Z}  \mathbb{Z} - - -
 T^2  \mathbb{Z}  \mathbb{Z} \times \mathbb{Z}  \mathbb{Z} - -
 T^3  \mathbb{Z}  \mathbb{Z} \times \mathbb{Z} \times \mathbb{Z}  \mathbb{Z} \times \mathbb{Z} \times \mathbb{Z}  \mathbb{Z} -
 T^4  \mathbb{Z}  \mathbb{Z}^4  \mathbb{Z}^6  \mathbb{Z}^4  \mathbb{Z}

なんとパスカルの三角形のようなパターンが浮かび上がってきた。面白すぎる!

高次元のトーラスの解釈は難しいが、 T^2に関しては、トーラスをドーナツの輪っか的に回るループと、胴回りを回るループの2つがあり、それが H_1の構造に見えているのが面白い。また、ドーナツの中は空洞であるため、 H_2(T^2) = \mathbb{Z}となっているのだろう。

向き付け不可能な図形

向き付け不可能な図形についてもホモロジー群を計算してみよう。代表的なものとして、メビウスの帯クラインの壺を取り上げる。

メビウスの帯

残念ながら、メビウスの帯はsageには用意されていない。そのため、頑張って単体分割から計算するしかなさそうだ。メビウスの帯を以下の図のように単体分割してみよう。

f:id:peng225:20170218125958p:plain

赤矢印で示した向きに左右の辺をくっつければメビウスの帯になる。これをsageで計算するには以下のようにすればよい。

sage: M = SimplicialComplex([[1, 2, 3], [3, 4, 1], [4, 3, 5], [5, 2, 4], [2, 5, 1]])  # 三角形を全て指定
sage: M.homology(reduced=False)
{0: Z, 1: Z, 2: 0}

ちなみに、本当は三角形の辺とか頂点も含めないと単体複体の定義を満たさないが、これらは自動的に追加されているようだ。

結果を見ると、連結成分が1つで、1次元的なループによる輪っかが1つという、なんとも普通の結果になった。実は、ホモトピー同値*2位相空間ホモロジー不変となるらしく、メビウスの帯ホモロジー群は S^1と同じになるそうだ。詳細は参考文献[6]の議論を参照のこと。

クラインの壺

こちらはsageに用意されたものがあるので、それを利用しよう。

sage: K = simplicial_complexes.KleinBottle()
sage: K.homology()
{0: 0, 1: Z x C2, 2: 0}

ここで、Z x C2というのは \mathbb{Z} \times \mathbb{Z}/2\mathbb{Z}を意味している。C2という表記は、2次元巡回群(Cyclic group)ということである。

ここで、始めてホモロジー群の中に捩れが登場した。これをどう幾何学的に解釈したらよいだろうか?私自身、まだ体系的に理解しているわけではないが、少なくとも今回のケースでは、クラインの壺を「捻れたトーラス」と捉えることができるのだと思っている。以下の図を見て頂きたい。

f:id:peng225:20170218130844p:plain

左はトーラス、右はクラインの壺を表している。同じ色の矢印で示した辺をこの向きにくっつけることで、それぞれの図形が出来上がる。ここで、クラインの壺は左右の辺の向きが逆になっているのがポイントである。これを同じ向きに揃えてくっつけるためには、まず青矢印の辺をくっつけたあと、ひねりを加えて赤矢印の辺をくっつけなければならない。これがホモロジー群の捩れとして現れているのではないだろうか?

もっとも、これを3次元ユークリッド空間内で実現しようと思うと、自身を貫くような形になってしまうため、本当は4次元空間で考えなければならない。

ここで、「メビウスの帯だって図形的に捩れているじゃないか」という疑問が思い浮かぶ訳だが、メビウスの帯 S^1ホモトピー同値であり、本質的には捩れていなかったのだと考えるしかないのだろう。

まとめ

以上、ホモロジー群の定義と、いくつかの図形における具体的な計算例を示した。やはり具体例を見ることで現象への理解は格段に深くなる。ホモロジー群の捩れを一般的にどう解釈したらよいのかはまだ未知であるが、それはおいおい考えてみよう。

*1:位相空間は一般には距離空間とは限らないため、位相空間における連続写像の定義はちょっとややこしい。詳しくは位相空間の教科書を参照。

*2:位相空間の中で2つの図形を連続的に変形させて互いに行き来できるとき、これらをホモトピー同値と言うのだと思っている。位相同型と何が違うのかというと、例えば円と帯のように、次元が異なるような図形であっても、連続的な変化で行き来できればホモトピー同値になるという点が挙げられるだろう。ただし、これは私が根拠なく考えていることなので、正確にはトポロジーの教科書を参照して頂きたい。