2
頂点sから頂点tまでの経路で、互いに辺を共有しないs-tパスは最大
で何本とれるでしょう?
問題
2
s 2
1
3
4
5
6
7
9 t
8
10
Slide 4
Slide 4 text
3
2本
答え
3
s 2
1
3
4
5
6
7
9 t
8
10
Slide 5
Slide 5 text
4
S
頂点集合Sから出ている辺が2本しかないのでこれ以上にはならない。
考え方
4
s 2
1
3
4
5
6
7
9 t
8
10
Slide 6
Slide 6 text
5
前ページの値をグラフの2頂点s,tに対する辺連結度という。これは、グラフネット
ワークの頑健性を評価するものとして研究されている。互いに辺を共有しないこと
を辺素であるという。
辺連結度
5
s 2
1
3
4
5
6
7
9 t
8
10
Slide 7
Slide 7 text
6
T
S
頂点の集合VをS,Tに分割することをカットといい、Sに始点を持ちTに終点を持つ
辺の本数をカットの容量 c(S,T)と定義した時、最小のc(S,T)はいくつか。
最小カット問題
6
s 2
1
3
4
5
6
7
9
t
8
10
T
S
s 2
1
3
4
5
6
7
9
t
8
10
c(S,T) = 4 c(S,T) = 2
Slide 8
Slide 8 text
7
辺連結度とカットの最小容量について次のことが成り立つことがわかる。
さらに次のことも成り立つことが証明されている。
辺連結度と最小カット問題の関係
7
辺素なs-tパスの最大本数 ≦ s-tカットの最小容量
T
S
s 2
1
3
4
5
6
7
9 t
8
10
辺素なs-tパスの最大本数 = s-tカットの最小容量
Slide 9
Slide 9 text
8
基本的にs-tパスを取れなくなるまでとるという
貪欲法に基づいたアルゴリズムで求める。しか
し、パスを取った後はパス上の辺に対して逆向
きの有向グラフを張り直した残余グラフを用い
て処理を繰り返す。(下図)
辺連結度の求め方
8
s 2
1
3
4
5
6
7
9
t
8
10
s 2
1
3
4
5
6
7
9
t
8
10
パスの本数をf = 0 で初期化
残余グラフG’を元のグラフGで初期化
while G’においてs-tパスPが存在するならば:
fを1増やす
G’をPに関する残余グラフにする
return f
アルゴリズム
Slide 10
Slide 10 text
9
T
S T
S
• 元のグラフGにおいてSから出ている任意の辺は辺素
なs-tパスのいずれかの中に含まれている。
• 元のグラフGにおいてSへ入っている任意の辺は辺素
なs-tパスのいずれにも含まれていない。
辺連結度の求め方
9
s 2
1
3
4
5
6
7
9
t
8
10
s 2
1
3
4
5
6
7
9
t
8
10
S→Tの辺は辺素なs-tパス
に一対一対応するので、
c(S,T) = kとなり、kは辺素な
s-tパスの最大本数となる。
G G’
Slide 11
Slide 11 text
10
グラフ構造にエッジ容量を加えたものであり、下図のように各辺には流量の上限
を表す容量c(e)が設けられている。各辺eに対して流量を表すx(e)が存在する。
ネットワークフロー
10
s
2
1
3 4
t
5
5
37
4
3
9
56
9
2