やわらかい幾何学2

はじめに

この記事はプログラミングラボ部アドベントカレンダーおかわり部門 7日目の記事として書かれています。

adventar.org

なんかおかわりも順調に埋まっていてすごいですね。

そういえば、この記事は「やわらかい幾何学1」の続きです。

unit112358.hatenablog.com

注意点

この記事には、基本的な群論の知識や、基本的とはいえない線形代数の知識が含まれています。まだそれらを学んでいない、もしくはきちんと理解できていない人は、この記事の内容を理解できない可能性があります。

また、ここからの議論や表現は、分かりやすさを重視するために厳密ではないものになっています。きちんと知りたい人は専門の本を読むか、後日僕に聞きに来てください。

このことを理解したうえで読み進めてください。

前回のおさらい

前回の記事で、トポロジーとは「切り貼りせずに、引っ張ったり伸ばしたりする変形のみで互いに変形可能な図形を同じものとみなす幾何学」であることを説明しました。

そのあと、そのような概念を導入することでどのような利点があるのかをざっくりと説明しました。その中で、トポロジーの利点は「複雑な図形を、同相でもっと単純な別の図形に置き換えることで解析しやすくすることができる」みたいなことを書いたと思います(よく覚えていないのでそうではないかもしれません)。このことについて、具体的な例を交えながら説明していきましょう。

単体複体

目の前に球面があることを想像してみてください。球面なので、球体の表面のみであり、中身は詰まっていないという状態です。球面は、見た目は美しい形をしていますが、頂点も辺もなく、表面は曲がっているので、解析しづらい図形といえます。つかみどころのない図形なのです。

そこで、この球面に対して四方向から圧力をかけて、内部が詰まっていない正四面体にしてみましょう。四方向から縮めただけなので、球面とこの正四面体は同相です。球面よりは、曲線のない四面体の方が解析しやすそうな形をしていますね。トポロジーの世界では同相な二つの図形は同じ性質が成り立つので、この正四面体で成り立つ性質は球面でも成り立つはずです。球面の代わりに正四面体を解析することで、球面の性質を解析してしまおうという魂胆なわけです。
f:id:Unit112358:20191201131229p:plain
正四面体をよく観察してみると、頂点や辺などのいくつかの基本的な図形の組み合わせで作られていることがわかります。四面体は、4個の頂点、6本の辺、そして4つの(三角形の)面からできていることがわかります。
f:id:Unit112358:20191130180457p:plain
どんな三次元の図形も、同相な変形を使って解析しやすい形にすることで、頂点、辺、三角形の面、そして四面体の例では出てきませんでしたが、中身の詰まった四面体、この四つの図形に分解することができます。これらの基本的な図形のことを単体といいます。それぞれの単体には、呼びやすいように別名がついていて、頂点を0単体、辺を1単体、三角形の面を2単体、中身の詰まった四面体を3単体と呼びます。これらの値は各単体の次元に対応しています。
f:id:Unit112358:20191130182710p:plain
逆に、0単体、1単体、2単体、3単体の組み合わせで表現できる図形のことを単体複体といいます。先ほどの例だと、中身の詰まっていない四面体は単体に分解できたので単体複体といえます。逆に、球面はそのままでは単体に分解することができないので単体複体ではありません。トポロジーの利点である解析しやすい図形に置き換えるとは、単体複体に置き換えるということだったわけです。

さて、単体複体に置き換えることで解析しやすくできることが分かりました。次は、解析する方法を紹介していきましょう。

解析の前に

解析の方法を説明するにあたって、実際に図形があったほうが説明も理解もしやすいと思うので、これからの説明の対象となる図形を示しておこうと思います。こちらが、今回の説明の対象になってくれる図形です。以下、この図形のことをKと呼ぶことにします。

f:id:Unit112358:20191205010628p:plain

本当は三次元の図形にしたかったのですが、複雑になると見にくくなるのと、三次元の図形を書くのが面倒くさいので、この簡単な図形を対象にします。最終的に、この図形に1つの連結成分と、2つの穴が存在することを示します。

