グラフとネットワーク(第9回)

グラフとネットワーク (第 9 回)
安藤 和敏
ando@sys.eng.shizuoka.ac.jp
静岡大学工学部
グラフとネットワーク (第 9 回) – p.1/30
第 2 章 ネットワーク
b
16
31
22
d
21
a
h
32
23
15
18
g 12
29
20
k
35
25
f
グラフとネットワーク (第 9 回) – p.2/30
2.1.1 最小木問題
グラフとネットワーク (第 9 回) – p.3/30
木
b
16
a
h
31
d
22
21
b
32
23
15
(a)
k
a
d
25
32
21
g 12
20
35
f
22
18
g 12
29
20
h
k
35
f
25
(b)
(a) グラフ G と w: A → R; (b) G の木 T (太字
の枝)
グラフとネットワーク (第 9 回) – p.4/30
木の重み
グラフ G = (V, A) と枝の重み w: A → R が与
えられているとする. G の木 T に対して,
w(T ) =
w(a)
(2.1)
a∈T
を木 T の重みという.
グラフとネットワーク (第 9 回) – p.5/30
木の重み (例)
b
16
22
d
21
a
b
h
31
32
23
15
18
g 12
29
20
35
16
22
d
21
a
重み= 155
32
23
15
18
g 12
29
k
20
k
35
25
f
h
31
25
f
重み= 112
グラフとネットワーク (第 9 回) – p.6/30
最小木問題
最小木問題とは, 重みが最小である木を見付け
る問題である.
最小木問題を解くためのアルゴリズムには, 貪欲
アルゴリズムとヤルニーク-プリムのアルゴリズ
ムが良く知られている.
グラフとネットワーク (第 9 回) – p.7/30
貪欲アルゴリズム
(クラスカルのアルゴリズム)
グラフとネットワーク (第 9 回) – p.8/30
Step 1 終了時
b
16
31
22
d
21
a
h
32
23
15
18
g 12
29
20
k
35
25
f
グラフとネットワーク (第 9 回) – p.9/30
1 回目の Step 3 終了時
b
16
31
22
d
21
a
h
32
23
15
18
g 12
29
20
k
35
25
f
グラフとネットワーク (第 9 回) – p.10/30
2 回目の Step 3 終了時
b
16
31
22
d
21
a
h
32
23
15
18
g 12
29
20
k
35
25
f
グラフとネットワーク (第 9 回) – p.11/30
3 回目の Step 3 終了時
b
16
31
22
d
21
a
h
32
23
15
18
g 12
29
20
k
35
25
f
グラフとネットワーク (第 9 回) – p.12/30
4 回目の Step 3 終了時
b
16
31
22
d
21
a
h
32
23
15
18
g 12
29
20
k
35
25
f
グラフとネットワーク (第 9 回) – p.13/30
5 回目の Step 3 終了時
b
16
31
22
d
21
a
h
32
23
15
18
g 12
29
20
k
35
25
f
グラフとネットワーク (第 9 回) – p.14/30
6 回目の Step 3 終了時
b
16
31
22
d
21
a
h
32
23
15
18
g 12
29
20
k
35
25
f
グラフとネットワーク (第 9 回) – p.15/30
貪欲アルゴリズムの正当性 (定理 2.1)
定理 2.1 貪欲アルゴリズムの実行中に得られる
T はつぎの性質をもつ:
(*)
T は, 枝数 |T | をもちサーキットを含まない
ような枝集合のうちで, その重みが最小なも
のである.
(ここで, 木でない枝集合 T に対しても (2.1) で重
みを定義する.)
グラフとネットワーク (第 9 回) – p.16/30
定理 2.1 より, 貪欲アルゴリズムが終了したとき
の T は |T | = |V | − 1 を満たしているから,
(*)
T は, 枝数 |V | − 1 をもちサーキットを含ま
ないような枝集合のうちで, その重みが最小
なものである.
ところで,
枝数 |V | − 1 をもちサーキットを含まないような枝集合
=G の木
であるから, 貪欲アルゴリズムが終了したときの
T は最小重みの木である.
グラフとネットワーク (第 9 回) – p.17/30
定理 2.1 のための補題
補題: グラフ G = (V, A) の 2 つの枝部分集合
B1, B2 ⊆ A に対して,
B1 と B2 がともに閉路を含まない, かつ,
|B1| < |B2|
ならば, ある a∗ ∈ B2 \ B1 に対して B1 ∪ {a∗} は
閉路を含まない. (証明終り)
グラフとネットワーク (第 9 回) – p.18/30
補題の説明図
b
b
h
h
d
d
a
a
g
B1
g
k
f
B2
b
k
f
h
d
a
g
k
f
B1 U {(d,g)}
グラフとネットワーク (第 9 回) – p.19/30
定理 2.1 の証明
グラフとネットワーク (第 9 回) – p.20/30
基本サーキット
グラフ g = (V, A) の木 T と枝 a ∈ A \ T に対し
て, T ∪ {a} はちょうど一つの閉路を含む. この
閉路を C(T |a) と表し, T と a に関連する基本
サーキットと呼ぶ.
b
16
22
d
23
15
18
g 12
29
20
35
16
h
31
32
21
a
b
h
31
22
d
32
21
a
23
18
g 12
29
k
15
20
k
35
25
25
f
f
(a)
(b)
グラフ G の木 T
T と a = (f, k) に関連
する基本サーキット
グラフとネットワーク (第 9 回) – p.21/30
定理 2.2
グラフ G = (V, A) の木 T ⊆ A が重み
w: A → R に関する最小木であるための必要十
分条件は, 各 a ∈ A \ T とそれに関連する基本
サーキット C(T |a) 上の任意の枝 a に対して
w(a ) ≤ w(a)
(2.5)
が成り立つことである.
グラフとネットワーク (第 9 回) – p.22/30
ヤルニーク-プリム のアルゴリズム
グラフとネットワーク (第 9 回) – p.23/30
Step 1 終了時
b
16
31
22
d
21
a
U
h
32
23
15
18
g 12
29
20
k
35
25
f
グラフとネットワーク (第 9 回) – p.24/30
1 回目の Step 3 終了時
b
U
16
22
d
21
a
h
31
32
23
15
18
g 12
29
20
k
35
25
f
グラフとネットワーク (第 9 回) – p.25/30
2 回目の Step 3 終了時
b
16
31
22
d
21
a
h
32
23
g 12
29
20
U
15
18
k
35
25
f
グラフとネットワーク (第 9 回) – p.26/30
3 回目の Step 3 終了時
b
16
22
d
21
a
h
31
32
23
g 12
29
20
U
15
18
k
35
25
f
グラフとネットワーク (第 9 回) – p.27/30
4 回目の Step 3 終了時
b
16
31
22
d
21
a
h
32
23
g 12
29
20
U
15
18
k
35
25
f
グラフとネットワーク (第 9 回) – p.28/30
5 回目の Step 3 終了時
b
16
31
22
d
21
a
h
32
23
15
18
g 12
29
20
k
35
25
f
U
グラフとネットワーク (第 9 回) – p.29/30
6 回目の Step 3 終了時
b
16
22
d
21
a
32
23
15
18
g 12
29
20
U
h
31
k
35
25
f
グラフとネットワーク (第 9 回) – p.30/30