29
第6回 グラフ理論・組み合わせ論 情報学部門 瀧本 英二 http://www.i.kyushu-u.ac.jp/~eiji

第6回 グラフ理論・組み合わせ論 - i.kyushu-u ...eiji/GraphCombinatorics/graph-combinatorics6.… · 全域木(復習) 定義:連結グラフ𝐺=(𝑉,𝐸)の全域木(spanning

Embed Size (px)

Citation preview

Page 1: 第6回 グラフ理論・組み合わせ論 - i.kyushu-u ...eiji/GraphCombinatorics/graph-combinatorics6.… · 全域木(復習) 定義:連結グラフ𝐺=(𝑉,𝐸)の全域木(spanning

第6回

グラフ理論・組み合わせ論情報学部門 瀧本英二

http://www.i.kyushu-u.ac.jp/~eiji

Page 2: 第6回 グラフ理論・組み合わせ論 - i.kyushu-u ...eiji/GraphCombinatorics/graph-combinatorics6.… · 全域木(復習) 定義:連結グラフ𝐺=(𝑉,𝐸)の全域木(spanning

最小全域木とその応用クラスタリング

ユークリッド最小全域木問題

巡回セールスマン問題

Page 3: 第6回 グラフ理論・組み合わせ論 - i.kyushu-u ...eiji/GraphCombinatorics/graph-combinatorics6.… · 全域木(復習) 定義:連結グラフ𝐺=(𝑉,𝐸)の全域木(spanning

全域木(復習)

定義:連結グラフ 𝐺 = (𝑉, 𝐸)の全域木(spanning tree)とは,𝐺 の部分グラフ 𝑇 = 𝑉, 𝐸′ , 𝐸′ ⊆ 𝐸 で木であるもの.

3

例:

𝐺 𝐺 の全域木の1つ

Page 4: 第6回 グラフ理論・組み合わせ論 - i.kyushu-u ...eiji/GraphCombinatorics/graph-combinatorics6.… · 全域木(復習) 定義:連結グラフ𝐺=(𝑉,𝐸)の全域木(spanning

最小全域木 (Minimum Spanning Tree)

定義:辺重み 𝑤:𝐸 → 𝑅 つき連結グラフ 𝐺 = (𝑉, 𝐸)の最小全域木とは,𝐺 の全域木 𝑇 = (𝑉, 𝐸’)で,重みの和

𝑒∈𝐸′𝑤(𝑒) が最小になるもの.

4

例:

𝐺 𝐺 の最小全域木

3 12

6 7 2

4

3

71

3 12

6 7 2

4

3

71

Page 5: 第6回 グラフ理論・組み合わせ論 - i.kyushu-u ...eiji/GraphCombinatorics/graph-combinatorics6.… · 全域木(復習) 定義:連結グラフ𝐺=(𝑉,𝐸)の全域木(spanning

最小全域木問題

入力:辺重み 𝑤:𝐸 → 𝑅 つき連結グラフ 𝐺 = (𝑉, 𝐸)

出力:𝐺 の最小全域木

5

クラスカル法(Kruskal’s Algorithm)𝑂 𝐸 log 𝐸 時間

プリム法(Prim’s Algorithm)𝑂( 𝐸 + 𝑉 log 𝑉 ) 時間

平面上のグラフ(𝑉 ⊆ 𝑅2, 𝑤 𝑢, 𝑣 = 𝑢 − 𝑣 )のとき(ユークリッド最小全域木問題)𝑂 𝑉 log 𝑉 時間

Page 6: 第6回 グラフ理論・組み合わせ論 - i.kyushu-u ...eiji/GraphCombinatorics/graph-combinatorics6.… · 全域木(復習) 定義:連結グラフ𝐺=(𝑉,𝐸)の全域木(spanning

クラスカル法

入力:辺重み 𝑤:𝐸 → 𝑅 つき連結グラフ 𝐺 = 𝑉, 𝐸

出力:𝐺 の最小全域木 𝑉, 𝐸′

6

初期化: 𝐸′ = ∅辺を重み順でソート: 𝑤 𝑒1 ≤ ⋯ ≤ 𝑤(𝑒𝑚)各 𝑖 = 1,… ,𝑚 に対し,以下を行う.もし 𝑉, 𝐸′ ∪ 𝑒𝑖 が閉路を持たないなら 𝐸′ = 𝐸′ ∪ 𝑒𝑖

4

3 12

6 7 2 3

71

4

3 12

6 7 2 3

71

4

3 12

6 7 2 3

71

Page 7: 第6回 グラフ理論・組み合わせ論 - i.kyushu-u ...eiji/GraphCombinatorics/graph-combinatorics6.… · 全域木(復習) 定義:連結グラフ𝐺=(𝑉,𝐸)の全域木(spanning

クラスカル法

入力:辺重み 𝑤:𝐸 → 𝑅 つき連結グラフ 𝐺 = 𝑉, 𝐸

出力:𝐺 の最小全域木 𝑉, 𝐸′

7

初期化: 𝐸′ = ∅辺を重み順でソート: 𝑤 𝑒1 ≤ ⋯ ≤ 𝑤(𝑒𝑚)各 𝑖 = 1,… ,𝑚 に対し,以下を行う.もし 𝑉, 𝐸′ ∪ 𝑒𝑖 が閉路を持たないなら 𝐸′ = 𝐸′ ∪ 𝑒𝑖

4

3 12

6 7 2 3

71

4

3 12

6 7 2 3

71

4

3 12

6 7 2 3

71

Page 8: 第6回 グラフ理論・組み合わせ論 - i.kyushu-u ...eiji/GraphCombinatorics/graph-combinatorics6.… · 全域木(復習) 定義:連結グラフ𝐺=(𝑉,𝐸)の全域木(spanning

クラスカル法

入力:辺重み 𝑤:𝐸 → 𝑅 つき連結グラフ 𝐺 = 𝑉, 𝐸

出力:𝐺 の最小全域木 𝑉, 𝐸′

8

初期化: 𝐸′ = ∅辺を重み順でソート: 𝑤 𝑒1 ≤ ⋯ ≤ 𝑤(𝑒𝑚)各 𝑖 = 1,… ,𝑚 に対し,以下を行う.もし 𝑉, 𝐸′ ∪ 𝑒𝑖 が閉路を持たないなら 𝐸′ = 𝐸′ ∪ 𝑒𝑖

4

3 12

6 7 2 3

71

4

3 12

6 7 2 3

71

4

3 12

6 7 2 3

71

×

×

Page 9: 第6回 グラフ理論・組み合わせ論 - i.kyushu-u ...eiji/GraphCombinatorics/graph-combinatorics6.… · 全域木(復習) 定義:連結グラフ𝐺=(𝑉,𝐸)の全域木(spanning

クラスカル法

入力:辺重み 𝑤:𝐸 → 𝑅 つき連結グラフ 𝐺 = 𝑉, 𝐸

出力:𝐺 の最小全域木 𝑉, 𝐸′

9

初期化: 𝐸′ = ∅辺を重み順でソート: 𝑤 𝑒1 ≤ ⋯ ≤ 𝑤(𝑒𝑚)各 𝑖 = 1,… ,𝑚 に対し,以下を行う.もし 𝑉, 𝐸′ ∪ 𝑒𝑖 が閉路を持たないなら 𝐸′ = 𝐸′ ∪ 𝑒𝑖

4

3 12

6 7 2 3

71

4

3 12

6 7 2 3

71

Page 10: 第6回 グラフ理論・組み合わせ論 - i.kyushu-u ...eiji/GraphCombinatorics/graph-combinatorics6.… · 全域木(復習) 定義:連結グラフ𝐺=(𝑉,𝐸)の全域木(spanning

クラスタリング

データ集合を,類似性に基づきクラスタと呼ばれる部分集合族に分割すること

11

定式化・アルゴリズムが無数に提案されている

Page 11: 第6回 グラフ理論・組み合わせ論 - i.kyushu-u ...eiji/GraphCombinatorics/graph-combinatorics6.… · 全域木(復習) 定義:連結グラフ𝐺=(𝑉,𝐸)の全域木(spanning

階層的クラスタリング

入力:距離行列 𝑀 ∈ 𝑅𝑛×𝑛

𝑀[𝑖, 𝑗]はデータ 𝑖 とデータ 𝑗間の距離

出力:樹形図(dendrogram)

12

1

2

34

5

𝑀 1 2 3 4 5

1 0 1.9 1.7 1.0 2.3

2 1.9 0 2.1 2.7 1.4

3 1.7 2.1 0 1.6 1.9

4 1.0 2.7 1.6 0 2.8

5 2.3 1.4 1.9 2.8 01 4 3 2 5

樹形図

クラスタ間距離

Page 12: 第6回 グラフ理論・組み合わせ論 - i.kyushu-u ...eiji/GraphCombinatorics/graph-combinatorics6.… · 全域木(復習) 定義:連結グラフ𝐺=(𝑉,𝐸)の全域木(spanning

階層的クラスタリング

入力:距離行列 𝑀 ∈ 𝑅𝑛×𝑛

𝑀[𝑖, 𝑗]はデータ 𝑖 とデータ 𝑗間の距離

出力:樹形図(dendrogram)

13

1

2

34

5

𝑀 1 2 3 4 5

1 0 1.9 1.7 1.0 2.3

2 1.9 0 2.1 2.7 1.4

3 1.7 2.1 0 1.6 1.9

4 1.0 2.7 1.6 0 2.8

5 2.3 1.4 1.9 2.8 01 4 3 2 5

樹形図

クラスタ間距離

Page 13: 第6回 グラフ理論・組み合わせ論 - i.kyushu-u ...eiji/GraphCombinatorics/graph-combinatorics6.… · 全域木(復習) 定義:連結グラフ𝐺=(𝑉,𝐸)の全域木(spanning

階層的クラスタリング

入力:距離行列 𝑀 ∈ 𝑅𝑛×𝑛

𝑀[𝑖, 𝑗]はデータ 𝑖 とデータ 𝑗間の距離

出力:樹形図(dendrogram)

14

1

2

34

5

𝑀 1 2 3 4 5

1 0 1.9 1.7 1.0 2.3

2 1.9 0 2.1 2.7 1.4

3 1.7 2.1 0 1.6 1.9

4 1.0 2.7 1.6 0 2.8

5 2.3 1.4 1.9 2.8 01 4 3 2 5

樹形図

クラスタ間距離

Page 14: 第6回 グラフ理論・組み合わせ論 - i.kyushu-u ...eiji/GraphCombinatorics/graph-combinatorics6.… · 全域木(復習) 定義:連結グラフ𝐺=(𝑉,𝐸)の全域木(spanning

階層的クラスタリング

入力:距離行列 𝑀 ∈ 𝑅𝑛×𝑛

𝑀[𝑖, 𝑗]はデータ 𝑖 とデータ 𝑗間の距離

出力:樹形図(dendrogram)

15

1

2

34

5

𝑀 1 2 3 4 5

1 0 1.9 1.7 1.0 2.3

2 1.9 0 2.1 2.7 1.4

3 1.7 2.1 0 1.6 1.9

4 1.0 2.7 1.6 0 2.8

5 2.3 1.4 1.9 2.8 01 4 3 2 5

樹形図

クラスタ間距離

Page 15: 第6回 グラフ理論・組み合わせ論 - i.kyushu-u ...eiji/GraphCombinatorics/graph-combinatorics6.… · 全域木(復習) 定義:連結グラフ𝐺=(𝑉,𝐸)の全域木(spanning

凝集型階層的クラスタリング法

16

1

2

34

5

1 4 3 2 5

初期状態:1データ1クラスタ(クラスタ数 𝑛)

クラスタ数が1になるまで,以下を繰り返す.

クラスタ間距離が最小となるクラスタ対 (𝐶, 𝐶′) を併合

•最短距離法: 𝑑 𝐶, 𝐶′ = min 𝑀 𝑖, 𝑗 𝑖 ∈ 𝐶, 𝑗 ∈ 𝐶′

1.01.4

1.6

Page 16: 第6回 グラフ理論・組み合わせ論 - i.kyushu-u ...eiji/GraphCombinatorics/graph-combinatorics6.… · 全域木(復習) 定義:連結グラフ𝐺=(𝑉,𝐸)の全域木(spanning

最小全域木による最短距離法の実装

17

重み 𝑤: 𝑖, 𝑗 ↦ 𝑀 𝑖, 𝑗 つき完全グラフ𝐾𝑛 = 1,2, … , 𝑛 , 𝐸 の最小全域木 (𝑉, 𝐸′)を求める

重みが小さい順に 𝐸′の辺の両端点を併合

1

2

34

51.0

1.9

1.7

2.3

2.1

2.7

1.4

1.6

1.9

2.8

1 4 3 2 5

1.01.4

1.6

1.9

Page 17: 第6回 グラフ理論・組み合わせ論 - i.kyushu-u ...eiji/GraphCombinatorics/graph-combinatorics6.… · 全域木(復習) 定義:連結グラフ𝐺=(𝑉,𝐸)の全域木(spanning

ユークリッド最小全域木(EMST)問題

18

入力: 𝑉 ⊆ 𝑅2 (𝑛 = |𝑉|)

出力:重み 𝑤 𝑢, 𝑣 = 𝑢 − 𝑣 の完全グラフ 𝐾𝑛 の最小全域木

1

2

34

51.0

1.9

1.7

2.3

2.1

2.7

1.4

1.6

1.9

2.8

点集合 𝑉 に対する最短距離法による階層的クラスタリングに使える

距離行列を作成するとそれだけで Ω 𝑛2 時間

ボロノイ図(デローネイグラフ)を使うと 𝑂 𝑛 log 𝑛 時間

Page 18: 第6回 グラフ理論・組み合わせ論 - i.kyushu-u ...eiji/GraphCombinatorics/graph-combinatorics6.… · 全域木(復習) 定義:連結グラフ𝐺=(𝑉,𝐸)の全域木(spanning

ボロノイ図(Voronoi diagram)

平面上にいくつかの点が与えられたとき,どの点に最も近いかという基準で平面を分割したもの.

2点だけの場合2点の垂直2等分線による分割

3点の場合垂直2等分線を組み合わせたもの

垂直2等分線の交点は3点の外接円の中心

Page 19: 第6回 グラフ理論・組み合わせ論 - i.kyushu-u ...eiji/GraphCombinatorics/graph-combinatorics6.… · 全域木(復習) 定義:連結グラフ𝐺=(𝑉,𝐸)の全域木(spanning

ボロノイ辺

ボロノイ頂点

ボロノイ領域

母点(与えられた点)

ボロノイ図

𝑛 個の母点に対し,𝑂 𝑛 log 𝑛 時間で計算可能

Page 20: 第6回 グラフ理論・組み合わせ論 - i.kyushu-u ...eiji/GraphCombinatorics/graph-combinatorics6.… · 全域木(復習) 定義:連結グラフ𝐺=(𝑉,𝐸)の全域木(spanning

デローネイグラフ(Delaunay Graph)

ボロノイ図の双対グラフ 𝐺(𝑉, 𝐸)•𝑉 =母点の集合•𝐸 = 𝑢, 𝑣 𝑢 と 𝑣のボロノイ領域が隣接している

デローネイグラフは平面グラフ

母点が一般の位置にあるとき,デローネイグラフは三角形分割を与える.(デローネイ三角形分割)

平面グラフの性質より|𝐸| ≤ 3𝑛 − 6 (𝑛 ≥ 3のとき)

・・・ オイラーの公式

Page 21: 第6回 グラフ理論・組み合わせ論 - i.kyushu-u ...eiji/GraphCombinatorics/graph-combinatorics6.… · 全域木(復習) 定義:連結グラフ𝐺=(𝑉,𝐸)の全域木(spanning

デローネイグラフによるEMSTの解法

定理: 点集合 𝑉 に対するユークリッド最小全域木の辺は,𝑉 のデローネイグラフの辺である.

ユークリッド最小全域木を求めるアルゴリズム1. 𝑉 のデローネイグラフを求める 𝑂(𝑛 log 𝑛) 時間

2. 得られたグラフの最小全域木を求める 𝑂(𝑛 log 𝑛)時間

Page 22: 第6回 グラフ理論・組み合わせ論 - i.kyushu-u ...eiji/GraphCombinatorics/graph-combinatorics6.… · 全域木(復習) 定義:連結グラフ𝐺=(𝑉,𝐸)の全域木(spanning

定理の証明の準備

補題 母点 𝑢, 𝑣 ∈ 𝑉 に対し,{𝑢, 𝑣}がデローネイグラフの辺であるための必要十分条件は,∃𝐶: 𝑢 と 𝑣を周上に含む円, ∀𝑤 ∈ 𝑉 𝑤 ∉ 𝑢, 𝑣 ,

𝑤 は円 𝐶 の内部に存在しない

23

証明(十分性):

𝑢

𝑣

そのような円 𝐶 が存在すると仮定

𝑢 と 𝑣 は 𝐶 の中心 𝑝から一番近い母点

𝑝 を通り 𝑢𝑣 に垂直なある線分がボロノイ辺になっているはず

𝑢 と 𝑣 のボロノイ領域は隣接している

𝐶

𝑝

Page 23: 第6回 グラフ理論・組み合わせ論 - i.kyushu-u ...eiji/GraphCombinatorics/graph-combinatorics6.… · 全域木(復習) 定義:連結グラフ𝐺=(𝑉,𝐸)の全域木(spanning

定理の証明

定理: 点集合 𝑉 に対するユークリッド最小全域木の辺は,𝑉 のデローネイグラフの辺である.

証明(背理法):

最小全域木の辺であって,デローネイグラフの辺でない {𝑢, 𝑣}が存在すると仮定

補題(の対偶)より,𝑢𝑣 を直径とする円の内部に,別の母点𝑤 ∈ 𝑉 が存在

最小全域木において,𝑢𝑣 を切断したとき𝑤 は 𝑢 と同じ連結成分に属しているとする

𝑢𝑣 を切断して 𝑣𝑤 を加えた全域木の方が重みの総和が小さいので矛盾

𝑢

𝑣

𝐶

𝑤

Page 24: 第6回 グラフ理論・組み合わせ論 - i.kyushu-u ...eiji/GraphCombinatorics/graph-combinatorics6.… · 全域木(復習) 定義:連結グラフ𝐺=(𝑉,𝐸)の全域木(spanning

巡回セールスマン問題

25

入力:辺重み 𝑤:𝐸 → 𝑅 つき完全グラフ 𝐺 = 𝑉, 𝐸出力:すべての点を通る閉路(巡回路)で重みの和が最小のもの

代表的なNP困難問題

P ≠ NP の仮定のもとで,定数近似も困難

Page 25: 第6回 グラフ理論・組み合わせ論 - i.kyushu-u ...eiji/GraphCombinatorics/graph-combinatorics6.… · 全域木(復習) 定義:連結グラフ𝐺=(𝑉,𝐸)の全域木(spanning

平面上の巡回セールスマン問題

点が平面上の点で,辺重みがユークリッド距離𝑤 𝑢, 𝑣 = 𝑢 − 𝑣 のとき,最小全域木を用いた多項式時間 2近似アルゴリズムが存在

実際は,辺重みが三角不等式を満たせばOK

最小全域木と最小マッチングを組み合わせた1.5 近似アルゴリズムに拡張されている

26

Page 26: 第6回 グラフ理論・組み合わせ論 - i.kyushu-u ...eiji/GraphCombinatorics/graph-combinatorics6.… · 全域木(復習) 定義:連結グラフ𝐺=(𝑉,𝐸)の全域木(spanning

2 近似アルゴリズム

最小全域木を求める

辺をなぞって閉じた歩道を作る

一度通った頂点に来たときは,ショートカットする

27

Page 27: 第6回 グラフ理論・組み合わせ論 - i.kyushu-u ...eiji/GraphCombinatorics/graph-combinatorics6.… · 全域木(復習) 定義:連結グラフ𝐺=(𝑉,𝐸)の全域木(spanning

2 近似アルゴリズム

最小全域木を求める

辺をなぞって閉じた歩道を作る

一度通った頂点に来たときは,ショートカットする

28

Page 28: 第6回 グラフ理論・組み合わせ論 - i.kyushu-u ...eiji/GraphCombinatorics/graph-combinatorics6.… · 全域木(復習) 定義:連結グラフ𝐺=(𝑉,𝐸)の全域木(spanning

演習

このアルゴリズムで2近似を達成していることを示せ

すわなち,出力巡回路の重みの和 ≤ 2 ⋅最適巡回路の重みの和が成り立つことを示せ.

29

Page 29: 第6回 グラフ理論・組み合わせ論 - i.kyushu-u ...eiji/GraphCombinatorics/graph-combinatorics6.… · 全域木(復習) 定義:連結グラフ𝐺=(𝑉,𝐸)の全域木(spanning

次週(12/5)は特別講義のため休講

特別講義のお知らせ

題目:「計算幾何学特論:計算折り紙入門」

講師:上原隆平(北陸先端大)

日時:12/5(月)~12/6(火)10:30 ~ 10/26(水)

場所:第1講義室(309号室)

30