解析の手始めとして、図形に含まれる各単体を区別できるように名前を付けましょう。つけ方はどのようにしてもいいのですが、今回は画像のように名付けたとして話を進めていきます。頂点はv、辺はe、面はfで表現しています。

鎖群

まずは、単体を代数的に扱う方法を与えます。Kに含まれるk単体に、実数をかけて足し合わせたものの集合をC_k(K)であらわし、k鎖群といいます。言葉だけだと何を言っているかよくわからないと思うので、実際にC_k(K)の要素をいくつか示してみましょう。

C_0(K) \ni \langle v_1 \rangle + 2 \langle v_2 \rangle - \langle v_4 \rangle + 2 \langle v_5 \rangle

C_1(K) \ni \langle e_3 \rangle - \langle e_4 \rangle + \langle e_5 \rangle

こんな感じです。ここで、各単体を\langle \rangleで囲んで見やすくしています。なんて読者思いの人なんだろうと思うかもしれませんが、鎖群はこのように書くのが一般的なだけです。

各単体にかけられている実数は、その単体がいくつ存在しているかを表しています。一つ目の例は、v_11個、v_22個、v_30個、v_4-1個、v_52個あるという状況を表しています。同様に、2つ目の例は、e_11個、e_2-1個、e_31個あるという状況を表しています。同じ次元の単体を足し合わせていることに注意してください。こうすることで、どの単体が何個ある、という状況を数式で表せるようになりました。しかし、ここで疑問が生じます。「-1個ある」とはいったいどういう状況なのでしょうか?これは、次に説明する「単体の向き」で説明できます。

各単体に向きを定めます。0単体には向きを付ける必要はありません。1単体についてはどちらの方向を向いているのか、2単体についてはどちらの方向に一周するかを定めていきます。文字だけだとわかりにくいと思いますが、下の図を見るとわかってもらえると思います。e_1v_1からv_2の方向へ向いていて、f_1は時計回りの方向に一周しています。
f:id:Unit112358:20191205010632p:plain
向きを決めたことで、逆向きの単体を-を付けることで表現できるようになります。\langle e_1 \ranglev_1からv_2へ向かう辺を表現しているので、- \langle e_1 \ranglev_2からv_1へ向かう辺を表現していることになります。同じように、- \langle f_1 \rangleは反時計回りのf_1を表現します。鎖群の二つ目の例で、e_2-1個あるということを表現していましたが、これはe_2とは逆向きの辺が1個ある、ということを表現していたわけです。このことからわかる重要なこととして、ある単体と、その単体とは逆向きの単体を代数的にまとめて表現すると、打ち消しあって0になることがわかります。例えば、e_3と逆向きのe_3を代数的にまとめて表現すると、

\langle e_3 \rangle - \langle e_3 \rangle = 0

となって打ち消します。

境界

続いて境界を定義します。簡単な定義は以下のようになると思います。

ある鎖群の要素を囲んでいる単体に、適切に+-をつけて足し合わせて作られる鎖群を、元の鎖群の境界という。

言葉だと非常に説明しづらい概念なので、いつもどおり図を使って説明していきましょう。f_1に注目してみましょう。f_1e_3e_4e_5の3つの0単体に囲まれています。このとき、e3+を、e4-を、e5+をつけて足しあわせたもの、すなわち\langle e_3 \rangle - \langle e_4 \rangle + \langle e_5 \ranglef_1の境界になります。
f:id:Unit112358:20191204184618p:plain
囲まれている、という意味は図を見ればなんとなく理解できると思います。しかし、+-の符号はどうやって求めるのでしょうか。実は、これらの実数の求め方は鎖群の次元によって異なっているので、どの次元にも成り立つような決め方はありません。というわけで、各次元での求め方を順に説明していきましょう。

以下の説明でxの境界がyの時、\partial (x) = yと表現しています。\partialについては後ほど詳しく説明するので、今は境界を計算する関数のようなものであると考えておいてください。

