スペクトルグラフ理論入門
M2 楠本
自己紹介
楠本 充 aka @ir5
所属 : 京都大学 岩間研究室 修士二年
研究 : 理論系のグラフアルゴリズム
PFI : インターン(2012) → アルバイト
プログラミングコンテストに参加していた系の人
• GCJ(2011), ICPC(2012), TCO(2013) ← !!New!!
概要
スペクトルグラフ理論 : グラフを解析する手法の話
• グラフの隣接行列 (のようなもの) の固有値・固有
ベクトルが,元のグラフの何らかの性質を物語っている
入門的な話をします
1
2
4 5
3
G AG
・グラフカット
・彩色数
・グラフ直径
等
μ1 = -2
μ2 = -1.170
μ3 = 0
μ4 = 0.6888
μ5 = 2.4811
[01010]
[10110]
[01001]
[11001]
[00110]
固有値:
アウトライン
• 線形代数の軽い復習
• スペクトルグラフ理論の概要
• 理論の話
• 応用の話 (軽く)
線形代数
例 : 𝐴 =
1 2
2 4
のとき,
1 2
2 4
1
2
= 5
1
2
,
1 2
2 4
−2
1
= 0
−2
1
なので A の固有値は 5, 0 で,対応する固有ベクトルは
1
2
,
−2
1
.
n×n 行列 A に対してスカラー λ,ベクトル ψ ≠ 0 が
Aψ = λψ
を満たすとき λ を A の固有値,ψ を固有ベクトルと言う.
線形代数
「∃ψ ≠ 0,Aψ = λψ」 ⇔ det(A - λI) = 0
で det(A - λI) は λ の n 次多項式なのでこのような λ は
高々 n 個ある.
異なる λ に属する固有ベクトルは互いに直交する.
λ に属する固有ベクトルは無限個考えられるが,
その中でも線形独立なものだけを考える.
n×n 行列 A に対してスカラー λ,ベクトル ψ ≠ 0 が
Aψ = λψ
を満たすとき λ を A の固有値,ψ を固有ベクトルと言う.
線形代数
一般に
• 固有値は複素数かもしれない
• 線形独立な固有ベクトルは n 個未満かもしれない
が,A が実対称行列のときは
• 固有値は全て実数
• 固有ベクトルの各要素は全て実数
• 固有ベクトルが正規直行基底になるように n 個取れる
(よく知られた性質)
n×n 行列 A に対してスカラー λ,ベクトル ψ ≠ 0 が
Aψ = λψ
を満たすとき λ を A の固有値,ψ を固有ベクトルと言う.
定義
• G = (V, E) : n 頂点無向グラフ (有向グラフは扱わない)
• AG := G の隣接行列,DG := G の次数行列
1
2
4 5
3
G
[01010]
[10110]
[01001]
[11001]
[00110]
AG DG
[2 ]
[ 3 ]
[ 2 ]
[ 3 ]
[ 2]
定義
• G = (V, E) : n 頂点無向グラフ (有向グラフは扱わない)
• AG := G の隣接行列,DG := G の次数行列
• LG := -AG + DG ラプラシアン行列
1
2
4 5
3
G
LG
[ 2 -1 0 -1 0]
[-1 3 -1 -1 0]
[ 0 -1 2 0 -1]
[-1 -1 0 3 -1]
[ 0 0 -1 -1 2]
定義
• AG, LG は実対称なので実数の固有値を持つ
• λ1 ≤ λ2 ≤ λ3 ≤ … ≤ λn : LG の固有値
• ψ1, ψ2, ψ3, …, ψn : 各 λi に対応する固有ベクトル
1
2
4 5
3
G
LG
[ 2 -1 0 -1 0]
[-1 3 -1 -1 0]
[ 0 -1 2 0 -1]
[-1 -1 0 3 -1]
[ 0 0 -1 -1 2]
例
1
2
4 5
3
λ1 λ2 λ3 λ4 λ5
ψ1 ψ2 ψ3 ψ4 ψ5
1
2
3
4
5
例
λ1 λ2 λ3 λ4 λ5 λ6 λ7 λ8 λ9
ψ1 ψ2 ψ3 ψ4 ψ5 ψ6 ψ7 ψ8 ψ9
スペクトルグラフ理論
AG や LG の固有値と固有ベクトルを使ってグラフの性質を
解析する分野
例:
λ2 = 0 ⇔ グラフ G が非連結
λk = 0, λk+1 > 0 ⇔ グラフ G が k 個連結成分を持つ
λ1 λ2 λ3 λ4 λ5 λ6
スペクトルグラフ理論
歴史: 1950s~, 古くからある
理論的な興味:
グラフの特徴と固有値の特徴をうまく関連付けたい.
• グラフのパラメータを不等式で bound する
応用:
• スペクトラルクラスタリング
• 画像のセグメンテーション
• グラフの同型性判定
• グラフの平面描画
• etc.
スペクトルグラフ理論
今日の内容 (再) :
スペクトルグラフ理論の入門的な内容
Yale 大学の Daniel Spielman 先生の講義録の前半部を
強く参考にしています
http://www.cs.yale.edu/homes/spielman/561/
ラプラシアンの固有値
ラプラシアンの性質
• ベクトル x に対して, 𝑥 𝑇 𝐿 𝐺 𝑥 = 𝑥 𝑖 − 𝑥 𝑗
2
𝑖,𝑗 ∈𝐸(𝐺)
• なので LG は半正定値行列である
• λ1 = 0
• 半正定値行列なので固有値は ≥ 0
• LG 1 = 0 なので LG は固有値 0 を持つ
1
2
4 5
3 [ 2 -1 0 -1 0]
[-1 3 -1 -1 0]
[ 0 -1 2 0 -1]
[-1 -1 0 3 -1]
[ 0 0 -1 -1 2]
ラプラシアンの性質
λ2 はどうか?
• 行列 M, ベクトル x に対して,
𝑥 𝑇 𝑀𝑥
𝑥 𝑇 𝑥
を M に関する x のレイリー商と呼ぶ.
(正規化された2次形式)
1
2
4 5
3 [ 2 -1 0 -1 0]
[-1 3 -1 -1 0]
[ 0 -1 2 0 -1]
[-1 -1 0 3 -1]
[ 0 0 -1 -1 2]
ラプラシアンの性質
補題. 𝜆2 = min 𝑥⊥1
𝑥 𝑇
𝐿 𝐺
𝑥
𝑥 𝑇
𝑥
(= min
𝑥⊥1, 𝑥 =1
𝑥 𝑖 − 𝑥 𝑗
2
)
𝑖,𝑗 ∈𝐸
1
2
4 5
3 [ 2 -1 0 -1 0]
[-1 3 -1 -1 0]
[ 0 -1 2 0 -1]
[-1 -1 0 3 -1]
[ 0 0 -1 -1 2]
1
2
4 5
3
0.63246
0.19544
0.19544 -0.51167
-0.51167
ラプラシアンの性質
補題. 𝜆2 = min 𝑥⊥1
𝑥 𝑇
𝐿 𝐺
𝑥
𝑥 𝑇
𝑥
証明:略 (適当に線形代数するとできる)
ちなみに:
• 実対称行列ならラプラシアンでなくても成立
1
2
4 5
3 [ 2 -1 0 -1 0]
[-1 3 -1 -1 0]
[ 0 -1 2 0 -1]
[-1 -1 0 3 -1]
[ 0 0 -1 -1 2]
テストベクトル
右辺が何かのグラフパラメータになるように x を取ると,
グラフパラメータを固有値で下から bound できて便利.
(そのような x をテストベクトルと呼ぶ)
補題より,何か適当な 𝑥 ⊥ 1を取ってくると以下が成立
𝜆2 ≤
𝑥 𝑇 𝐿 𝐺 𝑥
𝑥 𝑇 𝑥
テストベクトル
例:
∂(S) := {(u, v)∈E | u∈S, v ∉ S}
ℎ 𝐺 ≔ min
𝑆
|𝜕 𝑆 |
min( 𝑆 , 𝑉−𝑆 )
(edge expansion)
• グラフのカットに関するパラメータの1つ
• (各頂点から平均何本辺が外に出ているか?)
• h(G) の計算はNP完全
S
G
∂(S)
テストベクトル
例:
∂(S) := {(u, v)∈E | u∈S, v ∉ S}
ℎ 𝐺 ≔ min
𝑆
|𝜕 𝑆 |
min( 𝑆 , 𝑉−𝑆 )
(edge expansion)
|𝜕 𝑆 |
𝑆
= 4/4 = 1
|𝜕 𝑆 |
𝑆
= 2/1 = 2
テストベクトル
証明
• S を最小のedge expansion を達成する頂点集合とする:
ℎ 𝐺 =
|𝜕 𝑆 |
𝑆
.
• ベクトル y を 𝑦 𝑖 =
1 𝑖𝑓 𝑖 ∈ 𝑆
0 𝑜𝑡ℎ𝑒𝑟𝑤𝑖𝑠𝑒
とおく.
• yT LG y = ∂(S) である.
定理. λ2 ≤ 2h(G)
S
G
∂(S)
テストベクトル
証明 (cont.)
• x = y - s1 (s := |S| / |V|) とおくと,
• x ⊥ 1
• xTLGx = ∂(S)
• xTx = |S|(1-s)
となるので,
定理. λ2 ≤ 2h(G)
S
G
∂(S)
𝜆2 ≤
𝑥 𝑇 𝐿 𝐺 𝑥
𝑥 𝑇 𝑥
=
𝜕 𝑆
𝑆 1 − 𝑠
≤ 2ℎ(𝐺)
独立集合・彩色数
定理. S を G の独立集合とする.
S の平均次数を dave(S) とするとき,以下が成立.
𝑆 ≤ 𝑛(1 −
𝑑 𝑎𝑣𝑒(𝑆)
𝜆 𝑛
)
• 証明はテストベクトルによる.
• ただし 𝜆2 = m𝑎𝑥
𝑥
𝑥 𝑇
𝐿 𝐺
𝑥
𝑥 𝑇
𝑥
を用いる
これを利用して彩色数を bound できる.
独立集合・彩色数
定理. χ(G) を G の彩色数とすると,
𝜒 𝐺 ≥
𝜆 𝑛
𝜆 𝑛 − 𝑑 𝑎𝑣𝑒(𝐺)
証明
• k = χ(G) として Si を色 i の点集合とすると
𝑆𝑖 ≤ 𝑛 1 −
𝑑 𝑎𝑣𝑒 𝑆𝑖
𝜆 𝑛
i = 1,...,k について足すと,
n ≤ n(k - dave(G)/λn)
∴ k ≥ λn / (λn - dave(G))
Cheeger の不等式
d(S) := S の次数和
𝜙 𝐺 ≔ min
𝑆
|𝜕 𝑆 |
min(𝑑 𝑆 ,𝑑 𝑉−𝑆 )
(conductance)
• カットに関するパラメータの一つ
|𝜕 𝑆 |
min(𝑑 𝑆 ,𝑑 𝑉−𝑆 )
= 4/12 = 1/3
Cheeger の不等式
さらに 𝑁 𝐺 ≔ 𝐷 𝐺
−
1
2 𝐿 𝐺 𝐷 𝐺
−
1
2 とする.
• 対角成分が 1 になるように行と列に値をかけたもの
0 = ν1 ≤ ν2 ≤ ν3 ≤ ... ≤ νn : NG の固有値
• 左側はテストベクトルによる.
• 右側は結構難しい.Luca Trevisan の確率的手法による
証明がカッコいい.
定理 (Cheeger の不等式):
𝜈2
2
≤ 𝜙 𝐺 ≤ √(2𝜈2)
Cheeger の不等式
いい点:
固有ベクトルを求めると実際にこの不等式を達成する
カット集合 S を1つ求めることができる.
• 対応するベクトルの要素が閾値より低いものを
カット頂点に選ぶ,とかする
→ 質の良いカットを求められる可能性
𝜙 𝐺 ≤ √(2𝜈2)
隣接行列の固有値
隣接行列
隣接行列の固有値・固有ベクトルについて考える.
• μ1 ≥ μ2 ≥ μ3 ≥ … ≥ μn : AG の固有値
• φ1, φ2, φ3, …, φn : 各 λi に対応する固有ベクトル
とする
隣接行列
なぜ λi と μi で並びが逆?
もし G の次数がすべて d なら LG = dI - AG なので
• LG の最大固有値 = d - (AG の最小固有値)
• …
• LG の最小固有値 = d - (AG の最大固有値)
と対応しているため.
性質 (Perron-Frobenius) : G が連結なとき,
• μ1 + μn ≥ 0
• μ1 > μ2
• φ1 > 0 とか
彩色数 (Wilf の定理)
次の補題を利用する:
• i. (G の平均次数) ≤ μ1
• ii. グラフから1頂点削除すると隣接行列の最大固有値は
変わらないか,減少する.
証明: n の帰納法による.
• n=1 は自明.n ≥ 2 のときを考える.
• i. より,次数 μ1 以下の点があるのでそれを v とする.
• ii. と帰納法の仮定より G-{v} は μ1+1 色で塗れる.
v の次数は μ1 以下なので,μ1+1 色のうち使われてない色で
v を塗ると良い.
𝜒 𝐺 ≤ 𝜇1 + 1
応用の話
応用の話
(あまり追えてないので軽くやります)
グラフ同型性判定
• 2つのグラフ G, H が同型か判定したい
• 一般には P 問題でも NP完全でもないと予想されている
• 自明なこと: G, H で固有値の列が違う ⇒ G, H は非同型
• 逆は成立しない.
応用の話
(あまり追えてないので軽くやります)
グラフ同型性判定
• [Babai, Grigoryev, Mount ‘82]
固有値の重複度が定数なら多項式時間で判定可能.
• [Furer ‘95]
実数計算無しのアルゴリズムを提案
応用の話
スペクトラルクラスタリング
• グラフのクラスタリングアルゴリズム
• Normalized cut という edge expansion を少し変形した
パラメータを最大化する.
• 固有ベクトルを計算することで,良い normalized cut を
得られる.
• 一応理論上の bound 有り?
• 実用上は理論の bound よりも良い性能が出る模様
• データマイニングの分野で結構応用されているっぽい?
応用の話
画像セグメンテーション
• Normalized cut の応用
• グラフの密度と出力の精度にトレードオフがある
Spectral segmentation with multiscale graph decomposition. Cour et al. ‘05
応用の話
グラフ彩色
• 3彩色問題 : 頂点を3色に塗り分け,同じ色の点同士は
結ばれてないようにしたい
• 有名な NP 完全問題
• 入力が 3彩色可能なグラフに制限されていても難しい
• [Alon, Nabil ‘97] 入力を 3 彩色可能なランダムグラフに
制限したとき,確率ほぼ 1 でグラフを3彩色する.
応用の話
グラフ彩色
アルゴリズム:
• 隣接行列の固有ベクトル φn, φn-1 を計算
• 2次元上の点集合 (φn(i), φn-1(i)) を考える.
それらを原点を通る直線で n/2 個ずつに分ける.
• 「直線から近い点」「直線から遠くて (左側 |右側) に
ある点」の 3 つに分類 → 3彩色になるよう調整する
プログラミングコンテスト
における固有値
実際使われた例は殆ど見かけない.強いて挙げるなら…
KUPC2013 K問題 「encode/decode」
「長さ L の0/1 列と↓のグラフの長さ L+10 のウォークを
1対1対応させる関数を作れ.」
長さ L のウォークの個数 = Θ(μ1^L) で,↑のグラフでは
μ1 = 2 であることを利用する.
http://www.math.dartmouth.edu/~m68f11/algcomb.pdf
グラフスペクトル解析ツール
実際に固有値を見たい人向けツール
他にも多数.
Sage : 本格的数式処理システム
http://www.sagemath.org/
newGraph : 手軽
http://www.mi.sanu.ac.rs/newgraph/
まとめ
スペクトルグラフ理論の入門的な内容について発表した.
理論:
• ラプラシアンのテストベクトルによるパラメータ bound
• カットパラメータ
• 独立集合,彩色数
応用:
• スペクトラルクラスタリング
• グラフ彩色
他にも グラフ直径,Expander グラフ,グラフ平面描画,
ランダムウォーク,行列木定理など.

スペクトラルグラフ理論入門