その他

離散数学
11. その他のアルゴリズム
五島
DATE
:
離散数学
グラフに関するその他のアルゴリズム
 最大流問題
 平面グラフ
 同形性
 グラフのマッチング
 etc.
離散数学
最大流問題
離散数学
最大流問題
 最大流問題 (maximum flow problem)
 ネットワーク・フロー問題 (network flow problem)
 辺にふった容量以下の流量
 始点から終点に流せる最大の流量は?
5/5
4/4
9
6/8
1/2
0/3
1/1
5/5
3/3
4/4
9
離散数学
Ford-Fulkerson のアルゴリズム
 アイディア
 始点から終点に至る経路の,どの辺にも余裕がある
 ⇒ その経路の流量を増やす
 これを繰り返す
 鍵:
 このような経路をいかに組織的に探すか?
離散数学
他のアルゴリズム
 線形計画法 (linear programming)
 Edmonds-Karp のアルゴリズム
 Ford-Fulkerson の特殊ケース
 Dinitz のアルゴリズム
 動的木を使った Dinitz のアルゴリズム
 汎用プッシュ再ラベル法
 FIFO式頂点選択規則付きプッシュ再ラベル法
 動的木を使ったプッシュ再ラベル法
離散数学
平面性の問題
離散数学
平面グラフ
 平面グラフ (planar graph)
 辺を交差させずに平面に描けるグラフ
離散数学
平面グラフ(別の定義)
 平面グラフ (plane graph):
辺を交差させずに平面に描いたグラフ
 平面的グラフ (planar graph):
辺を交差させずに平面に描けるグラフ
 平面描画 (planar drawing):
辺を交差させずに平面に描画したもの
離散数学
平面性の判定
 IC,LSI の配線
 層内は平面でなければならない
 実際には,多層で via があるので…
 深さ優先探索を用いるアルゴリズムがある
 O(m + n) で,すなわち,効率よく解ける!
離散数学
非平面グラフ
 平面グラフ ⇔ 以下の2つに縮約可能な部分グラフを含まない
離散数学
同形性の判定
離散数学
同形性 (isomorphism)
 2つのグラフが 同形
 頂点を1対1に対応させた時,辺の接続関係が同じになる
離散数学
 原理的には,全ての組み合わせについて辺が一致するか検査
 ⇒ O(n!)
 実際には,全ての組み合わせを試す必要はない
 頂点の入出力の数が違うとか,
 ⇒ O(an), (a > 1)
 この問題を解くのに,指数関数的な計算量が必要かどうかは分かっていない!
 必要としないアルゴリズムは見つかっていない(見つかる見込みは薄い?)
 必要と証明されてもいない
離散数学
グラフのマッチング
離散数学
2部グラフ
 2部グラフ (bi-partite graph)
 2つの「部」の間だけに辺がある
 それぞれの「部」の中には辺がない
離散数学
グラフのマッチング
 グラフのマッチング
 辺で結ばれた2つの頂点を「組」にする
 各頂点は,1つの組にしか属さない
 応用:
 人 と 仕事
 学生 と 研究室
離散数学
アルゴリズム
 目標:
 組に属さない頂点数を最小にする
 O(m n) のアルゴリズムが知られている
 辺の重みの和を最大にする
 etc