C_0(K)

C_0(K)の要素の境界は0です。どんな要素をとってきても、その境界は0であると定義されています。いくつか例を示しましょう。

 \partial(\langle v_1 \rangle + \langle v_3 \rangle) = 0

 \partial(\langle v_4 \rangle + 2 \langle v_5 \rangle) = 0

このように、どんなC_0(K)の要素の境界も0となります。数式であらわされている状況を図形で見てみましょう。
f:id:Unit112358:20191205010644p:plain
これは「C_0(K)に境界は存在しない」というふうにも解釈することができます。

C_1(K)

C_1(K)の要素の境界は、各1単体がどの0単体からどの0単体に向かっているかによって変わります。v_aからv_bへ向かうような1単体の境界は、 - \langle v_a \rangle + \langle v_b \rangle と定義されます。先ほどと同じように、いくつか例を示しましょう。各単体の向きやつながり方はKと揃えてあります。わざわざ戻って確認するのは面倒だと思うので、再登場してもらいましょう。図形のKさんです。
f:id:Unit112358:20191205010632p:plain
\partial (\langle e_1 \rangle) = - \langle v_1 \rangle + \langle v_2 \rangle

\partial (2\langle e_2 \rangle - \langle e_4 \rangle) = 2(-\langle v_3 \rangle + \langle v_1 \rangle) - (-\langle v_2 \rangle + \langle v_5 \rangle) = 2\langle v_1 \rangle + \langle v_2 \rangle -2 \langle v_3 \rangle - \langle v_5 \rangle

\partial (\langle e_1 \rangle + \langle e_2 \rangle + \langle e_3 \rangle) = (-\langle v_1 \rangle + \langle v_2 \rangle) + (-\langle v_3 \rangle + \langle v_1 \rangle) + (-\langle v_2 \rangle + \langle v_3 \rangle) = 0

ごちゃごちゃしていてわかりにくいですね。順に説明していきましょう。

1つ目の例はe_1の境界を計算しています。e_1v_1からv_2へ向かっているので、e_1の境界は - \langle v_1 \rangle + \langle v_2 \rangleとなります。

2つ目の例は2\langle e_2 \rangle - \langle e_4 \rangleの境界を計算しています。この例では、まず2\langle e_2 \rangle - \langle e_4 \rangle2\langle e_2 \rangle- \langle e_4 \rangleに分けて、二つの計算結果を最後に足し合わせていることがわかります。それぞれの計算はどうなっているでしょうか。2\langle e_2 \rangleの計算では、まず\langle e_2 \rangleの境界を計算して、後から2を全体にかけていることがわかります。

ちなみに、-が付いた単体は逆向きを表すという話をしましたが、-が付いた単体の境界を計算をするときは、逆向きの単体の境界を求めても、そのままの単体の境界をもとめて最後に-をかけても、同じ結果になります。
f:id:Unit112358:20191205010647p:plain
この例から、\partialには

\partial (x+y) = \partial(x) + \partial(y)

\partial(ax) = a\partial(x)

この二つの性質が成り立っていることがわかります。いわゆる線形性というやつですね。

3つ目の例は非常に重要です。\langle e_1 \rangle + \langle e_2 \rangle + \langle e_3 \rangleの境界を計算しています。これも2つ目の例と同じように、線形性を使って計算を進めていくのですが。出てきた式を整理すると+-が打ち消しあって0になっていることがわかります。これは下の図を見てもらうと何が起きているのか分かりやすいでしょう。
f:id:Unit112358:20191205010656p:plain
つまり、それぞれの1単体をつなげると、ある方向にぐるっと一周するわっかになる場合、その境界は打ち消しあって0になります。後ほど、この性質が穴がいくつあるかを調べるための手掛かりとなります。

C_2(K)

