このブログの更新は Twitterアカウント @m_hiyama で通知されます。
Follow @m_hiyama

メールでのご連絡は hiyama{at}chimaira{dot}org まで。

はじめてのメールはスパムと判定されることがあります。最初は、信頼されているドメインから差し障りのない文面を送っていただけると、スパムと判定されにくいと思います。

参照用 記事

関手的データモデルと二重圏とアニメーション

どうも体調わろし。ボンヤリしているので勘違いや妄想が入るかも。

しばらく前(1月の中盤くらい)、二重圏の話をしていました。

このとき、僕がイメージしていた二重圏(直和を考えればモノイド二重圏)は次のようなものです。

  1. 対象は集合(有限集合に限定してもよい)
  2. 水平射は境界付きの有向グラフ(左が始境界、右が終境界)
  3. 垂直射は集合(境界である頂点)の写像
  4. 2-セルは境界を保つグラフ準同型写像

関手的データモデルの文脈でもなんか二重圏が出てくるみたい。

Sスキーマとして、データベース状態(データベースインスタンス)は関手 D:SSet となります(アンビエント圏に集合圏を使うとき)。データベース状態Dから別な状態D'を得るデータ操作(data manipulation)は、α::D⇒D' という自然変換です。よって、データベース状態とデータ操作からなる圏は関手圏 [S, Set] となるわけです。これが関手的データモデルの基本設定ですね。

さて、比喩的に言うと、データベース状態DはアンビエントSet内に描かれた図形です。データ操作 α::D⇒D' は図形の変形、つまりホモトピーみないなもんです。ここで、アンビエントSetの射は2つの目的で使われています。

  1. 図形を描く線として
  2. 図形の変形の軌跡として

この2つの目的で使われる射を区別したいことがあります。例えば、データ操作(の成分射)には単射しか使わないとかです。すべての t∈|S| に対して、αt:D(t)→D'(t) が単射なら、データを一切削除しないデータベースとなります。この場合、データ操作(である自然変換)の成分は、単射(モノ射)の圏 Mono(Set) に入ります。

すこし一般化して、圏Cに対して次のような二重圏Eを考えます。(Dはデータの意味で使ってしまったのでEにします。)

  1. HVは、Cの広い部分圏とする。(|H| = |V| = |C|)
  2. Eの対象(0-セル)の集合は、E0 = |C|
  3. Eの水平射(水平1-セル)の集合は、Eh1 = Mor(H)
  4. Eの垂直射(垂直1-セル)の集合は、Ev1 = Mor(V)
  5. Eの2-セルの集合は、E2 = (Cの可換四角形で、横の辺がHに入り、縦の辺がVに入るもの)

基本的には、「二重圏のもっと簡単な例:圏の可換四角形の二重圏」と同じような構成です。四角形の辺に条件を付けています。例えば、C := Set, H := Set, V := Mono(Set) と置くと先の例となります。

関手データモデルの文脈において、上記の手順で二重圏Eを作り、二重圏のなかでデータ操作 α::D⇒D' を考えましょう。DやD'は横方向に広がる1次元の図形で、αは縦方向に伸びる2次元の図形となります。D0⇒ D1 ⇒ D2 ⇒ ... のような列を考えると、これは離散時間でアニメーションする図形と思えます。離散時間を補間して連続時間に出来るかもしれません。

スピヴァックは、データの永続トポロジー/永続ホモロジー(persistent topology/persistent homology 例えば、http://www.math.upenn.edu/~ghrist/preprints/barcodes.pdf)にも言及していたので、パラメータに沿った関手の変形はなんかに使えるかも?