🎓 レベル:発展 | 重要度:B(推奨)
📎 前提:次数・道・連結成分・攻撃耐性とロバスト性 | 関連:時間発展ネットワーク(temporal)
要点(BLUF)
- 多層ネットワーク:同じノードが複数の「層(関係の種類)」で同時に繋がる。友人かつ同僚、徒歩網と鉄道網など。
- 各層は独立した次数を持ち、層をまたぐ結合(inter-layer edge)が依存関係を表す。
- 層を1枚に潰す(集約)と情報が消える。相互依存ネットワークは単層より急激に崩壊しうる。
概念:関係は1種類ではない
同じ人どうしが「友人」「同僚」「家族」と複数の関係で繋がっていたり、同じ都市が「道路網」「鉄道網」「電力網」で結ばれていたり。現実は複数の関係の重ね合わせです。これらを別々の層として保持するのが多層ネットワーク。層を1枚に潰してしまうと、「どの関係で繋がっているか」「層をまたぐ依存」という重要情報が失われます。
数式:層と層間結合
多層ネットワークは、層 ごとの隣接行列 と、層をまたぐ結合で表します。同一ノード集合の各層が、それぞれ独立のエッジ構造を持ちます。
- 層内エッジ:層 の中での通常のエッジ。
- 層間エッジ:層 のノード と層 の同一ノード を結ぶ(同一実体の対応)。
- 多重次数:ノード の各層での次数 をベクトルとして持つ。集約すると 。
特に重要なのが相互依存ネットワーク(interdependent network):層Aのノードが機能するには層Bの対応ノードが必要、という依存。電力網(A)と通信網(B)の停電・通信障害の連鎖がこれです。
コードで確認
import networkx as nx
# 同じノード{0,1,2,3}を2つの関係(層)で繋ぐ
friend = nx.Graph([(0,1),(1,2),(2,3)]) # 友人層
colleague = nx.Graph([(0,2),(1,3),(0,3)]) # 同僚層
for n in [0,1,2,3]:
df = friend.degree(n)
dc = colleague.degree(n)
print(f"ノード{n}: 友人層次数={df}, 同僚層次数={dc}, 多重次数(合計)={df+dc}")
agg = nx.compose(friend, colleague) # 1枚に集約
print("集約グラフのエッジ数:", agg.number_of_edges())
実行結果:
ノード0: 友人層次数=1, 同僚層次数=2, 多重次数(合計)=3
ノード1: 友人層次数=2, 同僚層次数=1, 多重次数(合計)=3
ノード2: 友人層次数=2, 同僚層次数=1, 多重次数(合計)=3
ノード3: 友人層次数=1, 同僚層次数=2, 多重次数(合計)=3
集約すると全ノードの次数が3で均一に見えますが、層を分けると「友人としてのハブ」と「同僚としてのハブ」は別ノード(ノード1は友人層で次数2、ノード0は同僚層で次数2)。集約は構造の偏りを覆い隠すことが分かります。
層構造の図解
graph TD
subgraph L1["友人層"]
a0((0)) --- a1((1))
a1 --- a2((2))
a2 --- a3((3))
end
subgraph L2["同僚層"]
b0((0)) --- b2((2))
b1((1)) --- b3((3))
b0 --- b3
end
a0 -. "同一人物(層間結合)" .- b0
a1 -. " " .- b1
数式の直観的意味
多層を集約してはいけない理由は、ダイナミクスが層ごとに違うからです。病気は対面層で広がり、噂はSNS層で広がる。両者を足すと「実際には起こらない伝播」を許してしまう。さらに相互依存ネットワークでは、層Aの故障が層Bの故障を誘発し、それがまた層Aに跳ね返るカスケード故障が起こり、単層ネットワーク(攻撃耐性とロバスト性)よりはるかに脆い相転移を示します。2010年のBuldyrevらの研究は、相互依存ネットワークが単層と違って「不連続な(一次)相転移」で突然全崩壊しうることを示しました。層を保つことは、この危うさを見るために不可欠です。
⚠️ よくある誤解・落とし穴
- 集約(aggregation)で層情報を捨てない:1枚に潰すと多層特有の依存・脆弱性が消えます。
- 多重ネットワーク(multiplex)と相互依存ネットワークの区別:前者は同一ノード集合で層が違うだけ、後者は層間に機能的依存がある。崩壊の仕方が違います。
- 層間結合の強さがダイナミクスを変える:結合が強いと層が同期し、弱いと独立に振る舞う。中間で興味深い転移が起きます。
対応シミュレーション
本文のコードがそのまま検証用です。単層の頑健性は 攻撃耐性とロバスト性。
関連
- 前提:次数・道・連結成分・攻撃耐性とロバスト性
- 時間という別の次元:時間発展ネットワーク(temporal)
- 上位ハブ:時間・多層・二部ネットワーク 目次