C_2(K)の要素の境界は、各2単体どの方向に一周しているかと、まわりの1単体がどの方向を向いているかで決まります。周りの1単体のうち、2単体の回転方向と同じ向きを向いているものには+を、そうでないものには-を付けて足し合わせます。例によって、例を示しましょう。

\partial(\langle f_1 \rangle)= \langle e_3 \rangle - \langle e_4 \rangle + \langle e_5 \rangle

f_1の回転方向とe_3の向いている方向を比べてみましょう。どちらも時計回り方向を向いています。先ほど言ったように、同じ方向を向いているのでe_3には+を付けます。e_4はどうでしょうか。先ほどとは違い逆方向を向いています。よって、e_4には-を付けます。最後にe_5を見てみると、同じ方向を向いているので+を付ければよいことがわかります。これらを足し合わせることで\langle e_3 \rangle - \langle e_4 \rangle + \langle e_5 \rangleとなります。
f:id:Unit112358:20191205010709p:plain
さて、ここで計算した結果でてきた境界、つまり\langle e_3 \rangle - \langle e_4 \rangle + \langle e_5 \rangleの方に注目してみましょう。図形的にみると、ぐるっと一周している1単体の集まりであることがわかります。C_1(K)の時に話したように、ぐるっと一周しているわっかの境界は0になるのでした。すなわち\partial(\langle e_3 \rangle - \langle e_4 \rangle + \langle e_5 \rangle) = 0となるわけです。これらをまとめると、

 \partial(\partial(\langle f_1 \rangle)) = \partial(\langle e_3 \rangle - \langle e_4 \rangle + \langle e_5 \rangle)) = 0

となります。ここで、一番左の式と一番右の式に注目すると

\partial(\partial(\langle f_1 \rangle)) = 0

つまり \langle f_1 \rangleから2回境界を計算すると0になるということがわかります。この性質はf_1だけではなく、どんなC_k(K)の要素に対しても成り立ちます。すなわち、

任意のk \in C_k(K)について\partial(\partial(k)) = 0

が成り立ちます。これも非常に重要な性質なので、気になる人は計算して確かめてみてください。(本当は証明を載せたいんですが、これまでの議論が厳密ではないので厳密な証明ができないんですよね。悲しい)

境界作用素

では、境界のところで後回しにしていた\partialの説明をしていきましょう。

まず\partialの定義域と値域を考えてみましょう。以下の図のように、\partialC_2(K)C_1(K)に、C_1(K)C_0(K)に、そしてC_0(K)0に移していました。
f:id:Unit112358:20191205010720p:plain
C_k(K)の要素は同じ次元の単体に実数を欠けて足し合わせたものでした。それぞれの単体を変数としてみると、多元一次方程式とみなすことができます。さらに、多元一次方程式の各係数を要素と持つようなベクトルを考えることで、多元一次方程式をベクトルと同一視することができるようになります。
f:id:Unit112358:20191205115714p:plain
このような見方をすることで、\partialはベクトルをベクトルに移すような線形写像、つまり行列であると考えることができます。ただし、ベクトルの次元(単体の次元ではなく単体の個数)は異なっている可能性があるため、これまでのように\partialひとつで変換を表すことはできません。ということで、それぞれの次元(こっちは単体の次元です)に対応する写像を用意します。C_k(K)に対応するベクトルを、C_{k-1}(K)に対応するベクトルに移す線形写像\partial_kとあらわし、境界作用素といいます。
f:id:Unit112358:20191205115813p:plain
理論の話ばかりで想像しにくいと思うので、ひとつ計算例を示しましょう。境界の説明のところで

\partial (2\langle e_2 \rangle - \langle e_4 \rangle) = 2\langle v_1 \rangle + \langle v_2 \rangle -2 \langle v_3 \rangle - \langle v_5 \rangle

という計算をしたと思います。これを境界作用素の考え方で置き換えるとどのようになるでしょうか。まず、境界を計算する対象をベクトルとして表現します。ベクトルの第1要素を \langle e_1 \rangle、第7要素を \langle e_7 \rangleに対応させると、以下のように置き換えることができます。

