テンポラル・ネットワークを味わう - テンポラルな距離の概念
概要
前回の記事では, テンポラル・ネットワークのデータ表現をいくつか紹介した.
今回は, そんなテンポラルなデータ表現を活用して, ネットワーク構造の大事な概念である「歩道」,そしてその主要な解析量である「距離」を紹介する.
静止したネットワークと違い, テンポラル・ネットワーク上では, 移動のために辿る枝が「時間によって発生したり, 消えたり」する. そのため, 目的の頂点へと向かうことができる枝が現れるのを待機する状態や, あるいは, タイミングによっては目的の頂点へ到達できない状態となったりする, というのが大きな特徴である.
そんな静止したネットワークと異なる, テンポラルな「歩道」, そして「距離」の定義について紹介する.
静止したネットワークでの「道」と「距離」
まず静止したネットワークでの「道」および「距離」を定義する.
「歩道」(walk)とは, ある頂点から別の目的となる頂点までに, 隣接する頂点を経由して枝を辿って進む経路である. そして, 「道」は, ある頂点から別の目的となる頂点までに, 同じ頂点を通らずに, 進むことができる「歩道」である.
「歩道」は2頂点間の可能な経路を列挙するために, 「道」は2頂点間の最短経路を計算する上で便利である.
そして, 「距離」を, 2頂点間(
-
非負性: (
,d(v_i, v_j) \geq 0 -
非退化: (
のときにのみ,v_i = v_j が成り立つ),d(v_i, v_j) = 0 -
対称性: (
),d(v_i, v_j) = d(v_j, v_i) - そして, 三角不等式が成立する(
とv_i のとある「道」上の経由点v_j に対し,v_p )d(v_i, v_j) < d(v_i, v_p) + d(v_p, v_j)
テンポラルな「道」と「距離」
次にテンポラルな「道」の定義を確認する.
テンポラル・ネットワークでは, 経路上の枝が, 時間によって発生したり, 消えたりしている. そのため, 2頂点間の道の一部がある時刻で消えている場合には, 移動がスムーズに行われないケースがある. その場合, 移動のために枝が発生する時刻まで待機することとなる.[1]
また, タイミングによっては, 「道」が永久に途絶えてしまい, 目的の頂点に到達不可能な状態となる場合もある. つまり, テンポラル歩道は因果性をもつ道であり, 過去に発生した枝(イベント)の上を, 今歩いて移動することができない.
この因果性という制約のために, テンポラル・ネットワークの「歩道」は, 静止したネットワークとは全く別の性質を帯びることとなる.
以下, テンポラル歩道を表現する上で, イベント表現を利用する. イベント表現は, 枝リストに時間情報を含んだ
到達可能性行列
テンポラル・ネットワークでは,
そして大事なことであるが,
図の例は,
具体的には,計3つのテンポラル歩道があり, それぞれ
しかし, 使用するイベント表現が
時間によって到達可能性が変化していることを確認してもらえたらと思う. ちなみに, 一般的に到達可能性行列
さまざまな「距離」
静止したネットワークと同様に, テンポラル・ネットワークにも「距離」を定義することができる. ところで, 静止したネットワークとは異なり, テンポラル・ネットワークでは, 枝が時間によって発生したり,消えたりする.
それにより, 前項の到達可能性行列では, テンポラル・ネットワークの構造を示すイベント表現の数が限定的となった場合, つまり, ある時刻から出発した, あるいは, ある時刻までに到達しなければいけない, というケースでは, 目的となる頂点に到達できなくなる可能性があることを述べた. 到達できない, ということは, その2頂点間の距離
このように, 状況によっては2頂点間の移動ができないことがあり, 2頂点間の距離も変動する. つまりは, テンポラル・ネットワークでは, やはり, 「距離」も時間依存となる.
そして面白い特徴として, テンポラル・ネットワークでは, 最小距離を実現する歩道は道ではないかもしれない. つまりは,過去に通った2頂点間の枝を, 再度通る場合が, 最短経路となるケースがあるのだ. これは, 静止したネットワークではありえない.[3]
以下テンポラル距離を三つあげる. 頂点
また, 図の例と一緒に考えてみると理解が進むかもしれない.
(テンポラル版の)最短距離
一つ目は, いわゆる, テンポラル・ネットワーク版の最短距離である. 静止したネットワークでは, 最短距離は, 二頂点間の移動に必要な最小の枝数である[4]
テンポラル・ネットワークでも似たような概念が定義されている.
これは, 頂点
つまりは, 最短距離
先頭距離
つぎは, 先頭距離(foremost distance) である.これは,
と定義されている. ここで式に注目してほしいが, 最小化しているのは時間
旅行時間距離
三つ目は, 旅行時間距離である. 早速の定義であるが,
どれ使う?
3つのテンポラルな距離を紹介したが, 結局のところどれを使うと良いのだろうか?
答えは「ケースバイケース」となってしまう. なぜなら, それぞれ最小化しているものが違うため, 分析者の関心のある内容に合わせて適切な距離を選択する必要があるのだ.
各距離の違いについて, 『テンポラル・ネットワーク』(森北出版)では,わかりやすい例えを持ち出して説明してる.
例として, 公共交通ネットワークを考える. 枝は市内の駅と駅のつながりであるとする.
利用者が乗り換え愛数を最小化したいならd_{short}を用いるのがよい.
目的地になるべく早く到着したいのならを使うべきだ. d_{fore}
移動中の時間をなるべく小さくしたいならば,を用いるべきだ. d_{travel}
なお, 無向ネットワークだとしても,
時間に依存しない距離指標
テンポラルな道の最短距離
しかし, 実用面では, 時間に依存しない, テンポラル・ネットワーク全体についての二頂点間の距離に興味があるかもしれない.
そんな時刻
1つ目は, 時間全体を通して最小値を用いる方法である. こうすれば, いつ移動を始めるか, という時間の縛りを受けず,テンポラル・ネットワーク全体でただひとつ求めることができる. 特に, 最短距離
2つ目は, 時刻
3つ目は, 時間依存の距離指標を時刻全体にわたって平均する方法である.
ベクトル時計
最後に紹介するのは, 距離の定義から二頂点間で共有している情報の古さを測る, ベクトル時計である. もう少し詳しく述べると, 先頭距離の概念を用いることによって, 任意の頂点が他の任意の頂点についてどれだけ最近の情報をもっているかを定量化する.
テンポラルな視点
ベクトル時計を求めるため, 頂点
少し定義の内容が難しく感じたかとおもうが, 要は, 時刻
ちなみに, 頂点
テンポラルな視点
図(a)は, 今回想定するテンポラル・ネットワークで, 離散時刻
ここで時刻
すると, 図の点線矢印を辿ると,
情報潜時
そして
ベクトル時計と「前進」
さきほどは, 二頂点間の情報のやりとりに着目したが, それを拡張し, ある頂点
つまり,
そしてこのベクトル時計をつかい, 頂点
言い換えると, 「前進」はイベント
イメージとしては, イベント
まとめ
本記事は, テンポラル・ネットワークでの「距離」の定義や計算例を紹介した. テンポラル・ネットワーク上では, 二頂点間の距離の大きさが時間によって変化していた. また, 「距離」の定義もさまざまな指標が考えられることも特徴的である.
そして, そうしたテンポラルな距離を拡張し, 二頂点間での情報の鮮度を測るベクトル時計や, 情報潜時といった概念を紹介した.
距離が定義できたことで, いよいよネットワークの重要な量である「中心性」について説明できるようになった. 次回は, テンポラルな中心性を紹介するか, 今回が説明的な要素が多かったため, 先に「距離」やベクトル時計の計算アルゴリズムや実装例を紹介するかもしれない.
参考リスト
-
まるで信号待ちかのようだ ↩︎
-
この表現は本記事で勝手に定義している.時間の制約によって, さまざまな到達可能性行列がでてくる, と理解してもらえばそれでよい ↩︎
-
証明として, 一度通ったことのある頂点から, 冗長的な部分, 例えば, 1回目にその頂点を訪れてから, 2回目にその頂点を訪れるまでに通った歩道の部分を排除すれば, 移動距離は削減できるため. ↩︎
-
言うまでもないが, 枝に何らかの重みが定義されている場合は, その重みを最小にする経路が対象となる ↩︎
-
他の距離の定義でも同じだが,
で,t -> \inf となる. つまり, そもそものテンポラルな道がなくなる. ↩︎d_{short}(u, v; t) -> \inf -
他の時刻から計算した場合も載せているので各各人してほしい ↩︎
Discussion