
■
247
8
章
ネットワークフロー
アルゴリズム
節点と辺からなるネットワークにおいて、各辺に容量が割り当てられ、そこに何
かが流れる、という問題を扱うことがよくある。本章のアルゴリズムは、この種の
問題を解く必要から生まれたものである。
Ahuja
は、このネットワークフローアル
ゴリズムの適用分野について次のようなものを挙げている(
Ahuja, 1993
)。
割り当て問題(Assignment)
一連の作業を一群の従業員が処理するとしよう。それぞれの従業員が、割
り当てられたタスクをそれぞれ異なるコストをかけて処理する場合に、全
体のコストを最小化する割り当て方法を見つける。
二部マッチング問題(BipartiteMatching)
一群の求職者が、一群の職を求めて面接を受けるとしよう。このとき、
応募資格を満たして職務に就ける人数を最大化するような組み合わせを
見つける。
最大フロー問題(MaximumFlow)
2
つの場所の間で、商品をやり取りする場合に、ネットワーク全体の容
量が十分あるとして、流すことのできる最大フローを計算する。
輸送問題(Transportation)
商品を生産している一群の工場から、複数の店に、商品を運ぶとしよう。
このとき、コストが最も安くなる方法を決定する。
積み替え問題(Transshipment)
商品を生産している一群の工場から、複数の店に、商品を運ぶのだが、
途中に積み替え基地として使う一群の倉庫があるとしよう。このとき、