Upgrade to Pro — share decks privately, control downloads, hide ads and more …

An introduction to network flow problems and algorithms

An introduction to network flow problems and algorithms

交通網,通信網,ライフラインなど現実世界のネットワークでは,車両,データ,水,電気,ガスなどを効率的に流すことを求める場合が少なくありません.この問題はグラフの辺に沿って「もの」を効率的に流すネットワークフロー問題に定式化できます.多くのネットワークフロー問題は線形計画問題に定式化できるため,単体法や内点法を適用すれば効率的に最適解を求めることができます.しかし,グラフの構造を利用すれば,より簡単で効率的なアルゴリズムを開発できる場合があります.今回は,そのようなネットワークフローの問題として,最大流問題と最小費用流問題を紹介します.

Shunji Umetani

April 13, 2022
Tweet

More Decks by Shunji Umetani

Other Decks in Education

Transcript

  1. 最⼤流問題 • 有向グラフ ,各辺 の容量 が与えられる. • ⼊⼝ から出⼝ に流れるフローの総量

    を最⼤にするには︖ ü⼊⼝ から流出する量=出⼝ に流⼊する量 ü 以外の頂点 から流出する量=頂点 に流⼊する量 ü各辺 の流量は容量 以下 3 * は頂点 を始点とする辺集合, は頂点 を終点とする辺集合. 流量保存制約 辺 の容量(定数) 辺 のフロー量(変数) フロー量 容量
  2. 残余ネットワーク • 各辺の可能な残りフロー量を表すネットワーク. • 各辺 に対して逆向き辺 を⽤意し,押し戻しが 可能なフロー量を表す. • 増加路︓残余ネットワークの頂点

    から頂点 にいたる路. ü増加路が存在する → フローの総量を増加できる ü増加路が存在しない → フローの総量は増加できない(最⼤流) 5 実⾏可能なフロー 残余ネットワーク
  3. s-t カット • 最⼤流を求める際のネットワークのボトルネックは︖ • カット ︓⼊⼝ を含み出⼝ を含まない頂点集合 のカット.

    • カット の容量︓ から に向かう辺の容量の総和. 8 フローの総量 より フローの総量 カットの容量 カット容量 45
  4. 最⼤フロー最⼩カット定理 • 増加路法が最⼤流を求めることを⽰したい. • 残余ネットワークで頂点 から到達可能な頂点集合を とすると, は最⼩カットで 最⼤フローの総量 最⼩カットの容量

    9 *辺の容量いっぱいにフローを流すと残余ネットワークでは逆向きの辺しか残らないことに注意する. 残余ネットワークにおいて から に向かう辺はない* 元のネットワークにおいて から に向かう辺では から に向かう辺では
  5. 最⼩費⽤流問題 • 有向グラフ ,各辺 の容量 ,単位フロー量 当たりのコスト ,各頂点 から流出するフロー量 が与え

    られる*.総費⽤を最⼩にする実⾏可能なフローは︖ • 最短路問題,最⼤流問題は最⼩費⽤流問題の特殊ケース 10 * 頂点 にフローが流⼊するときは .また, と仮定する. 費⽤ 容量 流出 辺 の容量(定数) 辺 の費⽤(定数) 頂点 の流出量(定数) 辺 のフロー量(変数) 流量保存制約 流⼊
  6. 最短路繰り返し法 最⼩費⽤流問題の最適性条件 最⼩費⽤流問題の実⾏可能なフロー が最適であるための必要 ⼗分は,残余ネットワークの全ての辺に対して となる が存在することである. 16 ある辺 において

    ならば, より ならば, より ならば, より . これらの条件の対偶より得られる. 最⼩費⽤流問題の相補性条件 最⼩費⽤流問題の実⾏可能なフロー が最適であるための必要⼗分 条件は,全ての辺 に対して となる が存在することである. 残余ネットワークでは逆向き 辺のみ残るので,全ての辺で が成り⽴つ ポテンシャルと呼ぶ
  7. 最短路繰り返し法 • 流量保存制約を満たさない頂点間 の最短路にフローを流す. ⼿続きを繰り返す.ただし,辺 の⻑さを被約費⽤ とする. • 頂点 のポテンシャル

    を最短路の⻑さ だけ増やす. 17 違反量 容量 <latexit sha1_base64="BbILW5B3YDUC4WDhZTRcek8KlA4=">AAACvHichVHLSsNAFD3Gd3006kZwIxZFN2UiRcWFFNy4rNZawUpI4lRD8yJJKzX0B/wBF+JCQUX8DDfi3oWfIC4ruHHhTRoQldY7TObMmXvunMlVHUP3fMZeuoTunt6+/oHBxNDwyGhSHBvf8eyqq/GCZhu2u6sqHjd0ixd83Tf4ruNyxVQNXlQr6+F5scZdT7etbb/u8H1TObT0sq4pPlGyOFZSFTfQGjKfL6lmUG8syGKKpVkU03+BFIMU4sjZ4hNKOIANDVWY4LDgEzagwKOxBwkMDnH7CIhzCenROUcDCdJWKYtThkJshb6HtNuLWYv2YU0vUmt0i0HTJeU0Ztkzu2NN9sju2Sv7bFsriGqEXuq0qi0td+Tk6WT+41+VSauPo29VR88+yliJvOrk3YmY8BVaS187OWvmV7dmgzl2xd7I/yV7YQ/0Aqv2rl1v8q3zDn5U8tL+jwXElb/dUhul3037C3YW09JSOrOZSWUzcUMHMIUZzFPXlpHFBnIo0C3HuMANboU14UCoCGYrVeiKNRP4EULtC8m8n6E=</latexit> ¯ ce (y)
  8. 最短路繰り返し法 • 流量保存制約を満たさない頂点間の最短路に沿ってフローを流す ⼿続きを繰り返す. 18 反復回数 違反量の総和 最短路を⾒つけるのに 時間 時間

    更新されたポテンシャル の下での被約費⽤ 最短路の⻑さは三⾓不等式を満たすので したがって,常に が成り⽴つ. 違反なし
  9. 割当問題→最⼩費⽤流問題 • 各学⽣に対応する頂点 ,各クラスに対応する頂点 • 頂点 から各学⽣ への辺 容量1, 費⽤0

    • 各クラス から頂点 への辺 容量 ,費⽤0 • 各学⽣ から各クラス への辺︓容量1,費⽤ 20 学⽣ クラス 容量 費⽤ 実⾏可能流 定員を満たす割当て 実⾏可能流の費⽤ 学⽣の満⾜度の合計