🎓 レベル:標準 | 重要度:A(必須)
📎 前提:次数・道・連結成分・拡散と感染症モデル(SI・SIS・SIR) | 関連:ランダムウォークと拡散の数理
要点(BLUF)
- 時間発展ネットワーク:各エッジに「いつ接触したか」の時刻が付く。接触は瞬間的・断続的。
- 時間尊重パス(temporal path):時刻が単調増加する経路だけが有効。過去には戻れない。
- 静的グラフで繋がっていても、時間順序のせいで到達できないことがある。感染経路や情報伝播の因果を正しく扱える。
概念:いつ繋がったかが効く
これまでのグラフはエッジが「常時存在する」前提でした。でも現実の接触 — 会話、メール、対面 — は特定の時刻に瞬間的に起きる断続的なものです。感染症(拡散と感染症モデル(SI・SIS・SIR))で「AがBに会い、後でBがCに会った」なら病気はA→Cへ伝わりうるが、順序が逆なら伝わらない。この時間順序の因果を捉えるのが時間発展ネットワークです。
数式:時間尊重パス
時間発展ネットワークは、時刻つきエッジの列 の集合で表します。時間尊重パスとは、ノード列 と時刻列 で、各 が時刻 に接触しているもの。
この単調性の制約が決定的です。静的グラフの道(次数・道・連結成分)と違い:
- 非対称: から へ時間尊重パスがあっても、逆は成り立たないことがある。
- 非推移的: と があっても、時刻が逆順なら は成り立たない。
コードで確認
import networkx as nx
# (u, v, t): 時刻tに接触したエッジ
edges = [(0, 1, 3), (1, 2, 1), (2, 3, 2)]
def temporal_reachable(edges, src):
"""時間尊重パス:エッジは時刻の昇順にしか使えない(過去には戻れない)"""
arrive = {src: 0} # ノード -> そこに到達した時刻
for (u, v, t) in sorted(edges, key=lambda e: e[2]): # 時刻順に処理
if u in arrive and arrive[u] <= t and (v not in arrive or t < arrive[v]):
arrive[v] = t
if v in arrive and arrive[v] <= t and (u not in arrive or t < arrive[u]):
arrive[u] = t
return arrive
print("時刻つきエッジ:", edges)
print("0から時間尊重で到達可能:", temporal_reachable(edges, 0))
Gs = nx.Graph([(u, v) for u, v, t in edges]) # 時刻を無視した静的グラフ
print("0から静的に到達可能 :", sorted(nx.node_connected_component(Gs, 0)))
実行結果:
時刻つきエッジ: [(0, 1, 3), (1, 2, 1), (2, 3, 2)]
0から時間尊重で到達可能: {0: 0, 1: 3}
0から静的に到達可能 : [0, 1, 2, 3]
静的に見れば 0-1-2-3 は一本道で全員つながっています。しかし時間順では、0が1に出会うのは時刻3。その時にはもう 1-2(時刻1)も 2-3(時刻2)も過去に起きてしまっているので、0から2や3へは決して到達できません。時刻を考えると到達範囲が劇的に狭まる — これが時間発展ネットワークの核心です。
時間順序が因果を決める
graph LR
A["0 →(t=3) 1"] -.->|"1→2 は t=1<br/>もう過去"| X["2へ行けない"]
B["静的には<br/>0-1-2-3 全連結"] --> C["時間順では<br/>0→1 まで"]
数式の直観的意味
時間尊重パスの単調性 は、「情報や病気は過去にさかのぼれない」という当たり前の因果を数式にしたものです。静的グラフの分析(中心性・連結成分)をそのまま時間発展ネットワークに当てると、実際には起こりえない経路を数えてしまう。たとえば媒介中心性(近接中心性・媒介中心性)を静的グラフで計算すると、時間的にありえない仲介を過大評価します。だから temporal では「到達可能性」「最短時間経路」「バースト性(接触が時間的に固まる性質)」といった時間固有の量を測り直す必要があります。
⚠️ よくある誤解・落とし穴
- 静的グラフに潰すと因果が壊れる:時刻を捨てて集約すると、ありえない経路を生む。感染・情報伝播では致命的です。
- 到達性が非対称・非推移的:静的グラフの直観(道があれば双方向・推移的)が通用しない。
- 「いつ・どれだけの間」も重要:接触のタイミングだけでなく持続時間やバースト性(拡散と感染症モデル(SI・SIS・SIR) の流行速度に影響)も効きます。
対応シミュレーション
本文のコードがそのまま検証用です。拡散ダイナミクスとの接続は 拡散と感染症モデル(SI・SIS・SIR)。
関連
- 前提:次数・道・連結成分・拡散と感染症モデル(SI・SIS・SIR)
- 重ね合わせの拡張:多層・多重ネットワーク(multilayer)
- 上位ハブ:時間・多層・二部ネットワーク 目次