東京 - 地理空間的思考の教育研究プロジェクト

第4章 空間解析
2.ネットワーク分析
(2) 最大流問題
久保田光一
[email protected]
地理情報科学教育用スライド ©久保田光一
最大流
通信量最大化
1 ←回線容量
出発地:池袋
3
3
御茶ノ水
3
新宿
1
1
地理情報科学教育用スライド ©久保田光一
3
4
秋葉原
目的地:東京
ネットワークフロー
• 水などの配管や道路の交通量や輸送量などを表現す
るための「ネットワーク」を考える.
• ネットワークの構造は,地点を頂点,配管や道路を枝
とするようなグラフ G=(V,E) で表される. ここでは,Gは
単純なグラフとする(後述).
• 始点 s (source) と終点 t (sink) を定めて,ネットワーク
の枝に水や物などを流すとき,それをフロー f という.
水流,物流,交通流など.
• フローfの値 F とは,始点 s から流れ出る総量であり,
終点に流れ込む総量(途中で流量は保存)でもある.
地理情報科学教育用スライド ©久保田光一
フローの制約と最大流問題
• 各枝(u,v) には容量(capacity)を表す非負の実数
c(u,v) が与えられ,枝(u,v)のフロー f(u,v) は 次の
制約を満たす:
0  f (u, v)  c(u, v),
 f (s, w)  F ,  f (u, t )  F ,
w
u
 f (u, v)   f (v, w)  0.
u
w
• 最大流問題は様々なフロー f の中で,fの値 F の
最大値とそのときのフロー f を求める問題.
地理情報科学教育用スライド ©久保田光一
ネットワークの枝の容量
各枝には流れる量の最大値(これを「容量」という)が与えられている
入口 s :池袋
1
枝(s,u)の容量を
c(s,u) と記す
c(s,u)= 3
3
御茶ノ水 v
3
3
新宿 u
秋葉原 w
1
4
1
出口 t :東京
地理情報科学教育用スライド ©久保田光一
ネットワーク上のフロー
各枝には流れる量は「容量」以下
フロー f の値 F は 3
入口 s :池袋
1
枝(s,u)を流れる量
を f(s,u) と記す
f(s,u)= 1
1
御茶ノ水 v
0
0
新宿 u
秋葉原 w
1
1
1
出口 t :東京
地理情報科学教育用スライド ©久保田光一
枝の流量 / 容量 の記載法
入口:池袋
1/1
1/3
1/3
秋葉原
御茶ノ水
0/3
0/3
新宿
1/1
1/4
1/1
x/y : 流量 x が容量 y の枝に存在
地理情報科学教育用スライド ©久保田光一
出口:東京
フォード・ファルカーソン法
• Ford・Fulkerson法は基本的な考え方.
• まず,容量の制限を満たすフロー f を与える.
– 最初は流量が0のフロー f を考えればよい.
• 現在のフロー f に対して次を繰り返す
– 増加可能経路 p が存在するなら,
• フロー f を p に沿って増加させる.
– 存在しなければ終了
地理情報科学教育用スライド ©久保田光一
増加可能経路
池袋
1/1
1/3
1/3
秋葉原
御茶ノ水
0/3
0/3
新宿
1/1
1/4
1/1
x/y : 流量 x が容量 y の枝に存在
地理情報科学教育用スライド ©久保田光一
東京
残余ネットワーク
• 各枝(u,v)には流量 x=f(u,v) と容量 y=c(u,v) が指定される
• 元のネットワークの枝1本に対応し,有向枝2本を対応させ,
あとどれだけ流せるかを表す残余ネットワークを構成する
u
x/y
v
u
y-x
v
x
元のネットワーク
残余ネットワーク
あとどれだけ流せるか
地理情報科学教育用スライド ©久保田光一
残余ネットワーク
入口:池袋
1
秋葉原
1
1
2
3
御茶ノ水
2
3
1
1
3
新宿
1
出口:東京
地理情報科学教育用スライド ©久保田光一
増加可能経路
入口:池袋
1
秋葉原
1
1
2
3
御茶ノ水
2
3
1
1
3
新宿
1
出口:東京
地理情報科学教育用スライド ©久保田光一
増加可能経路に沿って流量増加
池袋
1/1
3/3
1/3
秋葉原
御茶ノ水
2/3
2/3
新宿
1/1
3/4
1/1
x/y : 流量 x が容量 y の枝に存在
地理情報科学教育用スライド ©久保田光一
東京
更新した流量に関する
残余ネットワーク
入口:池袋
1
秋葉原
3
1
0
1
御茶ノ水
2
1
2
3
2
1
1
新宿
1
出口:東京
地理情報科学教育用スライド ©久保田光一
増加可能経路
入口:池袋
1
秋葉原
3
1
0
1
御茶ノ水
2
1
2
3
2
1
1
新宿
1
出口:東京
地理情報科学教育用スライド ©久保田光一
増加可能経路に沿って流量増加
池袋
1/1
3/3
2/3
秋葉原
御茶ノ水
3/3
2/3
新宿
1/1
4/4
1/1
x/y : 流量 x が容量 y の枝に存在
地理情報科学教育用スライド ©久保田光一
東京
更新した流量に関する
残余ネットワーク
入口:池袋
1
秋葉原
3
2
0
1
御茶ノ水
1
0
3
4
2
1
0
新宿
1
出口:東京
地理情報科学教育用スライド ©久保田光一
増加可能経路が無い→終了
入口:池袋
1
秋葉原
3
2
0
1
御茶ノ水
1
0
3
4
2
1
0
新宿
1
出口:東京
地理情報科学教育用スライド ©久保田光一
最大流のアルゴリズム
• 増加可能経路の見つけ方によって,多くのア
ルゴリズムが知られている.
• ディニッツ(Dinic)のアルゴリズムは,幅優先
探索により,増加可能経路を見出すもの.
地理情報科学教育用スライド ©久保田光一
最大流の性質
• カット:
– ネットワーク上の頂点を二つの集合に分ける
• このとき,入口と出口は別々の集合に含まれるように分ける
– 両端点がその二つの集合に一つずつ存在するような枝
の集合を「カット」という
• カットを構成する枝の容量の和を「カット容量」という
• 「最大流の値=カット容量の最小値」が成立
地理情報科学教育用スライド ©久保田光一