
トポロジカルデータ解析では、シンプレックスツリーは、任意の一般的な単体複体を効率的に表現するために使用されるトライ木の一種です。このデータ構造は、そのノードを通じて、特にすべての単体を明示的に表現します。その柔軟な構造により、パーシステントホモロジーの計算に役立つ多くの基本操作を実装できます。このデータ構造は、2014 年に Jean-Daniel Boissonnat と Clément Maria によって、論文「The Simplex Tree: An Efficient Data Structure for General Simplicial Complexes」で考案されました。[ 1 ]このデータ構造は、疎な単体複体に対して効率的な操作を提供します。密な単体または最大単体には、Skeleton-Blocker [ 2 ]表現または Toplex Map [ 3 ]表現が使用されます。
トポロジカルデータ解析の多くの研究者は、単体木を単体複体のための最もコンパクトな単体ベースのデータ構造であり、その数学的性質を統合的に使用することで単体複体を直感的に理解できるデータ構造であると考えている。[ 1 ] [ 3 ] [ 4 ]
任意の単体複体は、位相空間内の点(0次元)、線分(1次元)、三角形(2次元)、およびそれらのn次元対応物(n単体と呼ばれる)から構成される集合であると考える。単体の数学的性質により、任意のn単体は複数のn-単体。したがって、線は点、三角形は線、四面体は三角形で構成されます。上位レベルごとに、n-単体の頂点に 1 つの頂点が追加されることに注意してください。データ構造は単体ベースであるため、単体を定義する点によってすべての単体を一意に表現する必要があります。これを実現する簡単な方法は、各単体をその点によってソートされた順序で定義することです。
させてk次元の単体複体である。その頂点集合、頂点は1からそしてそれに応じて順序付けします。次に、辞書のサイズを構築しますすべての頂点ラベルを順番に含む。これは 0 次元単体を表す。次に、初期辞書の各エントリの初期辞書へのパスに対して、現在の頂点セットに完全接続されているすべての頂点を子辞書として追加する。これらの頂点はすべて、ラベルがより大きい。このステップをkレベルで表現します。明らかに、最初の辞書を深さ0とすると、深さのエントリはこのデータ構造内のどの辞書も一意に表現します-単体内完全性を保つため、初期辞書へのポインタは空の単体の表現とみなされます。操作の実用性を考慮して、同じレベルで繰り返されるラベルはリンクされ、ループされたリンクリストを形成します。最後に、子辞書には、祖先への高速アクセスを可能にする親辞書へのポインタも含まれています。[ 1 ]
させてk次元の単体複体とする。まず、単体複体を互いに排他的な単体に分解する。これは、単体複体が空になるまで、単体複体から最高次の単体を繰り返し取り除くという貪欲法で実現できる。次に、各頂点に1から番号を付ける必要がある。そして、各単体を対応する「単語」、つまりラベルによる頂点の順序付きリストに関連付けます。ラベルを順序付けすることで、単体を記述する方法は1つしかないため、単体ツリーに重複がないことを保証します。まず、ヌル単体を表すヌルルートから始めます。次に、すべての単体と、各単体単語の各ラベルを順に処理します。ラベルが現在のルートの子として利用可能な場合は、その子を挿入プロセスの一時的なルートにします。そうでない場合は、子用に新しいノードを作成し、それを新しい一時的なルートにして、単語の残りの処理を続けます。この処理中、k個の辞書がすべてのラベルとともに維持され、対応するラベルのノードのアドレスが挿入されます。辞書のその場所にアドレスが既に存在する場合は、古いノードから新しいノードへのポインタが作成されます。処理が完了すると、各ノードのすべての子が辞書に入力され、すべてのポインタがループしてループされたリンクリストが作成されます。ここではハッシュテーブルなど、さまざまな辞書を適用できますが、一部の操作ではエントリの順序付き走査の可能性を前提としているため、ほとんどの実装では赤黒木または辞書を使用します。[ 1 ]
単体木は単体複素数表現のための最もスペース効率の良いデータ構造ではありませんが、疎データに対するその操作は最先端であると考えられています。ここでは、この表現を通して可能なさまざまな有用な操作の境界を示します。これらの操作の多くの実装が利用可能です。[ 1 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ]
まず、表記法を導入します。は与えられた単体であり、は、最後の頂点に対応する与えられたノードです。、そのノードに関連付けられたラベルは、これはそのノードの深さです。は単体複体の次元であり、アクセスする操作の最大数辞書では(辞書が赤黒木である場合、(複雑さ)を考えてみましょう。は、、 そしては、ラベルで終わる単体木のノードの数です。より深い場所で。 知らせ。
達成[ 1 ]
構成に関しては、構成的定義に見られるように、構成は単体複体の単体の数と複雑さに比例します。単体複体が密である場合は、特にコストがかかる可能性があります。ただし、フラグ複体、リップス複体、ウィットネス複体などの特定の単体複体に対する最適化がいくつかあります。[ 1 ] [ 8 ]
単体木は疎な単体複体において効率的です。この目的のために、高次元実データ(多くの場合疎)に焦点を当てた多くのパーシステントホモロジーアルゴリズムでは、これらのアルゴリズム内で単体木を使用しています。単体木は接続行列ほど効率的ではありませんが、単体ベースの構造により、パーシステントホモロジーアルゴリズム内で単体複体の格納に有用かつ効率的です。[ 9 ]