2\langle e_2 \rangle - \langle e_4 \rangle \mapsto \begin{pmatrix} 0 \\ 2 \\ 0 \\ -1 \\ 0 \\ 0 \\ 0 \end{pmatrix}

同じように、境界の方も置き換えてみましょう。

2\langle v_1 \rangle + \langle v_2 \rangle -2 \langle v_3 \rangle - \langle v_5 \rangle \mapsto \begin{pmatrix} 2 \\ 1 \\ -2 \\ 0 \\ -1 \end{pmatrix}

2\langle e_2 \rangle - \langle e_4 \rangleC_1(K)の要素なので、\partial_1が対応します。よって

\partial_1 \begin{pmatrix} 0 \\ 2 \\ 0 \\ -1 \\ 0 \\ 0 \\ 0 \end{pmatrix} = \begin{pmatrix} 2 \\ 1 \\ -2 \\ 0 \\ -1 \end{pmatrix}

という計算が成り立つような\partial_1が一次元の境界作用素となるのです。

では、境界作用素はどのように求めればいいのでしょうか。例えば\partial_1を求めたい場合、各1単体について \langle e_1 \rangleから順に境界を計算し、その結果をベクトルに変換したものを左から右へ並べるだけで求めることができます。
f:id:Unit112358:20191205115742p:plain
この方法で求めた\partial_2\partial_1\partial_0は以下のようになります。

\partial_2 = \begin{pmatrix} 0 \\ 0 \\ 1 \\ -1 \\ 1 \\ 0 \\ 0 \end{pmatrix}

\partial_1 = \begin{pmatrix} -1 & 1 & 0 & 0 & 0 & 0 & 0 \\ 1 & 0  & -1 & -1 & 0 & 0 & 0 \\ 0 & -1 & 1 & 0 & -1 & -1 & 0 \\ 0 & 0 & 0 & 0 & 0 & 1 & -1 \\ 0 & 0 & 0 & 1 
& 1 & 0 & 1 \end{pmatrix}

\partial_0 = \begin{pmatrix} 0 & 0 & 0 & 0 & 0 \end{pmatrix}

せっかく求めたので、これらを使って境界を計算することができるかどうか確かめてみましょう。先ほど

\partial_1 \begin{pmatrix} 0 \\ 2 \\ 0 \\ -1 \\ 0 \\ 0 \\ 0 \end{pmatrix} = \begin{pmatrix} 2 \\ 1 \\ -2 \\ 0 \\ -1 \end{pmatrix}

という式をだしました、\partial_1を代入すると、

\begin{pmatrix} -1 & 1 & 0 & 0 & 0 & 0 & 0 \\ 1 & 0  & -1 & -1 & 0 & 0 & 0 \\ 0 & -1 & 1 & 0 & -1 & -1 & 0 \\ 0 & 0 & 0 & 0 & 0 & 1 & -1 \\ 0 & 0 & 0 & 1 
& 1 & 0 & 1 \end{pmatrix} \begin{pmatrix} 0 \\ 2 \\ 0 \\ -1 \\ 0 \\ 0 \\ 0 \end{pmatrix} = \begin{pmatrix} 2 \\ 1 \\ -2 \\ 0 \\ -1 \end{pmatrix}

となります。計算してみるとわかると思いますが、ちゃんと成り立っていますね。このように、境界作用素を適用するだけで境界を求めることができるようになります。

境界作用素を求めたことで、トポロジー的な解析をするために必要な道具はすべてそろいました。これでやっと解析へ踏み込むことができます。

お詫び

道具がそろって解析する気満々の人が多いと思いますが、すでに「やわらかい幾何学1」の2倍を超える文字数になっているため、読みにくくならないように記事を分けることにしました。

続きが気になる方は「やわらかい幾何学3」をお読みください。

https://unit112358.hatenablog.com/entry/2019/12/07/000009?_ga=2.253468041.1411535617.1575556889-1110943558.1498307490