第13回 - Donald Home Page

最大マッチングと最大フローのまとめ
最大マッチング
H27 グラフ理論
―第13回―
最大フロー問題の応用
マッチング
(頂点を共有しない
辺の集合)
増大道
(両端が飽和されていない
交互道)
最大マッチング
(完全マッチング)
1
最大マッチングと最大フローのまとめ
22/25
25
8
5
3
30
5/5
s
t
最大フロー
2/8
2/3
6
V2
3
t
t
5
4
15/15
19/19
V1
2
2
5
s
10
22/30
25
c(e)-f(e)=3
5
Δ(P)=4
この二部グラフを図のような有向グラフと考える
f(eR)=f(e)=22
15
25/25
3/5
t
10/15
残余ネットワーク
s
3/3
15/19
19
27/27
2/8
20/30
15
20/20
二部グラフの最大マッチングは最大フロー問題の
特殊ケースである
25/27
15/20
24
s
(1) 二部グラフの最大マッチングと最大フロー
フローの例
ネットワーク N = (G,c,s,t)
20
2
20
15
10
3
4
1
このネットワーク上の最大フローを求める
このグラフに頂点 s,t を追加して
s から V1 の頂点への辺と V2 の頂点
から t への辺を追加する
V1
1
1
V2
1
s
1
1
1/1
1
1
1
1
初期フロー
1/1
s
t
1
1
1
t
すべての辺eに対して
c(e)=1が省略されて
いると考える
1/1
1
1
1
1
1
1
1
1/1
残余ネットワーク
の逆辺
1
1/1
1/1
s
ここですべての辺容量が c(e)=1 と仮定すれば
得られる有向グラフはあるネットワークを表す
s
t
1
1
1
1
1/1
1
1
1
1
1/1
5
1/1
s
1/1
1
1
1
1
1
1/1
1/1
1
t
s
1
1/1
1/1
1
1
1
1
1
1
s
t
1
1/1
1
増加道
V2
1/1
1
1
1
1
t
1/1
1/1
1
1/1
V1
V1
1
1/1
t
6
残余ネットワークに
s から t への増加道は
存在しないので左図が最大フロー
最大フロー
(0/1は単に1と書いてある)
t
1
1
s
1
1
1
1
1/1
1
V2
得られたフローは最大であるので
対応するマッチングも最大となる
ここでフローが存在する辺のうち
はじめの二部グラフの辺を選択
するとそれはあるマッチングとなる
なぜならば辺容量はすべて1なので
フローは合流しない。すなわち合流しない
辺の集合はマッチングとなる。
以上により最大マッチングは最大フロー問題の
特殊な場合と見なせる
7
8
2
(2) 優勝可能性判定への応用
セリーグの勝敗表
ある年のセリーグの8月の時点での勝敗表と残り試合の組み合わせが
与えられたとき、中日にまだ優勝の可能性があるかどうかを判定したい。
(引き分けは後日対戦するので引き分けはないと見なせる)
セリーグの勝敗表
チーム
勝数
チーム
勝数
負数
残数
ヤクルト
66
38
26
広島
62
40
28
巨人
56
47
27
横浜
52
51
27
阪神
36
66
28
中日
33
63
34
各組合せの残り試合数
負数
残数
対戦
残数
ヤク
ルト
広島
巨人
横浜
阪神
中日
ヤクルト
66
38
26
ヤク
ルト
-
6
5
5
2
8
広島
62
40
28
広島
6
-
7
6
5
4
巨人
56
47
27
巨人
5
7
-
3
6
6
横浜
52
51
27
横浜
5
6
3
-
6
7
阪神
36
66
28
阪神
2
5
6
6
-
9
中日
33
63
34
中日
8
4
6
7
9
・中日は最大67勝する可能性がある
・それ以外のチームが68勝しないように
すべての試合を終了できるかどうかを
判定すればよい
・68勝未満が中日を含めて複数あれば
プレーオフがあるので優勝の可能性は
ある
最大であと34勝しかできないので
中日の最大勝数は67である。
すべての試合をこれを上回らないように
消化できるか?
-
9
10
“計算とアルゴリズム 淺野孝夫・今井浩” Ohmshaより抜粋
s
各組合せの残り試合数
6
対戦
残数
ヤク
ルト
広島
巨人
横浜
阪神
中日
ヤク
ルト
-
6
5
5
2
8
広島
6
-
7
6
5
4
巨人
5
7
-
3
6
6
横浜
5
6
3
-
6
7
阪神
2
5
6
6
-
9
中日
8
4
6
7
9
-
・試合の組み合わせには
順序がないので残り試合
の表は対角線に対して
対称である。
・中日の優勝の可能性なの
で中日は残りを全勝すると
考え、それ以外の組み合わ
せの勝敗を考える。
11
5
5
2
7
6
5
3
6
6
ヤ×広 ヤ×巨 ヤ×横 ヤ×阪 広×巨 広×横 広×阪 巨×横 巨×阪 横×阪
各組合せの残り試合数
対戦
残数
ヤク
ルト
広島
巨人
横浜
阪神
中日
ヤク
ルト
-
6
5
5
2
8
広島
6
-
7
6
5
4
巨人
5
7
-
3
6
6
横浜
5
6
3
-
6
7
阪神
2
5
6
6
-
9
中日
8
4
6
7
9
-
・中日を除いた残りのチームの
組み合わせを考える
・各組み合わせの残り試合数を
辺容量としてネットワークを構成(図)
12
3
s
6
5
5
2
s
7
6
5
3
6
6
6
ヤ×広 ヤ×巨 ヤ×横 ヤ×阪 広×巨 広×横 広×阪 巨×横 巨×阪 横×阪
6
5
2
7
6
5
3
6
6
ヤ×広 ヤ×巨 ヤ×横 ヤ×阪 広×巨 広×横 広×阪 巨×横 巨×阪 横×阪
6
ヤ
この二辺の
キャパシティー
(他の辺の値は省略)
広
巨
横
阪
図のように中日以外の5チームに勝ち数を分配する
ネットワークを追加する
(例えばヤ×広の6試合の勝数はヤクルトまたは広島に
分配される→最大6のフローが図の二つの辺に分かれる)
チー
ム
勝数
負数
残数
ヤク
ルト
66
38
26
広島
62
40
28
巨人
56
47
27
横浜
52
51
27
残り試合数はこれらのキャパシティー
の合計で51試合(かならず消化しなければ
ならない試合数)
s
5
5
2
7
6
5
3
6
ヤ
広
1
阪神
36
66
28
中日
33
63
34
13
6
5
巨
5
横
15
11
阪
31
t
それぞれのチーム(ヤ~阪の5チーム)が
67勝になるまでの勝数を辺容量として設定した
ネットワークを追加して完成
14
(3) 画像の2値分解への応用(概略)
6
各画素がノードに対応
ヤ×広 ヤ×巨 ヤ×横 ヤ×阪 広×巨 広×横 広×阪 巨×横 巨×阪 横×阪
S
ヤ
広
1
巨
5
横
15
11
阪
31
t
入力画像
図のネットワークの最大フロー f は50 (計算は省略)
合計51のフローをtに流し込むにはどこかの辺のフロー
がキャパシティーをオーバーする
中日以外のチームが68勝以上してしまう(中日の優勝の可能性はない)
15
隣り合う画素同士を
辺で結び,画素値が
近いものほど重みを
大きくする
グラフの最小カットを
求めることで原画像
2値分解できる.
16
4
画像の2値分解の実際(古文書からの手書き文字の認識*)
入力画像
*(平成24年度:坂本研の修士論文研究より抜粋)
「画像データからの知識獲得ツールの開発」
文字領域の抽出結果
17
5